(gettext.info)c-format


Next: objc-format Prev: Translators for other Languages Up: Translators for other Languages
Enter node , (file) or (file)node

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 category.  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.)


automatically generated by info2www version 1.2.2.9