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 PO (Portable Object) 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).

Additionally, components within projects can be structured using categories. Components can belong to a category, and categories can be nested.

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 propagarea traducerii în cazul în care traducerile ar trebui să fie divergente.

Repository integration

Weblate is built to integrate with upstream version control repository, Traducere continuă describes building blocks and how the changes flow between them.

Vezi și

Architecture overview describes how Weblate works internally.

User attribution

Weblate keeps the translations properly authored by translators in the version control repository by using name and e-mail. Having a real e-mail attached to the commit follows the distributed version control spirits and allows services like GitHub to associate your contributions done in Weblate with your GitHub profile.

This feature also brings in risk of misusing e-mail published in the version control commits. Moreover, once such a commit is published on public hosting (such as GitHub), there is effectively no way to redact it. Weblate allows choosing a private commit e-mail in Cont to avoid this.

Therefore, admins should consider this while configuring Weblate:

  • Such a usage of e-mail should be clearly described in service terms in case such document is needed. Legal can help with that.

  • PRIVATE_COMMIT_EMAIL_OPT_IN can make e-mails private by default.

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 încărcare depozitar 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

If your translation files are stored in a remote VCS together with the code, you most likely have an existing workflow for developers to introduce new strings. Any way of adding strings will be picked up, but consider using Poartă de calitate pentru șirurile sursă to avoid introducing errors.

When translation files are separated from the code, the following ways can introduce new strings into 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ă

The ability to add strings in Weblate requires Gestionează șiruri.

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ăță 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 Actualizare fișiere PO pentru a se potrivi cu POT (msgmerge).

Introducing new strings

You can add new strings in Weblate with Gestionează șiruri 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 (like xgettext or intltool-update). 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

Automating string extraction is presently out of scope for Weblate. It typically involves executing untrusted code what makes it more suitable for a generic continuous integration than localization-specific platform.

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