You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不修改WordPress 4.9.4网站语言的前提下实现日历本地化?

嘿,看起来你已经迈出了正确的第一步!要在不改动WordPress全局站点语言的前提下,实现印尼语日历的本地化,结合你已经完成的设置,咱们把剩下的操作补全:

实现WordPress日历本地化(印尼语,不修改站点语言)

1. 补全印尼语日期转换函数

你已经有了函数的开头,咱们把完整的函数写完,替换掉日期里的英文月份和星期为印尼语版本:

function indonesian_date ($timestamp = '', $date_format = 'l, j F Y | H:i', $suffix = 'WIB') {
    if (trim ($timestamp) == '') {
        $timestamp = time ();
    } elseif (!ctype_digit ($timestamp)) {
        $timestamp = strtotime ($timestamp);
    }
    // 移除英文序数词后缀(印尼语没有这类表述)
    $date_format = preg_replace ("/S/", "", $date_format);
    
    // 定义印尼语月份映射
    $months = array(
        'January'   => 'Januari',
        'February'  => 'Februari',
        'March'     => 'Maret',
        'April'     => 'April',
        'May'       => 'Mei',
        'June'      => 'Juni',
        'July'      => 'Juli',
        'August'    => 'Agustus',
        'September' => 'September',
        'October'   => 'Oktober',
        'November'  => 'November',
        'December'  => 'Desember'
    );
    
    // 定义印尼语星期映射
    $days = array(
        'Sunday'    => 'Minggu',
        'Monday'    => 'Senin',
        'Tuesday'   => 'Selasa',
        'Wednesday' => 'Rabu',
        'Thursday'  => 'Kamis',
        'Friday'    => 'Jumat',
        'Saturday'  => 'Sabtu'
    );
    
    // 生成格式化日期并替换为印尼语
    $date = date ($date_format, $timestamp);
    $date = str_replace (array_keys($months), array_values($months), $date);
    $date = str_replace (array_keys($days), array_values($days), $date);
    
    // 添加时区后缀(可选,按需开启)
    if (!empty($suffix)) {
        $date .= ' ' . $suffix;
    }
    
    return $date;
}

2. 函数的使用方式

把这段代码添加到你的主题functions.php文件末尾(或者用自定义代码插件如Code Snippets,更安全),之后就可以在主题模板里调用它来显示本地化日期:

  • 显示默认格式的当前日期:<?php echo indonesian_date(); ?>
  • 自定义格式显示(比如只显示日期):<?php echo indonesian_date('', 'j F Y'); ?>
  • 转换指定时间的日期:<?php echo indonesian_date('2024-05-20'); ?>

3. 适配WordPress内置日历小工具(可选)

如果你的站点用了WordPress自带的日历小工具,要让它也显示印尼语,添加下面的过滤器代码来替换日历里的文本:

add_filter('gettext', 'indonesian_calendar_text', 20, 3);
function indonesian_calendar_text($translated_text, $text, $domain) {
    if ($domain == 'default') {
        // 替换月份全称
        $month_translations = array(
            'January' => 'Januari',
            'February' => 'Februari',
            'March' => 'Maret',
            'April' => 'April',
            'May' => 'Mei',
            'June' => 'Juni',
            'July' => 'Juli',
            'August' => 'Agustus',
            'September' => 'September',
            'October' => 'Oktober',
            'November' => 'November',
            'December' => 'Desember'
        );
        // 替换星期缩写
        $day_translations = array(
            'Sun' => 'Min',
            'Mon' => 'Sen',
            'Tue' => 'Sel',
            'Wed' => 'Rab',
            'Thu' => 'Kam',
            'Fri' => 'Jum',
            'Sat' => 'Sab'
        );
        if (array_key_exists($text, $month_translations)) {
            return $month_translations[$text];
        }
        if (array_key_exists($text, $day_translations)) {
            return $day_translations[$text];
        }
    }
    return $translated_text;
}

这段代码会拦截WordPress默认文本输出,把日历里的英文月份和星期缩写替换成印尼语,不用改站点语言就能让日历本地化。

最后验证

确认你在「设置>常规」里的时区设为雅加达,日期格式j F Y、时间格式H:i,这样和函数逻辑匹配,显示的日期格式会更统一。


内容的提问来源于stack exchange,提问作者PUSTAKAKORAN.COM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:53:06