details: https://code.tryton.org/tryton/commit/18d793750056
branch: 7.0
user: Adrià Tarroja Caubet <[email protected]>
date: Thu Mar 05 17:26:35 2026 +0100
description:
Normalize Sao language codes to BCP 47 format
Normalize lang and locale values to use BCP 47 tags.
Closes #14653
(grafted from 54e6fe77b5e2155ff05dc7d4372dbaea7ccb8f61)
diffstat:
sao/src/sao.js | 2 +-
sao/src/screen.js | 2 +-
sao/src/view/calendar.js | 2 +-
sao/src/view/form.js | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diffs (48 lines):
diff -r be4ae41d7e60 -r 18d793750056 sao/src/sao.js
--- a/sao/src/sao.js Sun Mar 08 13:03:34 2026 +0100
+++ b/sao/src/sao.js Thu Mar 05 17:26:35 2026 +0100
@@ -362,7 +362,7 @@
navigator.userLanguage ||
'en').replace('-', '_');
}
- jQuery('html').attr('lang', lang);
+ jQuery('html').attr('lang', Sao.i18n.BC47(lang));
Sao.i18n.setLocale(lang);
moment.locale(lang.slice(0, 2));
return jQuery.getJSON('locale/' + lang + '.json').then(function(data) {
diff -r be4ae41d7e60 -r 18d793750056 sao/src/screen.js
--- a/sao/src/screen.js Sun Mar 08 13:03:34 2026 +0100
+++ b/sao/src/screen.js Thu Mar 05 17:26:35 2026 +0100
@@ -740,7 +740,7 @@
'class': 'form-control input-sm',
'type': 'number',
'step': 'any',
- 'lang': Sao.i18n.getlang(),
+ 'lang': Sao.i18n.BC47(Sao.i18n.getlang()),
}).appendTo(el);
return entry;
},
diff -r be4ae41d7e60 -r 18d793750056 sao/src/view/calendar.js
--- a/sao/src/view/calendar.js Sun Mar 08 13:03:34 2026 +0100
+++ b/sao/src/view/calendar.js Thu Mar 05 17:26:35 2026 +0100
@@ -87,7 +87,7 @@
this.view.screen.context.calendar_scroll_time ||
Sao.Time(6)).toString(),
events: this.view.get_events.bind(this.view),
- locale: Sao.i18n.getlang().slice(0, 2),
+ locale: Sao.i18n.BC47(Sao.i18n.getlang()).toLowerCase(),
isRTL: Sao.i18n.rtl,
themeSystem: 'bootstrap3',
bootstrapGlyphicons: {
diff -r be4ae41d7e60 -r 18d793750056 sao/src/view/form.js
--- a/sao/src/view/form.js Sun Mar 08 13:03:34 2026 +0100
+++ b/sao/src/view/form.js Thu Mar 05 17:26:35 2026 +0100
@@ -1963,7 +1963,7 @@
input_text.attr('type', 'text');
input.attr('type', 'number');
input.attr('step', 1);
- input.attr('lang', Sao.i18n.getlang());
+ input.attr('lang', Sao.i18n.BC47(Sao.i18n.getlang()));
input.hide().on('focusout', function() {
if (input[0].checkValidity()) {