У меня есть веб-приложение AngularJS. Я меняю приложение, поэтому URL-адреса могут быть многоязычными (для целей индексирования SEO).AngularJS многоязычная маршрутизация URL со ссылками
I'm настройка моего app.js, как это:
$routeProvider.when('/:language', {templateUrl: 'partials/home.html', controller: 'HomeCtrl'});
$routeProvider.when('/:language/about', {templateUrl: 'partials/about.html', controller: 'AboutCtrl'});
Тогда, в службе я получаю параметр языка с $ routeParams и вызвать мой код перевода с угловым переводом служить страницу на соответствующем языке.
Все работает до сих пор.
Но теперь все мои внутренние ссылки, т. Е. <a href="/about">{{'ABOUT' | translate}}</a>
, перестали работать, потому что им не хватает параметра языка.
Мой подход заключается в том, чтобы установить язык в сервисе и заставить его объединить его в ссылках, что-то вроде <a href="{{TranslationService.getLanguage()}}/about">{{'ABOUT' | translate}}</a>
. Конечно, это заставит меня реорганизовать все мои ссылки.
Правильно ли это, или есть более умный?
Я сделал то же самое, но также добавил слушателя $ routeChangeStart, который установит $ rootScope.language в текущую локаль. Таким образом, я могу использовать более короткий {{language}} для ввода языка –