WordPress 主題和插件本地化翻譯:從入門(mén)到精通
WordPress,作為全球最受歡迎的內(nèi)容管理系統(tǒng),其受歡迎程度源于其強(qiáng)大的功能和卓越的可定制性與國(guó)際化特性。本文將深入探討WordPress的翻譯架構(gòu),揭示如何使您的插件與主題實(shí)現(xiàn)全球化,進(jìn)而造福世界各地的用戶(hù)。
WordPress翻譯機(jī)制的基本原理
WordPress的本地化過(guò)程基于相對(duì)簡(jiǎn)單的gettext系統(tǒng)。不了解它的人可能會(huì)感到困惑。概而言之,開(kāi)發(fā)者通過(guò)定義函數(shù)標(biāo)記待翻文本,系統(tǒng)將這些文本提取至模板文件(.pot),翻譯者隨后根據(jù)模板制作針對(duì)各種語(yǔ)言的翻譯文件(.po),最終編譯成目標(biāo)語(yǔ)言的最終文件(.mo)。
這些.mo文件構(gòu)成了WordPress的實(shí)際翻譯資源。WordPress在執(zhí)行過(guò)程中,會(huì)依據(jù)配置的文本域定位相應(yīng)的.mo文件,并依據(jù)用戶(hù)語(yǔ)言偏好展示相應(yīng)翻譯的文本,確保不同語(yǔ)言用戶(hù)均能接收到恰當(dāng)信息。
如何讓你的插件或主題支持多語(yǔ)言
# Copyright (C) 2023
# This file is distributed under the GPLv2.
msgid ""
msgstr ""
"Project-Id-Version: Smush Pro 3.14.0n"
"Report-Msgid-Bugs-To: https://wpmudev.comn"
"POT-Creation-Date: 2023-07-21 12:47+0800n"
"PO-Revision-Date: 2023-08-15 15:14+0800n"
"Last-Translator: cnuu n"
"Language-Team: n"
"Language: zh_CNn"
"MIME-Version: 1.0n"
"Content-Type: text/plain; charset=UTF-8n"
"Content-Transfer-Encoding: 8bitn"
"Plural-Forms: nplurals=1; plural=0;n"
"X-Generator: Poedit 3.3.2n"
"X-Domain: wp-smushitn"
#. Plugin Name of the plugin
#: app/class-admin.php:285 app/class-admin.php:324
#: app/pages/class-dashboard.php:110 app/pages/class-dashboard.php:353
#: app/views/directory/meta-box.php:43 core/modules/bulk/class-mail.php:65
msgid "Smush Pro"
msgstr "Smush 專(zhuān)業(yè)版"
為了使插件或主題支持多語(yǔ)言,需在代碼中標(biāo)識(shí)待翻譯內(nèi)容,通常采用gettext函數(shù)完成。例如,利用`__('BlogOptions','my-plugin');`語(yǔ)句標(biāo)記文本,其中`'my-plugin'`代表所屬文本域,WordPress據(jù)此定位相應(yīng)的翻譯資源文件。
您需生成.pot文件,其中匯集了待翻譯文本,此類(lèi)文件僅作為模板,非直接用之翻譯。可通過(guò)Poedit等軟件打開(kāi).pot文件,進(jìn)而新建并編輯對(duì)應(yīng)語(yǔ)言的.po文件,于其中錄入每句文本的對(duì)應(yīng)翻譯。
在編輯過(guò)程結(jié)束后,請(qǐng)確保將.po文件轉(zhuǎn)換為.mo文件。這些.mo文件構(gòu)成了WordPress使用的實(shí)際翻譯資源。務(wù)必將生成的.mo文件存入插件或主題的languages文件夾中,或wp-content/languages目錄中。通過(guò)此操作,用戶(hù)在切換語(yǔ)言時(shí),WordPress便能查找到并應(yīng)用對(duì)應(yīng)的翻譯文件。
WordPress5.0引入:JavaScript本地化更新
WordPress5.0引入了關(guān)鍵的wp-i18nJavaScript包更新。此包支持JavaScript文件文本如同PHP文件般進(jìn)行翻譯,允許對(duì)插件或主題中通過(guò)JavaScript輸出的文本進(jìn)行翻譯處理。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
為實(shí)現(xiàn)此目標(biāo),須創(chuàng)建包含全部待譯JavaScript文本的JSON翻譯檔。此操作可通過(guò)WP-CLI工具完成。一旦生成,務(wù)必將該JSON文件存放到適當(dāng)位置,以確保WordPress能識(shí)別并利用它。
php wp-cli.phar --info
總結(jié)與展望
WordPress的本地化過(guò)程貌似復(fù)雜,然而,熟悉其基礎(chǔ)原則與步驟后,便能輕松應(yīng)對(duì)。借助gettext庫(kù),您可輕松實(shí)現(xiàn)插件或主題的多語(yǔ)言支持,使全球用戶(hù)皆能鑒賞您的作品。
chmod +x wp-cli.phar
熟悉了WordPress的國(guó)際化工具,亦掌握將擴(kuò)展國(guó)際化的技巧。接下來(lái),你的作品將覆蓋何種語(yǔ)言?敬請(qǐng)于評(píng)論區(qū)抒發(fā)見(jiàn)解,共助WordPress跨語(yǔ)言發(fā)展。
$ wp --info
作者:小藍(lán)
鏈接:http://m.huanchou.cn/content/2496.html
本站部分內(nèi)容和圖片來(lái)源網(wǎng)絡(luò),不代表本站觀點(diǎn),如有侵權(quán),可聯(lián)系我方刪除。