Text și traduceri¶
MRBS separă vocabularul aplicației, textele specifice site-ului, paginile de ajutor și acest manual MkDocs. Alegeți nivelul potrivit, pentru ca actualizările să rămână ușor de gestionat.
| Sarcină | Locația corectă |
|---|---|
| Redenumiți o etichetă pentru o instalare | $vocab_override în config.inc.php |
| Adăugați sau îmbunătățiți o limbă a interfeței MRBS | web/lang/lang.<language> |
| Traduceți sau personalizați pagina de ajutor din aplicație | web/site_faq/site_faq_<language>.html |
| Traduceți acest manual | Un fișier cu sufix de limbă de mai jos docs/ |
Ignorați formularea pentru un site¶
Nu editați un fișier de limbă livrat doar pentru a redenumi „Sala” sau pentru a schimba titlul site-ului. Găsiți jetonul în web/lang/lang.en, apoi înlocuiți-l:
$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';
Ordinea indexului este întotdeauna limba, apoi simbolul: $vocab_override[LANG][TOKEN].
Indicatoarele utile definite de site includ:
$vocab_override['en']['room.coffee_machine'] = 'Coffee machine';
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['en']['entry.description.placeholder'] =
'Add information for the room team';
$vocab_override['en']['users.zip_code.oninvalid'] =
'Enter a valid ZIP code';
$vocab_override['en']['type.C'] = 'Customer booking';
Jetoanele cu câmp personalizat sunt descrise în Câmpuri personalizate. Descrierile tipului de rezervare folosesc type.X, unde X este codul tipului configurat.
Supraviețuirile supraviețuiesc unei actualizări deoarece trăiesc în configurația site-ului. Verificați din nou semnificația lor dacă o lansare modifică simbolul original sau contextul acestuia.
Păstrați markerii de înlocuire¶
Șirurile de limbă pot conține marcatori printf precum %s, %d sau forme poziționale precum %1$d. Păstrați fiecare marker și tipul acestuia. O traducere poate reordona argumentele numai cu forma pozițională.
De asemenea, păstrați fragmentele HTML deliberate, semantica punctuației și spațiile din jur. Testați șiruri cu numărătoare de zero, unu și multe, acolo unde este cazul.
Selectați limba de rulare¶
În mod implicit, MRBS alege o limbă din browser:
Pentru a forța o limbă:
Jetonul trebuie să se potrivească cu un fișier disponibil web/lang/lang.*. Selectarea localității pentru date și ore poate fi înlocuită separat:
$override_locale trebuie să fie acceptat și de sistemul de operare al serverului. $cli_language controlează comenzile care rulează în afara browserului. Pentru diagnosticare, $language_debug = true scrie informații despre limbă și localitate în jurnalul de erori; dezactivați-l din nou după depanare.
Adăugați sau mențineți o limbă de aplicație¶
Fișierul în limba engleză este de referință și de rezervă. Pentru a crea o limbă al cărei simbol detectat este xx:
Apoi:
- Păstrați linia de deschidere PHP și fiecare cheie
$vocab. - Traduceți valorile șirurilor, nu numele indicativelor.
- Salvați fișierul ca UTF-8.
- Nu utilizați entități HTML cu excepția
; scrie direct caractere UTF-8. - Păstrați marcajele de înlocuire și marcarea intenționată.
- Validați sintaxa PHP.
MRBS încarcă mai întâi referința în engleză și apoi limba selectată, așa că jetoanele lipsă revin la engleză.
Verificați caracterul complet¶
checklang.php compară fișierele de limbă cu lang.en. Pentru o instanță de dezvoltare, plasați-o sau păstrați-o în directorul web MRBS și deschideți:
Fără o selecție de limbă, oferă toate fișierele de limbă instalate. Funcția opțională de actualizare scrie fișiere și, prin urmare, necesită acces de scriere; evitați asta în producția și revizuirea modificărilor generate. Restricționați sau eliminați acest utilitar de dezvoltare dintr-o implementare publică când verificarea este finalizată.
Verificarea sintaxei și checklang.php prinde diferite probleme: folosiți ambele.
Traduceți pagina de ajutor din aplicație¶
Textul de ajutor nu provine de la $vocab. Se depozitează separat:
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
Selectați sufixul fără liniuță:
Valorile mai vechi, cum ar fi '_de', sunt acceptate pentru compatibilitate, dar sunt depreciate. Setarea este independentă de limba browserului, așa că testați dacă întrebările frecvente selectate se potrivesc cu publicul vizat. Modificările locale ale fișierelor FAQ livrate trebuie înregistrate și aplicate din nou sau îmbinate în timpul unei actualizări.
Traduceți acest manual¶
Site-ul web de documentație utilizează fișiere sufixe:
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
Engleza este soluția de rezervă a documentației. Aceste fișiere nu afectează interfața de utilizare a aplicației MRBS sau pagina de ajutor a acesteia.
Flux de lucru sigur pentru upgrade¶
- Puneți formulare numai pentru site în
$vocab_override. - Păstrați o listă de fișiere de limbi și întrebări frecvente întreținute la nivel local.
- Comparați un nou
lang.encu versiunea anterioară pentru jetoanele adăugate sau modificate. - Rulați
php -lpe fiecare fișier de limbă schimbat. - Rulați
checklang.phppe o instanță de dezvoltare restricționată. - Consultați separat modificările întrebărilor frecvente.
- Testați toate limbile active înainte de implementare.
Lista de verificare pentru verificare¶
- Detectarea browserului și implicit forțat selectează limba așteptată.
- Jetoanele lipsă revin la o engleză ușor de înțeles.
- Navigarea, formularele, erorile, aprobările și paginile de administrare sunt afișate corect.
%s,%dși marcatorii de poziție primesc valorile corecte.- Datele, orele, zilele lucrătoare și fusurile orare utilizează localitatea dorită.
- Subiectele și corpurile de e-mail, rapoartele, exporturile și joburile din linia de comandă folosesc limba dorită.
- Câmpurile personalizate, tipurile de rezervări, substituenții și mesajele de validare sunt traduse.
- Pagina Ajutor folosește fișierul așteptat
site_faq. - Jurnalele nu conțin depanare persistentă a limbajului sau valori de formular sensibile.