今天在我的应用程序之前,我有:
app.config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {});
$translateProvider.translations('ru', {});
$translateProvider.preferredLanguage('en');
$translateProvider.useLocalStorage();
}]);
但现在我有:
app.config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('English', {});
$translateProvider.translations('Russian', {});
$translateProvider.preferredLanguage('English');
$translateProvider.useLocalStorage();
}]);
所以我的语言键已更改。
但!
当我打开带有旧localStorage(en
)值的窗口选项卡时 - 我的新字符串不会被翻译,只有在私有浏览器模式下,当缓存是干净的时候。
因此我需要以某种方式检查:如果密钥为en
,则将其替换为English
。
主要的问题是这个服务不使用$ localStorage,而是它自己的本地存储解决方案。
如何解决?
我只有这样的想法:
if ($translate.storage().get() === 'en'){
$translate.storage().set('NG_TRANSLATE_LANG_KEY', 'English');
}
if ($translate.storage().get() === 'ru'){
$translate.storage().set('NG_TRANSLATE_LANG_KEY', 'Russian');
}