Sprachumschaltung für Dokumente

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Sprachumschaltung für Dokumente

Re: Sprachumschaltung für Dokumente

von Manfred Morgner » Mo 23. Apr 2012, 22:49

Hallo zusammen,

wir haben die Aufgabe Jetzt doch etwas anders gelöst. Das Beispiel von Rainer funktioniert einwandfrei! Allerdings erreicht es seine Grenze wenn man TEX Dateien per input einschliesst.

Darum habe ich zwei kleine Shell Skripten geschrieben, die im Kern das selbe machen nur etwas anders:

1) Die Skripte lesen auch '\input{abc.tex}' ein
2) Man kann statt "%<lang>" jetzt auch "!LN " verwenden
3) Man muss jede Zeile einzeln markieren
4) Die Sprechkennung muss bei "!LN " zwei Zeichen lang sein, z.B. "!de "
5) Man kann Tags nicht kombinieren

Unsere Lösung ist also nicht ganz soviel besser wie sie schlechter ist.

Aufgerufen wird 'book-make.sh'. Diese Datei muss für andere Projekte entsprechend angepasst werden, aber das werden wir sicher noch verbessern. Derzeit ging es erst einmal um eine Lösung für die Mehrsprachigkeit.

Das Ziel aber wurde schon einmal erreicht, man kann in beliebig vielen beliebig tief verschachtelten TEX Dateien mehrsprachige Text unterbringen und daraus dann entsprechend mehrsprachige Bücher bauen.

Somit werden wir nun zunächst die deutsche Übersetzung machen und anschliessend etwas an den beiden Skripten arbeiten:

https://github.com/fmorgner/AVR-Assembly-Cookbook

Vielen Dank!

Ich hoffe, dass mein Beitrag auch Anderen nützt!

Viele Grüsse,
Manfred.

PS: Vorschläge und Verbesserungen in allen Belangen sind immer gern gesehen! :-)

PS2: Den anderen Tag (!de ) habe ich gewählt weil durch %<de> die Syntaxhervorhebung im Text ausgeschaltet wird.

Update

von Manfred Morgner » Mi 18. Apr 2012, 13:06

Wir setzen das 'Werk' jetzt bald neu auf. Dann passiert's!

Re: Mehrsprachige Dokumentation

von Manfred Morgner » Di 31. Jan 2012, 23:23

Hallo Rainer,

das sieht tatsächlich so ähnlich aus wie das was ich mir vorgestellt hatte weil es ermöglicht, in einem Dokument Sprachen zu mischen. Davon bin ich jetzt schon einmal begeistert! Ich werde vorsichtig versuchen, mit diesem Vorschlag zu starten und vor allem, es zu verstehen - Schritt für Schritt!

Wie versprochen werde ich Bescheid geben sobald ich es in mein Projekt eingebaut habe.

Viele Grüsse,
Manfred,

von rais » Di 31. Jan 2012, 23:13

Hallo Jürgen!

Erstmal Danke für den Tipp!

Mein bescheidener Versuch, das so einfach wie möglich umzusetzen, sieht derzeit so aus:
als main.ins:
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\nopostamble
\generate{
\file{main-de.tex}{\from{main.src}{de}}
\file{main-en.tex}{\from{main.src}{en}}
\file{main-it.tex}{\from{main.src}{it}}
}
\endbatchfile
und als main.src:
%<*de|en|it>
% deutsch/englisch/italienisch:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%</de|en|it>
% nur deutsch:
%<de>\usepackage[ngerman]{babel}
% nur englisch:
%<en>\usepackage[english]{babel}
% nur italienisch:
%<it>\usepackage[italian]{babel}
%<de|en|it>\begin{document}
%<de>Deutscher Text
%<en>English Text
%<it>Testo italiano
%<de|en|it>\end{document}
Nach (la)tex main.ins bekommt man so seine main-*.tex-Dateien -- coole Sache, das;-)

@Manfred: mit Jürgens Vorschlag bist Du zumindest plattformunabhängig, IMHO.

MfG
Rainer

Re: Mehrsprachige Dokumentation

von Manfred Morgner » Mo 30. Jan 2012, 01:01

Hallo Jürgen,

ich denke, das sollte ich in jedem Fall publizieren, denn da ich nichts dazu finden konnte, wäre das für Andere sicherlich auch hilfreich. Es wird aber unter Umständen bis zu 4 Wochen dauern weil ich verschiedene Szenarien durchspielen muss und leider nicht viel Zeit dafür habe.

