我读到一个地方,如果你使用__()
, 和e()
自始至终,您不需要像WPML这样的插件。
这是不准确的。这些函数和WPML用于两种不同的用途。
WordPress网站可能需要翻译两种文本:
内容。这是作为存储在数据库中的内容输入WordPress的任何文本。这包括帖子和页面的主体,还包括标题、小部件和菜单等。模板字符串。这是指编码到模板和函数中的文本片段。例如,您的主题可能有一个;继续阅读“;循环中每个帖子的按钮。这个标签就是其中之一翻译功能,__()
, _e()
etc.专门用于处理#2,如果要允许翻译这些字符串,则它们是必需的。如果没有它们,这些字符串将始终是它们最初使用的语言。
您可以自己打包这些翻译,也可以只提供一个。pot文件,以便用户可以自己创建翻译。如果您的主题正确地实现了本地化,并通过WordPress分发。组织主题存储库,然后用户可以使用https://translate.wordpress.org 用他们的语言进行翻译。本文概述了WordPress中的本地化here.
对于#1内容,不需要这些功能。用户可以将他们的网站设置为他们喜欢的任何语言,并以他们喜欢的任何语言输入内容。唯一的例外是从右向左的语言。为了支持这些,主题需要为从右到左的语言提供样式。有一篇关于这个的代码文章here.
那么WPML的作用是什么呢?WPML提供了允许站点具有多种语言内容的工具。这适用于网站可能需要提供两种或两种以上语言的内容,并允许用户在两种语言之间切换的情况。WPML不需要翻译模板字符串,也不需要以作者选择的任何语言输入内容。它仅适用于需要多种语言内容的网站。
一些多语言插件,如WPML,提供了用于翻译模板字符串的内置工具。这些特性意味着用户不需要依赖主题作者提供翻译,也不需要了解翻译工具。但是,要使这些功能正常工作,您需要使用翻译功能。
总结如下:
正确使用翻译功能可以翻译主题的硬编码字符串您不需要自己提供实际的翻译。用户还可以使用其他工具自己进行翻译如果没有插件,使用翻译功能不会提供WPML的功能用户不需要WPML,除非他们以多种语言提供相同的内容始终阅读文档。WordPress关于本地化的文档是here.