fboerner 2010-02-18 20:27:20 UTC
FreeBSD German Documentation Repository
Modified files:
books/developers-handbook/l10n chapter.sgml
Log:
MFen 1.12 -> MFen 1.13
Hinzufuegen einiger Hinweise um zu lokalisierende Strings bei Nutzung
von NLS zu reduzieren.
Approved by: bcr (mentor)
Revision Changes Path
1.12 +66 -8 de-docproj/books/developers-handbook/l10n/chapter.sgml
Index: chapter.sgml
===================================================================
RCS file: /home/cvs/de-docproj/books/developers-handbook/l10n/chapter.sgml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -I$FreeBSDde.*$ -r1.11 -r1.12
--- chapter.sgml 6 Feb 2010 17:38:31 -0000 1.11
+++ chapter.sgml 18 Feb 2010 20:27:20 -0000 1.12
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/developers-handbook/l10n/chapter.sgml,v 1.11 2010/02/06 17:38:31 fboerner Exp $
- basiert auf: 1.12
+ $FreeBSDde: de-docproj/books/developers-handbook/l10n/chapter.sgml,v 1.12 2010/02/18 20:27:20 fboerner Exp $
+ basiert auf: 1.13
-->
<chapter id="l10n">
@@ -217,7 +217,7 @@
<title>Ein Beispiel aus der Praxis</title>
<para>Das folgende Beispiel zeigt einen einfachen Weg wie man
- NLS Kataloge flexibel nutzen kann.</para>
+ NLS-Kataloge flexibel nutzen kann.</para>
<para>Die nachfolgenden Zeilen müssen in eine allgemeine
Headerdatei, die in allen Quelldateien vorhanden ist, die
@@ -257,7 +257,7 @@
</programlisting>
<para>Als nächstes kommt der Code der den Katalog
- öffnet, liest und schliest:</para>
+ öffnet, liest und schließt:</para>
<programlisting>
#ifndef WITHOUT_NLS
@@ -274,7 +274,64 @@
catclose(catalog);
#endif
</programlisting>
+
+ <sect3>
+ <title>Reduzierung von zu lokalisierenden Zeichenketten</title>
+
+ <para>Es gibt einen guten Weg, Zeichenketten die lokalisert
+ werden müssen, durch den Einsatz von
+ <application>libc</application>-Fehlermeldungen zu reduzieren.
+ Dadurch vermeidet man Duplikate und erstellt gleiche Meldungen
+ für häufige Fehlermeldungen, die bei vielen
+ Programmen auftreten können.</para>
+ <para>Als erstes ist hier ein Beispiel, dass keine
+ <application>libc</application>-Fehlermeldungen benutzt:</para>
+
+ <programlisting>
+#include <err.h>
+...
+if (!S_ISDIR(st.st_mode))
+ err(1, "argument is not a directory");
+ </programlisting>
+
+ <para>Dies kann so abgeändert werden, dass eine
+ Fehlermeldung durch Auslesen der Variabel <varname>errno</varname>
+ ausgegeben wird. Die Fehlermeldung wird entspechend dem Beispiel
+ ausgegeben:</para>
+
+ <programlisting>
+#include <err.h>
+#include <errno.h>
+...
+if (!S_ISDIR(st.st_mode)) {
+ errno = ENOTDIR;
+ err(1, NULL);
+}
+ </programlisting>
+
+ <para>In diesem Beispiel wurde die benutzerdefinierte
+ Zeichenkette entfernt. Übersetzer haben weniger Arbeit,
+ wenn sie ein Programm lokalisieren und die Benutzer sehen die
+ übliche <quote>"Not a directory"</quote>
+ Fehlermeldung, wenn dieser Fehler auftritt. Diese Meldung wird
+ ihnen wahrscheinlich vertraut erscheinen. Bitte beachten Sie,
+ dass es notwendig ist,
+ <filename class="headerfile">errno.h</filename>
+ hinzuzufügen um einen direkten Zugriff auf
+ <varname>errno</varname> zu haben.</para>
+
+ <para>Es lohnt sich darauf hinzuweisen, dass es Fälle gibt,
+ in denen <varname>errno</varname> automatisch aufgerufen wird,
+ so dass es nicht notwendig ist, es explizit zu tun:</para>
+
+ <programlisting>
+#include <err.h>
+...
+if ((p = malloc(size)) == NULL)
+ err(1, NULL);
+ </programlisting>
+ </sect3>
</sect2>
<sect2 id="nls-mk">
@@ -282,15 +339,16 @@
<para>Das Benutzen von Katalogdateien setzt einige sich
wiederholende Schritte, wie das kompilieren und installieren
- der Kataloge voraus. Um diese Schritte zu vereinfachen,
+ der Kataloge, voraus. Um diese Schritte zu vereinfachen,
stellt <filename>bsd.nls.mk</filename> einige Makros zur
- Verfügung. Es ist notwendig <filename>bsd.nls.mk</filename>
- explizit hinein zu kopieren, es wird automatisch aus den
- allgemeinen Makefiles wie <filename>bsd.prog.mk</filename> oder
+ Verfügung. Es ist nicht notwendig
+ <filename>bsd.nls.mk</filename> explizit hinein zu kopieren,
+ es wird automatisch aus den allgemeinen Makefiles wie
+ <filename>bsd.prog.mk</filename> oder
<filename>bsd.lib.mk</filename> gezogen.</para>
<para>Normalerweise reicht es, <makevar>NLSNAME</makevar> zu
- definieren, die den Names des Kataloges als erstes
+ definieren, die den Namen des Kataloges als erstes
Argument von &man.catopen.3; enthalten sollte und die
Katalogdateien in <makevar>NLS</makevar> ohne ihre Endung
<literal>.msg</literal> auflistet. Hier ist ein Beispiel, das
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Thu 18 Feb 2010 - 21:27:36 CET