Japanische Lokalisierung von Rails-Fehlermeldungen [Objekte entwerfen / bilden usw.]

Hintergrund

Ich studiere, um ein unerfahrener Ingenieur zu werden.

Als ich eine einfache Anwendung schrieb, blieb die Validierungsfehlermeldung auf Englisch hängen Als ich untersuchte, wie man die Fehlermeldung ins Japanische übersetzt, Ich konnte keinen Artikel finden, der alle Informationen enthält, die ich wissen möchte. Ich habe einen Artikel als eigenes Memorandum erstellt, in der Hoffnung, dass er für diejenigen nützlich sein wird, die auf die gleiche Weise Programmieren studieren. Ich bin sicher, dass es noch einige Punkte gibt, die noch nicht erreicht wurden, aber wenn Sie irgendwelche Hinweise haben, lassen Sie es uns bitte in den Kommentaren wissen.

Umgebung

Bildschirm vor Änderung (Beispiel)

Wenn nichts festgelegt ist, wird die Validierungsfehlermeldung in englischer Sprache ausgegeben (siehe Abbildung unten). スクリーンショット 2020-10-28 13.30.14.png

Bildschirm nach Änderung (Beispiel)

Nach der Änderung wird eine Fehlermeldung auf Japanisch ausgegeben (siehe Abbildung unten). スクリーンショット 2020-10-28 13.33.32.png

Vorbereitung für die japanische Lokalisierung

・ Vorbereitung ① (Installation von Gem)

Verwenden Sie die gem Rails-i18n, um die Fehlermeldung ins Japanische zu übersetzen. Fügen Sie der Gemfile den folgenden Satz hinzu und führen Sie die Bundle-Installation im Terminal aus.

gem 'rails-i18n'
#Geben Sie den obigen Code in Gemfile ein

・ Vorbereitung ② (Ländereinstellung ändern)

Fügen Sie als Nächstes den folgenden Satz zu config / application.rb hinzu, um die Spracheinstellung zu ändern. Wenn Sie den Server nach dem Hinzufügen neu starten, wird ein Teil der Fehlermeldung ins Japanische übersetzt (siehe Abbildung unten).

config/application.rb


class Application < Rails::Application
    config.load_defaults 6.0
    #Darunter befindet sich der folgende Code
    config.i18n.default_locale = :ja
    #Beschreiben Sie den obigen Code
  end

スクリーンショット 2020-10-28 13.55.18.png

Der Attributname des Modells bleibt jedoch unverändert in Englisch. Also werde ich es das nächste Mal auf Japanisch ändern.

・ Ändern Sie den Spaltennamen in Japanisch

Um den Attributnamen des Modells zu ändern, muss eine Entsprechungstabelle auf Japanisch erstellt werden. Erstellen Sie eine Datei mit dem Namen ja.yml in config / locales / models / und beschreiben Sie den Spaltennamen und das entsprechende Japanisch wie unten gezeigt.

config/locales/models/ja.yml


ja:
  activerecord:
    models:
      item:Produkt
    attributes:
      item:
        image:Produktbild
        name:Produktname
        details:Produktbeschreibung
        price:Preis

Ich wollte den Attributnamen des Modells mit dem Namen item ändern, also habe ich ihn als Element in den Code eingefügt. ** Bitte ändern Sie den Artikel im obigen Code entsprechend dem Modell, das Sie ändern möchten **.

・ Lesen Sie die obige Korrespondenztabelle

Die oben festgelegte Datei wird nicht automatisch gelesen. Fügen Sie also einen Satz hinzu, um diese yml-Datei in config / application.rb zu lesen.

config/application.rb


class Application < Rails::Application
    config.load_defaults 6.0
    config.i18n.default_locale = :ja
#Darunter befindet sich der folgende Code
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.yml').to_s]
#Beschreiben Sie den obigen Code
  end

Wenn Sie bisher eingerichtet haben, sollte alles wie unten gezeigt in japanische Notation geändert werden.

スクリーンショット 2020-10-28 13.33.32.png

・ Wechseln Sie zu einer leicht verständlichen Fehlermeldung

Wenn Sie einen Edelstein namens Rails-i18n verwenden, werden die meisten Fehlermeldungen in Japanisch konvertiert. Wenn Sie die Validierung selbst festlegen, wie unten gezeigt Die Ausgabe ist möglicherweise auf den ersten Blick nicht offensichtlich. Stellen Sie in diesem Fall die Fehlermeldung selbst ein. Das Folgende ist ein Beispiel.

