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"