Drushで複数の文字列を翻訳する方法は?


8

Drupalで複数の文字列を翻訳したい場合は、format_plural()関数を使用できます。

Drushコマンドをプログラミングしている場合は、dt()関数を使用して文字列を翻訳できますが、Drushで複数の文字列を翻訳したい場合は、これを実行する関数ですか?

回答:


8

textを処理するDrush関数の間にそのような関数はありませんが、format_plural()のコードを使用して、へのt()呼び出しをへの呼び出しに置き換えて実装できますdt()

function drush_plural($count, $singular, $plural, array $args = array(), array $options = array()) {
  $args['@count'] = $count;
  if ($count == 1) {
    return dt($singular, $args, $options);
  }

  // Get the plural index through the gettext formula.
  $index = (function_exists('locale_get_plural')) ? locale_get_plural($count, isset($options['langcode']) ? $options['langcode'] : NULL) : -1;
  // If the index cannot be computed, use the plural as a fallback (which
  // allows for most flexiblity with the replaceable @count value).
  if ($index < 0) {
    return dt($plural, $args, $options);
  }
  else {
    switch ($index) {
      case "0":
        return dt($singular, $args, $options);
      case "1":
        return dt($plural, $args, $options);
      default:
        unset($args['@count']);
        $args['@count[' . $index . ']'] = $count;
        return dt(strtr($plural, array('@count' => '@count[' . $index . ']')), $args, $options);
    }
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.