Как использовать интернационализированную функцию human_time_diff () на китайском языке?

Глядя на https://codex.wordpress.org/Function_Reference/human_time_diff

Я использую английскую версию WordPress.

В моем шаблоне темы я хотел бы определить пользовательский текст min, hour, day, week, month, year на китайском языке, используя human_time_diff() при human_time_diff() по сообщениям.

Согласно инструкции в документации Codex:

 <?php printf( _x( '%s ago', '%s = human-readable time difference', 'your-text-domain' ), human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) ); ?> 

Я до сих пор не знаю, как сделать реализацию для свопа, используя приведенный выше код. например.

 min -> 分鐘hour -> 小時dat -> 天week -> 週month -> 月year -> 年 

ago часть должна быть прямой.

Есть ли пример, который может продемонстрировать, как он работает?

Кроме того, мне нужно беспокоиться о множественных числах на английском языке?

Solutions Collecting From Web of "Как использовать интернационализированную функцию human_time_diff () на китайском языке?"

Если вы посмотрите источник human_time_diff :

 if ( $diff < HOUR_IN_SECONDS ) { $mins = round( $diff / MINUTE_IN_SECONDS ); if ( $mins <= 1 ) $mins = 1; /* translators: min=minute */ $since = sprintf( _n( '%s min', '%s mins', $mins ), $mins ); } elseif ( $diff < DAY_IN_SECONDS && $diff >= HOUR_IN_SECONDS ) { $hours = round( $diff / HOUR_IN_SECONDS ); if ( $hours <= 1 ) $hours = 1; $since = sprintf( _n( '%s hour', '%s hours', $hours ), $hours ); } elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) { $days = round( $diff / DAY_IN_SECONDS ); if ( $days <= 1 ) $days = 1; $since = sprintf( _n( '%s day', '%s days', $days ), $days ); } elseif ( $diff < MONTH_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) { $weeks = round( $diff / WEEK_IN_SECONDS ); if ( $weeks <= 1 ) $weeks = 1; $since = sprintf( _n( '%s week', '%s weeks', $weeks ), $weeks ); } elseif ( $diff < YEAR_IN_SECONDS && $diff >= MONTH_IN_SECONDS ) { $months = round( $diff / MONTH_IN_SECONDS ); if ( $months <= 1 ) $months = 1; $since = sprintf( _n( '%s month', '%s months', $months ), $months ); } elseif ( $diff >= YEAR_IN_SECONDS ) { $years = round( $diff / YEAR_IN_SECONDS ); if ( $years <= 1 ) $years = 1; $since = sprintf( _n( '%s year', '%s years', $years ), $years ); } 

Как вы можете видеть, просто переведите строки %s min , %s mins и т. Д.

Полное решение, которое работает для меня без изменения ядра WordPress, – это клонировать human_time_diff() и помещать его внутри functions.php в качестве переименованного human_time_diff_chinese() , а затем human_time_diff() все появление функции human_time_diff() с помощью этой новой функции human_time_diff_chinese() ,

 function human_time_diff_chinese( $from, $to = '' ) { if ( empty( $to ) ) { $to = time(); } $diff = (int) abs( $to - $from ); if ( $diff < HOUR_IN_SECONDS ) { $mins = round( $diff / MINUTE_IN_SECONDS ); if ( $mins <= 1 ) $mins = 1; /* translators: min=minute */ $since = sprintf( _n( '%s 分鐘', '%s 分鐘', $mins ), $mins ); } elseif ( $diff < DAY_IN_SECONDS && $diff >= HOUR_IN_SECONDS ) { $hours = round( $diff / HOUR_IN_SECONDS ); if ( $hours <= 1 ) $hours = 1; $since = sprintf( _n( '%s 小時', '%s 小時', $hours ), $hours ); } elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) { $days = round( $diff / DAY_IN_SECONDS ); if ( $days <= 1 ) $days = 1; $since = sprintf( _n( '%s 天', '%s 天', $days ), $days ); } elseif ( $diff < MONTH_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) { $weeks = round( $diff / WEEK_IN_SECONDS ); if ( $weeks <= 1 ) $weeks = 1; $since = sprintf( _n( '%s 週', '%s 週', $weeks ), $weeks ); } elseif ( $diff < YEAR_IN_SECONDS && $diff >= MONTH_IN_SECONDS ) { $months = round( $diff / MONTH_IN_SECONDS ); if ( $months <= 1 ) $months = 1; $since = sprintf( _n( '%s 個月', '%s 個月', $months ), $months ); } elseif ( $diff >= YEAR_IN_SECONDS ) { $years = round( $diff / YEAR_IN_SECONDS ); if ( $years <= 1 ) $years = 1; $since = sprintf( _n( '%s 年', '%s 年', $years ), $years ); } return apply_filters( 'human_time_diff_chinese', $since, $diff, $from, $to ); }