Τρόποι μετάφρασης περιεχομένου μιας εφαρμογής Ruby on Rails

Σε αυτό το παράδειγμα θα χρησιμοποιήσω την κλασσική εφαρμογή blog του Ruby on Rails η οποία παρουσιάζεται πλήρως εδώ : http://guides.rubyonrails.org/getting_started.html, ώστε να δείξω κάποια βασικά βήματα για τον εξελληνισμό της εφαρμογής και αποθήκευση πολυγλωσσικού υλικού που αναφέρεται στην ίδια πληροφορία.

Απο την στιγμή που θα επιλέξουμε να έχουμε πολυγλωσσική δυνατότητα στην εφαρμογή μας, θα πρέπει να δώσουμε ιδιαίτερη σημασία με ποιον τρόπο θα αποθηκεύσουμε αυτήν την πληροφορία στην βάση δεδομένων. Γενικά, υπάρχουν αρκετοί τρόποι αποθήκευσης και μερικοί απο αυτούς είναι:

  • Αποθήκευση της πληροφορίας σε διαφορετικούς πίνακες ανά γλώσσα μέσα στην βάση δεδομένων μας.
  • Αποθήκευση της πληροφορίας σε διαφορετικές εγγραφές στον ίδιο πίνακα
  • Αποθήκευση της πληροφορίας σε διαφορετικά πεδία στον ίδιο πίνακα, πχ ένα πεδίο για μετάφραση μιας περιγραφής στα ιταλικά, άλλο πεδίο για την μετάφραση της ίδιας περιγραφής στα ελληνικά κ.ο.κ.

Όμως, δίνοντας λιγάκι προσοχή στους τρόπους απο αναφέρθηκαν παραπάνω, βλέπουμε πως είναι αρκετά προβληματικοί. Δεν θα έπρεπε να αλλάζει το σχήμα ενός πίνακα ή βάσης δεδομένων όταν πρέπει να προσθέσουμε μια καινούργια γλώσσα ή μετάφραση. Αυτό δεν συμφωνει καθόλου με την περίφημη Third Normal Form http://en.wikipedia.org/wiki/Third_normal_form

Απο την έκδοση 2.2 του Rails το Ruby I18n gem συμπεριλαμβάνεται στο Rails Framework και αυτό το gem προσφέρει την δυνατότητα να μεταφράσει κάποιος/α την εφαρμογή του/της σε όποια γλώσσα θέλει.

Σε περίπτωση που δεν υπάρχει εγκατεστημένο το gem στο σύστημά μας πρέπει φυσικά να το εγκαταστήσουμε. Υπάρχουν δύο τρόποι:

  1. να κάνουμε γενική εγκατάσταση ώστε το gem αυτό να "φαίνεται" και σε άλλες εφαρμογές
  2. να το εγκαταστήσουμε εκεί που συνήθως εγκαθίστανται τα plugins μιας εφαρμογής Rails(δηλαδή στο μονοπάτι /vendor/plugins)

Για την γενική εγκατάσταση του gem, τρέχουμε την εντολή :

gem install i18n

και

για την "τοπική" εγκατάσταση του gem, τρέχουμε την εντολή:

ruby script/plugin install <η τοποθεσία εκεί που αναπτύσεται το gem>

Πρέπει να προσέξουμε, αν επιλέξουμε τον 2ο τρόπο, ώστε να τρέξουμε την εντολή ενώ βρισκόμαστε στο φάκελο της εφαρμογής μας. Επομένως για να εγκαταστήσουμε το gem αυτό σαν plugin στην εφαρμογή μας, τρέχουμε την εντολή:

ruby script/plugin install git://github.com/svenfuchs/i18n.git

όπου git://github.com/svenfuchs/i18n.git, η τοποθεσία στο github.com που αναπτύσεται το gem αυτό.

todo
[.....] (να προσθέσω πληροφορίες παίρνοντας ιδέες απο εδώ ..http://www.thechrisoshow.com/2008/12/11/localizing-your-rails-application)