俄语月份名称错误

Pat*_*rik 5 php strftime

我正在开发一个网站,我的客户来自俄罗斯。他说,新闻中的月份翻译是错误的。

\n\n

例如,九月:

\n\n
    \n
  • 我从 php 得到这个:\xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8c
  • \n
  • 这是他的:\xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f
  • \n
\n\n

我怎样才能覆盖这个?

\n\n

说明:\n使用区域设置时ru_RU,输出的月份名称将为俄语。但据我的客户说,月份的名称是错误的。我不会说俄语,所以我不知道他是对还是错

\n\n

我刚刚看到,如果我将日期从: 翻译8th of September 2011成俄语,它将看起来像这样:8 \xd1\x81\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f 2011看翻译

\n\n

因此,解决该问题的方法可能是重写日期格式。

\n\n

我还没有解决这个问题;显然这是一个错误/缺失的功能,因为俄罗斯的先进的词尾变化。而且我需要的日期格式不存在。我认为这会影响strftimePHPdate()

\n\n

有人可以验证这一点吗?

\n

小智 4

我知道现在为时已晚,但希望这能节省某人的时间。

\n\n

俄语被认为是世界上最难的语言。在这种情况下,正确的变体肯定是 \xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f。你可以说“That's September now”,即“That's \xd0\xa1\xd0\xb5\xd0\xbd\xd0\xb1\xd1\x8f\xd1\x80\xd1\x8c”现在\'。但是,如果您指的是“明天是 9 月 6 日”这样的日期,那么在俄语中,该日期将更改为“明天是 6 \xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1” \x8f\xd0\xb1\xd1\x80\xd1\x8f"。将语言环境更改为 ru_RU 显然不知道这一点,因此这里有一个简单的解决方案来完成此任务:

\n\n

(假设$date是dmY格式)

\n\n
function russianDate($date){\n    $date=explode(".", $date);\n    switch ($date[1]){\n        case 1: $m=\'\xd1\x8f\xd0\xbd\xd0\xb2\xd0\xb0\xd1\x80\xd1\x8f\'; break;\n        case 2: $m=\'\xd1\x84\xd0\xb5\xd0\xb2\xd1\x80\xd0\xb0\xd0\xbb\xd1\x8f\'; break;\n        case 3: $m=\'\xd0\xbc\xd0\xb0\xd1\x80\xd1\x82\xd0\xb0\'; break;\n        case 4: $m=\'\xd0\xb0\xd0\xbf\xd1\x80\xd0\xb5\xd0\xbb\xd1\x8f\'; break;\n        case 5: $m=\'\xd0\xbc\xd0\xb0\xd1\x8f\'; break;\n        case 6: $m=\'\xd0\xb8\xd1\x8e\xd0\xbd\xd1\x8f\'; break;\n        case 7: $m=\'\xd0\xb8\xd1\x8e\xd0\xbb\xd1\x8f\'; break;\n        case 8: $m=\'\xd0\xb0\xd0\xb2\xd0\xb3\xd1\x83\xd1\x81\xd1\x82\xd0\xb0\'; break;\n        case 9: $m=\'\xd1\x81\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f\'; break;\n        case 10: $m=\'\xd0\xbe\xd0\xba\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f\'; break;\n        case 11: $m=\'\xd0\xbd\xd0\xbe\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f\'; break;\n        case 12: $m=\'\xd0\xb4\xd0\xb5\xd0\xba\xd0\xb0\xd0\xb1\xd1\x80\xd1\x8f\'; break;\n    }\n    return $date[0].\' \'.$m.\' \'.$date[2];\n}\n
Run Code Online (Sandbox Code Playgroud)\n