Match target translation to site's locale

This commit is contained in:
Piero Toffanin 2023-01-15 12:07:51 -05:00
parent 5bf7a80932
commit 9fe372f58f
3 changed files with 34 additions and 18 deletions

View file

@ -132,10 +132,33 @@ def create_app(args):
iter([l for l in languages if l.code == args.frontend_language_source]),
None,
)
if frontend_argos_language_source is None:
frontend_argos_language_source = languages[0]
frontend_argos_language_target = next(
iter([l for l in languages if l.code == args.frontend_language_target]), None
)
if len(languages) >= 2:
language_target_fallback = languages[1]
else:
language_target_fallback = languages[0]
if args.frontend_language_target == "locale":
def resolve_language_locale():
loc = get_locale()
language_target = next(
iter([l for l in languages if l.code == loc]), None
)
if language_target is None:
language_target = language_target_fallback
return language_target
frontend_argos_language_target = resolve_language_locale
else:
language_target = next(
iter([l for l in languages if l.code == args.frontend_language_target]), None
)
if language_target is None:
language_target = language_target_fallback
frontend_argos_language_target = lambda: language_target
frontend_argos_supported_files_format = []
@ -143,15 +166,6 @@ def create_app(args):
for ff in file_format.supported_file_extensions:
frontend_argos_supported_files_format.append(ff)
# Raise AttributeError to prevent app startup if user input is not valid.
if frontend_argos_language_source is None:
frontend_argos_language_source = languages[0]
if frontend_argos_language_target is None:
if len(languages) >= 2:
frontend_argos_language_target = languages[1]
else:
frontend_argos_language_target = languages[0]
api_keys_db = None
if args.req_limit > 0 or args.api_keys or args.daily_req_limit > 0:
@ -896,6 +910,8 @@ def create_app(args):
type: string
description: Human-readable language name (in English)
"""
target_lang = frontend_argos_language_target()
return jsonify(
{
"charLimit": args.char_limit,
@ -911,8 +927,8 @@ def create_app(args):
"name": _lazy(frontend_argos_language_source.name),
},
"target": {
"code": frontend_argos_language_target.code,
"name": _lazy(frontend_argos_language_target.name),
"code": target_lang.code,
"name": _lazy(target_lang.name),
},
},
}

View file

@ -93,12 +93,12 @@ _default_options_objects = [
},
{
'name': 'FRONTEND_LANGUAGE_SOURCE',
'default_value': 'en',
'default_value': 'auto',
'value_type': 'str'
},
{
'name': 'FRONTEND_LANGUAGE_TARGET',
'default_value': 'es',
'default_value': 'locale',
'value_type': 'str'
},
{