JeuWeb - Crée ton jeu par navigateur
[Rails] Rails, Devise & i18n - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Rails] Rails, Devise & i18n (/showthread.php?tid=5638)



[Rails] Rails, Devise & i18n - popayan - 12-08-2011

Salut Smile

Petite question bien technique, quelqu'un parmi vous a-t-il déjà utilisé Devise en français?
J'ai beau avoir suivi ça en ayant récupérer ceci, j'ai toujours tout en anglais à part quelques messages d'erreur et parfois des messages du type :
Code :
Email translation missing: fr.activerecord.errors.models.user.attributes.email.blank

Je pense que je vais devoir me taper toutes les vues pour gérer correctement l'i18n et ca me fait ch**r :langue:


RE: Rails, Devise & i18n - Sephi-Chan - 12-08-2011

Ce n'est pas propre à Devise : c'est l'API d'internationalisation de Rails.
Je te renvoie au guide à la section 5.1 Translations for Active Record Models du guide sur le sujet. Smile

Le fichier de traduction de Devise te traduit bien… Les messages de Devise. Mais là, il s'agit de messages liés à tes modèles d'où le nom de la clé. Wink




RE: Rails, Devise & i18n - Viciousity - 12-08-2011

Les translations sont chargées lors du lancement du serveur, essaie donc de redémarrer ton app.
Si le problème persiste, dans 'config/application.rb'

# Charge tous les sous-dossiers du répertoire "config/locales".
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
# Définit le français comme langue initiale.
config.i18n.default_locale = :fr

Sinon ton message de translation est liée à activerecord, as tu implémanté les fichier de traduction des modèle en français :
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml


RE: Rails, Devise & i18n - popayan - 12-08-2011

Je pensais que les vues propres à Devise étaient déjà prêtes pour l'internationalisation (i18n c'est quand même plus court :p )... Je vais donc devoir les générer et les modifier à la main Sad

ps : j'utilise haml et j'ai cru comprendre que les vues générées par Devise était obligatoirement des erb... Vous faites comment dans ce cas là?


RE: Rails, Devise & i18n - Viciousity - 12-08-2011

Heu tu utilises quelle version de rails ?
pourquoi devise ?

Et la pour traduire ton message d'erreur suffit de :
Code :
fr:
  activerecord:
    errors:
      models:
        user:
          attributes:
            email:
              blank: "Veuillez renseigner une adresse mail."



RE: Rails, Devise & i18n - Sephi-Chan - 12-08-2011

Effectivement, les vues de Devise sont déjà internationalisés. Sauf qu'ici, ce sont les traductions propres à tes modèles qui manquent, ce n'est pas à Devise de s'en charger. Wink

Concernant les moteurs de template, ça ne pose aucun problème. Rails se sert du nom des fichiers pour déterminer le moteur de template à utiliser. Tu peux avoir des vues en Haml ou en Erb, ça importe peu.

De mon côté, j'utilise Rails 3.1 et j'ai opté pour la nouvelle méthode has_secure_password pour créer l'authentification moi-même. Ça demande un peu plus de travail mais c'est aussi plus simple à personnaliser. Cf. Railscast #270 Authentication in Rails 3.1.


RE: Rails, Devise & i18n - Viciousity - 12-08-2011

Et c'est clairement meilleur en terme de performance vu que tu crée ce que tu as besoin.


RE: Rails, Devise & i18n - popayan - 12-08-2011

mouais, j'ai déjà fait un système authentification from scratch pour un "petit" projet. Là, je suis sur un plus gros truc et on me demande beaucoup de fonctionnalité (authentification, validation par email, fonction "remember me" etc...) que Devise fait simplement donc pourquoi se priver!

concernant :
(12-08-2011, 04:05 PM)Viciousity a écrit : Heu tu utilises quelle version de rails ?
pourquoi devise ?

Et la pour traduire ton message d'erreur suffit de :
Code :
fr:
  activerecord:
    errors:
      models:
        user:
          attributes:
            email:
              blank: "Veuillez renseigner une adresse mail."

en corrigeant mon fichier "devise.fr.yml", ca marche mieux Smile