angularjs - angularjs 中的 gettext 模块不会翻译 Controller 中的 gettextCatalog.getString()

标签 angularjs translation gettext angular-gettext

我使用 Angular 的 gettext 模块来处理我的翻译。这几乎是完美的作品。 gettext

现在我有 2 个 Controller 。 1 称为基本 Controller ,其他 Controller 为每个 View 。因此基本 Controller 附加到 html 标签,并使用 ngRoutes 我将不同的 Controller 附加到每个 View 。

现在在基本 Controller 中我设置如下语言:

    //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。

问题是每个 Controller 我也有字符串。这些是在 javascript 中的,所以在 searchcontroller 中,例如我有:

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

这些翻译适用于全局事物,例如标题标题,每个 Controller 都会发生变化。

这也可以正常工作,但现在问题是开关。当我切换到英语时,所有文本都会被翻译,但 $rootScope.stepText = gettextCatalog.getString("step_1_header");

我认为这是因为我在基本 Controller 中进行了切换。有人有办法解决这个问题吗?

最佳答案

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

使用这样的东西:

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

在 View 中:

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

关于angularjs - angularjs 中的 gettext 模块不会翻译 Controller 中的 gettextCatalog.getString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30292000/

相关文章:

c++ - 从专有格式到 C++ 类

database - 如何粗略地自动翻译一次数据库的内容?

使用 antlr 和 line 指令的 C++ 代码插入

php - 使用 angularJs 和 laravel 4 的简单工作流程

javascript - 当字段包含用户输入时,ng-model 不会更改值

javascript - ionic 下载文件,保存到临时文件系统并使用默认应用程序打开

javascript - 使用 Babel CLI 提取器提取 Javascript gettext 消息

java - 如何在 selenium Web 驱动程序中获取跨度类值的属性

localization - 使用 gettext 和 .po 文件时组合键和全文

javascript - $urlRouterProvider.when() 内的 Angular-UI Resolve Promise 对象