Локализация и языковой перевод

0

Я использую 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

Теги:
localization

1 ответ

0

Я исправлю это, я установил

<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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню