我正在创建一个必须可翻译的插件。
在插件/我的插件/语言下,我有我的。采购订单。罐和。mo文件。
当我在本地插件中翻译一些东西时,我可以看到翻译按预期应用,并且立即可见。
本地插件直接编辑。插件文件夹下的po文件,这样一来,我的插件的任何更新都会导致用户手动插入的翻译丢失。
我认为(并希望)翻译是写在文件夹wp-content/languages/loco/plugins/my-plugin中的。在翻译时(当我使用_uu(“translatedKey”,“我的插件”)),翻译值首先从wp内容/语言/本地/插件/我的插件读取,如果此处缺失,则返回到插件/我的插件/语言。
这样,任何插件更新都不会覆盖已翻译的密钥。有什么方法可以实现这个目标吗?
最合适的回答,由SO网友:Tim 整理而成
我认为(并希望)翻译是写在文件夹wp-content/languages/loco/plugins/my-plugin中的。
它们是,但仅当您在该位置创建文件时。
任何希望自定义您提供的翻译的用户都应该创建一个新的翻译文件,而不是编辑您的翻译文件。打开提供的采购订单文件并开始编辑不会自动在其他位置创建自定义副本。(它不知道编辑的人是你——作者还是其他人)。
如果您提供了一个有效且命名正确的POT文件,那么他们所要做的就是单击Add language 并选择自定义位置以创建自己的版本。如果您没有提供POT文件,他们可能希望遵循this guide 这说明了如何将您提供的PO文件作为其自定义翻译的基础。
在翻译时(当我使用_uu(“translatedKey”,“我的插件”)),翻译值首先从wp内容/语言/本地/插件/我的插件读取,如果此处缺失,则返回到插件/我的插件/语言。
一旦用户有两个相同语言的文件,就会发生这种情况。
创建自己的文件后,他们将在自定义文件夹(他们的)和插件文件夹(你的)下各有一个。Loca Translate的loading helper确保首先使用它们的自定义翻译,并在您的文件中查找丢失的翻译。