国际化WordPress项目:WordPress 4.6更新
在整个系列中,我们已经完全介绍了使WordPress项目国际化所需要做的工作。 如果您还没有阅读过以前的任何文章,建议您将它们检出。
尽管在WordPress 4.6中对国际化和本地化的工作方式进行了一些更改,但这并不意味着先前的教程无关紧要。 这只是意味着您选择分发插件及其本地化的方式将会改变。
这就是我们将在本教程中介绍的内容。
开始之前
如前所述,本教程假定您已经掌握了本系列到目前为止讨论的所有内容。 这包括:
- 了解国际化及其重要性。
- 如何设置开发环境以使用示例代码。
- 了解本地化(以及国际化之间的区别)。
- 如何使用工具开始翻译国际化字符串。
如果以上都不符合要求,请复习该系列。 如果您有信心可以解释或使用上面的每个要点,那么您就可以准备继续。
了解变化
关于本教程的一件好事是,它比理论上(或实际的)更具信息性。 也就是说,将没有任何代码可以演示。 这只是为了传播信息,并确保您知道使用什么以及何时使用。
在我们深入探讨该主题之前,让我们先备份一下,讨论WordPress的整个国际化过程以及它如何与加载本地化文件一起工作。
国际化和本地化的工作方式
国际化和本地化的概念相对容易理解,但也很容易混淆(当我第一次在WordPress中开始工作时,甚至是我误用了术语)。
国际化是开发插件的过程,因此可以轻松地将其翻译为其他语言。
因此,这就是我们在插件中准备需要为其他语言环境转换的所有字符串和人类可读文本的方式。
然后,本地化实际上是翻译字符串并将其捆绑为语言包的行为,然后根据安装中设置的语言环境由WordPress加载这些语言包。
例如,假设我构建了一个插件,并且使用的是美式英语,或者您看到的是在en_US
语言环境中写的。 然后,您将看到我用语言写的所有文字。
但是,当有人想要使用该插件将其翻译成西班牙语时会发生什么? 首先,负责人将使用POEdit之类的工具为每个字符串提供翻译。
然后,她或他将这些内容存储在languages
目录(或使用的任何目录)中。 该文件应根据与其相关的语言环境来命名。 在这种情况下, es_ES
。
当插件在es_ES
语言环境设置为其默认语言环境的计算机上安装的WordPress安装中加载时,将加载本地化文件,并将所有翻译后的字符串替换为其西班牙语等效项。
长期以来,这就是国际化进程的运作方式。 此外,如果您选择在WordPress插件存储库之外分发插件,则仍然需要执行此操作。
但是,那些在存储库中分发的插件又如何呢?
即时翻译
在计算机科学中,有一个JIT(或实时)概念,我们经常听到它称为“实时”编译 。
在计算中,即时(JIT)编译(也称为动态转换)是在程序执行期间(在运行时)而不是在执行之前进行的编译。
在WordPress的最新版本(即WordPress 4.6)中 ,遵循特定协议的国际化插件可以利用即时本地化的优势。 在Make WordPress博客中 ,这些更改可以总结如下:
由于翻译文件通常位于wp-content / languages中,因此WordPress现在会在该目录中扫描可用的翻译,并在首次遇到文本域时自动加载它们。
这对我们的开发人员意味着什么? 简而言之,这意味着如果我们通过WordPress插件存储库分发工作,则WordPress将首先扫描其翻译库,以查看当前插件及其区域设置是否存在。 如果检测到一个,它将使用该一个。
如果未检测到翻译,则可能发生以下两种情况之一:
- 该插件根本不会本地化。
- 插件将使用插件随附的本地化文件。
但是,这种新方法有一些注意事项:
- 我们不再需要在基于WordPress 4.6的插件中调用
load_plugin_textdomain()
。 - 如果您习惯使用
unload_textdomain()
,则在调用后如果要再次使用它们,则需要手动加载翻译。
尽管它们很简单,但我强烈建议您完整阅读该博客文章 ,以了解其工作原理,功能以及如何将其应用于您日常工作中。
一般来说,我发现此功能非常好。 它使我们有机会分发可能已经提供翻译且可以通过WordPress加载的插件。
话虽如此,我认为不捆绑国际化文件不是借口。 毕竟,如果找不到语言包,那么仍然需要从languages
目录中加载它。
而且,如果最终目标是拥有最有弹性,最强大的插件,那么我们不应该依赖可能不存在的东西。 相反,我们希望有最好的,但要有最坏的打算。
结论
到此为止,我们已经涵盖了有关WordPress如何处理插件的国际化和本地化的所有内容,这些插件可以在WordPress插件存储库中使用,也可以通过自己的渠道进行分发。
如果您有兴趣从开发角度学习有关WordPress的更多信息,请注意,我专门使用WordPress,并且经常对此进行撰写。 您可以在个人资料页面上捕获我的所有课程和教程,也可以在@tommcfarlin的 博客和/或Twitter上关注我,在其中我谈论了WordPress上下文中的软件开发。
与往常一样,如果您正在寻找其他实用程序来帮助您构建不断增长的WordPress工具集,或者例如要学习和变得更精通WordPress的代码,请不要忘记看看我们在Envato中提供的功能市场 。
请不要在下面的提要中留下任何问题或评论,我将致力于回答每个问题或评论。
下面列出了许多资源。 请注意,这些内容来自先前的教程以及本教程中提到的内容。 综上所述,如果您已经阅读了以前的教程,那么您应该处于良好状态。 如果您选择不这样做,请至少查看以下链接。
还请注意,您可能有兴趣下载演示项目以检查源代码并查看其工作方式。 尤其是如果您要在WordPress插件存储库之外销售某些东西,这是正确的。