Moment: `sk.js`: corrige problemas de l10n (checos)

Criado em 12 mar. 2020  ·  16Comentários  ·  Fonte: moment/moment

Descreva o bug

A preposição za no sentido de in em in a minute é um czechism (uma palavra ou uso emprestado do idioma tcheco), portanto os moment 's za pár sekúnd está correto em tcheco e incorreto em eslovaco. Em eslovaco, a preposição correta é o na frase.

Comportamento esperado

Por exemplo: use o pár second vez de za pár sekúnd (significando: in a few seconds ).


Atualização: Outro problema é o pred 3 dny que deveria ser pred 3 dňami . Não é uma questão de moment , mas de dayjs , que pena.

Help Wanted Language Up-For-Grabs

Comentários muito úteis

Hm ... Talvez possamos distinguir o uso entre durações e momentos. Vou deixá-lo aberto por mais um tempo.

Todos 16 comentários

pensamentos de @ k2s ?

  1. a afirmação neste bilhete não é verdadeira, é uma construção válida da língua eslovaca
  2. tudo foi discutido aqui https://github.com/moment/moment/pull/5409#issuecomment -618482801
  3. solução é .replace('za', 'o') , a melhor solução no momento seria fornecer parâmetro de contexto para a tradução

@ k2s , embora minha afirmação no OP não esteja _totalmente_ correta, ela está _parcialmente_ correta. Como a implementação atual do problema no momento. E como a implementação _não está totalmente correta_, acho que deve ser consertada. Não tenho ideia de como, mas IMHO a saída deve estar _sempre_ correta.

Sua solução proposta ( .replace('za', 'o') ) nem mesmo é uma solução alternativa, pois deixa a saída _parcialmente_ correta, embora invertida.

Com base nas fontes de seu comentário em # 5409 (que são realmente válidas), escrevi o seguinte em um comentário :

  • za é usado quando falamos sobre um _período_ durante o qual algo é feito (como _Ele cozinhou em uma hora._);
  • o é usado quando falamos sobre um _ponto no tempo_ (como _Ela volta em um minuto._).

Portanto, a saída atual não é correta para o (mas correta para za ) e se alguém escolher usar a 'solução', obterá a saída correta para o , mas não para za .

@tukusejssirs obrigado por tentar implementar e melhorar o suporte para a língua eslovaca nas bibliotecas. em relação à biblioteca de momentos, você precisa ter em mente que ela é uma biblioteca estabelecida, usada por muitos projetos e para alterar algo, acima de tudo, não quebrar o código existente.

O nome deste tíquete diz que o za retornado está gramaticalmente errado, o que significa que é um bug, que precisa ser corrigido. isso não é verdade.

para retornar corretamente za ou o contexto adicional é necessário, o que não é necessário para o inglês e que, pelo que estou ciente, não é suportado por funções de momento relacionadas

Eu entendo seu desejo de tê-lo perfeito e a maneira de alcançá-lo é criar um plugin de momento que fornecerá métodos com suporte de contexto.

Bem, tentei passar o mesmo: # 5206, que foi revertido depois :-(
Não acredito que haja tantos usuários eslovacos que notariam za / o mudar de qualquer maneira, então por que eles mantêm a versão incorreta, eu não entendo. Ambos são válidos, embora eu ache que a maioria dos usuários precisa do formulário "no futuro", para o qual o preposição deve ser usada. A forma "demorou / foi feito em", para a qual a preposição za é usada em eslovaco, é um caso muito menos frequente.

@dakujem , obrigado pelo seu comentário. Isso me faz sentir que não estou sozinha nisso. 😄

Quando eu criei este PR, eu _achei_ que deveríamos sempre usar o vez de za , mas @ k2s provou que eu estava errado (veja este meu comentário ) que ambos são corretos, mas não intercambiáveis.

Portanto, do meu ponto de vista _atual_, se usarmos za only ou o only, ambos estão igualmente errados, pois _nem sempre são verdadeiros_. Eu gostaria de poder propor um algoritmo (uma função) que lidaria com os casos em que qual preposição deve ser usada, mas eu não sou tão bom em programação ... talvez você consiga. :risonho:

Na verdade, ambos são usados. Aposto que o é mais frequente. Mas...

Infelizmente, eu não sou um cara JS 🤷, meu plugin JS seria ruim 😆

@dakujem , atualmente não precisamos do _code_, mas do _algorithm_ — como verificar qual preposição Moment deve produzir?

Não sei como podemos distinguir entre pontos no tempo e períodos de tempo.
Acho que não farei nenhuma alteração aqui.

As localidades sempre podem ser substituídas por usuários individuais.
https://momentjs.com/docs/#/customization/

É uma grande pena.

Hm ... Talvez possamos distinguir o uso entre durações e momentos. Vou deixá-lo aberto por mais um tempo.

Parece bom para mim.

Existe alguma maneira de obtermos esses 'metadados' agora? Ou é algo que você precisa implementar no Moment?

Eu não sei o que você quer dizer.

por enquanto:
Se você estiver usando durações, poderá atualizar o local para o.
Se você estiver usando momentos, ele já usará za.

Eu não sei o que você quer dizer.

por enquanto:
Se você estiver usando durações, poderá atualizar o local para o.
Se você estiver usando momentos, ele já usará za.

Pensando bem, isso não resolverá o problema, porque in an hour significa tanto o hodinu (como em _Eu voltarei em uma hora._, que usa o ponto no tempo, ou seja, now + 1 hour ) e za hodinu (como em He cooked it in an hour. , que fala sobre a duração do tempo).

Se você ainda acha que isso resolverá o problema, compartilhe comigo alguns trechos de código como eu poderia distinguir entre os dois. Obrigado.

Eu li esta discussão novamente.

Parece que a diferença entre za e o depende do contexto específico da frase. Provavelmente, existem alguns textos linguísticos discutindo isso, mas soa mais específico do que pode ser implementado nesta biblioteca. Por exemplo, Moment.js não consegue distinguir entre "Ele cozinhou em uma hora" e "Volto em uma hora".

Parece que a melhor estratégia é usar um e substituí-lo fora do Moment.js quando necessário.

Se você tiver outras idéias, sinta-se à vontade para reabrir. Boa sorte!

O Moment.js não consegue distinguir entre "Ele cozinhou em uma hora" e "Volto em uma hora".

@marwahaha , essa foi minha impressão também. É uma pena, mas é verdade. É uma pena que a maioria das ferramentas l10n se preocupem tanto com o inglês que não possam ser modificadas para suportar _fulamente_ outras localidades. Gostaria que o Moment fosse como Fluente .

Até então, acho que este é um beco sem saída.

Esta página foi útil?
0 / 5 - 0 avaliações