Difference between revisions of "Weblate"

From GnuCash
Jump to: navigation, search
(Workflow: Weblate does not recognize closed (rejected) PRs)
Line 119: Line 119:
 
#* better follow the component specific process in [[Language_Administration#Components]],
 
#* better follow the component specific process in [[Language_Administration#Components]],
 
# '''merge''' the PRs via {{BuildServer}};
 
# '''merge''' the PRs via {{BuildServer}};
 +
#;Note: Weblate does not recognize closed (rejected) PRs and will create a new PR with the same stupid commit.
 +
#:;Current workaround: In the case all changes of a commit are wrong, commit and revert the commit.
 +
#::If only some are wrong, search them in weblate, add a comment and perhaps a flag.
 
# (Same condition like 1) '''rebase''' weblate. Now all lines should show 0.
 
# (Same condition like 1) '''rebase''' weblate. Now all lines should show 0.
  
 
==References==
 
==References==
 
<References />
 
<References />

Revision as of 08:20, 16 February 2021

Weblate is a web based translation tool. On 2020-12-14 https://hosted.weblate.org/projects/gnucash/ was created.

Status
consider it still as experimental.

This page is organized by roles.

General

Many pages @ weblate link context sensitive help by i in a circle.

Weblate Documentation

Setup

WebLate Component GitHub Repository:location Notes
Glossary gnucash:po/glossary linked project, part of Program
Program gnucash:po
Website gnucash-htdocs:po
Glossary
It tries to collect the common GnuCash specific terminology of all other components.
After it is completed, it can be uploaded into Weblates Gnucash glossary.
Currently it is using and ancient style of context "context: term" as MsgId.
Questions and tasks
  1. Should MsgId "context: term" be converted to MsgContext, MsgId? Pros and cons?
  2. Review of sources for updated lists
  3. Other missing conventions?
Website
Set priority[1] (default=100) to
105 for location:global
104 for location:header
103 for location:menu
102 for location:footer
101 for location:index
100 (remains)
99 for location:2.6-release as the page is currently not linked, but should be merged into features.

Translator

Everybody
can add suggestions as anomymous.
Everybody with a weblate account
can translate and gets mentioned in the po file. In the current configuration a review is required.
Our former language maintainers
are asked to tell us their weblate name, to get Review rights.

Ideally no checks should fail. In some cases, the mistake is in the source string. Then please report them by a comment or label.

Coder

With weblate you get feedback, where Translators have problems with your messages. Overview Program Source Messages Tasks by priority:

  1. label:"Source needs review"
  2. Multiple failing checks This is usually an indication that something could be done to improve the source string. Info
Tip
In both cases at the bottom select
  1. Comments,
  2. Other languages
to get an impression of the problem.

Maintainer

Concept

Weblate is more anarchistic than our hierarchical thinking with core devs accepting or rejecting patches:

Project settings
Some are derived from our status as libre hosted project.
https://hosted.weblate.org/settings/gnucash/#access is set public meaning:
  • visible for all,
  • every registered user can translate,
  • unregistered can attach suggestions.
To avoid chaos in https://hosted.weblate.org/settings/gnucash/#workflow
  • Review is activated, ideally a Gnucash Language :Team should have at least 2 reviewers (and unlimited users), confirming each others changes.
Component settings
Suggestions are enabled, but Suggestion voting and Autoaccept suggestions are currently not.
Lazy commits
The changes in this mode are committed once any of the following conditions are fulfilled:
  • Somebody else changes an already changed string.
  • A merge from upstream occurs.
  • An explicit commit is requested.
  • Change is older than period defined as Age of changes to commit on Component configuration.
Weblate PRs
Welblate collects all commits for the same component in one pull request.
One commit colletcs all changes by the same author.
(verify: concurrent changes by different authors on the same message/file/component).
A new PR is created, after the old got merged.

Workflow

If Pushs (of Pull Requests)[2] are disabled, you can get the current status of commits at https://hosted.weblate.org/projects/gnucash/#repository or do it separate for real components.

Tip
Set URL=https://hosted.weblate.org/git/gnucash/gnucash/ # for gnucash (program and glossary) or
URL=https://hosted.weblate.org/git/gnucash/website/ # for ht-docs, then
git remote add weblate $URL
to your repo. Then you can preview pending commits by:
git fetch weblate

If there are pending commits

  1. Only required, if GitHub Settings->Hooks are misconfigured: rebase the weblate repo(s):
    you need to zoom the window to see the buttons;
    Reason: merge conflicts would lock the repository;
  2. Only required, if Push on commit[2] is disabled: push, to create PRs;
  3. review the PR
    • at github
    The github committer is the weblate bot – he will not dicuss with you.
    • Some translators have a github account, too. Then you can ping them with @<github_name_of_the_translator>
    • In all other cases it is better to comment on the changes at weblate:
    1. Open the file in weblate,
    2. Search the message,
    3. set the status to "needs editing[?]", which results in the fuzzy flag in the po file,
    4. Add a comment for target group other translators. Unfortunately they are not stored in the po file.
  4. merge the PRs via code.gnucash.org;
    Note
    Weblate does not recognize closed (rejected) PRs and will create a new PR with the same stupid commit.
    Current workaround
    In the case all changes of a commit are wrong, commit and revert the commit.
    If only some are wrong, search them in weblate, add a comment and perhaps a flag.
  5. (Same condition like 1) rebase weblate. Now all lines should show 0.

References

  1. https://hosted.weblate.org/projects/gnucash/website/#bulk-edit search: "location:index", add flag: "priority:101" …
  2. 2.0 2.1 The first commit create a Pull Request at Github.
    On each further commit the PR is force pushed.
    Also after each change in the github repos, the PR gets rebased and force pushed.
    After the PR is merged (or otherwise closed?), the whole procedure starts again.
    That means you will have to rebase your interim work on the repo.