Integrarea cu Weblate#

Bazele Weblate#

Structura proiectului și a componentelor#

În Weblate, traducerile sunt organizate în proiecte și componente. Fiecare proiect poate conține un număr de componente, iar acestea conțin traduceri în limbi individuale. Componenta corespunde unui fișier traductibil (de exemplu GNU gettext sau Resurse de șiruri Android). Proiectele au rolul de a vă ajuta să organizați componentele în seturi logice (de exemplu, pentru a grupa toate traducerile utilizate în cadrul unei aplicații).

La nivel intern, fiecare proiect are în mod implicit traduceri ale șirurilor de caractere comune propagate în alte componente din cadrul acestuia. Acest lucru ușurează povara traducerilor repetitive și în mai multe versiuni. Propagarea traducerilor poate fi dezactivată pentru fiecare Configurația componentei folosind Permiteți propagarea traducerii în cazul în care traducerile ar trebui să fie divergente.

Importarea proiectului de localizare în Weblate#

Weblate a fost dezvoltat cu integrarea VCS în minte ca o caracteristică de bază, astfel încât cea mai simplă cale este de a acorda Weblate acces la depozitul dumneavoastră. Procesul de import vă va ghida prin configurarea traducerilor dvs. în componente.

Alternativ, puteți utiliza Weblate pentru a configura un depozit local care să conțină toate traducerile fără integrare.

Preluarea traducerilor actualizate din Weblate#

Weblate stores updated strings in a database and commits them to a local version control repository. You can add Weblate repository (when Exportator Git is turned on) as additional remote and fetch translations update from it.

Prior to this, you might want to commit any pending changes (see Angajări leneșe). You can do so in the user interface (in the Repository maintenance) or from the command-line using Client Weblate.

Pushing changes can be automated if you grant Weblate push access to your repository and configure URL de împingere a depozitului in the Configurația componentei, see Împingerea modificărilor din Weblate.

Alternativ, puteți utiliza Weblate’s REST API pentru a actualiza traducerile pentru a corespunde celei mai recente versiuni.

Preluarea modificărilor de la distanță în Weblate#

Pentru a prelua în Weblate șirurile de caractere nou actualizate în depozitul dvs., lăsați-l să extragă din depozitul din amonte. Acest lucru poate fi realizat în interfața cu utilizatorul (în Repository maintenance) sau din linia de comandă folosind Client Weblate.

Acest lucru poate fi automatizat prin setarea unui webhook în depozitul vostru pentru a declanșa Weblate ori de câte ori există o nouă confirmare, consultați Actualizarea depozitelor pentru mai multe detalii.

Dacă nu folosiți o integrare VCS, puteți utiliza UI sau Weblate’s REST API pentru a actualiza traducerile pentru a se potrivi cu baza de cod.

Adăugarea de noi șiruri de caractere#

În cazul în care fișierele de traducere sunt stocate într-un VCS împreună cu codul, cel mai probabil aveți un flux de lucru existent pentru ca dezvoltatorii să introducă noi șiruri de caractere. Orice modalitate de adăugare a șirurilor de caractere va fi preluată, dar luați în considerare utilizarea Poartă de calitate pentru șirurile sursă pentru a evita introducerea de erori.

Atunci când fișierele de traducere sunt separate de cod, există următoarele modalități de a introduce noi șiruri de caractere în Weblate.

  • Manual, utilizând Adaugați un nou șir de traducere din meniul Instrumente în limba sursă.

  • Programatic, utilizând API POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • Prin încărcarea fișierului sursă ca Înlocuiți fișierul de traducere existent (acest lucru suprascrie șirurile existente, așa că asigurați-vă că fișierul include atât șirurile vechi, cât și cele noi) sau Adaugați șiruri noi, consultați metoda de încărcare.

Notă

Disponibilitatea de a adăuga șiruri de caractere în Weblate depinde de Gestionați șirurile de caractere.

Actualizarea fișierelor de limbă țintă#

În cazul fișierelor monolingve (a se vedea Formate de fișiere acceptate), Weblate ar putea adăuga noi șiruri de traduceri care nu sunt prezente în Fișier de limbă de bază monolingvă și nici în traducerile actuale. Cu toate acestea, nu efectuează nicio curățare automată a șirurilor de caractere vechi, deoarece aceasta ar putea avea rezultate neașteptate. Dacă doriți să faceți acest lucru, vă rugăm să instalați add-on-ul Curățați fișierele de traducere care se va ocupa de curățare în funcție de cerințele dumneavoastră.

De asemenea, Weblate nu va încerca în niciun fel să actualizeze fișierele bilingve, astfel încât, dacă aveți nevoie ca fișierele po să fie actualizate din pot, trebuie să o faceți dumneavoastră folosind Update source strings Metode de import sau folosind add-onul Actualizarea fișierelor PO pentru a se potrivi cu POT (msgmerge).

Introducing new strings#

You can add new strings in Weblate with Gestionați șirurile de caractere turned on, but it is usually better to introduce new strings together with the code changes that introduced them.

Monolingual formats need addition of the new string to Fișier de limbă de bază monolingvă. This is typically done by the developers during developing the code. You might want to introduce review of those strings using Poartă de calitate pentru șirurile sursă.

Bilingual formats typically extract strings from the source code using some tooling. Follow your localization framework documentation for instructions how to do that. Once the strings are extracted, there might be an additional step needed to update existing translations, see Actualizarea fișierelor de limbă țintă.

Sugestie

You might want to integrate this into your continuous integration pipelines to make new strings automatically appear for translation. Such pipeline should also cover Evitarea conflictelor de fuziune.

Gestionarea depozitului de control al versiunilor#

Weblate stochează toate traducerile în depozitul de control al versiunilor. Acesta poate fi fie conectat la unul în amonte, fie poate fi doar intern. Funcția Repository maintenance vă permite să manipulați depozitul.

Sugestie

Cu Traducere continuă, depozitul este împins automat ori de câte ori există modificări și, de obicei, nu este nevoie să se manipuleze manual cu el.

../_images/component-repository.webp