Làm thế nào để dịch chuỗi số nhiều với Drush?


8

Nếu chúng ta muốn dịch một chuỗi số nhiều trong Drupal, chúng ta có thể sử dụng format_plural()hàm.

Nếu bạn đang lập trình các lệnh drush, bạn có thể sử dụng dt()hàm để dịch các chuỗi, nhưng nếu bạn muốn dịch các chuỗi số nhiều trong drush wich thì chức năng này có thực hiện được điều này không?

Câu trả lời:


8

Giữa các hàm Drush xử lý văn bản , không có hàm nào như vậy, nhưng bạn có thể triển khai một hàm bằng cách sử dụng mã từ format_plural () , thay thế bất kỳ cuộc gọi nào t()bằng các cuộc gọi đến 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);
    }
  }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.