7

I installed VLC by snap packages in Ubuntu 16.10 Yakkety Yak. But the installation was done in English (my version of Ubuntu is in Spanish)

Basically the same question has been asked at Snap (snapcraft?) and translated apps and How it change language in vlc (snap), and translation files for VLC are present:

$ locate /vlc.mo
/snap/vlc/1/share/locale/ach/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/af/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/am/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/an/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ar/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ast/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/az/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/be/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/bg/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/bn/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/bn_IN/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/br/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/bs/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ca/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/cgg/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ckb/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/co/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/cs/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/cy/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/da/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/de/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/el/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/en_GB/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/es/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/et/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/eu/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/fa/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ff/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/fi/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/fr/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/fur/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ga/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/gd/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/gl/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/gu/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/he/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/hi/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/hr/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/hu/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/hy/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ia/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/id/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/is/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/it/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ja/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ka/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/kk/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/km/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/kn/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ko/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ky/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/lg/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/lt/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/lv/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/mk/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ml/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/mn/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/mr/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ms/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/my/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/nb/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ne/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/nl/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/nn/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/oc/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/or/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/pa/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/pl/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ps/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/pt_BR/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/pt_PT/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ro/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ru/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/si/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/sk/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/sl/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/sq/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/sr/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/sv/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/ta/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/te/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/tet/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/th/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/tl/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/tr/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/uk/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/uz/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/vi/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/wa/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/zh_CN/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/zh_TW/LC_MESSAGES/vlc.mo
/snap/vlc/1/share/locale/zu/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ach/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/af/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/am/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/an/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ar/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ast/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/az/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/be/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/bg/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/bn/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/bn_IN/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/br/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/bs/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ca/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/cgg/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ckb/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/co/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/cs/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/cy/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/da/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/de/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/el/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/en_GB/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/es/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/es_MX/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/et/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/eu/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/fa/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ff/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/fi/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/fr/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/fur/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ga/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/gd/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/gl/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/gu/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/he/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/hi/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/hr/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/hu/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/hy/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ia/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/id/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/is/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/it/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ja/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ka/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/kk/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/km/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/kn/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ko/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ks_IN/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ky/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/lg/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/lt/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/lv/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/mai/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/mk/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ml/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/mn/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/mr/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ms/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/my/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/nb/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ne/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/nl/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/nn/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/oc/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/or/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/pa/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/pl/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ps/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/pt_BR/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/pt_PT/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ro/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ru/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/si/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/sk/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/sl/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/sq/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/sr/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/sv/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/ta/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/te/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/tet/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/th/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/tl/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/tr/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/uk/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/uz/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/vi/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/wa/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/zh_CN/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/zh_TW/LC_MESSAGES/vlc.mo
/snap/vlc/1/usr/share/locale/zu/LC_MESSAGES/vlc.mo
3
+200

For applications packaged as snaps, it may be necessary to make a change to the code so that it can find the translations in the correct location in the file system.

For applications and libraries which use gettext, this means that the call to bindtextdomain() needs to prepend the value of the $SNAP environment variable to the directory path passed in as the second argument. Any applications (and/or libraries they may be using) which don't do this, may indeed not have working translations, due to the hard-coded path being used pointing at a path outside of the snap.

1
2

As ToX 82 pointed out in a comment at Snap (snapcraft?) and translated apps, there is a bug report. This seems not to be an issue with the individual VLC snap, after all, but rather a general snap localization issue.

3
  • 1
    There are multiple possible ways to "solve" it, including possibly patching gettext/libintl itself to always prepend the $SNAP value in bindtextdomain(), but really things packaged as snaps should be built to refer to necessary files inside the snap via relative paths.
    – dobey
    Dec 21 '16 at 19:25
  • @dobey: Ok, so you mean that irrespective of that overall discussion, it will work if you do 'the right thing' when building a snap? Dec 21 '16 at 19:29
  • Yes, generally. There may be issues in underlying libraries that get pulled in, but if everything is contained in the snap and the binaries are built to refer to paths in the snap, it will work.
    – dobey
    Dec 21 '16 at 20:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.