gpt4 book ai didi

Php多语言日期: howto?

转载 作者:可可西里 更新时间:2023-11-01 01:05:48 26 4
gpt4 key购买 nike

注意:这不是 Translating PHP date() for Multilingual Site 的副本.我读过了!

对不起,我必须先解释一下我的框架是如何工作的,这样你才能准确地理解我的问题出在哪里:

这是我的 Php 代码的工作原理(粗略的原理)。让我们举个例子,某人想要查看 URL http://myweb.com/valid.php:

  • 在文件 valid.php 中,代码包含正确的类定义,然后创建一个对象并调用显示页面的函数 display()
  • 在文件 valid.php 中,创建对象时,它会分析主机,主机中有语言 (http:// 我们.myweb.com/, http://cn.myweb.com/, http://fr.myweb.com/...) 和默认语言(如果没有找到)是英语
  • 然后我加载一个缓存的 Php 文件,其中包含翻译。这是一个 translation 对象,我简称为 $t
  • 从现在开始,每当我需要翻译时,我只需执行 $t->get('my_string') 之类的操作即可。

让我们以 2 种语言文件为例:

  • 2 个语言文件:cache.us.phpcache.fr.php
  • cache.us.php 中有这样一行:$thanks_for_the_fish = "Thanks for the fish"
  • cache.fr.php 中有这样一行:$thanks_for_the_fish = "Merci pour le poisson"
  • 我构建我的页面,包括正确的语言文件,然后调用 $t->get('thanks_for_the_fish') 并翻译它。

现在我的问题是日期格式。使用短日期格式这不是问题:

  • cache.us.php 中:$short_date_format = "m/d/Y, H:i"
  • cache.fr.php 中:$short_date_format = "d/m/Y à H:i"

但是对于long 日期格式,我只是在研究法语,我从类似的东西开始:

  • cache.fr.php 中:$long_date_format = "%s, %d %s %d"
  • 然后所有的日子:$sunday = "dimanche", $monday = "lundi" 等等
  • 然后在我的翻译代码中:

像这样(仔细阅读代码中的注释,我的问题在里面!):

static private $_TabStrDaysOfWeek = array(
0 => 'sunday',
1 => 'monday',
...,
6 => 'saturday'
);
public function translateDate($date_time)
{
$long_day = $this->tr->get(
$this->_TabStrDaysOfWeek[ $date_time->format('w') ]
);
/*

here's where I'm stuck:
what could be the code to be able to display:
- english:
Monday, 1st September 2006
Tuesday, 2nd September 2006
Wednesday, 3rd September 2006
Thursday, 4th September 2006

- french:
Lundi, 1 septembre 2006
Mardi, 2 septembre 2006
Mercredi, 3 septembre 2006
Jeudi, 4 septembre 2006

- arabian!!:
1 - Don't know
2 - Don't know
3 - Don't know
4 - Don't know
*/
}

...我说阿拉伯语是因为我迟早会需要它,普通话也一样。我所有的其他翻译问题都解决了,但这个问题!!

有什么想法吗?

最佳答案

对于国际化任务,我强烈建议使用 PHP intl延期。它包含几个用于常见国际化任务的类,例如日期/时间格式化、数字格式化、字符串音译等。具体来说,IntlDateFormatter类(class)能够为任何可用的语言环境格式化(和解析)日期时间。

关于Php多语言日期: howto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290702/

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