gpt4 book ai didi

angularjs - Angular 翻译从服务器获取默认语言决定

转载 作者:行者123 更新时间:2023-12-03 13:22:47 25 4
gpt4 key购买 nike

我正在使用 angular-translate 来提供多语言支持。我在本地有 4 种语言的 json。 (en.json, ru,json, is.json, jp.json),我在应用程序配置中编写了如下代码

app.config(['$stateProvider' , '$urlRouterProvider', '$translateProvider', 'TENANT_KEY', 'LANG_KEY',
function ($stateProvider, $urlRouterProvider, $translateProvider, TENANT_KEY) {
'use strict';
...
$translateProvider.useStaticFilesLoader({
prefix: '/assets/languages/',
suffix: '.json'
});

$translateProvider.preferredLanguage('en');
...
}]);

问题是:我希望应用程序以服务器端的语言启动,就像上次我选择“ru”作为当前语言,下次打开应用程序时,语言将默认为“ru”。

我已经写了localService来记住语言选择,但是在app.config中,我们不能使用服务,我该怎么办?

angular.module('storm.common')
.constant('LANG_KEY', 'lang')
.service('LocaleService', ['PersistenceService', 'LANG_KEY', '$window', '$translate',
function (PersistenceService, LANG_KEY, $window, $translate) {
'use strict';
// 'is' is used for i18n team for their testing !!!
var supportedLocale = ['en', 'ja', 'ru', 'is'];
this.set = function (locale) {
if (!locale) {
if (PersistenceService.get(LANG_KEY)) {
locale = PersistenceService.get(LANG_KEY);
} else {
locale = ($window.navigator.language || 'en').replace(/^(en)-.*/, '$1');
}
}
if (supportedLocale.join(',').indexOf(locale) === -1) {
locale = 'en';
}
PersistenceService.set(LANG_KEY, locale);
$translate.use(locale);
// moment.locale(locale);
};

this.get = function () {
return PersistenceService.get(LANG_KEY) || 'en';
};
}
]);

最佳答案

你不能在 config block 中注入(inject)你的服务。请改用 run block 。

原因在这里解释:how to inject dependency into module.config(configFn) in angular

你的代码应该是这样的:

app.run(['$translateProvider', 'LocaleService', 
function($translateProvider, LocaleService){
'use strict';
....
$translateProvider.useStaticFilesLoader({
prefix: '/assets/languages/',
suffix: '.json'
});

$translateProvider.preferredLanguage(LocaleService.get());
}]);

关于angularjs - Angular 翻译从服务器获取默认语言决定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31824507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com