2011-12-25 3 views
1

私はDrupal English/Frenchのウェブサイトを持っています。 私はすべての種類のフィールドで 'ad'というカスタムコンテンツタイプを持っています。 テーマディレクトリ に 'node - ad.tpl.php'というファイルを作成して、 '広告'コンテンツの表示をカスタマイズしました。 私はpixture reloadedテーマとDRUPAL 7を使用します。drupalでnode.tpl.phpファイルのフィールドを翻訳する7

フィールド変換(フィールドとラベルの両方) フィールド変換モジュールを使用して翻訳しようとしています。

フィールドの翻訳は、管理者がコンテンツを作成または変更したときに機能します。

しかし、「広告」タイプのコンテンツを表示すると、フィールドは翻訳されません。 これは、 'node-ad.tpl.php'へのdrupal呼び出しと変換モジュール がおそらく呼び出されないためです。 'node-ad.tpl.php'を削除すると、drupalはデフォルトのnode.tpl.php を同様の結果で呼び出します。 - 私が正しくモジュールのすべての依存関係を有効に 1:

すべてのヘルプは、高度で おかげで、

ノートをいただければ幸いです。 2 - ユーザーインターフェイス変換が正しく機能します。

答えて

1

OK これを行う方法を自分で見つけました。 私はここに解決策を与えます。 他人に役立つかもしれません:

まず、設定>地域と言語>翻訳>インポートでフィールドラベルと値を翻訳します。フィールドとして値をインポートするのではなく、ユーザーインターフェイスとしてインポートします。 にURLを指定しないでください(msgstrとmsgidのみ)。

ここで、翻訳を有効にするには、node.tpl.phpにt()関数を追加する必要があります。したがって、

node.tpl.phpファイルで、フィールドラベルを変換する場合は、次のように記述します。 $ content ['field_my_field'] ['#title'] = t($ content ['field_my_field'] ['#タイトル']);

フィールド値を変換するには、 $ content ['field_my_field'] ["#items"] [0] ['value'] = t($ content ['field_my_field'] ["#items"] [0] ['値']);

フィールドをレンダリングできるようになりました。print render($ content ['field_my_field']);

関連する問題