Zandronum Chat @ irc.zandronum.com
#zandronum
Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003260Doomseeker[All Projects] Bugpublic2017-09-10 21:342017-10-05 02:46
ReporterWubTheCaptain 
Assigned To 
PrioritynormalSeveritytrivialReproducibilityhave not tried
StatusfeedbackResolutionopen 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target VersionFixed in Version 
Summary0003260: Translation "en_US" cannot be found, unknown language definition
Description
[21:23:13] Loading translation "en_US".
[21:23:13] Translation 'qtbase_en_US' not found.
[21:23:13] Translation 'qtmultimedia_en_US' not found.
[21:23:13] Translation 'en_US' not found.
[21:23:13] Failed to load translation.
Steps To ReproduceStarting Doomseeker, going to configuration → Appearance shows three languages: "English", "Polski" and "Unknown language definition "en_US"" with a question mark flag.

The above error in description is printed to stdout and log.
Additional InformationThe missing translation seems to have no effect on functionality. Switching between all three available languages works fine.

$ cat /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_PAPER="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_MONETARY="fi_FI.UTF-8"
LC_COLLATE="C"
LC_NUMERIC="C"

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=C
LC_TIME=en_GB.UTF-8
LC_COLLATE=C
LC_MONETARY=fi_FI.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ locale -a
C
C.UTF-8
POSIX
en_GB.utf8
en_US.utf8
fi_FI.utf8
Attached Fileslog file icon dpkg.log [^] (3,173 bytes) 2017-09-10 21:34
log file icon dpkg.1.log [^] (5,360 bytes) 2017-09-10 21:39
log file icon usr-share-qt5-translations.log [^] (16,626 bytes) 2017-09-10 21:43

- Relationships
child of 0003279acknowledged List of Debian issues (misc/non-policy) 

-  Notes
User avatar (0018264)
WubTheCaptain (developer)
2017-09-10 21:43

"English" loads en_EN and "Polski" loads many:

[21:41:32] Loading translation "pl_PL"
[21:41:32] Found translation 'qtbase_pl_PL' in dir '/usr/share/qt5/translations'.
[21:41:32] Found translation 'qtmultimedia_pl_PL' in dir '/usr/share/qt5/translations'.
[21:41:32] Found translation 'pl_PL' in dir '/home/wub/.local/src/doomseeker/doomseeker-hg/doomseeker/build/translations'.

[21:41:32] Found translation 'odamex_pl_PL' in dir '/home/wub/.local/src/doomseeker/doomseeker-hg/doomseeker/build/translations'.

[21:41:32] Loaded translation for plugin odamex
[21:41:32] Found translation 'zandronum_pl_PL' in dir '/home/wub/.local/src/doomseeker/doomseeker-hg/doomseeker/build/translations'.

[21:41:32] Loaded translation for plugin zandronum
User avatar (0018274)
Zalewa (developer)
2017-09-11 17:34
edited on: 2017-09-11 18:52

I think it should not be showing "Unknown translation" in the configuration dialog, especially since English fits your locale. Upon first run, Doomseeker tries to detect the translation basing on your locale and when it didn't find the exact match with the available translations, it probably added it to the combo box. I don't remember if this was intentional to make it obvious to the user that there is a case where translation definitions were for some reason removed from disk. I'll think of a reasonable fallback.

As for the discrepancies between Polish and English translations:

1. English translation doesn't need translation files because it's hardcoded directly in the source code. One of the brilliant Qt features is that you can hardcode your text in the .cpp (and .h and .ui) files and, provided you wrap the literals in tr() function calls, Qt tools will detect them properly, automatically build a translations source file and allow you to translate each string. The translation is then built into a binary .qm file that you need to load at runtime, preferably very early during the start of the program.

2. Plugins are separate shared libraries and Doomseeker will run without them (albeit it will be mostly useless). Text contained in them is not present anywhere in Doomseeker code. Translations for plugins are distributed in packages with plugins - this should be true both for Windows and Mac update packages and Linux .debs. Hence, if plugin contains additional, translatable strings, then this plugin will also come with translations. Qt allows to load many translation files that will supplement each other. The native language doesn't need translation files because it's directly there - in the source code. The only case where Qt translation files would be useful for English is adding 's' to plurals where an amount of something is displayed (0 players, 1 player, 2 players, etc.)


One thing to note is that so far we only had one case where a user offerred to create additional translation to Spanish, but unfortunately we've run into some problems with project setup on their Windows and I think they lost steam.

User avatar (0018284)
WubTheCaptain (developer)
2017-09-12 02:15
edited on: 2017-09-12 02:20

Would a reasonable fallback be to add an option "default system locale" to the list of languages? If I recall correctly, Mumble (VoIP software based on Qt) does this. If it's a supported or unsupported language, it would not appear in the list at all except as one "default system locale" option (which is catch-all). Translations supported by Doomseeker would of course be listed to allow switching easily.

The "default system locale" would also be the default option for new configurations. In future if Doomseeker supports the system locale, it will automatically display that translated language to the user (unless the user chose a language like English explicitly).

User avatar (0018285)
WubTheCaptain (developer)
2017-09-12 02:33

I'm not entirely sure what's going on, but I've been mixing my configurations lately with Doomseeker 1.1 and Mercurial builds and done one apt full-upgrade in between I think.

My locale configuration remains the same. en_US is no longer in the configuration (Mercurial build d00d1352a20b) and by default loads en_EN. Polish language is available. Same with building 1.1 from source.

I tested with debian.drdteam.org build of 1.1 and the only language option available there is "unrecognized language definition en_EN". (Previously it was en_US giving that error.)

I think the underlying issue is still the same how unrecognized languages are displayed, for that see my fallback proposal.

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2017-09-10 21:34 WubTheCaptain New Issue
2017-09-10 21:34 WubTheCaptain File Added: dpkg.log
2017-09-10 21:39 WubTheCaptain File Added: dpkg.1.log
2017-09-10 21:43 WubTheCaptain Note Added: 0018264
2017-09-10 21:43 WubTheCaptain File Added: usr-share-qt5-translations.log
2017-09-11 17:34 Zalewa Note Added: 0018274
2017-09-11 18:52 Zalewa Note Edited: 0018274 View Revisions
2017-09-12 02:15 WubTheCaptain Note Added: 0018284
2017-09-12 02:18 WubTheCaptain Note Edited: 0018284 View Revisions
2017-09-12 02:20 WubTheCaptain Note Edited: 0018284 View Revisions
2017-09-12 02:33 WubTheCaptain Note Added: 0018285
2017-09-27 18:30 Zalewa Relationship added child of 0003246
2017-09-27 21:53 WubTheCaptain Relationship added related to 0003279
2017-09-27 21:54 WubTheCaptain Relationship deleted child of 0003246
2017-09-27 21:54 WubTheCaptain Relationship deleted related to 0003279
2017-09-27 21:54 WubTheCaptain Relationship added child of 0003279
2017-10-05 02:45 WubTheCaptain Status new => acknowledged
2017-10-05 02:46 WubTheCaptain Status acknowledged => feedback






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2017 MantisBT Team
Powered by Mantis Bugtracker