Projekty tłumaczeń#

Organizacja tłumaczeniowa#

Weblate organizes translatable VCS content of project/components into a tree-like structure. You can additionally organize components within a project using categories.

  • The bottom level object is Konfiguracja projektu, which should hold all translations belonging together (for example translation of an application in several versions and/or accompanying documentation).

  • The middle level is optionally created by Kategoria. The categories can be nested to achieve more complex structure.

  • On the level above, Konfiguracja komponentu, which is actually the component to translate, you define the VCS repository to use, and the mask of files to translate.

  • Above Konfiguracja komponentu there are individual translations, handled automatically by Weblate as translation files (which match Maska pliku defined in Konfiguracja komponentu) appear in the VCS repository.

Weblate supports a wide range of translation formats (both bilingual and monolingual ones) supported by Translate Toolkit, see Obsługiwane formaty plików.


You can share cloned VCS repositories using Wewnętrzne adresy URL Weblate. Using this feature is highly recommended when you have many components sharing the same VCS. It improves performance and decreases required disk space.

Dodawanie projektów i komponentów tłumaczeniowych#

Based on your permissions, new translation projects and components can be created. It is always permitted for users with the Add new projects permission, and if your instance uses billing (e.g. like see Rozliczenia), you can also create those based on your plans allowance from the user account that manages billing.


To grant every user permission to create new projects create new Automatic team assignments for the Project creators team.

You can view your current billing plan on a separate page:


The project creation can be initiated from there, or using the menu in the navigation bar, filling in basic info about the translation project to complete addition of it:


After creating the project, you are taken directly to the project page:


Creating a new translation component can be initiated via a single click there. The process of creating a component is multi-staged and automatically detects most translation parameters. There are several approaches to creating component:

Z kontroli wersji

Creates component from remote version control repository.

Z istniejącego komponentu

Creates additional component to existing one by choosing different files.

Dodatkowa gałąź

Creates additional component to existing one, just for different branch.

Prześlij pliki tłumaczeń

Upload translation files to Weblate in case you do not have version control or do not want to integrate it with Weblate. You can later update the content using the web interface or REST API Weblate.

Przetłumacz dokument

Prześlij pojedynczy dokument lub plik tłumaczenia i przetłumacz go.

Zaczynaj od początku

Create blank translation project and add strings manually.

Once you have existing translation components, you can also easily add new ones for additional files or branches using same repository.

First you need to fill in name and repository location:


On the next page, you are presented with a list of discovered translatable resources:


As a last step, you review the translation component info and fill in optional details:


Konfiguracja projektu#

Create a translation project and then add a new component for translation in it. The project is like a shelf, in which real translations are stacked. All components in the same project share suggestions and their dictionary; the translations are also automatically propagated through all components in a single project (unless turned off in the component configuration), see Pamięć tłumaczeniowa.

Zobacz także

Integracja z Weblate

These basic attributes set up and inform translators of a project:

Nazwa projektu#

Verbose project name, used to display the project name.

Zobacz także


Końcówka adresu URL#

Nazwa projektu odpowiednia dla adresów URL.

Strona internetowa projektu#

URL where translators can find more info about the project.

This is a required parameter unless turned off by WEBSITE_REQUIRED.

Instrukcje tłumaczenia#

Text describing localization process in the project, and any other information useful for translators. Markdown can be used for text formatting or inserting links.

Ustaw nagłówek „Zespół Tłumaczy”#

Whether Weblate should manage the Language-Team header (this is a GNU gettext PO (Portable Object) only feature right now).

Użyj wspólnej pamięci tłumaczeniowej#

Whether to use shared translation memory, see Współużytkowana pamięć tłumaczeniowa for more details.

Domyślna wartość może być zmieniona przez DEFAULT_SHARED_TM.

Przyczynia się do wspólnej pamięci tłumaczeń#

Whether to contribute to shared translation memory, see Współużytkowana pamięć tłumaczeniowa for more details.

This also affects whether the project can be used as source for Tłumaczenie automatyczne.

Domyślna wartość może być zmieniona przez DEFAULT_SHARED_TM.


This option is unavailable on Hosted Weblate, it is toggled together with Użyj wspólnej pamięci tłumaczeniowej.

Kontrola dostępu#

Configure per project access control, see Ustawienia kontroli dostępu do projektu for more details.

Domyślna wartość może być zmieniona przez DEFAULT_ACCESS_CONTROL.

Włącz przeglądy#

Enable review workflow for translations, see Dedykowani recenzenci.

Włącz przeglądy źródeł#

Enable review workflow for source strings, see Recenzje ciągów źródłowych.

