Moment: `sk.js`: Behebung von 10n Problemen (Tschechismen)

Erstellt am 12. März 2020  ·  16Kommentare  ·  Quelle: moment/moment

Beschreibe den Fehler

Die Präposition za im Sinne von in in in a minute ist ein Tschechismus (ein Wort oder eine Verwendung, die aus der tschechischen Sprache entlehnt wurde), daher die moment za pár sekúnd ist auf Tschechisch korrekt und auf Slowakisch falsch. In der slowakischen Sprache lautet die korrekte Präposition o in der Phrase.

Erwartetes Verhalten

Beispiel: Verwenden Sie o pár second anstelle von za pár sekúnd (dh: in a few seconds ).


Update: Ein weiteres Problem ist das pred 3 dny das pred 3 dňami . Keine Ausgabe von moment , sondern von dayjs , mein schlechtes.

Help Wanted Language Up-For-Grabs

Hilfreichster Kommentar

Hm ... Vielleicht können wir die Verwendung zwischen Dauer und Moment unterscheiden. Ich werde es noch eine Weile offen lassen.

Alle 16 Kommentare

@ k2s Gedanken?

  1. Die Aussage in diesem Ticket ist nicht wahr, es ist ein gültiges slowakisches Sprachkonstrukt
  2. Alles wurde hier besprochen: https://github.com/moment/moment/pull/5409#issuecomment -618482801
  3. Die Lösung ist .replace('za', 'o') . Eine bessere Lösung wäre im Moment, der Übersetzung Kontextparameter bereitzustellen

@ k2s , obwohl meine Aussage im OP nicht vollständig korrekt ist, ist sie teilweise korrekt. Wie die aktuelle Umsetzung des Themas im Moment. Und da die Implementierung nicht vollständig korrespondiert, denke ich, dass sie behoben werden sollte. Ich habe keine Ahnung wie, aber meiner Meinung nach sollte die Ausgabe immer korrekt sein.

Ihre vorgeschlagene Lösung ( .replace('za', 'o') ) ist nicht einmal eine Problemumgehung, da die Ausgabe teilweise korrekt bleibt, obwohl sie umgekehrt ist.

Basierend auf den Quellen aus Ihrem Kommentar in # 5409 (die tatsächlich gültig sind) habe ich Folgendes in einen Kommentar geschrieben :

  • za wird verwendet, wenn wir über einen Zeitraum sprechen, in dem etwas getan wird (wie er es in einer Stunde gekocht hat);
  • o wird verwendet, wenn wir über einen Zeitpunkt sprechen (wie sie in einer Minute zurück ist).

Daher ist die aktuelle Ausgabe nicht korrekt für o (aber korrekt für za ), und wenn man sich für "Lösung" entscheidet, erhält man die korrekte Ausgabe für o , aber nicht für za .

@tukusejssirs Vielen Dank, dass Sie versuchen, die Unterstützung für die slowakische Sprache in Bibliotheken zu implementieren und zu verbessern. In Bezug auf die Moment-Bibliothek müssen Sie bedenken, dass es sich um eine etablierte Bibliothek handelt, die von vielen Projekten verwendet wird, und um etwas zu ändern, muss der vorhandene Code vor allem nicht beschädigt werden.

Der Name dieses Tickets besagt, dass der zurückgegebene za grammatikalisch falsch ist, was bedeuten würde, dass es sich um einen Fehler handelt, der behoben werden müsste. das ist nicht wahr.

Um za oder o korrekt zurückzugeben, ist zusätzlicher Kontext erforderlich, der für Englisch nicht benötigt wird und der, wie mir bekannt ist, von verwandten Momentfunktionen nicht unterstützt wird

Ich verstehe Ihren Wunsch, es perfekt zu haben, und der Weg, dies zu erreichen, besteht darin, ein Moment-Plugin zu erstellen, das Methoden mit Kontextunterstützung bietet.

Nun, ich habe versucht, dasselbe zu bestehen: # 5206, das danach zurückgesetzt wurde :-(
Ich glaube nicht, dass es so viele slowakische Benutzer gibt, die sowieso eine Änderung von za / o bemerken würden. Warum sie also die falsche Version behalten, verstehe ich nicht. Beide sind gültig, obwohl ich vermuten würde, dass die meisten Benutzer das Formular "rechtzeitig in der Zukunft" benötigen, für das die Präposition o verwendet werden sollte. Die Form "es hat Zeit gekostet / es wurde gemacht in", für die die Präposition za im Slowakischen verwendet wird, ist ein viel seltenerer Fall.

