[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR] man://manpages-de/stat.2



Hallo Chris,

Am 11.10.2014 um 10:17 schrieb Chris Leick:
> Hallo Mario,
> 
> Mario Blättermann:
>> anbei die geänderte Datei und ein Diff. Bitte um konstruktive Kritik. 
> 
> #. type: Plain text
> #, no-wrap
> msgid ""
> "B<int fstatat(int >I<dirfd>B<, const char *>I<pathname>B<, struct stat
> *>I<buf>B<,>\n"
> "B<            int >I<flags>B<);>\n"
> msgstr ""
> "B<int fstatat(int >I<dirfd>B<, const char *>I<Pfadname>B<, struct stat
> *>I<Puffer>B<,>\n"
> "B<            int >I<Flags>B<);>\n"
> 
> s/Flags/Schalter/
> (kommt öfter vor)
> 
OK, habe ich global in »Schalter« geändert.
> 
> #. type: Plain text
> msgid ""
> "These functions return information about a file, in the buffer pointed to by "
> "I<stat>.  No permissions are required on the file itself, but\\(emin the "
> "case of B<stat>(), B<fstatat>(), and B<lstat>()\\(emexecute (search) "
> "permission is required on all of the directories in I<pathname> that lead to "
> "the file."
> msgstr ""
> "Diese Funktionen geben Informationen über eine Datei in den Puffer zurück, "
> "auf den I<stat> zeigt. Dazu benötigt man keinerlei Rechte an der angegebenen "
> "Datei, muss aber \\(emim Falle von B<stat>(), B<fstatat>() und "
> "B<lstat>()\\(em alle Verzeichnisse im I<Pfadnamen> durchsuchen dürfen, der "
> "zu der Datei führt."
> 
> s/in den Puffer/im Puffer/
> s/benötigt man keinerlei Rechte/werden keinerlei Rechte … benötigt/
> 
OK.
> 
> #. type: Plain text
> #, no-wrap
> msgid ""
> "stat(pathname, &sb);\n"
> "if ((sb.st_mode & S_IFMT) == S_IFREG) {\n"
> "    /* Handle regular file */\n"
> "}\n"
> msgstr ""
> "stat(pathname, &sb);\n"
> "if ((sb.st_mode & S_IFMT) == S_IFREG) {\n"
> "    /* Handle regular file */\n"
> "}\n"
> 
> »Handle regular file« absichtlich nicht übersetzt?
> (mehrfach)
> 
Nein, nur beim Kopieren des Codebeispiels vergessen. Ich habe jetzt »reguläre
Datei verarbeiten« geschrieben.
> 
> #. type: Plain text
> #| msgid ""
> #| "The following POSIX macros are defined to check the file type using the "
> #| "I<st_mode> field:"
> msgid ""
> "The following mask values are defined for the file permissions component of "
> "the I<st_mode> field:"
> msgstr ""
> "Die folgende Maskenwerte sind für die Zugriffsrechte-Komponente des Felds "
> "I<st_mode> definiert:"
> 
> folgenden mit n
OK.
> Der alte Code kann weg.
> 
Ist schon klar, aber er sollte so lange drin bleiben, bis alles gegengelesen
ist. Ich finde es beim Korrigieren eines Fuzzy-Strings jedenfalls hilfreich zu
wissen, was vorher da stand.
> 
> #. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
> #. Before glibc 2.16, defining _ATFILE_SOURCE sufficed
> #. type: Plain text
> msgid ""
> "If I<pathname> is an empty string, operate on the file referred to by "
> "I<dirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> "
> "flag).  If I<dirfd> is B<AT_FDCWD>, the call operates on the current working "
> "directory.  In this case, I<dirfd> can refer to any type of file, not just a "
> "directory.  This flag is Linux-specific; define B<_GNU_SOURCE> to obtain its "
> "definition."
> msgstr ""
> "Falls I<Pfadname> eine leere Zeichenkette ist, wird mit der Datei "
> "gearbeitet, auf die I<dirfd> verweist (dies kann mit dem B<O_PATH>-Schalter "
> "von B<open>(2) ermittelt werden). Falls I<dirfd> is B<AT_FDCWD> ist, erfolgt "
> "der Aufruf im aktuellen Arbeitsverzeichnis. In diesem Fall kann sich "
> "I<dirfd> auf jeden Dateityp beziehen, nicht unbedingt ein Verzeichnis. "
> "Dieser Schalter ist Linux-spezifisch; definieren Sie B<_GNU_SOURCE>, um "
> "dessen Definition zu ermitteln."
> 
> s/is //
> 
OK.
> #. type: Plain text
> msgid ""
> "Search permission is denied for one of the directories in the path prefix of "
> "I<pathname>.  (See also B<path_resolution>(7).)"
> msgstr ""
> "Der Suchzugriff auf eines der Verzeichnisse im Pfad-Präfix von I<Pfadname> "
> "wurde verweigert (siehe auch B<path_resolution>(7))."
> 
> Pfadpräfix aneinenader (mehrfach)
> 
OK.
> #. type: Plain text
> msgid "I<fd> is bad."
> msgstr "I<fd> falsch."
> 
> ist falsch
> 
OK.
> 
> 
> #. type: Plain text
> msgid ""
> "Use of the I<st_blocks> and I<st_blksize> fields may be less portable.  "
> "(They were introduced in BSD.  The interpretation differs between systems, "
> "and possibly on a single system when NFS mounts are involved.)  If you need "
> "to obtain the definition of the I<blkcnt_t> or I<blksize_t> types from "
> "I<E<lt>sys/stat.hE<gt>>, then define B<_XOPEN_SOURCE> with the value 500 or "
> "greater (before including I<any> header files)."
> msgstr ""
> "Die Verwendung der Felder I<st_blocks> und I<st_blksize> kann die "
> "Portabilität einschränken. Diese wurden in BSD eingeführt. Die "
> "Interpretation ist nicht auf allen System gleich, und möglicherweise auf "
> "einem einzelnen System, wenn NFS-Einhängungen bestehen. Falls Sie die "
> "Definition der Typen I<blkcnt_t> oder I<blksize_t> von I<E<lt>sys/stat."
> "hE<gt>> ermitteln wollen, dann definieren Sie B<_XOPEN_SOURCE> mit einem "
> "Wert von 500 oder größer (bevor Sie I<irgendeine> Header-Datei einbeziehen)."
> 
> s/ist nicht auf allen System gleich/unterscheidet sich auf verschiedenen Systemen/
> (sonst passt der Nebensatz nicht mehr)
> 
> 
> #. type: tbl table
> #, no-wrap
> msgid "3000\tS_IFMPC\t\t030000\tmultiplexed character special (V7)\n"
> msgstr "3000\tS_IFMPC\t\t030000\tGemultiplexte zeichenorientierte Spezialdatei
> (V7)\n"
> 
> Gemultiplext klingt merkwürdig. Vielleicht »gleichzeitig übertragene«. Wenn Du
> es dennoch benutzen willst, würde ich es hier klein schreiben.
> 
Ich habe es klein geschrieben
> 
> #. type: tbl table
> #, no-wrap
> msgid "On nondirectories: don't cache this file (SunOS)\n"
> msgstr "Auf Nicht-Verzeichnisse: diese Datei nicht in den Cache (SunOS)\n"
> 
> Nichtverzeichnissen
Hier möchte ich den Bindestrich gern behalten. Es ist nicht einfach ein
zusammengesetztes Substantiv aus zwei deutschen Begriffen, sondern die Negation
eines Begriffs. Das verdeutlicht meiner Meinung nach der Bindestrich.

