Se apenas 1 post não for publicado, você diria “Publicar %{count} post não publicado no Tópico nº %{topic_id}. O post não será entregue aos seguidores dos Atores do Grupo.”
“%{min_length} a %{max_length} letras, números, hífens ou underscores.”
Para estes dois, estou deixando as strings como estão. Um site estaria mal configurado se tivesse nomes de usuário limitados a 1 caractere… não há necessidade de mudar.
E quanto a sites com um nome de usuário de 11 caracteres? Existem idiomas em que a versão para 1 também é usada para 11. E como funciona para idiomas com mais de um plural se você não oferece um em inglês? Os tradutores ainda podem inserir essas diferentes versões plurais?
Existem idiomas que usam a versão para “um” em números terminados em um. (Não tenho certeza se 11 foi o melhor exemplo). E eles também têm mais versões do que “um” e “outro”, então, mesmo com apenas contagens diferentes maiores que 1, essas precisam de traduções diferentes com base na contagem exata.
O alemão não é um deles, então acho que alguns de seus colegas saberão melhor do que eu.
Estou com um pouco de dificuldade na tradução: O Discourse escolhe o singular e o plural com base em count ou total?
Pelo que entendi, geralmente é count.
Mas não consigo descobrir como lidar com o caso em que count é 1 e total é 3. Eu obtenho algo como “1 de 3 post neste tópico é publicado”. Posso corrigir isso usando “posts”: “1 de 3 posts neste tópico é publicado”. Mas então não funciona se total for 1.
Isso é algo que chamamos de “inglês de engenharia”. Tal forma nunca deveria ser usada. Deveria ser algo como o/este post é publicado. Ou tópico se os posts seguintes forem publicados automaticamente.
Situação semelhante, pelo menos em finlandês, é que o número um (na verdade, todos os números entre 0 e 9) deve ser escrito por extenso, não usando números. Mas um conceito bastante comum é escrever one em vez de 1 e os maiores são números.
Algo como 1 post é sempre condenado como algo que desenvolvedores que falam inglês usam, porque eles são preguiçosos demais para usar o estilo humano — quase me desculpo por dizer isso em voz alta. E, de forma mais geral: é visto como um jeito americano do que Usar Desta Forma Em Títulos, Textos
Não é sobre preguiça. Usar o placeholder para o número é muito importante. Como expliquei acima, existem idiomas onde você também diz “21 post”, assim como você diz “1 post”. Se o texto em inglês usasse “one” em vez de %{count}, seria muito fácil para um tradutor traduzir isso, e então o número não seria substituído pela contagem real, resultando em “one post” quando a contagem é na verdade 21.
Portanto, há uma razão pela qual os números são usados. Veja também: Always use %{count} variable when translating pluralized strings
A propósito, também é muito útil em alemão porque evita problemas como este.
Tenho dificuldade em acreditar que a codificação esteja em um nível tão baixo que seja impossível substituir %(count) por palavras quando %(count) = 1. Tenho certeza de que já alterei esse tipo de placeholder para texto puro quando a tradução local oferece opções diferentes para singular e plural.
É isso que quero dizer sobre preguiça e inglês de engenharia. Por baixo dos panos, devem ser usadas variáveis e placeholders, mas estes devem ser transformados em uma forma legível por humanos e nativa. Afinal, são usuários finais que usam softwares, não engenheiros…
Sim, eu sei. Essa é uma questão mais ampla e maior do que apenas considerar como traduzir 1 de 3… ou 1 de 1…. Mas meu ponto mais profundo é que não deveria haver necessidade de se preocupar com tais coisas (além de outras diferenças de um zilhão de idiomas).
Mas, claro, talvez vivamos em um mundo onde podemos ter IAs complexas, mas não há solução para evitar situações como 1 de 1
É um pouco fora do tópico, pois este tópico era sobre permitir qualquer forma de ter uma versão singular e plural diferente para esses textos.
Mas talvez você pudesse substituir 1 por “one” em toda a interface em inglês.
No entanto, isso não funcionará tão facilmente em alemão. O problema é que, em alemão, a palavra para “um” muda dependendo do caso, gênero e função gramatical.
Por exemplo:
O tópico permanecerá aberto por um mês. → Das Thema ist noch einen Monat geöffnet.
O tópico será fechado em um mês. → Das Thema wird in einem Monat geschlossen.
Um mês se passou. → Ein Monat ist vergangen.
Portanto, embora também seja comum em alemão escrever números por extenso, lidar com isso corretamente é gramaticalmente complexo.
Você não pode simplesmente substituir o número “1” pela palavra “eins”, porque essa forma nunca é usada antes de um substantivo e a forma correta da palavra depende do caso gramatical.
Em outras palavras, usar palavras em vez de dígitos criaria muito mais trabalho para os tradutores.
Você não poderia simplesmente usar um placeholder como %{duration} que se expande para “um mês”, “uma semana” ou “um dia” em todos os contextos.
Em vez de três durações e três frases, você precisaria de uma versão separada para cada combinação gramatical possível - potencialmente multiplicando a quantidade de texto várias vezes.
Obrigado pelo link. Posso ver, lendo o código e olhando para outros idiomas como o árabe, que os idiomas podem fornecer suas próprias substituições, mesmo que a string em inglês seja a mesma em todas as variantes. Por exemplo, o árabe tem regras separadas quando a contagem é 2, e vejo two: usado em strings em árabe que não são definidas em inglês. Portanto, para 1/11, o idioma que tem uma regra pode fornecer essa variante. Não há necessidade de defini-la em inglês, pelo que pude entender.
Obrigado por investigar isso. Não tenho o contexto para esta string, mas se você quiser enviar um PR com a alteração, ficarei feliz em dar uma olhada. Obrigado.
Você pode explicar como isso pode ser feito no Crowdin?
Isso é o que vejo no Crowdin se eu quiser traduzir discourse_activity_pub.actor.warning.invalid_username para o árabe
Mas, na minha experiência, você só pode adicionar essas versões diferentes se os plurais também forem definidos em inglês.
Eu também não. Da última vez que dei uma olhada nos textos do ActivityPub foi em abril, quando criei este tópico. Agora, eu estava simplesmente substituindo os placeholders durante a tradução porque, de outra forma, é muito difícil escolher as palavras. Foi quando notei que “1 de 3 post neste tópico é publicado” parecia errado para mim - não apenas em alemão, mas também em inglês.