Magento csv翻訳ファイルの管理


22

時間が経つにつれて、Magentoコアチームはより多くのデフォルト言語パックを追加しました

app/locale 

フォルダ。将来のシステムアップグレードを妨げないように、独自の翻訳ファイルを管理する標準的な方法はありますか?つまり、Magentoでいくつかのラベルを変更したいので、編集します

app/locale/en_US/Mage_Sales.csv

直接。Magentoをアップグレードすると、私の変更は消去されます。テーマロケール機能はこれに十分ですか?(モジュール固有のファイルを処理しますか、それともtranslate.csv)。または、翻訳モデルを書き直して、別の場所からファイルをロードする方が良いでしょうか?または、他の何か?

回答:


17

これを試して。

まとめると、コアモジュールの翻訳XPathの下に追加の翻訳ファイルを指定し、そこにオーバーライドCSVペアを配置します。

<frontend>
    <translate>
        <modules>
            <Mage_Sales>
                <files>
                    <mr_storms_wicked_translations>Mage_Sales_Custom.csv</mr_storms_wicked_translations>
                </files>
            </Mage_Sales>
        </modules>
    </translate>
</frontend>

5
速すぎた。私はそれを失い始めています。
マリウス

15

横にtranslate.csvして非ポータブルインライン他の方法がある変換されます。私はこのようにします。

各モジュールは複数の翻訳ファイルをサポートしています。

これを追加する場合config.xml

    <translate>
        <modules>
            <[Namespace]_[Module]>
                <files>
                    <default>[Namespace]_[Module].csv</default>
                    <alternative>[Namespace]_[Module]_version2.csv</alternative>
                </files>
            </[Namespace]_[Module]>
        </modules>
    </translate>

両方のファイル[Namespace]_[Module].csvおよび[Namespace]_[Module]_version2.csv翻訳のためにロードされます。

そして、宣言された順に処理されます。

たとえばMage_Sales.csv、ファイルを編集しないで何かを追加/変更する必要がある場合は、翻訳ファイルリストに他のファイルを追加するモジュールを作成するだけです。

このようなもの:
app/code/local/Easylife/Sales/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Sales>
            <version>0.0.1</version>
        </Easylife_Sales>
    </modules>
    <frontend>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </frontend>
    <adminhtml>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </adminhtml>
</config>

そして、モジュールが依存するようにしてくださいMage_Sales
翻訳を管理するための「すべてに合うサイズ」モジュールを作成することもできます。必要なモジュールに別の翻訳ファイルを追加し、この新しいモジュールがそれらすべてに依存することを確認してください。


app/locale/**/Easylife_Sales.csvこのファイルを見るだけですか?あなたのファイルシステムのディレクトリセパレータを知っている限り、サブフォルダも許可すると思いますか?
pspahn

必要に応じてサブフォルダーを使用できると思います。試したことがありません。
マリウス

9

にあるCSVファイルapp/localeはコアファイルと見なし、変更しないでください。カスタム翻訳を追加する最良の方法は、それらをapp/design/frontend/{package}/{theme}/locale/{locale}/translate.csv

あなたはモジュールの名前を使用することができますが、ノートtranslate.csvも使ってファイル"Mage_Adminhtml::Sales","Sales"の代わりに"Sales","Sales"。これにより、特定のテーマに合わせてカスタマイズされた翻訳を使用することもできます。


1
テーマロケールファイルは、物事を行うための優れた高速な方法ですが、同じインスタンスに複数のテーマがある場合はどうでしょうか。
マリウス

2
私はほとんどの場合、テーマ固有の翻訳を使用することを好みます-テーマのスペースが少ない場合があり、代わりに略語を使用する必要があります。これにより、テーマのテスト方法もより簡単になります。
プロント14

@Prontoはあなたが言ったようにやったが、何らかの理由でMagentoはtranslate.csvがロードされている場合にのみapp/locale/ロードし、app/design/frontend/{package}/{theme}/locale/代わりにロードするように指示するにはどうすればよいですか?ここで私の質問を参照してください:stackoverflow.com/questions/26554195/...
ジャスティン・

4

デザイン/テーマ固有の「translate.csv」を編集/作成できます。「module-translation-file」からの翻訳を上書きするには。たとえば、「Mage_Catalog.csv」:

"Mage_Catalog::add to basket","into Basket"

したがって、ルールは「変換されるモジュール名前空間::文字列」、「翻訳された文字列」です。Magentoの翻訳ワークフローの最後のルールだと思います。


1

SemExpertでは、まさにそれを行います。独自のes_AR翻訳パッケージ(CSVファイルと電子メールテンプレート)があり、すべてのカスタマイズは、translate.csvまたはインライン翻訳機能(非常にまれな最終ユーザーの場合)によって行われます。

Magentoのアップグレードにより翻訳ファイルが失われるリスクはありません(そのままではes_ARをサポートすることはほとんどありませんが、Magentoが文字列に小さな変更を加える(「。」を追加するなど)あなたがそれらを最も期待しないときに、英語の文字列を表示する文の終わり)。

新しいMageバージョンがリリースされるたびに使用する翻訳文字列を監視するための小さなモジュールの開発を開始しました。ここで見つけることができます:https : //github.com/barbazul/SemExpert_TranslationDoctor

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.