Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Author

Yuri Leikind

A quick-n-dirty script I wrote to manipulate Rails locale files in multi-language projects. I did not want to just load two YAML files as a hash, merge them recursively and then dump the result of the merge, because I wanted to keep original comments and the line order.

app.en.yml:

en:
  newsletters:
    manage_template: Manage the templates templates
    manage_bat: Manage BAT

    state:
      created: Create
      generating_test: Generation of the test in progress
      generated_test: Test generated
      sending_test: Sending of the test in progress

  club:
    fields:
      default_order_refunds: Order refunds by
      default_order_contests: Order contests by
      ensure_ssl_for_logged_in_users: Redirect autenticated users to HTTPS

app.fr.yml:

fr:
  email:
    errors:
      invalid: "Adresse email n'est pas valide"
      already_used: Cet adresse email est déjà utilisée

  newsletters:
    manage_template: Gérer les templates
    manage_bat: Gérer BAT

    action:
      generate_test: Générer un test
      send_test: Envoyer le test

    state:
      created: Créée
      generated_test: Test généré
      sending_test: Envoi du test en cours
$ ./lokal --enrich  app.en.yml app.fr.yml
en:
  newsletters:
    action:
      # TO DO: verify translation of the new key 'newsletters.action.generate_test'
      generate_test: Générer un test
      # TO DO: verify translation of the new key 'newsletters.action.send_test'
      send_test: Envoyer le test
    manage_template: Manage the templates templates
    manage_bat: Manage BAT

    state:
      created: Create
      generating_test: Generation of the test in progress
      generated_test: Test generated
      sending_test: Sending of the test in progress

  club:
    fields:
      default_order_refunds: Order refunds by
      default_order_contests: Order contests by
      ensure_ssl_for_logged_in_users: Redirect autenticated users to HTTPS
  email:
    errors:
      # TO DO: verify translation of the new key 'email.errors.invalid'
      invalid: Adresse email n'est pas valide
      # TO DO: verify translation of the new key 'email.errors.already_used'
      already_used: Cet adresse email est déjà utilisée

$ ./lokal --enrich  app.fr.yml app.en.yml
fr:
  email:
    errors:
      invalid: "Adresse email n'est pas valide"
      already_used: Cet adresse email est déjà utilisée

  newsletters:
    manage_template: Gérer les templates
    manage_bat: Gérer BAT

    action:
      generate_test: Générer un test
      send_test: Envoyer le test

    state:
      # TO DO: verify translation of the new key 'newsletters.state.generating_test'
      generating_test: Generation of the test in progress
      created: Créée
      generated_test: Test généré
      sending_test: Envoi du test en cours

  club:
    fields:
      # TO DO: verify translation of the new key 'club.fields.default_order_refunds'
      default_order_refunds: Order refunds by
      # TO DO: verify translation of the new key 'club.fields.default_order_contests'
      default_order_contests: Order contests by
      # TO DO: verify translation of the new key 'club.fields.ensure_ssl_for_logged_in_users'
      ensure_ssl_for_logged_in_users: Redirect autenticated users to HTTPS
$ ./lokal --compare  app.fr.yml app.en.yml
Missing in app.fr.yml, present in app.en.yml:
  newsletters.state.generating_test:  Generation of the test in progress
  club.fields.default_order_refunds:  Order refunds by
  club.fields.default_order_contests:  Order contests by
  club.fields.ensure_ssl_for_logged_in_users:  Redirect autenticated users to HTTPS
Missing in app.en.yml, present in app.fr.yml:
  email.errors.invalid:  Adresse email n'est pas valide
  email.errors.already_used:  Cet adresse email est déjà utilisée
  newsletters.action.generate_test:  Générer un test
  newsletters.action.send_test:  Envoyer le test
$ ./lokal --annotate  app.en.yml
en:
  newsletters:
    # newsletters.manage_template
    manage_template: Manage the templates templates
    # newsletters.manage_bat
    manage_bat: Manage BAT

    state:
      # newsletters.state.created
      created: Create
      # newsletters.state.generating_test
      generating_test: Generation of the test in progress
      # newsletters.state.generated_test
      generated_test: Test generated
      # newsletters.state.sending_test
      sending_test: Sending of the test in progress

  club:
    fields:
      # club.fields.default_order_refunds
      default_order_refunds: Order refunds by
      # club.fields.default_order_contests
      default_order_contests: Order contests by
      # club.fields.ensure_ssl_for_logged_in_users
      ensure_ssl_for_logged_in_users: Redirect autenticated users to HTTPS

About

A script to manipulate Rails locale files in multi-language projects

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages