最近、私はSymfonyで利用可能なsfDoctrineGuardPluginに苦労しています。問題はプラグインの翻訳にあります。
sfDoctrineGuardPluginの背後にいる人々は、プロジェクトの適切なディレクトリにいくつかの翻訳を提供しているため、明らかにi18nについて考えています。ただし、問題は、すべてのテキスト要素が変換されるわけではないことです。より具体的には、ログイン/サインインフォームは部分的にのみ翻訳されます。
ノルウェー語の翻訳ファイルを追加しました(簡単にするために)。プラグインのi18nディレクトリ内に配置しました。すべてのアイテムが適切に翻訳されたらすぐに移動しますが、それは別の話です。
私のログインフォーム(sfDoctrineGuardPluginのデフォルト)は、レンダリングすると次のようになります(簡単にするためにスタイルは削除されています)。
ご覧のとおり、header-elementとsignin-buttonは変換されますが、username/emailとpasswordのフィールドは変換されません。
sfDoctrineGuardPlugin / lib / form / doctrine / base / BasesfGuardFormSignin.class.phpには、次のコードがあります。
if (sfConfig::get('app_sf_guard_plugin_allow_login_with_email', true))
{
$this->widgetSchema['username']->setLabel('Username or E-Mail');
}
これは、翻訳されていないテキスト要素の1つです。私のsg_guard.nb.xmlでは、sfDoctrineGuardPluginssvn-repositoryの翻訳例にあるすべての文字列を翻訳しました。上記のラベルについて、私は次のものを持っています:
<trans-unit>
<source>Username or E-Mail</source>
<target>Brukernavn eller epost</target>
</trans-unit>
私の推測では、setLabelを2つのセクションで使用すると、i18nシステムが翻訳を適切な場所に挿入できなくなります。
sfDoctrineGuardPluginは、sf_guard.XX.xml以外のカタログからテキストを置き換えるように設定されていますか?
翻訳を機能させるために何をしましたか?回避できる場合は、sfDoctrineGuardPluginソースを変更したくありません(したがって、依存関係はクリーンです)。
どんなポインタでも大歓迎です。