PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Handbuch zweisprachig



Fritz876
03-11-2009, 15:28
Hallo zusammen,

mir liegt eine zweisprache technische Dokumentation vor. Zweisprachig heißt, dass jeder Abschnitt in deutsch und in englisch vorliegt. Die Ausgabe soll aber immer nur in deutsch oder in englisch erfolgen.

Im Header steht:



\newcommand{ \langDE } { \iftrue }
\newcommand{ \langEN } { \iffalse }


Im Text steht bei jedem Abschnitt:



\langDE{
\chapter{Überschrift deutsch}
Text deutsch
}
\fi{}

\langEN{
\chapter{Überschrift englisch}
Text englisch
}
\fi{}

Mein Haupt-Problem derzeit ist, dass alle Tools wie das TeXnicCenter (natürlich) einmal die deutsche und direkt darunter die englische Überschrift anzeigen.

Außerdem finde ich auch die ganze Art der Umsetzung nicht schön.

Gibt es für die gesamte zweisprachigkeit nicht eine schönere / bessere Lösung?

Danke und Gruß
Fritz

u_fischer
03-11-2009, 15:50
Nun, dass Texniccenter beide Überschriften irgendwo anzeigt, wirst du kaum verhindern können. Abgesehen davon, ist die \iftrue .. \fi-Methode nicht sonderlich sicher. Ich würde eher zu comment.sty raten.

http://www.tex.ac.uk/cgi-bin/texfaq2html?label=conditional

localghost
03-11-2009, 16:48
Du könntest die Sprache des Dokuments dazu benutzen, die entsprechenden Teile deines Dokuments einzulesen und auszugeben. Das folgende minimale Beispiel soll das mal zeigen.

\documentclass[11pt,a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{ifthen}

\let\sprache\languagename % Ohne diese Zeile funktioniert es nicht

\begin{document}
\ifthenelse{%
\equal{\sprache}{ngerman}
}{%
Deutsch % Hier kommen alle Dateien in Deutsch hin
}{%
English % Hier kommen alle Dateien in Englisch hin
}
\end{document}
Wenn Du »Deutsch« nun durch einen entsprechenden Block an \include-Befehlen ersetzt und entsprechendes bei »Englisch« für die Dateien mit den englischen Texten tust, kannst Du die Sprachoption für die Dokumentklasse als Schalter benutzen.

Die Fallunterscheidungen in den Dateien sind dann nicht mehr nötig. Allerdings müssten die Inhalte dann auf die Dateien für die beiden Sprachen so verteilt werden, dass jede Datei den Text in nur einer Sprache enthält.


MfG
Thorsten¹

Fritz876
10-11-2009, 15:36
Vielen Dank Euch beiden für die Lösungsvorschläge! :)

Ich werde die Lösung von Thorsten demnächst umsetzen, allerdings muß ich für eine gewisse Übergangszeit aufgrund eines bald anstehenden Versionswechsel des beschriebenen Produktes noch eine Übergangslösung erstellen.

Dazu gibt es eine Datei language.dat in der entweder ngerman oder english steht. Diesen String möchte ich auslesen und daher ("dynamisch") bei kompillieren entscheiden lassen welche Version erstellt wird.

Mein Code:



\def\chopline#1 \\
{
\def\sprache{#1}
}
\newread\quelle
\openin\quelle=language.dat
\read\quelle to \line
\expandafter\chopline\line\\
\closein\quelle

\newcommand{ \langDE } { \iftrue }
\newcommand{ \langEN } { \iffalse }

\ifthenelse{%
\equal{\sprache}{english}
}{%
\langDE{ \iffalse }
\langEN{ \iftrue }
}{}




Das Auslesen bzw. die Kompillierung je nach in der Datei definierten Sprache funkioniert aber nicht wie gewünscht. Wo liegt mein Fehler?

Danke und Gruß
Fritz