Page 396 - AngularJS权威教程
P. 396

376  第 27 章  本地化


                 $ npm install grunt-angular-gettext --save-dev
                 这个Grunt任务安装好之后,还需要在Gruntfile中加载它。使用标准的Grunt方法引用Grunt
             任务时,可以像这样在Gruntfile内部启用它:

                 grunt.loadNpmTasks('grunt-angular-gettext');
                 设置好之后,还需要从应用中提取要翻译的字符串。可以使用nggettext_extract任务做到。
                 为了设置这个任务,需要提供相应的配置信息。

                 实际上,在nggettext_extract任务中最重要的是files属性:

                 grunt.initConfig({
                     nggettext_extract: {
                         pot: {
                             files: {
                                                         *
                                 'po/template.pot': ['src/view/ .html']
                             }
                         }
                     }
                 });
                 此外,还可以在任务中包含一些选项,设置起始和终止标识符。如果要配置Angular使用不
             同的分隔符,那么可以在这个任务中设置这些选项:
                 grunt.initConfig({
                     nggettext_extract: {
                         pot: {
                             options: {
                                 startDelim: '//',
                                 endDelim: '//'
                             },
                             files: {
                                                         *
                                 'po/template.pot': ['src/view/ .html']
                             }
                         }
                     }
                 });

                 这样,就可以使用Grunt运行这个任务了,就像这样:
                 $ grunt nggettext_extract
                 这个任务运行完成后,将会得到一个po/template.pot文件。例如,对于这个模板:

                 <div ng-controller="HomeController">
                     <h1 translate>Hello {{ user.name }}</h1>
                     <h2 translate translate-n="count" translate-plural="{{ count }} books">{{ count }} books
                 </h2>
                 </div>
                 这会得到一个po/template.pot文件,它看起来像:

                 msgid ""
                 msgstr ""
                 "Content-Type: text/plain; charset=UTF-8\n"
                 "Content-Transfer-Encoding: 8bit\n"
   391   392   393   394   395   396   397   398   399   400   401