1.16.x common.inc _format_date_callback(array $matches = NULL, $new_langcode = NULL)
1.18.x common.inc _format_date_callback(array $matches = NULL, $new_langcode = NULL)
1.17.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().


$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


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


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];