J'étudie pour devenir ingénieur sans expérience.
Lorsque j'écrivais une application simple, le message d'erreur de validation est resté bloqué en anglais Lorsque j'étudiais comment traduire le message d'erreur en japonais, Je n'ai pas trouvé d'article contenant toutes les informations que je souhaite connaître. J'ai créé un article en guise de mémorandum, en espérant qu'il sera utile à ceux qui étudient la programmation de la même manière. Je suis sûr qu'il y a encore des points qui n'ont pas encore été atteints, mais si vous avez des avis, veuillez nous le faire savoir dans les commentaires.
Si rien n'est défini, le message d'erreur de validation sera affiché en anglais, comme indiqué dans l'image ci-dessous.
Après la modification, un message d'erreur sera émis en japonais, comme indiqué dans l'image ci-dessous.
Pour traduire le message d'erreur en japonais, utilisez le gem rails-i18n. Ajoutez la phrase suivante au Gemfile et exécutez l'installation du bundle dans le terminal.
gem 'rails-i18n'
#Mettez le code ci-dessus dans Gemfile
Ensuite, ajoutez la phrase suivante à config / application.rb pour modifier le paramètre de langue. Si vous redémarrez le serveur après l'ajout, une partie du message d'erreur sera traduite en japonais, comme indiqué dans l'image ci-dessous.
config/application.rb
class Application < Rails::Application
config.load_defaults 6.0
#Ci-dessous, le code ci-dessous
config.i18n.default_locale = :ja
#Décrivez le code ci-dessus
end
Cependant, tel quel, le nom d'attribut du modèle reste en anglais. Donc, la prochaine fois, je le changerai en japonais.
Afin de changer le nom d'attribut du modèle, il est nécessaire de créer une table de correspondance en japonais. Créez un fichier appelé ja.yml dans config / locales / models / et décrivez le nom de la colonne et le japonais correspondant comme indiqué ci-dessous.
config/locales/models/ja.yml
ja:
activerecord:
models:
item:Produit
attributes:
item:
image:Image du produit
name:Nom du produit
details:Description du produit
price:prix
Je voulais changer le nom d'attribut du modèle appelé item, donc je l'ai mis comme item dans le code. ** Veuillez modifier l'article dans le code ci-dessus en fonction du modèle que vous souhaitez modifier **.
Le fichier défini ci-dessus ne sera pas lu automatiquement. Alors, ajoutez une phrase pour lire ce fichier yml dans config / application.rb.
config/application.rb
class Application < Rails::Application
config.load_defaults 6.0
config.i18n.default_locale = :ja
#Ci-dessous, le code ci-dessous
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.yml').to_s]
#Décrivez le code ci-dessus
end
Si vous avez configuré jusqu'à présent, tout doit être changé en notation japonaise comme indiqué ci-dessous.
Si vous utilisez un gem appelé rails-i18n, il convertira la plupart des messages d'erreur en japonais, Lorsque vous définissez vous-même la validation, comme indiqué ci-dessous La sortie peut ne pas être évidente à première vue. Dans ce cas, définissez vous-même le message d'erreur. Ce qui suit est un exemple.
Lorsque vous utilisez ActiveHash pour sélectionner le nom de la préfecture dans un format déroulant et le valider vous-même
Code dans le modèle validé
#réduction
with_options presence: true do
#réduction
validates :prefecture_id, numericality: { other_than: 1 }
#réduction
end
Code dans le modèle validé
#réduction
with_options presence: true do
#réduction
validates :prefecture_id, numericality: { other_than: 1 ,message: 'Choisissez s'il vous plaît'}
#réduction
end
Vous pouvez le changer en japonais plus facile à comprendre en définissant des options telles que ** message: 'message content' ** comme décrit ci-dessus.
Si vous souhaitez ajouter d'autres noms de colonnes, ajoutez-les vous-même comme indiqué ci-dessous.
config/locales/models/ja.yml
ja:
activerecord:
models:
item:Produit
attributes:
item:
image:Image du produit
name:Nom du produit
details:Description du produit
price:prix
#À partir de là, écrivez vous-même la table de correspondance entre le nom de la colonne et le japonais, comme indiqué ci-dessous.
category_id:Catégorie
status_id:État du produit
prefecture_id:Zone d'expedition
Si vous avez effectué les réglages ci-dessus, vous n'avez rien à faire. Sinon, suivez la procédure ci-dessus pour préparer (installer Gem, etc.) et créer une table de correspondance (ja.yml). Lisons la table de correspondance (ajoutée à config / application.rb).
Ajoutez config / locales / models / ja.yml comme suit.
config/locales/models/ja.yml
ja:
activerecord:
models:
item:Produit
attributes:
item:
image:Image du produit
name:Nom du produit
price:prix
details:Description du produit
#Ajoutez le code suivant ci-dessous à partir d'ici
activemodel:
attributes:
user_purchase:
city:Municipalité
postal_code:Code postal
phone_number:numéro de téléphone
prefecture_id:Préfectures
house_number:adresse
building:Nom du bâtiment
#Ajoutez le code ci-dessus (veuillez changer le nom de la colonne, etc. par vous-même)
Pour traduire l'objet Form que vous avez défini vous-même en japonais, écrivez ** activemodel: ** et placez-le en dessous. Si vous ne le définissez pas correctement, il ne sera pas modifié en japonais.
Puisqu'il est défini comme ActiveModel :: Model, il ne répond pas même si vous mettez le code dans les attributs: sous activerecord:.
Code dans le modèle qui définit l'objet Form
class UserPurchase
include ActiveModel::Model #ActiveModel en lui-même::Le modèle est défini
#réduction
end
config/locales/models/ja.yml
ja:
activerecord:
models:
item:Produit
attributes:
item:
image:Image du produit
name:Nom du produit
price:prix
details:Description du produit
#Étant donné que le paramètre n'est pas ActiveRecord, l'écriture du code ci-dessous à partir d'ici ne répond pas
Le paramètre par défaut de périphérique, qui vous permet d'implémenter facilement les fonctions d'enregistrement des utilisateurs, est l'anglais. Cela peut également être changé en japonais.
Pour traduire les messages d'erreur de conception en japonais, utilisez les gemmes devise-i18n et devise-i18n-views. Ajoutez la phrase suivante au Gemfile et exécutez l'installation du bundle dans le terminal.
gem 'devise-i18n'
gem 'devise-i18n-views'
#Mettez le code ci-dessus dans Gemfile
Générez un fichier de traduction japonais avec la commande. Exécutez la commande suivante dans le terminal.
rails g devise:views:locale ja
#Si le résultat de l'exécution est affiché comme indiqué ci-dessous, il réussit.
create config/locales/devise.views.ja.yml
Assurez-vous que le fichier est généré correctement.
ruby:config/locales/devise.views.ja.yml
ja:
activerecord:
errors:
models:
user:
attributes:
email:
taken: "Est déjà en cours d'utilisation."
#Omis car il est trop long
unlocks:
new:
resend_unlock_instructions: "Renvoyer la méthode de dégel du compte"
#Ce qui précède est la dernière ligne
Si vous l'avez déjà défini, cette étape n'est pas nécessaire. Sinon, ajoutez le code ci-dessous
config/application.rb
class Application < Rails::Application
config.load_defaults 6.0
#Ci-dessous, le code ci-dessous
config.i18n.default_locale = :ja
#Décrivez le code ci-dessus
end
Lorsque vous avez terminé, redémarrez le serveur et il devrait être changé en japonais.
Si vous souhaitez ajouter d'autres noms de colonnes, ajoutez-les vous-même comme indiqué ci-dessous.
config/locales/models/ja.yml
ja:
activerecord:
errors:
#Puisqu'il est long en dessous, il est omis
confirmation: "Ne correspond pas au contenu."
attributes:
user:
current_password: "Mot de passe actuel"
name:Nom
email: "adresse mail"
password: "mot de passe"
password_confirmation: "Confirmation du mot de passe"
remember_me: "connectez-vous automatiquement à partir de maintenant"
#Ajoutez votre propre nom de colonne et le japonais correspondant si nécessaire ci-dessous
nickname: "surnom"
first_name: "Nom"
last_name: "Nom de famille"
birthday: "Anniversaire"
#Décrit comme ci-dessus
models:
user: "Utilisateur"
#Puisqu'il est long en dessous, il est omis
Ce qui précède est la localisation japonaise du message d'erreur que j'ai créé. Si nécessaire, nous apporterons des corrections et des ajouts. Merci de visiter notre site. Si vous avez des questions, veuillez nous le faire savoir dans les commentaires.
Message d'erreur de validation de la localisation japonaise de Rails Japaneseization of Rails Form objects Changer le format du message d'erreur affiché par Validates of ActiveRecord [Rails5] Japaneseize avec Devise-i18n J'ai fait référence à l'article ci-dessus. Cet article peut être écrit plus en détail, donc Veuillez vous y référer également.
Recommended Posts