2

translate.csv表を介した変換とデータベース方式の違いは何core_translateですか?

4

4 に答える 4

9

これは、app / code / core / Mage / Core / Model / Translate.phpのinit()メソッドの一部です。

//Loading data from module translation files
        foreach ($this->getModulesConfig() as $moduleName=>$info) {
            $info = $info->asArray();
            $this->_loadModuleTranslation($moduleName, $info['files'], $forceReload);
        }
        $this->_loadThemeTranslation($forceReload);
        $this->_loadDbTranslation($forceReload); 

そこから、Magentoが次の順序で翻訳をロードしていることがわかります。つまり、Magentoには、カスタム翻訳をテキスト文字列に追加するための3つのオプションがあります。モジュール翻訳、テーマ翻訳、インライン翻訳です。

モジュールの翻訳

モジュールの翻訳はapp/locale/languagecode_COUNTRYCODE/、Namespace_Modulename.csvという名前のcsvファイルの形式でフォルダーに保存されます。メソッド内にある拡張子のすべての文字列は、__()この方法で翻訳できます。

テーマの翻訳

文字列はテーマ内で翻訳できます。そのため、Magento管理エリアでロケールを設定してから、translate.csvを作成しapp/design/frontend/<package>/<theme>/locale/languagecode_COUNTRYCODE、翻訳した文字列をこのCSV内に配置する必要があります。

“My Cart”,”My Basket”

“My Account”,”Account”

インライン翻訳

インライン翻訳を有効にするには、管理パネルにログインし、 [インライン翻訳]をSystem -> Configuration -> Developer見つけEnabledてフロントエンドに設定する必要がありますはい

このメソッドによって行われたすべての翻訳は、データベース内のcore_translateテーブルに保存されます。この方法がどのように機能するかをよりよく理解するために、このビデオをチェックしてください。

上記のテキストは、私たちのブログの私の記事の一部です

于 2012-12-10T22:18:39.717 に答える
5

core_translateテーブルは、StoreViewに依存するフレーズ用です

/app/design/frontend/YOUR PACKAGE / YOUR THEME / locale / YOUR LOCALE / translate.csv(あなたのテーマのロケール言語のフレーズ)。テーマを変更した場合、このフレーズは使用されません(新しいテーマのtranslate.csvが使用されます)。

フレーズがデータベースとcsvで利用できる場合は、DBフレーズが使用されます。

于 2012-12-10T06:31:18.533 に答える
1

As I see it, core_translate is useful when you are running magento in a distributed method on multiple servers, and reading from the filesystem just isn't ideal. I use core_translate with inline translations to handle translated content in CMS blocks. (a mod) The reason for this is that it is faster to read from the db than to parse a .csv. (I do not know if this is true with caching turned on, but it seemed like the safest route to go)

于 2013-05-27T17:03:01.807 に答える
0

私はいくつかのことを提案したこの古いフォーラムを掘り起こしました。おそらく、Magentoはインラインcore_translateアプローチを使用して、translate.csvをプッシュしようとしています。ただし、フォーラムのスレッドが2008年のものであることを考えると、そうではないようです。もう1つの提案は、一部の言語はデータベースでcore_translateを使用し、一部の言語はレコードを.csvに保持することです。おそらく、.csvはローカルのメンテナ向けであり、core_translateは管理者向けです。これがスレッドhttp://www.magentocommerce.com/boards/viewthread/40510/です

于 2012-12-10T01:42:51.730 に答える