# \[RAILS\] Nomi tabelle e models in italiano

**URL:** <https://www.ruby-forum.com/t/rails-nomi-tabelle-e-models-in-italiano/105822>\
**Category:** IT\
**Created:** [June 3, 2007, 12:03pm UTC](https://www.ruby-forum.com/t/rails-nomi-tabelle-e-models-in-italiano/105822 "2007-06-03T12:03:40Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![esox\_ch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/4da419/32.png) [@esox\_ch](https://www.ruby-forum.com/u/esox_ch)\
**Post date:** [June 3, 2007, 12:03pm UTC](https://www.ruby-forum.com/t/rails-nomi-tabelle-e-models-in-italiano/105822/1 "2007-06-03T12:03:40Z")

</div>

Se volete usare nomi delle tabelle in italiano, potete usare l’apposito  
inflector in enviroinment.rb

Con una cosa del genere gestite il 99% dei casi

Inflector.inflections do |inflect|  
inflect.plural /^([\w]_)a/i, ‘\1e’  
inflect.singular /^([\w]_)e/i, ‘\1a’  
inflect.plural /^([\w]_)o/i, ‘\1i’  
inflect.singular /^([\w]_)i/i, ‘\1o’  
End

Per verificarlo:

p Inflector.pluralize(‘casa’) #–\> casa  
p Inflector.singularize(‘zone’) #–\> zona  
p Inflector.pluralize(‘deputato’) #–\> deputati  
p Inflector.singularize(‘documenti’) #–\> documento

Cosi vi salta tutto l’inglese quindi dovete andare avanti tutto in  
italiano

Se volete mappare a mano solo le poche parole che dovete lasciare in  
italiano, potete fare

Inflector.inflections do |inflect|  
inflect.irregular ‘deputato’, ‘deputati’  
inflect.irregular ‘documento’, ‘documenti’  
end

jeko

---

<div class="post-metadata">

**Author:** ![esox\_ch](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/4da419/32.png) [@esox\_ch](https://www.ruby-forum.com/u/esox_ch)\
**Post date:** [March 25, 2011, 9:18am UTC](https://www.ruby-forum.com/t/rails-nomi-tabelle-e-models-in-italiano/105822/2 "2011-03-25T09:18:53Z")

</div>

Stefano G. wrote in post #254301:

> Se volete usare nomi delle tabelle in italiano, potete usare l’apposito  
> inflector in enviroinment.rb
> 
> Con una cosa del genere gestite il 99% dei casi
> 
> Inflector.inflections do |inflect|  
> inflect.plural /^([\w]_)a/i, ‘\1e’  
> inflect.singular /^([\w]_)e/i, ‘\1a’  
> inflect.plural /^([\w]_)o/i, ‘\1i’  
> inflect.singular /^([\w]_)i/i, ‘\1o’  
> End

Queste regole danno problemi perchè si sovrappongono alle regole per  
l’inglese creando strani errori dove meno ve lo aspettereste.

Meglio procedere con regole meno invasive e gestire più cose tramite  
“irregular”.

Un esempio:

# azione, condizione, deviazione, proiezione

inflect.plural /([\w]_)zione$/i, ‘\1zioni’  
inflect.singular /([\w]_)zioni$/i, ‘\1zione’

# ente, dipendente, serpente

inflect.plural /([\w]_)nte$/i, ‘\1nti’  
inflect.singular /([\w]_)nti$/i, ‘\1nte’

# Irregolarità

inflect.irregular ‘errore’, ‘errori’
