On Wed, Feb 8, 2012 at 12:04 PM, Mart Raudsepp <l...@gentoo.org> wrote: > On K, 2012-02-08 at 11:32 -0500, Mike Gilbert wrote: >> I am considering simplifying www-client/chromium from the current mess >> based on the linguas USE flags to basically just this: >> >> if [[ ${LINGUAS} ]]; then >> for x in *.pak; do >> mylang=${x%.pak} >> mylang=%{x/-/_} >> has $mylang $LINGUAS || rm $x >> done >> fi
> I think users could be surprised a bit about cases where you have > variants or dialects, e.g currently as IUSE=linguas_fr_FR, when users > only have LINGUAS=fr - in gettext they often don't have a fr_FR.po, just > fr.po; if locale has LC_MESSAGE and LANG at fr_FR, it will look at "fr" > if more specific fr_FR not found. > I define things like LINGUAS="en en_US et et_EE" to be really sure, but > I doubt many users do that (but that's just a guess). > If it's exposed via IUSE, then they can at least have some visual cue of > that. > I guess it wouldn't be a concern if we had a tool to set the LINGUAS > that handled this variant logic nicely, or just educating users in > documentation, make.conf.example comments and so on. Thanks for catching that Mart. I think I have addressed the dialect issue by more directly emulating the autoconf macro. See below. I would greatly appreciate any additional feedback anyone has on this subject. New code, currently used (experimentally) in google-chrome-19.0.1049.3_alpha123257.ebuild: if [[ "%UNSET%" != "${LINGUAS-%UNSET}" ]]; then local found desiredlang presentlang pak pakname pushd "${CHROME_HOME}locales" > /dev/null || die for pak in *.pak; do pakname="${pak%.pak}" pakname="${pakname/-/_}" presentlang="$(chromium_lang "${pakname}")" # Do not issue warning for en_US locale. This is the fallback # locale so it should always be installed. if [[ "${presentlang}" == "en_US" ]]; then continue fi found= for desiredlang in ${LINGUAS}; do if [[ "${desiredlang}" == "${presentlang}"* ]]; then found=1 break fi done if [[ -z ${found} ]]; then rm "${pak}" || die fi done popd > /dev/null fi