ページ

2010年2月8日月曜日

アプリケーション名とフォルダ名のローカライズ(その2)フォルダ名

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

(前回)Cocoaの日々: アプリケーション名とフォルダ名のローカライズ(その1)

前回はアプリケーション名のローカライズを行った。今回はフォルダ名のローカライズをやってみる。方法は Mac OS X Referece Library に書かれている。

Mac Dev Center: File System Overview: Display Names

この中の "Specifying Localized Directory Names" によれば手順は次の通り。

1 フォルダ名に拡張子 .localized を付ける

2 フォルダ内に .localized という名前のサブフォルダを作成する(ターミナル.appを使う)

3 .localized フォルダ内に言語毎の .strings ファイルを用意する

(例)Sample Folder.localized/
    .localized/
        en.strings
        de.strings
        ja.strings

この .strings ファイル内に言語ごとのフォルダ名を記述する。この時、左側のキーをオリジナルの名前にしておく。
(例)"Sample Folder" = "Localized name";


実際にやってみよう。

まずファインダから Sample Folder という名前のフォルダを作る。
次にターミナル.app で名前を Sample Folder.localized に変更する。
$ mv "Sample Folder" "Sample Folder.localized"

中に入り、.localized フォルダを作成する。
$ cd "Sample Folder.localized"
$ mkdir .localized

さらに .localized フォルダへ入り ja.strings を作成する。
$ cd .localized
$ vi ja.strings

中身はこう
"Sample Folder" = "サンプルフォルダ";

で、フォルダを見ると:
おお、変わった。

ちなみにこの状態でフォルダを変更するとどうなるのか。ファインダから変えてみた。
ターミナル.app で見ると:

$ ls
別名にかえると?


変わっている。一方、中の .localized 構成は変わらず。ja.strings も変わらず。
名前を変えられるとそれ以降はローカライズ情報が使われなくなるようだ。

なおシステムが提供している /System, /Library などもファインダで見ると日本語で表示されているが、これは別の仕組みを使っているとのこと。
以下、引用
Note: System-defined directories, such as /System/Library, and the default directories in each user’s home directory, use a localization scheme different from the one described here. For these directories, the presence of an empty file with the name .localized causes the system to display the directory with a localized name. Do not delete the .localized file from any these directories.