Drupalで複数の文字列を翻訳したい場合は、format_plural()
関数を使用できます。
Drushコマンドをプログラミングしている場合は、dt()
関数を使用して文字列を翻訳できますが、Drushで複数の文字列を翻訳したい場合は、これを実行する関数ですか?
Drupalで複数の文字列を翻訳したい場合は、format_plural()
関数を使用できます。
Drushコマンドをプログラミングしている場合は、dt()
関数を使用して文字列を翻訳できますが、Drushで複数の文字列を翻訳したい場合は、これを実行する関数ですか?
回答:
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);
}
}
}