Upon the first start of cppcheck-gui, the following message appears,
if the language of the OS is English:
Failed to load the user interface language:
Failed to load translation for language English from file
cppcheck_en.qm
The user interface language has been reset to English.
- Update translationhandler.cpp and check if the language code starts
with "en". The code can be e.g. "en_US"
Sources were built with Clang but with increased verbosity of error detection.
A number of syntax and semantic warnings were encountered. Commit adds
changes to correct these warnings.
Some changes involve removing extra, and unncessary, semi-colons at EOL
(e.g. at end of switch clause).
Project astyle settings are not currently setup to detect if a file is to
have an extra carriage return after the last line of data. Two files were
altered to ensure an extra carriage return.
An advisory to enhance code was encountered in triage code. Clang advisory
on a for-loop interation value suggested that:
`use reference type 'const QString &' to prevent copying`
Building with enhanced clang warnings indicated a large number of
instances with the warning:
`warning: zero as null pointer constant`
Recommended practice in C++11 is to use `nullptr` as value for
a NULL or empty pointer value. All instances where this warning
was encountered were corrected in this commit.
Where warning was encountered in dependency code (i.e. external library)
no chnages were made. Patching will be offered upstream.
- Fixed translation of default buttons for Qt5
- Removed translation opportunity for language names. English or native names are better than translated names (#4014)
- Allow translating texts before before Window is created
-> Translate help text
- Use AboutDialog instead of message box on Windows when starting GUI with -v
The Polish translation doesn't have any translated text. So it is
only waste of resources to have it available. And it may confuse
some people who try it.
Ticket #4008 (GUI: Polish translation does not translate and should be removed)
Ln pointed out in IRC that 'se' is not ISO-639 name of the Swedish,
but 'sv' is. So rename the translation file to use the correct
ISO-639 name. This wrong name also probably caused the GUI not
recognizing Swedish locale of the OS.
If there were unknown language in settings the fallback to English
language didn't work as expected. And there were no proper current
language set after that. Initialize current language to English
so we always have English as proper fallback.
GUI was storing selected language as index to the languages list.
This is fragile since the order and count of items can change.
This commit changes to using ISO language code (e.g. "en" for
"English").
Fixes ticket #2446 (GUI: Don't use index number for language selection)