WordPress 主題和插件本地化翻譯:從入門到精通
WordPress,作為全球最受歡迎的內容管理系統,其受歡迎程度源于其強大的功能和卓越的可定制性與國際化特性。本文將深入探討WordPress的翻譯架構,揭示如何使您的插件與主題實現全球化,進而造福世界各地的用戶。
WordPress翻譯機制的基本原理
WordPress的本地化過程基于相對簡單的gettext系統。不了解它的人可能會感到困惑。概而言之,開發者通過定義函數標記待翻文本,系統將這些文本提取至模板文件(.pot),翻譯者隨后根據模板制作針對各種語言的翻譯文件(.po),最終編譯成目標語言的最終文件(.mo)。
這些.mo文件構成了WordPress的實際翻譯資源。WordPress在執行過程中,會依據配置的文本域定位相應的.mo文件,并依據用戶語言偏好展示相應翻譯的文本,確保不同語言用戶均能接收到恰當信息。
如何讓你的插件或主題支持多語言
# 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 專業版"
為了使插件或主題支持多語言,需在代碼中標識待翻譯內容,通常采用gettext函數完成。例如,利用`__('BlogOptions','my-plugin');`語句標記文本,其中`'my-plugin'`代表所屬文本域,WordPress據此定位相應的翻譯資源文件。
您需生成.pot文件,其中匯集了待翻譯文本,此類文件僅作為模板,非直接用之翻譯。可通過Poedit等軟件打開.pot文件,進而新建并編輯對應語言的.po文件,于其中錄入每句文本的對應翻譯。
在編輯過程結束后,請確保將.po文件轉換為.mo文件。這些.mo文件構成了WordPress使用的實際翻譯資源。務必將生成的.mo文件存入插件或主題的languages文件夾中,或wp-content/languages目錄中。通過此操作,用戶在切換語言時,WordPress便能查找到并應用對應的翻譯文件。
WordPress5.0引入:JavaScript本地化更新
WordPress5.0引入了關鍵的wp-i18nJavaScript包更新。此包支持JavaScript文件文本如同PHP文件般進行翻譯,允許對插件或主題中通過JavaScript輸出的文本進行翻譯處理。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
為實現此目標,須創建包含全部待譯JavaScript文本的JSON翻譯檔。此操作可通過WP-CLI工具完成。一旦生成,務必將該JSON文件存放到適當位置,以確保WordPress能識別并利用它。
php wp-cli.phar --info
總結與展望
WordPress的本地化過程貌似復雜,然而,熟悉其基礎原則與步驟后,便能輕松應對。借助gettext庫,您可輕松實現插件或主題的多語言支持,使全球用戶皆能鑒賞您的作品。
chmod +x wp-cli.phar
熟悉了WordPress的國際化工具,亦掌握將擴展國際化的技巧。接下來,你的作品將覆蓋何種語言?敬請于評論區抒發見解,共助WordPress跨語言發展。
$ wp --info
作者:小藍
鏈接:http://m.huanchou.cn/content/2496.html
本站部分內容和圖片來源網絡,不代表本站觀點,如有侵權,可聯系我方刪除。