How to install a language pack in Magento 2?

老子叫甜甜 提交于 2019-11-29 12:36:12

问题


I tried to follow the instructions from https://mage2.pro/t/topic/270 and http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2 but I still failed.

I'm trying to change the text of the search box in the header from 'Search entire store here...' to 'Suche...'

Right now, I have the following files in app/i18n/Test/de_ch

  • composer.json
  • de_ch.csv
  • language.xml
  • registration.php

With this content in composer.json

{
  "name": "test/de_ch",
  "description": "German (Switzerland) language",
  "version": "100.0.1",
  "license": [
    "OSL-3.0",
    "AFL-3.0"
  ],
  "require": {
    "magento/framework": "100.0.*"
  },
  "type": "magento2-language",
  "autoload": {
    "files": [
      "registration.php"
    ]
  }
}

de_ch.csv

"Search entire store here...","Suche..."

language.xml

<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
   <code>de_CH</code>
   <vendor>Test</vendor>
   <package>de_ch</package>
</language>

registration.php

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

In the admin, I configured the store (Stores > Configuration > General > General > Locale Options > Locale) with Deutsch (Schweiz).

Then, tried to php bin/magento setup:upgrade and php bin/magento cache:clean

But nothing, the text in the Search form is still 'Search entire store here...'


回答1:


I just tried it and got it working. You need to make few minor uppercase to lowercase changes and vice-versa.

  1. Rename folder app/i18n/Test/de_ch to app/i18n/test/de_ch (lowercase t)
  2. Rename file de_ch.csv to de_CH.csv (uppercase CH, this needs to be identical to the <code></code> in language.xml)
  3. In language.xml, change Test to test (of course also add <?xml version="1.0"?> to the beginning of the file). This is defined in App/Language/package.xsd
  4. In registration.php too, change it to test_de_ch

---- edited to add complete code ---

In /app/i18n/test/de_ch Create the following files:

composer.json

{
"name": "test/de_ch",
  "description": "German (Switzerland) language",
  "version": "100.0.1",
  "license": [
    "OSL-3.0",
    "AFL-3.0"
  ],
  "require": {
    "magento/framework": "100.0.*"
  },
  "type": "magento2-language",
  "autoload": {
    "files": [
      "registration.php"
    ]
  }
}

de_CH.csv

"Search entire store here...","Suche TESTING..."

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>de_CH</code>
    <vendor>test</vendor>
    <package>de_ch</package>
</language>

registration.php

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'test_de_ch',
    __DIR__
);



回答2:


You can buy it and install it :)

composer config repositories.atconnect composer https://connect20.aveo-trade.cz composer require atconnect/magento-two-language-de-de

We use this composer package structure: magento-two-language-de-de/composer.json

{
    "name": "atconnect/magento-two-language-de-de",
    "description": "Magento 2.0.0: de_DE",
    "version": "2.0.0.2-stable",
    "license": [
        "proprietary"
    ],
    "type": "magento2-language",
    "autoload": {
        "files": [
            "registration.php"
        ]
    }
}

magento-two-language-de-de/language.xml

<?xml version="1.0"?>
<!--
/**
 * @copyright Copyright (c) AveoTrade
 Licence: https://connect20.aveo-trade.cz/cat:Agreement
 */
-->
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>de_DE</code>
    <vendor>atconnect</vendor>
    <package>magento-two-language-de-de</package>
</language>

magento-two-language-de-de/registration.php

<?php
/**
 * Copyright © 2015 AveoTrade
 */
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'atconnect_magento-two-language-de-de',
    __DIR__
);

magento-two-language-de-de/de_DE.csv

"1 Hour","1 Stunde",module,Magento_AdminNotification
"12 Hours","12 Stunden",module,Magento_AdminNotification
"2 Hours","2 Stunden",module,Magento_AdminNotification
"24 Hours","24 Stunden",module,Magento_AdminNotification
"6 Hours","6 Stunden",module,Magento_AdminNotification



回答3:


Please try this command:

php bin/magento setup:static-content:deploy



来源:https://stackoverflow.com/questions/34067460/how-to-install-a-language-pack-in-magento-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!