mirror of
git://git.sv.gnu.org/autoconf
synced 2025-04-12 15:20:26 +08:00
* config/texinfo.tex, doc/standards.texi: Sync from upstream.
This commit is contained in:
parent
4494d7f0ea
commit
c7492e72c0
@ -1,3 +1,7 @@
|
||||
2006-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
|
||||
* config/texinfo.tex, doc/standards.texi: Sync from upstream.
|
||||
|
||||
2006-06-01 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* doc/autoconf.texi (File System Conventions): Warn about ":"
|
||||
|
@ -3,7 +3,7 @@
|
||||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2006-05-07.15}
|
||||
\def\texinfoversion{2006-05-28.17}
|
||||
%
|
||||
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
|
||||
@ -1084,15 +1084,24 @@ where each line of input produces a line of output.}
|
||||
\def\minus{$-$}
|
||||
|
||||
% @dots{} outputs an ellipsis using the current font.
|
||||
% We do .5em per period so that it has the same spacing in a typewriter
|
||||
% font as three actual period characters.
|
||||
% We do .5em per period so that it has the same spacing in the cm
|
||||
% typewriter fonts as three actual period characters; on the other hand,
|
||||
% in other typewriter fonts three periods are wider than 1.5em. So do
|
||||
% whichever is larger.
|
||||
%
|
||||
\def\dots{%
|
||||
\leavevmode
|
||||
\hbox to 1.5em{%
|
||||
\hskip 0pt plus 0.25fil
|
||||
.\hfil.\hfil.%
|
||||
\hskip 0pt plus 0.5fil
|
||||
\setbox0=\hbox{...}% get width of three periods
|
||||
\ifdim\wd0 > 1.5em
|
||||
\dimen0 = \wd0
|
||||
\else
|
||||
\dimen0 = 1.5em
|
||||
\fi
|
||||
\hbox to \dimen0{%
|
||||
\hskip 0pt plus.25fil
|
||||
.\hskip 0pt plus1fil
|
||||
.\hskip 0pt plus1fil
|
||||
.\hskip 0pt plus.5fil
|
||||
}%
|
||||
}
|
||||
|
||||
@ -3391,12 +3400,39 @@ where each line of input produces a line of output.}
|
||||
\escapechar = `\\ % use backslash in output files.
|
||||
\def\@{@}% change to @@ when we switch to @ as escape char in index files.
|
||||
\def\ {\realbackslash\space }%
|
||||
%
|
||||
% Need these in case \tex is in effect and \{ is a \delimiter again.
|
||||
% But can't use \lbracecmd and \rbracecmd because texindex assumes
|
||||
% braces and backslashes are used only as delimiters.
|
||||
\let\{ = \mylbrace
|
||||
\let\} = \myrbrace
|
||||
%
|
||||
% I don't entirely understand this, but when an index entry is
|
||||
% generated from a macro call, the \endinput which \scanmacro inserts
|
||||
% causes processing to be prematurely terminated. This is,
|
||||
% apparently, because \indexsorttmp is fully expanded, and \endinput
|
||||
% is an expandable command. The redefinition below makes \endinput
|
||||
% disappear altogether for that purpose -- although logging shows that
|
||||
% processing continues to some further point. On the other hand, it
|
||||
% seems \endinput does not hurt in the printed index arg, since that
|
||||
% is still getting written without apparent harm.
|
||||
%
|
||||
% Sample source (mac-idx3.tex, reported by Graham Percival to
|
||||
% help-texinfo, 22may06):
|
||||
% @macro funindex {WORD}
|
||||
% @findex xyz
|
||||
% @end macro
|
||||
% ...
|
||||
% @funindex commtest
|
||||
%
|
||||
% The above is not enough to reproduce the bug, but it gives the flavor.
|
||||
%
|
||||
% Sample whatsit resulting:
|
||||
% .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
|
||||
%
|
||||
% So:
|
||||
\let\endinput = \empty
|
||||
%
|
||||
% Do the redefinitions.
|
||||
\commondummies
|
||||
}
|
||||
@ -5827,7 +5863,6 @@ where each line of input produces a line of output.}
|
||||
\spaceisspace
|
||||
%
|
||||
% Append \endinput to make sure that TeX does not see the ending newline.
|
||||
%
|
||||
% I've verified that it is necessary both for e-TeX and for ordinary TeX
|
||||
% --kasal, 29nov03
|
||||
\scantokens{#1\endinput}%
|
||||
|
@ -3,7 +3,7 @@
|
||||
@setfilename standards.info
|
||||
@settitle GNU Coding Standards
|
||||
@c This date is automagically updated when you save this file:
|
||||
@set lastupdate April 23, 2006
|
||||
@set lastupdate May 24, 2006
|
||||
@c %**end of header
|
||||
|
||||
@dircategory GNU organization
|
||||
@ -2952,7 +2952,7 @@ Using GNU gettext in a package involves specifying a @dfn{text domain
|
||||
name} for the package. The text domain name is used to separate the
|
||||
translations for this package from the translations for other packages.
|
||||
Normally, the text domain name should be the same as the name of the
|
||||
package---for example, @samp{fileutils} for the GNU file utilities.
|
||||
package---for example, @samp{coreutils} for the GNU core utilities.
|
||||
|
||||
@cindex message text, and internationalization
|
||||
To enable gettext to work well, avoid writing code that makes
|
||||
@ -2965,44 +2965,30 @@ sentence framework.
|
||||
Here is an example of what not to do:
|
||||
|
||||
@example
|
||||
printf ("%d file%s processed", nfiles,
|
||||
nfiles != 1 ? "s" : "");
|
||||
printf ("%s is full", capacity > 5000000 ? "disk" : "floppy disk");
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The problem with that example is that it assumes that plurals are made
|
||||
by adding `s'. If you apply gettext to the format string, like this,
|
||||
If you apply gettext to all strings, like this,
|
||||
|
||||
@example
|
||||
printf (gettext ("%d file%s processed"), nfiles,
|
||||
nfiles != 1 ? "s" : "");
|
||||
printf (gettext ("%s is full"),
|
||||
capacity > 5000000 ? gettext ("disk") : gettext ("floppy disk"));
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
the message can use different words, but it will still be forced to use
|
||||
`s' for the plural. Here is a better way:
|
||||
the translator will hardly know that "disk" and "floppy disk" are meant to
|
||||
be substituted in the other string. Worse, in some languages (like French)
|
||||
the construction will not work: the translation of the word "full" depends
|
||||
on the gender of the first part of the sentence; it happens to be not the
|
||||
same for "disk" as for "floppy disk".
|
||||
|
||||
Complete sentences can be translated without problems:
|
||||
|
||||
@example
|
||||
printf ((nfiles != 1 ? "%d files processed"
|
||||
: "%d file processed"),
|
||||
nfiles);
|
||||
printf (capacity > 5000000 ? gettext ("disk is full")
|
||||
: gettext ("floppy disk is full"));
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
This way, you can apply gettext to each of the two strings
|
||||
independently:
|
||||
|
||||
@example
|
||||
printf ((nfiles != 1 ? gettext ("%d files processed")
|
||||
: gettext ("%d file processed")),
|
||||
nfiles);
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
This can be any method of forming the plural of the word for ``file'', and
|
||||
also handles languages that require agreement in the word for
|
||||
``processed''.
|
||||
|
||||
A similar problem appears at the level of sentence structure with this
|
||||
code:
|
||||
|
||||
@ -3024,6 +3010,43 @@ printf (f->tried_implicit
|
||||
: "# Implicit rule search has not been done.\n");
|
||||
@end example
|
||||
|
||||
Another example is this one:
|
||||
|
||||
@example
|
||||
printf ("%d file%s processed", nfiles,
|
||||
nfiles != 1 ? "s" : "");
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The problem with this example is that it assumes that plurals are made
|
||||
by adding `s'. If you apply gettext to the format string, like this,
|
||||
|
||||
@example
|
||||
printf (gettext ("%d file%s processed"), nfiles,
|
||||
nfiles != 1 ? "s" : "");
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
the message can use different words, but it will still be forced to use
|
||||
`s' for the plural. Here is a better way, with gettext being applied to
|
||||
the two strings independently:
|
||||
|
||||
@example
|
||||
printf ((nfiles != 1 ? gettext ("%d files processed")
|
||||
: gettext ("%d file processed")),
|
||||
nfiles);
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
But this still doesn't work for languages like Polish, which has three
|
||||
plural forms: one for nfiles == 1, one for nfiles == 2, 3, 4, 22, 23, 24, ...
|
||||
and one for the rest. The GNU @code{ngettext} function solves this problem:
|
||||
|
||||
@example
|
||||
printf (ngettext ("%d files processed", "%d file processed", nfiles),
|
||||
nfiles);
|
||||
@end example
|
||||
|
||||
|
||||
@node Character Set
|
||||
@section Character Set
|
||||
|
Loading…
x
Reference in New Issue
Block a user