Rails 5:以重音符号开头的“人性化”短语不会大写

时间:2018-11-30 00:59:43

标签: ruby-on-rails internationalization rails-i18n

根据the official documentation,本地化工作正常。但是,我发现Rails的humanize方法如果带有重音,则不能正确将句子的第一个字符大写。

例如,如果我在 config / locales / fr.yml 中:

fr:
  about_me: "à propos de moi"

...并在视图中:

<%= t("about_me").humanize %>

...浏览器中的输出是

  

àpropos de moi

...应该是

  

我的提议

如果我将à更改为a,则humanize会按预期工作。

请注意,在法语中,大写字母的重音为sometimes omitted,但我们将其放在一边。我会很高兴:

  

Àpropos de moi

我是否只需要在YAML文件中对大写字母进行硬编码即可解决此问题?自然,我宁愿不求助于此。

1 个答案:

答案 0 :(得分:1)

我建议在YAML中这样做,大写取决于语言和上下文;例如,德语将所有名词都大写,而英语仅将专有名词和您已经知道的法语中的重音问题, final String[] gameArray = {("1"), ("2"), ("3"), ("4"), ("5")}; public void startGame(View v) { if (Arrays.asList(gameArray).contains((text))) { Outputs1.setText("You typed in: " + text + ", which is the correct number!"); } else { Outputs1.setText("No number 1-5 detected, please type in a number 1-5."); } } ß之间的关系等方面大写。简单的字符串操作非常容易出错。最好不要将人类可读的字符串视为从I18N / L10N字符串数据库中提取并直接提供给用户的不透明且不可变的数据。

这是更多工作,但正确无误是很重要的。