From ff6cb61d83886e4beafba28834ab5259dadf3f8d Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Wed, 29 Oct 2014 18:31:42 -0200 Subject: [PATCH] Interpolate translatable strings only with named arguments Refactor of the codebase for i18n compliance --- sigi/apps/convenios/models.py | 16 +++++++++++----- sigi/apps/mesas/models.py | 6 +++++- sigi/apps/metas/views.py | 23 ++++++++++++++++------- sigi/apps/servicos/admin.py | 7 +++++-- sigi/apps/servicos/views.py | 5 +++-- 5 files changed, 40 insertions(+), 17 deletions(-) diff --git a/sigi/apps/convenios/models.py b/sigi/apps/convenios/models.py index ac156dc..2ba89da 100644 --- a/sigi/apps/convenios/models.py +++ b/sigi/apps/convenios/models.py @@ -112,9 +112,14 @@ class Convenio(models.Model): def __unicode__(self): if self.data_retorno_assinatura is not None: - return _(u"Convênio nº %s - projeto %s, em %s") % (self.num_convenio, self.projeto.sigla, self.data_retorno_assinatura) + return _(u"Convênio nº %(number)s - projeto %(project)s, em %(date)s") % dict( + number=self.num_convenio, + project=self.projeto.sigla, + date=self.data_retorno_assinatura) else: - return _(u"Adesão ao projeto %s, em %s") % (self.projeto.sigla, self.data_adesao) + return _(u"Adesão ao projeto %(project)s, em %(date)s") % dict( + project=self.projeto.sigla, + date=self.data_adesao) class EquipamentoPrevisto(models.Model): @@ -188,7 +193,8 @@ class Tramitacao(models.Model): verbose_name_plural = _(u'Tramitações') def __unicode__(self): + in_date = _(u"em %(date)s") % dict(date=self.data) # for focused translation + result = u"%s %s" % (self.unid_admin, in_date) if self.observacao: - return unicode(_(u"%s em %s (%s)") % (self.unid_admin, self.data, self.observacao)) - else: - return unicode(_(u"%s em %s") % (self.unid_admin, self.data)) + result = result + u" (%s)" % (self.observacao) + return unicode(result) # XXX is this unicode(...) really necessary??? diff --git a/sigi/apps/mesas/models.py b/sigi/apps/mesas/models.py index 5d5bca8..ad74700 100644 --- a/sigi/apps/mesas/models.py +++ b/sigi/apps/mesas/models.py @@ -21,7 +21,11 @@ class Legislatura(models.Model): ordering = ['casa_legislativa__municipio__uf__sigla', '-data_inicio'] def __unicode__(self): - return _(u"%sª legislatura da %s (%s-%s)") % (self.numero, self.casa_legislativa.__unicode__(), self.data_inicio.year, self.data_fim.year) + return _(u"%(number)sª legislatura da %(parliament)s (%(initial_year)s-%(final_year)s)") % dict( + number=self.numero, + parliament=self.casa_legislativa.__unicode__(), + initial_year=self.data_inicio.year, + final_year=self.data_fim.year) class Coligacao(models.Model): diff --git a/sigi/apps/metas/views.py b/sigi/apps/metas/views.py index 82e4025..9d2cdfe 100644 --- a/sigi/apps/metas/views.py +++ b/sigi/apps/metas/views.py @@ -313,7 +313,9 @@ def gera_map_data_file(cronjob=False): pass # ... ou os dados poderão ser usados de qualquer forma if cronjob: - return _(u"Arquivo %s gerado em %d segundos") % (JSON_FILE_NAME, time.time() - start) + return _(u"Arquivo %(filename)s gerado em %(seconds)d segundos") % dict( + filename=JSON_FILE_NAME, + seconds=time.time() - start) return json_data @@ -345,20 +347,27 @@ def parliament_summary(parliament): for cv in parliament.convenio_set.all(): if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None): - summary['info'].append(_(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla)) + summary['info'].append(_(u"Equipada em %(date)s pelo %(project)s") % dict( + date=cv.data_termo_aceite.strftime('%d/%m/%Y'), + project=cv.projeto.sigla)) summary['equipadas'].append(cv.projeto.sigla) if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None): - summary['info'].append(_(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'))) + summary['info'].append(_(u"Conveniada ao %(project)s em %(date)s") % dict( + project=cv.projeto.sigla, + date=cv.data_retorno_assinatura.strftime('%d/%m/%Y'))) summary['convenios'].append(cv.projeto.sigla) if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None): - summary['info'].append(_(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y'))) + summary['info'].append(_(u"Conveniada ao %(project)s em %(date)s e equipada em %(equipped_date)s") % dict( + project=cv.projeto.sigla, + date=cv.data_retorno_assinatura.strftime('%d/%m/%Y'), + equipped_date=cv.data_termo_aceite.strftime('%d/%m/%Y'))) summary['equipadas'].append(cv.projeto.sigla) summary['convenios'].append(cv.projeto.sigla) for dg in parliament.diagnostico_set.all(): summary['diagnosticos'].append('P' if dg.publicado else 'A') - summary['info'].append(_(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if - dg.data_visita_inicio is not None else _(u""), - dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else _(u""))) + summary['info'].append(_(u'Diagnosticada no período de %(initial_date)s a %(final_date)s') % dict( + initial_date=dg.data_visita_inicio.strftime('%d/%m/%Y') if dg.data_visita_inicio is not None else _(u""), + final_date=dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else _(u""))) return summary diff --git a/sigi/apps/servicos/admin.py b/sigi/apps/servicos/admin.py index 1969d0f..cecc0a8 100644 --- a/sigi/apps/servicos/admin.py +++ b/sigi/apps/servicos/admin.py @@ -191,8 +191,11 @@ class CasaAtendidaAdmin(BaseModelAdmin): def get_servicos(self, obj): result = [] for servico in obj.servico_set.all(): - result.append(_(u"%s (%s). Contato: %s") % (servico.tipo_servico.nome, _(u'ativo') if servico.data_desativacao is None - else _(u'Desativado'), servico.contato_administrativo.nome)) + result.append(u"%s (%s). %s: %s" % ( + servico.tipo_servico.nome, + _(u'ativo') if servico.data_desativacao is None else _(u'desativado'), + _(u'Contato'), + servico.contato_administrativo.nome)) return "
  • " + "
  • ".join(result) + "
" get_servicos.allow_tags = True diff --git a/sigi/apps/servicos/views.py b/sigi/apps/servicos/views.py index 748779f..ab7a47c 100644 --- a/sigi/apps/servicos/views.py +++ b/sigi/apps/servicos/views.py @@ -108,8 +108,9 @@ def casa_manifesta_view(request): sm.url = cmf.cleaned_data['url_%s' % ts.pk] sm.hospedagem_interlegis = cmf.cleaned_data['hospedagem_interlegis_%s' % ts.pk] sm.save() - thanks.append((ts.nome, _(u'Possui o serviço acessível em %s %s') % (sm.url, u'hospedado no Interlegis' if - sm.hospedagem_interlegis else ''))) + thanks.append((ts.nome, _(u'Possui o serviço acessível em %(url)s %(obs)s') % dict( + url=sm.url, + obs=_(u'hospedado no Interlegis') if sm.hospedagem_interlegis else ''))) else: ServicoManifesto.objects.filter(casa_manifesta=cm, servico=ts).delete() thanks.append((ts.nome, _(u'Não possui')))