Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

WordPress 5.0+支持JavaScript i18n本地化翻译

WordPress 5.0+支持JavaScript i18n本地化翻译

2018-12-14 Comments 0 Comment

前些天看到WordPress官方发布的关于JavaScript本地化翻译的消息,对于开发者来说,这个或许是一个好消息,在此之前,对于JS里需要翻译的字段,一般是用 wp_localize_script() 来实现的,而如果能使用和PHP一样的机制实现,那还真是不错的选择。

以下内容出自:https://make.wordpress.org/core/2018/11/09/new-javascript-i18n-support-in-wordpress/,大多使用Google翻译的,英文好的朋友,可以去官方看看。

多年来,国际化(i18n)在PHP开发方面得到了很好的支持。对于PHP,WordPress已经提供了所有必要的工具,使其尽可能简单地将WordPress核心,、主题和插件本地化为任何语言。今天,我们为WordPress的JavaScript开发带来了相同的功能。

如何实现
注册脚本时,您可以添加 wp-i18n 作为依赖项,以允许您像在PHP中一样添加可翻译字符串:

wp_register_script( ‘my-handle’, plugins_url( ‘/js/my-file.js’, MY_PLUGIN ), array( ‘wp-i18n’ ) );
在脚本中,您将能够使用wp-i18n,如下所示:

const { __, _x, _n, _nx } = wp.i18n;

__( ‘__’, ‘my-domain’ );
_x( ‘_x’, ‘_x_context’, ‘my-domain’ );
_n( ‘_n_single’, ‘_n_plural’, number, ‘my-domain’ );
_nx( ‘_nx_single’, ‘_nx_plural’, number, ‘_nx_context’, ‘my-domain’ );
这些函数镜像它们的PHP对应字段,并可以以完全相同的方式使用。

最后一步是告诉WordPress你的脚本包含翻译和使用哪个文本域,这是为了让WordPress有选择地只加载必要的翻译,以确保一切尽可能快:

1
wp_set_script_translations( ‘my-handle’, ‘my-domain’ );
还要确保在插件文件的标题中为您的翻译指定了文本域(Text Domain)。否则,translate.wordpress.org将不会提取翻译。

高级用法
现在,已经可以使用load_textdomain函数发送您自己的翻译并传递您自己的MO文件。这也可以使用 wp_set_script_translations 接受可选的第三个路径参数,该参数允许您告诉WordPress先查找其他地方的翻译:

1
wp_set_script_translations( ‘my-handle’, ‘my-domain’, plugin_dir_path( MY_PLUGIN ) . ‘languages’ );
如果通过,WordPress将首先检查格式为 ${domain}-${locale}-${handle}.json 的文件是否存在于给定路径中,如果是,则将其用作翻译源。或者,在默认为WordPress语言目录之前,它还将首先检查md5文件名的给定路径。

如果您想发送自己的翻译文件,这些文件应该是 JED 1.x ( .json ) 格式。GlotPress能够与其他工具(如po2json)一起创建这些工具。理想情况下,这些文件应该只包含在各自的JS文件中出现的翻译。使用po2json,您可以生成以下文件:

po2json translation.po translation.json -f jed
这将生成以下格式的JSON:

{
“translation-revision-date”: “+0000”,
“generator”: “GlotPress/2.3.0-alpha”,
“domain”: “messages”,
“locale_data”: {
“messages”: {
“”: {
“domain”: “messages”,
“plural-forms”: “n != 1”,
“lang”: “en-gb”
},
“This file is too big. Files must be less than %d KB in size.”: [
“This file is too big. Files must be less than %d KB in size.”
],
“%d Theme Update”: [
“%d Theme Update”,
“%d Theme Updates”
],
“password strength\u0004Medium”: [
“Medium”
],
“taxonomy singular name\u0004Category”: [
“Category”
],
“post type general name\u0004Pages”: [
“Pages”
]
}
}
}
屏幕背后
当您将插件或主题上传到 wordpress.org 时,所有JS文件将自动解析为已经为PHP文件完成的文件。任何检测到的翻译都将添加到translate.wordpress.org,以允许社区合作以确保WordPress、插件和主题以尽可能多的语言提供。

为了解析所有JS文件,使用了用于wp-cli的i18n命令。这取代了makepot.php,不仅允许在JS文件中获取翻译,而且还允许审计字符串,仅解析特定文本域的字符串,甚至拾取makepot.php未检测到的一些字符串。这个命令是免费提供的,并且像makepot.php那样是开源的,并且建议任何使用makepot.php的人都可以转换到这个改进的替代品。

基于这些解析的翻译,生成语言包。传统上这些用于仅包含PO和MO文件,每个区域设置一对。为了有选择地仅加载必要的翻译,无论是否使用它们,还要添加更多文件,每个JS文件的一个JSON文件包含每个语言环境的翻译。

在解析JS文件以进行翻译时,我们不知道使用哪个句柄来注册该文件,因此我们必须使用备用机制来查找属于每个文件的翻译。为此,我们使用每个文件的相对路径的md5。即以 ${domain}-${locale} 名称格式来命名的 ${domain}-${locale}-${md5}.json 文件。

当您为句柄设置脚本翻译时,WordPress会自动找出源文件的相对md5哈希值,检查是否存在翻译文件,如果存在,请确保在脚本运行之前将其加载到wp.i18n中。

插件和主题支持
在WP官方库的主题和插件的翻译、语言包支持,预计将在未来几周内完成。补丁准备就绪并等待提交。鼓励插件和主题作者在他们的JavaScript项目中开始使用wp-i18n。

羊毛党之家 WordPress 5.0+支持JavaScript i18n本地化翻译  https://yangmaodang.org

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


WordPress資訊

Post navigation

PREVIOUS
WordPress 5.0.1 修复7个安全问题
NEXT
用自己頭像做WhatsApp貼圖!1分鐘學識整獨家Stickers

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 12 月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« 11 月   1 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 動視暴雪撤出中國的決定可能源於會議過程中翻譯上的遺漏 2023-03-30
  • NASA將波音Starliner的載人飛行測試推遲到7月進行 2023-03-30
  • 史無前例的”控制” – 科學家們將化學鍵扭曲到極限之外 2023-03-30
  • NASA完成新款RS-25登月火箭發動機的長時間熱火試驗 2023-03-30
  • 減肥注射劑GEP44未來可能取代減肥手術甚至還可以治療藥物成癮 2023-03-30
  • 研究人員利用淨化的粉煤灰生產更環保、更堅固的混凝土 2023-03-30
  • AI浪潮催生年薪百萬的“提示詞工程師”?這件事恐怕沒那麼簡單 2023-03-30
  • AR/VR行業的“iPhone時刻”是6月5日?蘋果WWDC海報來了 2023-03-30
  • 美國與日本簽署電動汽車電池礦產貿易協議 2023-03-30
  • 巨人和微生物統治世界極端尺寸主導著地球的生物量 2023-03-30

熱門文章與頁面︰

  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Autodesk AutoCAD 2021 正式版註冊版-簡體/繁體中文/英文版
  • 世界上有多少個國家
  • 下載WINDOWS10 登入畫面的圖片 (WINDOWS焦點)
  • 一鍵GHOST v2020.07.20 正式版-硬盤版/光盤版/優盤版/軟盤版
  • 天翼網盤免登陸高速下載,直鏈解析不限速
  • Windows 10玩遊戲死機重置顯卡驅動的秘籍你知道嗎?

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.