Alguém por aqui já se deparou com um problema que surge com a formulação de datas de publicação baseadas em tempo relativo para a língua inglesa?
Um amigo perguntou-me e não soube como responder-lhe. E efetivamente já me deparei num projeto com o mesmo problema e não cheguei a resolvê-lo.
O que é que acontece… quando pretendemos dizer que “o artigo X foi publicado há Z minutos”, o tempo é gerado dinamicamente mas o “publicado há” não, e em inglês a ordem inverte-se, o que impede a tradução direta: “published Z minutes ago”.
Exemplo de duas funções do tema DW Focus (estilo jornal) que usam este princípio:
http://codeshare.io/D6spq
Alguém tem sugestões sobre como é que isto se contorna (imaginando que queríamos manter a coisa multilingue…)?
miguelcortereal 30 Abr 2013, às 15:18 Permalink | Inicie a sessão para responder
Não sei se compreendi qual é o problema, mas parece-me que as funções ficam como estão, ajusta-se nos ficheiros de tradução .po para cada língua fazendo-se as modificações. Por exemplo para a linha
$since = sprintf(_n('about %s min', '%s mins', $mins), $mins);
, resultam duas linhas de tradução no ficheiro .po, uma singular e outra plural. A tradução para pt_PT poderia ser:Original singular
about %s min
Tradução
há cerca de %s minuto
Original plural
%s mins
Tradução
há %s minutos atrás
Para Espanhol es_ES
Original singular
about %s min
Tradução
hace menos de %s minuto
Original plural
%s mins
Tradução
hace %s minutos
Álvaro Góis 2 Mai 2013, às 10:58 Permalink | Inicie a sessão para responder
O problema é o “ago”. A tradução em português seria “atrás”, embora me pareça mais correto usar o verbo haver, tal como quando dizemos “há 2 minutos”. Mas na construção original, relativa aos dias, p.e., pressupõe apenas o número de dias e o “ago”, ficando, portanto, “1 dia atrás”, “10 dias atrás”, quando em português corrente se usa, na verdade, “há 1 dia”, “há 10 dias”, eventualmente na forma redundante (e que muitos consideram incorreta), “há 10 dias atrás”.