Magento 2的翻译,使您可以自定义多语言和多店面。通过翻译词典更容易更新和维护,降低代码的耦合和重复量。
如何生成翻译文件(语言包):
登录到Magento服务器切换到Magento 2文件系统的所有者用户要有写入的权限.
如果你使用bash shell,你也可以使用下面的语法转换到Magento文件系统所有者:
su -s /bin/bash -c
sudo -u
添加
到系统路径,就可以从任何目录运行Magento 2的命令.
CentOS系统添加到系统路径命令:
export PATH=$PATH:/var/www/html/magento2/bin
您也可以按下列方式运行命令:
cd /bin
并运行它们 ./magento
php /bin/magento
您可以生成一个用于自身使用的翻译字典(例如,在自定义模块中翻译单词或短语)或使用语言包。见以下部分之一:
要翻译单词和短语,你必须 :
命令选项:
magento i18n:collect-phrases [-o|--output=""] [-m|--magento] <要翻译的目录路径>
本节讨论如何创建一个语言包,该软件包将 CSV 文件写入模块和主题:
收集和翻译单词和短语.
命令的用法:
magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates]
一个语言包目录(app/i18n/
)下的Magento 2文件系统具有下列内容:
composer.json
registration.php
注册 语言包language.xml
元信息文件整个路径必须全部小写.
创建这些文件:
app/i18n
下创建一个目录.
例如,Magento的语言包都位于 app/i18n/magento
composer.json
指定语言包的依赖项。registration.php
language.xml
元信息文件在下一节中讨论.当声明一个语言包在language.xml配置文件,您必须指定此包的继承关系。
语言继承使您能够创建一个新的翻译基于现有的一个子类翻译重写父类。但是,如果子翻译未能加载载或显示,则使用父。如果某些子翻译缺少短语或单词,则该短语或单词取自父。语言包继承的例子。
要声明包,请指定以下信息:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd"> en_GB
magento en_gb 100
: 语言包国家代码(必须)
: 模块供应商名称(必须)
: 语言包名称(必须)
: 当一个商店有几个语言包时,当前包的优先级
: 从继承字典的父语言包区域设置 如果需要,可以指定几个父包。
假设一个语言包来自另外两个包,而这些包也有父和“祖父母”包.
如果一个语言包来自两个包,它的language.xml
可能看起来像下面 :
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd"> en_GB
magento language_pack 100
从你的模块收集短语 :
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
magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -m
magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY
为语言包创建目录。 /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
:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd"> xx_YY
examplecorp xx_yy