Sunfox


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.

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

👨🏻‍🦰 Sunny Ripert

est un développeur web vivant à ParisContactArchives

Textes et contenus sous licence Creative Commons.