r2g*_*get 2 translation gettext angularjs angular-gettext
我使用gettext模块进行角度处理我的翻译。这几乎完美。文字
现在我有2个控制器。每个视图分别称为1和basecontroller。所以将基本控制器附加到html标记,并使用ngRoutes将不同的控制器附加到每个视图。
现在在基本控制器中,我将语言设置如下:
//set lang
$rootScope.selectedLang = 'NL';
//Switch language
$scope.setLang = function(type,lang) {
if (type == 'select') {
ngDialog.open({
template: 'views/popups/set-language.php',
className: 'ngdialog-theme-flat',
controller: 'BaseCtrl'
});
}
if (type == 'set') {
if (lang == 'nl') {
gettextCatalog.setCurrentLanguage('nl');
$rootScope.selectedLang = 'NL';
}
if (lang == 'en') {
gettextCatalog.setCurrentLanguage('en');
$rootScope.selectedLang = 'EN';
}
ngDialog.closeAll();
}
}
Run Code Online (Sandbox Code Playgroud)
这很好。当用户单击NL时,它将转换为NL;当用户单击EN时,它将文本转换为eng。
问题是每个控制器我也有字符串。这些是在javascript中,所以在searchcontroller中,例如,我有:
$rootScope.stepText = gettextCatalog.getString("step_1_header");
Run Code Online (Sandbox Code Playgroud)
这些翻译是针对全局性的,例如标题,每个控制器都会更改。
这也可以正常工作,但现在的问题是开关。当我切换到英语时,所有文本都会被翻译,但$ rootScope.stepText = gettextCatalog.getString(“ step_1_header”);不会被翻译。
我认为这是因为我在基本控制器中进行了切换。有谁知道解决这个问题?
范围内的任何东西都不应该使用gettextCatalog.getString。
使用这样的东西:
$rootScope.stepText = gettext("My step 1 title");
Run Code Online (Sandbox Code Playgroud)
并在视图中:
<h1>{{stepText | translate}}</h1>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1866 次 |
| 最近记录: |