1@pindex msgunfmt
2@cindex @code{msgunfmt} program, usage
3@example
4msgunfmt [@var{option}] [@var{file}]...
5@end example
6
7@cindex convert binary message catalog into PO file
8The @code{msgunfmt} program converts a binary message catalog to a
9Uniforum style .po file.
10
11@subsection Operation mode
12
13@table @samp
14@item -j
15@itemx --java
16@opindex -j@r{, @code{msgunfmt} option}
17@opindex --java@r{, @code{msgunfmt} option}
18@cindex Java mode, and @code{msgunfmt} program
19Java mode: input is a Java @code{ResourceBundle} class.
20
21@item --csharp
22@opindex --csharp@r{, @code{msgunfmt} option}
23@cindex C# mode, and @code{msgunfmt} program
24C# mode: input is a .NET .dll file containing a subclass of
25@code{GettextResourceSet}.
26
27@item --csharp-resources
28@opindex --csharp-resources@r{, @code{msgunfmt} option}
29@cindex C# resources mode, and @code{msgunfmt} program
30C# resources mode: input is a .NET @file{.resources} file.
31
32@item --tcl
33@opindex --tcl@r{, @code{msgunfmt} option}
34@cindex Tcl mode, and @code{msgunfmt} program
35Tcl mode: input is a tcl/msgcat @file{.msg} file.
36
37@end table
38
39@subsection Input file location
40
41@table @samp
42@item @var{file} @dots{}
43Input .mo files.
44
45@end table
46
47If no input @var{file} is given or if it is @samp{-}, standard input is read.
48
49@subsection Input file location in Java mode
50
51@table @samp
52@item -r @var{resource}
53@itemx --resource=@var{resource}
54@opindex -r@r{, @code{msgunfmt} option}
55@opindex --resource@r{, @code{msgunfmt} option}
56Specify the resource name.
57
58@item -l @var{locale}
59@itemx --locale=@var{locale}
60@opindex -l@r{, @code{msgunfmt} option}
61@opindex --locale@r{, @code{msgunfmt} option}
62Specify the locale name, either a language specification of the form @var{ll}
63or a combined language and country specification of the form @var{ll_CC}.
64
65@end table
66
67The class name is determined by appending the locale name to the resource name,
68separated with an underscore.  The class is located using the @code{CLASSPATH}.
69
70@subsection Input file location in C# mode
71
72@table @samp
73@item -r @var{resource}
74@itemx --resource=@var{resource}
75@opindex -r@r{, @code{msgunfmt} option}
76@opindex --resource@r{, @code{msgunfmt} option}
77Specify the resource name.
78
79@item -l @var{locale}
80@itemx --locale=@var{locale}
81@opindex -l@r{, @code{msgunfmt} option}
82@opindex --locale@r{, @code{msgunfmt} option}
83Specify the locale name, either a language specification of the form @var{ll}
84or a combined language and country specification of the form @var{ll_CC}.
85
86@item -d @var{directory}
87@opindex -d@r{, @code{msgunfmt} option}
88Specify the base directory for locale dependent @file{.dll} files.
89
90@end table
91
92The @samp{-l} and @samp{-d} options are mandatory.  The @file{.msg} file is
93located in a subdirectory of the specified directory whose name depends on the
94locale.
95
96@subsection Input file location in Tcl mode
97
98@table @samp
99@item -l @var{locale}
100@itemx --locale=@var{locale}
101@opindex -l@r{, @code{msgunfmt} option}
102@opindex --locale@r{, @code{msgunfmt} option}
103Specify the locale name, either a language specification of the form @var{ll}
104or a combined language and country specification of the form @var{ll_CC}.
105
106@item -d @var{directory}
107@opindex -d@r{, @code{msgunfmt} option}
108Specify the base directory of @file{.msg} message catalogs.
109
110@end table
111
112The @samp{-l} and @samp{-d} options are mandatory.  The @file{.msg} file is
113located in the specified directory.
114
115@subsection Output file location
116
117@table @samp
118@item -o @var{file}
119@itemx --output-file=@var{file}
120@opindex -o@r{, @code{msgunfmt} option}
121@opindex --output-file@r{, @code{msgunfmt} option}
122Write output to specified file.
123
124@end table
125
126The results are written to standard output if no output file is specified
127or if it is @samp{-}.
128
129@subsection Output details
130
131@c --no-escape and --escape omitted on purpose.  They are not useful.
132
133@table @samp
134@item --force-po
135@opindex --force-po@r{, @code{msgunfmt} option}
136Always write an output file even if it contains no message.
137
138@item -i
139@itemx --indent
140@opindex -i@r{, @code{msgunfmt} option}
141@opindex --indent@r{, @code{msgunfmt} option}
142Write the .po file using indented style.
143
144@item --strict
145@opindex --strict@r{, @code{msgunfmt} option}
146Write out a strict Uniforum conforming PO file.  Note that this
147Uniforum format should be avoided because it doesn't support the
148GNU extensions.
149
150@item -p
151@itemx --properties-output
152@opindex -p@r{, @code{msgunfmt} option}
153@opindex --properties-output@r{, @code{msgunfmt} option}
154Write out a Java ResourceBundle in Java @code{.properties} syntax.  Note
155that this file format doesn't support plural forms and silently drops
156obsolete messages.
157
158@item --stringtable-output
159@opindex --stringtable-output@r{, @code{msgunfmt} option}
160Write out a NeXTstep/GNUstep localized resource file in @code{.strings} syntax.
161Note that this file format doesn't support plural forms.
162
163@item -w @var{number}
164@itemx --width=@var{number}
165@opindex -w@r{, @code{msgunfmt} option}
166@opindex --width@r{, @code{msgunfmt} option}
167Set the output page width.  Long strings in the output files will be
168split across multiple lines in order to ensure that each line's width
169(= number of screen columns) is less or equal to the given @var{number}.
170
171@item --no-wrap
172@opindex --no-wrap@r{, @code{msgunfmt} option}
173Do not break long message lines.  Message lines whose width exceeds the
174output page width will not be split into several lines.  Only file reference
175lines which are wider than the output page width will be split.
176
177@item -s
178@itemx --sort-output
179@opindex -s@r{, @code{msgunfmt} option}
180@opindex --sort-output@r{, @code{msgunfmt} option}
181@cindex sorting @code{msgunfmt} output
182Generate sorted output.  Note that using this option makes it much harder
183for the translator to understand each message's context.
184
185@end table
186
187@subsection Informative output
188
189@table @samp
190@item -h
191@itemx --help
192@opindex -h@r{, @code{msgunfmt} option}
193@opindex --help@r{, @code{msgunfmt} option}
194Display this help and exit.
195
196@item -V
197@itemx --version
198@opindex -V@r{, @code{msgunfmt} option}
199@opindex --version@r{, @code{msgunfmt} option}
200Output version information and exit.
201
202@item -v
203@itemx --verbose
204@opindex -v@r{, @code{msgunfmt} option}
205@opindex --verbose@r{, @code{msgunfmt} option}
206Increase verbosity level.
207
208@end table
209