Ruby on Rails Japanisch-Englisch kompatibler i18n

Umgebung

Politik

Überblick

  1. Platzieren Sie eine Sprachumschalttaste in der Kopfzeile
  2. Speichern Sie die Gebietsschemainformationen in der Sitzungsvariablen session [: locale] usw. im Controller
  3. Verwenden Sie before_action, um die Sprache festzulegen, bevor Sie jede Seite laden
  4. Schreiben Sie die Übersetzung in die yml-Datei
  5. Wird in Ansicht usw. verwendet.

Implementierung

1. Platzieren Sie eine Sprachumschalttaste in der Kopfzeile

In der Kopfzeile wurde eine Schaltfläche zum einfachen Umschalten installiert.

erb:application.html.erb


Installieren Sie Folgendes in der Kopfzeile
<% if session[:locale] == "en" || session[:locale].blank? %>
   <%= link_to "/home/change_language/ja" do %>
japanisch
   <% end %>
<% elsif session[:locale] == "ja" %>
   <%= link_to "/home/change_language/en" do %>
    English
   <% end %>
<% end %>

Diesmal werden nur Japanisch und Englisch unterstützt

Wird angezeigt.

2. Speichern Sie die Sitzungsvariable im Controller

routes.rb


get "/home/change_language/:language" => "home#change_language"

home_controller.rb


  def change_language
    session[:locale] = params[:language]
    redirect_back(fallback_location: "/")
  end

3. Setzen Sie vor dem Laden jeder Seite mit before_action local auf I18n

Wenn Sie before_action festlegen, werden die Sprachinformationen zuerst festgelegt, unabhängig davon, auf welche Seite Sie zugreifen.

application.rb


before_action :set_locale

private
  def set_locale
    if %w(ja en).include?(session[:locale])
      I18n.locale = session[:locale]
    end
  end

  1. app>config>locales>

Ich habe die Übersetzung separat geschrieben. Beispiel) Englisch ändert ja nur in en.

ja.yml


ja:
  #Häufig verwendete Wörter
  dictionary:
    words:
      hello: "Hallo"
  activerecord:
    #Modellname
    model:
      user: "Nutzer"
    #Spaltenname
    attributes:
      user_name: "Nutzername"
      password: "Passwort"
  #Für jede Ansicht festlegen
  users:
    show:
      profile: "Profil"
      picture: "Foto"
    form:
      required_field: "Erforderlicher Artikel"

5. Wird in Ansicht usw. verwendet.

erb:show.html.erb


 <%= t("dictionary.words.hello") %>  =>Hallo
 <%= t("activerecord.attributes.user_name") %>  =>Nutzername

#Wenn View von Benutzern angezeigt wird, kann es wie folgt weggelassen werden.
 <%= t(".profile") %>  =>Profil
 <%= t(".picture") %>  =>Foto

#Wenn Sie den Spaltennamen festlegen, wechselt je nach Sprache automatisch sogar der Formular-Helfer.
<%= form_with scope: @user ,,,,,%>
<%= form.label :user_name %> =>Nutzername
<% end %>

erb:_form.html.erb


#Teilweise wird ohne Unterstrich verwendet. Ansicht ist Benutzer_form.html.Für erb
 <%= t(".required_field") %>  =>Erforderlicher Artikel

#Dieser Teil ist Benutzer zeigen.html.Auch wenn es in erb verwendet wird
 <%= t(".picture") %>  =>× Dies ist nicht verfügbar.


Recommended Posts

Ruby on Rails Japanisch-Englisch kompatibler i18n
Ruby on Rails in Visual Studio-Codespaces
Anfänger haben mit Ruby on Rails ein Portfolio erstellt
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby On Rails Association
Empfehlung der Serviceklasse in Ruby on Rails
Rails neu in Ruby on Rails ~ Memorandum bis zur Bereitstellung 2
Rails neu in Ruby on Rails ~ Memorandum bis zur Bereitstellung 1
(Ruby on Rails6) Erstellen von Daten in einer Tabelle
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Schwierigkeiten beim Erstellen einer Ruby on Rails-Umgebung (Windows 10) (SQLite3)
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
[Ruby on Rails] Paging-Funktion eingeführt
Grundkenntnisse in Ruby on Rails
Progate Ruby on Rails5 Rückblick
Verwendung von Ruby on Rails
(Ruby on Rails6) Gepostete Inhalte "löschen"
[Ruby on Rails] CSV-Ausgabefunktion
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
[Ruby on Rails] Erstellung der Bestätigungsseite
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] Implementierung der Kommentarfunktion
[Ruby on Rails] DM, Chat-Funktion
Wenden Sie CSS auf eine bestimmte Ansicht in Ruby on Rails an
[Ruby on Rails] Praktische Hilfsmethode
Ruby-Methoden, die häufig in Rails verwendet werden
[Ruby on Rails] Stoppen Sie "Looping bis ..."
Wo ich mich für den Ruby on Rails-Kurs von Progate interessierte [params]
(Ruby on Rails6) Erstellen einer Datenbank und Anzeigen in einer Ansicht
Lösche N + 1 in Acts_as_tree von Ruby on Rails Baumstruktur Gem
Ich habe den Ablauf bis zur Implementierung von simple_calendar in Ruby on Rails zusammengefasst.
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial