我目前有一个新的Magento 2安装。 A基本上有一个为荷兰市场配置的商店设置。
我已经阅读了安装语言包(http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/translations/xlate.html)的Magento 2 devdocs,虽然文档似乎很清楚,但我还是有一些问题。
Magento 2附带预装的荷兰语语言包,位于vendor / magento / language-nl_nl中。但语言包中不包含任何翻译短语。
我使用Magento控制台创建了一个* .csv文件,它收集了来自vender / magento dir源文件的所有短语。我想这个文件是用来分发给翻译的。
完成翻译后,有几种选择,我怀疑在我的情况下哪一个最好;
选项1 似乎有一个缺点,因为我的荷兰语翻译与当前主题没有直接关系,而是与配置了nl_NL语言环境的商店直接相关。
选项2 对我来说不清楚。 Magento命令i18n:pack命令将我的nl_NL.csv源文件完美地分解为vendor / module / i18n / nl_NL.csv文件。但是由于模块化问题,将它打包在vendor / magento / dir中似乎不是一种选择。
我必须采取哪些步骤来创建与所显示的主题无关的全球荷兰语翻译,是模块化的,并且可以在我的所有Magento 2项目中轻松分发?
答案 0 :(得分:2)
完成翻译后,您可以创建一个"语言包"在app/i18n
下。文件夹命名约定为<vendorname>/<language_code>
。它应包含以下文件
- composer.json
- language.xml
- registration.php
答案 1 :(得分:2)
对于i18n
你可以这样做
i18n
文件夹app
命名的文件夹
app/design/theme/custom
来自此 custom
这是您的主题名称folder(s)
文件夹中制作语言包i18n -> custom
,例如en_us
或en_gb
或nl_nl
app/i18n/custom/nl_nl/
现在,在您的语言包文件夹中创建以下文件,所有文件都将在此文件夹结构中app/i18n/custom/en_us/
应用/ I18N /定制/ nl_nl / composer.json 强>
{
"name": "custom/nl_nl",
"description": "English (US) language",
"version": "100.0.1",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"magento/framework": "100.0.*"
},
"type": "magento2-language",
"autoload": {
"files": [
"registration.php"
]
}
}
应用/ I18N /定制/ nl_nl / 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>nl_NL</code>
<vendor>custom</vendor>
<package>nl_nl</package>
</language>
应用/ I18N /定制/ nl_nl /和registration.php 强>
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'custom_nl_nl',
__DIR__
);
在此之后将 nl_NL.csv 放入您的语言包文件夹
app/i18n/custom/nl_nl/nl_NL.csv
然后运行以下命令
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
希望这会对你有所帮助