【问题标题】:Angular-gettext extract annotations from javascript filesAngular-gettext 从 javascript 文件中提取注释
【发布时间】:2014-10-12 00:23:45
【问题描述】:

Gruntfile.js 中指定Angular-gettext we extract annotated strings from html

grunt.initConfig({
  nggettext_extract: {
    pot: {
      files: {
        'po/template.pot': ['src/views/*.html']
      }
    },
  },
})

是否也可以从 javascript 文件中提取字符串?

我有一个从 angularjs 控制器生成字符串的情况:

<textarea ng-model="generatedCSV"></textarea>

CSV 的标题行是:

"Full Name", "Email"

需要翻译成其他语言。

有没有使用 angular-gettext 的好方法?

【问题讨论】:

    标签: javascript angularjs translation gettext po


    【解决方案1】:

    编辑:对于未来的读者:也请阅读 OP 对此的评论,因为它包含有用的信息。

    根据网站(我玩过angular-gettext,但没用过这个功能):

    http://angular-gettext.rocketeer.be/dev-guide/annotate-js/

    如果您的 JavaScript 代码中有需要翻译的文本,通过调用名为 gettext 的函数来包装它。此模块提供了一个可注入函数来执行此操作:

    angular.module("myApp").controller("helloController", function (gettext) {
        var myString = gettext("Hello");
    });
    

    Hello 字符串将使用上面的代码添加到您的 .pot 文件中。

    你试过了吗?

    【讨论】:

    • 感谢链接解决了我的问题。 gettext('string') 只标记要翻译的字符串,但实际上并不翻译它。 getString 方法更有用,因为它将标记和翻译合二为一。 var 翻译 = gettextCatalog.getString("Hello");我还添加了 gettextCatalog 作为要注入的依赖项并将 *.js 正则表达式添加到我的 gruntfile 中。
    • 另外一件事要提到.. 在你的 html 中使用 {{translated|translate}}。这样,如果变量 translate 是在 getText 加载翻译映射之前设置的,它仍然可以在以后使用过滤器进行更新和换出。
    猜你喜欢
    • 1970-01-01
    • 2012-08-16
    • 2021-12-11
    • 2013-11-19
    • 2021-11-28
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多