Closed larsUE closed 5 months ago
@Kagemaru kannst du noch den Rake-Task für die fehlenden Begriffen durchführen? Danke!
Hey Lars Hier die Resultate der Rake Tasks:
Task: > ENFORCED_LOCALES=en,de i18n-tasks missing --locales en,de
Resultat: i18n-missing-keys.txt
Task: > i18n-tasks unused --locales en,de
Resultat: i18n-unused-keys.txt
Task: > i18n-tasks check-consistent-interpolations --locales en,de
Resultat: ✓ Well done! No inconsistent interpolations found.
Anbei noch die Dokumentation für die Rake-Tasks: https://github.com/glebm/i18n-tasks
Perfekt, danke dir!
Zum Verständnis: Keys, die in beiden Files (unused und unübersetzt) vorkommen, kann ich ignorieren, oder?
Bzw. wo kommen diese Keys eigentlich vor, die unused sind?
@Kagemaru Abklärung, wie die erkannten Translationkeys exportiert werden können
@Kagemaru wir hatten im Zürcher Sprachfile die devise-Keys auf unterschiedlichen Ebenen (z.b. de.devise
, de.activerecord.devise
und de.decidim.devise
, wie auch de.decidim_zuerich.devise
). Gemäss dem Rake-Task sind alle Klassen ausser de.decidim.devise
ungebraucht und können demnach gelöscht werden, oder? Oder braucht es die de.decidim_zuerich.devise
-Keys auch noch?
In Luzern/decidim.swiss gibts noch die Klassen decidim_ocl.devise.TENANTNAME.devise
Hey Lars Ein Teil der Translation Keys kommen direkt aus Devise oder auch aus Decidim. Diese können sich mit der Zeit auch geändert haben. Das war mitunter auch der Grund, warum TermCustomizer Probleme hatte diese zu überschreiben.
Keys von Decidim sind schwierig zentral darzustellen, da alles in Module aufgeteilt ist.
Für die aktuelle Version im develop
Branch sieht man die Anpassungen hier:
https://github.com/search?q=repo%3Adecidim%2Fdecidim+path%3Ade.yml+devise&type=code
Den einzigen Weg, den ich kenne um alle Keys von Devise zu bekommen, die momentan möglich sind, ist von unserem Codestand aus alle files mit einem devise
key auszulesen:
devise-translation-keys.zip
Die de Keys von Devise sieht man hier:
# Devise config/locales/devise.views.de.yml
de:
activerecord:
attributes:
user:
confirmation_sent_at: Bestätigung gesendet am
confirmation_token: Bestätigungs-Token
confirmed_at: Bestätigt am
created_at: Erstellt am
current_password: Bisheriges Passwort
current_sign_in_at: Aktuelle Anmeldung am
current_sign_in_ip: IP der aktuellen Anmeldung
email: E-Mail
encrypted_password: Verschlüsseltes Passwort
failed_attempts: Fehlversuche
last_sign_in_at: Letzte Anmeldung am
last_sign_in_ip: IP der letzten Anmeldung
locked_at: Gesperrt am
password: Passwort
password_confirmation: Passwortbestätigung
remember_created_at: '"Angemeldet bleiben" erstellt am'
remember_me: Angemeldet bleiben
reset_password_sent_at: E-Mail zum Zurücksetzen des Passworts gesendet am
reset_password_token: Token zum Zurücksetzen des Passworts
sign_in_count: Anzahl der Anmeldungen
unconfirmed_email: Unbestätigte E-Mail-Adresse
unlock_token: Entsperrungs-Token
updated_at: Aktualisiert am
models:
user:
one: Benutzer
other: Benutzer
devise:
confirmations:
confirmed: Ihre E-Mail-Adresse wurde erfolgreich bestätigt.
new:
resend_confirmation_instructions: Bestätigungsanleitung erneut senden
send_instructions: In wenigen Minuten erhalten Sie eine E-Mail zur Bestätigung Ihrer Registrierung.
send_paranoid_instructions: Falls Ihre E-Mail-Adresse in unserer Datenbank existiert, erhalten Sie in wenigen Minuten eine E-Mail zur Bestätigung Ihrer Registrierung.
failure:
already_authenticated: Sie sind bereits angemeldet.
inactive: Ihr Konto ist noch nicht aktiv.
invalid: "%{authentication_keys} oder Passwort ist ungültig."
last_attempt: Sie haben noch einen Versuch, bevor Ihr Konto gesperrt wird.
locked: Ihr Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ist ungültig."
timeout: Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.
unauthenticated: Sie müssen sich anmelden oder registrieren, um fortzufahren.
unconfirmed: Sie müssen Ihr Konto bestätigen, bevor Sie fortfahren können.
mailer:
confirmation_instructions:
action: Mein Konto bestätigen
greeting: Willkommen %{recipient}!
instruction: 'Klicken Sie auf den folgenden Link, um Ihr Konto zu bestätigen:'
subject: Anleitung zur Konto-Bestätigung
email_changed:
greeting: Hallo %{recipient}!
message: Wir möchten Sie informieren, dass Ihre E-Mail-Adresse zu %{email} geändert wurde.
message_unconfirmed: Wir möchten Sie informieren, dass Ihre E-Mail-Adresse zu %{email} geändert wird.
subject: E-Mail-Adresse geändert
password_change:
greeting: Hallo %{recipient}!
message: Wir möchten Sie darüber informieren, dass Ihr Passwort geändert wurde.
subject: Passwortänderung
reset_password_instructions:
action: Passwort ändern
greeting: Hallo %{recipient}!
instruction: Jemand hat einen Link zum Ändern Ihres Passworts angefordert. Klicken Sie auf den folgenden Link, um Ihr Passwort zu ändern.
instruction_2: Ignorieren Sie diese E-Mail, wenn Sie kein neues Passwort angefordert haben.
instruction_3: Ihr Passwort wird erst geändert, wenn Sie den obigen Link nutzen und ein neues Passwort festlegen.
subject: Anweisungen zum Zurücksetzen Ihres Passworts
unlock_instructions:
action: Mein Konto entsperren
greeting: Hallo %{recipient}!
instruction: 'Klicken Sie auf den folgenden Link, um Ihr Konto zu entsperren:'
message: Aufgrund zahlreicher fehlgeschlagener Anmeldeversuche wurde Ihr Konto gesperrt.
subject: Anweisungen zur Entsperrung Ihres Kontos
omniauth_callbacks:
failure: 'Die Anmeldung mit Ihrem %{kind}-Konto war aufgrund des folgenden Grundes nicht möglich: "%{reason}".'
success: Sie haben sich erfolgreich über Ihr %{kind}-Konto angemeldet.
passwords:
edit:
change_my_password: Mein Passwort ändern
change_your_password: Ihr Passwort ändern
confirm_new_password: Neues Passwort bestätigen
new_password: Neues Passwort
new:
forgot_your_password: Haben Sie Ihr Passwort vergessen?
send_me_reset_password_instructions: Anweisungen zum Zurücksetzen meines Passworts senden
no_token: Sie können diese Seite nicht nutzen, es sei denn, Sie stammen von einer Passwort-Zurücksetzen-E-Mail. Wenn dies der Fall ist, stellen Sie sicher, dass Sie die vollständige URL verwendet haben.
send_instructions: Sie erhalten in Kürze eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.
send_paranoid_instructions: Wenn Ihre E-Mail-Adresse in unserer Datenbank existiert, erhalten Sie in Kürze eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.
updated: Ihr Passwort wurde geändert. Sie sind jetzt angemeldet.
updated_not_active: Ihr Passwort wurde erfolgreich geändert.
registrations:
destroyed: Ihr Konto wurde gelöscht. Wir hoffen, Sie bald wiederzusehen.
edit:
are_you_sure: Sind Sie sicher, dass Sie das tun möchten?
cancel_my_account: Konto löschen
currently_waiting_confirmation_for_email: Bestätigung für %{email} ausstehend.
leave_blank_if_you_don_t_want_to_change_it: Leer lassen, wenn Sie es unverändert lassen möchten.
title: "%{resource} bearbeiten"
unhappy: Nicht zufrieden?
update: Änderungen speichern
we_need_your_current_password_to_confirm_your_changes: Zur Bestätigung geben Sie bitte Ihr aktuelles Passwort ein.
new:
sign_up: Registrieren
signed_up: Sie haben sich erfolgreich registriert.
signed_up_but_inactive: Ihre Registrierung war erfolgreich, Ihr Konto ist jedoch noch nicht aktiviert.
signed_up_but_locked: Ihre Registierung war erfolgreich, Ihr Konto ist jedoch gesperrt.
signed_up_but_unconfirmed: Sie erhalten in Kürze eine Bestätigungs-E-Mail. Bitte klicken Sie auf den darin enthaltenen Link, um Ihr Konto zu aktivieren.
update_needs_confirmation: Sie haben Ihre Daten aktualisiert. Eine Bestätigungs-E-Mail wird Ihnen zugesandt. Bitte klicken Sie auf den Link in der E-Mail, um Ihre Änderungen zu bestätigen.
updated: Ihre Einstellungen wurden aktualisiert.
updated_but_not_signed_in: Sie haben Ihre Daten aktualisiert, aber Sie müssen sich wegen einer Passwortänderung erneut anmelden.
sessions:
already_signed_out: Sie sind bereits abgemeldet.
new:
sign_in: Anmelden
signed_in: Sie sind nun angemeldet.
signed_out: Sie haben sich erfolgreich abgemeldet.
shared:
links:
back: Zurück
didn_t_receive_confirmation_instructions: Keine Bestätigungs-E-Mail erhalten?
didn_t_receive_unlock_instructions: Keine Anweisungen zum Entsperren erhalten?
forgot_your_password: Passwort vergessen?
sign_in: Anmelden
sign_in_with_provider: Mit %{provider} anmelden
sign_up: Registrieren
minimum_password_length:
one: "(mindestens %{count} Zeichen)"
other: "(mindestens %{count} Zeichen)"
unlocks:
new:
resend_unlock_instructions: Anweisungen zum Entsperren erneut senden
send_instructions: Sie erhalten in Kürze eine E-Mail mit Anweisungen, wie Sie Ihr Konto entsperren können.
send_paranoid_instructions: Wenn Ihre E-Mail-Adresse in unserer Datenbank verzeichnet ist, erhalten Sie Anweisungen zur Entsperrung Ihres Kontos.
unlocked: Ihr Konto wurde entsperrt. Bitte melden Sie sich jetzt an.
errors:
messages:
already_confirmed: Bereits bestätigt. Versuchen Sie, sich anzumelden.
confirmation_period_expired: Die Bestätigungsfrist von %{period} ist abgelaufen. Bitte erneut anfordern.
expired: Der Link ist abgelaufen. Bitte erneut anfordern.
not_found: Nicht gefunden.
not_locked: Nicht gesperrt.
not_saved:
one: "%{resource} konnte wegen eines Fehlers nicht gespeichert werden:"
other: "%{count} Fehler verhinderten das Speichern von %{resource}:"
Danke @Kagemaru ! @innosmith (zur Info): Ich bin alle devise Keys im Sprachfile von Zürich mal durchgegangen und habe sie mit Crowdin abgeglichen. Somit sind die Sprachfiles auf Crowdin in einem akzeptablen Format und somit besteht auch kein Bedarf mehr, devise Keys im lokalen Sprachfile aufzuführen. Dies wird nur noch notwendig sein, sollten Tenants Abweichungen von Crowdin wünschen (oder bis der Term Customizer Fix da ist -> gemäss Tickets ist der Branch noch ein Draft, aber wurde bereits praktisch erprobt).
Somit ergibt sich nun folgendes Deutsches Sprachfile:
# Files in the config/locales directory are used for internationalization
# and are automatically loaded by Rails. If you want to use locales other
# than English, add the necessary files in this directory.
#
# To use the locales, use `I18n.t`:
#
# I18n.t 'hello'
#
# In views, this is aliased to just `t`:
#
# <%= t('hello') %>
#
# To use a different locale, set it with `I18n.locale`:
#
# I18n.locale = :es
#
# This would use the information in config/locales/es.yml.
#
# The following keys must be escaped otherwise they will not be retrieved by
# the default I18n backend:
#
# true, false, on, off, yes, no
#
# Instead, surround them with single quotes.
#
# en:
# 'true': 'foo'
#
# To learn more, please read the Rails Internationalization guide
# available at http://guides.rubyonrails.org/i18n.html.
de:
activemodel:
attributes:
organization:
delete_admin_logs: Löschen von Admin-Protokollen zulassen
delete_admin_logs_after: Admin-Protokolle löschen nach (Tage, standardmässig 365)
delete_inactive_users: Inaktive Teilnehmende löschen
delete_inactive_users_after: Inaktive Teilnehmende löschen nach (Tage, standardmässig 390)
delete_inactive_users_email_after: E-Mail zur bevorstehenden Konto-Löschung versenden nach Inaktivität von (Tagen, standardmässig 365)
errors:
internal_server_error:
try_later: Bitte versuchen Sie es später nochmal.
not_found:
content_doesnt_exist: Diese Seite wurde leider nicht gefunden. Wir bitten um Verständnis.
title: Ups!
decidim:
admin:
menu:
clean: Datenbereinigung
cleaner:
admin:
organization_cleaner:
edit:
update: Aktualisieren
form:
admin_log_cleaner_title: Admin-Log
inactive_users_cleaner_title: Inaktive Teilnehmende
inactive_users_mailer:
warning_deletion:
body_1: Sie sind seit %{Tagen} Tagen bei <a href="%{Organisation_url}"> %{Organisation_name} </a> inaktiv.
body_2: Infolgedessen wurde Ihr Konto gelöscht.
greetings: Freundliche Grüsse,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
hello: Guten Tag
subject: Ihr Konto wurde gelöscht.
warning_inactive:
body_1: Sie sind seit %{Tagen} Tagen bei %{Organisation_name} inaktiv.
body_2: <a href="%{organization_url}">Wenn Sie sich nicht innerhalb %{remaining_days} Tagen anmelden </a>, wird ihr Konto gelöscht.
greetings: Freundliche Grüsse,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
hello: Guten Tag
subject: Ihr Konto ist inaktiv
components:
cleaner:
name: Bereinigung
content_blocks:
last_blog_posts:
name: Aktuellste Blog-Einträge
title: Aktuellste Blog-Einträge
view_all: Alle anzeigen
html2:
name: HTML-Block 2
html3:
name: HTML-Block 3
html4:
name: HTML-Block 4
participatory_processes:
index:
participatory_process_group:
more_info: Mehr anzeigen
system:
models:
organization:
fields:
tenant_type: special features
organizations:
tenant_type:
none: None
omniauth_settings:
oidc:
issuer: Issuer URL (e.g. https://login.integ.stadt-zuerich.ch:443/login/op)
client_id: Client ID
client_secret: Client secret
redirect_url: Redirect URL (e.g. https://my.decidim.domain/users/auth/oidc/callback)
decidim_zuerich:
devise:
# mitwirken: null
# meinquartier: null
maps:
gis_zh:
basiskarte_schraeg: Stadt Zürich Basiskarte
orthofoto: Stadt Zürich Luftbild
participatory_processes:
participatory_process_helper:
step_dates:
no_dates: Kein Datum angegeben
surveys:
survey_answered_mailer:
answered:
answered_survey: Jemand hat an der Umfrage "%{survey_name}" teilgenommen.
subject: Neue Antwort zur Umfrage "%{survey_name}"
view: Zur Umfrage
verifications:
sms:
aspsms_gateway:
sms_text: '%{code} ist Ihr Zugangscode auf %{organization}'
sms_originator_max_11_alphabetic_characters: DECIDIM
reply_to: mitwirken-kontakt@zuerich.ch
devise:
shared:
links:
sign_in_with_provider: Mit "Mein Konto" anmelden
hello: "Hello world"
@larsUE , @Kagemaru : können wir somit das bereinigte YML-File aus Zürich auf die Test-Umgebung der decidim.swiss Plattform übertragen? Falls ja, per wann ist dies möglich; auch damit wir die Kund:innenseite informieren können?
@innosmith Da hat es jetzt halt noch einiges Zürich spezifisches drauf. Für Decidim-Swiss müssten folgende Dinge angepasst werden:
decidim.components.cleaner
& decidim.admin.menu.clean
) -> Dieses Modul ist auf decidim.swiss m.E. nicht installiertdecidim_ocl
) und Keys von decidim_zuerich
ersetzen -> Hier sind noch devise-Übersetzungen drin, die je nachdem Duplikate sein könnten (zumindest die in "Sie"-Form), sicherheitshalber würde ich die aber mal übernehmen.@innosmith Hättest du gerade Kapa, dies für decidim.swiss zu machen? @Kagemaru sollen wir die Begriffe direkt via Guthub hochladen oder möchtest du sie nochmals sortieren?
Ich sortiere sie gerne nochmal und packe sie dann rein.
@Kagemaru , @larsUE Siehe Anhang habe ich basierend auf dem Zürcher YML oben im Ticket eine Version für die decidim.swiss Plattform erstellt. Dabei habe ich folgende Änderungen gemacht:
Bitte prüfen und wenn in Ordnung, auf decidim.swiss INT ausrollen, um es zu testen. Gerne helfe ich mit beim Testen. PROD unbedingt noch nichts verändern. ocl_yml_cleaned.txt
@Kagemaru Du hast sie noch nicht auf INT gepackt, oder?
Hoi @larsUE : siehe https://github.com/orgs/decidim-swiss/projects/4?pane=issue&itemId=62031748 ist das überarbeitete Sprachfile auf decidim.swiss INT eingespielt.
Danke @innosmith ! Yes, das habe ich gesehen. Frage aber für die Zürcher Umgebung nach, da wurde das File seit 2 Monaten nicht mehr aktualisiert.
@Kagemaru wird das am Mi, 29.5. erledigen (PROD & INT)
DE_YML ersetzen.