Moment: `sk.js`: Soluciona problemas de l10n (chequismos)

Creado en 12 mar. 2020  ·  16Comentarios  ·  Fuente: moment/moment

Describe el error

La preposición za en el sentido de in en in a minute es un chequismo (una palabra o uso tomado del idioma checo), por lo tanto, los moment za pár sekúnd es correcto en checo e incorrecto en eslovaco. En eslovaco, la preposición correcta es o en la frase.

Comportamiento esperado

Por ejemplo: use o pár second lugar de za pár sekúnd (es decir: in a few seconds ).


Actualización: Otro problema es el pred 3 dny que debería ser pred 3 dňami . No es un problema de moment , sino de dayjs , mi mal.

Help Wanted Language Up-For-Grabs

Comentario más útil

Hm ... Quizás podamos distinguir el uso entre duraciones y momentos. Lo dejaré abierto un poco más.

Todos 16 comentarios

@ k2s pensamientos?

  1. La afirmación de este ticket no es cierta, es una construcción válida en eslovaco.
  2. todo se discutió aquí https://github.com/moment/moment/pull/5409#issuecomment -618482801
  3. la solución es .replace('za', 'o') , la mejor solución en el momento sería proporcionar un parámetro de contexto a la traducción

@ k2s , aunque mi declaración en el OP no es _totalmente_ correcta, es _parcialmente_ correcta. Como la implementación actual del tema en Moment. Y como la implementación _no es del todo correcta_, creo que debería arreglarse. No tengo idea de cómo, pero en mi humilde opinión la salida debería ser _siempre_ correcta.

Su solución propuesta ( .replace('za', 'o') ) ni siquiera es una solución, ya que deja el resultado _parcialmente_ correcto, aunque al revés.

Basado en las fuentes de su comentario en # 5409 (que de hecho son válidas), escribí lo siguiente en un comentario :

  • za se usa cuando hablamos de un _período_ durante el cual se hace algo (como _Lo cocinó en una hora._);
  • o se usa cuando hablamos de un _punto en el tiempo_ (como _Ella regresa en un minuto._).

Por lo tanto, la salida actual no es correcta para o (pero correcta para za ) y si uno elige usar la 'solución', obtendría la salida correcta para o , pero no por za .

@tukusejssirs gracias por intentar implementar y mejorar el soporte para el idioma eslovaco en las bibliotecas. en relación con la biblioteca de momentos, debe tener en cuenta que es una biblioteca establecida, utilizada por muchos proyectos y para cambiar algo, sobre todo, no se rompe el código existente.

El nombre de este ticket dice que el za devuelto es gramaticalmente incorrecto, lo que significaría que es un error, que necesitaría corrección. eso no es verdad.

para devolver correctamente za o o se requiere un contexto adicional que no es necesario para el inglés y que, de lo que soy consciente, no es compatible con las funciones de momento relacionadas

Entiendo su deseo de que sea perfecto y la forma de lograrlo es crear un complemento de momento que proporcione métodos con soporte de contexto.

Bueno, intenté pasar lo mismo: # 5206, que luego se revirtió :-(
No creo que haya tantos usuarios eslovacos que notarían el cambio za / o todos modos, así que no entiendo por qué mantienen la versión incorrecta. Ambos son válidos, aunque supongo que la mayoría de los usuarios necesitan la forma "en el tiempo en el futuro", para la cual se debe usar la preposición o . La forma "tomó tiempo / se hizo en", para la cual se usa la preposición za en eslovaco, es un caso mucho menos frecuente.

@dakujem , gracias por tu comentario. Me hace sentir que no estoy solo en esto. 😄

Cuando creé este PR, pensé que siempre deberíamos usar o lugar de za , pero @ k2s me demostró que estaba equivocado (ver este comentario mío ) que ambos son correctos, pero no intercambiables.

Por lo tanto, desde mi punto de vista _ actual_, si usamos za solo o o solo, ambos son igualmente incorrectos ya que ambos _no siempre son verdaderos_. Desearía poder proponer un algoritmo (una función) que se ocuparía de los casos en los que se va a utilizar qué preposición, pero no soy tan bueno programando ... tal vez tú puedas hacerlo. : smiley:

De hecho, se utilizan ambos. Sin embargo, apuesto a que o es más frecuente. Pero...

Desafortunadamente, no soy un tipo de JS 🤷, mi complemento JS sería malo 😆

@dakujem , actualmente no necesitamos el _code_, sino el _algorithm_: ¿cómo comprobar qué preposición debe generar Moment?

No sé cómo podemos distinguir entre momentos y períodos de tiempo.
Supongo que no haré ningún cambio aquí.

Los usuarios individuales siempre pueden anular las configuraciones regionales.
https://momentjs.com/docs/#/customization/

Qué lástima.

Hm ... Quizás podamos distinguir el uso entre duraciones y momentos. Lo dejaré abierto un poco más.

Me suena bien.

¿Hay alguna forma de que podamos obtener estos 'metadatos' ahora? ¿O es algo que necesita implementar en Moment?

No sé a qué te refieres.

por ahora:
Si está usando duraciones, puede actualizar la configuración regional para o.
Si está utilizando momentos, ya utilizará za.

No sé a qué te refieres.

por ahora:
Si está usando duraciones, puede actualizar la configuración regional para o.
Si está utilizando momentos, ya utilizará za.

Pensándolo bien, esto no resolverá este problema, porque in an hour significa ambos o hodinu (como en _Volveré en una hora._, que usa o punto en el tiempo, es decir now + 1 hour ) y za hodinu (como en He cooked it in an hour. , que habla de una duración de tiempo).

Si aún cree que resolverá este problema, comparta conmigo algunos fragmentos de código sobre cómo podría distinguir entre los dos. Gracias.

Leí esta discusión nuevamente.

Parece que la diferencia entre za y o depende del contexto específico de la oración. Probablemente, hay algunos textos lingüísticos que discuten esto, pero suena más específico de lo que se puede implementar en esta biblioteca. Por ejemplo, Moment.js no puede distinguir entre "Lo cocinó en una hora" y "Volveré en una hora".

Parece que la mejor estrategia es usar uno y reemplazarlo fuera de Moment.js cuando lo necesite.

Si tiene otras ideas, no dude en reabrir. ¡La mejor de las suertes!

Moment.js no puede distinguir entre "Lo cocinó en una hora" y "Vuelvo en una hora".

@marwahaha , esa también fue mi impresión. Es una pena, pero es cierto. Es una pena que la mayoría de las herramientas l10n estén tan preocupadas por el inglés que no se puedan modificar para que sean compatibles con otras configuraciones regionales. Ojalá Moment fuera como Fluent .

Hasta entonces, creo que este es un callejón sin salida.

¿Fue útil esta página
0 / 5 - 0 calificaciones