Я использую angular-translate, и его работа правильная. У меня есть поле выбора для выбранного языка.
.config(['$translateProvider', function($translateProvider) {
$translateProvider.translations('en', translationsEN);
$translateProvider.translations('hr', translationsCRO);
$translateProvider.preferredLanguage('en');
$translateProvider.fallbackLanguage('en');
$translateProvider.useSanitizeValueStrategy('escape');
$translateProvider.useSanitizeValueStrategy('sanitize'); */
}]);
Вот ctrl для языка переключения
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
и, следовательно, эта работа.
<ul class="dropdown-menu">
<li><a ng-click="changeLanguage('hr')" translate="BUTTON_LANG_CRO"></a></li>
<li><a ng-click="changeLanguage('en')" translate="BUTTON_LANG_EN"></a></li>
</ul>
Проблема в том, что я хочу использовать angular-i18n для локали. и изменения в том же поле выбора, что и для языка смены на странице. Если я выбираю английский, меняю язык и локализацию... то же самое для хорватских и т.д.
Я добавляю файл.config
.config(function(tmhDynamicLocaleProvider) {
tmhDynamicLocaleProvider.localeLocationPattern('bower_components/angular-i18n/angular-locale_{{locale}}.js');
});
и в контроллере я добавляю
$rootScope.availableLocales = {
'en': 'English',
'hr': 'Hrvatski'};
$scope.changeLanguage('hr');
$rootScope.model = {selectedLocale: 'en'};
$rootScope.$locale = $locale;
$rootScope.changeLocale = tmhDynamicLocale.set;
sveKlupeServiceFactory.query(function (res) {
$scope.klupe = res.smart_benches;
});
и, с учетом работы, если я добавлю это
<select ng-model="model.selectedLocale" ng-options="key as value for (key, value) in availableLocales" ng-change="changeLocale(model.selectedLocale)"></select>
Но это дает мне вторую коробку выбора. я пытаюсь добавить в первый поле выбора что-то вроде этого, но это не работает
<li><a ng-model="model.selectedLocale" ng-click="changeLanguage('hr'); changeLocale(model.selectedLocale)" translate="BUTTON_LANG_CRO"></a></li>
<li><a ng-model="model.selectedLocale" ng-click="changeLanguage('en'); changeLocale(model.selectedLocale)" translate="BUTTON_LANG_EN"></a></li>
Если кто-то может мне помочь, THNX
Я исправлю это, я установил
<li><a ng-model="model.selectedLocale"
ng-click="changeLanguage('hr');
changeLocale('hr')" //here i set 'hr'
translate="BUTTON_LANG_CRO"></a> </li>
<li><a ng-model="model.selectedLocale"
ng-click="changeLanguage('en');
changeLocale('en')" //here i set 'en'
translate="BUTTON_LANG_EN"></a></li>