Open AurelioSilver opened 9 years ago
java -jar ../../../Downloads/saxon/saxon9he.jar -s:/opt/gog/Pillars\ of\ Eternity/game/PillarsOfEternity_Data/data/localized/de_patch/text/game/tutorial.stringtable -xsl:stringextract.xsl | java -jar ../../../Downloads/LanguageTool-3.2/languagetool-commandline.jar -l de-DE -m de-DE -c UTF-8 -
Nunja, bissel länglich, und man braucht noch ein größeres Benutzerwörterbuch was @nkemnitz schon hätte.
Hm, das ausgepackte Language Tool bläht das git schon ein wenig auf. Da muss ich mir was besseres einfallen lassen als 100MB dafür abzugeben, deswegen kein commit heute. Zum selber spielen: http://heanet.dl.sourceforge.net/project/saxon/Saxon-HE/9.6/SaxonHE9-6-0-7J.zip https://www.languagetool.org/download/LanguageTool-3.2.zip Wortausnahmen fürs eigene Wörterbuch müssen in: languagetool/resource/de/hunspell/ignore.txt
Man kann sich auch mal das automatisierte Tagging ansehen, ob man da was sinnvolles bei raus bekommt.
java -jar saxon9he.jar -s:../data/localized/de_patch/text/game/abilities.stringtable -xsl:stringextract.xsl | java -jar languagetool-commandline.jar -l de-DE -c UTF-8 -
Hm, ich würde es nicht mit ins Git packen, wer mag soll es sich dann runterladen. Nur eine Referenz anbieten. Leider ist das Tool auch recht fehleranfällig. Man sollte schon genau hinschauen.
Und danke für's formatieren. Ich wusste nicht wie. :)
Bin mir aber nicht sicher, ob die Kommandozeile auch auf Windows funktionieren wird.
Da macht man was mit bei den angepassten Wörterbüchern, die ersten 500 Eigennamen und Abwegigkeiten die als Legal gelten dauern bestimmt einige Zeit. Hm, ich hab erst 40. edit 120
Prima! Muss ich mir bei Gelegenheit dann mal anschauen... Ist schon übel, dass man immer noch was findet. Im Januar geht's dann eh weiter mit Patch 3.0 und WM2.
Ich glaub das Benutzerwörterbuch landet bei ~1000 Einträgen. Und dann hat man immernoch das Problem, dass er von Worten, die er nicht kennt, die er aber durch Hunspell jagt nicht die Satzpunkte abtrennt und das dann als falsch ausgibt.
Diese ganze fiese Großschreibung allenthalben macht einen wahnsinnig.
Schriftrolle der Mittleren Wiederherstellung von Ausdauer
Bei sowas wär ich voll dafür „mittleren“ klein zu schreiben.
Ich weiss auch nicht, warum das alles mal gross und kleingeschrieben ist. Vermutlich für den Parser, um drauf zu verlinken. Richtiger wäre auf jeden Fall kleingeschrieben.
Da müsste man mal prüfen ob der nicht nen Ignore Case beim vergleichen zum automatischen verlinken hat, oder ob der neue [g] Tag da hilft.
Noch ein paar Erkenntnisse. Die Anzahl der nicht zusammengefügten Substantive ist echt zu hoch, andauernd steht da ein Bindestrich zwischen. Ryngr-Büsche, Lagufaeth-Leber, ich werd die unsinnig getrennten jetzt mal zusammen führen. Gibt ja auch keine Flieder-Büsche und Rinder-Leber.
Language Tool 3.2 bekommt die oben angemerkten Satzpunkte korrekt hin. Ist aber noch nicht ganz fertig, und deswegen nur als snapshot zu haben.
Die Regel DE_CASE auszuschalten beruhigt die Nerven ungemein. -d DE_CASE vor dem letzten - in die Komandozeile.
Grade im Addon müssen wir auf die Herkunftsbezeichnungen nochmal aufpassen. „Aedryrisch“ hatten wir gewählt, die bezahlten Übersetzer haben „Aedyrianisch“ genommen.
Die 3.2 ist nun offiziell zu haben.
Schön, die „zumachen“ Umgangspracheregel wurde auch korrigiert.
Ich pack das mal hier hin, die aktuelle Komandozeile: Das geht mittlerweile recht brauchbar, da das Benutzerwörterbuch schon recht viel enthält und pro Datei nur noch wenig anfällt.
/gitrepos/poe_translation/translation_helper$ ls ../data_expansion1/localized/de_patch/text/conversations/px1_04_mercenary_camp/px1_04_cv_* | xargs -L 1 ./spellcheckAll.sh
in spellcheckAll.sh steht folgendes (die hacky Sammlung von Pfaden ist auch der Grund, warum die Datei nicht im git ist):
#!/bin/bash
# funzt nur auf dem PC von Xaratas
# TODO alles ^^
java -jar ../../../Downloads/saxon/saxon9he.jar -s:$1 -xsl:stringextract.xsl | ~/Downloads/jre1.8.0_66/bin/java -jar ../../../Downloads/LanguageTool-3.2/languagetool-commandline.jar -l de-DE -m de-DE -c UTF-8 -d DE_CASE -
So... habe das mal für Windows umgeschrieben.
Batch Datei 1:
dir D:\PoE_exp_git\data_expansion2\localized\de_patch\text\conversations\px2_00_stalwart_village\*.stringtable /s /b > filelist.txt
FOR /F %%k in (filelist.txt) DO spellcheckall.bat %%k
Batch Datei 2: spellcheckall.bat
@echo Filename: %1 >> errors.txt
@echo. >> errors.txt
java -jar saxon9he.jar -s:%1 -xsl:stringextract.xsl | java -jar languagetool-commandline.jar -l de-DE -c UTF-8 -d DE_CASE - >> errors.txt
@echo ------------------ >> errors.txt
@echo. >> errors.txt
Pfade, etc muss man dann natütlich anpassen. Die Jars liegen bei mir alle in einem Unterordner und Pfade für java etc sind gesetzt.
Kann man sicher noch eleganter machen.
Version 3.3 ist nun auch erschienen.
Ja, und verarbeitet alles als ein Block anstatt Zeilenweise. Hat Vor- und Nachteile für die Grammatikprüfung.
So, habe mal das XSLT überarbeitet. Das XML wird nun mit rausgeschmissen und vom Language Tool nicht mehr mitgetestet...
Man glaubt gar nicht, wie kompliziert son Einzeiler sein kann wenn man nicht den Eingabeordner überschreiben will. Die Zeile Ist ein full extractor, lässt aber die Dateinamen übrig. Mal schauen was man jetzt damit anstellt ^^
find . -name *.stringtable | gawk '{ print $1, gensub(/\.\//, "../poe_translation_bare/", 1) }' | xargs -P 2 bash -c 'java -jar ~/Downloads/saxon/saxon9he.jar -s:$0 -xsl:/home/xar/gitrepos/poe_translation/translation_helper/stringextract.xsl -o:$1'
Merke 1800 mal Bash und java aufrufen hat gewaltigen Overhead. Das da oben benötigt bei mir 25 Minuten, das folgende nur 2.
find data* -type d -exec mkdir ../poe_translation_bare/{} \;
find data* -type d -exec java -jar ~/Downloads/saxon/saxon9he.jar -s:{} -xsl:/home/xar/gitrepos/poe_translation/translation_helper/stringextract.xsl -o:../poe_translation_bare/{} -threads:4 \;
cd ../poe_translation_bare
find . -name *.xml -type f -print -exec cat {} \; > allStrings.txt
Das Obere hatte auch nur die Hälfte gemacht -.- ist jetzt Korrigiert, macht das Ding nicht besser
So, und wenn man die JVM nicht 1800 mal und auch nicht 121 mal neu startet, dann geht das auch in 4 Sekunden. Relative Pfade wollten mir nicht gelingen, aber ich denke das ist einfach anzupassen, file:///c:/users usw. kann man da ebenso eintragen.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:for-each select="collection(concat('file:///home/xar/gitrepos/poe_translation/', '?select=*.stringtable;recurse=yes'))">
<xsl:variable name="newPath"><xsl:value-of select="replace(base-uri(), 'poe_translation', 'poe_translation_bare')" /></xsl:variable>
<xsl:result-document href="{$newPath}">
<xsl:for-each select="/StringTableFile/Entries/Entry">
<xsl:value-of select="DefaultText" />
<xsl:text> </xsl:text>
<xsl:value-of select="FemaleText" />
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Der Dateiname für -s muss nur eine gültige xml Datei sein, sonst nölt saxon rum
java -jar ~/Downloads/saxon/saxon9he.jar -s:./data/localized/de_patch/language.xml -xsl:/home/xar/gitrepos/poe_translation/translation_helper/stringextract.xsl -threads:4
Nett... nun muss ich nur sehen, wie ich das auf Windows hinbekomme...
nkemnitz hatte mal das Language Tool erwähnt: https://www.languagetool.org/de/
Ich habe mal die ersten Dateien mit überprüft und schon paar kleinere Dinge gefunden.
Hilfreich ist es, bei Nodepad++ das XML Tool zu installieren und folgendes in eine Datei names stringextract.xsl zu kopieren
Diese Datei wendet man dann mit "XSL Transformation" auf eine stringtable Datei an und erhält somit nur die Texte, die man dann im Language Tool überprüfen kann (Open Office / Libre Office),
Vielleicht kann sie noch wer verbessern. Ich habe nicht wirklich Ahnung von XSL Transformationen und bin froh, dass ich das so hinbekommen habe. :)