javascript - Angular-gettext 翻译服务似乎不起作用。

标签 javascript angularjs language-translation

我很难理解我做错了什么,我希望有人能提供帮助。我需要构建一个小应用程序来练习 angular-gettext。我按照这里的教程进行操作:http://lostechies.com/gabrielschenker/2014/02/11/angularjspart-12-multi-language-support/

但是,我的项目不会翻译。我在控制台中没有收到任何错误。我拥有所有必要的依赖项,并且一切似乎都正常工作(grunt、bower 等),因此它必须在实际代码中。可能是花括号之类的。

这是我的 app.js 文件:

var app = angular.module('app', ['gettext']);
app.controller("TestCtrl", function($scope){
    app.run(function(gettextCatalog){
        gettextCatalog.currentLanguage = 'de';
        gettextCatalog.debug = true;
    });

});

索引.html:

<!DOCTYPE html>
<html>
<head>

    <title>Translation Sample</title>
    <link rel="stylesheet" type="text/css"
            href="bower_components/bootstrap/dist/css/bootstrap.css"/>
</head>
<body ng-app="app">
<div ng-controller="TestCtrl">
    <p translate>Welcome to my app</p>
    <p translate>We want to test globalization and localization</p>
</div>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-gettext/dist/angular-gettext.js"></script>
<script src="app.js"></script>
<script src="translations.js"></script>

</body>
</html>

Gruntfile.js:

module.exports = function(grunt){
    grunt.loadNpmTasks('grunt-angular-gettext');

    grunt.initConfig({
        nggettext_extract:{
            pot: {
                files: {
                    'po/template.pot': ['**/*.html']
                }
            }
        },
        nggettext_compile:{
            all: {
                files: {
                    'translations.js': ['po/*.po']
                }
            }
        }
    })
};

Translations.js:

angular.module('gettext').run(['gettextCatalog', function (gettextCatalog) {
    gettextCatalog.setStrings('de', {
        "We want to test globalization and localization":"Wir wollen testen, Globalisierung und Lokalisierung",
        "Welcome to my app":"Willkommen auf meiner App"
    });
}]);

我知道这很长。感谢阅读并提前感谢您的任何建议。

最佳答案

这可能是一个 angular-gettext 错误:您的字符串在您设置语言后加载。随着 angular.js 最近的变化,这可能会中断。

我会对此进行修复。

更新:angular-gettext 1.1.2 已发布并修复了此问题(试试看)。请注意,在最近的版本中,currentLanguage 的使用已被弃用。您应该改用 gettextCatalog.setCurrentLanguage('de')

https://angular-gettext.rocketeer.be/dev-guide/api/angular-gettext/

关于javascript - Angular-gettext 翻译服务似乎不起作用。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574809/

相关文章:

javascript - 聚焦文本框时表单元素会波动

javascript - 如何知道哪个对象属性发生了变化?

python - 必应 AppID 无效

javascript - 谷歌翻译下拉菜单 - 设置该语言本身的语言选项标签

python - 使用 python 线程的语言翻译器

PHP Smarty 包含在 js 函数中

javascript - 如何从 ajax 调用中过滤 null 或未定义的值?

javascript - 当 Controller 中的范围值更改时,AngularJS ng-model 不会更新

javascript - AngularJs GPS 访问在其他州被拒绝

angularjs - 显示项目列表并通过 AngularJS 编辑它们