Sunfox

Le journal de Sunny Ripert


Retrouver les clefs de localisation facilement avec Rails

Photo de Drapeaux Lego

J’utilise Locale avec Ruby on Rails pour permettre à n’importe qui dans l’équipe de modifier les textes d’un site quelle que soit la langue.

Néanmoins, ce n’est pas évident pour celui qui n’a pas le code sous les yeux de retrouver quel texte correspond à quelle clef.

L’Astuce

Une petite astuce est d’ajouter à son ApplicationController la méthode suivante :

# Print out the keys if you add `?_locale_keys=1` in your params
def t(key, options = {})
  if !Rails.env.production? and request and params[:_locale_keys]
    scope_key_by_partial(key)
  else
    super
  end
end

Cela vous permet d’afficher toutes les clefs d’une page en ajoutant le paramètre _locale_keys à vos URLs, par exemple : http://example.com/?_locale_keys=1.

Voici un exemple sur cults3d.com où chaque texte est remplacé par sa clef :

Le site web Cults3D avec Locale Keys allumé

Sécurité

Il n’y a pas de risque de permettre à tout le monde d’afficher les clefs de localisation. Néanmoins par pudeur et pour éviter que ces pages disgracieuses n’apparaissent dans un moteur de recherche, on vérifie que l’environnement n’est pas celui de production.

Vous pouvez également remplacer ce test par un test qui vérifie que l’utilisateur est un administrateur, par exemple.

Articles probablement reliés

3 Commentaires

  1. 1 Nicolas Blanco :

    Yo, cool !
    Tu peux aussi utiliser https://github.com/fphilipe/i18n-debug qui va afficher tous les lookups i18n directement dans le terminal. C’est utile souvent meme si ca met beaucoup trop de garbage dans le terminal pour etre laisse active en permanence.

  2. 2 Sunny :

    Merci Nicolas !

    Je ne connaissais pas et c’est très pratique en effet pour les cas où ma solution ne permets pas de les afficher facilement, comme par exemple les mails ou les flash messages (avec la technique du responder que tu nous as présentés hier au Paris.rb).

  3. 3 Ice :

    excellent Code Sunny est meilleur que le code est sûr et sans risque chaque fois que je apprendre de nouvelles choses sur votre site

    salutations de l’Espagne

Commenter


Vous pouvez avoir une jolie icône vous aussi en créant un gravatar.

Vous pouvez y saupoudrer de l'HTML5 avec les balises et suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>.


:D Sunny Ripert

est un développeur web vivant à Paris.

CV, me contacter


Textes et contenus sous licence Creative Commons.
Site crée par mes soins et propulsé par WordPress.