我正在开发一个网站,我的客户来自俄罗斯。他说,新闻中的月份翻译是错误的。
\n\n例如,九月:
\n\n\xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8c\xd0\xa1\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f我怎样才能覆盖这个?
\n\n说明:\n使用区域设置时ru_RU,输出的月份名称将为俄语。但据我的客户说,月份的名称是错误的。我不会说俄语,所以我不知道他是对还是错
我刚刚看到,如果我将日期从: 翻译8th of September 2011成俄语,它将看起来像这样:8 \xd1\x81\xd0\xb5\xd0\xbd\xd1\x82\xd1\x8f\xd0\xb1\xd1\x80\xd1\x8f 2011。看翻译。
因此,解决该问题的方法可能是重写日期格式。
\n\n我还没有解决这个问题;显然这是一个错误/缺失的功能,因为俄罗斯的先进的词尾变化。而且我需要的日期格式不存在。我认为这会影响strftimePHPdate()。
有人可以验证这一点吗?
\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\nfunction 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}\nRun Code Online (Sandbox Code Playgroud)\n