此教程是TranslatePress设置使用教程,如果还没安装,点击下载TranslatePress Business插件。TranslatePress (简称TP)是我们心目中最优秀的翻译插件,也是目前我们发现的少数能在国内使用自动翻译功能,有SEO效果,支持手动修改翻译的插件。
能在导航栏插入语言切换器,兼容Elementor,能在ele编辑界面设置任意内容在某些语言中显示/隐藏。本站英文版本也使用TranslatePress Business制作。我们觉得TranslatePress是目前最合适的中国大陆境内WordPress网站多语言解决方案。
TranslatePress设置使用教程
点击网站顶栏"翻译网站"下的“设置”进入设置界面。
先进入“附加功能”设置。Active (打开) 下图↓4个功能,其它功能请根据实际情况决定是否开启。
Seo Pack:建议启用,让翻译的语言具有SEO效果。可以翻译小语种的SEO标题,SEO描述,网址,设置HTML lang 属性,以及 facebook 和 twitter 社交图信息的 SEO 支持。让小语种具备SEO效果,获得更好排名。点击查看详情。多语言站点地图支持所有流行的 SEO 插件:Yoast SEO、Rank Math、AIOSEO、SEOPress。
Multiple Languages:建议启用,可以添加多种翻译语言,不开启只能添加一种。
DeepL Automatic Translation:启用后可以使用DeepL自动翻译功能,国内可以使用,没被拦截。它号称神经翻译,翻译准确度谷歌翻译高。大陆地区信用卡无法注册开通DeepL api,需要去淘宝花39左右买一个终生有效的免费api。如果使用谷歌自动翻译,这个功能不用打开。
Browse As User Role:建议启用,能在手动翻译界面切换用户身份,这样就可以查看并且翻译基于登录/未登录状态的动态页面内容。
自动用户语言检测:启用可以根据访客IP地址、浏览器语言弹出一个语言选择框,让访客选择进入哪个语言版本页面。也可以设置根据访客IP地址、浏览器语言自动进入相应语言版本页面(无需先选择语言)。
启用后页面加载速度会慢很多,不建议启用。
接下来进入“通用”版块,按下图设置。
1是网站默认语言,2选择要添加的新语言,按3添加语言。
Formality是设置DeepL翻译d 语言是偏口语化还是偏正式,点击查看详细解释。默认是Default,不要管它。
按下图设置↓,记得点“保存更改”。其中“为默认语音使用子目录”一定要选否,不然的话默认语音主域名后面会被添加上域名简写后缀,很难看还可能导致错误网址错误页面打不开。
“高级”版块能修改一些兼容性设置以及增强翻译功能,如果使用过程遇到问题或者想实现一些额外功能,来这个版块看看。默认情况下不建议修改这里的设置,我们在多个站点使用这个插件没出现过什么问题。至此插件已经设置完毕可以正常使用。更多设置细节请查看TP官方文档,如果需要手动翻译或者手动矫正翻译结果请看下方教程。
“禁用动态翻译”建议勾选启用,这可以提高页面性能和速度,同时减轻服务器压力。如果前端有些文字内容翻译不了,再取消勾选这个功能看下恢复没。
排除某些页面、内容被自动翻译
自动翻译
进入自动翻译板块,“启用自动翻译”那里选 “是”,在“Alternative Engines”那里选翻译引擎,只能选“谷歌翻译v2”或者“DeepL”。第一个“TranslatePress AI”需要额外购买官方翻译服务才能使用,很贵,别选它!
下图是选“谷歌翻译v2”后的界面↓,输入翻译api,点“保存更改”。
下图是选“DeepL”后的界面↓,选择api类型后输入翻译api,点“保存更改”。
关于自动翻译:每个字符仅翻译一次,相同内容只需翻译一次,翻译结果永久存储在数据库中。一个汉字= 2个字符,一个英文字母= 1个字符(例如apple单词算5个字符),不可见的字符,如空格、制表符、换行符等也算作字符。50万个字符≈15万个汉字。
DeepL比较简单易用,翻译准确率高点,费用很低,大陆可用,缺点是支持的语言很少(不支持简体中文)。谷歌翻译注册麻烦需要绑定信用卡而且没法控制消费金额,大陆不能用,唯一优点是支持非常多语言。
谷歌自动翻译现在新注册账号前3个月免费(官方政策可能随时变,请注意查看),3个月后开始超出免费额度收费。谷歌自动翻译大陆服务器不能用,可是支持的语音非常多!
注意:尽量不要启用“自动翻译鼻涕虫(slug/网址)”功能,它跟一些缩短/改变页面网址的插件不兼容,会导致多语言页面打不开。
如果设置超过4种语言,文章字数多很容易超过翻译额度,要注意免费翻译字符剩余额度。
DeepL自动翻译
如果是服务器在大陆,只能选择DeepL翻译(谷歌被屏蔽),填入DeepL free API Key (Pro Key也行) 点保存后过网站会自动开始翻译,过2-3分钟去前台切换到其它语言可以看到页面内容已经被翻译。如果你的站点本身权重不错的话,过10分钟左右多语言版本就会被搜索引擎索引,能通过网址搜索到。
注意: DeepL翻译只支持26种语言,不支持阿拉伯语、繁体中文(谷歌翻译支持)等。DeepL free API Key每个月前50万个字符免费(大约25万个汉字),超额停止翻译不会扣钱,下个月自动恢复额度自动开始继续翻译。
DeepL free API Key可以使用国外信用卡免费注册,也可以去淘宝买 。注意:DeepL free API现在风控变严格,有封号风险,不过我们买了几个用了几年没被封号。购买前问清楚商家质保期,一般质保30-60天,期间失效会补新key。
淘宝价格经常变动,最便宜的时候几块钱,贵的时候去到39左右。我们没有推荐的商家,请自己货比三家购买。
如果注册不了free API Key,网站内容也多建议淘宝买一个月Pro API Key (不限制翻译字数)把整个网站翻译完。然后再改用下面教程的Yandex翻译教程手动翻译新增内容(新增内容不多,语言不多的话翻译也挺快)。
先问清楚客服再拍!说清楚要买的是Deepl api free账号,直接发账号密码给你自己登录,查看api的那种账号。有钱买Pro API也行。
使用DeepL翻译API有时会出现下图Languages without formality错误,提示不支持某些语言(谷歌翻译API不会出现这个问题)。意思是这些语言不支持DeepL 翻译的formal/informal功能,这个功能是设置翻译后的语言是偏口语化还是偏正式。
点击“重新检查支持的语言”检测一般提示会消失,如果提示没消失直接忽略就行。如果你很想消除这个提示,服务器又在国外的话建议改用谷歌翻译API。
我们问过官方客服,这个Languages without formality不影响自动翻译,无关痛痒,只要通用设置里所有语言保持默认选“Default”就行。
谷歌自动翻译
如果网站服务器在国外,可以使用谷歌翻译,支持80多种语言,点击进入免费谷歌翻译API注册教程。谷歌翻译每月前 50万个字符免费,超过之后每100万个字符收费$20,点击查看计费标准。新注册用户前3个月免费,随便折腾。
谷歌翻译api注册很麻烦,需要绑定结算账号(这样超过额度能扣钱)。开通谷歌翻译API后一定设置一下HTTP referrer以及配额和消费阈值提醒,随时掌握消费情况避免被大额扣费。迪亚莫建议新手使用DeepL API Free比较方便。
保存后如果API正确会显示下图红色框的绿色标志,如果提示API错误点击“测试API凭据”看下API有啥问题然后自己更正。
阻止爬虫:按需设置,不启用的话爬虫会触发自动翻译,有助于加快其它语言的翻译速度。
其它设置按图。如果你使用了Rank Math, Yoast等插件删除了Woocommerce产品列表页以及详情页的网址前缀/base,一定不要勾选Automatically Translate Slugs!不然的话列表页和产品详情页会打不开。具体原因请移步下面“常见问题以及解决方法”。
Yandex自动翻译
除了使用API自动翻译之外,也可以安装免费Automatic Translate Addon For TranslatePress辅助插件实现半自动翻译。这个插件会在TranslatePress手动翻译界面新增一个自动翻译按钮,点击之后可以使用Yandex自动翻译当前页面,这样就不需要每条手动翻译,非常方便。
注意:这个插件不会全自动翻译,必须进去手动翻译界面点击自动翻译按钮才会翻译自动整页内容。每个页面、每种语言都需要这样操作翻译,每次翻译后记得先保存。
如果无法弄到谷歌和DeepL自动翻译API,使用这个插件半自动翻译也是不错的选择。网站页面如果不多的话也不需要花费太多时间。
如何手动翻译/纠正翻译
专业名词、公司/品牌名等一般翻译不太准确,尤其是英译中。建议自动翻译完成后进入手工翻译界面查看下翻译结果,把错误地方翻译修改过来。
不同语言文字长度不一样,法语之类单词偏长的语言可能因为内容太长导致排版错乱。翻译后很有必要查看每种语言显示效果,排版错误的语言手动纠正翻译缩短内容。
直接点击网站后台顶部的“翻译网站”进入翻译界面。
进入翻译页面后点击要翻译的内容,左边会弹出该内容翻译界面,直接修改翻译点击保存即可。(点击下图放大后清晰点)
如果要翻译Seo标题、元描述之类,直接点红色“选择要翻译的字符串...” ,会弹窗可翻译翻内容,手动点击选择标题、SEO描述之类。然后输入/更新翻译结果就行。“元信息”下面的就是SEO标题,描述之类。
在其它语言框里输入想要的翻译结果,点“保存翻译”保存。
点击“字符串翻译”(英文的话显示String...)进入网址翻译界面。上面已经提过如果移除了产品列表页和详情页的网址前缀 base,就不能翻译网址,否则页面会打不开显示404。
如果没有修改过网址结构,又想手动翻译/修改网址翻译结果,参考下图操作。点1选择要翻译的内容,点2“编辑”翻译内容,在3输入翻译结果,点4保存。
常见问题&解决方法:
更多教程和常见问题建议查看官方文档,文档找不到答案就去官方论坛找相应问题答案,或者发帖询问,客服会在1-2天内回复。
1- 产品列表页、详情页等页面打不开
如果使用了Rank Math、ProYoast、Permalink Manager等插件的romve base (缩短网址)功能修改页面网址,并且TranslatePress启用了自动翻译url slug,会导致其它语言的相应页面显示错误。
这是个Bug,我联系过TP和Rank Math插件的客服,它们表示不兼容。解决办法是在TP的"设置">"自动翻译">"Automatically Translate Slugs"不打勾,禁用掉url自动翻译。
如果禁用后翻译的语言产品列表页/详情页链接没有恢复成默认语言,可能是因为之前已经翻译了,保存了旧的翻译。需要进入手动翻译页面,点击左下角的“String翻译”或“字符串翻译”,把产品列表页和详情页标题其它语言的翻译结果删掉然后点保存。清理缓存后刷新前台页面应该能正常显示。
不翻译Url对SEO的影响微乎其微,基本可以忽略不计。中文网站网址基本是拼音或者英文,英文网站的图片或者页面网址也有很多是用数字或者字母命名,基本不影响SEO。
2022年4月10号更新:Rank Math 1.0.86.2新版本兼容WPML的自动翻译url slug功能,虽然还是不兼容TP,但也看到了一点曙光。我已经把这个问题反馈给Rank Math,它们回复说已经在修复。
2- 自动翻译失效、翻译慢
在“自动翻译”里面输入api后一般马上会自动开始翻译,“今天翻译的字符数”那里会显示有数字,内容不多的话很快翻译完。如果过了几个小时有些语言依然没有翻译,是因为网站没有访问量,没有触发翻译。
我问过官方客服,下图是Alex的回复。简单地说需要有人访问前端多语言页面触发自动翻译,例如当访客访问你网站的德语版本首页时,后台才会开始自动把首页翻译成德语。如果一直没人访问德语版本首页,首页就不会自动翻译成德语。
如果你网站翻译慢,可以打开浏览器隐身模式,逐一访问网站前端多语言版本页面触发自动翻译。
如果“今天翻译的字符数”那里一直显示为0,可能是API有问题(例如超出翻译额度)或者网站有问题,自己排查。
分享个案例:有个客户反馈说自动翻译突然失效。我们在多个站点深度使用TP翻译插件,没出过问题,第一感觉是他的翻译密匙出问题。
进入TP翻译插件设置>自动翻译,点击Key下面那个测试按钮,发现是谷歌翻译密匙出问题。
3- 提示Languages without formality
我们在上面DeepL自动翻译设置里解释过这个问题,出现这个提示是因为翻译的语言中有些不支持DeppL翻译的formal/informal功能 (谷歌翻译API没这个问题)。这些提示不影响自动翻译功能,只影响翻译结果是偏口语化还是正式。
点击“重新检查支持的语言”检测一般提示会消失,如果提示没消失其实忽略也没事。我们问过官方客服,这个功能不影响自动翻译,无关痛痒,只要通用设置里所有语言保持默认选“Default”就行。介意的话改用谷歌翻译API(大陆以外服务器才能用)。
有个用户反馈他网站提示Languages without formality问题↓,依然能够自动翻译,只是翻译的速度很慢 (网站需要有访客访问相应多语言页面才会触发翻译)。我们有个客户网站日本语言也提示这个错误,也能够自动翻译。
4- 网站默认语言无法更改(已修复)
之前TranslatePress新增一个“首选用户语言”功能,会导致“站点语言”跟随“用户语言”,无法更改。中文网站没啥影响,英文网站有点影响。
用户语言↓
导致站点语言↓无法更改
后续跟进:我们联系官方团队反馈这个Bug,它们已经在2.4.3版本修复该问题。
5- Elementor编辑页面提示404或者一直闪烁
如果启用自动用户语言检测,并且使用下图的自动跳转↓,并且你的语言和编辑器语言不一样,就会导致Elementor编辑器页面自动跳转到相应语言版本。可是Elementor编辑界面只有一种语言,无法调整,所以一直在跳(收缩)或者提示打不开。
只要临时改用下图的弹窗询问是否跳转就行,到时候选择网站默认语言就行。或者直接把自动用户语言检测功能关闭。
2023.03.27:我们已经把这个Bug反馈给TranslatePress团队,希望尽快修复。
6- 翻译按钮不显示
有个客户买了插件反馈顶部翻译按钮↓不显示,第一次遇到这种问题,我们异常兴奋。这个插件功能一直很稳定,第一感觉是插件冲突之类。
进入客户后台发现同时安装了Gtranslate翻译插件,直接删除Gtranslate后按钮正常显示(禁用不行,得删除)。可是无法保存插件设置,提示下图↓错误。
发现是Wordfence防火墙拦截导致,启用学习模式后问题解决,可以保存TranslatePress插件设置。
7- 翻译语言页面布局错乱
不同语言单词长度不一样,例如法语单词比英语长,从英语切换到法语后界面排版可能出错。
上面↑是英文页眉,下面↓是法语页眉,导航太长变成2行。
解决方法:能删除的内容尽量删除让页面变简洁。无法删除就换个更短的翻译,例如上面右边蓝色按钮的英文INQUIRY按钮翻译成法语后太长,我们使用谷歌翻译翻译可以把INQUIRY翻译成enquête,大大减少长度。
进入网站手动翻译界面,把相应法语翻译改成enquête,点保存。
再把Contact Us变成Contact翻译成法语缩短长度后,法语页眉↓显示恢复正常。
8- 修改翻译内容
自动翻译真的是错误百出,一定要检查下每个页面的翻译,最起码要检查一下公司名字、产品名称之类有没有翻译错误。有个客户对翻译要求很高,每个语言每个字去检查,汇总给我们修改。分享一下修改翻译经验。
使用顶部按钮 进入翻译界面,有时候网络不好可能会卡,顶部一直在转圈圈,需要等待几秒钟才可以选择内容翻译。如果等待了还是不行试下关闭页面,重新打开翻译界面。
网站页面浏览器标签显示的SEO标题 ,在翻译string框输入meta查找。如果找不到,或者很多页面需要批量改的话可以用数据库工具搜索替换工具Better Search Replace替换,又快又好。
注意:替换数据库内容要先备份数据库,以免出错。替换时主要不要替换网址、登录用户名等重要内容包含的文字单词等,不然会损坏网站。
注意:包含_trp_开头的表才会存放翻译结果数据,选中所有包含_trp_开头的表。
记得勾选“Run as dry run”,替换不生效,只是查看能否替换成功之类。
测试能替换成功的话,取消勾选下图“Run as dry run”,点击“运行搜索/替换 ”开始正式替换内容。
替换成功顶部会显示下图内容。
9- 如何使用 TranslatePress 条件短代码显示基于语言的内容
Elementor小部件高级选项里有基于语言显示内容的选项(下图)。
如果页面内容不是由Elementor制作,可以使用条件短码来控制内容只在某些语言显示。实例,下面文字内容和图片只在英文版本出现,在中文等非英语版本不会显示。
扩展:如果要单独修改某些语言的页面排版,可以添加CSS并且使用上面2种方法设置CSS代码只在某些语言当中显示即可。例如阿拉伯语页面内容默认从右往左排版,如果想单独更改其中一些版块内容为左对齐,可以添加代码到阿拉伯语页面控制。
10- 排除某些内容被翻译
具体方法查看官方这篇文章,很详细。如果有些内容已经翻译了,例如说询盘/表单通知邮件,需要手动删除翻译,点击查看具体方法。
如果不想某些页面被翻译多语言,在 “设置” > “排除字符串” >“不要翻译某些路径”里面填入相应页面网址点保存就行。一行一个网址,注意网址格式写法。
如果想排除某些内容被翻译,输入相应内容所在容器(div/p/span之类)的classname点“添加”,再点“保存更改就行”。
17- 列表页之类不能自动翻译
也可以手动编辑代码,给属性添加 data-no-translation 排除被翻译,点击查看详情。还可以输入网址路径排除整个页面被翻译↓。
11- 破解版提示序列号无效
如果你使用的是破解版,后台会提示下图内容。所有功能正常使用,没有影响。如果想去掉这2个烦人提示,只需添加2段代码,点击查看详情。
12- 如何翻译 WooCommerce 电子邮件
Woocommerce等插件有很多邮件模板,当客户注册,购买时会自动发送邮件。对于多语言电商网站,需要翻译邮件模板。点击查看官方教程。
13- 非登录状态多语言的SEO Title和SEO Description显示为原文
有个用户反馈手动翻译多语言页面的SEO Title和SEO Description,在登录状态下多语言页面正常显示翻译后的SEO Title和SEO Description。可是非登录状态(访客模式)下多语言的SEO Title和SEO Description显示为原文(未翻译状态)。
最后发现是他使用Asset CleanUp插件把非登录状态的TranslatePress代码禁用了,导致功能异常,取消禁用就行。
小插曲:他使用的是SiteGround服务器,一开始禁用其它插件清理缓存也没恢复正常,多次尝试才可以。如果使用SG服务器,调试时最好进入SG服务器管理面板手动清理所有缓存或者临时禁用缓存。
14- 多语言版本如何使用子域名
这个翻译插件多语言无法使用子域名形式(ru.example.com),只能使用子目录形式(example.com/ru)。子目录形式的多语言可以得益于根域名的权重,SEO效果比子域名好,并且容易管理,速度快。要使用子域名形式需要改用SMPL等多语言插件,不过SMPL之类插件太臃肿,速度慢又不好用。
15- 使用插件后网站速度变慢
有个用户反馈使用TranslatePress后,网站速度变慢。当看到30个多语言的时候我也是吓了一跳。一般选3-5个多语言就行了,再多也不会有访问量浪费资源。
其实插件本身不会卡,我们在多个网站深度使用没发现有这个问题。语言多按理说也不会导致卡,都是预先翻译保存在数据库,访问时直接调取。后来发现是缓存的事。每一种语言都会单独生成缓存,尤其是更新网站内容之后,重新生成31种语言的缓存,能不卡死嘛。
预缓存或者重新生成缓存很吃服务器资源,语言越多需要生成缓存和预缓存的页面就越多,服务器就越卡,对于低配置服务器来说是不能承受之重。Fastest Cache一次预缓存页面数量最多12,Wp Rocket可以去到40多,具体看设置和服务器性能。
解决速度卡的方法就是尽量减少多语言数量,建议保留3-5种,可以的话预缓存设置下不要预缓存一些不重要的页面。同时也要使用性能好点的缓存插件,例如Wp Rocket,可以精准生成和控制缓存、预缓存。
16- 多语言添加界面无法点击保存更改按钮
有些网站会出现下图“保存更改”按钮无法点击的情况,查看源代码发现有一个透明板块遮挡住那个按钮。是你网站插件或者浏览器插件冲突导致,换个浏览器试下,还是不行的话禁用除了翻译插件外的其它插件,重试即可。
17- 列表页之类不能自动翻译
有个用户反馈首页能自动翻译,可是列表页无法自动翻译,使用浏览器访问前端相应语言页面触发翻译也不行。原因是伪静态设置有问题,他的网址是index.php后缀。调整伪静态后恢复正常。
共享主机或者托管式VPS主机会预设好伪静态,不需要处理。宝塔面板也可以一键添加伪静态,使用一切正常。一般是玩家手写伪静态,才会造成这个问题。
18- trp-ajax.php、skip_machine_translation错误
管理员前端访问网站提示下图内容,WordFence防火墙也提示访问相应网址被判定为XSS攻击,被拦截,宝塔防火墙监控报表也可以看到相应拦截记录。实际上误报,是TranslatePress使用trp-ajax.php插件执行数据库链接被误判XSS攻击,点击查看详情。
解决方法有2个:
1- 在WordFence“实时流量”板块找到相应下图拦截记录,点击“Add Param to Firewall Allowlist”添加白名单,如果服务器和CDN防火墙有拦截的话也要添加白名单;
2- 安装这个帖子中的插件,改变TranslatePress运作方法,这个方法最简单适合小白用户。