[RUBY] Passer les paramètres régionaux i18n à JavaScript

Obstrué lors de la création d'une application multilingue

En utilisant jQuery et Ajax, lorsqu'une catégorie parente est sélectionnée, les candidats de catégorie enfant sont affichés dans un menu déroulant. Cependant, seules les catégories enfants ont été traduites uniquement dans la notation par défaut du vietnamien.

Exemple: Catégorie parent => Question Catégorie enfant => 1, Ngôn ngữ và văn hóa          2,Tập huấn kỹ thuật          3,Ứng dụng và thủ tục

Cause

La cause était que je n'ai pas transmis les paramètres régionaux au contrôleur lors de l'obtention des catégories enfants dans Ajax.

category_pulldown.js


$("#parent").on("change", function () {
  //Obtenir l'ID de la catégorie parent sélectionnée
  var id = document.getElementById("parent").value;
//Omission
$.ajax({
  type: 'GET',
  data: { parent_id: id }, //Paramètres d'ID[:parent_id]Mettre et envoyer
  url: '/categories/pulldown', //Obtenez les catégories enfants avec l'ID reçu dans le contrôleur de catégories
  dataType: 'json',
}).done(function (children) { //Traitement pour afficher la catégorie enfant acquise...

Bien qu'il s'agisse d'un extrait partiel, j'ai utilisé la méthode suivante pour obtenir les paramètres régionaux.

application_controller.rb


before_action :set_locale

  private

  def set_locale
    I18n.locale = locale
  end

  def locale
    @locale ||= params[:locale] ||= I18n.default_locale
  end

  def default_url_options(options = {})
    options.merge(locale: locale)
  end

Passer la locale actuelle à Java Script

Tout d'abord, utilisez la balise d'entrée pour conserver les paramètres régionaux actuels. Si vous écrivez type =" hidden " comme indiqué ci-dessous, il ne sera pas affiché à l'écran, même du point de vue de l'utilisateur.

hoge.html.erb


<input type="hidden" class="current_locale" value="<%= I18n.locale %>">

Puis ajoutez locale: $ ('.current_locale'). Val () La langue de traduction pour la catégorie parent-enfant a été unifiée.

category_pulldown.js


$("#parent").on("change", function () {
  //Obtenir l'ID de la catégorie parent sélectionnée
  var id = document.getElementById("parent").value;
//Omission
$.ajax({
  type: 'GET',
  data: { parent_id: id, locale: $('.current_locale').val() }, //Paramètres d'ID[:parent_id]Mettre et envoyer
  url: '/categories/pulldown', //Obtenez les catégories enfants avec l'ID reçu dans le contrôleur de catégories
  dataType: 'json',
}).done(function (children) { //Traitement pour afficher la catégorie enfant acquise...

HTML est pratique car les informations peuvent être transmises à la fois à partir de Ruby et de JavaScript: smiley:

Recommended Posts

Passer les paramètres régionaux i18n à JavaScript
La route de JavaScript à Java
Raccourcissez l'UUID en base64 dans Swift.
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Référence Java à comprendre dans la figure
Java SE8 Silver ~ La route à franchir ~
Comment passer la valeur à un autre écran
Comment obtenir la date avec Java
Comment vérifier le journal dans le conteneur Docker
J'ai essayé d'organiser la session en Rails
3 façons d'importer des bibliothèques dans Android Studio
Lorsque Eclipse ne parvient pas à démarrer le serveur
Je souhaite transmettre APP_HOME pour me connecter à Gradle
passer deux arguments à l'URI avec link_to
Ajouter classpath: au chemin spécifié dans spring.datasource.schema
Comment créer la blockchain la plus simple de Ruby
Comment vérifier les commandes Rails dans le terminal
Je veux obtenir la valeur en Ruby
Comment intégrer des variables JavaScript dans HTML avec Thymeleaf
La bonne façon de voir la source Tomcat dans Eclipse
J'étais accro à NoSuchMethodError dans Cloud Endpoints
Passer les conditions utilisées dans le filtre d'expression lambda Java8 () comme paramètres
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Java] Comment omettre le constructeur privé dans Lombok
Écrivez ABNF en Java et transmettez l'adresse e-mail
Je veux intégrer n'importe quel TraceId dans le journal
Tokoro j'ai réécrit dans la migration de Wicket 7 à 8
Il est temps d'affronter le monstre (JavaScript) entre parenthèses
Comprendre les caractéristiques de Scala en 5 minutes (Introduction à Scala)
Source utilisée pour obtenir l'URL de la source de redirection en Java
Pour déboguer avec Eclipse
Organisé comment interagir avec le JDK par étapes
Classes et instances Java comprises dans la figure
Comment spécifier le chemin de la ressource dans l'importation HTML
Comment déboguer le fichier jar généré avec Eclipse
[Rails] Comment charger JavaScript dans une vue spécifique
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Pensez au problème JAVA = JAVAscript (nécessaire à l'avenir)
[Rails] Comment afficher les images dans la vue
Comment obtenir le nom d'une classe / méthode exécutée en Java
Comment utiliser la méthode getter / setter (en orientation objet)
Utilisez collection_select pour extraire les données stockées dans Active_Hash
Comprendre le flux approximatif de la demande à la réponse dans SpringWebMVC
Comment utiliser les données JSON dans la communication WebSocket (Java, JavaScript)
[Java] Changez la langue et les paramètres régionaux en anglais avec les options JVM
Comment régler chrony lorsque le temps change dans CentOS7
[Introduction à MVEL] Viser à être le meilleur MVELer au monde
Comment passer un objet à Mapper dans MyBatis sans passer par un argument
Différence entre Java et JavaScript (comment trouver la moyenne)
Comment connecter les chaînes de la liste séparées par des virgules
Reportez-vous à C ++ dans le module Android Studio (Java / kotlin)
[Android, Java] Méthode pratique pour calculer la différence en jours
Comment créer une partie d'espace réservé à utiliser dans la clause IN
Comment récupérer la valeur de hachage dans un tableau dans Ruby