使用带有 i18next.t() 的数字变量来生成 gettext .po 文件
Using number variables with i18next.t() for generating gettext .po files
我正在为译员生成 .po
文件。我目前在我的 React 应用程序中使用 i18next
生成 translation.json
文件,然后使用 i18next-conv
将其转换为 .po
文件。
我正在使用 gettext
方法,其中我的密钥基本上是我要转换的英文字符串。这很好用,但在某些用例中我担心灵活性。
例如,我有一个出生日期错误字段,如果此人小于 12
岁,我们将向用户显示:"Must be 12 years or older!"
.
所以目前我只使用:i18next.t('Must be 12 years or older!')
我想知道是否可以使 12
成为一个变量,以便有一个用于此翻译的模板。例如。如果年龄值有后端提供的变量怎么办,如何使用我正在采用的当前标准使该变量成为变量?
我能够通过编写以下内容来解决问题:
i18next.t('Must Be {{minAge}} Years Or Older', { minAge: MIN_AGE })
其中 MIN_AGE
是变量。
这似乎工作得很好,然后在 .po
文件中,该行如下所示:
msgid "Must Be {{minAge}} Years Or Older"
msgstr "Must Be {{minAge}} Years Or Older"
并且 .json
文件转换为:
{
"Must Be {{minAge}} Years Or Older": "Must Be {{minAge}} Years Or Older"
}
以及 MIN_AGE=16
按预期呈现 "Must Be 16 Years Or Older"
时生成的文本。
我正在为译员生成 .po
文件。我目前在我的 React 应用程序中使用 i18next
生成 translation.json
文件,然后使用 i18next-conv
将其转换为 .po
文件。
我正在使用 gettext
方法,其中我的密钥基本上是我要转换的英文字符串。这很好用,但在某些用例中我担心灵活性。
例如,我有一个出生日期错误字段,如果此人小于 12
岁,我们将向用户显示:"Must be 12 years or older!"
.
所以目前我只使用:i18next.t('Must be 12 years or older!')
我想知道是否可以使 12
成为一个变量,以便有一个用于此翻译的模板。例如。如果年龄值有后端提供的变量怎么办,如何使用我正在采用的当前标准使该变量成为变量?
我能够通过编写以下内容来解决问题:
i18next.t('Must Be {{minAge}} Years Or Older', { minAge: MIN_AGE })
其中 MIN_AGE
是变量。
这似乎工作得很好,然后在 .po
文件中,该行如下所示:
msgid "Must Be {{minAge}} Years Or Older"
msgstr "Must Be {{minAge}} Years Or Older"
并且 .json
文件转换为:
{
"Must Be {{minAge}} Years Or Older": "Must Be {{minAge}} Years Or Older"
}
以及 MIN_AGE=16
按预期呈现 "Must Be 16 Years Or Older"
时生成的文本。