#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.