From 3fb2289988278449da5273fdea875bcfbcda971a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 22 Mar 2026 09:35:10 +0100 Subject: [PATCH] Auto-detect locales in build-docs-l10n.sh from coreutils source Scan coreutils/src/uu/ls/locales/*.ftl to discover available translations instead of maintaining a hardcoded language list. --- scripts/build-docs-l10n.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/scripts/build-docs-l10n.sh b/scripts/build-docs-l10n.sh index 44e359fbf..961120e4d 100755 --- a/scripts/build-docs-l10n.sh +++ b/scripts/build-docs-l10n.sh @@ -14,13 +14,25 @@ set -euo pipefail COREUTILS_DIR="${1:?Usage: $0 }" -# Languages to build (besides English which is already built) -declare -A LANG_MAP=( - [fr]="fr-FR" [de]="de" [es]="es-ES" [it]="it" [pt]="pt" [pt-BR]="pt-BR" - [ja]="ja" [ko]="ko" [ru]="ru" [zh]="zh-Hans" [uk]="uk" [sv]="sv" - [pl]="pl" [tr]="tr" [ar]="ar" [cs]="cs" [da]="da" [id]="id" +# ftl filename -> URL lang code (when they differ) +declare -A FTL_TO_URL=( + [fr-FR]="fr" [es-ES]="es" [zh-Hans]="zh" [zh-Hant]="zh-Hant" + [pt-BR]="pt-BR" [nb-NO]="nb-NO" ) +# Discover available locales from the coreutils source (l10n already copied in) +# Use ls utility as reference +declare -A LANG_MAP=() +for ftl in "$COREUTILS_DIR"/src/uu/ls/locales/*.ftl; do + [ -f "$ftl" ] || continue + ftl_name=$(basename "$ftl" .ftl) + [ "$ftl_name" = "en-US" ] && continue + url_code="${FTL_TO_URL[$ftl_name]:-$ftl_name}" + LANG_MAP[$url_code]="$ftl_name" +done + +echo "Found ${#LANG_MAP[@]} locales to build: ${!LANG_MAP[*]}" + TMPDIR=$(mktemp -d) trap 'rm -rf "$TMPDIR"' EXIT