magento2语言包和翻译的使用方法

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

生成一个翻译词典

您可以生成一个用于自身使用的翻译字典(例如,在自定义模块中翻译单词或短语)或使用语言包。见以下部分之一:

  • 关于翻译词典
  • 翻译字典怎样工作

翻译字典怎样工作

要翻译单词和短语,你必须 :

  1. 运行命令来启用可翻译单词和短语的组件
  2. 翻译单词和词组。

命令选项:

magento i18n:collect-phrases [-o|--output="<csv文件路径和名称>"] [-m|--magento] <要翻译的目录路径>

创建语言包

更多关于语言包.

本节讨论如何创建一个语言包,该软件包将 CSV 文件写入模块和主题:

  1. 收集和翻译单词和短语.
  2. 运行语言包命令.
  3. 创建目录和文件.
  4. (Optional.) 配置多语言包.

运行语言包命令

命令的用法:

magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] <source> <locale>

创建目录和文件

一个语言包目录(app/i18n/<VendorName>)下的Magento 2文件系统具有下列内容:

  • 所需的许可证文件
  • composer.json
  • registration.php 注册 语言包
  • language.xml 元信息文件

整个路径必须全部小写.

创建这些文件:

  1. app/i18n下创建一个目录.例如,Magento的语言包都位于 app/i18n/magento
  2. 添加任何您需要的许可证文件 .
  3. 添加 composer.json 指定语言包的依赖项。
  4. 注册语言包在 registration.php
  5. 添加 language.xml 元信息文件在下一节中讨论.

语言包 language.xml

当声明一个语言包在language.xml配置文件,您必须指定此包的继承关系。

语言继承使您能够创建一个新的翻译基于现有的一个子类翻译重写父类。但是,如果子翻译未能加载载或显示,则使用父。如果某些子翻译缺少短语或单词,则该短语或单词取自父。 语言包继承的例子.

要声明包,请指定以下信息:

<?xml version="1.0"?>
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>en_GB</code>
    <vendor>magento</vendor>
    <package>en_gb</package>
    <sort_order>100</sort_order>
    <use vendor="oxford-university" package="en_us"/>
</language>
  • <code>: 语言包国家代码(必须)
  • <vendor>: 模块供应商名称(必须)
  • <package>: 语言包名称(必须)
  • <sort_order>: 当一个商店有几个语言包时,当前包的优先级
  • <use>: 从继承字典的父语言包区域设置

如果需要,可以指定几个父包。

语言包继承的例子

假设一个语言包来自另外两个包,而这些包也有父和“祖父母”包.

如果一个语言包来自两个包,它的language.xml 可能看起来像下面 :

<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>en_GB</code>
    <vendor>magento</vendor>
    <package>language_pack</package>
    <sort_order>100</sort_order>
    <use vendor="parent-package-one" package="language_package_one"/>
    <use vendor= "parent-package-two" package="language_package_two"/>
</language>

使用翻译命令的例子

  • 示例:为模块或主题创建翻译字典
  • 示例:创建语言包

示例:为模块或主题创建翻译字典

  1. 从你的模块收集短语 :magento i18n:collect-phrases -o "/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n/xx_YY.csv" /var/www/html/magento2/app/code/ExampleCorp/SampleModule

示例:创建语言包

  1. magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -m
  2. magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY
  3. 为语言包创建目录。 /var/www/html/magento2/app/i18n/ExampleCorp/xx_yy
    • composer.json (sample following)
    • registration.php (sample following)
    • language.xml (sample following)

示例composer.json:

{
    "name": "examplecorp/language-xx_yy",
    "description": "Sample language",
    "version": "100.0.2",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "require": {
        "magento/framework": "100.0.*"
    },
    "type": "magento2-language",
    "autoload": {
        "files": [
            "registration.php"
        ]
    }
}

示例 registration.php:

/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'magento_xx_yy',
    __DIR__
);

示例 language.xml:

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>xx_YY</code>
    <vendor>examplecorp</vendor>
    <package>xx_yy</package>
</language>
如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。