2

Drupal 7 サイトを持っていて、PHP で書かれた小さなカレンダー コントロールを出力する必要があります。月名と日を含むテーブルを出力します。テーブルには、「Mon」、「Tue」という曜日名のヘッダーがあります。

Drupal で選択されている現在のサイト言語でこれを出力する必要があります。これを行う最善の方法は何ですか?

4

3 に答える 3

1

Drupalでは、文字列の変換に使用される関数はt()です。

英語以外の言語を有効にすると、渡されたリテラル文字列はt()、翻訳ファイルで使用可能な翻訳に置き換えられます。平日の短縮名の翻訳がない場合は、admin / config / regional / translate/translateで翻訳を追加できます。

スクリーンショット

翻訳システムはDrupalに実装されているため、渡される文字列がt()リテラル文字列である場合にのみ機能します。モジュールが次の引数のいずれかを渡して関数を呼び出している場合、文字列は翻訳できません。

  • 2つ以上の文字列間の連結(t('This is a' . 'string that is not translatable')
  • 変数の内容(t($text_to_translate)
  • 関数の結果(t(get_string(STRING_ID_ERROR_MESSAGE))

モジュールがdrupal.orgでホストされている場合は、http://localize.drupal.orgから提供される翻訳サービスを使用できます

于 2012-04-05T17:48:49.533 に答える
0

Erlendoos、私はあなたの解決策を試しましたが、うまくいきませんでした。

次のように、最終的に t() の代わりに locale() の使用を終了しました。

function monthname_install() {
  $months = array(
                     'January',
                     'February',
                     'March',
                     'April',
                     'May',
                     'June',
                     'July',
                     'August',
                     'September',
                     'October',
                     'November',
                     'December',
                );

  foreach($months as $m) {
    locale( $m, 'Long month name' );
  }

  drupal_set_message(t('All long month names available for translation.'));
}

https://api.drupal.org/api/drupal/modules%21locale%21locale.module/function/locale/7

上記を実行した後、翻訳用の月名が既にあります。

「アーカイブ」サンプル ビューを有効にし、そのビューを使用してブロックまたはページを配置した場合、ビューで使用されるすべての名前は既に翻訳可能になっていることに注意してください。しかし、「新しくインストールされた」drupal では、文字列を翻訳できるようにするには、上記を .install ファイルで実行する必要があります。

これが、私のように同じ問題を抱えていて、上記の解決策を試しても成功しなかった人々に役立つことを願っています.

于 2014-03-01T12:11:48.263 に答える