我在角度应用程序中使用angular-translate。 我已使用
将默认语言设置为德语<input type="text" name="hostelfees" id="content" oninput="calculate()">
<input type="text" name="fee_id" id="fee_selector_holder" oninput="calculate()">
<input type="text" id="result" name="totalfee">
我也在使用 $translateProvider.preferredLanguage('de')
在运行时设置语言。
但是当我在运行时将语言设置为$translate.use(langKey)
然后在我重新加载页面之后,它再次将语言设置为english
。我想要的是那个
刷新后,应该使用之前设置的语言加载页面。
我可以使用有角度的东西,或者我必须编写自己的逻辑来实现上述内容。
答案 0 :(得分:2)
已经有一些实现用于存储内置于angular-translate中的所选语言(通过附加模块)。查看https://angular-translate.github.io/docs/#/guide/10_storages,它提供了cookie和localstorage的内置解决方案。手动处理这个并不像第一眼看到的那样微不足道。
使用该模块就像放入一个javascript文件一样简单,并在配置翻译提供程序时添加以下调用:
$translateProvider.useLocalStorage();
答案 1 :(得分:1)
你可以使用localstorage将值保存在缓存中,只需在控制器中注入service $窗口并使用这个sintax:
$window.localStorage.setItem('lan', 'en');
即使在浏览器关闭后,缓存也会保留该值。 更新页面时,只需检查密钥是否存在。
if($window.localStorage.getItem('lan') === 'en'){
//do something
}
本地存储绑定到特定域
您可以看到使用chrome web工具的标签资源来检查现有的键值对
doc中的更多信息 https://developer.mozilla.org/it/docs/Web/API/Window/localStorage