[Beispiel]

Wenn Sie ActiveHash verwenden, um den Präfekturnamen in einem Pulldown-Format auszuwählen und selbst zu validieren スクリーンショット 2020-10-28 15.14.20.png

"Vorher ändern"

スクリーンショット 2020-10-28 15.09.18.png

Code im validierten Modell


   #Kürzung
with_options presence: true do
   #Kürzung
    validates :prefecture_id, numericality: { other_than: 1 }
   #Kürzung
  end

"Nach der veränderung"

スクリーンショット 2020-10-28 15.14.02.png

Code im validierten Modell


   #Kürzung
with_options presence: true do
   #Kürzung
    validates :prefecture_id, numericality: { other_than: 1 ,message: 'bitte auswählen'}
   #Kürzung
  end

Sie können es in leicht verständliches Japanisch ändern, indem Sie Optionen wie ** Nachricht: 'Nachrichteninhalt' ** wie oben beschrieben festlegen.

・ Wenn Sie weitere Spaltennamen hinzufügen möchten

Wenn Sie weitere Spaltennamen hinzufügen möchten, fügen Sie diese wie unten gezeigt selbst hinzu.

config/locales/models/ja.yml


ja:
  activerecord:
    models:
      item:Produkt
    attributes:
      item:
        image:Produktbild
        name:Produktname
        details:Produktbeschreibung
        price:Preis
        #Schreiben Sie von hier aus die Korrespondenztabelle zwischen dem Spaltennamen und Japanisch wie unten gezeigt.
        category_id:Kategorie
        status_id:Produktzustand
        prefecture_id:Versandbereich

Bei der Übersetzung eines unabhängig definierten Formularobjekts ins Japanische

・ Vorbereitung

Wenn Sie die obigen Einstellungen vorgenommen haben, müssen Sie nichts tun. Wenn nicht, gehen Sie wie oben beschrieben vor, um Gem vorzubereiten (zu installieren usw.) und eine Korrespondenztabelle zu erstellen (ja.yml). Lesen wir die Korrespondenztabelle (hinzugefügt zu config / application.rb).

-Edit config / locales / models / ja.yml

Fügen Sie config / locales / models / ja.yml wie folgt hinzu.

config/locales/models/ja.yml


ja:
  activerecord:
    models:
      item:Produkt
    attributes:
      item:
        image:Produktbild
        name:Produktname
        price:Preis
        details:Produktbeschreibung
#Fügen Sie hier den folgenden Code hinzu
  activemodel:
    attributes:
      user_purchase:
        city:Gemeinde
        postal_code:Postleitzahl
        phone_number:Telefonnummer
        prefecture_id:Präfekturen
        house_number:Adresse
        building:Gebäudename
#Fügen Sie den obigen Code hinzu (bitte ändern Sie den Spaltennamen usw. selbst).

Um das von Ihnen selbst definierte Formularobjekt ins Japanische zu übersetzen, schreiben Sie ** activemodel: ** und setzen Sie es darunter. Wenn Sie es nicht richtig einstellen, wird es nicht in Japanisch geändert.

Ergänzung

Da es auf ActiveModel :: Model gesetzt ist, reagiert es auch dann nicht, wenn Sie den Code in die Attribute setzen: unter activerecord :.

Code im Modell, das das Formularobjekt festlegt


class UserPurchase
  include ActiveModel::Model #ActiveModel für sich::Modell ist eingestellt
  #Kürzung
end

config/locales/models/ja.yml


ja:
  activerecord:
    models:
      item:Produkt
    attributes:
      item:
        image:Produktbild
        name:Produktname
        price:Preis
        details:Produktbeschreibung
#Da die Einstellung nicht ActiveRecord ist, reagiert das Schreiben des folgenden Codes von hier aus nicht

Japanisierung der Entwicklung

Die Standardeinstellung für devise, mit der Sie Benutzerregistrierungsfunktionen einfach implementieren können, ist Englisch. Dies kann auch auf Japanisch geändert werden.

Bildschirm vor Änderung (Beispiel)

スクリーンショット 2020-10-28 16.08.08.png

Bildschirm nach Änderung (Beispiel)

スクリーンショット 2020-10-28 16.08.16.png

・ Installation von Gem

Verwenden Sie die Edelsteine devise-i18n und devise-i18n, um Fehlermeldungen ins Japanische zu übersetzen. Fügen Sie der Gemfile den folgenden Satz hinzu und führen Sie die Bundle-Installation im Terminal aus.

