Texte und Übersetzungen¶
MRBS trennt die Begriffe der Oberfläche, standortspezifische Formulierungen, Hilfeseiten und dieses MkDocs-Handbuch. Die richtige Ebene hält Änderungen upgradesicher.
| Aufgabe | Richtiger Ort |
|---|---|
| Eine Bezeichnung für diese Installation ändern | $vocab_override in config.inc.php |
| Eine Oberflächensprache ergänzen oder pflegen | web/lang/lang.<sprache> |
| Die anwendungsinterne Hilfe übersetzen oder anpassen | web/site_faq/site_faq_<sprache>.html |
| Dieses Handbuch übersetzen | Datei mit Sprachsuffix unter docs/ |
Formulierungen eines Standorts überschreiben¶
Eine ausgelieferte Sprachdatei nicht verändern, nur um etwa „Raum“ umzubenennen.
Den Schlüssel in web/lang/lang.en suchen und überschreiben:
$vocab_override['en']['mrbs'] = 'Resource Booking';
$vocab_override['de']['mrbs'] = 'Ressourcenbuchung';
$vocab_override['fr']['mrbs'] = 'Réservation de ressources';
$vocab_override['es']['mrbs'] = 'Reserva de recursos';
Die Reihenfolge lautet immer Sprache, dann Schlüssel:
$vocab_override[LANG][TOKEN].
Weitere standortspezifische Schlüssel:
$vocab_override['de']['room.coffee_machine'] = 'Kaffeemaschine';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['de']['entry.description.placeholder'] =
'Informationen für das Raumteam ergänzen';
$vocab_override['de']['users.zip_code.oninvalid'] =
'Bitte eine gültige Postleitzahl eingeben';
$vocab_override['de']['type.C'] = 'Kundenbuchung';
Eigene Felder behandelt Eigene Felder. Buchungstypen
verwenden type.X, wobei X der konfigurierte Typcode ist.
Überschreibungen bleiben beim Upgrade erhalten, weil sie in der Standortkonfiguration stehen. Ändert eine Version Bedeutung oder Kontext eines Originalschlüssels, muss die Überschreibung dennoch geprüft werden.
Platzhalter erhalten¶
Sprachtexte können printf-Platzhalter wie %s, %d oder positionale Formen
wie %1$d enthalten. Jeder Platzhalter und sein Typ müssen erhalten bleiben.
Argumente dürfen nur mit positionalen Platzhaltern umsortiert werden.
Auch beabsichtigte HTML-Fragmente, bedeutungstragende Zeichensetzung und Leerzeichen erhalten. Texte mit null, einem und mehreren Elementen prüfen.
Laufzeitsprache auswählen¶
Standardmäßig ermittelt MRBS die Sprache aus dem Browser:
Eine feste Sprache wird so erzwungen:
Der Wert muss zu einer vorhandenen Datei web/lang/lang.* passen. Die
Gebietseinstellung für Datum und Uhrzeit kann separat gesetzt werden:
Das Betriebssystem des Servers muss $override_locale unterstützen.
$cli_language gilt für Aufrufe ohne Browser. Zur Diagnose schreibt
$language_debug = true Sprach- und Locale-Informationen ins Fehlerprotokoll;
danach wieder deaktivieren.
Anwendungssprache anlegen oder pflegen¶
Englisch ist Referenz und Rückfall. Für den erkannten Sprachcode xx:
Danach:
- PHP-Einstiegszeile und alle
$vocab-Schlüssel beibehalten. - Nur Textwerte, nicht die Schlüsselnamen übersetzen.
- Die Datei als UTF-8 speichern.
- Außer
keine HTML-Entities verwenden, sondern UTF-8-Zeichen. - Platzhalter und beabsichtigtes Markup erhalten.
- PHP-Syntax prüfen.
MRBS lädt zuerst die englische Referenz und danach die gewählte Sprache. Fehlende Schlüssel fallen deshalb auf Englisch zurück.
Vollständigkeit prüfen¶
checklang.php vergleicht Sprachdateien mit lang.en. In einer
Entwicklungsinstanz liegt das Script im MRBS-Webverzeichnis und wird so
aufgerufen:
Ohne Sprachauswahl bietet es alle installierten Sprachen an. Die optionale Aktualisierungsfunktion schreibt Dateien und benötigt Schreibrechte; sie nicht in Produktion verwenden und Änderungen prüfen. Nach Abschluss das Entwicklungswerkzeug vor öffentlichem Zugriff schützen oder entfernen.
Syntaxprüfung und checklang.php finden unterschiedliche Fehler; beide
verwenden.
Anwendungsinterne Hilfe übersetzen¶
Der Hilfetext stammt nicht aus $vocab, sondern aus eigenen Dateien:
web/site_faq/site_faq.html
web/site_faq/site_faq_de.html
web/site_faq/site_faq_fr.html
web/site_faq/site_faq_es.html
Das Suffix wird ohne Unterstrich gewählt:
Alte Werte wie '_de' funktionieren aus Kompatibilitätsgründen noch, sind
aber veraltet. Die Einstellung ist von der Browsersprache unabhängig. Lokale
Änderungen ausgelieferter FAQ-Dateien müssen dokumentiert und beim Upgrade
erneut zusammengeführt werden.
Dieses Handbuch übersetzen¶
Die Dokumentationswebsite verwendet Sprachsuffixe:
docs/admin-guide/custom-fields.md
docs/admin-guide/custom-fields.de.md
docs/admin-guide/custom-fields.fr.md
docs/admin-guide/custom-fields.es.md
Englisch ist der Rückfall der Dokumentation. Diese Dateien ändern weder die MRBS-Oberfläche noch deren Hilfeseite.
Upgradesicherer Ablauf¶
- Standortspezifische Texte in
$vocab_overrideablegen. - Lokal gepflegte Sprach- und FAQ-Dateien auflisten.
- Neues und altes
lang.enauf zusätzliche oder geänderte Schlüssel vergleichen. php -lfür jede geänderte Sprachdatei ausführen.checklang.phpin einer geschützten Entwicklungsinstanz ausführen.- FAQ-Änderungen getrennt prüfen.
- Alle aktiven Sprachen vor der Bereitstellung testen.
Prüfliste¶
- Browsererkennung und feste Vorgabe wählen die erwartete Sprache.
- Fehlende Schlüssel fallen auf verständliches Englisch zurück.
- Navigation, Formulare, Fehler, Freigaben und Administration werden korrekt dargestellt.
%s,%dund positionale Platzhalter erhalten die richtigen Werte.- Datum, Uhrzeit, Wochentage und Zeitzonen verwenden die beabsichtigte Locale.
- E-Mails, Berichte, Exporte und Kommandozeilenaufgaben verwenden die richtige Sprache.
- Eigene Felder, Buchungstypen, Platzhalter und Validierungsmeldungen sind übersetzt.
- Die Hilfe verwendet die erwartete
site_faq-Datei. - Protokolle enthalten kein dauerhaftes Sprachdebugging und keine sensiblen Formularwerte.