首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中不同语言的序数指示符

PHP中不同语言的序数指示符
EN

Stack Overflow用户
提问于 2020-01-14 08:39:23
回答 1查看 417关注 0票数 1

我正在用PHP开发一个多语言的网站,我需要在屏幕上打印一些句子,上面显示数字,后面跟着序号指示器。

该网站有英文、西班牙文、德文、法文、意大利文、葡萄牙文、俄文、波兰文。

我想知道php中是否有一种方法可以支持我在不同语言中生成序数。或者一些关于如何解决这个问题的建议。

我花了相当长的时间搜索,但我还没有找到任何解决方案。

例如:

  • 中文:第一、第二、第三、.
  • 意大利语: 1°,2°,3°。
  • 法语:1呃,2e,3e,..。
  • 西班牙语: 1°,2°,3°。
  • 葡萄牙文: 1°,2°,3°,
  • 德国人: 1 .,2.,3.
  • 俄语: 1-й,2-й,3-й.
  • 波兰人: 1,2,3,.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 09:17:10

PHP有一个NumberFormatter类,您可以使用它来格式化不同区域设置的编号。

您可以创建这样的格式化程序:

代码语言:javascript
复制
$formatter = new \NumberFormatter("en-US", \NumberFormatter::ORDINAL);

并与$formatter->format(3);一起使用。

以下是我尝试过的一些地方:

代码语言:javascript
复制
>>> $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"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59730118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档