当我设置像gettextCatalog.setCurrentLanguage(langString);
这样的语言时,它对我的侧导航菜单起作用。我的侧面菜单可以处于以下两种状态之一:展开或折叠,因此我在侧面菜单中使用ng-include并在切换状态时更改它。
当我使用setCurrentLanguage
时,菜单中的字符串不会发生变化。它只会在页面重新加载后更改(我将当前语言保存在localStorage中)。因此,setCurrentLanguage
可以在应用启动时应用到我的侧边菜单中,但它不会动态生效。
修改
可能与我使用gettextCatalog.getString('somestring')
生成菜单项名称的事实有关,因此,名称将在启动时使用正确的语言创建,但我无法在更改时更新它们语言,因为`gettextCatalog.getString(' somestring')的结果现在只存储在变量中。所以,那里没有角度观察者了。
那么,如何更新从代码创建的字符串?
答案 0 :(得分:1)
请勿使用gettextCatalog.getString()
,而是使用gettext()
:
$scope.myVar = gettext("Something");
在您看来,请使用translate
过滤器:
{{ myVar | translate}}
更改语言时,这将正确更新。
此处有更多信息:https://angular-gettext.rocketeer.be/dev-guide/annotate-js/