标签: angular-gettext

angularjs/gettext:如何翻译属性中的文本

我有一个像这样的HTML

<bar title="'My Title'"></bar>
Run Code Online (Sandbox Code Playgroud)

现在,当我想翻译它时,它看起来像这样

<bar title="'My Title'|translate"></bar>
Run Code Online (Sandbox Code Playgroud)

我没有{{和}}的原因是因为'bar'指令用'='将标题绑定到其范围

scope: {
    title: '=',
    ...
}
Run Code Online (Sandbox Code Playgroud)

问题是任务'nggettext_extract'不提取此文本,因为它正在大括号之间查找内容.我找到了解决这个问题的黑客:

<bar dummy="{{My Title'|translate}}" title="'My Title'|translate"></bar>
Run Code Online (Sandbox Code Playgroud)

但我希望有更好的解决方案来解决这个问题?

更新:我现在实现的解决方法是我更改了指令如下

scope: true,
link: function(scope, element, attrs) {
    scope.title = attrs.title;
}
Run Code Online (Sandbox Code Playgroud)

当然,如果有人知道更好的解决方案,请告诉我!

javascript gettext angularjs angular-gettext

6
推荐指数
1
解决办法
2983
查看次数

angularjs中的gettext模块不会在控制器中转换gettextCatalog.getString()

我使用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”);不会被翻译。

我认为这是因为我在基本控制器中进行了切换。有谁知道解决这个问题?

translation gettext angularjs angular-gettext

2
推荐指数
1
解决办法
1866
查看次数

angular-gettext:动态更改语言?

我在我的应用程序中使用了角度gettext.我现在有两种语言,并希望根据用户的喜好在UI中切换语言.我有两种语言的按钮 - DE和EN.

在控制器方法中,我设置了语言:

      $scope.changeLang = function (lang) {
                    gettextCatalog.currentLanguage = lang;
                    gettextCatalog.debug = true;

};
Run Code Online (Sandbox Code Playgroud)

在这样做时,UI中的语言似乎没有变化.使用angular gettext在UI中动态更改语言的正确方法是什么?

提前致谢.

gettext angularjs angular-translate angular-gettext

1
推荐指数
1
解决办法
3441
查看次数