shockwavedesign / magento2-module-translation
扩展 Magento 翻译系统
This package is not auto-updated.
Last update: 2024-09-24 22:40:35 UTC
README
- 版权所有 2017 Shockwave-Design - J. & M. Kramer,保留所有权利。
- 商业用途:在 www.shockwave-design.de 获取许可证
描述
本模块解决了 Magento2 翻译系统的一些主要问题。
首先,它解决了缓存 JS-Translation 文件的问题:Magento 使用一个可缓存的 json 文件进行表单的翻译。
这些翻译存储在浏览器应用程序缓存中
一方面,这个缓存遵循将翻译推送到客户端只有少数页面加载的想法 - 另一方面,这种行为可能会给开发带来困难。系统使用 mage-translation-file-version 来确定刷新缓存的需要。
如果你想在 Magento2 中的 js-active 表单中更改翻译,有时你必须
- 删除浏览器缓存
- 删除浏览器应用程序存储
- 清除 M2 的全页缓存
- 清除 M2 的块/翻译缓存
如果你只想更改单个翻译,并且知道所有这些步骤,这个过程是可以接受的。否则,你必须调试所有这些步骤,
- 只是为了寻找你遗漏的一步来更改另一个翻译。
其次,尽管你设法通过了将你的 Magento2 店铺翻译到另一个区域设置的步骤,但你必须为每个翻译键进行搜索。
第三,Magento2 语言包的结构是一个真正的缺点:语言包只包含一个无序列表翻译的 csv。
这个 csv 对于代理翻译和外部开发人员对购买模块的定制非常有用,因为它只有一个文件 - 但有一个问题
如果你需要定义模块范围的翻译,例如,对于具有相同键但不同翻译的两个翻译,这是不可能的。
http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/translations/xlate.html
Magento 关于这个话题写道
Language packages that contain a entire dictionary in one directory.
You can distribute this language package as a standalone component (similar to modules and themes). Interestingly, it violates Magento’s modularity principles on purpose; that is, so that a system integrator can translations variations provided by extensions.
但如果我需要两者:模块结构化的翻译和每个区域的单个语言包怎么办?
特性
调试 Cookie
此模块允许前端开发人员设置一个 Cookie,该 Cookie
- 禁用客户端 Web 浏览器中的缓存,每次加载都生成翻译 json 文件
- 不仅在前端显示翻译,还显示使用的键
语言
商店行为的更改
语言包加载过程增强了向后兼容性。它将加载现有和增强的语言包。
配置
创建增强的语言包
根据此处文档创建新的语言包
http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/translations/xlate.html
然后为要覆盖的每个供应商范围创建一个子文件夹,例如:magento,youragency ...
在其内部创建一个名为 i18n 的文件夹,然后创建一个名为你想要覆盖的区域设置的文件。
在这个 csv 文件中,你可以像在 Magento2 默认情况下一样翻译所有值
Remove,"Entfernen"
Cancel,"Abbrechen"
"Manage Shopping Cart","Warenkorb bearbeiten"
"Create Order","Neue Bestellung"
Back,"Zurück"
"Add Products","Artikel hinzufügen"
"Update Items and Qty's","Aktualisieren"
"Are you sure you want to clear your shopping cart?","Sind Sie sicher, dass sie alle Artikel aus dem Warenkorb entfernen möchten?"
"Clear the shopping cart.","Warenkorb leeren."
"Add Selected Product(s) to Shopping Cart","Ausgewählte Artikel in den Warenkorb legen"
"Shopping Cart for %1 in %2","Shopping Cart for %1 in %2"
"Choose products to add to shopping cart.","Artikel auswählen, um sie in den Warenkorb zu legen."
Product,Produkt
此模块将根据模块依赖关系列表对定义的模块进行排序,读取其内容,并将其添加到结果集中。
示例
- module-catalog 定义了键/值 "Always,Immer" 的翻译
- module-checkout 定义了键/值 "Always,Jederzeit" 的翻译
当前控制器作用域是 module-checkout。
然后首先加载所有翻译,最后作为最后一个模块:module-checkout(因为它当前是作用域)。结果:"Jederzeit" 显示出来。
调试 Cookie
只需执行以下简单步骤
- 禁用块、翻译和全页的前端缓存
- 在您的浏览器中设置一个名为 "debugTranslationHints" 的 cookie,并设置值为 "true"
结果应如下所示
所有在块中使用的翻译都通过方括号 [] 加以增强,并包含键和翻译值(如果提供)。
第三方依赖
无第三方模块或服务的依赖。