2

Twig i18n Extension を使用しようとしています。

私が知る限り、必要なファイルは次のとおりです。

https://github.com/fabpot/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/I18n.php

このファイルを保存する場所がよくわかりません

includes/lib (/includes/lib/Twig) というフォルダーに Twig があります。Twig の下にフォルダー Extension が表示されます。ここに保存しますか?

保存した後、ファイルに対して "require_once" を実行する必要がありますか? それとも Twig_Autoloader が代わりにやってくれますか?

Symfony2 を使用していません

ありがとうクレイグ

4

3 に答える 3

4

これが私のために働いた完全な答えです:

  1. ファイルを Twig-Verzeichnis にコピーします (Twig で i18n.zip を抽出します)。I18n 拡張の場合は、Twig/Extensions/Extension/I18n.php になります。
  2. 最終的に、I18n に必要な他のファイルを追加します。これらが何であるかは、表示されるエラー メッセージで確認できます。「Twig/Extensions/Node/Trans.php」と「Twig/Extensions/TokenParser/Trans.php」を追加する必要がありました。
  3. 構成ファイルに次を追加します。

    // Set language to German
    putenv('LC_ALL=de_DE'); 
    setlocale(LC_ALL, 'de_DE'); 
    // Specify location of translation tables
    bindtextdomain("project_de_DE", "./locale"); 
    // Choose domain 
    textdomain("projectl_de_DE");
    
  4. Twig 拡張機能を登録する

    $twig->addExtension(new Twig_Extensions_Extension_I18n());
    
  5. ディレクトリ locale/de_DE/LC_MESSAGES を作成します。

  6. PO ファイルを作成します (最も簡単な方法は、サンプル ファイルから開始することです)。
  7. 通常のテキスト エディターでファイルを開き (必ず utf-8 エンコーディングを使用してください)、翻訳を開始します。
  8. PO-Datei を PoEdit で開く (www.poedit.net/)
  9. locale/de_DE/LC_MESSAGES に保存します (MO-Datei が作成されます)。
  10. Twig-Template の適切な場所に翻訳を追加します。

    {% trans 'Text in the original language' %}`
    
于 2012-10-18T09:08:18.137 に答える
0

Composer を使用せずにこれらの拡張機能をインストールする「適切な」方法は次のとおりです。

  1. https://github.com/fabpot/Twig-extensions/releasesからリリースをダウンロードします
  2. lib/ディレクトリの内容をプロジェクトのどこかにコピーします
  3. ファイルを含める.../Twig/Extensions/Autoloader.php
  4. オートローダーを登録します。Twig_Extensions_Autoloader::register();
  5. ドキュメントで説明されているように続行します: http://twig.sensiolabs.org/doc/extensions/i18n.html
于 2014-03-22T18:23:07.507 に答える
0

この拡張機能を Twig に登録する必要があります。

$twig->addExtension(new Twig_Extensions_Extension_I18n());

インストールが正しく構成されている場合、オートローダーはファイルをインクルードするジョブを実行する必要があります。そうでない場合は、ファイルを手動で含めるか、composerでインストールを行うことができます。

于 2012-10-03T08:03:50.717 に答える