如何在Magento中添加新单词的翻译?


23

我使用英语,西班牙语和德语作为网站的三个商店视图。为新单词添加翻译的最简单方法是什么?

即使我在翻译中添加了新单词,它也不会显示在前端。

Answers:


38

为了这:

<?php echo Mage::helper('catalog')->__('Text here');?>

像这样添加:

app / locale / {lang_ISO} /Mage_Catalog.csv

"Text here","Translation here"

为了这:

<?php echo $this->__('Text here'); ?>

或以下内容(在主题中local.xml,请注意translate属性;另请参见/programming//a/8408058/794071):

<reference name="top.links">
    <action method="addLink" translate="label title">
        <label>Text here</label>
        <title>Text here</title>
    </action>
</reference>

像这样添加:

app / design / frontend / {interface} / {theme} / locale / {lang_ISO} /translate.csv

"Text here","Translation here"

例如:在您的主题文件夹中:

/locale/fr_FR/translate.csv

"Inspiration","Your France Translation"

1
另外,{lang_ISO}取决于您在系统>配置>常规>本地化选项>区域设置配置文件中为商店设置的默认语言。
Julien Lachal 2014年

3

你真的不翻译单词。您需要从后端转换静态块,页面,属性,电子邮件模板和与配置相关的元素。要翻译系统字符串,app/design/frontend/{package}/{theme]/locale/{locale}/translate.csv

{locale}可以是例如在德国使用的德语de_DE。

app/locale/{locale}/建议不要修改翻译文件,因为它们是语言包的一部分,应被视为是核心要素,一旦更新包,它们可能会被覆盖。


0

可以通过这些简单的步骤完成。第1步:创建新的商店视图。通过我们商店的管理员,转到STORES->设置->所有商店。 Create Store View。选择商店并提供名称,例如印地语。转到STORES->设置->配置。在Store View选择您的商店视图的左上角Hindi。在General选项卡中,从下拉列表中Locale Option选择Hindi(India)

步骤2:将主题设置为此“商店”视图。从admin转到“内容”->“设计”->“配置Edit商店”视图并设置主题。

步骤3:在中创建csv文件<magento dir>/app/design/frontend/<vendorName>/<themeName>/i18n/hi_IN.csv(hi_IN为印地语)。内容是:

"Sign In", "Your Text" "My Account","Your Text" "My Wish List", "Your Text"

步骤4:部署内容。在终端的magento目录中 php bin/magento setup:static-content:deploy -f en_US hi_IN 清理缓存并刷新页面。切换到新的商店视图后,将显示您的更改。这将适用于magento 2.2.x


0

为新单词添加翻译的最简单方法是什么?

我想技术部分得到了回答... :)

要使其“简单”-或加快速度-您可以自动翻译CSV文件。

如果您已安装或构建仅en_US.csv包含扩展名的扩展程序,则这可能会很有用。

要求:

  • https://github.com/chriskonnertz/DeepLy

    composer require chriskonnertz/deeply
  • 添加CSV翻译
  • 添加简单的PHP脚本

    <?php
    require 'vendor/autoload.php';
    
    use ChrisKonnertz\DeepLy\DeepLy;
    
    $deepLy = new DeepLy();
    
    $read = fopen('en_US.csv','r');
    $write = fopen('de_DE.csv','w');
    
    while (($data = fgetcsv($read, 0, ",")) !== false) {
        $data[1] = $deepLy->translate($data[0], 'DE', 'EN');
        echo "From: " . $data[0] . "\n";
        echo "To: " . $data[1] . "\n";
        fputcsv($write, $data);
    }
    fclose($read);
    fclose($write);

不太好,但是可以用...:P


笔记

  • 该程序包使用(未记录?)API,不需要AUTH密钥。似乎有一个门槛,但未经测试
  • 对于开发者访问,有一个付费的APIv2(5€/月
  • 支持DE,EN,ES,FR,IT,NL,PL,自动检测

我没有涉及到,它只是救了我一两个小时......抱歉广告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.