Repository navigation
fix: Carbon-Fields-Bedienelemente auf Deutsch (v2.47.5) - #154
Merged
Merged
Conversation
Im Formular standen auch in einem deutschen WordPress englische Texte aus der Oberfläche von Carbon Fields (Domain carbon-fields-ui): „There are no entries yet.", „Add Distribution", „Select Date", „No options." u. a. Ursachen: - Carbon Fields 3.6.11 bringt für carbon-fields-ui keine de_DE-Datei mit. - Carbon Fields reicht seine UI-Übersetzungen über wp_localize_script() als cf.config.locale an setLocaleData() weiter und liest sie über get_translations_for_domain()->entries. Seit WP 6.5 ist das eine Liste; Carbon Fields nimmt die Indizes als msgids, keine Übersetzung kommt an. Änderungen: - ODW_Carbon_Fields_L10n: lädt languages/carbon-fields-ui-de_DE.mo für alle de*-Locales und baut cf.config.locale im Filter carbon_fields_config nach msgid (samt Kontext) geschlüsselt neu auf. - languages/carbon-fields-ui-de_DE.po/.mo (Anrede „Sie"), nicht in vendor/. - assets/js/odw-carbon-fields-l10n.js: feste react-select-Texte der Mehrfachauswahl („Select...", „No options") über die Plugin-Domain. - odw-datepicker-de.js: wirkungslosen Platzhalter-Tausch entfernt. - en_US-.po/.mo und .pot um die zwei neuen Zeichenketten ergänzt. - Unit-Tests und E2E-Zusicherung im deutschen Formular. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GcBuax4aJvDgWhT9oi6vNM
main hat 2.47.3 und 2.47.4 vergeben. Versionsstellen auf 2.47.5, CHANGELOG-Eintrag über 2.47.4 einsortiert, en_US-.mo aus der zusammengeführten .po neu kompiliert (753 Einträge aus main unverändert, 2 neue). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GcBuax4aJvDgWhT9oi6vNM
Die Datumsfelder stellten flatpickr fest auf locale 'de', und odw-datepicker-de.js lud die deutsche Sprachdatei für jede Locale. Auf en_US zeigte der Kalender deshalb deutsche Monats- und Wochentagsnamen. - ODW_Fields::date_picker_options(): 'de' bei deutscher Locale, sonst flatpickrs englisches 'default' (vermeidet zugleich „invalid locale"). - odw-datepicker-de.js nur für deutsche Locales einbinden. - Unit-Test je Locale, E2E: deutsche Wochentage im deutschen Formular. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GcBuax4aJvDgWhT9oi6vNM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Im Formular erschienen auch in einem deutschen WordPress englische Texte aus der JavaScript-Oberfläche von Carbon Fields (Domain
carbon-fields-ui): „There are no entries yet.“, „Add Distribution“, „Select Date“, „No options.“, „Collapse All“ u. a. Umgekehrt zeigte der Kalender auf en_US deutsche Monatsnamen.Ursachen
carbon-fields-uikeine de_DE-Datei mit.wp_set_script_translations(), sondern selbst:Loader::load_textdomain()→Loader::get_ui_translations()→wp_localize_script()alscf.config.locale(über den Filtercarbon_fields_config) →setLocaleData()im JS. Seit WordPress 6.5 liefertget_translations_for_domain()->entrieseine Liste (WP_Translations::__get()); Carbon Fields übernimmt die Indizes 0, 1, 2 … als msgids. Damit erreicht keine UI-Übersetzung die Oberfläche, auch keine mitgelieferte (z. B. fr_FR). Eine de_DE-Datei allein hätte also nichts bewirkt.locale: 'de', undodw-datepicker-de.jswurde für jede Locale geladen.Änderungen
ODW_Carbon_Fields_L10n(includes/class-carbon-fields-l10n.php): lädt für allede*-Localeslanguages/carbon-fields-ui-de_DE.mound bautcf.config.localeim Filtercarbon_fields_confignach msgid (samt Kontext) neu auf. Eigenschaften werden ohneisset()/??gelesen, weilWP_Translationskein__isset()hat.languages/carbon-fields-ui-de_DE.po/.mo: 50 Zeichenketten, Anrede „Sie“. Die Datei liegt im Plugin, nicht invendor/. Meldungen, die nur in der Entwickler-Konsole erscheinen, bleiben englisch.assets/js/odw-carbon-fields-l10n.jsersetzt sie im DOM durch „Auswählen…“ und „Keine passenden Optionen“. Die Zieltexte laufen über die Plugin-Domain, auf en_US ist der Tausch deshalb wirkungslos. Die Live-Vorschau liest nur.cf-multiselect__multi-value__labelund ist davon nicht betroffen.ODW_Fields::date_picker_options()gibt bei deutscher Localede, sonst flatpickrs englischesdefaultan.odw-datepicker-de.jswird nur noch für deutsche Locales geladen; sein wirkungsloser Tausch von „Select Date“ (das ist ein Button, kein Platzhalter) ist entfallen..po/.mound.potsind um die zwei neuen Zeichenketten ergänzt. Alle Einträge ausmainsind unverändert, 2 sind hinzugekommen.main2.47.3 und 2.47.4 bereits vergeben hat. CHANGELOG und CLAUDE.md sind angepasst.Prüfung
tests/test-carbon-fields-l10n.php. Sie prüfen die Schlüsselbildung mit nachgebildetemWP_Translationsund mit älteren Übersetzungsobjekten, das Laden nur bei deutscher Locale, ob die.mozur.popasst, und die Kalendersprache je Locale.bin/check-i18n.pyOK.bin/build-release.shundbin/verify-package.py: OK. Die Gegenprobe, bei der.mound JS aus dem Paket entfernt wurden, meldet beide Dateien als fehlend; sie werden also automatisch erfasst.admin-workflow.spec.js, „Bedienelemente von Carbon Fields sprechen Deutsch“): deutsche Texte und deutsche Wochentage im Kalender, kein englischer Text. Die Kalenderprüfung kam mit dem letzten Commit hinzu und läuft in der CI.Generated by Claude Code