1

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

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

编辑:

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

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

4

1 回答 1

1

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

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

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

{{ myVar | translate}}

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

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

于 2016-06-15T11:54:31.807 回答