确定名称的最短方式以`s`,`x`或`z`结尾,然后使用`I18n.t`方法

时间:2010-04-10 18:44:38

标签: ruby-on-rails ruby localization internationalization

我正在创建一个Rails应用程序,用户可以在其中拥有名字和姓氏。由于我是完美主义者,因此应用程序可能不会显示Dennis's profileXianx's profile,而是显示Dennis' profileXianx' profile。我使用I18n,所以我想问一下最短实现这个的方法是什么?这个语法对于英语和荷兰语都是相同的,其中应用程序将被翻译成。

哦,一些重要的事情:

  • 我不怕使用助手和应用程序控制器
  • 我的语言文件是Ruby,而不是YAML

谢谢!

2 个答案:

答案 0 :(得分:2)

用荷兰语很难完美

 def having_s( word ) # maybe genitiv_s  is a better name
   case word[-1,1]  #  [-1] will do in ruby 1.9 
     when 's', 'x', 'z' 
       "#{word}'"
     else 
       "#{word}'s"
     end
  end

  names=%w(Alex Inez Kees Maria Bordeaux)
  names.each{|name| puts  having_s(name)}

根据this,最后一个测试用例(“波尔多”)产生了错误的结果。

答案 1 :(得分:2)

相关问题