Internationalisation (I18n)

Ekylibre suit le fonctionnement de Rails pour l'implémentation et l'utilisation des traductions.

Le dossier config/locales contient un sous-dossier par langue codée avec la norme ISO 639-3.

Chaque sous dossier contient :

  • access.yml : Ressources et droits
  • action.yml : Titre des actions et éléments de l'interface
  • aggregators.yml : Titre, paramètres et propriétés des agrégateurs
  • complement.yml : Fichier auto-généré
  • devise.views.yml : Éléments des vues Devise
  • devise.yml : Éléments de Devise
  • enumerize.yml : Enumerizations dans les modèles
  • formats.yml : Nom des formats de fichier
  • help/ : Fichiers d'aide
  • i18n.rb : Conf core (pluralisation, correspondances codes)
  • models.yml : Nom, attributs, erreurs, éléments des modèles
  • nomenclatures.yml : Nom, propriétés et éléments des nomenclatures
  • procedures.yml : Nom, handlers, actions des procédures
  • reporting/ : Modèles d'impression (JasperReports)
  • support.yml : Traductions de base

Description

action.yml

# config/locale/<locale>/action.yml
<locale>:
  actions:
    # Titre des actions apparaissant dans l'interface
    <controller-path>:
      index: "Index"
      <action>: "Bla bla %{info}"
      ...
  ...
  # LE dictionnaire pour beaucoup de choses
  labels:
    some_text_to_translate: "Blah blah blah"
  notifications:
    # Titre des type de notification (error, warning, information, success)
    levels:
      error: "Arrgggghhhhh"
      ...
    # Contenus des messages
    messages:
      an_info_you_want: "Blah bla bla"
      ...
  # Noms des préférences systèmes
  preferences:
    country: "Pays"
    ...
  # REST
  rest:
    # Nom des actions REST
    actions:
      abort: "Annuler"
      ...
  # Expression utilisée pour afficher les éléments des listes de unroll
  unrolls:
    <controller-path>: "%{name} (%{number}//%{count})"
    backend/animals: "%{name} ‒ %{work_number}"
    ...

models.yml

# config/locales/<locale>/models.yml
<locale>:
  activerecord:
    # Pour les traductions SPÉCIFIQUES d'attributs. À utiliser 
    # que si nécessaire, sinon utiliser "<locale>.attributes.<attribute>"
    attributes:
      <model>:
        <attribute>: "<Attribut>"
    errors:
      # Messages d'erreur affichés sur les formulaires
      messages:
        <message>: "%{sdfsfd} blah blah"
      models:
        <model>:
          # Pour les traductions SPÉCIFIQUES de messages d'erreurs
          # À utiliser que si nécessaire, sinon utiliser :
          # "<locale>.activerecord.errors.messages"
          <message>: "Blab wrong!"
    # Nom des modèles
    models:
      <model>: "Model"
  # Nom des attributs au sens large (colonnes, relations...)
  attributes:
    <attribute>:
  # Éléments divers au sein du modèle
  models:
    <model>:
      <thing_to_translate>: "1231"