|Anonymous | Login | Signup for a new account||2017-09-19 18:57 UTC|
|My View | View Issues | Change Log | Roadmap | Doomseeker Issue Support Ranking | Rules | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003260||Doomseeker||[All Projects] Bug||public||2017-09-10 21:34||2017-09-12 18:15|
|Priority||normal||Severity||trivial||Reproducibility||have not tried|
|Platform||x86_64||OS||Debian GNU/Linux||OS Version||buster/sid|
|Target Version||Fixed in Version|
|Summary||0003260: Translation "en_US" cannot be found, unknown language definition|
[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 Reproduce||Starting 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 Information||The 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 Files|| dpkg.log [^] (3,173 bytes) 2017-09-10 21:34|
dpkg.1.log [^] (5,360 bytes) 2017-09-10 21:39
usr-share-qt5-translations.log [^] (16,626 bytes) 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
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.
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).
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.
|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.|
|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|
Questions or other issues? Contact Us.
|Copyright © 2000 - 2017 MantisBT Team|