DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gettext.info.gz) c-format

Info Catalog (gettext.info.gz) Translators for other Languages (gettext.info.gz) Translators for other Languages (gettext.info.gz) objc-format
 
 15.3.1 C Format Strings
 -----------------------
 
 C format strings are described in POSIX (IEEE P1003.1 2001), section
 XSH 3 fprintf(),
 `http://www.opengroup.org/onlinepubs/007904975/functions/fprintf.html'.
 See also the fprintf() manual page,
 `http://www.linuxvalley.it/encyclopedia/ldp/manpage/man3/printf.3.php',
 `http://informatik.fh-wuerzburg.de/student/i510/man/printf.html'.
 
    Although format strings with positions that reorder arguments, such
 as
 
      "Only %2$d bytes free on '%1$s'."
 
 which is semantically equivalent to
 
      "'%s' has only %d bytes free."
 
 are a POSIX/XSI feature and not specified by ISO C 99, translators can
 rely on this reordering ability: On the few platforms where `printf()',
 `fprintf()' etc. don't support this feature natively, `libintl.a' or
 `libintl.so' provides replacement functions, and GNU `<libintl.h>'
 activates these replacement functions automatically.
 
    As a special feature for Farsi (Persian) and maybe Arabic,
 translators can insert an `I' flag into numeric format directives.  For
 example, the translation of `"%d"' can be `"%Id"'.  The effect of this
 flag, on systems with GNU `libc', is that in the output, the ASCII
 digits are replaced with the `outdigits' defined in the `LC_CTYPE'
 locale facet.  On other systems, the `gettext' function removes this
 flag, so that it has no effect.
 
    Note that the programmer should _not_ put this flag into the
 untranslated string.  (Putting the `I' format directive flag into an
 MSGID string would lead to undefined behaviour on platforms without
 glibc when NLS is disabled.)
 
Info Catalog (gettext.info.gz) Translators for other Languages (gettext.info.gz) Translators for other Languages (gettext.info.gz) objc-format
automatically generated byinfo2html