Bug 476591

Summary: Part of the skrooge flatpak's user interface is not translated and remains in English
Product: [Applications] skrooge Reporter: Jean-Pierre V <jpvitton>
Component: generalAssignee: skierpage <skierpage>
Status: CONFIRMED ---    
Severity: normal CC: stephane
Priority: NOR    
Version: 2.27.0   
Target Milestone: ---   
Platform: Flatpak   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: incomplete localization of the Skrooge flatpak from flathub
Skrooge screenshot with a native installation (via pacman)

Description Jean-Pierre V 2023-11-05 14:41:06 UTC
SUMMARY
***I
I am using the latest flatpak version 2.31.0 on flathub. Part of the GUI is not translated in local language (Fr) and remains in English. The proposed additional languages  are only English US or GB. 
Can you publish a full i10n version with all xx.po files supported by skrroge (with the french language) ?

 
***


STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 6.1.60-1lts/5.27.9 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 5.111.0
Qt Version: 5.15.11

ADDITIONAL INFORMATION
Comment 1 Stephane MANKOWSKI 2023-12-09 21:43:39 UTC
Hi S Page,

I don't know flatpak packaging.
Could you help me to fix this issue ?
Thank you in advance.

Regards.
Stéphane
Comment 2 skierpage 2024-02-27 03:38:42 UTC
Most flatpaks try to be smart and only install the locales you need in a separate org.kde.skrooge.Locale, see https://develop.kde.org/docs/packaging/flatpak/integration/#debug-and-locale .

After a lot of fiddling with `export LANG=fr_FR/UTF-8` and `flatpak config --set languages "fr"` and removing and reinstalling apps, I managed to get to the point where `flatpak info --verbose org.kde.skrooge.Locale//stable` lists "Subdirectories: /fr", and then
  % flatpak run --command=ls org.kde.skrooge//stable -1Rs --block-size=KB /app/share/runtime/locale
includes
    /app/share/runtime/locale/fr/share/fr/LC_MESSAGES:
    total 402kB
     95kB OpenSP.mo
    308kB skrooge.mo

That's a pretty big set of localized strings that's about the same size as the Fedora package's:
  % ls -s --block-size=KB /usr/share/locale/fr*/LC_MESSAGES/skrooge*
    308kB /usr/share/locale/fr/LC_MESSAGES/skrooge.mo
, yet when I run `flatpak run org.kde.skrooge//stable`, only a few common UI strings are in French such as Aide, Nouveau, Chercher (see attachment). Jean-Pierre, I assume this is what you observe?

