[GastForen Programme Print/Bildbearbeitung Adobe InDesign Suchen & Ersetzen nach CSV-Datei

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Suchen & Ersetzen nach CSV-Datei

Ralf Hobirk
Beiträge gesamt: 5961

4. Sep 2013, 02:28
Beitrag # 1 von 11
Bewertung:
(6033 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich muss demnächst einen 124-seitigen Katalog auf Englisch und Niederländisch übersetzen. Dazu kopiere ich sämtliche ID-Dokumente und wechsle zunächst pauschal die Spracheinstellungen (mit SpracheWechseln.js). Die "normalen" Texte kommen aus einer Datenbank und werden per Script in der entsprechenden Sprache ersetzt. Natürlich dank eurer Hilfe vor ca. einem Jahr ;-)

Ich habe in dem Katalog aber auch reichlich Bildunterschriften, die ich teilweise per Suchen & Ersetzen, aber zu einem gewissen Teil auch manuell übersetzt habe.

Ich lasse gerade alle zu übersetzenden Begriffe bzw. Bildunterschriften in eine Excel-Tabelle kopieren, damit ich sie zur Übersetzung auf Niederländisch wegschicken kann. Jetzt stellt sich die Frage, ob ich diese Tabelle (im CSV-Format) nicht auch nutzen kann, um die Übersetzung per Script auf ein ID-Dokument anzuwenden.

Der Aufbau der Tabelle ist einfach:

Spalte A = Original Deutsch
Spalte B = Übersetzung z.B. Niederländisch

Ale Bildunterschriften haben das gleiche, eindeutige Absatzformat.

Ich möchte gern vermeiden, jeden Begriff in ein bereits vorhandenes Script kopieren zu müssen, nach diesem Muster:

Code
app.findTextPreferences = null;  
app.changeTextPreferences = null;
app.findTextPreferences.findWhat = 'Nationalpark Krka-Wasserfälle';
app.findGrepPreferences.appliedParagraphStyle = 'Caption';
app.changeTextPreferences.changeTo = 'Nationaal park Krka watervallen';
app.activeDocument.changeText();


Lässt sich da vielleicht was mit obigem Code oder FindChangeByList machen bzw. modifizieren?
X

Suchen & Ersetzen nach CSV-Datei

WernerPerplies
Beiträge gesamt: 2760

4. Sep 2013, 06:23
Beitrag # 2 von 11
Beitrag ID: #516927
Bewertung:
(6009 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

klar geht das, es gibt einige Tools, mit denen Du aus Deiner CSV-Datei eine passende FindChangeByList-Liste erzeugen könntest.

Aber irgendwie erscheint mir der von Dir gewählte Weg recht kompliziert zu sein.

Ich gehe mal davon aus, das diese Arbeit regelmäßig vorkommt, dehalb die Frage:

Wäre es nicht am sinnvollsten, für die Bildunterschriften Platzhalter zu verwenden, die dann direkt aus der CSV-Datei per Skript ersetzt werden?

Wenn aber die zu ersetzen Begriffe aus der/die InDesigndatei(en) kommen sollen, warum denn so?
Zitat Ich lasse gerade alle zu übersetzenden Begriffe bzw. Bildunterschriften in eine Excel-Tabelle kopieren...

und nicht so?
Die Excel-Datei (als CSV-Datei) direkt mit einem Skript erzeugen.

Zitat Jetzt stellt sich die Frage, ob ich diese Tabelle (im CSV-Format) nicht auch nutzen kann, um die Übersetzung per Script auf ein ID-Dokument anzuwenden.


Klar geht das:
Lese die CSV-Datei in ein Array ein und ersetzte dann die Begriffe in einer Scheife über dieses Array.

Ich würde dann alles (Im- und Export) in ein einziges, kleines dialoggeführtes Skript packen, das bei richtigem Aufbau in einem Rutsch eine Exceltabelle für alle Sprachen, oder alternativ für jede Sprache eine einzelne Tabelle zum verschicken erzeugt.

Beim Import könnte dieses Skript dann alle notwendigen Arbeiten für alle zur Verfügung stehenden Spachen in einem Durchgang erledigen.

Das wäre dann Adobe-Indesign-Automatisierung, wie ich sie mir vorstelle.


als Antwort auf: [#516926]

Suchen & Ersetzen nach CSV-Datei

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Sep 2013, 10:20
Beitrag # 3 von 11
Beitrag ID: #516936
Bewertung:
(5960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quick und dirty, aber vielleicht macht es ja schon, was du brauchst.

Zeile 4 und 5 müssen noch angepasst werden.

Das Script enthält keinerlei Kontrollen. Wenn es also z.B. das Absatzformat nicht gibt, kommt der ungebremste InDesign-Fehler.

Code
app.doScript (main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "change by csv") 

function main() {
var datenfeldtrenner = "\t";
var absatzformatname = "test";

var doc = app.activeDocument;
var absatzformat = doc.paragraphStyles.item( absatzformatname );

//------------------------------------------------------------------------
// csv einlesen
//------------------------------------------------------------------------
var csv_file = File.openDialog("Welche csv Datei?");
if (csv_file == null) return;
csv_file.open("r");
var csv = [];
var n = 0;
while (!csv_file.eof) {
csv[n] = csv_file.readln();
n++;
}
csv_file.close();

app.findTextPreferences = NothingEnum.NOTHING;
app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.appliedParagraphStyle = absatzformat;

for (var n = 0; n < csv.length; n++) {
var line = csv[n].split( datenfeldtrenner );
if (line.length == 2) {
app.findTextPreferences.findWhat = line[0];
app.changeTextPreferences.changeTo = line[1];
app.changeText();
}
}
}



als Antwort auf: [#516926]

Suchen & Ersetzen nach CSV-Datei

Ralf Hobirk
Beiträge gesamt: 5961

4. Sep 2013, 16:48
Beitrag # 4 von 11
Beitrag ID: #516949
Bewertung:
(5907 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke euch beiden! Ich werde Geralds Lösung heute Abend testen, sobald die Liste steht.

@Werner: Die Liste/Tabelle aus ID zu generieren ist kaum möglich, da die Daten konkret in 84 Einzeldokumenten stecken. Es handelt sich um einen sich jährlich wiederholenden Job, und ich werde im nächsten Jahr usw. einfach nur neu hinzukommende Begriffe ergänzen.


als Antwort auf: [#516936]

Suchen & Ersetzen nach CSV-Datei

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Sep 2013, 16:59
Beitrag # 5 von 11
Beitrag ID: #516950
Bewertung:
(5906 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
>Ich werde Geralds Lösung heute Abend testen, sobald die Liste steht.

Mit Kopien der Dateien und nicht mit den Originalen etc.pp.

Nicht wahr?

;)


als Antwort auf: [#516949]

Suchen & Ersetzen nach CSV-Datei

Ralf Hobirk
Beiträge gesamt: 5961

4. Sep 2013, 17:02
Beitrag # 6 von 11
Beitrag ID: #516951
Bewertung:
(5901 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Och, ich teste immer alles mit Originalen ;-) Dafür hab ich doch Backups.

Spaß beiseite: Ich habe keinerlei Suizid-Absichten.


als Antwort auf: [#516950]

Suchen & Ersetzen nach CSV-Datei

Ralf Hobirk
Beiträge gesamt: 5961

5. Sep 2013, 23:06
Beitrag # 7 von 11
Beitrag ID: #516981
Bewertung:
(5767 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

hab's gerade getestet. Es löscht mir alle BUs aus den Textrahmen, setzt aber nix Neues rein. Egal, ob ich als Datenfeldtrenner den Tab oder das Semikolon nehme (natürlich auch im Sctript angepasst).


als Antwort auf: [#516936]

Suchen & Ersetzen nach CSV-Datei

WernerPerplies
Beiträge gesamt: 2760

6. Sep 2013, 07:29
Beitrag # 8 von 11
Beitrag ID: #516982
Bewertung:
(5733 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

eine CSV-Datei kann sehr viel komplexer sein, als eine mit Tab oder Semikolon separierte Zeile, so könnte natürlich auch der eigentliche Separator oder ein Zeilenende in einem Feld vorkommen.

Da Herr Singelman die Anzahl der Felder prüft und es so aussieht, dass die eigentliche Ersetzung vorgenommen wird, könnte die Ursache im Inhalt des zweiten Feldes liegen.

Zeige doch mal eine Zeile der CSV-Datei.


als Antwort auf: [#516981]

Suchen & Ersetzen nach CSV-Datei

WernerPerplies
Beiträge gesamt: 2760

6. Sep 2013, 08:49
Beitrag # 9 von 11
Beitrag ID: #516984
Bewertung:
(5718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

noch eine Ergänzung:

Zitat @Werner: Die Liste/Tabelle aus ID zu generieren ist kaum möglich, da die Daten konkret in 84 Einzeldokumenten stecken. Es handelt sich um einen sich jährlich wiederholenden Job, und ich werde im nächsten Jahr usw. einfach nur neu hinzukommende Begriffe ergänzen.


Ich hatte diesen Teil überlesen.
Zitat Die Liste/Tabelle aus ID zu generieren ist kaum möglich, da die Daten konkret in 84 Einzeldokumenten stecken.

Das spricht doch gerade für eine Skriptlösung.
Verstehe ich das richtig?
Du erstellst Deine Liste manuell aus 84 Dokumenten, weißt zukünftig genau, welche Begriffe dazu gekommen sind und öffnest dann manuell 84 Dokumente, um das Suchen- und Ersetzenskript auszuführen und die Einzeldateien dann zu speichern und zu schließen?


als Antwort auf: [#516949]

Suchen & Ersetzen nach CSV-Datei

Ralf Hobirk
Beiträge gesamt: 5961

6. Sep 2013, 13:35
Beitrag # 10 von 11
Beitrag ID: #516994
Bewertung:
(5670 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

das Problem hat Gerald gestern per PN gelöst. Ich hatte eine Leerzeile in der CSV übersehen, die den Fehler verursacht hatte.

Für die manuelle Listenerstellung hat meine Frau eine knappe halbe Stunde gebraucht, ist also vernachlässigbar. Es handelt sich insgesamt um ca. 70 verschiedene Bildunterschriften, die übersetzt werden müssen. Der Rest sind sprachneutrale Begriffe wie Namen von Orten und Personen. Die Liste wird sich sich noch verkürzen, da wir uns firmenintern bei der "capitalization" auf eine bestimmte Regelung geeinigt haben ;-)

Da ich selbst Autor des Kataloges bin und auch maßgebend für die Produktentwicklung (Kreuzfahrten/Blaue Reise) verantwortlich bin, lege ich auch selbst die Bildunterschriften fest. Und da wird es mir schon auffallen, wenn ich eine Bildunterschrift ändere oder neu einführe.

Antwort auf: öffnest dann manuell 84 Dokumente, um das Suchen- und Ersetzenskript auszuführen und die Einzeldateien dann zu speichern und zu schließen?

Nein, ich starte nur ein Mal das Script "DoScriptWithDocsOfFolder.jsx" und gut ist. Geralds Script wird entsprechend angepasst, so dass keine Abfrage der CSV mehr erfolgt, sondern sie fix im Script eingetragen wird ;-)


als Antwort auf: [#516984]

Suchen & Ersetzen nach CSV-Datei

WernerPerplies
Beiträge gesamt: 2760

6. Sep 2013, 13:58
Beitrag # 11 von 11
Beitrag ID: #516998
Bewertung:
(5666 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Dann ist ja alles klar. ;-)

Zitat Ich hatte eine Leerzeile in der CSV übersehen, die den Fehler verursacht hatte.


Na ja, Leerzeilen sind in einer CSV genauso zulässig, wie Zeilenenden in Feldern.

In beiden Fällen, die vermulich bei Dir jetzt nicht mehr vorkommen, wird das Skript Probleme bekommen.


als Antwort auf: [#516994]
X