{ Hello Magento 2 }

解决 Magento 2 应用问题,更注重深度挖掘。(ง •̀_•́)ง

0%

Magento 2 中文化与 language package(原创)

转载请注明出处 关于 Magento 2 的中文化,之前博主已经写过三篇文章,感兴趣的请参阅本文的相关阅读部分。 下面我们来回顾一下。

回顾

首先是设置问题。 前台设置,Stores > Configuration > General > Local 中设置 Local 为 Chinese(China) 账户设置,后台你的账户 Account Setting > Interface Local 中设置 Interface Local 为 Chinese(China) Magento 2 的 component 有三种,module、theme、language package。 module 和 theme 中都有 i18n ,只要把 zh_Hans_CN.csv 放进去就可以了。module 中 i18n 下的翻译文件会被应用到前台和后台(假设你前后台都是简体中文的话),但是 theme 中的翻译只会被应用到前台。 提取的 csv 有四列,但是其实只有前两列有用。重复的字段,实际使用的是最后一个翻译值。 之前的文章博主教大家的方法是,寻找 Magento 自带的 language package。这个有一些局限性。 主要问题就在于,假如我们采用命令行的方式更新,那么文件会被退回到初始状态,我们放进去的 zh_Hans_CN 会被丢掉。 所以更妥当的做法是,我们建一个自己的 language package,或者下载一个,然后放到 app/i18n 下面。

如何创建 language package

以创建中文包为例,但是方法是通用的。 我们在 app/i18n 下创建一个文件夹 ThankIT ,在 ThankIT 下创建 zh_Hans_CN,然后在创建以下文件

composer.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"name": "thankit/language-zh_hans_cn",
"description": "Chinese (China) language",
"version": "100.3.0-dev",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"magento/framework": "100.3.*"
},
"type": "magento2-language",
"autoload": {
"files": [
"registration.php"
]
}
}

language.xml

1
2
3
4
5
6
<?xml version="1.0"?>
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
<code>zh_Hans_CN</code>
<vendor>ThankIT</vendor>
<package>zh_Hans_CN</package>
</language>

registration.php

1
2
3
4
5
6
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'thankit_zh_hans-cn',
__DIR__
);

最后把之前的 zh_Hans_CN.csv 放进去,齐活。 正确设置,并使用命令行:

1
php bin/magento setup:static-content:deploy

然后就可以看到效果了。

常见问题

经常有人说安装中文包以后出错了,这通常是因为你的 zh_Hans_CN.csv 中含有空行,特别是在结尾的部分,有时候是提供安装包的人不小心干的,有时候是自己不小心干的。

福利

上面的 package 上传到 github 了,可以自己下载,然后放到 app/i18n 目录下。 PiscesThankIT/language-zh-hans-cn 另外放一个台湾繁体的。由于繁体的官方的翻译比率太低,所以,博主拿简体中文转化成了繁体中文,翻译比率大概是 88%。 PiscesThankIT/language-zh-hant-tw Magento 2 Translations & language packs (所有语言) 如果你想修改翻译,请参考相关阅读部分。

相关阅读

Magento 2 中文化问题(原创) 关于中文包的更新方法问题 (原创) 中文包的更新方法问题(二) 其他相关 Magento 2.0/2.1 表单验证翻译 bug 修复 Excel 编辑 csv 中文乱码