gpt4 book ai didi

javascript - 使用 Javascript 翻译日期?

转载 作者:行者123 更新时间:2023-11-29 17:30:15 24 4
gpt4 key购买 nike

我有一个项目大大超出了预算,我正试图找到最快的解决方案。基本上,我有一个多语言网站,它以下列格式用英语输出日期:

  • 1 月 1 日
  • 2011 年 1 月 1 日

显然每个月有 12 个选项,但我只需要翻译月份,而不是几天或一周中的几天。此外,由于我最初是从 PHP 回显这些日期,因此生成的 HTML 是 100% 可预测的,只有 24 个可能的返回值 - 12 个代表一月、二月、三月,12 个代表一月、二月、三月……等等。

我已经听说过 PHP strotime()setlocale()。我知道它可能有点简陋,但是有没有一种方法可以只获取正在吐出的 PHP 字符串,并在事后使用 jQuery 直接翻译它们。我要做的是将脚本包装在 PHP 条件中,检查 if (ICL_LANGUAGE_CODE == 'fr') {}

如果有一种非常简单的方法可以通过 PHP 做到这一点,我愿意接受,但到目前为止,我已经收到了社区的回复,但它们都太耗时了,而且在很多情况下没有考虑其他变量我为简洁起见,这里不做解释。

此外,为了清楚起见,我会说我正在使用 jQuery 并且它已经加载到网站上。

编辑

我不关心这个的日期语法,例如,我可以这样做:if (English) { date('F j, Y');} else (FR) { 日期('j')。' '.date('F').', '.date('Y') } 因此,我唯一的问题是翻译月份名称。此外,这是针对“即将发生的事件”的,因此我并不是要回应当前日期/时间,而是要回应带有 PHP 时间戳的 future 日期/时间。

最佳答案

试试这个:

mons.txt 的内部:

EN, Jan, Feb, Mar, Apr, May, June, July, Aug, Sept, Oct, Nov, Dec
FR, janv, fevr, mars, avril, mai, juin, juil, aout, sept, oct, nov, dec
DE, Jan, Feb, Marz, Apr, Mai, Juni, Juli, Aug, Sept, Okt, Nov, Dez
IT, genn, febbr, mar, apr, magg, giugno, luglio, ag, sett, ott, nov, dic
ES, enero, feb, marzo, abr, mayo, jun, jul, agosto, set, oct, nov, dic
NL, Jan, Feb, Mar, Apr, Mei, Juni, Juli, Aug, Sept, Oct, Nov, Dec

months.txt 内部:

EN, January, February, March, April, May, June, July, August, September, October, November, December
FR, janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, decembre
DE, Januar, Februar, Marz, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember
IT, gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novembre, dicembre
ES, enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre
NL, Januari, Februari, Maart, April, Mei, Juni, Juli, Augustus, September, Oktober, November, December

days.txt 内部:

EN, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
FR, lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche
DE, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag
IT, lunedi, martedi, mercoledi, giovedi, venerdi, sabato, domenica
ES, lunes, martes, miercoles, jueves, viernes, sabado, domingo
NL, Maandag, Dinsdag, Woensdag, Donderdag, Vrijdag, Zaterdag, Zondag

翻译:

$date = date('l, M n, Y', strtotime('December 13th, 2012'));
$date = translate($date, 'IT');
var_dump($date);

function tmap($maps = array()) {
$tmap = array();
$defaultMaps = array('mons', 'months', 'ordinals', 'days', 'formats');
$maps += $defaultMaps;
foreach ($maps as $map) {
$mapfile = "$map.txt";
if (file_exists($mapfile)) {
$file = file($mapfile);
foreach ($file as $line) {
$translations = str_getcsv($line);
$locale = array_shift($translations);
$tmap[$map][$locale] = $translations;
}
}
}
return $tmap;
}

function translate($string, $to, $classes=array(), $base='EN', $tmap=array()) {
if (empty($tmap)) $tmap = tmap();
if (is_string($classes)) $classes = array($classes);
if (empty($classes)) {
$classes = array_keys($tmap);
}
foreach ($classes as $class) {
$string = str_ireplace($tmap[$class][$base], $tmap[$class][$to], $string);
}
return $string;
}

关于javascript - 使用 Javascript 翻译日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com