From 21f71f9d32236378dfc46034721b29d5227648a0 Mon Sep 17 00:00:00 2001 From: sto Date: Fri, 28 Mar 2025 14:26:57 +0100 Subject: [PATCH] More translations, incl. attributes --- app/views/contests/_form.html.slim | 5 ++-- app/views/contests/edit.html.slim | 2 +- app/views/contests/index.html.slim | 6 ++++- app/views/contests/new.html.slim | 2 +- app/views/contests/show.html.slim | 9 ++++---- app/views/users/_form.html.slim | 10 ++++---- config/locales/en.yml | 37 ++++++++++++++++++++++++++---- config/locales/fr.yml | 33 ++++++++++++++++++++++++-- 8 files changed, 81 insertions(+), 23 deletions(-) diff --git a/app/views/contests/_form.html.slim b/app/views/contests/_form.html.slim index fddfd6b..4717806 100644 --- a/app/views/contests/_form.html.slim +++ b/app/views/contests/_form.html.slim @@ -9,14 +9,13 @@ .form-check.form-switch = form.check_box :team, class: "form-check-input" = form.label :team - | Team contest - .form-text For UI display purposes mainly + .form-text = t("activerecord.attributes.contest.team_description") .row.mb-3 .col .form-check.form-switch = form.check_box :allow_registration, class: "form-check-input" = form.label :allow_registration - .form-text Generates a shareable registration form for this contest + .form-text = t("activerecord.attributes.contest.allow_registration_description") .row .col = form.submit submit_text, class: "btn btn-primary" \ No newline at end of file diff --git a/app/views/contests/edit.html.slim b/app/views/contests/edit.html.slim index b15a2f5..3f099f5 100644 --- a/app/views/contests/edit.html.slim +++ b/app/views/contests/edit.html.slim @@ -1 +1 @@ -= render "form", contest: @contest, submit_text: "Save" \ No newline at end of file += render "form", contest: @contest, submit_text: t("helpers.buttons.save") \ No newline at end of file diff --git a/app/views/contests/index.html.slim b/app/views/contests/index.html.slim index 68974f3..b091cee 100644 --- a/app/views/contests/index.html.slim +++ b/app/views/contests/index.html.slim @@ -15,7 +15,11 @@ .card-header = contest.name .card-body - .card-text.mb-2 = "#{contest.puzzles.length} puzzles - #{contest.contestants.length} participants" + .card-text.mb-2 + = "#{contest.puzzles.length} #{t('puzzles.singular')}" if contest.puzzles.length <= 1 + = "#{contest.puzzles.length} #{t('puzzles.plural')}" if contest.puzzles.length > 1 + = " - #{contest.contestants.length} #{t('contestants.singular')}" if contest.contestants.length <= 1 + = " - #{contest.contestants.length} #{t('contestants.plural')}" if contest.contestants.length > 1 .row .col - contest.puzzles.each do |puzzle| diff --git a/app/views/contests/new.html.slim b/app/views/contests/new.html.slim index 43fa4a5..fdbdabc 100644 --- a/app/views/contests/new.html.slim +++ b/app/views/contests/new.html.slim @@ -1 +1 @@ -= render "form", contest: @contest, submit_text: "Create" \ No newline at end of file += render "form", contest: @contest, submit_text: t("helpers.buttons.create") \ No newline at end of file diff --git a/app/views/contests/show.html.slim b/app/views/contests/show.html.slim index 6f9f87f..7f3aa5f 100644 --- a/app/views/contests/show.html.slim +++ b/app/views/contests/show.html.slim @@ -13,15 +13,14 @@ a.btn.btn-primary href=edit_contest_path(@contest) | Edit contest p - |> Public scoreboard: + = t("contests.show.public_scoreboard") = link_to root_url + "public/#{@contest.slug}", root_url + "public/#{@contest.slug}" .row.mb-4 .col-6 .row .col - h4 - | Puzzles + h4 = t("puzzles.plural").capitalize .row.row-cols-1.row-cols-md-3.g-4.mb-4 - @puzzles.each do |puzzle| .col @@ -38,11 +37,11 @@ .row .col a.btn.btn-primary href=new_contest_puzzle_path(@contest) - | Add puzzle + = t("contests.show.add_puzzle") .col-6 .row .col - h4 = t("contests.show.contestants") + h4 = t("contestants.plural").capitalize table.table.table-striped.table-hover thead tr diff --git a/app/views/users/_form.html.slim b/app/views/users/_form.html.slim index f4487fa..9fdb945 100644 --- a/app/views/users/_form.html.slim +++ b/app/views/users/_form.html.slim @@ -1,6 +1,6 @@ = form_with model: user, method: method do |form| - if method == :patch - h4 General settings + h4 = t("users.edit.general_section") .row.mb-3 .col @@ -21,7 +21,6 @@ .form-floating = form.select :lang, Languages::AVAILABLE_LANGUAGES.map { |lang| [ lang[:name], lang[:id] ] }, {}, class: "form-select" = form.label :lang - | Language - if method == :post .row.mb-3 @@ -29,10 +28,10 @@ .form-floating = form.password_field :password, autocomplete: "off", class: "form-control" = form.label :password, class: "required" - = form.submit "Save", class: "btn btn-primary" + = form.submit t("helpers.buttons.save"), class: "btn btn-primary" - if method == :patch - h4.mt-5 Change password + h4.mt-5 = t("users.edit.password_section") = form_with model: user, method: method do |form| .row.mb-3 @@ -40,5 +39,4 @@ .form-floating = form.password_field :password, autocomplete: "off", class: "form-control" = form.label :password, class: "required" - | New password - = form.submit "Save new password", class: "btn btn-primary" \ No newline at end of file + = form.submit t("helpers.buttons.save"), class: "btn btn-primary" \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 8c34e49..2dffbb3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -28,6 +28,19 @@ # enabled: "ON" en: + activerecord: + attributes: + contest: + name: "Name" + team: "Team contest" + team_description: "For UI display purposes mainly" + allow_registration: "Allow registration" + allow_registration_description: "Generates a shareable registration form for this contest" + user: + username: "Username" + email_address: "Email address" + lang: "Language" + password: "New password" completions: edit: title: "Edit completion" @@ -41,18 +54,30 @@ en: manage_contests: "Manage my contests" new_contest: "Create a new contest" new: - title: "New jigsaw puzzle competition" + title: "New jigsaw puzzle contest" scoreboard: title: "%{name}" show: title: "%{name}" add_participant: "Add contestant" - contestants: "Contestants" + add_puzzle: "Add puzzle" + public_scoreboard: "Public scoreboard: " contestants: edit: - title: "Contestant" + title: "Participant" + team_title: "Teams" new: - title: "New contestant" + title: "New participant" + team_title: "New team" + singular: "participant" + plural: "participants" + teams: + singular: "team" + plural: "teams" + helpers: + buttons: + create: "Create" + save: "Save" nav: users: "Users" home: "Home" @@ -63,12 +88,16 @@ en: title: "Edit contest puzzle" new: title: "New contest puzzle" + singular: "puzzle" + plural: "puzzles" sessions: new: title: "Login to the Public Scoreboard app" users: edit: title: "My settings" + general_section: "General settings" + password_section: "Change password" index: title: "All users" new: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 5c92315..a7f7093 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,4 +1,17 @@ fr: + activerecord: + attributes: + contest: + name: "Nom" + team: "Concours par équipes" + team_description: "Principalement pour des raisons d'affichage" + allow_registration: "Autoriser l'inscription via l'interface" + allow_registration_description: "Génère un formulaire d'inscription pour ce concours" + user: + username: "Nom d'utilisateur.ice" + email_address: "Adresse email" + lang: "Langue de l'interface" + password: "Nouveau mot de passe" completions: edit: title: "Modifier la complétion" @@ -18,12 +31,24 @@ fr: show: title: "%{name}" add_participant: "Ajouter un.e participant.e" - contestants: "Participant.e.s" + add_puzzle: "Ajouter un puzzle" + public_scoreboard: "Classement public : " contestants: edit: - title: "Participant" + title: "Participant.e" + team_title: "Équipe" new: title: "Nouveau.elle participant.e" + team_title: "Nouvelle équipe" + singular: "participant.e" + plural: "participant.e.s" + teams: + singular: "équipe" + plural: "équipes" + helpers: + buttons: + create: "Créer" + save: "Modifier" nav: users: "Utilisateur.ices" home: "Accueil" @@ -34,12 +59,16 @@ fr: title: "Modifier le puzzle" new: title: "Nouveau puzzle" + singular: "puzzle" + plural: "puzzles" sessions: new: title: "Se connecter à l'app Public Scoreboard" users: edit: title: "Mes paramètres" + general_section: "Paramètres globaux" + password_section: "Modifier mon mot de passe" index: title: "Tous.tes les utilisateur.ices" new: