php – 组织本地化翻译文件的最佳方式

当我开始构建项目时,.po翻译文件中会有相当多的条目.我使用Poedit构建这些.

我的问题是,此文件中的条目的最佳做法是什么?我在想,而不是引用如下条目:

echo _('This is an entry.');

我在考虑组织他们:

echo _('error_pwd');
echo _('error_user_taken');

其中,一旦浏览了翻译文件,就会输出如下内容:

Password incorrect. Please try again.
Username is already taken. Please try another.

因此,我的所有翻译都可以按类型进行组织,例如error_,msg_,status_,tip_等.

有没有人看到它以这种方式完成,或者对更有组织的方法有任何建议?

最佳答案 其实没关系!

这取决于你.

但是,我建议您不要在部分中拆分翻译.
这样做没有任何好处.实际上,大多数项目对所有msgid条目使用一种文件方法.
像django,see.

当然,如果您仍希望按部分进行拆分翻译,可能需要查看Domains

来自PHP doc:

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

点赞