组织本地化翻译文件的最佳方式
Best way to organize your localized translation file
当我开始构建一个项目时,.po t运行slation 文件中会有很多条目。我使用 Poedit 来构建这些。
我的问题是,此文件中条目的最佳做法是什么?我在想,而不是引用条目,例如:
echo _('This is an entry.');
我想像这样组织它们:
echo _('error_pwd');
echo _('error_user_taken');
其中,一旦 运行 通过 t运行slation 文件,将输出如下内容:
Password incorrect. Please try again.
Username is already taken. Please try another.
因此,我所有的 运行 文章都可以按类型组织,例如 error_
、msg_
、status_
、tip_
等。
有没有人见过这样做的,或者对更有条理的方法有什么建议?
这是其他框架的标准方法,例如Symfony/Laravel:
trans('error.validation');
但它有一个缺点,如果您忘记翻译您网站上的一个短语,它会显示为关键字 'error.validation'
其实没关系!
这完全取决于你。
但是,我建议您不要将翻译分成几个部分。
不,这样做没有任何好处。实际上,大多数项目对所有 msgid 条目都使用一个文件方法。
像 django,see.
当然,如果您仍想按部分拆分翻译,您可能想看看 Domains:
来自 PHP 文档:
This function (textdomain()) sets the domain to search within when calls are made to
gettext(), usually the named after an application.
此外,如前所述,将 msgid
用作真正的短语或单词(而不是下划线或点分符号键)的优点是,如果没有条目的翻译,它会保留为默认消息。
这里有一些有用的链接:
- Django Porject - i18n, Definition
- PHP textdomain function
- What is bindtextdomain, textdomain in gettext?
- How to determine which catalog to be used
当我开始构建一个项目时,.po t运行slation 文件中会有很多条目。我使用 Poedit 来构建这些。
我的问题是,此文件中条目的最佳做法是什么?我在想,而不是引用条目,例如:
echo _('This is an entry.');
我想像这样组织它们:
echo _('error_pwd');
echo _('error_user_taken');
其中,一旦 运行 通过 t运行slation 文件,将输出如下内容:
Password incorrect. Please try again.
Username is already taken. Please try another.
因此,我所有的 运行 文章都可以按类型组织,例如 error_
、msg_
、status_
、tip_
等。
有没有人见过这样做的,或者对更有条理的方法有什么建议?
这是其他框架的标准方法,例如Symfony/Laravel:
trans('error.validation');
但它有一个缺点,如果您忘记翻译您网站上的一个短语,它会显示为关键字 'error.validation'
其实没关系!
这完全取决于你。
但是,我建议您不要将翻译分成几个部分。 不,这样做没有任何好处。实际上,大多数项目对所有 msgid 条目都使用一个文件方法。 像 django,see.
当然,如果您仍想按部分拆分翻译,您可能想看看 Domains:
来自 PHP 文档:
This function (textdomain()) sets the domain to search within when calls are made to gettext(), usually the named after an application.
此外,如前所述,将 msgid
用作真正的短语或单词(而不是下划线或点分符号键)的优点是,如果没有条目的翻译,它会保留为默认消息。
这里有一些有用的链接:
- Django Porject - i18n, Definition
- PHP textdomain function
- What is bindtextdomain, textdomain in gettext?
- How to determine which catalog to be used