So there is a bug here, but I'm not sure where; maybe the skrooge flatpak can only locate the KDE platform's localized strings and not its own. However, doing similar steps for org.kde.gwenview shows a well-localized app.
Comment 3 skierpage 2024-02-27 03:39:30 UTC
Created attachment 166122 [details]
incomplete localization of the Skrooge flatpak from flathub
Comment 4 Jean-Pierre V 2024-02-27 08:48:23 UTC
(In reply to skierpage from comment #3)
> Created attachment 166122 [details]
> incomplete localization of the Skrooge flatpak from flathub

Yes exactly ! confirm , same screenshot you sent ! The menu items "configuration" and "aide" are in French as well as the second line (Nouveau/ouvrir....) whereas the others menu items remain in English. As we can see in your screenshot the items (DashBoard, Accounts, ....) remains also in English.   
I will send a screenshot of a native installation of skrooge (pacman -Syu skrooge on Arch Linux) where everything is translated  to compare.

Thanks
JP
Comment 5 Jean-Pierre V 2024-02-27 08:51:22 UTC
Created attachment 166126 [details]
Skrooge screenshot with a native installation (via pacman)

To show what it should be ....
Comment 6 Jean-Pierre V 2024-02-28 19:08:20 UTC
May be it can help :  If I type the below commands , I cannot see any link to the french locale, would it be a reason ? 

flatpak run --command=bash org.kde.skrooge

Then 

[📦 org.kde.skrooge locale] cd /app/share/locale 

[📦 org.kde.skrooge locale]$ ls -l
total 8
lrwxrwxrwx 1 nfsnobody nfsnobody   47 24 févr. 15:06 ca@valencia -> ../../share/runtime/locale/ca/share/ca@valencia
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 da -> ../../share/runtime/locale/da/share/da
drwxr-xr-x 3 nfsnobody nfsnobody 4096  1 janv.  1970 en_GB
drwxr-xr-x 3 nfsnobody nfsnobody 4096  1 janv.  1970 en_US
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 eu -> ../../share/runtime/locale/eu/share/eu
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 fi -> ../../share/runtime/locale/fi/share/fi
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ga -> ../../share/runtime/locale/ga/share/ga
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 gl -> ../../share/runtime/locale/gl/share/gl
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ia -> ../../share/runtime/locale/ia/share/ia
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ja -> ../../share/runtime/locale/ja/share/ja
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ko -> ../../share/runtime/locale/ko/share/ko
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 mr -> ../../share/runtime/locale/mr/share/mr
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ms -> ../../share/runtime/locale/ms/share/ms
lrwxrwxrwx 1 nfsnobody nfsnobody   40 24 févr. 15:06 nds -> ../../share/runtime/locale/nds/share/nds
lrwxrwxrwx 1 nfsnobody nfsnobody   41 24 févr. 15:06 pt_BR -> ../../share/runtime/locale/pt/share/pt_BR
lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ug -> ../../share/runtime/locale/ug/share/ug
lrwxrwxrwx 1 nfsnobody nfsnobody   41 24 févr. 15:06 zh_CN -> ../../share/runtime/locale/zh/share/zh_CN
lrwxrwxrwx 1 nfsnobody nfsnobody   41 24 févr. 15:06 zh_TW -> ../../share/runtime/locale/zh/share/zh_TW
Comment 7 skierpage 2024-02-29 04:57:49 UTC
(In reply to Jean-Pierre V from comment #6)
> [📦 org.kde.skrooge locale] cd /app/share/locale 
> [📦 org.kde.skrooge locale]$ ls -l
> ...
> lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 fi -> ../../share/runtime/locale/fi/share/fi
>   (no "fr" symlink!)
> lrwxrwxrwx 1 nfsnobody nfsnobody   38 24 févr. 15:06 ga -> ../../share/runtime/locale/ga/share/ga

That seems to be the problem. There's no symlink for the one locale that should actually have localization files in org.kde.skrooge.Locale.
The fix is (outside the flatpak):
  Close the running flatpak
  % flatpak info --show-location org.kde.skrooge
  % cd (to the path above, e.g. in my system installation it is, /var/lib/flatpak/app/org.kde.skrooge/x86_64/stable/active/ )
  % cd files/share/locale
  % sudo ln -s ../../share/runtime/locale/fr/share/fr
This symbolic link doesn't resolve, but at runtime inside the flatpak it links to the French localization files that org.kde.skrooge.Locale should provide if flatpak thought you need/want the French locale when you installed Skrooge.
  % ls -l f*
      fi -> ../../share/runtime/locale/fi/share/fi
      fr -> ../../share/runtime/locale/fr/share/fr
     (^ added the missing symlink for "fr")

and now if you start the flatpak you should have the full French localization! (I had to fiddle around a lot removing and reinstalling, and adjusting LANG.)

The question is why does, e.g. the Gwenview flatpak have this link, but not Skrooge? Why does the skrooge flatpak have a symlink for e.g. a Finnish translation, but not French or German? We need to cross-breed a build expert, localization expert, and flatpak expert.
Comment 8 Jean-Pierre V 2024-02-29 10:12:54 UTC
Hi Skierpage,
I confirm your point : adding this symlink to org.kde.skrooge makes skrooge works perfectly in French. 

So there is a weird thing in the process of building this package. 

To me it is not only for the french language, in the skrooge gitlab/po repository you have about 43 languages available. However only 19 symlinks available in the ./files/share/locale/ directory... strange.
I am not skilled enough to help ... hope some experts can help.
Thanks for the fix 
JP
Comment 9 skierpage 2024-03-02 00:12:30 UTC
(In reply to Jean-Pierre V from comment #8)
> Hi Skierpage,
> I confirm your point : adding this symlink to org.kde.skrooge makes skrooge
> works perfectly in French. 
> 
> So there is a weird thing in the process of building this package. 

Yes. It's probably a bug in the cleanup phase of flatpak-builder, https://github.com/flatpak/flatpak-builder/issues/154 , which somehow may remove symlinks if some package created localizations. I added cleanup commands because the flatpak build of some of the libraries on which skrooge depends generate lots of unneeded files in the flatpak; I'll try removing them although when I build locally flatpak-builder doesn't remove the symlinks.

Merci pour votre aide, I wish I was more expert ;-)
Comment 10 Stephane MANKOWSKI 2024-05-02 10:00:58 UTC
On KDE Neon, when Skrooge is installed from flatpack, the 2 following packages are installed: org.kde.skrooge, org.kde.skrooge.Locale.
I tried this:
> flatpak config --set languages  "fr"
> flatpak config
> flatpak update
The output was:
> Looking for updates…
> F: Warning: Treating remote fetch error as non-fatal since runtime/org.freedesktop.Platform/x86_64/22.08 is already installed: No such ref > > runtime/org.freedesktop.Platform/x86_64/22.08' in remote flathub
> Nothing to do.

And the french language is not available.
(Indeed KDE strings are in french, skrooge one are in english).
(French is not available in "Configure your language").

What should I do to be able to enable Skrooge in french ?
Comment 11 Stephane MANKOWSKI 2024-05-02 10:03:56 UTC
(In reply to Stephane MANKOWSKI from comment #10)
> On KDE Neon, when Skrooge is installed from flatpack, the 2 following
> packages are installed: org.kde.skrooge, org.kde.skrooge.Locale.
> I tried this:
> > flatpak config --set languages  "fr"
> > flatpak config
> > flatpak update
> The output was:
> > Looking for updates…
> > F: Warning: Treating remote fetch error as non-fatal since runtime/org.freedesktop.Platform/x86_64/22.08 is already installed: No such ref > > runtime/org.freedesktop.Platform/x86_64/22.08' in remote flathub
> > Nothing to do.
> 
> And the french language is not available.
> (Indeed KDE strings are in french, skrooge one are in english).
> (French is not available in "Configure your language").
> 
> What should I do to be able to enable Skrooge in french ?

Oups, forget that, I missed all the previous comments !