feat: Apply a language code map for certain locales, p=#11669, c=scripts

This commit is contained in:
mr. m
2025-12-19 16:13:28 +01:00
committed by GitHub
parent d16b27cf3b
commit 02e0cd8717
4 changed files with 34 additions and 4 deletions

1
locales/language-maps Normal file
View File

@@ -0,0 +1 @@
nb:nb-NO

View File

@@ -21,7 +21,7 @@
"sync:raw": "surfer update", "sync:raw": "surfer update",
"sync:rc": "python3 scripts/update_ff.py --rc", "sync:rc": "python3 scripts/update_ff.py --rc",
"sync:l10n": "python3 scripts/update_ff.py --just-l10n", "sync:l10n": "python3 scripts/update_ff.py --just-l10n",
"pretty": "prettier . --write --cache && autopep8 -r --in-place scripts/ src/", "pretty": "prettier . --write --cache && autopep8 -r --in-place scripts/ src/ --exclude */tests/*",
"lint": "npx eslint src/ && prettier . --check --cache", "lint": "npx eslint src/ && prettier . --check --cache",
"lint:fix": "npm run pretty && npx eslint src/ --fix", "lint:fix": "npm run pretty && npx eslint src/ --fix",
"prepare": "husky", "prepare": "husky",

View File

@@ -10,13 +10,32 @@ import sys
BROWSER_LOCALES = "engine/browser/locales" BROWSER_LOCALES = "engine/browser/locales"
def get_language_code(lang_id: str) -> str:
"""
Retrieves the language code from the language-maps file.
:param lang_id: Language identifier (e.g., 'nb', 'fr', etc.)
:return: Corresponding language code (e.g., 'nb-NO', 'fr-FR', etc.)
"""
language_maps_path = os.path.join("locales", "language-maps")
if not os.path.exists(language_maps_path):
return lang_id # Return the original if the file doesn't exist
with open(language_maps_path, "r", encoding="utf-8") as f:
for line in f:
if line.startswith(f"{lang_id}:"):
return line.split(":", 1)[1].strip()
return lang_id # Return the original if no mapping is found
def copy_browser_locales(lang_id: str): def copy_browser_locales(lang_id: str):
""" """
Copies language pack files to the specified browser locale directory. Copies language pack files to the specified browser locale directory.
:param lang_id: Language identifier (e.g., 'en-US', 'fr', etc.) :param lang_id: Language identifier (e.g., 'en-US', 'fr', etc.)
""" """
lang_path = os.path.join(BROWSER_LOCALES, lang_id) lang_code = get_language_code(lang_id)
lang_path = os.path.join(BROWSER_LOCALES, lang_code)
# Create the directory for the language pack if it doesn't exist # Create the directory for the language pack if it doesn't exist
os.makedirs(lang_path, exist_ok=True) os.makedirs(lang_path, exist_ok=True)

View File

@@ -39,10 +39,20 @@ fi
set -e set -e
update_language() { get_code_for_language() {
# Get the language code from locales/language-maps
langId=$1 langId=$1
code=$(grep "^$langId:" ./locales/language-maps | cut -d':' -f2)
if [ -z "$code" ]; then
code=$langId
fi
echo $code
}
update_language() {
langId=$(get_code_for_language $1)
cd ./locales cd ./locales
cd $langId cd $1
echo "Updating $langId" echo "Updating $langId"
# move the contents from ../firefox-l10n/$langId to ./locales/$langId # move the contents from ../firefox-l10n/$langId to ./locales/$langId