Da mir die Sache aber generell wichtig ist, werde ich ihr Vorrang vor den meisten anderen Projekten geben - die brauchen ja letztlich alle eine Form von Dokumentation. Und bei internationaler Beteiligung grundsätzlich auch mehrsprachig. Darum ist es mir wichtig, dass der Rahmen brauchbar ist und wenig mehr verlangt als man beim Einsatz von LeTeX sowieso schon verlangt.

Viele Grüsse,
Manfred,

Re: Mehrsprachige Dokumentation

von Jürgen Schwarze » So 29. Jan 2012, 22:51

Hallo Manfred!

Nein, R musst du nicht installieren. Das Programm docstrip ist Teil jeder LaTeX-Distribution.

Allerdings wäre es sicherlich hilfreich, wie du ja auch schreibst, die notwendigen Schritte mit einem Skript oder einem Makefile zu automatisieren. Denn nach dem Einsatz von docstrip gilt es ja, die erzeugten Dateien zu übersetzen, ggf. Indizes zu erzeugen, Referenzen für eine Bibliographie aufzulösen etc. - das übliche Prozedere unter LaTeX halt.

Es wäre schön zu hören, wie du das Problem letztlich gelöst hast.


Liebe Grüße
Jürgen

Re: Mehrsprachige Dokumentation

von Manfred Morgner » So 29. Jan 2012, 14:27

Hallo Jürgen,

das ist auch ein sehr interessanter Ansatz. Es scheint allerdings, also müsste man dafür R installieren? Mir wäre das gleich, aber in eine Open Source Projekt, denke ich, sollte man seine Kollaborateure nicht zwingen, zusätzliche Software zu installieren 'nur' um eine Annehmlichkeit zu gewinnen. ;-)

Dennoch! Das Prinzip ist gut. Ich könnte ja ein Shellscript bauen, dass das sinngemäss abwickelt. Das könnte ich vielleicht auch in den TeXshop integrieren und/oder in ein Makefile.

Beide Vorschläge werde ich austesten. Das wird spannend!

Viele Grüsse,
Manfred.

Re: Sprachumschaltung für Dokumente

von Jürgen Schwarze » Sa 28. Jan 2012, 13:04

Hallo Manfred!

Ich würde das Problem mit docstrip lösen. Die Bereiche in deiner zentralen Textdatei musst du für die einzelnen Sprachversionen entsprechen markieren. Nach einem docstrip-Lauf erhältst du dann Dateien für die einzelnen Sprachversionen (aus main.tex würden dann z. B. main-de.tex und main-en.tex).

Ein Beispiel für diesen Ansatz findest du unter http://journal.r-project.org/archive/20 ... ndholm.pdf.

Gruß
Jürgen

Mehrsprachige Dokumentation

von Manfred Morgner » Fr 27. Jan 2012, 23:13

Hallo Rainer,

das ist sehr interessant! Dann werde ich die Struktur der Dokumentation anpassen, bevor es zu viele Dateien sind. :-)

Vielen Dank!
Manfred.

Re: Sprachumschaltung für Dokumente

von rais » Fr 27. Jan 2012, 16:38

Moin moin,
Manfred Morgner hat geschrieben: Ich möchte eine Dokumentation parallel in mehreren Sprachen schreiben ABER beim Kompilieren des Dokumentes die Ausgabesprache festlegen. Das heisst, dass die Dokumentation/Handbuch wahlweise in z.B. DE oder EN erzeugt werden kann.
so Dein System symbolische Links unterstützt, könntest Du etwa so vorgehen:
Deine Hauptdatei sei `main-en.tex'.
ln -s main-en.tex main-de.tex
legt einen symbolischen Link mit Namen `main-de.tex' an.
Für jede main-??.tex-Datei erstellst Du eine .cfg-Datei, exemplarisch hier main-en.cfg:
%English configuration
\usepackage[english]{babel}
\newcommand*\myext{en.tex}
und in der main-en.tex (und wegen der symbolischen Links automagisch in allen main-??.tex-Dateien)
\documentclass{article}
\InputIfFileExists{\jobname.cfg}
  {\message{Using configuration file `\jobname.cfg'}}
  {\message{Config file `\jobname.cfg' not found. Strange things may happen...}}
\providecommand*\myext{en.tex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\newcommand*\myinput[1]{%
  \input{#1-\myext}%
}
\begin{document}
\myinput{test}
\end{document}
Fehlen nur noch die einzubindenden Dateien, hier test-de.tex und test-en.tex und was Du da reinschreibst, überlass ich Dir;-)
Prinzipiell wäre es so jedenfalls leicht um andere Sprachen erweiterbar, so sprachbedingt nicht andere Encodings hinzukommen, dann müsste fontenc wohl mit in die .cfg-Datei(en).

MfG
Rainer

Nach oben