#35698: Pluralised blocktranslate doesn't translate
-----------------------+------------------------------------------------
     Reporter:  nootr  |                     Type:  Uncategorized
       Status:  new    |                Component:  Internationalization
      Version:  4.2    |                 Severity:  Normal
     Keywords:         |             Triage Stage:  Unreviewed
    Has patch:  0      |      Needs documentation:  0
  Needs tests:  0      |  Patch needs improvement:  0
Easy pickings:  0      |                    UI/UX:  0
-----------------------+------------------------------------------------
 Translating with `{% blocktranslate %}` or `{% blocktrans %}` does
 translate. However, when I add `count counter=1`, the correct sentence is
 used, but not translated.

 **How to reproduce**

 I'm able to reproduce the issue by setting up a minimal Django 4.2.15
 project on MacOS:

 {{{
 python3 -m venv venv
 source venv/bin/activate
 pip install Django==4.2.15

 django-admin startproject blocktranstest
 cd blocktranstest/
 ./manage.py startapp home
 mkdir -p home/templates/home
 }}}

 Add the following settings to ''blocktranstest/settings.py'':

 {{{
 from django.utils.translation import gettext_lazy as _

 LANGUAGE_CODE = "nl-NL"
 LANGUAGES = [("nl", _("Nederlands"))]
 MIDDLEWARE = [
     "django.middleware.security.SecurityMiddleware",
     "django.contrib.sessions.middleware.SessionMiddleware",
     "django.middleware.locale.LocaleMiddleware", # Added
     "django.middleware.common.CommonMiddleware",
     "django.middleware.csrf.CsrfViewMiddleware",
     "django.contrib.auth.middleware.AuthenticationMiddleware",
     "django.contrib.messages.middleware.MessageMiddleware",
     "django.middleware.clickjacking.XFrameOptionsMiddleware",
 ]
 INSTALLED_APPS += ["home"]
 }}}

 home/templates/home/index.html:

 {{{
 {% load i18n %}
 <p style="color: green">{% trans "Please correct the error below." %}</p>
 <p style="color: green">{% trans "Please correct the errors below." %}</p>
 <p style="color: green">{% blocktranslate %}Please correct the error
 below.{% endblocktranslate %}</p>
 <p style="color: green">{% blocktranslate %}Please correct the errors
 below.{% endblocktranslate %}</p>
 <p style="color: red">{% blocktranslate count counter=1 %}Please correct
 the error below.{% plural %}Please correct the errors below.{%
 endblocktranslate %}</p>
 <p style="color: red">{% blocktranslate count counter=2 %}Please correct
 the error below.{% plural %}Please correct the errors below.{%
 endblocktranslate %}</p>
 <p style="color: red">{% blocktrans count counter=1 %}Please correct the
 error below.{% plural %}Please correct the errors below.{% endblocktrans
 %}</p>
 <p style="color: red">{% blocktrans count counter=2 %}Please correct the
 error below.{% plural %}Please correct the errors below.{% endblocktrans
 %}</p>
 }}}

 home/views.py:

 {{{
 from django.shortcuts import render


 def index(request):
     return render(request, "home/index.html")
 }}}

 home/urls.py:

 {{{
 from django.urls import path

 from . import views

 urlpatterns = [
     path("", views.index, name="index"),
 ]
 }}}

 blocktranstest/urls.py:

 {{{
 from django.contrib import admin
 from django.urls import include, path

 urlpatterns = [
     path("", include("home.urls")),
     path("admin/", admin.site.urls),
 ]
 }}}

 {{{
 ./manage.py runserver
 }}}

 The index page shows that the first 4 sentences are translated correctly
 to Dutch, but the last 4 sentences are still in English (although the
 correct pluralised sentences are used):

 {{{
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 Please correct the error below.
 Please correct the errors below.
 Please correct the error below.
 Please correct the errors below.
 }}}

 The expected output is:

 {{{
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 Corrigeer de fout hieronder.
 Corrigeer de fouten hieronder.
 }}}
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35698>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070191743b3e3d-98b9c56a-97a3-47a1-b34c-f8b5c6c77902-000000%40eu-central-1.amazonses.com.

Reply via email to