taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 402fc332ae8fbfe0de3d1b6c6b7f825905936c38
parent e10aab4349cd6a41f076635d58d039890911e042
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Tue,  5 May 2026 13:56:05 -0300

i18n update

Diffstat:
Mdeveloper/taler-developer-manual.rst | 182++-----------------------------------------------------------------------------
1 file changed, 3 insertions(+), 179 deletions(-)

diff --git a/developer/taler-developer-manual.rst b/developer/taler-developer-manual.rst @@ -892,185 +892,9 @@ only reserved to "admin" users. Internationalisation ==================== -Internationalisation (a.k.a "translation") is handled with Weblate (https://weblate.org) via our instance at https://weblate.taler.net/ organised as so-called *strings* in a bunch of Git repositories. - -Who can register ----------------- - -At this time, anyone can register an account at https://weblate.taler.net/ to create translations. Registered users default to the **Users** and **Viewers** privilege levels. - -About privilege levels ----------------------- - -This is the breakdown of privilege levels in Weblate: - -* **Viewers** = Have access to translations and can view them but are not entitled to translate - -* **Users** = Can log in and perform translations (*applies to new users*) - -* **Reviewers** = Can contribute translations to existing *components* and review translations - -* **Managers** = Can create new *components* of existing *projects* - -* **Superusers** = Can create new *projects*, moreover they manage Weblate's settings and repository maintenance, can edit all user accounts, deactivate users, trigger commits from Weblate's local repositories with pushes to Git and perform backups of language files - -How to contribute with your translation ---------------------------------------- - -1 - Log into https://weblate.taler.net - -2 - Navigate to *Projects* and *Browse all projects* - -3 - Choose the *project* you wish to contribute to - -4 - Choose the *component* you wish to contribute to - -5 - Find the language you want to translate into - -6 - Find a phrase and translate it - -7 - While translating, take into consideration at each string to translate - -* the comments - -* the context - -* the string location in the source code - -* the "nearby strings" in Weblate as one of the sorting options on the translation form - -* "other languages" as another sorting option to compare strings in a way translatologists would do - -* if applicable, the history of string changes and the message ID or key of a string - -8 - **Always test your translations in the actual apps** after they have been pushed by the platform to the apps - -9 - Be aware of ambiguities and immediately **report inconsistencies or bugs** by using Mantis bug tickets - -10 - If you want to contribute your translation in a language which does not yet exist in a Taler component, navigate to the *component* you want to translate for and click "Start new translation" to begin. In case you require a privilege upgrade, please contact a *Superuser* with your request. Currently, *Superusers* are Christian, Florian, Martin, and Stefan. - -Translation standards and practices ------------------------------------ - -1 - *Developers*, Weblate *reviewers* and *managers* MUST look into **design documents** for the specific component or software project, like e.g. for the Taler wallets DD53 https://docs.taler.net/design-documents/053-wallet-ui.html and stick close to the documentation, especially the **text to use** and **text to avoid** - -2 - To every ambiguous string *developers* MUST add **context** or **comments** to the strings on Weblate - -3 - *Developers*, Weblate *reviewers* and *managers* SHOULD add **screenshots** where needed to the strings on Weblate - -4 - Weblate *managers* MUST take care of **checks** in the translations overview and keep the repositories consistent and up-to-date, t.i. to perform regularly **synchronisation** between Git and Weblate repositories and vice-versa - -5 - *Weblate admins* MUST set the **commit and push rules** to *manual* only, and when asked, set the license to *GPLv3 or later* - -6 - You MAY also wish to refer to https://docs.weblate.org/ and to the ``README files`` in components like web pages to find out more specific variables if prompted - -How to create a project ------------------------ - -The *GNU Taler* project is probably the correct project for most Weblate components and Taler-related translations. Please contact a *Superuser* if you need another project created. - -How to create a component -------------------------- - -Reference: https://docs.weblate.org/en/weblate-5.13.2/admin/projects.html#component-configuration - -In Weblate, a *component* is a subset of a *project* and each component contains N translations. A component is generally associated with a Git repository. - -To create a component, log into https://weblate.taler.net/ with your credentials for a *Manager* privilege level (or higher) and choose **+ Add** from the upper-right corner. - -What follows is a sort of Wizard. You can find detailed docs at https://docs.weblate.org/. Here are some important notes about connecting your component to the Taler Git repository: - -On the component level, choose *Operations* from the menu bar, select *Settings*, then add at the tab *Basic* these settings: - -* **Component name** - The distinctive name of the software project, e.g. ``Main web site`` - -* **Translation license** - Choose *GNU Affero General Public License v3.0 or Later* - -* **Contributor license agreement** - left empty as the *Translation license* defaults - -* **Source string bug reporting address** - This requires an email address of the Weblate admin or *Superuser* in charge or just ``languages@taler.net`` - -* **Priority** - Generally ``Medium`` - -* **Restricted component** - ``deactivated`` - -* **Share in projects** - ``deactivated`` - -* **Use as a glossary** - ``deactivated`` - -At the tab *Translation* settings are generally: - -* **Turn on suggestions** - ``activated`` - -* **Allow translation propagation** - ``activated`` - -* **Contribute to project translation memory** - ``activated`` - -* **Secondary language** - Leave empty (respectively ``--------`` ) - -At the tab *Version control* ( *https://weblate.taler.net/create/component/vcs/* ) settings require variables as follows: - -* **Version Control System** - Generally ``Git`` - -* **Source code repository** - Generally ``git+ssh://git@git.taler.net/<repositoryname>.git``, check with ``git remote -v`` - -* **Repository branch** - Choose the correct branch to draw from and commit to which is generally ``master`` - -* **Repository push URL** - Generally ``git+ssh://git@git.taler.net/<repositoryname>.git``, check with ``git remote -v`` - -* **Push branch** - Choose the correct branch to push to, this is generally ``master`` - -* **Repository browser** - Normally, this field is left empty. If you are required to have this field pointing to the www URL of the Git repo's file browser, it could be filled with ``https://git.taler.net/<repositoryname>.git/tree/{{filename}}?h={{branch}}#n{{line}}`` where ``<repositoryname>`` gets replaced but ``{{filename}}`` and other items in braces are actual variables in the string - -* **Push on commit** - ``deactivated`` - -* **Age of changes to commit** - 24 (hours after which any pending changes will be committed to the VCS) - -* **Merge style** - Generally ``Rebase``, in line with GNU Taler development procedures - -* **Lock on error** - ``activated`` - -At the tab *Commit messages* you can leave the defaults: - -* **Commit message when translating** has the most important message: - - Translated using Weblate ({{ language_name }}) - Currently translated at {{ stats.translated_percent }}% ({{ stats.translated }} of {{ stats.all }} strings) - Translation: {{ project_name }}/{{ component_name }} - Translate-URL: {{ url }} - -At the tab *Files* - -* **File format** - Mostly ``gettext PO file`` for web pages, ``Android String Resource`` for Android app strings, ``XLIFF 1.2 translation file`` for iOS apps, or ``TermBase eXchange file`` for some of the glossaries - -* **Language filter** - Dependent on the respective folder structure of the project, for structures used with gettext PO files mostly ``locale/*/LC_MESSAGES/messages.po`` - -* **Language filter** - Generally ``^[^.]+$`` - -* **Source language** - ``English`` - -* **Monolingual translations / Monolingual base language file** - Leave empty - -* **Edit base file** - ``deactivated`` - -* **Intermediate language file** - Leave empty - -* **Template for new translations** - Dependent on the respective folder structure of the project, for structures used with gettext PO files ``locale/messages.pot`` - -* **Adding new translation** - Generally ``Create new language file`` - -* **Language code style** - Generally ``Default based on the file format`` - -* **Screenshot file mask** - Leave empty (unless we do not dispose of a dedicated screenshot folder with a path relative to repository root) - -GPG signing of translations ---------------------------- - -Weblate signs its GPG commits with the GPG key CD33CE35801462FA5EB0B695F2664BF474BFE502, and the corresponding public key can be found at https://weblate.taler.net/keys/. - -This means that contributions made through Weblate will not be signed with the individual contributor's key when they are checked into the Git repository but with Weblate's public key. - - +Internationalisation (a.k.a "translation") is handled with using text-based +localization files named PO (Portable Object) holding pairs of original and +translated strings. iOS Apps ========