> s/in den Cache/zwischenspeichern/
> 
OK.
> 
> #. type: tbl table
> #, no-wrap
> msgid "On directories: restricted deletion flag (SVID-v4.2)\n"
> msgstr "Auf Verzeichnisse: Flag für eingeschränktes Löschen (SVID-v4.2)\n"
> 
> Verzeichnissen mit n
Ich betrachte das als Kurzform von »Auf Verzeichnisse angewendet«, sonst sollte
es eher »Bei Verzeichnissen« heißen:
> Flag s.o.
> 
> 
> #. type: Plain text
> msgid ""
> "Since kernel 2.5.48, the I<stat> structure supports nanosecond resolution "
> "for the three file timestamp fields.  The nanosecond components of each "
> "timestamp are available via names of the form I<st_atim.tv_nsec> if the "
> "B<_BSD_SOURCE> or B<_SVID_SOURCE> feature test macro is defined.  Nanosecond "
> "timestamps are nowadays standardized, starting with POSIX.1-2008, and, "
> "starting with version 2.12, glibc also exposes the nanosecond component "
> "names if B<_POSIX_C_SOURCE> is defined with the value 200809L or greater, or "
> "B<_XOPEN_SOURCE> is defined with the value 700 or greater. If none of the "
> "aforementioned macros are defined, then the nanosecond values are exposed "
> "with names of the form I<st_atimensec>."
> msgstr ""
> "Seit Kernel 2.5.48 unterstützt die I<stat>-Struktur die Nanosekunden-"
> "Auflösung für die drei Zeitstempel-Felder. Die Nanosekunden-Komponenten "
> "jedes Zeitstempels sind durch Namen der Form I<st_atim.tv_nsec> verfügbar, "
> "sofern das Feature-Test-Makro B<_BSD_SOURCE> oder B<_SVID_SOURCE> definiert "
> "ist. Nanosekunden-Zeitstempel sind heutzutage standardisiert, beginnend mit "
> "POSIX.1-2008, und die Glibc bietet seit Version 2.12 ebenfalls die Namen den "
> "Nanosekunden-Komponenten, wenn B<_POSIX_C_SOURCE> mit dem Wert 200809L oder "
> "größer oder B<_XOPEN_SOURCE> mit dem Wert 700 oder größer definiert ist. "
> "Falls keines der erwähnten Makros definiert ist, dann werden die "
> "Nanosekunden-Werte mit Namen der Form  I<st_atimensec> angezeigt."
> 
> s/ebenfalls die Namen den/ebenfalls die Namen der/
> 
OK.
> 
> msgid ""
> "Over time, increases in the size of the I<stat> structure have led to three "
> "successive versions of B<stat>(): I<sys_stat>()  (slot I<__NR_oldstat>), "
> "I<sys_newstat>()  (slot I<__NR_stat>), and I<sys_stat64()> (new in kernel "
> "2.4; slot I<__NR_stat64>).  The glibc B<stat>() wrapper function hides "
> "these details from applications, invoking the most recent version of the "
> "system call provided by the kernel, and repacking the returned information "
> "if required for old binaries.  Similar remarks apply for B<fstat>()  and "
> "B<lstat>()."
> msgstr ""
> "Mit der Zeit führte der Größenzuwachs der I<stat>-Struktur zu drei "
> "Folgeversionen von B<stat>(): I<sys_stat>()  (slot I<__NR_oldstat>), "
> "I<sys_newstat>()  (slot I<__NR_stat>) und I<sys_stat64()> (neu in Kernel "
> "2.4; slot I<__NR_stat64>). Die Glibc-Wrapper-Funktion B<stat>() verbirgt "
> "diese Details vor Anwendungen, nutzt die neueste Version des vom Kernel "
> "bereitgestellten Systemaufrufs und passt die zurückgegebenen Informationen "
> "an, falls dies für alte Binaries erforderlich ist. Ähnliches gilt für "
> "B<fstat>() und B<lstat>()."
> 
> Leerzeichen nach I<sys_newstat>() zuviel
OK.
> Binaries würde ich hier mit Programme übersetzen
> 
Es geht nicht unbedingt um das Alter des Programms, vielmehr um das Alter des
Binaries bzw. des Compilers. Oder sehe ich das falsch?
> 
> hier ist es übersetzt:
> 
> #. type: Plain text
> #, no-wrap
> msgid "    printf(\"File type:                \");\n"
> msgstr "    printf(\"Dateityp:                 \");\n"
> 
> ... aber hier nicht:
> 
> #. type: Plain text
> #, no-wrap
> msgid ""
> "    switch (sb.st_mode & S_IFMT) {\n"
> "    case S_IFBLK:  printf(\"block device\\en\"); break;\n"
> "    case S_IFCHR:  printf(\"character device\\en\"); break;\n"
> "    case S_IFDIR:  printf(\"directory\\en\"); break;\n"
> "    case S_IFIFO:  printf(\"FIFO/pipe\\en\"); break;\n"
> "    case S_IFLNK:  printf(\"symlink\\en\"); break;\n"
> "    case S_IFREG:  printf(\"regular file\\en\"); break;\n"
> "    case S_IFSOCK: printf(\"socket\\en\"); break;\n"
> "    default:       printf(\"unknown?\\en\"); break;\n"
> "    }\n"
> msgstr ""
> "    switch (sb.st_mode & S_IFMT) {\n"
> "    case S_IFBLK:  printf(\"block device\\en\"); break;\n"
> "    case S_IFCHR:  printf(\"character device\\en\"); break;\n"
> "    case S_IFDIR:  printf(\"directory\\en\"); break;\n"
> "    case S_IFIFO:  printf(\"FIFO/pipe\\en\"); break;\n"
> "    case S_IFLNK:  printf(\"symlink\\en\"); break;\n"
> "    case S_IFREG:  printf(\"regular file\\en\"); break;\n"
> "    case S_IFSOCK: printf(\"socket\\en\"); break;\n"
> "    default:       printf(\"unknown?\\en\"); break;\n"
> "    }\n"
> 
> Ich würde letzteres ebenfalls übersetzen (nachfolgende auch)
> 
Ich bin mit Übersetzungen in Codebeispielen nicht so richtig glücklich. Bei
Kommentaren finde ich es noch OK, aber hier geht es um Strings, die in der
Benutzeroberfläche sichtbar sind. Welcher Programmierer schreibt hier direkt
deutsch, wenn es sich nicht gerade um ein kleines Skript handelt, das den
eigenen Rechner nie verlässt? Wie auch immer, ich habe es dennoch übersetzt:

    switch (sb.st_mode & S_IFMT) {\n
    case S_IFBLK:  printf(\"blockorientiertes Gerät\\en\");   break;\n
    case S_IFCHR:  printf(\"zeichenorientiertes Gerät\\en\"); break;\n
    case S_IFDIR:  printf(\"Verzeichnis\\en\");               break;\n
    case S_IFIFO:  printf(\"FIFO/Pipe\\en\");                 break;\n
    case S_IFLNK:  printf(\"symbolischer Link\\en\");         break;\n
    case S_IFREG:  printf(\"reguläre Datei\\en\");            break;\n
    case S_IFSOCK: printf(\"Socket\\en\");                    break;\n
    default:       printf(\"unbekannt?\\en\");                break;\n
    }\n

Besten Dank für deine Korrekturen. Ich habe die Datei ins Git eingebracht.

Gruß Mario


Reply to: