Wie übersetze ich mehrere Zeichenfolgen mit Drush?

8

Wenn wir eine Pluralzeichenfolge in Drupal übersetzen möchten, können wir die format_plural()Funktion verwenden.

Wenn Sie Drush-Befehle programmieren, können Sie die dt()Funktion zum Übersetzen von Zeichenfolgen verwenden. Wenn Sie jedoch mehrere Zeichenfolgen in Drush übersetzen möchten, welche Funktion ist dies, um dies zu erreichen?

Adrian Cid Almaguer
quelle

Antworten:

8

Zwischen den Drush-Funktionen, die Text verarbeiten , gibt es keine solche Funktion, aber Sie können eine mithilfe des Codes aus format_plural () implementieren und jeden Aufruf von t()durch Aufrufe von ersetzen 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);
    }
  }
}
kiamlaluno
quelle