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

{
    "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

<?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

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'thankit_zh_hans-cn',
    __DIR__
);

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

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 中文乱码

发表评论

电子邮件地址不会被公开。 必填项已用*标注