我正在用PHP开发一个多语言的网站,我需要在屏幕上打印一些句子,上面显示数字,后面跟着序号指示器。
该网站有英文、西班牙文、德文、法文、意大利文、葡萄牙文、俄文、波兰文。
我想知道php中是否有一种方法可以支持我在不同语言中生成序数。或者一些关于如何解决这个问题的建议。
我花了相当长的时间搜索,但我还没有找到任何解决方案。
例如:
发布于 2020-01-14 09:17:10
PHP有一个NumberFormatter类,您可以使用它来格式化不同区域设置的编号。
您可以创建这样的格式化程序:
$formatter = new \NumberFormatter("en-US", \NumberFormatter::ORDINAL);并与$formatter->format(3);一起使用。
以下是我尝试过的一些地方:
>>> $a = new \NumberFormatter("it-IT", \NumberFormatter::ORDINAL);
=> NumberFormatter {#3199
locale: "it",
pattern: """
%%dord-mascabbrev:\n
0: º;\n
%digits-ordinal-masculine:\n
0: =#,##0==%%dord-mascabbrev=;\n
-x: −>%digits-ordinal-masculine>;\n
%%dord-femabbrev:\n
0: ª;\n
%digits-ordinal-feminine:\n
0: =#,##0==%%dord-femabbrev=;\n
-x: −>%digits-ordinal-feminine>;\n
%digits-ordinal:\n
0: =%digits-ordinal-masculine=;\n
""",
…3
}
>>> $a->format(12)
=> "12º"
>>> $a = new \NumberFormatter("en-US", \NumberFormatter::ORDINAL);
=> NumberFormatter {#3197
locale: "en",
pattern: """
%digits-ordinal:\n
0: =#,##0=$(ordinal,one{st}two{nd}few{rd}other{th})$;\n
-x: −>%digits-ordinal>;\n
""",
…3
}
>>> $a->format(12)
=> "12th"
>>> $a = new \NumberFormatter("fr-FR", \NumberFormatter::ORDINAL);
=> NumberFormatter {#3188
locale: "fr",
pattern: """
%digits-ordinal-masculine:\n
0: =#,##0=$(ordinal,one{er}other{e})$;\n
-x: −>%digits-ordinal-masculine>;\n
%digits-ordinal-feminine:\n
0: =#,##0=$(ordinal,one{re}other{e})$;\n
-x: −>%digits-ordinal-feminine>;\n
%digits-ordinal-masculine-plural:\n
0: =#,##0=$(ordinal,one{ers}other{es})$;\n
-x: −>%digits-ordinal-masculine-plural>;\n
%digits-ordinal-feminine-plural:\n
0: =#,##0=$(ordinal,one{res}other{es})$;\n
-x: −>%digits-ordinal-feminine-plural>;\n
%digits-ordinal:\n
0: =%digits-ordinal-masculine=;\n
""",
…3
}
>>> $a->format(12)
=> "12e"https://stackoverflow.com/questions/59730118
复制相似问题