Bunun için özel bir bükülme ekleyebilirsiniz. Varsayılan olarak, Rails config/initializers
'a inflections.rb
ekleyecektir. Orada ekleyebilirsiniz: Daha sonra kullanıcı/kullanıcılar ile aynı kuralları kullandığı/edilir dönmek için pluralize(@total_users, "is")
kullanmak mümkün olacak
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular "is", "are"
end
.
EDIT: Bir cümleyi çoğaltma konusunda soruya açıklık getirdiniz. Bu, genel olarak yapmak çok daha zordur, ancak bunu yapmak isterseniz, dive into NLP'a sahip olmanız gerekir.
def pluralize_sentence(count, i18n_id, plural_i18n_id = nil)
if count == 1
I18n.t(i18n_id, :count => count)
else
I18n.t(plural_i18n_id || (i18n_id + "_plural"), :count => count)
end
end
pluralize_sentence(@total_users, "user_count")
Ve config/locales/en.yml
yılında:
en:
user_count: "There is %{count} user."
user_count_plural: "There are %{count} users."
comment sadece birkaç cümle ile yapmak istiyorsan, böyle bir şey inşa edebileceğini, I18n ile bir şeyler yapabileceğini anlaşılacağı gibi
uyarlanan i soru örn i18n ve pluralisation arasında bir karışımı gibi görünebilir yani şey kullanıcı sayısını interpole konusunda daha fazla olduğunu düşünüyorum çoğul (@total_users, "1 $ kullanıcı var") '... açıkça sefil başarısız olacak :) – Pierre
[Rails, Dördüncü Baskı ile Çevik Geliştirme] (http://pragprog.com/book/rails4/agile- web-development-with-ray'lar, sayfa 217, hata mesajlarını çoğaltmak için YAML dosyasında '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' komutunu kullanır. Bu, sayfa hatalarını görüntülemek için herhangi bir ekstra kod kullanılmadan kullanılır, bu nedenle doğrudan 't() 'ile çalışmalıdır. – l0b0
Bu çözümle karşılaştığım bir sorun, 'are' (benim durumumda ExtendedCare) ile biten bir modeliniz varsa, kodlarınızın tümü – Doug