我使用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 for switch language
$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>
如果有人可以帮助我,那么
答案 0 :(得分: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>