WordPress多语言主题完整教程

如果只需要翻译不需要链接形式SEO收录的话,就用Gtranslate插件,直接开始谷歌翻译,可以放多种语言

下面讲的是用polylang插件的完整操作方法,手动翻译创建多语言主题

首先要确保主题和插件符合i18n标准

也就是主题和插件要经过一系列符合wp标准的改造。

首先要设置下text-domain, 主题在styles.css里面设置,插件在插件主要文件里面设置。

然后主题要通过函数启用这个text-domain, 在after_set_up钩子回调函数里面,启用 方法: load_theme_textdomain( ‘codeblog’, get_template_directory() . ‘/languages’ );

插件的话则是通过 plugins_loaded钩子,执行 public function load_textdomain() {
load_plugin_textdomain(
‘wpt-simple-tables’,
false,
dirname(plugin_basename(FILE)) . ‘/languages’
);}

主题和插件模板文件需要翻译的部分可以交给AI,丢给他 : make this file i18n capable, AI 就会理解, 然后自动给你每个文本都添加翻译函数。

然后是要确保生成pot文件,这个可以通过wp-cli来实现,安装好wp-cli之后,执行下面的命令:

wp i18n make-pot . languages/my-pro-plugin.pot

这段没有确认过: 当你翻译好.po文件之后,你需要压缩js文件到json这样的话wp-i18n可以读取到,如果要执行js文件的翻译的话,执行下面

wp i18n make-json languages/ –no-purge

主题如果用underscore的话直接生成了.pot文件,如果没有的话也需要用wp-cli生成

关于.pot 和 .po和.mo文件

.pot是主题翻译的模板,是类文件,可以根据这个文件翻译无数的.po文件,更改翻译的地方在.po文件,.mo文件是生成机器可读的版本,是通过机器生成的,我们这里主要用的是poedit

安装好Poedit之后,点击.pot文件就可以创建翻译了,如果.pot文件的翻译文本没有完全的话,需要通过代码进行导入,需要在poedit软件里面设置下翻译的属性,选择路径,设置为主题的根目录文件夹,而不是languages文件夹。

然后要设置下源关键词,就是wordpress的i18n的翻译函数,具体可以看最后补充的两个文件。

主题和插件的po文件的命名

主题的话直接命名为语言就可以了,比方说zh_cn.po, 插件的话需要加上插件的text-domain, 比方说插件的text-domain为simple-fields的话,那么.po文件就要命名成 simple-fields-zh_cn.po 文件,在poedit保存的时候要自己改。目前还没有完全清除逻辑。后续会更新

怎样翻译模板的文本和标签

这个直接复制你的.po的文件(确保是通过代码更新最完整的部分,确保代码里的翻译的text-domain要正确), 到任何AI页面,可以让AI 给你翻译,将po文件直接复制出来,粘贴上去,具体提示词为:

I need you to translate a WordPress .po translation file from English to [TARGET LANGUAGE].

IMPORTANT RULES:
1. Only translate the text inside msgstr "" (leave it empty currently)
2. Do NOT translate the text inside msgid "" (this is the source text)
3. Keep ALL placeholders like %s, %d, %1$s exactly as they are
4. Keep ALL HTML tags like <strong>, <a>, <br> exactly as they are
5. Keep ALL special characters like \n (newline), \" (quotes) exactly as they are
6. Keep the exact same structure and formatting
7. Do not translate code references like #: functions.php:123
8. Maintain the same number of quotes and line breaks

Here is the .po file content to translate:

[PASTE YOUR .PO FILE CONTENT HERE]

文章的选项,字段, 模块模板标签都是这样子翻译,动态的内容就交给polylang翻译,但是字段的值目前还没测试过动态翻译,字段的标签是随着.po文件一起翻译,详情看文件夹里的polylang翻译的具体教程。

如何用polylang进行翻译

Polylang是最推荐的手动翻译的插件,其他比如说translatepress也可以。

模板的标签全部由.po文件翻译,动态的文件全部由polylang手动翻译。

安装Polylang之后,去后台进行设置,选择链接为en.ruixing.com这种,适合做seo和收录。

然后点击添加语言,比方说添加英文和中文,首先确定默认语言是什么,就是语言菜单栏里面点击下星标就可以。

然后在菜单栏语言的选项里选择语言,比方说选择中文后,在产品那里进行产品标题,标题的内容就是中文。菜单栏选择英文,编辑的页面就是英文。

模块的话也是一样的,只要设置好模块标签可翻译就行,内容也是随着polylang一起动态翻译的, 分类法这种都可以

需要在polylan那里设置下 自定义文章和分类的设置,勾选自定义文章和分类就好。

×
WordPress多语言主题完整教程

WordPress多语言主题完整教程

如果只需要翻译不需要链接形式SEO收录的...

查看更多

AI agent 如何翻译网站(标签+动态内容)

先让AI把网站进行i18n化, …