Die Zeilen rnumeralzero=no und rnumeralone=one bereiten insofern Probleme, als das Wort kein, keine und ein, eine z.B. in den romanischen Sprachen, aber auch im Deutschen flektiert wird.
Im Französichen kommt es darauf an, was für ein Genus das nachfolgende Substantiv hat, auf das sich aucun (mask.), aucune (fem.) und un (mask.), une (fem.) bezieht, im Deutschen spielt außer der Genusunterscheidung gegebenenfalls auch noch die Kasusflexion eine Rolle. Es gibt Sprachen, wo dieses Problem auch noch bei weiteren (flektierbaren) Zahlwörtern auftritt, z.B. in den slawischen Sprachen.
Da die Zahlwörter in den Sprachdateien derzeit nur in einer einzigen Form angegeben werden können, sehe ich, dass es in den L10ns zu grammatischen Fehlern kommen wird, je nachdem in welchem spezifischen Kontext die Zahlwörter eingesetzt werden. Insofern waren die bisherigen Ziffern besser.
Eine unschöne Notlösung wäre natürlich, die Zahlwörter zero und one der default.lang in den romanischen Sprachen und im Deutschen als reine Ziffernangaben 0 und 1 zu übersetzen oder diese Funktion "Zahlwörter statt Ziffern" in Sprachen, die Zahlwörter flektieren, überhaupt nicht zu nutzen.
Im Englischen des Quellcodes und der default.lang kommt dieses Problem natürlich nicht zum Tragen, weil das Englische hier überhaupt keine Flexionen aufweist.
Dieses Problem wurde bisher überhaupt nicht bedacht.
rmain_lettersexchanged=%d letter has been exchanged|%d letters have been exchanged Französisch --> la lettre (feminin): rmain_lettersexchanged=Une lettre a été échangée.|%w lettres ont été échangées.
Aber:
rwordsearch_searchresult=%d word found|%d words found Französisch --> le mot (maskulin): rwordsearch_searchresult=Un mot trouvé|%w mots trouvés
Gibt es für dieses Problem programmtechnisch eine Lösung?
Ein weiteres Problem ist die Großschreibung der Zahlwörter, wenn diese am Satzanfang eingesetzt werden, und die Kleinschreibung der Zahlwörter, wenn diese in der Satzmitte erscheinen.
Frage an Scotty: Hast du das im Programm bedacht und entsprechend programmiert, damit die Zahlwörter, wenn sie am Satzanfang stehen, einen großen Anfangsbuchstaben erhalten?
Ich wollte diese Sachen gerade mal bei geladener po-default.lang überprüfen, aber im Nachrichtenreiter werden die Ressourcen-Texte der po-default.lang trotz korrekt gesetzter Häkchen bei den den entsprechenden Einstellungen nicht ausgegeben (jedenfalls nicht unter Win7). Eine Überprüfung ist mir also nicht möglich.
Zitat von Bussinchen im Beitrag #1Die Zeilen rnumeralzero=no und rnumeralone=one bereiten insofern Probleme, als das Wort kein, keine und ein, eine z.B. in den romanischen Sprachen, aber auch im Deutschen flektiert wird.
Das ist mir mittlerweile auch schon in den Sinn gekommen. Eine Lösung wäre tatsächlich, die 0 und die 1 nicht aufzunehmen, da beide wahrscheinlich in einem anderen Numerus stehen und sowieso einen anderen String bekommen.
Zitat von Bussinchen im Beitrag #2Ein weiteres Problem ist die Großschreibung der Zahlwörter, wenn diese am Satzanfang eingesetzt werden, und die Kleinschreibung der Zahlwörter, wenn diese in der Satzmitte erscheinen.
Eine andere Lösung des ersten Problems, und dieses zweiten gleich mit, ist es, die %w-Geschichte ganz zu lassen. Es hat schon Gründe, warum Dinge nicht gemacht werden.
Zitat von Bussinchen im Beitrag #3Ich wollte diese Sachen gerade mal bei geladener po-default.lang überprüfen, aber im Nachrichtenreiter werden die Ressourcen-Texte der po-default.lang trotz korrekt gesetzter Häkchen bei den den entsprechenden Einstellungen nicht ausgegeben.
Der Screenshot hilft wenig. Was hast du denn in welcher Datei geändert?
Wenn ein Zahlwort eingesetzt werden soll, ergibt sich außerdem das Problem, dass man im Deutschen z.B. sagen kann "kein Wort" (Singular) oder "keine Wörter" (Plural). Eine Übersetzung "null Wörter" wäre nicht idiomatisch. Bei Angaben, die eine erreichte Punktzahl betreffen, bietet sich aber grundsätzlich die Ziffer an. Ein Zahlwort wäre hier unpassend.
Zitat von Scotty im Beitrag #4Der Screenshot hilft wenig. Was hast du denn in welcher Datei geändert?
Ich frage mich, wo diese Zahlwörter überhaupt einen Sinn ergeben ...
Natürlich werden Zahlwörter bis 12 in deutschen Fließtexten normalerweise ausgeschrieben, aber bei solchen Informationen eines Programms, wo die Zahlen die wesentliche Information übertragen, halte ich sie eher für kontraproduktiv, was die schnelle Erfassung der Information angeht.
Daher bin ich ziemlich überrascht über das Thema dieses "Diskussionsfadens".
Zitat von Vektor im Beitrag #6Daher bin ich ziemlich überrascht über das Thema dieses "Diskussionsfadens".
Übererfüllung des Produktionsplans um 120%
"Es wurden 2 Buchstaben getauscht." sieht einfach nur etwas unschön aus im Vergleich zu "Es wurden zwei Buchstaben getauscht." Aber ich habe ja schon gesagt, dass ich an der Idee nicht allzu sehr hänge.
In den allermeisten Textstrings der Sprachdateien steht die Variable %d vor dem Wort "points" (Punkte).
Es sind nicht so viele Zeilen, wo die Variable %d vor einem anderen Wort als "point/s" (Punkt/e) steht, wie ich mit der Suchfunktion von Notepad++ ermittelt habe. Diese Zeilen habe ich blau markiert.
Suche nach %d in der default.lang der Testversion 28e vom 2012-11-17
C:\Users\Martina\AppData\Local\Scrabble3D\default.lang (33 hits) (33 hits --> Dubletten habe ich herausgelöscht)
Line 2842: msgid "All words are valid. A penalty of %d point was deducted from %s's result" Line 2843: msgid_plural "All words are valid. A penalty of %d points was deducted from %s's result" Line 2849: msgid "but computer suggests to place %d point" Line 2850: msgid_plural "but computer suggests to place %d points" Line 2856: msgid "Out of %d possible words found the best would score with %d points" Line 3003: msgid "%s receives %d point bonus." Line 3004: msgid_plural "%s receives %d points bonus." Line 3020: msgid "%s: %d minus %d = %d points" Line 3025: msgid "%s: %d minus %d minus %d for jokers = %d points" Line 3030: msgid "%s: %d plus %d = %d points" Line 3040: msgid "Game started %s, move #%d" Line 3150: msgid "%d letter has been exchanged" Line 3151: msgid_plural "%d letters have been exchanged" Line 3182: msgid "Final time out for %s. Result has been zeroed (-%d point)." Line 3183: msgid_plural "Final time out for %s. Result has been zeroed (-%d points)." Line 3224: msgid "%s places %s at %s and receives %d point %s" Line 3225: msgid_plural "%s places %s at %s and receives %d points %s" Line 3256: msgid "Only %d pass left until game end" Line 3257: msgid_plural "%d passes until game end" Line 3448: msgid "One minute has been added to %s time for %d points (%d times left)" Line 3495: msgid "Challenged move consists of invalid words. A bonus of %d point was added to %s's result" Line 3496: msgid_plural "Challenged move consists of invalid words. A bonus of %d points was added to %s's result" Line 4104: msgid "%d word found" Line 4105: msgid_plural "%d words found"
In Anbetracht der syntaktischen Schwierigkeiten, die sich beim Einsetzen von Zahlwörtern statt Ziffern für die Variable %d ergeben, plädiere ich dafür, dieses wohlgemeinte und an sich sehr hübsche Feature wieder rauszunehmen. Es dreht sich schließlich nicht nur um die (im Prinzip) kasuslosen romanischen Sprachen mit 2 Genera und Deutsch mit 3 Genera und 4 Kasus, sondern wir haben auch die slawischen Sprachen mit 3 Genera und gleich 6 Kasus. Um das alles korrekt abzufedern, erscheint mir der erforderliche Programmieraufwand im Hinblick auf die geringe Ausbeute zu hoch.
Ich denke, dass "Es wurden 2 Buchstaben getauscht" die wesentliche Information (Tausch, 2) schneller erkennen lässt als "Es wurden zwei Buchstaben getauscht" und bin insofern froh, wenn die Umstellung nicht so leicht realisierbar ist ;)