From 3913f8ea98073a5ced6dc1c0b8f7f2d8883ce965 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sat, 14 Jun 2025 19:00:36 +0200 Subject: [PATCH] Add new option --frontend-language Signed-off-by: DL6ER --- README.md | 1 + libretranslate/app.py | 2 +- libretranslate/default_values.py | 5 +++++ libretranslate/main.py | 7 +++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bb05110..f9d60b0 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,7 @@ Arguments passed to the process or set via environment variables are split into | --ga-id | Enable Google Analytics on the API client page by providing an ID | `Empty (no tracking)` | LT_GA_ID | | --frontend-language-source | Set frontend default language - source | `auto` | LT_FRONTEND_LANGUAGE_SOURCE | | --frontend-language-target | Set frontend default language - target | `locale` (match site's locale) | LT_FRONTEND_LANGUAGE_TARGET | +| --frontend-language | Set frontend web interface language | `(empty)` (auto-detect) | LT_FRONTEND_LANGUAGE | | --frontend-timeout | Set frontend translation timeout | `500` | LT_FRONTEND_TIMEOUT | | --api-keys-db-path | Use a specific path inside the container for the local database. Can be absolute or relative | `db/api_keys.db` | LT_API_KEYS_DB_PATH | | --api-keys-remote | Use this remote endpoint to query for valid API keys instead of using the local database | `Empty (use local db instead)` | LT_API_KEYS_REMOTE | diff --git a/libretranslate/app.py b/libretranslate/app.py index d30663f..9221c6e 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -429,7 +429,7 @@ def create_app(args): if args.disable_web_ui: abort(404) - langcode = request.args.get('lang') + langcode = args.frontend_language if len(args.frontend_language) > 0 else request.args.get('lang') if langcode and langcode in get_available_locale_codes(not args.debug): session.update(preferred_lang=langcode) diff --git a/libretranslate/default_values.py b/libretranslate/default_values.py index 3d2e3a8..d709273 100644 --- a/libretranslate/default_values.py +++ b/libretranslate/default_values.py @@ -116,6 +116,11 @@ _default_options_objects = [ 'default_value': 'locale', 'value_type': 'str' }, + { + 'name': 'FRONTEND_LANGUAGE', + 'default_value': '', + 'value_type': 'str' + }, { 'name': 'FRONTEND_TIMEOUT', 'default_value': 500, diff --git a/libretranslate/main.py b/libretranslate/main.py index ea6eb3d..baf9b18 100644 --- a/libretranslate/main.py +++ b/libretranslate/main.py @@ -104,6 +104,13 @@ def get_args(): metavar="", help="Set frontend default language - target (%(default)s)", ) + parser.add_argument( + "--frontend-language", + type=str, + default=DEFARGS['FRONTEND_LANGUAGE'], + metavar="", + help="Set frontend interface language (%(default)s)", + ) parser.add_argument( "--frontend-timeout", type=int,