KDE language pack updates should call kbuildsycoca4 --noincrement

Bug #379820 reported by FriedChicken
32
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ubuntu Translations
Incomplete
Medium
Unassigned
kde4libs (Ubuntu)
Expired
Undecided
Unassigned
Declined for Jaunty by Harald Sitter
Declined for Karmic by Harald Sitter
language-pack-kde-de (Ubuntu)
Invalid
Undecided
Unassigned
Declined for Jaunty by Harald Sitter
Declined for Karmic by Harald Sitter

Bug Description

After updating KDE 4 language pack there are still some untranslated/english texts although the language pack contains the translated strings.

That is because some of the translations are contained in .desktop-files. For performance reasons these files are cached in a binary cache but the cache doesn't get updated on language-pack updates.
I know this definitely for the german language pack but I guess all language packs are affected.

Normally kded calls kbuildsycoca to update the cache incremental but the language pack files seem to not be detected as updated (why? has some version info to be changed? or unchanged file descriptors?) and therefore the cache doesn't include the newest translations.
The solution is to call "kbuildsycoca --noincrement" after a translation update but I guess this is nothing more than a workaround for another problem (why are the .desktop-files not detected as updated). I guess this has to be done with user permissions and for every user seperately.

Tags: i18n kubuntu
Revision history for this message
syscon-hh (syscon-kono) wrote :

I can confirm these circumstances - by changing the language and going back many more items of (already translated) are associated later on.

Changed in language-pack-kde-de (Ubuntu):
assignee: nobody → syscon-hh (syscon-kono)
status: New → Confirmed
Adi Roiban (adiroiban)
Changed in ubuntu-translations:
status: New → Confirmed
importance: Undecided → Medium
David Planella (dpm)
tags: added: i18n kubuntu
removed: kbuildsycoca4 kde kde4 l10n translation
David Planella (dpm)
Changed in language-pack-kde-de (Ubuntu):
status: Confirmed → Invalid
assignee: syscon-hh (syscon-kono) → nobody
Revision history for this message
David Planella (dpm) wrote :

Added the kde4libs bug task after having talked to Riddell on IRC:

"I guess kded4 (which is in kde4libs) needs to be patched to watch for new language packs"

Revision history for this message
Harald Sitter (apachelogger) wrote :

Is there some particular example of when this happens?

quoting from IRC:
<apachelogger> Riddell: also bug 379820 is non-solvable IMHO ... the problem is that we get desktop file translations from mo files which are cached inside the app (e.g. plasma/kickoff)
<Riddell> apachelogger: why wouldn't a watch for the .mo files be a solution?
<apachelogger> because each app would have to watch each mo file (or at least those that are used by it)
<apachelogger> that will eat all sorts of resources big time
<apachelogger> which is exactly the reason that mo files are not watched to begin with but translations will only apply upon new login (app restart)
<apachelogger> IMHO we should slove this by triggering a reboot notification after lang-pack updates
<Riddell> hmm, that would work but seems a bit microsofty
<apachelogger> as I see it the only way to notice this issue is when you had an entry that was untranslated, that should be translated after the update
<apachelogger> that of course implies that you *know* that the entry shoudl be translated after the update

Changed in kde4libs (Ubuntu):
status: New → Incomplete
Revision history for this message
FriedChicken (domlyons) wrote :

I will look for an example.

To make it a bit clearer: I am sure, when I wrote this bug report the translation *was not updated* after rebooting.

Would it do any harm to simply call "kbuildsycoca --noincrement" on a language-pack-kde update, for example by a postinst-script? I guess not.

Revision history for this message
Harald Sitter (apachelogger) wrote :

