Gentoo Archives: gentoo-devhelp

From: Nikos Chantziaras <realnc@×××××.de>
To: Daniel Pielmeier <daniel.pielmeier@××××××××××.com>, gentoo-devhelp@l.g.o
Subject: Re: [gentoo-devhelp] LINGUAS vs LANGUAGES
Date: Fri, 15 May 2009 14:47:01
(It would be nice to reply on-list so the list's archives will be 
helpful to others searching through it.)

Daniel Pielmeier wrote:
> 2009/5/15 Nikos Chantziaras <realnc@×××××.de>: >> Reading the Gentoo Development Guide doesn't offer much help on LINGUAS: >> >> >> >> It says to look at games-rpg/nwn, but that ones seems to use LANGUAGES >> instead of LINGUAS. My ebuild is EAPI=2 and the application in question >> supports English and German. What is correct, LINGUAS="en de" or >> LANGUAGES="en de"? > > LINGUAS holds the languages you want to install from make.conf. > LANGUAES or LANGS or any other variable name you choose in your ebuild > should refer to the languages available in the application to be > installed.
Then I guess LINGUAS is what I need, since a user not having "de" in make.conf wouldn't want a German translation of the application's GUI installed.
> How you treat localisation in your ebuild depends on how the > application itself treats the installation of locales. Take a look at > net-irc/quassel for an example of an application that also uses cmake > as build system. Maybe there is a better way to achieve locales > installation but this one works. For cmake you need to know if the > application supports customized installation of locales by using > LINGUAS. Take a look in CMakelists.txt in the source for hints.
The application uses qmake and it simply installs all languages (*.qm files) unconditionally during "make install" and loads the appropriate one according to the LANG env variable at runtime, falling back to English if one isn't available. At this time, German ("de") is the only one supported though (the app's built-in being English). The solution I arrived at in my ebuild is: IUSE="linguas_de" and then in src_install() I don't use the "install" make target which would install the *.qm files unconditionally, but rather use the other targets "install" depends upon, omitting "install_i18n": # Install everything except documentation and i18n. emake INSTALL_ROOT="${D}" install_target install_charmaps \ || die "make install failed" # Install i18n files. if use linguas_de; then insinto "${GAMES_DATADIR}/${PN}/i18n" doins "${PN}_de.qm" || die "doins ${PN}_de.qm failed" fi It works. I assume putting linguas_de directly in IUSE is correct?


Subject Author
Re: [gentoo-devhelp] LINGUAS vs LANGUAGES Daniel Pielmeier <daniel.pielmeier@××××××××××.com>