Looking through the LO (localisation) disk for Workbench 3.1, I see that the language files are binary. I'd like to create a Gaeilge (Irish) localisation file. How is this done on Amiga?

enter image description here

Update: Following Raffzahn's advice, LocaleTest provides useful information on the current/active locale. I'm happy to see there are only 51 strings used in Workbench - the translation aspect should be easy :) Here is LocaleTest running on my setup: http://www.dailymotion.com/video/x5wzhyj

The Lithuanian language may be complete, but is also binary so I don't know what I can learn from it. There are also some irregularities delcared; "usefull files (hacks) to make Amiga OS think that Lithuanian language is your prefered language. Those files are hack because I don't know how to build countries file. Sorry, but I don't have time to search internet for these documents."

The link at http://wiki.amigaos.net/wiki/Locale_Library clarifies some concepts but is ultimately aimed at application developers and doesn't show how to create a locale/catalog itself.

As far as I remember the .language files are a variation of .catalog files. They are 'paired' with .country files for things like default date order, etc. I do not remember any special tool for creation, but then again, it's been a few years. What I remember ist a programm called LocalTest listing all structures and settings of .language files. A quick search turned it up on Aminet, including all sources, so there is maybe a starting point to dig.

Looking at an existing localization might also help, maybe use this realy complete Lithuanian Localization.

Looking at Amiga localization in general might also be helpful, see the Locale Library page on AmigaOS. Ofc, these pages focus on AmigaOS 4.0 and up.

And then there was the Amiga Translators Organization. A gathering of people on the net involved in (voluntary or professional) translation of Amiga product. I couldn't find and actual pointer, but this old page might be a first start for your search.

  • Thanks Raffzahn for a very helpful answer. Lot's of leads here. I'm looking into these avenues. I will wait to accept this answer in case something more conclusive comes along, but I appreciate the many leads! – TenLeftFingers Aug 14 '17 at 17:47
  • Unfortunately, this answer seems to be incorrect. Looking at some of the actual .language files available on Aminet (e.g. here and here), they seem to be executable hunk files, not IFF files like .catalog files are. – Ilmari Karonen Aug 15 '17 at 21:02
  • 1
    A comment I received via social media says; "while the files are binary, there's no real magic about them - they're essentially IFF standard files. Once you have a .CD (catalog descriptor) or .ct (catalog translator) file, you can create any language catalog you want. Check out SimpleCat, which is an excellent program for editing catalog files. It even lets you load in existing catalog files." With a link to Simple Cat geit.de/eng_simplecat.html?fref=gc I'll check the files you link to IImari – TenLeftFingers Aug 15 '17 at 23:34

The .language file contains the "language driver", which is basically an Amiga system library (i.e. just like a .library file) that contains a bunch of localization-related functions that mostly implement the various string conversion, comparison and character class testing functions defined in locale.library.

Based on the documentation and the example language drivers found in the AmigaOS4 SDK (under Documentation/Localization and Examples/Locale, found inside base.lha in the SDK archive), it seems that the full list of functions that a language driver may provide is:

GetDriverInfo, ConvToLower, ConvToUpper, GetCodeSet, GetLocaleStr, IsAlNum, IsAlpha, IsCntrl, IsDigit, IsGraph, IsLower, IsPrint, IsPunct, IsSpace, IsUpper, IsXDigit, StrConvert, StrnCmp, IsBlank

Not all of these functions need to be actually provided by the language driver. Instead, the GetDriverInfo function is supposed to return a bitmap indicating which functions the driver actually implements. For the functions that aren't implemented by the language driver, the OS instead falls back to the corresponding functions in the charset driver (defined in a .charset file, which is another similar system library) or to built-in routines in locale.library

For a complete localization, you'll also need a .country file. Unlike the language and charset drivers, the .country file is not a system library, but just a simple IFF data file containing a list of strings related to currency, date/time etc. formatting. The .country files are, in fact, very much like the .catalog files used for application localization, except that they use different IFF form and chunk names.

  • I haven't done languages for the OS, but I have for my own programs - the basic idea is you ship a .cd (catalog definition) and your translator changes the strings to create the .ct file, then CatComp "compiles" the .ct to IFF .catalog files. – Wonko Sep 24 '17 at 20:44
  • Excerpt from a .ct file ======================= ## version $VER: streamer2.catalog 2.06 (02.09.03) ## codeset 0 ## language deutsch ; LOCALE_TITLE_WINMAIN Streamer 2.06 ; LOCALE_TITLE_WINDOWSCREEN1 Workbench Screen ; – Wonko Sep 24 '17 at 20:47

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.