3

我试图让 angular-gettext 在离子中工作。有人可以解释如何做到这一点吗?目前还没有很好的解释。

4

1 回答 1

0

即使认为这个问题已经很老了,我最近仍然找不到太多关于如何将angular-gettext 入门指南改编为 Ionic 应用程序的信息。下面是我使用 IonicV1 和德语 (de_DE) 翻译的方法:


1) 安装 angular-gettext

<script>在主 html 文件中添加了该部分,index.html并将 angular 模块添加到app.run.js.


2)注释翻译

官方指南中没有充分强调的一件事是,您可以使用 String 来注释 JS 文件中的gettextContent.getString('English text') 字符串 'English text' 将自动选择进行翻译,类似于标记有指令的标签所发生的情况translate


3) 提取字符串

我使用了 angular-gettext-cli,因为我在 Ionic 项目中没有使用 grunt。从您的项目根目录创建一个文件夹i18n,然后:

angular-gettext-cli --files './app/**/*.+(js|html)' --exclude '**/*.spec.js' --dest './i18n/extract.pot' --marker-name i18n 

4) 翻译字符串

该指南完美地解释了如何使用Poedit从模板中构建.po文件。.pot


5) 编译翻译

angular-gettext-cli 帮助构建包含 Javascript 格式的所有翻译文本的 translation.js。

angular-gettext-cli --compile --files './i18n/de_DE_t.po' --dest './app/translations.js' --format javascript --module gettext

这将创建一个translations.js包含所有翻译的文件。


6) 启用转换(不是 angular-gettext 指南的一部分)

然后我将translations.js在上一步创建的添加到index.html

<script src="app/translations.js"></script>

最后通过指定要使用的语言来结束app.run.js

var appLanguage = window.navigator.language || window.navigator.userLanguage;
gettextCatalog.setCurrentLanguage(appLanguage);
于 2017-10-10T14:26:35.723 回答