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