此教程是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標題
注意:替換數據庫內容要先備份數據庫,以免出錯。替換時主要不要替換網址、登錄用戶名等重要內容包含的文字單詞等,不然會損壞網站。
注意:包含_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運作方法,這個方法最簡單適合小白用戶。