手动添加 gettext 翻译键
Add gettext translation keys manually
我正在使用 phoenixframework 创建一个项目,并使用 gettext 添加一些翻译。命令 mix gettext.extract --merge
从控制器和模板中获取我所有的翻译密钥,并将其存储在 .pot
和 .po
文件中。
但是我在配置文件中有一些翻译键,我将其用作表单 select 框中的 select 选项。目前我有一个键列表:[:key1, :key2, key3, ..., keyN]
.
现在我需要一个关键字列表来显示翻译和 select 使用 select 框的关键字。我的结果是这样的:[{"translation 1": key1}, {"translation 2": key2}, {"translation 3": key3}, ..., {"translation N": keyN}]
.
问题:
我不应该触摸我的 .pot
文件,我不能将我的翻译密钥写入我的 .po
文件,因为它们会在上面的命令 运行 之后丢失。文件将被覆盖。
有没有一种方法可以手动添加翻译,这样我就可以 运行 命令从我的项目中获取新的翻译而不会丢失我手动添加的翻译?
有一个解决方案,它可以与开箱即用的 elixir get text 实现一起使用。
关键词是:域名
起初我用我所有的翻译密钥创建了一个新的 pot 文件:
msgid ""
msgstr ""
"Language: en\n"
msgid "key1"
msgstr ""
msgid "key2"
msgstr ""
# ... and so on ...
我的文件名为 additionals.pot
。那我运行mix gettext.extract --merge
。现在我在每个语言目录中都有一个 additionals.po
文件,我现在在其中添加我的翻译。
在我的项目中,我现在使用 Gettext 模块的 dgettext
方法而不是 gettext
。 dgettext
让我指定一个域,它是新 additionals.po
文件的基本名称。
Gettext.dgettext(<MyProjectName>.Gettext, "additionals", "key1")
# => "translation 1"
就是这样,一切都按预期工作。
Here 是一篇关于 Gettext 的好文章。搜索 Domains 以查找有关如何使用 dgettext
的其他说明。
我正在使用 phoenixframework 创建一个项目,并使用 gettext 添加一些翻译。命令 mix gettext.extract --merge
从控制器和模板中获取我所有的翻译密钥,并将其存储在 .pot
和 .po
文件中。
但是我在配置文件中有一些翻译键,我将其用作表单 select 框中的 select 选项。目前我有一个键列表:[:key1, :key2, key3, ..., keyN]
.
现在我需要一个关键字列表来显示翻译和 select 使用 select 框的关键字。我的结果是这样的:[{"translation 1": key1}, {"translation 2": key2}, {"translation 3": key3}, ..., {"translation N": keyN}]
.
问题:
我不应该触摸我的 .pot
文件,我不能将我的翻译密钥写入我的 .po
文件,因为它们会在上面的命令 运行 之后丢失。文件将被覆盖。
有没有一种方法可以手动添加翻译,这样我就可以 运行 命令从我的项目中获取新的翻译而不会丢失我手动添加的翻译?
有一个解决方案,它可以与开箱即用的 elixir get text 实现一起使用。
关键词是:域名
起初我用我所有的翻译密钥创建了一个新的 pot 文件:
msgid ""
msgstr ""
"Language: en\n"
msgid "key1"
msgstr ""
msgid "key2"
msgstr ""
# ... and so on ...
我的文件名为 additionals.pot
。那我运行mix gettext.extract --merge
。现在我在每个语言目录中都有一个 additionals.po
文件,我现在在其中添加我的翻译。
在我的项目中,我现在使用 Gettext 模块的 dgettext
方法而不是 gettext
。 dgettext
让我指定一个域,它是新 additionals.po
文件的基本名称。
Gettext.dgettext(<MyProjectName>.Gettext, "additionals", "key1")
# => "translation 1"
就是这样,一切都按预期工作。
Here 是一篇关于 Gettext 的好文章。搜索 Domains 以查找有关如何使用 dgettext
的其他说明。