Bug 444376

Summary: msgctxt for 'Predefined' is NOT correctly implemented, the translation doesn't show in the UI
Product: [Applications] krita Reporter: Hoang Duy Tran <hoangduytran1960>
Component: TranslationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: normal CC: alvin
Priority: NOR    
Version: 5.0.0-beta1   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed In:
Attachments: The PO file for UI language in Vietnamese

Description Hoang Duy Tran 2021-10-25 16:38:28 UTC
SUMMARY


STEPS TO REPRODUCE
1. Load the attached krita.po into an editor, say vscode, or vi
2. Search to find 'msgid.*Predefined' to locate the key in question, the current content of this entry is:

#: plugins/paintops/libpaintop/kis_brush_selection_widget.cpp:49
#, kde-format
msgctxt "Predefined Brush tip mode"
msgid "Predefined"
msgstr "Định Trước"

3. Open an command line window and run the MO compilation line, using:

msgfmt -o $KRITA_MO_FILE $KRITA_PO_FILE

(Note: edit your 'rc' file (says: .bashrc if you are using BASH shell) to make sure the two keys:
export KRITA_MO_FILE=<path to the MO file of the krita executable:
(mine is: KRITA_MO_FILE=/Applications/krita_5.app/Contents/Resources/locale/vi/LC_MESSAGES/krita.mo)

export KRITA_PO_FILE=<path to the attached PO file>
(mine is: KRITA_PO_FILE=/Users/hoangduytran/Dev/tran/krita/vi-kde/trunk/l10n-kf5/vi/messages/krita/krita.po)
make sure to reload the changes in the .bashrc (. ./.bashrc)

4. Open Krita app, open a new document of any size/type, click on the icon Edit Brush Setting in the tool bar (You'll probably need to change the 'General->Tools->Tool Options Location from 'In Docker' to 'In Toolbar' first, and restart Krita)

5. In the 'Brush Editor', select a brush (press '<' on the left to show brush presets), select (y) Screentone moire) brush, on the right, you should see tabs 'Auto, Predefined, Text'.

6. Now switch the UI to Vietnamese using Settings->Switch Application Language->Primary Language to 'Vietnamese', and restart Krita

7. After Krita loaded and went back to 'Brush Editor' as describe above, you still see the 'Predefined' in English.

8. In the krita.po editor, remove the 'msgctxt' line for the 'Predefined', recompile the changes using 'msgfmt -o ...' described above

9. Reload krita and go back to 'Brush Editor', you should now see the translation in Vietnamese as 'Định Trước'.


OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
The above running shows that either 'msgctxt' for 'Predefined' key has not yet implemented correctly or the existence of 'msgctxt' should not be there.
Comment 1 Hoang Duy Tran 2021-10-25 16:40:17 UTC
Created attachment 142857 [details]
The PO file for UI language in Vietnamese

Using 'msgfmt -o $KRITA_MO_FILE $KRITA_PO_FILE' command to convert the PO file to MO file
Comment 2 Alvin Wong 2021-10-25 17:33:16 UTC
Hi, the context for the "Predefined" string was changed fairly recently [1], so the message in the newer PO file you have there does not correspond to 5.0.0-beta1, but it does correspond to the latest commit on the stable branch (krita/5.0). As I mentioned in bug 444364, comment 1, you should test with the latest nightly builds (choose Plus or Next depending on which SVN branch you are starting with), and remember to update it whenever you fetch the latest PO file from SVN.

From what I remember, the latest stable has several translation string changes even from 5.0.0-beta2, so you shouldn't use that as a reference either.

[1]: https://invent.kde.org/graphics/krita/-/commit/069a7645799df0527c385097ffd7b7fb5a661c95#b3d1303fcf07be4c866a1e6011527b6b9542661d_49_49