2017-03-08 5 views
1

J'essaie d'internationaliser une application rails pour montrer l'allemand lorsqu'un utilisateur visite la version ".de" de l'application et souhaite la tester en mise en scène avant de la pousser en production. Y at-il un moyen facile de le faire sans avoir besoin d'une deuxième version (ou nième) du serveur de transfert? Je ne veux pas avoir à mettre en place n serveurs de test pour tester chaque langue de l'application.Rails - Tester l'internationalisation en staging

Répondre

0

Dans votre application où vous vérifiez .de ou autre, vous pouvez également vérifier les paramètres de chaîne de requête. Je pense que lang est utilisé assez souvent. Cela vous permettra de le tester sans avoir besoin d'acheter plus de domaines ou de serveurs.

Voici ce que je veux dire:

demande à: https://your-staging-server.com/some-page?lang=de

before_action :set_locale 

def set_locale 
    #domain logic here.. 
    if params[:lang] 
    I18n.locale = params[:lang] 
    end 
end 

option enregistrer la session afin que l'utilisateur n'a pas besoin de spécifier lang à chaque demande (et donc vous ne doivent modifier l'application pour le faire circuler):

def set_locale 
    I18n.locale = params[:lang] || session[:locale] || I18n.default_locale 
    session[:locale] = I18n.locale 
end 

Je pense que cela est la façon la plus courante de le faire. La plupart des personnes que je connais n'ont pas de domaines différents pour chaque version linguistique de leur application.