如何在页面重新加载时使用angular -translate

时间:2016-07-21 07:39:51

标签: angularjs angular-translate

我在角度应用程序中使用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。我想要的是那个 刷新后,应该使用之前设置的语言加载页面。

我可以使用有角度的东西,或者我必须编写自己的逻辑来实现上述内容。

2 个答案:

答案 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工具的标签资源来检查现有的键值对

enter image description here

doc中的更多信息 https://developer.mozilla.org/it/docs/Web/API/Window/localStorage