Włącz hooki#

Whether unauthenticated Hooki powiadomień are to be used for this repository.

Aliasy językowe#

Define language codes mapping when importing translations into Weblate. Use this when language codes are inconsistent in your repositories and you want to get a consistent view in Weblate or in case you want to use non-standard naming of your translation files.

The typical use case might be mapping American English to English: en_US:en

Multiple mappings to be separated by comma: en_GB:en,en_US:en

Using non standard code: ia_FOO:ia


The language codes are mapped when matching the translation files and the matches are case sensitive, so ensure you use the source language codes in same form as used in the filenames.

Konfiguracja komponentu#

A component is a grouping of something for translation. You enter a VCS repository location and file mask for which files you want translated, and Weblate automatically fetches from this VCS, and finds all matching translatable files.

Zobacz także

Integracja z Weblate

You can find some examples of typical configurations in the Obsługiwane formaty plików.


It is recommended to keep translation components to a reasonable size - split the translation by anything that makes sense in your case (individual apps or add-ons, book chapters or websites).

Weblate easily handles translations with 10000s of strings, but it is harder to split work and coordinate among translators with such large translation components.

Should the language definition for a translation be missing, an empty definition is created and named as „cs_CZ (generated)”. You should adjust the definition and report this back to the Weblate authors, so that the missing languages can be included in next release.

The component contains all important parameters for working with the VCS, and for getting translations out of it:

Nazwa komponentu#

Verbose component name, used to display the component name.

Końcówka adresu URL komponentu#

Nazwa komponentu odpowiednia dla adresów URL.

Projekt komponentu#

Konfiguracja projektu, do którego należy komponent.

System kontroli wersji#

VCS to use, see Integracja kontroli wersji for details.

Repozytorium kodu źródłowego#

VCS repository used to pull changes.

Zobacz także

See Dostęp do repozytoriów for more details on specifying URLs.


This can either be a real VCS URL or weblate://project/component indicating that the repository should be shared with another component. See Wewnętrzne adresy URL Weblate for more details.

URL repozytorium dla push#

Repository URL used for pushing. The behavior of this depends on System kontroli wersji, and this is in more detail covered in Wypychanie zmian z Weblate.

For linked repositories, this is not used and setting from linked component applies.

Zobacz także

See Dostęp do repozytoriów for more details on how to specify a repository URL and Wypychanie zmian z Weblate for more details on pushing changes from Weblate.

Przeglądarka repozytorium#

URL of repository browser used to display source files (location of used messages). When empty, no such links will be generated. You can use Znaczniki szablonu.

For example on GitHub, use something like:{{branch}}/{{filename}}#L{{line}}

In case your paths are relative to different folder (path contains ..), you might want to strip leading directory by parentdir filter (see Znaczniki szablonu):{{branch}}/{{filename|parentdir}}#L{{line}}

URL repozytorium eksportu#

URL where changes made by Weblate are exported. This is important when Ciągła lokalizacja is not used, or when there is a need to manually merge changes. You can use Eksporter Git to automate this for Git repositories.

Gałąź repozytorium#

Which branch to checkout from the VCS, and where to look for translations.

For linked repositories, this is not used and setting from linked component applies.

Wypchnij gałąź#

Branch for pushing changes, leave empty to use Gałąź repozytorium.

For linked repositories, this is not used and setting from linked component applies.


This is currently only supported for Git, GitLab and GitHub, it is ignored for other VCS integrations.

Maska pliku#

Mask of files to translate, including path. It should include one „*” replacing language code (see Definicje języków for info on how this is processed). In case your repository contains more than one translation file (e.g. more gettext domains), you need to create a component for each of them.

Na przykład po/*.po lub locale/*/LC_MESSAGES/django.po.

In case your filename contains special characters such as [, ], these need to be escaped as [[] or []].

Maska pliku zrzutu ekranu#

This feature allows the discovery and updating of screenshots through screenshot file masks, using paths from the VCS repository. This operates at the component level and necessitates the use of an asterisk „*” to replace the screenshot file name.

Allowed formats are WebP, JPEG, PNG, APNG and GIF.


  1. The file mask and screenshot file mask are not related. Configure them separately.

  2. It is a manual job to link a discovered screenshot in a component to a specific translation key.

Na przykład:

Let’s assume your VCS repository has a structure like this:

└── docs
    ├── image1.png
    └── image2.jpg

