Comment puis-je internationaliser dire un tableau de catégories (avec une colonne de nom) dans différentes langues. Que diriez-vous d'une table de produits (composée d'une colonne de nom et de description). Quel est le meilleur moyen d'internationaliser le contenu de ces tables de base de données en utilisant Ruby on Rails?Comment internationaliser le contenu sur ruby on rails?
Répondre
Avez-vous pris un coup d'oeil: http://guides.rubyonrails.org/i18n.html
Il décrit en détail comment internationaliser votre application et
« fournit un outil facile à utiliser et extensible cadre pour traduire votre application à une seule langue personnalisée autre que l'anglais ou pour fournissant un support multilingue dans votre application. "
Quelques liens utiles:
Si vous souhaitez stocker les valeurs pour les différentes langues du db suivant la norme Rails i18n (yml), vous pourriez faire quelque chose comme ceci:
Produits champ Nom de la table:
- NAME_EN
- name_fr
- name_nl
Fetch la valeur correcte:
def i18n_db_value(object, attribute)
object.send("#{attribute.to_s}_#{I18n.locale}") if object
end
« stocker plusieurs versions de contenu dans le modèle et avoir un site "vs « magasin seulement une version de contenu dans le modèle, mais ont plusieurs sites »
Sur RailsCasts il y a un bel article au sujet, en utilisant un petit bijou appelé Globalize3. Ce que nous vous définissez quels modèles seront traduits et gérer un translaté tables pour chaque modèle, et fonctionne comme i18n est aux pages statiques ...
Jetez un oeil
http://railscasts.com/episodes/338-globalize3?view=asciicast
Vous pouvez écraser Méthode "name" dans la catégorie Model, il est possible de rechercher la traduction correcte dans une autre table. Ainsi, dans le tableau des catégories, vous devriez avoir dans le champ "nom" la langue par défaut traduite, par exemple "Autre". Et puis chercher "Autre" dans un tableau comme:
transtations table
en_text "Other" <--- You search this (default language)
es_text "Otros" ---> You retrun this
ca_text "Altres" ---> or this
# Category table
class Category < ActiveRecord::Base
def name
Translation.translate(read_attribute("name"))
end
end
# Your transltation model
class Translation < ActiveRecord::Base
def self.translate(text)
locale=I18n.locale
if locale!="en" # default locale: what is on the table "category"
trad=self.find_by_en_text(text)
if trad
return eval("trad.#{locale}_text")
end
end
return text
end
end
- 1. OCIError (ruby on rails)
- 2. Ruby on Rails et CruiseControl.rb
- 3. LocalJumpError (Ruby on Rails)
- 4. ruby on rails formulaire_pour
- 5. Ruby on Rails d'installation
- 6. Ruby on Rails regex
- 7. Ruby on Rails: « find_create_by_user »
- 8. Erreur AssociationTypeMismatch sur l'application Ruby on Rails
- 9. Ruby on Rails cassé sur Snow Leopard
- 10. SQLite et Ruby on Rails sur PC
- 11. Ruby on Rails, détection Javascript
- 12. Ruby on Rails MVC Question
- 13. Formulaire booléen Ruby on Rails
- 14. Ruby on Rails symbole validation
- 15. Antipatterns avec Ruby on Rails
- 16. Recherche dans Ruby On Rails
- 17. Ruby on Rails: Erreur rubygem
- 18. Ruby on Rails: formulaire select
- 19. Association polymorphe Ruby on Rails
- 20. Connexion/Inscription Ruby on Rails?
- 21. Afficher l'email Ruby on Rails
- 22. modifier le contenu dans ruby sur rails panier
- 23. Ruby on Rails vs Django
- 24. Comment déployez-vous une application Ruby on Rails sur hostgator?
- 25. Ruby on Rails: Comment joindre deux tables
- 26. Comment désinstaller une application Ruby on Rails?
- 27. ruby on rails Problème SQLite
- 28. Ruby on Rails - paramètre tronquer
- 29. Analyser dans Ruby (on Rails)
- 30. Ruby On Rails ID personnalisé
Toutes ces références ne parlent pas de traduire le contenu de la base de données ...comme la gemme Globalize3 –