Everything Else
International Resources (Collection Localization)

The way Helix displays dates, numbers, currency, and measurements are all controlled by the ‘international’ (itlx) resources. By modifying these resources, you can change the way Helix displays items that use those elements.

Note: Our ability to test international collections is quite limited. Please contact technical support if you encounter any difficulties on non-US systems.

About Resource Editing

Classic Mac OS applications store data within the ‘resource fork’ of a file. In order to change that data, you must open the file with a ‘resource editor’. In the case of Helix, some resources are stored in the Helix application, while others are stored within the collection itself. This technote is concerned with the itlx resources, which are stored in the collection. See our Editing Resources page for more information on this subject.

About Localization

Mac OS (and Helix) support two international resources: ‘itl0’ and ‘itl1’. Together they control virtually every aspect of language localization. Numbers, currency, time, short date, and measurements are controlled by itl0; long date structures are controlled by itl1. By changing the values in those resources, you can change the display of data within Helix to fit your local expectations. For example, displaying currency with a leading dollars ($) sign can be confusing when you are in Europe and expect currency in euros (€).

Note: Newly created collection should inherit the itlx resources for the system on which the collection is created, but Apple has deprecated these resources in macOS 10.9 and later, which no longer supply them to Helix. Consequently, newly created collections contain US resources. Copy/paste the itlx resources from an older collection to get the proper international settings (or edit the US resource to match your region.) This is expected to be addressed in a future update. See R8982 in techdb for the current status of this issue.

Why Doesn’t Helix Do This For Me?

A Helix collection’s resources are set at the time a collection is created. The setting is taken from the System installed on the computer. Once a database is created, changing those without careful consideration of the ramifications could create serious issues. For example, if your database is created with US resources, currency is shown in dollars. If your database is created with UK resources, currency is shown in pounds. If Helix were to adapt to the current settings of your computer, these values could change not just in terms of display, but in actual terms of meaning. If the dollars (US) display changed to pounds (UK) $500 would suddenly become £500; the meaning of the data would be different, and that could be disastrous.

If your collections were created with a different localization and that is a distraction to you, you will benefit from rolling up your sleeves and learning how to customize those resources. Of course, always experiment on a copy of your collection and run the modified copy through both Helix utilities after making any changes.

Another Option

Although resource editing is not very difficult, the notion of messing around ‘inside’ the collection scares some people away from trying. For those people, there is another solution, although it requires much more work.

Since a collection’s itlx resources are set at the time a collection is created, another way to convert a collection is to set up macOS (10.8 or earlier, as per the note above) with the desired localization, then create a new collection. Then copy the structure from the old collection and paste it into the new one. You must then export and import the data from the old collection to the new one.

Of course, Helix won’t do any sort of measurement conversion when importing the data, so it falls upon you to convert the actual numbers stored in field that was formerly displayed as (for example) dollars to the appropriate euro values.

One Final Note of Caution

Although changing the format of numbers and dates is a straightforward process, keep in mind that if you have any abaci that convert those fields to text string, which are then stored in other fields, that text will not be changed. Likewise, indexes that rely on these fields will have to be manually rebuilt (by opening each one and flipping the directional arrow back and forth).

Using ResEdit to Modify itlx Resources

The following information is provided for user who still have access to a Mac running the Mac OS 9.x or earlier (aka; Classic).

Collection in ResEditThe step-by-step shown here uses ResEdit as the example. Any resource editor should provide a similar view into the itlx resources. (However, our experience is that Rezilla is not configured to properly interpret these resources, which is why we recommend copying/pasting the resources in whole from a collection with the desired international settings.)

When you first open the collection (you made a backup, right?) a list of all of the collection’s resources is presented. The itlx resources are near the bottom of the list.

Itl Resources in ResEdit When you open the itlx resources (double click on them) a new window opens showing you a list of every resource of that type in the file. There is only one of each type of itlx resource in a Helix collection — with a resource ID of 0 — but ResEdit still presents the list.

Double clicking on each ‘ID 0’ resource opens an editor window where the real work is done.…

Itl0 Resource in ResEdit Itl1 Resource in ResEditChanging a value in the resources is simply a matter of changing the value of the appropriate field. A very simple change (with no potential data issues) is to turn on the ‘metric’ option in the itl0 resource. With that turned on, the template displays metric rulers.

Note: when editing a via typing, be careful not to press the Enter or Return key. Those characters may be stored as part of the display format, causing much confusion.

After you have made the desired changes, just close each window until you return to the main collection window. When you close that window, ResEdit will ask if you want to save the changes. After saving the changes, quit ResEdit and immediately run the modified collection through both Helix utilities.