[RUBY] Prend en charge la multilinguisme avec Rails!

J'écrirai ce que j'ai fait lorsque j'ai essayé de soutenir l'anglais dans l'application Web que je développe.

Pour plus de détails>

Installation

Gemfile


gem 'rails-i18n'

Installation

bundle

Défini dans config / application.rb

config/application.rb


    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

    #Langue correspondante. Cette fois en japonais(ja)Et anglais(en)Seulement
    config.i18n.available_locales = %i(ja en)

    #Définir s'il faut faire une erreur lorsqu'une langue autre que les langues prises en charge ci-dessus est spécifiée
    config.i18n.enforce_available_locales = true

    #Langage par défaut
    config.i18n.default_locale = :ja

controller

controller/application_controller.rb


    before_action :set_locale

    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

routes.rb

routes.rb


  scope '(:locale)', locale: /#{I18n.available_locales.map(&:to_s).join('|')}/ do
    root "posts#index"
    resources :posts
  end

La partie entourée par la portée est la page qui prend en charge plusieurs langues.

Multilingue

Créez en.yml et ja.yml. Pour les phrases que vous souhaitez multilingues

views


<%= t(:hello) %>

Écrire. N'hésitez pas à changer bonjour

ja.yml


  ja:
    hello:Bonjour
      #Tous les modèles commencent à partir d'activerecord.
      #Cela permettra à l'utilisateur.model_name.human / User.human_attribute_name({attr_name})Accessible avec.
    activerecord:
      models:
        user: 'Informations de l'utilisateur'
      attributes:
        user:
          name: 'Nom'
          mail: 'adresse mail'
          url:  'page Web'

en.yml


  en:
     hello: "hello"
    #Tous les modèles commencent à partir d'activerecord.
      #Cela permettra à l'utilisateur.model_name.human / User.human_attribute_name({attr_name})Accessible avec.
    activerecord:
      models:
        user: 'User'
      attributes:
        user:
          name: 'Name'
          mail: 'Email'
          url:  'URL'

Je vais le faire comme ça.

référence http://alfa.hatenablog.jp/entry/2013/12/03/221308

Recommended Posts

Prend en charge la multilinguisme avec Rails!
[Rails 6] Erreur d'exécution avec $ rails s
Manipuler le dispositif avec des rails
[Rails] Didacticiel Apprendre avec les rails
[Rails] Test avec RSpec
[Rails] Développement avec MySQL
Prend en charge le multi-port avec SpringBoot
[Rails] Polymorphique express avec graphql-ruby
[Vue Rails] "Hello Vue!" Affiché avec Vue + Rails
Japaneseize en utilisant i18n avec Rails
Préparation au développement avec Rails
[Docker] Construction de l'environnement Rails 5.2 avec docker
Utilisez plusieurs bases de données avec Rails 6.0
[Rails] Spécifiez le format avec link_to
[Docker] À utiliser à tout moment avec Docker + Rails
Créer un portfolio avec rails + postgres sql
[Rails] Transmission push avec LINE Bot
[Rails] Rendre la pagination compatible avec Ajax
Créer une fonction de pagination avec Rails Kaminari
[Grover] Générer un PDF avec des rails [version 2020]
[Rails] Création initiale des données avec seed
Suivre les erreurs de l'application Rails avec Sentry
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Connectez-vous au serveur Rails avec iPhone
Créer ma page avec Rails
Présentation de React to Rails avec react-rails
[Rails] Entrée de données initiale avec seed_fu!
Recherche intemporelle avec Rails + JavaScript (jQuery)
[rails] Faisons un test unitaire avec Rspec!
[Rails] La vidéo n'est pas lue avec video_tag
[Rails] Bénéficiez de rubocop avec un minimum d'effort
[Ruby on Rails] Afficher le test avec RSpec
[Rails] Gérez les clés secrètes, etc. avec credentials.yml
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Déploiement facile avec Capistrano + AWS (EC2) + Rails
Construction de Rails 6 et environnement PostgreSQL avec Docker
Déployez heroku avec Rails6 (Cloud9 + Ubuntu) + MySQL
Construire un environnement Rails 6 + MySQL avec Docker compose
Déployer sur heroku avec Docker (Rails 6, MySQL)
Préparer l'environnement de format pour "Rails" (VScode)
[Retrait des rails] Créez une fonction de retrait simple avec des rails
[Ruby on Rails] Test du contrôleur avec RSpec
[Rails] Gérons les constantes avec config gem
[Rails 6] Dessin graphique interactif avec Ajax + chart.js
[Formulaire avec deux arguments] rails, form_for / form_with arguments
Créez quand même une fonction de connexion avec Rails