--
Ticket URL: <https://code.djangoproject.com/ticket/33070>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => sarath ak
* status: new => assigned
Comment:
I fixed it
https://github.com/django/django/pull/14813
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:1>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:2>
* status: assigned => closed
* has_patch: 1 => 0
* resolution: => invalid
Comment:
`LANGUAGE_CODE` should be lowercased, so `pt-br` instead of `pt-BR`, see
[https://docs.djangoproject.com/en/3.2/topics/i18n/#definitions
"Definitions"], [https://docs.djangoproject.com/en/3.2/ref/settings
/#language-code LANGUAGE_CODE docs], and the list of
[https://github.com/django/django/blob/3219dd3388c437b4bd869b76ddd43c9cdad05090/django/conf/global_settings.py#L124
LANGUAGES].
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:3>
Comment (by Cleiton de Lima):
Replying to [comment:3 Mariusz Felisiak]:
> `LANGUAGE_CODE` should be lowercased, so `pt-br` instead of `pt-BR`, see
[https://docs.djangoproject.com/en/3.2/topics/i18n/#definitions
"Definitions"], [https://docs.djangoproject.com/en/3.2/ref/settings
/#language-code LANGUAGE_CODE docs], and the list of
[https://github.com/django/django/blob/3219dd3388c437b4bd869b76ddd43c9cdad05090/django/conf/global_settings.py#L124
LANGUAGES].
The translation of select2 only accepts pt-BR that way.
https://github.com/django/django/blob/main/django/contrib/admin/static/admin/js/vendor/select2/i18n
/pt-BR.js
https://github.com/django/django/blob/main/django/contrib/admin/widgets.py#L453
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:4>
* status: closed => new
* cc: info@… (removed)
* cc: Johannes Maron, Claude Paroz (added)
* easy: 1 => 0
* resolution: invalid =>
* stage: Unreviewed => Accepted
Comment:
Replying to [comment:4 Cleiton de Lima]:
> Replying to [comment:3 Mariusz Felisiak]:
> > `LANGUAGE_CODE` should be lowercased, so `pt-br` instead of `pt-BR`,
see [https://docs.djangoproject.com/en/3.2/topics/i18n/#definitions
"Definitions"], [https://docs.djangoproject.com/en/3.2/ref/settings
/#language-code LANGUAGE_CODE docs], and the list of
[https://github.com/django/django/blob/3219dd3388c437b4bd869b76ddd43c9cdad05090/django/conf/global_settings.py#L124
LANGUAGES].
>
> The translation of select2 only accepts pt-BR that way.
> The file is found but the translation doesn't work. It only works when
the tag html has
> {{{<html lang="pt-BR" dir="ltr" data-select2-id="14">...}}}
>
Thanks, I didn't notice that `Select2` loads translations based on `LANG`.
Lowercase when searching for a file will help only for `pt-BR` but not for
`zh-hans`, `pt-br` etc. We could probably add `lang` to the `attrs`, e.g.:
{{{
diff --git a/django/contrib/admin/widgets.py
b/django/contrib/admin/widgets.py
index aeb74773ac..f1002cac6c 100644
--- a/django/contrib/admin/widgets.py
+++ b/django/contrib/admin/widgets.py
@@ -388,6 +388,7 @@ class AutocompleteMixin:
self.db = using
self.choices = choices
self.attrs = {} if attrs is None else attrs.copy()
+ self.i18n_name = SELECT2_TRANSLATIONS.get(get_language())
def get_url(self):
return reverse(self.url_name % self.admin_site.name)
@@ -413,6 +414,7 @@ class AutocompleteMixin:
'data-theme': 'admin-autocomplete',
'data-allow-clear': json.dumps(not self.is_required),
'data-placeholder': '', # Allows clearing of the input.
+ 'lang': self.i18n_name,
'class': attrs['class'] + (' ' if attrs['class'] else '') +
'admin-autocomplete',
})
return attrs
@@ -449,8 +451,7 @@ class AutocompleteMixin:
@property
def media(self):
extra = '' if settings.DEBUG else '.min'
- i18n_name = SELECT2_TRANSLATIONS.get(get_language())
- i18n_file = ('admin/js/vendor/select2/i18n/%s.js' % i18n_name,)
if i18n_name else ()
+ i18n_file = ('admin/js/vendor/select2/i18n/%s.js' %
self.i18n_name,) if self.i18n_name else ()
return forms.Media(
js=(
'admin/js/vendor/jquery/jquery%s.js' % extra,
}}}
What do you think? It works for me.
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:5>
Comment (by Cleiton de Lima):
It looks good to me too!
Replying to [comment:5 Mariusz Felisiak]:
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:6>
* cc: Cleiton de Lima (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:7>
Comment (by Mariusz Felisiak):
Cleiton, thanks for checking. Would you like to prepare a patch?
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:8>
Comment (by Cleiton de Lima):
Yes, I will.
Replying to [comment:8 Mariusz Felisiak]:
> Cleiton, thanks for checking. Would you like to prepare a patch?
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:9>
* owner: sarath ak => Cleiton de Lima
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:10>
* has_patch: 0 => 1
Comment:
[https://github.com/django/django/pull/14871 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:11>
* stage: Accepted => Ready for checkin
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:12>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"8eb56930915f8022aa27ec29ab5be7d21764608c" 8eb56930]:
{{{
#!CommitTicketReference repository=""
revision="8eb56930915f8022aa27ec29ab5be7d21764608c"
Fixed #33070 -- Fixed loading translations with language subtags in
admin's Select2 widget.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:13>
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):
In [changeset:"a077f10df477880a23faad333aae8d9ef8738152" a077f10]:
{{{
#!CommitTicketReference repository=""
revision="a077f10df477880a23faad333aae8d9ef8738152"
[4.0.x] Fixed #33070 -- Fixed loading translations with language subtags
in admin's Select2 widget.
Backport of 8eb56930915f8022aa27ec29ab5be7d21764608c from main
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/33070#comment:14>