wubinworks / module-translation
此模块[1]将来自[模块或主题根]/i18n/Js/[locale].csv的翻译数据添加到前端翻译字典。[2]允许模块通过在模块内部特定位置创建CSV文件来覆盖主题、语言包和数据库翻译。
Requires
- php: >=7.3
- magento/framework: *
- magento/magento2-base: ~2.4.0
- magento/module-backend: *
- magento/module-translation: *
This package is not auto-updated.
Last update: 2024-09-22 18:32:28 UTC
README
(这里讨论的所有内容均为Magento 2.4
。请参阅要求部分
。))
此模块提供2个功能,旨在作为其他模块/主题的依赖项。
-
在部署期间,Magento会扫描静态
.js
和.html
文件,并从中提取可翻译的字符串。
然后,Magento生成一个js-traslation.json
文件。
此文件是一个前端翻译使用的字典文件
例如:<!-- ko i18n: 'Translate Me!' --><!-- /ko -->
不幸的是,由于某些原因,.phtml
(和.php
)文件中的可翻译字符串不会被Magento捕获。
如果$.mage.__('Some Text')
在.phtml
文件中,它将不会被翻译。
此模块可以将来自单独文件(即[模块或主题根]/i18n/Js/[locale].csv)的额外数据强制推送到js-traslation.json
。 -
Magento按照以下顺序加载翻译数据
| Module translation: [module root]/i18n/[locale].csv
| Language Pack translation
| Theme translation: [theme root]/i18n/[locale].csv
\|/ Database translation
然后这些翻译数据被合并,合并规则是"最后一个胜出",这意味着数据库翻译会覆盖其他所有内容。
然而,在某些情况下,特别是在进行本地开发以翻译特定业务领域的非常一般的短语时,模块创建者想要覆盖语言包和主题翻译,而不修改那些第三方包。
此模块为翻译文件(CSV)添加了额外位置,因此加载顺序变为
| 模块翻译:[模块根]/i18n/[locale].csv
| 语言包翻译
| 主题翻译:[主题根]/i18n/[locale].csv
| 数据库翻译
| 额外模块翻译:[模块根]/i18n/i18n/[locale].csv
\|/ 额外主题翻译:[主题根]/i18n/i18n/[locale].csv(最后一个胜出)
此模块在店铺模拟下也能正常工作。
用法和示例
1. 将翻译合并到js-traslation.json
创建类似于正常翻译CSV文件的<module or theme root>/i18n/Js/<locale>.csv
,然后其内容将推送到js-traslation.json
(即使短语在静态文件中找不到作为可翻译字符串)。
2. 覆盖语言包或主题翻译
创建类似于正常翻译CSV文件的[module or theme root]/i18n/i18n/[locale].csv,然后它将正常工作。
请检查
i18n/ja_JP.csv
"###Translate Me!###","翻訳して!"
i18n/i18n/ja_JP.csv
"###Translate Me!###","翻訳してください!(Override)"
i18n/Js/ja_JP.csv
"###This phrase will go to js-translation.json anyway.###","このフレーズは必ずjs-translation.jsonに出現する。"
"###This phrase will be overridden.###","このフレーズはオーバーライドされる"
i18n/i18n/Js/ja_JP.csv
"###This phrase will be overridden.###","このフレーズをオーバーライドした"
输出
###Translate Me!### -> 翻訳してください!(Override)
js-translation.json
中的输出
###This phrase will go to js-translation.json anyway.### -> このフレーズは必ずjs-translation.jsonに出現する。
###This phrase will be overridden.### -> このフレーズをオーバーライドした
要求
Magento 2.4
安装
composer require wubinworks/module-translation