2016-07-21 35 views
0

Ich benutze eckig-translate, und es funktioniert korrekt. Ich habe ein Auswahlfeld für die ausgewählte Sprache.Lokalisierung und Sprache übersetzen

.config(['$translateProvider', function($translateProvider) { 
    $translateProvider.translations('en', translationsEN); 
$translateProvider.translations('hr', translationsCRO); 
$translateProvider.preferredLanguage('en'); 
$translateProvider.fallbackLanguage('en'); 
$translateProvider.useSanitizeValueStrategy('escape'); 

$translateProvider.useSanitizeValueStrategy('sanitize'); */ 
}]); 

ist hier ctrl für switch language

$scope.changeLanguage = function (langKey) { 
$translate.use(langKey); 
}; 

und in Aussicht, und diese Arbeiten.

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

Problem ist, ich möchte Angular-i18n für Gebietsschema verwenden. und ändern Sie auf derselben Auswahlbox, wie für die Änderung der Sprache auf der Seite. Wenn ich wählen Englisch, ändern Sprache und Lokalisierung ... gleiche gilt für kroatisch usw.

ich hinzufügen .config

.config(function(tmhDynamicLocaleProvider) { 
tmhDynamicLocaleProvider.localeLocationPattern('bower_components/angular-i18n/angular-locale_{{locale}}.js'); 
}); 

und in Controller hinzufügen i

$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; 
    }); 

und im Hinblick Arbeiten Wenn ich diese

<select ng-model="model.selectedLocale" ng-options="key as value for (key, value) in availableLocales" ng-change="changeLocale(model.selectedLocale)"></select> 

hinzufügen, aber das gibt mir zweite Auswahlbox. ich versuche, auf den ersten Auswahlbox so etwas wie dieses hinzufügen, aber diese Arbeit nicht

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

Wenn mir jemand pls helfen kann, thnx

Antwort

0

ich dieses Problem beheben, habe ich auf

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