カスタムフィールドラベルを翻訳する方法


6

カスタムフィールドのラベルと説明をオランダ語に翻訳したいのですが、何をしようとしても常に英語(作成に使用する言語)のままにしておきます。なぜ機能しないのかわからないので、以下の手順が理にかなっているといいのですが。

(サイトの言語を英語に設定して)フィールドをプロファイル(プロファイル2モジュールを使用)またはアカウントに直接作成します。

次に、フィールドを編集し、翻訳ボタン(i18nのフィールド翻訳で提供)を使用してオランダ語の翻訳を追加します。しかし、サイトの言語をオランダ語に切り替えても、フィールドのラベルと説明は英語のままです。

(サイトの言語をオランダ語に設定したまま)フィールドを再度編集すると、翻訳タブにオランダ語の翻訳が表示され、ステータスがオリジナルと英語で「niet vertaald」または翻訳されていません。オランダ語の翻訳を編集すると、英語版が表示されます。

これを再びオランダ語のテキストに変更すると、正しく表示されます(オランダ語で)。いいですが、サイトを英語に戻してもフィールドはオランダのままです。フィールドを編集すると、翻訳タブにオランダ語のテキストが英語で表示されますが、英語のステータスは元に戻ります。

これの表と裏は作れません。私は何かを完全に欠落していますか、これはおそらくバグですか?私はDrupal 7を使用しています。


デフォルトの言語は何ですか?Entity Translationも使用していますか、それともi18nモジュールを使用していますか?翻訳後にキャッシュをクリアしましたか?言語検出設定を再確認しましたか?/ admin / config / regional / language / configure
Patrick Kenny

デフォルトの言語は英語です。テストするために、デフォルトの言語をオランダ語に切り替えました(言語検出設定の問題を回避するため)。ある時点でエンティティの翻訳を有効にしましたが、i18nが必要な翻訳のタブとフィールドを提供していたため、それは必要ではないようでした。キャッシュをクリアしませんでしたか?現時点では確認できません。
ウイスキー

私はいつも最初にキャッシュをクリアしようとします。それは多くの問題を修正します。
Patrick Kenny、

自宅の開発環境でもう一度テストを行いました。i18nと変数をインストールし、フィールド翻訳を有効にして、アカウント設定で作成したフィールドの翻訳を試みました。同じ結果、キャッシュをクリアした頻度に関係なく:(
Whiskey

回答:


6

テストするためにデフォルトの言語をオランダ語に変更しないでください。それ以降は、フィールド名(およびWebサイトの他のすべてのもの)がオランダ語であると設定されます。

代わりに、「検出と選択」オプションを使用してブラウザーまたはユーザーを有効にし、オランダ語の他のブラウザーで、または言語がオランダ語に設定されている別のユーザーでテストすることをお勧めします。

より良い、より快適な方法は、Language Switcherブロックを使用して、検出と選択の設定でURLまたはセッションを有効にすることです。

そのため、ウェブサイトのデフォルト言語は英語のままであり、誰かがオランダ語でウェブサイトを使用している場合、フィールドは翻訳されます。


これを指摘していただきありがとうございます。デフォルトの言語設定がサイト内の文字列の起源にも適用されるとは思いもしませんでした。また、[フィールドの管理]でフィールドを編集するときに、翻訳は[翻訳]タブボタンでも機能します。
ウイスキー

12

昨日、同じ問題でラベルとカスタムの説明を翻訳しました。これが私がそれを解決するためにしたことです。

  • i18nのi18_field「フィールド変換」サブモジュールを有効にする
  • に行く admin/config/regional/translate/i18n_string
  • 「フィールド」をチェックし(すべてを適切にチェック)、「文字列を更新」をクリックします。
  • に行く admin/config/regional/translate/translate
  • 目的の文字列を検索し、他の言語に翻訳します。

10

この方法で翻訳したフィールドラベルを印刷します(i18n_field.moduleを使用)。

$instance = field_info_instance('node', $my_field_name, $my_node_type);
$my_translated_label = i18n_field_translate_property($instance, 'label');

それが役に立てば幸い。


2
これは興味深い解決策です。このコードはどこに配置しますか?なぜi18n_fieldはそのままではこれを行わないのですか?
JamesWilson、2014年

1

admin / config / regional / i18n / stringsでオランダ語をデフォルト言語として維持し、英語をソース言語として設定することもできたと思います。


1

これを行う最も簡単な方法は、Localize fieldモジュールをインストールすることです。

次のものの翻訳を提供します。

  • すべてのコアフィールド、日付フィールド、フィールドのタイトルと説明
  • コレクションの接頭辞、接尾辞、および小数点記号
  • リストタイプのオプションラベル

i18n_fieldをインストールしていても使用できます(フィールド変換)

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