Folder Localization Tool

This is a directory name localization tool for Mac OS X. While it is intended primarily for developers, it can also be used by anyone who wants to have their folders show up in the login language.

Localizing a folder in Mac OS is possible, but requires several easy (yet tedious) steps. This tool automates those steps, making is much quicker to create localized folders.

Since it’s not entirely an intuitive thing to understand, we’ll do a quick demonstration here:

We’ll assume for the sake of argument that you have a folder name in English, but you want the folder to show up in Japanese as well, if the user is logged in in Japanese. (And still display in English, if the user is logged in in English).

For our test, we’ll simply make a directory called “Test Folder” (of course) via the normal end-user method in Finder.

Next, we’ll launch our Localizer tool, and get the blank screen:

It’s actually waiting for us to select a folder to localize, so we click the “…” button next to “Physical Path”, and select the “Test Folder” directory, and then the screen will update as follows.

The “Physical Path” button updates to show the actual path on disk to the directory we selected. Note that the “localized” checkbox below is not checked. That means the folder is not marked as localized. If you click the “Localize” button, the tool will rename the folder appropriately, the directory name will change, and the Localized checkbox will update.

The next option “Localization Sub-Directory Path” is somewhat of an implementation detail, so if you don’t care about how the system works, you just need to click “Create” to make the required sub-directory.

Now comes the most important part, the grid at the bottom. This is where you put in the languages you want to support, and the display name in each language. The left-hand column holds the 2-letter language code, while the right-hand side holds the actual text to be displayed.

While this seems a bit cryptic, it’s actually quite easy. For example “en” is English, “ja” is Japanese, etc.

Once you’re done filling in the languages you want, click the “Write” button, and the tool will take care of the necessary details and write out all the required files. The change should show up immediately in the Finder.

Some Notes:

  1. As evidences by the grid, you aren’t limited to only two languages, in fact, there is no practical limit – you can support as many languages as you would like using Apple’s localization scheme. (This version of the tool only supports 5 entries, however). The codes are standard two-letter ISO codes in most cases.
  2. It doesn’t matter which language you use for the “real” physical path, though English is typical.
  3. You have to put all of the languages you want to be supported in the grid, including the original/physical name. Once Finder detects that a path is localized, it will only display titles from the items in the grid here. For example, if the folder name is “Test Folder”, but we only put the Japanese translation (i.e. no “en” entry), then it would display the name in Japanese all the time!

The interesting thing to note here, is that assuming you are logged in in the same language as the folder’s original (physical) language, and assuming your translation matches, everything will look the same in Finder – even though it’s actually quite different under the hood.

Here is what the finder shows when logged in in English:

Note how “Test Folder” looks perfectly normal and innocent. But let’s try a “Get Info” on it:

Notice how the main name at the top is as we expect it to be. then look at the “Name & Extension” part below – it tells the truth. A quick check with the “ls” command in a Unix terminal window also won’t lie.

Next, we log in in Japanese and take a look:

Aha, you can see our folder name shows up in Japanese now, as desired. In fact, all of the folders here have been localized. This is a nice feature, because developers can install folders which show up in the user’s desired language, without having to actually use different folders for each language. (Microsoft still doesn’t use this feature, however, even as of office 2011).

Cautions:

  1. Be careful not to put spaces in the language code fields, this early version of the software doesn’t check for things like that.
  2. It isn’t [yet] possible to remove unwanted languages. You can do this manually by deleting the appropriate .strings file.
  3. Since localizing folders actually changed the directory name, don’t localize sensitive folders, such as /Develop, and don’t localise the “Movies”, “Photos”, etc. folders under your home folder, as Apple uses a different localization scheme for these.
  4. Many commercial products (such as VMWare Fusion 3.1) create localized folders that can not be edited by this tool. (This tool expects the localization information to be stored in UTF8 format).
  5. The “real” (physical) name of localized folders shows up in some older/less compatible programs, to command-line Unix utilities, and/or if you view the disks from another operating system.
  6. Apple considers (rightly) that users get the final say in the name of any filesystem objects. Thus, if they rename a folder, that will become it’s physical and display name, and any localization will be ignored from then on.

Fun and Profit:
You could make folders nearly impossible to use on non Mac OS systems by making the physical name something like #74$”G#$IH”2%H.localized, and then setting the display name to something readable.

More Information:
Further information on Apple’s localization scheme can be found at the links below:
http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFileSystem/Articles/DisplayNames.html
http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/LocalizingPathnames.html

Note on the Windows version:
Although a Windows version is provided for convenience, don’t expect the folders to show up in Explorer using the localized names. You will only be able to see the translated display names when you view the folder under Mac OS X.