@dakujem , danke für deinen Kommentar. Ich fühle mich damit nicht allein. 😄

Als ich diese PR erstellte, dachte ich, wir sollten immer o anstelle von za , aber @ k2s hat mir das meinen Kommentar ), dass beide korrekt, aber nicht austauschbar sind.

Daher sind aus meiner aktuellen Sicht, wenn wir entweder nur za oder nur o , beide gleichermaßen falsch, da beide nicht immer wahr sind. Ich wünschte, ich könnte einen Algorithmus (eine Funktion) vorschlagen, der sich mit den Fällen befasst, in denen die Präposition verwendet werden soll, aber ich kann nicht so gut programmieren ... vielleicht können Sie es tun. : smiley:

In der Tat werden beide verwendet. Ich würde wetten, dass o häufiger ist. Aber...

Leider bin ich kein JS-Typ, mein JS-Plugin wäre schlecht

@dakujem , derzeit brauchen wir nicht den _code_, sondern den _algorithm_ - wie kann man überprüfen, welche Präposition Moment ausgeben soll?

Ich weiß nicht, wie wir zwischen Zeitpunkten und Zeiträumen unterscheiden können.
Ich denke, ich werde hier keine Änderungen vornehmen.

Die Gebietsschemas können immer von einzelnen Benutzern überschrieben werden.
https://momentjs.com/docs/#/customization/

Das ist sehr schade.

Hm ... Vielleicht können wir die Verwendung zwischen Dauer und Moment unterscheiden. Ich werde es noch eine Weile offen lassen.

Es klingt gut für mich.

Gibt es eine Möglichkeit, diese "Metadaten" jetzt zu erhalten? Oder ist es etwas, das Sie in Moment implementieren müssen?

Ich weiß nicht was du meinst.

zur Zeit:
Wenn Sie die Dauer verwenden, können Sie das Gebietsschema für o aktualisieren.
Wenn Sie Momente verwenden, wird za bereits verwendet.

Ich weiß nicht was du meinst.

zur Zeit:
Wenn Sie die Dauer verwenden, können Sie das Gebietsschema für o aktualisieren.
Wenn Sie Momente verwenden, wird za bereits verwendet.

Bei einem zweiten Gedanken wird dies dieses Problem nicht lösen, da in an hour beide o hodinu (wie in _Ich bin in einer Stunde zurück._, wobei o Zeitpunkt verwendet wird, dh now + 1 hour ) und za hodinu (wie in He cooked it in an hour. , das über eine Zeitdauer spricht).

Wenn Sie immer noch glauben, dass es dieses Problem lösen wird, teilen Sie mir bitte einige Codefragmente mit, wie ich zwischen den beiden unterscheiden kann. Vielen Dank.

Ich habe diese Diskussion noch einmal durchgelesen.

Es klingt so, als ob der Unterschied zwischen za und o vom spezifischen Kontext des Satzes abhängt. Wahrscheinlich gibt es einige sprachliche Texte, die dies diskutieren, aber es klingt spezifischer, als es in dieser Bibliothek implementiert werden kann. Zum Beispiel kann Moment.js nicht zwischen "Er hat es in einer Stunde gekocht" und "Ich bin in einer Stunde zurück" unterscheiden.

Es scheint, als ob die beste Strategie darin besteht, eine zu verwenden und sie bei Bedarf außerhalb von Moment.js zu ersetzen.

Wenn Sie andere Ideen haben, können Sie diese gerne wieder öffnen. Viel Glück!

Moment.js kann nicht zwischen "Er hat es in einer Stunde gekocht" und "Ich bin in einer Stunde zurück" unterscheiden.

@marwahaha , das war auch mein Eindruck. Es ist schade, aber es ist wahr. Es ist eine Schande, dass die meisten l10n-Tools so englischsprachig sind, dass sie nicht geändert werden können, um andere Gebietsschemas _ful_ zu unterstützen. Ich wünschte, Moment wäre wie fließend .

Bis dahin denke ich, dass dies eine Sackgasse ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen