Bug 390899

Summary: System language is not respected in Advanced audio parameters
Product: [Plasma] plasma-pa Reporter: Neros <contact>
Component: appletAssignee: David Rosca <nowrep>
Status: RESOLVED FIXED    
Severity: normal CC: annma, bugseforuns, i, kde, mcorteel, nate, plasma-bugs, yoann.laissus
Priority: NOR Keywords: usability
Version: 5.12.2   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.14.4

Description Neros 2018-02-22 10:58:41 UTC
It's a weird bug actually. 

Here (https://i.imgur.com/vDZ2fzL.png), it's fully translated.

But if I right-click on the audio icon in the system tray icons, the same parameters are in english: https://i.imgur.com/YbK6Ks4.png
Comment 1 Maxime Corteel 2018-02-22 12:16:44 UTC
Still looks like you are missing translation packages (See Bug 390882).
Comment 2 Neros 2018-02-22 12:58:44 UTC
Probably related, yes, but I have no idea for a solution… "ki18n" is installed, it should be ok.
Comment 3 Yoann Laissus 2018-02-22 13:30:26 UTC
Here I think we have a real problem with plasma-pa.
I can reproduce on Arch and Neon with (at least) french and spanish.

After a little investigation, it seems to be coming from applet/Message.sh.
I don't know how exactly the KCM is integrated in the config dialog but it doesn't use at all the strings from kcm_pulseaudio.pot.

Maybe we should just add all the missing strings into plasma_applet_org.kde.plasma.volume.pot ?
Comment 4 Patrick Silva 2018-02-22 18:12:34 UTC
pt-br language is also affected on Arch Linux, plasma 5.12.2.
Comment 5 Patrick Silva 2018-05-20 15:19:14 UTC
Same thing in plasma 5.13 beta.
Comment 6 Patrick Silva 2018-11-26 18:52:03 UTC
*** Bug 401430 has been marked as a duplicate of this bug. ***
Comment 7 Guo Yunhe 2018-11-27 08:14:44 UTC
Comparing the KCM of plasma-nm and plasma-pa:

https://github.com/KDE/plasma-nm/blob/master/kcm/kcm.cpp

https://github.com/KDE/plasma-pa/blob/master/src/kcm/module.cpp

plasma-nm set its text domain:

kdeclarative.setTranslationDomain(QStringLiteral(TRANSLATION_DOMAIN));

But plasma-pa didn't.
Comment 8 Yoann Laissus 2018-11-27 08:46:15 UTC
(In reply to Guo Yunhe from comment #7)
> Comparing the KCM of plasma-nm and plasma-pa:
> 
> https://github.com/KDE/plasma-nm/blob/master/kcm/kcm.cpp
> 
> https://github.com/KDE/plasma-pa/blob/master/src/kcm/module.cpp
> 
> plasma-nm set its text domain:
> 
> kdeclarative.setTranslationDomain(QStringLiteral(TRANSLATION_DOMAIN));
> 
> But plasma-pa didn't.

Indeed, it's a translation domain problem. But the problem is more complex than that. The problem appears in the KCM view in the settings but not in systemsettings.

I tracked it down some months ago but I forgot to finish that.
Based on what I found, it's a problem during the QML context initialisation in KDecalarative : https://cgit.kde.org/kdeclarative.git/tree/src/quickaddons/configmodule.cpp#n142

You can find it's done here for the context :
https://cgit.kde.org/plasma-framework.git/tree/src/plasmaquick/configview.cpp#n96

But for some reasons the translation domain gets lost with this line :
https://cgit.kde.org/plasma-framework.git/tree/src/plasmaquick/configmodel.cpp#n274

I'll try to find some time to do a proper fix because for now it's more like a hack. I also need to make sure it doesn't break anything else because those parts are used in many areas.
Comment 10 Kai Uwe Broulik 2018-11-27 08:48:32 UTC
The commit doesn't fix the root cause which is us unable to set the translation context on the QQmlContext of the embedded KCM but it fixes the volume config at least.
Comment 11 Guo Yunhe 2018-11-27 08:52:54 UTC
Thanks for quick fix!