1.20.x common.inc _format_date_callback(array $matches = NULL, $new_langcode = NULL)

Translates a formatted date string.

Callback for preg_replace_callback() within format_date().

Parameters

$matches: The array of matches as found by preg_replace_callback().

string $new_langcode: Sets the internal langcode to be used. Set the langcode prior to calling preg_replace_callback().

Return value

string: The date from $matches as a translated string.

Related topics

File

includes/common.inc, line 2495
Common functions that many Backdrop modules will need to reference.

Code

function _format_date_callback(array $matches = NULL, $new_langcode = NULL) {
  // We cache translations to avoid redundant and rather costly calls to t().
  static $cache, $langcode;

  if (!isset($matches)) {
    $langcode = $new_langcode;
    return NULL;
  }

  $code = $matches[1];
  $string = $matches[2];

  if (!isset($cache[$langcode][$code][$string])) {
    $options = array(
      'langcode' => $langcode,
    );

    if ($code == 'F') {
      $options['context'] = 'Long month name';
    }

    if ($code == '') {
      $cache[$langcode][$code][$string] = $string;
    }
    else {
      $cache[$langcode][$code][$string] = t($string, array(), $options);
    }
  }
  return $cache[$langcode][$code][$string];
}