Moin Franzi,
vorweg, ich lebe von Skriptprogrammierung, und deswegen werde ich Dir kein fertiges Skript liefern, kann Dir aber schildern, wie ich solch eine Aufgabe angehen würde.
Zuerst einmal, wie ich Dir schon schrieb, ist
Fehler ignorieren für mich keine Option, weil dann auch Fehler durchrutschen, die ich gerne kennen würde.
Es wäre also besser, statt
(!(isValid)) throw Error
if (isValid)
mache etwas zu programmieren.
Für Deine Anwendung wäre es natürlich schön, wenn es eine echte Fehlerbehandlung gäbe.
Doch dazu später.
Ich weiß nicht, ob ich richtig liege, aber ich vermute mal, Du musst mehrere Formate in 24 Sprachen zuweisen.
Also muss Dein Skript wissen, welche (Sprachdatei) es gerade am Wickel hat.
Das hann man über den Dateinamen oder über ein bestimmtes Format ermitteln.
Dann muss Dein Skript wissen, welchen Textstellen welche Formate zuzuweisen sind und was Dein Skript machen muss, wenn das passende Format nicht vorhanden ist.
Ich würde dafür nicht viele Skripte schreiben, sondern ein Skript mit allen notwendigen Informationen versehen, die es dann nacheinander abarbeiten kann.
Solche Informationen speichert Du am besten in eine separate JSON-Datei (
JSON-Datei erzeugen und wieder einlesen)
JSON-Object:
Solch ein Objekt kannst Du dann mit zwei verschachtelten Schleifen in Deinem Skript komplett in einem Rutsch abarbeiten.
In etwa so:
äußere Schleife:
Datei öffnen;
innere Schleife:
Begriffe nacheinander suchen und Format zuweisen
äußere Schleife:
Datei speichern
Fehlerbehandlung:
Fehler erkennen, Art und Ort in eine Protokolldatei speichern.
Damit kannst Du [b]nachträglich die Fehler gezielt korrigieren.
Dazu kann ich ohne konkrete Beispieldatei nichts sagen.
Klar, aber besser wäre es, wenn Du gezielt prüfst, ob das gewünschte Format vorhanden ist.
Dann wäre es doch besser, dass das Skript Dir direkt die Ersetzung zeigt, Du das Problem behebst, und das Skript dann weiterläuft.
Klar, lese den Text aus und verwende bei formatierten Text das Textobject mit der Methode duplicate (textObject.duplicate(to, reference)) oder per Zuweisung durch auslesen von
contents.
So, ich hoffe, diese Anmerkungen können Dir ein wenig helfen.