Skip to content

Conversation

@Rossi-Luciano
Copy link
Contributor

@Rossi-Luciano Rossi-Luciano commented Sep 3, 2025

O que esse PR faz?

Implementa suporte completo de internacionalização (i18n) para a aplicação Django, adicionando traduções em português brasileiro (pt-BR), inglês (en) e espanhol (es). O PR soluciona a ausência de localização para usuários não falantes de inglês, incluindo tradução de todos os textos do Django Celery Beat (agendamento de tarefas), módulos core da aplicação, sistema de tracking, gerenciador XML e interface administrativa.

Onde a revisão poderia começar?

A revisão deve iniciar pelos arquivos de configuração de idioma:

  • locale/pt_BR/LC_MESSAGES/django.po (tradução principal em português)
  • locale/es/LC_MESSAGES/django.po (tradução em espanhol)
  • locale/en/LC_MESSAGES/django.po (baseline em inglês)

Em seguida, verificar as configurações em settings.py relacionadas a LANGUAGES, LOCALE_PATHS e USE_I18N.

Como este poderia ser testado manualmente?

  1. Executar python manage.py compilemessages para gerar os arquivos .mo
  2. Configurar LANGUAGE_CODE = 'pt-br' no settings.py e reiniciar o servidor
  3. Acessar a interface administrativa do Django Celery Beat
  4. Verificar se textos como "Tarefas Periódicas", "Agendamento por Intervalos", etc. aparecem em português
  5. Testar alternância entre idiomas se implementado seletor de idioma
  6. Validar pluralização com contadores (ex: "1 tarefa" vs "2 tarefas")
  7. Repetir testes para espanhol (es) e inglês (en)

Algum cenário de contexto que queira dar?

A aplicação possui forte dependência do Django Celery Beat para agendamento de tarefas assíncronas, incluindo funcionalidades avançadas como agendamento solar (baseado em eventos astronômicos) e configuração de cron jobs. Com usuários em diferentes países da América Latina, a localização se torna essencial para adoção e usabilidade. As traduções mantêm precisão técnica em termos astronômicos (aurora astronômica, crepúsculo náutico) e preservam terminologia técnica internacional (AMQP, JSON, crontab).

Implementação de Internacionalização com URLs Multilíngues: Configura suporte a múltiplos idiomas (pt-br, es, en) usando i18n_patterns no Django/Wagtail. As URLs agora suportam prefixos de idioma (/pt-br/admin/, /es/admin/, /en/admin/) enquanto APIs permanecem sem prefixo. Inclui configuração do LocaleMiddleware, estrutura de diretórios locale/, e comandos para gerar/compilar traduções. Testado via URLs diretas e alternância por cookie.

Screenshots

N.A.

Quais são tickets relevantes?

TK #21

Referências

Django Internationalization Documentation
GNU gettext Manual
Django Celery Beat Documentation
Wagtail Internationalization Guide

http://localhost:8009/admin/ - Português (padrão)
http://localhost:8009/pt-br/admin/ - Português explícito
http://localhost:8009/es/admin/ - Espanhol
http://localhost:8009/en/admin/ - Inglês
@robertatakenaka robertatakenaka merged commit da91e36 into scieloorg:main Sep 8, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants