AngularJS中的GetText模块DO不会转换控制器中的getTextCatalog.getString()



im使用getText模块进行角度来处理我的翻译。这几乎是完美的。getText

现在我有2个控制器。1称为基础控制器其他控制器是每个视图。因此,将基本控制器连接到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();
    }
}

这很好。当用户单击NL时,将其转换为NL,当用户单击EN时,它将文本转换为Eng。

问题在于,每个控制器我也有字符串。这些在JavaScript中,因此在搜索Controller中,例如我有:

    $rootScope.stepText = gettextCatalog.getString("step_1_header");

这些翻译适用于诸如标题标题之类的全局内容,每个控制器都会更改。

这也可以正常工作,但是现在问题是开关。当我切换到英文时

我认为这是因为我在基本控制器中进行开关。有人有任何想法解决这个问题吗?

范围上的任何内容都不应使用 gettextCatalog.getString

使用类似的东西:

$rootScope.stepText = gettext("My step 1 title");

和视图:

<h1>{{stepText | translate}}</h1>

最新更新