Bug 9418 - Catorise does not respect localized category names when sorting the menu
: Catorise does not respect localized category names when sorting the menu
Status: REOPENED
Product: Catorise
General
: 0.7.3
: N900 Maemo
: Low normal (vote)
: ---
Assigned To: Andrew Flegg
: general
:
:
:
:
  Show dependency tree
 
Reported: 2010-03-05 17:22 UTC by Todor Tsankov
Modified: 2010-05-28 13:14 UTC (History)
1 user (show)

See Also:


Attachments
gettext patch (877 bytes, patch)
2010-03-05 17:24 UTC, Todor Tsankov
Details
updated patch which sorts also category entries (4.81 KB, patch)
2010-03-06 01:19 UTC, Todor Tsankov
Details


Note

You need to log in before you can comment on or make changes to this bug.


Description Todor Tsankov (reporter) 2010-03-05 17:22:12 UTC
SOFTWARE VERSION:
catorise-0.7.5

EXACT STEPS LEADING TO PROBLEM: 
1. Set the device language to something different the the standard one en_GB.
2. Install catorise (or install an app to trigger menu regeneration)

EXPECTED OUTCOME:
Categories are sorted by their names like it was when using the default en_GB.

ACTUAL OUTCOME:
Categories are still sorted according to their en_GB counterpart names.

REPRODUCIBILITY:
always

EXTRA SOFTWARE INSTALLED:
-

OTHER COMMENTS:
I've created a patch that read the categories from
hildon-application-manager-categories.mo and sort them accordingly.

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9
(KHTML, like Gecko) Chrome/5.0.307.11 Safari/532.9
Comment 1 Todor Tsankov (reporter) 2010-03-05 17:24:03 UTC
Created an attachment (id=2441) [details]
gettext patch

This fixes the sorting of the localized categories. Still need to figure out if
it is possible to sort the applications inside the categories by their
localized names.
Comment 2 Andrew Flegg maemo.org 2010-03-05 17:29:14 UTC
Cool, thanks.

Looking for a translation domain in the .desktop files should be
straightforward. This would also fix the issue where "rtcom-call-ui.desktop"
("Phone") is put after "queen.desktop".
Comment 3 Todor Tsankov (reporter) 2010-03-05 17:57:47 UTC
(In reply to comment #2)
> Cool, thanks.
> 
> Looking for a translation domain in the .desktop files should be
> straightforward. This would also fix the issue where "rtcom-call-ui.desktop"
> ("Phone") is put after "queen.desktop".
> 

So - one needs just to parse the .desktop file for X-Text-Domain right? Is
there an easier way to get it? I could try to fix that also if I find more time
to get into the script and see how it searches through the apps.

I would love to see also a localization for the "Updating menu structure..."
but as I see it is executed from /bin/sh through dbus and cannot figure it out
how to localize this :-)
Comment 4 Andrew Flegg maemo.org 2010-03-05 18:00:17 UTC
The .desktop has already been parsed further up, so should be reusable.

It should be possible to get the "Updating menu structure" from a locale, if no
other way by having something like:

perl -MLocale::gettext -e 'print <get_l10n_version_of_message>'
Comment 5 Todor Tsankov (reporter) 2010-03-06 01:19:06 UTC
Created an attachment (id=2444) [details]
updated patch which sorts also category entries

This patch is against catorise-0.7.6 version. It pretty messes up with the
whole script and brings ability the menu to be fully sorted. This means that
the categories are sorted according to their localized names and also all
entries inside them are also sorted - again taking into account their localized
name.

I've tried to put as many comments as possible. Please let me know if this
could be included in the future versions of the app and if not - why and what
needs to be improved in this patch in order to be accepted. Thanks
Comment 6 Andrew Flegg maemo.org 2010-03-13 23:02:47 UTC
Included in 0.8.0, now in extras-devel. Thanks for the patch!

I've restructured the patch slightly for the following reasons:

  * Use the same translation strings that are displayed in menu
(hildon-application-manager domain)
  * Ignore leading space on ' Network'
  * Ensure that "All" will show installed icons even if Catorise hasn't been
run
  * Try to reduce duplicate code

I'd appreciate it if you could test 0.8.0 and if it's OK, I'll promote it to
-testing.
Comment 7 Todor Tsankov (reporter) 2010-03-14 08:41:27 UTC
(In reply to comment #6)
> Included in 0.8.0, now in extras-devel. Thanks for the patch!
> 
> I've restructured the patch slightly for the following reasons:
> 
>   * Use the same translation strings that are displayed in menu
> (hildon-application-manager domain)
>   * Ignore leading space on ' Network'
>   * Ensure that "All" will show installed icons even if Catorise hasn't been
> run
>   * Try to reduce duplicate code
> 
> I'd appreciate it if you could test 0.8.0 and if it's OK, I'll promote it to
> -testing.
> 
I've installed it, rebooted the device, to check if the menu is affected by the
MB#8111 bug and everything seems OK. All entries are sorted as expected. The
only thing that still bugs me is the need of these catorise-*.desktop files -
but that's a different story. I think we can close this one.
Comment 8 Todor Tsankov (reporter) 2010-05-28 13:14:11 UTC
It seems that I need to reopen this bug against PR1.2 as for some reason
hildon-desktop does not respect the layout that catorise generates for the main
menu. All submenus are properly sorted.
Currently I have this layout generated from catorise:
  <Layout>
    <Menuname>all</Menuname>
    <Menuname>graphics</Menuname>
    <Menuname>games</Menuname>
    <Menuname>utilities</Menuname>
    <Menuname>network</Menuname>
    <Menuname>multimedia</Menuname>
    <Menuname>navigation</Menuname>
    <Menuname>office</Menuname>
    <Menuname>system</Menuname>
    <Menuname>other</Menuname>
    <Filename>ovi.desktop</Filename>
  </Layout>

According to my localization (bg_BG) this is the _correct_ order, but in the
menu I actually have this order:
ovi.desktop
all
games
graphics
multimedia
navigation
network
office
system
utilities

I really hope that we can fix this and will try to investigate what is the new
expected from hildon-desktop format of the menu file. Any sources of such
information are welcomed :-)