4 ========================================================================
6 The ultimate catalog processor and source generator
8 by Jochen Wiedmann and Marcin Orlowski
10 e-mail: carlos@amiga.com.pl WWW: http://amiga.com.pl/flexcat/
12 ========================================================================
14 NOTE: Since release 2.4, FlexCat comes with some examples (FlexCat_Demos)
15 of how-to-make-localized-stuff. Unfortunately I am unable to
16 provide examples for any programming language that FlexCat now
17 supports, so if you think you could write some well-commented
18 (english please) HelloWorld examples you would be gladly welcomed.
19 Tutorials and other add-ons are also highly needed!
21 ========================================================================
24 * v2.4 (28.11.99) - FlexCat is now portable! Thanks to Hardcode.sd{tm}
25 unique technology you can now try to compile FlexCat
26 under any OS (both Big and Little Endians are
27 supported). Read developer.readme for details.
29 - sometimes garbage could be written instead of
30 $VER: string (when $TODAY feature was used) due
31 to memory block being free'd before write.
33 - added ##rem command to .sd file handling. As you
34 have probably guessed, it's just remark. The goal
35 (at least for me) is that ##rem lines won't appear
36 in result source code, creaded out of the .sd file.
38 - added manual catalog open/close for compilers that
39 do not handle autoinit/exit functions
41 - Updated french translation (Herve Dupont
42 <herve.dupont@nordnet.fr>)
44 - Added NOSPACE switch, to avoid extra space char
45 usually used by FlexCat to separate comment
46 mark ';' from the main comment text
48 - Source descriptor for HSPascal by Artur Karpunin
49 <woody8@kki.net.pl> is now available.
51 - New archive "FlexCat_Demos" full ;-) of example
52 source codes for various programming languages
53 C, HSPascal and ARexx examples are recently
56 - Content of "Contribution" drawer is now moved to
57 "FlexCat_Demos" archive.
59 - Added detailed tutoral (in polish for now) about
60 the whole localization process (incl. examples)
63 * v2.3 (19.05.99) - "Trailing ellipsis" detector was broken (Marco
64 De Vitis <marco.dvv@flashnet.it>)
66 - Seems I updated the english manual for v2.2, but
67 forgot to create .guide file out of texinfo.
69 - Fixed manual to say "1999" instead of "1998", and
70 fixed #?.cd file to show proper arguments when
71 help ("?") is requested (Herve Dupont
72 <herve.dupont@nordnet.fr>)
74 - Spanish translation by Sergio Martín Rodríguez
75 <smartin@kaos.es> and Tomás J. Cantó
79 * v2.2 (14.04.99) - FlexCat can now copy "***NEW***" markers (or other
80 specified) from old #?.ct file to new one, while
81 upgrading #?.ct file (FlexCat CD CT newctfile CT).
82 It should now be fearless to upgrade your all not
83 yet finished translations. Due to this feature two
84 new options appeared (available in prefs as well):
85 COPYMSGNEW/S (specify if you want to activate this
86 feature - to avoid possible problems its turned off
87 by default), OLDMSGNEW/K - the string that marks
88 new strings in old #?.ct file (by default "***NEW***"
89 so you don't need to specify it unless you change
90 MSG_NEW too). NOTE: FlexCat automatically appends
91 "; " to the string! (Christian Hattemer
92 <Chris@heaven.riednet.wh.tu-darmstadt.de>)
94 Long awaited check for trailing ellipsis is now
97 FlexCat now expands the above feature, and checks
98 for trailing spaces, as it appears to be the most
99 overlooked trailing character ever
101 Added missing #endif is source code, disallowing
102 easy StormC or non-amiga compilations (Christian
105 Every line of original string that FlexCat puts
106 into created #?.ct file is now prefixed by "; ".
107 Previously, only first line had space between
108 semicolon and the main text (Christian Hattemer)
110 Source descriptors and other FlexCat related
111 goodies for StormC by Christian Hattemer
112 are now available from any Aminet mirror
113 (dev/c/Storm_FlexCat.lha) or from his homepage:
114 http://www.riednet.wh.tu-darmstadt.de/~chris/
116 New translations: slowensko - Damir Arh
117 <damir.arh@guest.arnes.si>
119 Updated catalogs: svenska - Magnus Holmgren
120 <lear@algonet.se>, srpski - Ljubomir Jankovic
121 <lurch@beotel.yu>, nederlands - Leon Woestenberg
122 <leon@stack.nl>, deutsch - Christian Hattemer
123 <Chris@heaven.riednet.wh.tu-darmstadt.de>
125 English manual updated to match latest changes.
128 * v2.1 (11.10.98) - New source descriptor for E programmers (E32e.sd)
129 by Sven Steiniger <ss37@irz301.inf.tu-dresden.de>
131 Fixed problem C:Version had with FlexCat (due
132 to many internal $VERsion strings, THAT one, wasn't
133 first the one in the executable file).
135 SDDIR path defined in FlexCat.prefs was always
136 ignored. Fixed (Magnus Holmgren).
138 Improved FLUSH function. Now it flushes catalogs
139 only (Magnus Holmgren).
141 FlexCat adds now one space character, while writting
142 "old" strings in #?.ct file, as CatComp did.
144 Source code released - See source readme file for
148 * v2.0 (25.02.98) - Unfortunately, 2.0 does not mean the break thru
149 technologies implemented here. It is just the next
150 version numer FlexCat should have...
152 Added a workaround for problems some people may
153 encounter while creating catalogs for languages
154 with corrupted converstion table (part of #?.language
155 file). FlexCat uses utility.library function to convert
156 ##language name to lowercase, which leads to
157 wrong strings with e.g. czech environment.
158 Use NOLANGTOLOWER (CLI and prefs) to tell FlexCat
159 to not to lowercase the name (but remember to keep
160 it lowercased manually!).
162 FlexCat now uses buffered IO operations.
163 That may increase the overall speed of FlexCat,
164 however it's not the must, so you can use
165 NOBUFFEREDIO switch to fall back to previous
166 poll mode. Please test the overall performance,
167 and tell me the results. The IO buffer is now
170 While creating new #?.ct file FlexCat puts contents
171 of Language system variable if possible as the
174 Fixed bug causing random memory writes under
175 some, but very rare, circumstances.
177 ARexx.sd source descriptor added thanks to
178 Kai Norhausen <kn@tribal.line.org>
180 Users' stuff added. Look at the contents of
181 the "Contribution" drawer!
183 Renumbered the version of catalog files. Most
184 recent catalog version is 2.0. Older and outdated
187 French catalog updated. Thanks to Julien `GiZmO' Wilk
190 Finnish translation updated by Mika Lundell
193 Nederlans translation by Leon Woestenberg
196 Norsk translation thanks to Eivind Olsen
199 Italian catalog updated by Luca Nora
200 <ln546991@silab.dsi.unimi.it> and Giovanni
201 Addabbo <gaddabbo@imar.it>
203 Portugese translation updated by Frederico
204 Borges <famb@mail.telepac.pt> and
205 Alexandre Gabriel <chryse@mail.telepac.pt>
207 The new spanish translation by Marcos Broc
208 <amiga187@arrakis.es> and Samuel Aguilera
209 <slyguy@mx2.redestb.es>
211 Croatian translation by Mladen Ili¹inoviæ
212 <milisino@jagor.srce.hr>
215 * V1.9 (01.08.97) - Now you can use special $TODAY attribute
216 in your $VER string. While creating catalog,
217 $TODAY will be replaced by current date (note,
218 only 1st occurance will be processed). If you
219 want your version strings to always be recent
220 dated type: $VER: FlexCat.catalog 3.0 ($TODAY)
221 NOTE: This string is CASESENSITIVE!
223 FlexCat preferences added. To define your own
224 defaults, set the environmental variable
225 "flexcat.prefs" with the contents matching
226 following template: "SDDIR/K,MSG_NEW/K,
227 WARNCTGAPS/S,NOOPTIM/S,FILL/S,FLUSH/S,NOBEEP/S,
228 QUIET/S". Note FlexCat is using ReadArgs()
229 to parse the preferences, thus place all the
232 If you use FlexCat for #?.ct updating, you
233 probably were missing any additional markers
234 to let you easily find the new strings. Now
235 you get them. By default the "***NEW***",
236 is used, but you may configure it using
239 QUIET switch used to suppress error messages.
242 New C source descriptor Cat2h_?.sd. Read
243 the manual or Lib/Cat2h.readme for more
246 Version of updated catalogs bumped to 2.5
248 Portugese translation of program catalog, thanks
249 to Frederico Borges <famb@mail.telepac.pt> and
250 Alexandre Gabriel <chryse@mail.telepac.pt>
252 Swedish translation of FlexCat manual,
253 thanks to Magnus Holmgren <lear@algonet.se>
255 Spanish translation reworked by
256 Marcos Broc <amiga187@arrakis.es> and
257 Samuel Aguilera <slyguy92@arrakis.es>
259 Now FlexCat does DisplayBeep() when any error
260 or warning happen (but don't worry, it's smart
261 enough, so you won't experience any Beep() bombing ;).
262 By using NOBEEP switch you can shut it up.
264 Previous releases had problems with comment lines
265 ending with \'s, which made FlexCat think it's multiline
266 string. Now it is not as dumb to get fooled any longer.
268 You can now use octal, decimal and hexadecimal
269 (e.g 0x20) digits for all FlexCat digital arguments
270 (like ##version) as well as for (ID/MIN/MAX),
271 ##codeset and others.
273 FLUSH switch added. By using it all unused
274 catalogs (but also libraries, fonts, devices etc) will
275 be flushed from memory, whenever new catalog is
276 written. So note: FLUSH works only with CATALOG switch
277 (it means while compiling new catalog).
279 New C source descriptors: catcomp_h.sd creates
280 source (almost) identical to CatComp's ones, but
281 expanded for multicatalog support. With this
282 descriptor you can handle more than one catalog
283 in your program harmless. NOTE: for compatibility
284 reasons, other descriptors remain unchanged (however
285 additional, multicatalog versions may appear
288 FlexCat does not accept empty ##language argument
291 FILL switch. This feature is highly useful for the
292 translators, and probably for them only. Normally,
293 when you're working on the new translation, some
294 of the strings remains untranslated due the work
295 is just in progress. Unfortunately all catalog
296 tools write all these empty strings into the catalog
297 file, which will cause empty buttons, menus or simmilar
298 things to appear whenever you check your unfinished
299 translation with the program, which isn't nice effect.
300 Using FILL you may force FlexCat to ignore all empty
301 translations (strings from #?.ct file) and instead
302 to write original string (from #?.cd) to the catalog.
303 That prevents you from watching empty GUI etc.
304 NOTE: this option is only for testing purposes.
305 Final catalogs should always be created without FILL
308 English manual is now up-to-date.
310 Added %a, %t and %z operands for source
311 descriptors. See (probably english and
312 swedish only, for now) manual for detailed
315 * V1.8 (17.02.97) - Fixed bug causing bad octal digits
316 handling. Now FlexCat differs \0333
317 from \333 and treats it as [ESC][3].
318 It will also correctly handle octal
319 numbers shorter than 3 digis, e.g. \33
320 will be taken as \033.
321 Be careful as \333 will not be taken
322 as [ESC][3] as it's valid single octal
327 Now FlexCat is able to handle and parse
328 texts like "This is a test\\" without
329 any problems, which previously drive
330 such strings to be badly taken as multiline
331 text (due to trailing '\'). Now FlexCat
332 is smart enough (CatComp is still not ;-)
335 Added support for string IDs incrementors
336 defined as (+VALUE//).
338 Now allows you to create CT file even
339 CD contains neither ##version nor ##rcsid
340 In that case creates default header as
341 CatComp does. (the "Missing catalog
342 translation version... " message should
343 now be read as warning not as error message).
347 Additional catalogs by members of
348 Amiga Translators' Organization
349 <http://ato.vapor.com/>:
351 - Serbian catalog file by Ljubomir Jankovic
352 <lurch@afrodita.rcub.bg.ac.yu>
354 - Czech translation by Vit Sindlar
355 <xsindl00@stud.fee.vutbr.cz>
357 - Svedish translation by Magnus Holmgren
358 <lear@algonet.se> and Hjalmar Wikholm
361 - Finnish translation updated by Mika Lundell
364 - Italian translation reworked by Luca Nora
365 <ln546991@silab.dsi.unimi.it> and
366 Giovanni Addabbo <gaddabbo@imar.net>
369 * V1.7 Added "#rcsid" and "#name".
371 Fixed 2 Enforcer hits, which appeared,
372 if the ct file had gaps.
374 * V1.6 Removed GetString() calls due to the new
375 C source descriptions.
377 * V1.5 Added WARNCTGAPS option.
378 Added #chunk to catalog translations.
380 * V1.4 Added the Environment variable FLEXCAT_SDDIR.
381 Uses AutoC_c.sd and AutoC_h.sd now and is thus
382 compilable by Dice and SAS/C only.
384 Fixed a problem in stringtype Oberon:
385 Binary characters should be like \000 and
388 Fixed a problem in stringtype E:
389 \e was written as \033.
391 Added %f* (source description filename) and %o*
392 (source filename) to source descriptions.
394 * V1.3 Fixed a bug that caused FlexCat to hang if a
395 catalog translation was updated and a string
396 was missing in the catalog description.
398 Fixed a bug that caused FlexCat to create
399 invalid catalogs probably. (Seems like the
400 locale.library expects a completely different
401 behaviour in padding version and language
402 strings and the real catalog strings.)
404 Added %e to source descriptions.
406 * V1.2 Fixed a bug in the E source generator: " was
407 converted into \" and ' was not converted.
409 * V1.1 Fixed two bugs: FlexCat didn't notice, if an
410 ID was defined twice (C-Compiler did later.) and
411 using language strings like français did not work
412 because of the the accented char. Introduced E
413 support. (Thanks Lionel Vintenat)
415 * V1.01 Fixed a bug: The length of the source string
416 was used to check for the stringlen instead of
420 * v1.0 (31.06.93) - initial release
422 ------------------------