使用带有 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" 时生成的文本。