当我像这样设置语言时 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/