For component_A, you want to allow discovery and updates of PNG screenshots. You’d set the screenshot file mask for component_A as component_A/docs/*.png. This means any PNG images under docs in component_A can be discovered and updated. So, if you want to update image1.png, the new screenshot you provide should be named image1.png, matching the existing filename, and stored under component_A/docs/.

Jednojęzyczny bazowy plik języka#

Base file containing string definitions for Komponenty jednojęzyczne.

Edytuj plik bazowy#

Whether to allow editing strings in the Jednojęzyczny bazowy plik języka.

Plik języka pośredniego#

Intermediate language file for Komponenty jednojęzyczne. In most cases this is a translation file provided by developers and is used when creating actual source strings.

When set, the source strings are based on this file, but all other languages are based on Jednojęzyczny bazowy plik języka. In case the string is not translated into the source language, translating to other languages is prohibited. This provides Quality gateway for the source strings.

Szablon dla nowych tłumaczeń#

Base file used to generate new translations.

  • Keep this field empty for most of the monoligual formats. Those are typically able to start from an empty file.

  • Choose .pot file with GNU gettext PO files.

  • Choose blank file without translations, if you have one.

  • Choose Jednojęzyczny bazowy plik języka for monolingual formats that need a full set of keys present.

  • Choose Jednojęzyczny bazowy plik języka for document translations.

  • Choose any translation file for others.

  • Template file can be the same as the base file in most cases.


In many monolingual formats Weblate starts with empty file by default. Use this in case you want to have all strings present with empty value when creating new translation.

Format pliku#

Translation file format, see also Obsługiwane formaty plików.

Adres do zgłaszania błędów łańcucha źródłowego#

Email address used for reporting upstream bugs. This address will also receive notification about any source string comments made in Weblate.

With the GNU gettext PO (Portable Object) format, this address is also saved by Weblate in the Report-Msgid-Bugs-To header of the file.

Zezwól na propagację tłumaczenia#

You can turn off propagation of translations to this component from other components within same project. This really depends on what you are translating, sometimes it’s desirable to have make use of a translation more than once.

It’s usually a good idea to turn this off for monolingual translations, unless you are using the same IDs across the whole project.

Default value can be changed by DEFAULT_TRANSLATION_PROPAGATION.

Włącz sugestie#

Whether translation suggestions are accepted for this component.

Głosowanie na sugestie#

Turns on vote casting for suggestions, see Głosowanie na sugestie.

Automatycznie akceptuj sugestie#

Automatically accept voted suggestions, see Głosowanie na sugestie.

Flagi tłumaczeń#

Customization of quality checks and other Weblate behavior, see Dostosowywanie zachowania za pomocą flag.

Wymuszone kontrole#

List of checks which can not be ignored, see Wymuszanie kontroli.


Enforcing the check does not automatically enable it, you still should enabled it using Dostosowywanie zachowania za pomocą flag in Flagi tłumaczeń or Dodatkowe informacje o ciągach źródłowych.

Licencja tłumaczenia#

License of the translation (does not need to be the same as the source code license).

Zgoda współpracownika#

Zgoda użytkownika, która musi zostać zatwierdzona, zanim użytkownik będzie mógł przetłumaczyć ten komponent.

Dodawanie nowego tłumaczenia#

How to handle requests for creation of new languages. Available options:

Skontaktuj się z opiekunami

User can select desired language and the project maintainers will receive a notification about this. It is up to them to add (or not) the language to the repository.

Wskaż adres URL instrukcji tłumaczenia

User is presented a link to page which describes process of starting new translations. Use this in case more formal process is desired (for example forming a team of people before starting actual translation).

Utwórz nowy plik językowy

User can select language and Weblate automatically creates the file for it and translation can begin.

Wyłącz dodawanie nowych tłumaczeń

There will be no option for user to start new translation.


The project admins can add new translations even if it is disabled here when it is possible (either Szablon dla nowych tłumaczeń or the file format supports starting from an empty file).

Zarządzaj ciągami#

Nowe w wersji 4.5.

Configures whether users in Weblate will be allowed to add new strings and remove existing ones. Adjust this to match your localization workflow - how the new strings are supposed to be introduced.

For bilingual formats, the strings are typically extracted from the source code (for example by using xgettext) and adding new strings in Weblate should be disabled (they would be discarded next time you update the translation files). In Weblate you can manage strings for every translation and it does not enforce the strings in all translations to be consistent.

For monolingual formats, the strings are managed only on source language and are automatically added or removed in the translations. The strings appear in the translation files once they are translated.


You might want to turn on Edytuj plik bazowy together with Manage strings for monolingual formats.

Styl kodu języka#

Dostosuj kod języka używany do generowania nazwy pliku dla tłumaczeń utworzonych przez Weblate.


Weblate recognizes any of the language codes when parsing translation files, following settings only influences how new files are created.

Domyślnie na podstawie formatu pliku

Dependent on file format, for most of them POSIX is used.

Styl POSIX z podkreśleniem jako separatorem

Typically used by gettext and related tools, produces language codes like pt_BR.

Styl POSIX z podkreśleniem jako separatorem, wraz z kodem kraju

POSIX style language code including the country code even when not necessary (for example cs_CZ).

Styl POSIX z podkreśleniem jako separatorem, wraz z kodem kraju (małe litery)

POSIX style language code including the country code even when not necessary (lowercase) (for example cs_cz).

Styl BCP za pomocą łącznika jako separatora

Typically used on web platforms, produces language codes like pt-BR.

Styl BCP za pomocą łącznika jako separatora, wraz z kodem kraju

BCP style language code including the country code even when not necessary (for example cs-CZ).

Styl BCP używający łącznika jako separatora i starszych kodów języków

Uses legacy codes for Chinese and BCP style notation.

Styl BCP używający łącznika jako separatora i małych liter

BCP style notation, all in lower case (for example cs-cz).

Styl metadanych Apple App Store

Style suitable for uploading metadata to Apple App Store.

Styl metadanych Google Play

Style suitable for uploading metadata to Google Play Store.

Styl Android

Only used in Android apps, produces language codes like pt-rBR.

Styl Linuksa

Locales as used by Linux, uses legacy codes for Chinese and POSIX style notation.

Styl scalania#

You can configure how updates from the upstream repository are handled. The actual implementation depends on VCS, see Integracja kontroli wersji.


Rebases Weblate commits on top of upstream repository on update. This provides clean history without extra merge commits.

Rebasing can cause you trouble in case of complicated merges, so carefully consider whether or not you want to enable them.

You might need to enable force pushing by choosing Git z wymuszonym wypchnięciem as System kontroli wersji, especially when pushing to a different branch.


Upstream repository changes are merged into Weblate one. This setting utilizes fast-forward when possible. This is the safest way, but might produce a lot of merge commits.

Scal bez przewijania do przodu

Upstream repository changes are merged into Weblate one with doing a merge commit every time (even when fast-forward would be possible). Every Weblate change will appear as a merge commit in Weblate repository.

Default value can be changed by DEFAULT_MERGE_STYLE.

Opisy commitów, dodawania tłumaczenia, scalania, dodatków i merge requestów#

Message used when committing a translation, see Znaczniki szablonu.


Przesyłaj przy commitowaniu#

Whether committed changes should be automatically pushed to the upstream repository. When enabled, the push is initiated once Weblate commits changes to its underlying repository (see Leniwe zatwierdzenia). To actually enable pushing Repository push URL has to be configured as well.

Wiek zmian do scommitowania#

Sets how old (in hours) changes have to be before they are committed by background task or the commit_pending management command. All changes in a component are committed once there is at least one change older than this period.

Default value can be changed by COMMIT_PENDING_HOURS.


There are other situations where pending changes might be committed, see Leniwe zatwierdzenia.

Błąd blokowania#

Locks the component (and linked components, see Wewnętrzne adresy URL Weblate) upon the first failed push or merge into its upstream repository, or pull from it. This avoids adding another conflicts, which would have to be resolved manually.

The component will be automatically unlocked once there are no repository errors left.

Język źródłowy#

Language used for source strings. Change this if you are translating from something else than English.


In case you are translating bilingual files from English, but want to be able to do fixes in the English translation as well, choose English (Developer) as a source language to avoid conflict between the name of the source language and the existing translation.

For monolingual translations, you can use intermediate translation in this case, see Plik języka pośredniego.

Filtr języka#

Wyrażenie regularne używane do filtrowania tłumaczeń podczas skanowania w poszukiwaniu maski pliku. Może być wykorzystane do ograniczenia listy języków zarządzanych przez Weblate.


You need to list language codes as they appear in the filename.

Kilka przykładów filtrowania:

Opis filtru

Wyrażenie regularne

Tylko wybrane języki


Wykluczanie języków


Filter two letter codes only


Wyklucz pliki niejęzykowe


Uwzględnij wszystkie pliki (domyślnie)


Warianty wyrażenia regularnego#

Regular expression used to determine the variants of a string, see Warianty ciągów.


Most of the fields can be edited by project owners or administrators, in the Weblate interface.


Komponenty o wyższym priorytecie są oferowane tłumaczom w pierwszej kolejności.

Zmienione w wersji 4.15: This now also affects ordering of matched glossary terms.

Ograniczony dostęp#


Ta funkcja jest niedostępna w Hosted Weblate.

By default the component is visible to anybody who has access to the project, even if the person can not perform any changes in the component. This makes it easier to keep translation consistency within the project.

Restricting access at a component, or component-list level takes over access permission to a component, regardless of project-level permissions. You will have to grant access to it explicitly. This can be done through granting access to a new user group and putting users in it, or using the default custom or private access control groups.

The default value can be changed in DEFAULT_RESTRICTED_COMPONENT.


This applies to project admins as well — please ensure you will not loose access to the component after toggling the status.

Udostępniony w projektach#

You can choose additional projects where the component will be visible. Useful for shared libraries which you use in several projects.


Sharing a component doesn’t change its access control. It only makes it visible when browsing other projects. Users still need access to the actual component to browse or translate it.

Użyj jako słownika#

Nowe w wersji 4.5.

Umożliwia używanie tego komponentu jako słownika. Możesz skonfigurować sposób wyświetlania za pomocą Kolor słownika.

The glossary will be accessible in all projects defined by Udostępniony w projektach.

It is recommended to enable Zarządzaj ciągami on glossaries in order to allow adding new words to them.

Zobacz także


Kolor słownika#

Display color for a glossary used when showing word matches.


Categories are there to give structure to components within a project. You can nest them to achieve a more complex structure.

Znaczniki szablonu#

Weblate uses simple markup language in several places where text rendering is needed. It is based on The Django template language, so it can be quite powerful.

Obecnie jest stosowany w:

There following variables are available in the component templates:

{{ language_code }}

Kod języka

{{ language_name }}

Nazwa języka

{{ component_name }}

Nazwa komponentu

{{ component_slug }}

Końcówka adresu URL komponentu

{{ project_name }}

Nazwa projektu

{{ project_slug }}

Końcówka adresu URL projektu

{{ url }}

Adres URL tłumaczenia

{{ filename }}

Nazwa pliku tłumaczenia

{{ stats }}

Translation stats, this has further attributes, examples below.

{{ stats.all }}

Całkowita liczba ciągów

{{ stats.fuzzy }}

Liczba ciągów wymagających przeglądu

{{ stats.fuzzy_percent }}

Procent ciągów wymagających przeglądu

{{ stats.translated }}

Liczba przetłumaczonych ciągów

{{ stats.translated_percent }}

Procent przetłumaczonych ciągów

{{ stats.allchecks }}

Number of strings with failing checks

{{ stats.allchecks_percent }}

Percent of strings with failing checks

{{ author }}

Author of current commit, available only in the commit scope.

{{ addon_name }}

Name of currently executed add-on, available only in the add-on commit message.

The following variables are available in the repository browser or editor templates:


bieżąca gałąź


wiersz w pliku


filename, you can also strip leading parts using the parentdir filter, for example {{filename|parentdir}}


In some places additional variables can be available, see Wykrycie komponentów.

You can combine them with filters:

{{ component|title }}

Możesz użyć warunków:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

There is additional tag available for replacing characters:

{% replace component "-" " " %}

You can combine it with filters:

{% replace component|capfirst "-" " " %}

There are also additional filter to manipulate with filenames:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times:  {{ filename|parentdir|parentdir }}

… i inne funkcje szablonu Django.

Prędkość importowania#

Fetching VCS repository and importing translations to Weblate can be a lengthy process, depending on size of your translations. Here are some tips:

Optymalizacja konfiguracji#

The default configuration is useful for testing and debugging Weblate, while for a production setup, you should do some adjustments. Many of them have quite a big impact on performance. Please check Instalacja produkcyjna for more details, especially:

Sprawdzanie limitów zasobów#

If you are importing huge translations or repositories, you might be hit by resource limitations of your server.

  • Check the amount of free memory, having translation files cached by the operating system will greatly improve performance.

  • Disk operations might be bottleneck if there is a lot of strings to process—the disk is pushed by both Weblate and the database.

  • Additional CPU cores might help improve performance of background tasks (see Zadania w tle korzystające z Celery).

Wyłączenie niepotrzebnych kontroli#

Some quality checks can be quite expensive, and if not needed, can save you some time during import if omitted. See CHECK_LIST for info on configuration.

Automatyczne tworzenie komponentów#

In case your project has dozen of translation files (e.g. for different gettext domains, or parts of Android apps), you might want to import them automatically. This can either be achieved from the command-line by using import_project or import_json, or by installing the Wykrycie komponentów add-on.

To use the add-on, you first need to create a component for one translation file (choose the one that is the least likely to be renamed or removed in future), and install the add-on on this component.

For the management commands, you need to create a project which will contain all components and then run import_project or import_json.