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

时间:2016-06-06 06:30:49

标签: javascript html angularjs angular-gettext

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

当我使用setCurrentLanguage时,菜单中的字符串不会发生变化。它只会在页面重新加载后更改(我将当前语言保存在localStorage中)。因此,setCurrentLanguage可以在应用启动时应用到我的侧边菜单中,但它不会动态生效。

修改

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

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

1 个答案:

答案 0 :(得分:1)

请勿使用gettextCatalog.getString(),而是使用gettext()

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

在您看来,请使用translate过滤器:

{{ myVar | translate}}

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

此处有更多信息:https://angular-gettext.rocketeer.be/dev-guide/annotate-js/