I have installed wesnoth 1.4.4 with the nls USE flag. The .gmo files are compiled during the emerge but .mo files are not installed. Reproducible: Always Steps to Reproduce:
Created attachment 162814 [details] full build log
What makes you think it didn't install the locales?
1. In-game language selection does not work 2. Folders in /usr/share/games/wesnoth/locales are links to /usr/share/games/wesnoth/locales/C : locales $ pwd /usr/share/games/wesnoth/locales locales $ ls -l total 4.0K lrwxrwxrwx 1 root games 1 2008-08-13 12:55 af_ZA@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 ar_AR@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 bg_BG@wesnoth -> C/ drwxr-x--- 3 root games 4.0K 2008-08-13 12:55 C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 ca_ES@valencia@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 ca_ES@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 cs_CZ@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 C@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 da_DK@wesnoth -> C/ lrwxrwxrwx 1 root games 1 2008-08-13 12:55 de_DE@wesnoth -> C/ [...] 3. There is no .mo files. equery files wesnoth | grep "\.mo" returns nothing. .mo files are present in other distribution like Debian : http://packages.debian.org/lenny/all/wesnoth-data/filelist
Your locales directory looks correct. Works fine for me. Attach your emerge --info.
Portage 2.2_rc8 (default/linux/amd64/2008.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.26-vanilla x86_64) ================================================================= System uname: Linux-2.6.26-vanilla-x86_64-AMD_Athlon-tm-_64_Processor_3000+-with-glibc2.2.5 Timestamp of tree: Wed, 13 Aug 2008 04:46:01 +0000 app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6-r1 dev-lang/python: 2.5.2-r7 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r3 sys-devel/autoconf: 2.13, 2.62-r1 sys-devel/automake: 1.7.9-r1, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.4 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib64/mozilla/defaults/pref /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y" FEATURES="distlocks parallel-fetch preserve-libs sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://ftp.first-world.info/ http://213.186.33.37/gentoo-distfiles/" LANG="en_US.utf8" LC_ALL="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common" LINGUAS="en" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X alsa amd64 bzip2 cairo cdr cli dbus dri dvd dvdr dvdread emboss evo fam firefox gif gpm hal iconv isdnlog jpeg kdeenablefinal kdehiddenvisibility mad midi mmx mp3 mpeg mudflap multilib nls nptl nptlonly ogg pam pch pcre pdf png ppds pppd qt3support reflection session spell spl sse sse2 ssl startup-notification svg sysfs truetype unicode usb vorbis xorg xv zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nv nvidia" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS I globally use en_US locale but I would have the game localized in french. Locales for french are also available on the system : locale -a C en_US en_US.iso88591 en_US.utf8 français french fr_FR fr_FR@euro fr_FR.iso88591 fr_FR.iso885915@euro fr_FR.utf8 POSIX
I will try to compile it without the "dummy-locales" option.
Without the "dummy-locales" option, .mo files are not installed and symlinks in /usr/share/games/wesnoth/locales/ are not created.
I tried to manually install the game (./configure && make && make install). .mo files are installed : LC_MESSAGES $ pwd /usr/local/share/wesnoth/translations/fr/LC_MESSAGES LC_MESSAGES $ ls wesnoth-aoi.mo wesnoth-ei.mo wesnoth-l.mo wesnoth-nr.mo wesnoth-tb.mo wesnoth-tsg.mo wesnoth-utbs.mo wesnoth-did.mo wesnoth-httt.mo wesnoth.mo wesnoth-sof.mo wesnoth-thot.mo wesnoth-tutorial.mo wesnoth-editor.mo wesnoth-lib.mo wesnoth-multiplayer.mo wesnoth-sotbe.mo wesnoth-trow.mo wesnoth-units.mo And in-game localization works too.
Created attachment 162859 [details] my wesnoth-1.4.4 build You can compare your build and mine and try to figure out why it doesn't work correctly on your system.
The main difference is my .mo files are not installed : >>> Install wesnoth-1.4.4 into /var/tmp/portage/games-strategy/wesnoth-1.4.4/image/ category games-strategy Making install in po make[1]: Entering directory `/var/tmp/portage/games-strategy/wesnoth-1.4.4/work/wesnoth-1.4.4/po' Making install in wesnoth make[2]: Entering directory `/var/tmp/portage/games-strategy/wesnoth-1.4.4/work/wesnoth-1.4.4/po/wesnoth' /bin/sh ../../config/mkinstalldirs /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games if test "wesnoth" = "gettext-tools"; then \ /bin/sh ../../config/mkinstalldirs /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po; \ for file in Makefile.in.in remove-potcdate.sin Makevars.template; do \ /bin/install -c -m 644 ./$file \ /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po/$file; \ done; \ for file in Makevars; do \ rm -f /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po/$file; \ done; \ else \ : ; \ fi They are on your system : >>> Install wesnoth-1.4.4 into /var/tmp/portage/games-strategy/wesnoth-1.4.4/image/ category games-strategy Making install in po make[1]: Entering directory `/var/tmp/portage/games-strategy/wesnoth-1.4.4/work/wesnoth-1.4.4/po' Making install in wesnoth make[2]: Entering directory `/var/tmp/portage/games-strategy/wesnoth-1.4.4/work/wesnoth-1.4.4/po/wesnoth' /bin/sh ../../config/mkinstalldirs /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/af/LC_MESSAGES installing af.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/af/LC_MESSAGES/wesnoth.mo [...] mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/ru/LC_MESSAGES installing ru.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/ru/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sk/LC_MESSAGES installing sk.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sk/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sl/LC_MESSAGES installing sl.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sl/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sr/LC_MESSAGES installing sr.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sr/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sr@latin/LC_MESSAGES installing sr@latin.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sr@latin/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sv/LC_MESSAGES installing sv.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/sv/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/tl/LC_MESSAGES installing tl.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/tl/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/tr/LC_MESSAGES installing tr.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/tr/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/zh_CN/LC_MESSAGES installing zh_CN.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/zh_CN/LC_MESSAGES/wesnoth.mo mkdir -p -- /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/zh_TW/LC_MESSAGES installing zh_TW.gmo as /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/locale/zh_TW/LC_MESSAGES/wesnoth.mo if test "wesnoth" = "gettext-tools"; then \ /bin/sh ../../config/mkinstalldirs /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po; \ for file in Makefile.in.in remove-potcdate.sin Makevars.template; do \ /usr/bin/install -c -m 644 ./$file \ /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po/$file; \ done; \ for file in Makevars; do \ rm -f /var/tmp/portage/games-strategy/wesnoth-1.4.4/image//usr/share/games/gettext/po/$file; \ done; \ else \ : ; \ fi The problem is in Makefiles in po subfolders, on a working install : CATALOGS = af.gmo ar.gmo bg.gmo ca.gmo ca_ES@valencia.gmo cs.gmo da.gmo de.gmo el.gmo en_GB.gmo es.gmo eo.gmo et.gmo eu.gmo fi.gmo fr.gmo fur_IT.gmo gl.gmo he ▸▸.gmo hr.gmo hu.gmo id.gmo it.gmo ja.gmo ko.gmo la.gmo lt.gmo lv.gmo mk.gmo nl.gmo nb_NO.gmo pl.gmo pt.gmo pt_BR.gmo ro.gmo ru.gmo sk.gmo sl.gmo sr.gmo sr@lat ▸▸in.gmo sv.gmo tl.gmo tr.gmo zh_CN.gmo zh_TW.gmo On my broken install : CATALOGS = I will looking for a reason why the CATALOGS variable is not correct.
I have found the problem. The LINGUAS Portage variable must not to be set in /etc/make.conf. Then .mo files are installed.
Well, you're telling the configure script that you only want english installed by setting LINGUAS=en and then you're wondering why it's doing what you tell it to do? Sounds like unrealistic expectations to me. If you want more languages installed, set them in your LINGUAS variable.
Ok but the use of the LINGUAS variable is not consistent. With some ebuilds, the LINGUAS variable is shown with the emerge --verbose option (mozilla-firefox, openoffice, etc.) With some others, the LINGUAS variable does nothing, all locales are installed (gimp). And with wesnoth, the LINGUAS is used but it's not noticed. It's a bit confusing.