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.
Wenn nichts festgelegt ist, wird die Validierungsfehlermeldung in englischer Sprache ausgegeben (siehe Abbildung unten).
Nach der Änderung wird eine Fehlermeldung auf Japanisch ausgegeben (siehe Abbildung unten).
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
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
Der Attributname des Modells bleibt jedoch unverändert in Englisch. Also werde ich es das nächste Mal auf Japanisch ändern.
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 **.
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.
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.
Wenn Sie ActiveHash verwenden, um den Präfekturnamen in einem Pulldown-Format auszuwählen und selbst zu validieren
Code im validierten Modell
#Kürzung
with_options presence: true do
#Kürzung
validates :prefecture_id, numericality: { other_than: 1 }
#Kürzung
end
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, 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
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).
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.
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
Die Standardeinstellung für devise, mit der Sie Benutzerregistrierungsfunktionen einfach implementieren können, ist Englisch. Dies kann auch auf Japanisch geändert werden.
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
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
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, 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
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.
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