如何在Drupal 7上翻译日期格式?

在admin / config / regional / date-time / formats上,我可以设置日期格式,如M jS,并将它们映射到admin / config / regional / date-time上的日期类型,如“短格式日期”.

现在我想建立一个多语言网站,所以我不仅需要翻译月份或周名称,而是根据语言选择不同的日期格式.也就是说,4月12日对英语来说还不错,但将4月份翻译成Abr并不会让西班牙语变得更好:Abr 12th – 应该是12 Abr.我还需要翻译格式本身,所以网站的西班牙语版本将使用j M.而不是M jS.

我怎样才能做到这一点?我尝试在admin / config / regional / translate / translate上搜索这些日期格式.那里有Apr-> Abr部分,但不是格式本身.我找不到像M jS这样的字符串.

最佳答案 你可以使用drupal 7 t()函数:
http://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/t/7

任何通过t()函数的东西都必须在后端手动翻译
配置>区域和语言>翻译界面.这意味着您必须手动输入日期和月份的翻译.

示例代码:

<?php
    global $language;

    $day = t(date('l'));
    $month = t(date('F'));
    $dayNum = date('j');
    $year = date('Y');

    $output = t('@day, @month @dayNum, @year', array(
        '@day' => $day,
        '@month' => $month, 
        '@dayNum' => $dayNum, 
        '@year' => $year
    ));

    print ("<p class='today'>".$output."</p>");
?>
点赞