F L E X C A T ======================================================================== The ultimate catalog processor and source generator by Jochen Wiedmann and Marcin Orlowski e-mail: carlos@amiga.com.pl WWW: http://amiga.com.pl/flexcat/ ======================================================================== NOTE: Since release 2.4, FlexCat comes with some examples (FlexCat_Demos) of how-to-make-localized-stuff. Unfortunately I am unable to provide examples for any programming language that FlexCat now supports, so if you think you could write some well-commented (english please) HelloWorld examples you would be gladly welcomed. Tutorials and other add-ons are also highly needed! ======================================================================== * v2.4 (28.11.99) - FlexCat is now portable! Thanks to Hardcode.sd{tm} unique technology you can now try to compile FlexCat under any OS (both Big and Little Endians are supported). Read developer.readme for details. - sometimes garbage could be written instead of $VER: string (when $TODAY feature was used) due to memory block being free'd before write. - added ##rem command to .sd file handling. As you have probably guessed, it's just remark. The goal (at least for me) is that ##rem lines won't appear in result source code, creaded out of the .sd file. - added manual catalog open/close for compilers that do not handle autoinit/exit functions - Updated french translation (Herve Dupont ) - Added NOSPACE switch, to avoid extra space char usually used by FlexCat to separate comment mark ';' from the main comment text - Source descriptor for HSPascal by Artur Karpunin is now available. - New archive "FlexCat_Demos" full ;-) of example source codes for various programming languages C, HSPascal and ARexx examples are recently available. - Content of "Contribution" drawer is now moved to "FlexCat_Demos" archive. - Added detailed tutoral (in polish for now) about the whole localization process (incl. examples) * v2.3 (19.05.99) - "Trailing ellipsis" detector was broken (Marco De Vitis ) - Seems I updated the english manual for v2.2, but forgot to create .guide file out of texinfo. - Fixed manual to say "1999" instead of "1998", and fixed #?.cd file to show proper arguments when help ("?") is requested (Herve Dupont ) - Spanish translation by Sergio Martín Rodríguez and Tomás J. Cantó * v2.2 (14.04.99) - FlexCat can now copy "***NEW***" markers (or other specified) from old #?.ct file to new one, while upgrading #?.ct file (FlexCat CD CT newctfile CT). It should now be fearless to upgrade your all not yet finished translations. Due to this feature two new options appeared (available in prefs as well): COPYMSGNEW/S (specify if you want to activate this feature - to avoid possible problems its turned off by default), OLDMSGNEW/K - the string that marks new strings in old #?.ct file (by default "***NEW***" so you don't need to specify it unless you change MSG_NEW too). NOTE: FlexCat automatically appends "; " to the string! (Christian Hattemer ) Long awaited check for trailing ellipsis is now implemented FlexCat now expands the above feature, and checks for trailing spaces, as it appears to be the most overlooked trailing character ever Added missing #endif is source code, disallowing easy StormC or non-amiga compilations (Christian Hattemer) Every line of original string that FlexCat puts into created #?.ct file is now prefixed by "; ". Previously, only first line had space between semicolon and the main text (Christian Hattemer) Source descriptors and other FlexCat related goodies for StormC by Christian Hattemer are now available from any Aminet mirror (dev/c/Storm_FlexCat.lha) or from his homepage: http://www.riednet.wh.tu-darmstadt.de/~chris/ New translations: slowensko - Damir Arh Updated catalogs: svenska - Magnus Holmgren , srpski - Ljubomir Jankovic , nederlands - Leon Woestenberg , deutsch - Christian Hattemer English manual updated to match latest changes. * v2.1 (11.10.98) - New source descriptor for E programmers (E32e.sd) by Sven Steiniger Fixed problem C:Version had with FlexCat (due to many internal $VERsion strings, THAT one, wasn't first the one in the executable file). SDDIR path defined in FlexCat.prefs was always ignored. Fixed (Magnus Holmgren). Improved FLUSH function. Now it flushes catalogs only (Magnus Holmgren). FlexCat adds now one space character, while writting "old" strings in #?.ct file, as CatComp did. Source code released - See source readme file for more details * v2.0 (25.02.98) - Unfortunately, 2.0 does not mean the break thru technologies implemented here. It is just the next version numer FlexCat should have... Added a workaround for problems some people may encounter while creating catalogs for languages with corrupted converstion table (part of #?.language file). FlexCat uses utility.library function to convert ##language name to lowercase, which leads to wrong strings with e.g. czech environment. Use NOLANGTOLOWER (CLI and prefs) to tell FlexCat to not to lowercase the name (but remember to keep it lowercased manually!). FlexCat now uses buffered IO operations. That may increase the overall speed of FlexCat, however it's not the must, so you can use NOBUFFEREDIO switch to fall back to previous poll mode. Please test the overall performance, and tell me the results. The IO buffer is now 2048 bytes large. While creating new #?.ct file FlexCat puts contents of Language system variable if possible as the #langauge argument. Fixed bug causing random memory writes under some, but very rare, circumstances. ARexx.sd source descriptor added thanks to Kai Norhausen Users' stuff added. Look at the contents of the "Contribution" drawer! Renumbered the version of catalog files. Most recent catalog version is 2.0. Older and outdated are 1.x. French catalog updated. Thanks to Julien `GiZmO' Wilk Finnish translation updated by Mika Lundell Nederlans translation by Leon Woestenberg Norsk translation thanks to Eivind Olsen Italian catalog updated by Luca Nora and Giovanni Addabbo Portugese translation updated by Frederico Borges and Alexandre Gabriel The new spanish translation by Marcos Broc and Samuel Aguilera Croatian translation by Mladen Ili¹inoviæ * V1.9 (01.08.97) - Now you can use special $TODAY attribute in your $VER string. While creating catalog, $TODAY will be replaced by current date (note, only 1st occurance will be processed). If you want your version strings to always be recent dated type: $VER: FlexCat.catalog 3.0 ($TODAY) NOTE: This string is CASESENSITIVE! FlexCat preferences added. To define your own defaults, set the environmental variable "flexcat.prefs" with the contents matching following template: "SDDIR/K,MSG_NEW/K, WARNCTGAPS/S,NOOPTIM/S,FILL/S,FLUSH/S,NOBEEP/S, QUIET/S". Note FlexCat is using ReadArgs() to parse the preferences, thus place all the items in one line. If you use FlexCat for #?.ct updating, you probably were missing any additional markers to let you easily find the new strings. Now you get them. By default the "***NEW***", is used, but you may configure it using FlexCat preferences. QUIET switch used to suppress error messages. Fixed. New C source descriptor Cat2h_?.sd. Read the manual or Lib/Cat2h.readme for more information. Version of updated catalogs bumped to 2.5 Portugese translation of program catalog, thanks to Frederico Borges and Alexandre Gabriel Swedish translation of FlexCat manual, thanks to Magnus Holmgren Spanish translation reworked by Marcos Broc and Samuel Aguilera Now FlexCat does DisplayBeep() when any error or warning happen (but don't worry, it's smart enough, so you won't experience any Beep() bombing ;). By using NOBEEP switch you can shut it up. Previous releases had problems with comment lines ending with \'s, which made FlexCat think it's multiline string. Now it is not as dumb to get fooled any longer. You can now use octal, decimal and hexadecimal (e.g 0x20) digits for all FlexCat digital arguments (like ##version) as well as for (ID/MIN/MAX), ##codeset and others. FLUSH switch added. By using it all unused catalogs (but also libraries, fonts, devices etc) will be flushed from memory, whenever new catalog is written. So note: FLUSH works only with CATALOG switch (it means while compiling new catalog). New C source descriptors: catcomp_h.sd creates source (almost) identical to CatComp's ones, but expanded for multicatalog support. With this descriptor you can handle more than one catalog in your program harmless. NOTE: for compatibility reasons, other descriptors remain unchanged (however additional, multicatalog versions may appear in next release). FlexCat does not accept empty ##language argument any longer. FILL switch. This feature is highly useful for the translators, and probably for them only. Normally, when you're working on the new translation, some of the strings remains untranslated due the work is just in progress. Unfortunately all catalog tools write all these empty strings into the catalog file, which will cause empty buttons, menus or simmilar things to appear whenever you check your unfinished translation with the program, which isn't nice effect. Using FILL you may force FlexCat to ignore all empty translations (strings from #?.ct file) and instead to write original string (from #?.cd) to the catalog. That prevents you from watching empty GUI etc. NOTE: this option is only for testing purposes. Final catalogs should always be created without FILL switch used! English manual is now up-to-date. Added %a, %t and %z operands for source descriptors. See (probably english and swedish only, for now) manual for detailed information * V1.8 (17.02.97) - Fixed bug causing bad octal digits handling. Now FlexCat differs \0333 from \333 and treats it as [ESC][3]. It will also correctly handle octal numbers shorter than 3 digis, e.g. \33 will be taken as \033. Be careful as \333 will not be taken as [ESC][3] as it's valid single octal number! NOOPTIM switch added Now FlexCat is able to handle and parse texts like "This is a test\\" without any problems, which previously drive such strings to be badly taken as multiline text (due to trailing '\'). Now FlexCat is smart enough (CatComp is still not ;-) to fight with it. Added support for string IDs incrementors defined as (+VALUE//). Now allows you to create CT file even CD contains neither ##version nor ##rcsid In that case creates default header as CatComp does. (the "Missing catalog translation version... " message should now be read as warning not as error message). QUIET switch added Additional catalogs by members of Amiga Translators' Organization : - Serbian catalog file by Ljubomir Jankovic - Czech translation by Vit Sindlar - Svedish translation by Magnus Holmgren and Hjalmar Wikholm - Finnish translation updated by Mika Lundell - Italian translation reworked by Luca Nora and Giovanni Addabbo * V1.7 Added "#rcsid" and "#name". Fixed 2 Enforcer hits, which appeared, if the ct file had gaps. * V1.6 Removed GetString() calls due to the new C source descriptions. * V1.5 Added WARNCTGAPS option. Added #chunk to catalog translations. * V1.4 Added the Environment variable FLEXCAT_SDDIR. Uses AutoC_c.sd and AutoC_h.sd now and is thus compilable by Dice and SAS/C only. Fixed a problem in stringtype Oberon: Binary characters should be like \000 and not \0. Fixed a problem in stringtype E: \e was written as \033. Added %f* (source description filename) and %o* (source filename) to source descriptions. * V1.3 Fixed a bug that caused FlexCat to hang if a catalog translation was updated and a string was missing in the catalog description. Fixed a bug that caused FlexCat to create invalid catalogs probably. (Seems like the locale.library expects a completely different behaviour in padding version and language strings and the real catalog strings.) Added %e to source descriptions. * V1.2 Fixed a bug in the E source generator: " was converted into \" and ' was not converted. * V1.1 Fixed two bugs: FlexCat didn't notice, if an ID was defined twice (C-Compiler did later.) and using language strings like français did not work because of the the accented char. Introduced E support. (Thanks Lionel Vintenat) * V1.01 Fixed a bug: The length of the source string was used to check for the stringlen instead of the real stringlen. * v1.0 (31.06.93) - initial release ------------------------ $Id: flexcat.history,v 1.2 1999/11/28 03:36:38 carlos Exp $