Skip to content

Commit da91e36

Browse files
Merge pull request #23 from Rossi-Luciano/i18n_add_multi_language_support_for_Django_Celery_Beat_pt-BR_en_es
i18n: Complete localization for Django application (pt-BR, en, es)
2 parents cd89f8c + 6d0e3b8 commit da91e36

File tree

16 files changed

+2745
-19
lines changed

16 files changed

+2745
-19
lines changed

config/settings/base.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
"django.contrib.sessions.middleware.SessionMiddleware",
9191
"django.middleware.common.CommonMiddleware",
9292
"django.middleware.csrf.CsrfViewMiddleware",
93+
'django.middleware.locale.LocaleMiddleware',
9394
"django.contrib.auth.middleware.AuthenticationMiddleware",
9495
"django.contrib.messages.middleware.MessageMiddleware",
9596
"django.middleware.clickjacking.XFrameOptionsMiddleware",
@@ -143,16 +144,25 @@
143144
},
144145
]
145146

146-
147147
# Internationalization
148148
# https://docs.djangoproject.com/en/5.1/topics/i18n/
149149

150-
LANGUAGE_CODE = "en-us"
150+
LANGUAGE_CODE = "pt-br"
151+
152+
LANGUAGES = [
153+
('pt-br', 'Português (Brasil)'),
154+
('es', 'Español'),
155+
('en', 'English'),
156+
]
157+
158+
LOCALE_PATHS = [
159+
os.path.join(BASE_DIR, 'locale'),
160+
]
151161

152162
TIME_ZONE = "UTC"
153163

154164
USE_I18N = True
155-
165+
USE_L10N = True
156166
USE_TZ = True
157167

158168

config/urls.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.urls import include, path
33
from django.contrib import admin
44
from django.conf.urls.static import static
5+
from django.conf.urls.i18n import i18n_patterns # ← Adicionar esta linha
56
from wagtail.admin import urls as wagtailadmin_urls
67
from wagtail import urls as wagtail_urls
78
from wagtail.documents import urls as wagtaildocs_urls
@@ -21,8 +22,19 @@
2122
path("api/v1/auth/token/", TokenObtainPairView.as_view(), name="token_obtain_pair"),
2223
path("api/v1/auth/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
2324
path("api/v1/mix_citation/", include("config.api_router", namespace="reference")),
25+
# URL para trocar idioma
26+
path('i18n/', include('django.conf.urls.i18n')),
2427
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
2528

29+
# URLs com prefixo de idioma
30+
urlpatterns += i18n_patterns(
31+
path("admin/", include(wagtailadmin_urls)),
32+
path("documents/", include(wagtaildocs_urls)),
33+
path("search/", search_views.search, name="search"),
34+
# Wagtail pages - deve ser o último
35+
path("", include(wagtail_urls)),
36+
# prefix_default_language=False # Remove /pt-br/ da URL padrão se quiser
37+
)
2638

2739
if settings.DEBUG:
2840
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

core/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.db import models
22
from django.contrib.auth import get_user_model
3-
from django.utils.translation import gettext as _
3+
from django.utils.translation import gettext_lazy as _
44

55
User = get_user_model()
66

core_settings/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.db import models
2-
from django.utils.translation import gettext as _
2+
from django.utils.translation import gettext_lazy as _
33
from wagtail.admin.panels import FieldPanel, ObjectList, TabbedInterface
44
from wagtail.contrib.settings.models import BaseSiteSetting, register_setting
55
from wagtail.fields import RichTextField
@@ -15,8 +15,8 @@ class CustomSettings(BaseSiteSetting):
1515
"""
1616

1717
class Meta:
18-
verbose_name = _("Configuração do site")
19-
verbose_name_plural = _("Configuração do site")
18+
verbose_name = _("Site configuration")
19+
verbose_name_plural = _("Site configuration")
2020

2121
name = models.CharField(max_length=100, null=True, blank=True)
2222
email = models.EmailField(max_length=100, null=True, blank=True)

django_celery_beat/button_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.urls import reverse
2-
from django.utils.translation import gettext as _
2+
from django.utils.translation import gettext_lazy as _
33
from wagtail_modeladmin.helpers import ButtonHelper
44

55

django_celery_beat/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ class PeriodicTask(models.Model):
573573

574574
content_panels = [
575575
HelpPanel(
576-
_("Essa é a área de configuração de execução de tarefas assíncronas.")
576+
_("This is the configuration area for executing asynchronous tasks.")
577577
),
578578
FieldPanel("name"),
579579
FieldPanel("regtask"),

django_celery_beat/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from celery import current_app
44
from django.shortcuts import get_object_or_404, redirect
5-
from django.utils.translation import gettext as _
5+
from django.utils.translation import gettext_lazy as _
66
from wagtail.admin import messages
77

88
from django_celery_beat import models

0 commit comments

Comments
 (0)