l10n_find_plocales_change assumes that PLOCALES is sorted
alphanumerically with a single space between each entry and no
surrounding whitespace. This is not a bad assumption but it isn't
documented and it's inconvenient in at least one particular case.

MakeMKV uses non-standard locale names and I intend to map these using
an associative array, which is possible as of EAPI 6. This allows me
to do the following, though only with the above change as associative
arrays are not ordered.

declare -A MY_LOCALES
MY_LOCALES=( [zh]=chi [da]=dan … )
PLOCALES="${!MY_LOCALES[@]}"
inherit l10n

src_prepare() {
        PLOCALES="${MY_LOCALES[@]}" l10n_find_plocales_changes …
}

src_install() {
        for locale in $(l10n_get_locales); do
                doins makemkv_${MY_LOCALES[${locale}]}.mo.gz
        done
}
---
 eclass/l10n.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/l10n.eclass b/eclass/l10n.eclass
index a7a6a26..26aa864 100644
--- a/eclass/l10n.eclass
+++ b/eclass/l10n.eclass
@@ -86,7 +86,7 @@ l10n_find_plocales_changes() {
                current+="${x} "
        done
        popd >/dev/null
-       if [[ ${PLOCALES} != ${current%[[:space:]]} ]] ; then
+       if [[ $(tr -s "[:space:]" "\n" <<< "${PLOCALES}" | sort | xargs echo) 
!= ${current%[[:space:]]} ]] ; then
                einfo "There are changes in locales! This ebuild should be 
updated to:"
                einfo "PLOCALES=\"${current%[[:space:]]}\""
        else
-- 
2.7.1

Attachment: pgpPZ9bJ4Za_6.pgp
Description: OpenPGP digital signature

Reply via email to