javascript - Angular-gettext 不会更新代码中生成的字符串

标签 javascript html angularjs angular-gettext

当我像这样设置语言时 gettextCatalog.setCurrentLanguage(langString); 它不适用于我的侧面导航菜单。我的侧面菜单可以处于两种状态之一:展开或折叠,因此我使用 ng-include 作为侧面菜单,并在切换状态时更改它。

当我使用setCurrentLanguage时,菜单内的字符串不会改变。仅在页面重新加载后才会更改(我将当前语言保留在 localStorage 中)。因此,setCurrentLanguage 可以在应用程序启动时应用于我的侧面菜单,但它不能动态工作。

编辑:

可能与我使用 gettextCatalog.getString('somestring') 生成菜单项名称的事实有关,因此,名称将在启动时使用正确的语言创建,但我不能更改语言时更新它们,因为 `gettextCatalog.getString('somestring') 的结果现在仅存储在变量中。所以,那里不再有 Angular 观察者了。

那么,如何更新从代码创建的字符串?

最佳答案

不要使用gettextCatalog.getString(),而是使用gettext():

$scope.myVar = gettext("Something");

在您的 View 中,使用翻译过滤器:

{{ myVar | translate}}

当您更改语言时,这将正确更新。

更多信息请点击:https://angular-gettext.rocketeer.be/dev-guide/annotate-js/

关于javascript - Angular-gettext 不会更新代码中生成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650859/

相关文章:

javascript - PHP:如何获取按钮的父元素?

javascript - 谷歌图表 : condensing hAxis values

javascript - PHP 根据路径名读取文件内容

html - 在 IE8 中分配 bottom 属性时的位置修复问题

javascript - 无法访问 Angular JS Controller 中的 $scope 属性?

javascript - 优化 Angular 滤波器性能

javascript - ui-select 无结果事件

javascript - :-ms-input-placeholder is not working in IE9 in Windows 7 OS

javascript - JQuery/Javascript 中 DataTable 列名称中的特殊字符

html - 无法将按钮放在图片下方或上方的图像上