是否有非正式德语的语言环境代码 (de_DE-informal?)

Is there a locale code for informal German (de_DE-informal?)

德语有正式 ("Sie") 和非正式 ("Du") 两种形式。我想将一些软件翻译成非正式的德语,特别是 woocommerce using transiflex,但只能使用其语言环境代码添加新语言。

似乎只有 de_DE 作为语言环境。区分这两种形式的最佳方式是什么,难道不应该只为非正式形式提供另一个语言环境代码吗?

BCP 47 中定义的语言标签(当前为 RFC 5646)未指定任何德语的非正式与正式变体代码。尝试注册此类代码可能是不现实的,因此您将仅限于私人使用子标签,例如de-x-formal 与 de-x-informal。您的软件是否可以以任何方式处理这些是另一回事。

实用方面。 “Sie”与“Du”(或“du”)的选择几乎不是语言变体问题。标准德语使用这两个代词来称呼一个人,这取决于表达方式和与被称呼人的关系。在极端情况下,我们可以说在指令或用户界面中一般称呼用户的上下文中选择“Sie”还是“Du”是一个语言变体问题。不过实际操作的话,自己拿主意吧。

一般Gettext使用@来区分语言变体。所以在这种情况下它可能是 de_DE@informal。通过这种方式,Gettext 将正确处理语言环境并回退到 de_DE(与建议的 de_DE-x-informal 相反,后者不会以这种方式回退,因为 Gettext 会将 DE-x-informal 视为国家/地区代码)。

您可以在 https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html

找到更多关于语言环境命名的信息

既然您询问了 WooCommerce,解释 WordPress 如何处理它的当前状态可能是最相关的:

最好的方法是像 Michal 写的那样使用 locale variants,但 WordPress 有其独特的特点,不要使用变体语法。相反,他们在文件名中添加了第三个组件,但 not -x-informal 中的任何一个: de_DE.mo 是非正式的(也是回退,因为它缺少任何进一步的规范)变体WordPress 和 de_DE_formal.mo 包含正式变体。