gem 'devise-i18n'
gem 'devise-i18n-views'
#Geben Sie den obigen Code in Gemfile ein

・ Erstellung einer japanischen Korrespondenztabelle

Generieren Sie mit dem Befehl eine japanische Übersetzungsdatei. Führen Sie den folgenden Befehl im Terminal aus.

rails g devise:views:locale ja
#Wenn das Ausführungsergebnis wie unten gezeigt angezeigt wird, ist es erfolgreich.
  create  config/locales/devise.views.ja.yml

Stellen Sie sicher, dass die Datei ordnungsgemäß generiert wird.

ruby:config/locales/devise.views.ja.yml


ja:
  activerecord:
    errors:
      models:
        user:
          attributes:
            email:
              taken: "Wird bereits verwendet."
              #Weggelassen, weil es zu lang ist
    unlocks:
      new:
        resend_unlock_instructions: "Methode zum erneuten Einfrieren des Kontos erneut senden"
              #Das Obige ist die letzte Zeile

・ Ändern Sie die Spracheinstellung des Gebietsschemas

Wenn Sie es bereits eingestellt haben, ist dieser Schritt nicht erforderlich. Wenn nicht, fügen Sie den folgenden Code hinzu

config/application.rb


class Application < Rails::Application
    config.load_defaults 6.0
    #Darunter befindet sich der folgende Code
    config.i18n.default_locale = :ja
    #Beschreiben Sie den obigen Code
  end

Wenn Sie fertig sind, starten Sie den Server neu und er sollte auf Japanisch geändert werden.

・ Wenn Sie weitere Spaltennamen hinzufügen möchten

Wenn Sie weitere Spaltennamen hinzufügen möchten, fügen Sie diese wie unten gezeigt selbst hinzu.

config/locales/models/ja.yml


ja:
  activerecord:
    errors:
      #Da es lange unten ist, wird es weggelassen
              confirmation: "Stimmt nicht mit dem Inhalt überein."
    attributes:
      user:
        current_password: "Derzeitiges Passwort"
        name:Name
        email: "Mail Adresse"
        password: "Passwort"
        password_confirmation: "Bestätigungspasswort"
        remember_me: "Melden Sie sich ab sofort automatisch an"
     #Fügen Sie unten Ihren eigenen Spaltennamen und das entsprechende Japanisch hinzu, falls erforderlich
        nickname: "Spitzname"
        first_name: "Name"
        last_name: "Familienname, Nachname"
        birthday: "Geburtstag"
     #Beschrieben wie oben
    models:
       user: "Nutzer"
     #Da es lange unten ist, wird es weggelassen

Zusammenfassung

Das Obige ist die japanische Lokalisierung der Fehlermeldung, die ich gemacht habe. Bei Bedarf nehmen wir Korrekturen und Ergänzungen vor. Vielen Dank für Ihren Besuch auf unserer Website. Wenn Sie Fragen haben, lassen Sie es uns bitte in den Kommentaren wissen.

Verweise

Japanische Lokalisierung der Rails-Validierungsfehlermeldung Japanisierung von Rails Form-Objekten Ändern Sie das Format der von Validates of ActiveRecord angezeigten Fehlermeldung [Rails5] Japanisieren mit Devise-i18n Ich habe auf den obigen Artikel verwiesen. Dieser Artikel kann also detaillierter geschrieben werden Bitte beachten Sie auch dies.

Recommended Posts

Japanische Lokalisierung von Rails-Fehlermeldungen [Objekte entwerfen / bilden usw.]
[Rails] Japanische Lokalisierung von Fehlermeldungen
[Schienen] Zeigen Sie Formularfehlermeldungen asynchron an
Der Weg zur Japanisierung von Rails führt zu Fehlermeldungen
[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
Japanische Lokalisierung der Fehlermeldung
[Rails] Fehler während der Installation des Geräts
[Rails] Japanische Lokalisierung der Fehlermeldung bei Verwendung des Formularobjekts
[Rails] So zeigen Sie Fehlermeldungen einzeln an
Testen auf Fehlermeldungen: Rails Tutorial Notes-Kapitel 7
[Schienen] erfinden
[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)
Einführung von Rspec und japanischer Lokalisierung von Fehlermeldungen
[Rails] So geben Sie Erfolgs- und Fehlermeldungen aus