Component Approved Translated Unreviewed Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
Whisperfish application AGPL-3.0-or-later 12% 64% 6,763 4,729 25,027 152,058 4,400 82 59 26
Glossary Whisperfish AGPL-3.0-or-later 21% 67% 57 40 40 290 39 2 0 0

Summary

Project website gitlab.com/whisperfish/whisperfish
Instructions for translators

Whisperfish exists in a few languages already. The contributor list at https://gitlab.com/whisperfish/whisperfish/-/blob/main/qml/pages/About.qml is automatically updated. I'm very grateful for this good work!

Additionally, there's the small contributions of single words by many people on Weblate. The translations there are moving really fast, faster than we can update the above list. Thank you all who contributed!

Translations are never complete, especially since Whisperfish is moving very fast. Our progress can be seen here:

Whisperfish translation progress

How to update translations

There are two ways to contribute translations.

Via Weblate

We created a Weblate page. On that page, you can easily alter the translations via a web interface. These changes are then pushed by Weblate to our repository here.

Manually, with Git

If you prefer, you can manually edit the .ts files, or use the software of your choice to edit the Qt linguist files. Changing translations strings is pretty simple:

  1. Get in the repository

  2. Find your language in translations/, open the respective .ts file.

  3. Find the translatable string and change the contents between <translation> and </translation>. If the starting tag is <translation type="unfinished">, change it to <translation>.

  4. Save the file, commit (with a message saying you updated the translation), and make a merge request.

    Additionally, you may want to look specifically for strings with type="unfinished" (by using your text editor to search for "unfinished"), because those strings need to be looked after. Strings tagged with type="unfinished" have recently been touched in the application itself, may have changed their meaning slightly, or are entirely new.

    Qt Linguist is also an application with a GUI to facilitate translations. Essentially, using it will replace step 3. above. You can get Qt Linguist from the Qt bundle or you can just download the standalone app. Open the .ts file from within the app, then it will automatically detect and list the strings that need to be translated.

Translate Whisperfish a new language

If you would like to contribute a translation for a new language, you'll need a new translation file.

You can either use Weblate (see above), or manually add the file:

  1. First, you need to know your language identifier. Examples are nl_BE, nl, de, or zh_CN.

  2. Generate the translation file, execute the following command in the Whisperfish source's root directory:

lupdate qml/ -noobsolete -ts translations/harbour-whisperfish-$LANG.ts

This should generate a file translations/harbour-whisperfish-$LANG.ts. If you do not have the lupdate utility, [](Contact-Us), he'll create your file.

Important: please create a merge request as soon as you create your new file, before starting to translate. We've had it happen that two people write a complete translation from scratch one day apart.

About updating the QML files or English source material.

If you want to update the English translation, or when you make an update to the QML files, the CI will automatically update all the translation files, because they refer to specific line numbers in the source files. You can run ./update-translations.sh in the source directory to see what happens, but there's no need to commit those changes. By postponing this to the CI's merge commit, we avoid merge conflicts.

This script also runs when the source material (English source translation) changes; this will update the source strings in the language files and will invalidate the translated strings.

You can only alter the English source language in the QML files. This is an artifact of how Qt Linguist seems works.

Project maintainers2 User avatar rubdosUser avatar direc85
Project reviewers10 User avatar 02947b5yhUser avatar kinguUser avatar atlochowskiUser avatar dashinfantryUser avatar EdanasUser avatar ersenUser avatar PawelSpoonUser avatar rubdosUser avatar iledUser avatar direc85
09/05/2026

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 13,280 64,354 397,986
Source 650 3,137 19,608
Approved 7% 1,041 6% 4,321 6% 27,380
Waiting for review 51% 6,820 49% 31,829 50% 198,650
Translated 64% 8,511 61% 39,287 61% 245,638
Needs editing 2% 330 3% 2,489 3% 14,567
Read-only 4% 650 4% 3,137 4% 19,608
Failing checks 1% 84 1% 569 1% 3,842
Strings with suggestions 1% 59 1% 331 1% 2,054
Untranslated strings 33% 4,439 35% 22,578 34% 137,781

Quick numbers

64,354
Hosted words
13,280
Hosted strings
64%
Translated
2
Components
28
Languages
56
Translations
5
Screenshots
and previous 30 days

Trends of last 30 days

+1%
Hosted words
+3%
+1%
Hosted strings
+3%
−1%
Translated
−1%
−50%
Contributors
−50%
User avatar None

Alert triggered

Broken project website URL 09/09/2026
User avatar 02947b5yh

Comment added

Andere betekenis! Het werkwoord 'verbannen' is zwaarwichtiger en betekent 'in ballingschap sturen', 'bannen' is gewoon iemand de toegang ontzeggen.

09/05/2026
User avatar weblate:update

Remote repository updated

Remote repository updated

Original revision: 7ab4a667595e7ccde7d7acd18bb77e779d20963d
New revision: 928b3a2afe377cb1cd732f260f5f50b2535d5657 09/04/2026
User avatar None

Alert triggered

Could not push the repository. 08/31/2026
User avatar weblate:push

Repository push failed

To repository URL
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'repository URL'
(1)
08/31/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 08/31/2026
User avatar None

Alert triggered

Could not merge the repository. 08/31/2026
User avatar weblate:update

Repository rebase failed

Rebasing (1/1)
Auto-merging translations/harbour-whisperfish-de.ts
CONFLICT (content): Merge conflict in translations/harbour-whisperfish-de.ts
error: could not apply c54fdbd7... Translated using Weblate (German)
Could not apply c54fdbd7... Translated using Weblate (German)
(1)
08/31/2026
User avatar weblate:commit

Changes committed

Changes committed 08/31/2026
User avatar weblate:update

Remote repository updated

Remote repository updated

Original revision: 85e9d706cfa7b9066ff343eb8347b78ec930382b
New revision: 7ab4a667595e7ccde7d7acd18bb77e779d20963d 08/31/2026
Browse all project changes