Yes it would do harm, noincremental can take forever, on the other hand their is no gain since it would get executed as root and thus no other user would have any advantage from it.
Also I'd like to note that kbuildsycoca4 is executed upon login, so there must have been some other issue if reboot didn't fix it (probably something filesystem related, since kbuildsycoca will only re-read a file when it's timestamp changed). In addition to that, as mentioned, desktop files that are translated via language-pack-kde do not have any translation in the files themselfs, but the translation's mo files which gets loaded on application startup (every app startup that is), so kbuildsycoca4 should have nothing to do with those translations at all.

Revision history for this message
Jonathan Thomas (echidnaman) wrote :

Couldn't an interactive upgrade hook be added to the language-pack-kde-* packages, that when activated runs a kbuildsycoca dialog?

Revision history for this message
Mohamed Amine Ilidrissi (ilidrissi.amine) wrote :

Is this still not fixed? Please respond if you are still affected.

Changed in ubuntu-translations:
status: Confirmed → Incomplete
Revision history for this message
FriedChicken (domlyons) wrote :

At least I couldn't find obvious mistakes any more. So I guess this is somehow fixed or at least not relevant any more.

Revision history for this message
Mohamed Amine Ilidrissi (ilidrissi.amine) wrote :

FriedChicken: what do you mean by "obvious mistakes"? Is there still some mistakes? Please respond to see if we can close this bug.

Revision history for this message
Harald Sitter (apachelogger) wrote :

@Jonathan: that would not solve the actual problem of mo files being not reloaded until the app restarts, I still think the best would be to notify the user "Dear user it happens to be that we just installed updates to your language, pretty please logout and login again to apply those changes" and provide a logout button.
In combination with a reboot-notification, and reboot of course overrides the logout notification (i.e. they must be mutually exclusive with reboot having precedence)

Revision history for this message
FriedChicken (domlyons) wrote :

Mohamed Amine IL Idrissi :
> FriedChicken: what do you mean by "obvious mistakes"?
> Is there still some mistakes?

That means that I can't remember seeing mistakes after recent updates. But that doesn't mean that there aren't any more: It could be that I've just overseen them (as I'm used to reading English) or that I didn't use affected applications before the cache got updated.

I think that Harald Sitters idea is a good solution and should be easy enough to realize (as reboot notifications already exist).

Revision history for this message
Patrick (hanckmann-gmail) wrote :

I just (for the first time) installed KDE (Kubuntu 10.04). I have this issue still. What I did is the following:

0. The standard situation was that US English was loaded as language
1. I opened the change language tool from the control panel
2. I added British English as a language
3. I added Dutch as a language
--- here the order was British English, Dutch, US English

Suddenly all programs where translated to Dutch, which was not what I wanted.
I tried to fix it by:

1. remove the Dutch language and British language
2. reset the system language to US English
--- the only installed language now was US English

Most of the programs are back in English, but some are still in Dutch.
--- I logged in and out a few times
--- I rebooted the pc a few times
Nothing changed!

One of the programs that still uses Dutch is the (standard) KDE menu.

It is my first KDE experience after 10 years of openbox and gnome experience. It is a bit disappointing :-( I hope you can manage to fix it.

Patrick

Revision history for this message
Patrick (hanckmann-gmail) wrote :

I added a small screenprint from this bug. Note that the search function is called 'search' (nicely in English), but that the File manager is called 'Bestandsbeheer' which is Dutch.
Of course, this is just an example. Almost the full settings dialog is still in Dutch, and there is more :-(

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for kde4libs (Ubuntu) because there has been no activity for 60 days.]

Changed in kde4libs (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Andy Rozman (andy-rozman) wrote :

I am on Ubunutu 14.04... Since I had problems with Unity I started using KDE... I installed 3 additional languages... Now problem is that my preffered language is English, but half of interfaces (both GUI and console) are now in German, some are in Gaelic and some are in English...

Since this bug is more than 4 years old, I would think that it should have been fixed by now...

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

Hi Andy,

It sounds as if you need help with the configuration, and that your problem has nothing to do with this bug report. I would recommend that you ask for help at e.g. http://askubuntu.com/

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.