Кратчайший способ определения имени заканчивается на `s`,` x` или `z`, а затем с ним используется метод` I18n.t` - PullRequest
2 голосов
/ 10 апреля 2010

Я создаю приложение Rails, в котором пользователи могут иметь имя и фамилию. Поскольку я перфекционист, приложение может показывать не что-то вроде Dennis's profile или Xianx's profile, а Dennis' profile и Xianx' profile Я использую I18n, поэтому я хотел спросить, каков самый короткий способ реализации этого? Эта грамматика одинакова для английского и голландского языков, где приложение будет переведено на

.

О, некоторые важные вещи:

  • Я не боюсь использовать помощников и контроллер приложений
  • Мои языковые файлы в Ruby, а не в YAML

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

Один из способов реализовать это с небольшим риском неправильности:

Вместо:

Person X's profile

Do:

Profile: Person X

Там не будетспособ сделать первый для всех языков / стран / культур.Второй вариант может показаться не идеальным, но вы никогда не будете ничего неправильно представлять.

2 голосов
/ 11 апреля 2010

Трудно быть идеальным на голландском

 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...