BathyScaphe

BathyScapheWiki

スマート掲示板編集シートのローカライズ

スマート掲示板編集シートのローカライズ

スマート掲示板編集シートをローカライズするには次の三つのファイルを編集する必要があります。

  1. SmartBoardItemEditor.nib
  2. SmartBLIEditorComponents.nib
  3. CriteriaSpecifications.plist

以下では、各ファイルの役割とローカライズ方法を説明します。

SmartBoardItemEditor.nib

SmartBoardItemEditor.nib はスマート掲示板編集シート本体のNibファイルです。
これについては通常のローカライズ方法と同じです。特に説明することはありません。

SmartBLIEditorComponents.nib

SmartBLIEditorComponents.nib は各条件を表す部品を納めたNibファイルです。
このファイルの編集には BSDatePicker.framework と BSDatePicker.palette が必要です。

BSDatePicker
現在はCVSからIBPalleteディレクトリを取得し、make BSDatePicker を実行してください。
BSDatePicker.framework 及び BSDatePicker.palette が作成され所定の場所
BSDatePicker.framework は $(HOME)/Library/Frameworks
BSDatePicker.palette は $(HOME)/Library/Palettes にインストールされます。

SmartBLIEditorComponents.nib に含まれる部品の配置は実際に表示される配置とは一致していません
これらの部品は実行時に動的に再配置されます。配置を換えてもそれが反映されることはありません
配置方法は CriteriaSpecifications.plist によって決定されます。
ただし、上下の位置は維持されます。

CriteriaSpecifications.plist

CriteriaSpecifications.plist は(ローカライズだけを考えるなら)条件部分に配置される部品とその順番を決定するためのファイルです。
キー orders がそれにあたります。

キー orders の値は辞書で、
各キーは SmartBLIEditorComponents.nib 内の

  • 文字列に関する条件を表すポップアップボタンの各メニューアイテムのtag
  • 日時に関する条件を表すポップアップボタンの各メニューアイテムのtag
  • 数値に関する条件を表すポップアップボタンの各メニューアイテムのtag

に対応しています。
各値はその条件のときに表示する部品とその順番を表す配列です。

以下にキーとその意味を示します。

キー意味キー意味
1 文字列が含まれる1000今日
2文字列が含まれない1001昨日
3文字列と一致する1007今週
4文字列と一致しない1014先週
5文字列から始まる2007時間の数値と一致する
6文字列で終わる2009時間の数値より大きい
7数値と一致する2010時間の数値より小さい
8数値と一致しない2011二つの時間の数値の範囲
9数値より大きい3007日時と一致する
10数値より小さい3008日時と一致しない
11二つの数値の範囲3009日時より前
3010日時より後
3011二つの日時の範囲

以下に値に使われる部品の名前とその役割を示す。([]内は省略可)

名前役割SmartBLIEditorComponents.nib上のtag
criterion popup条件の種別を表すポップアップボタン(必須)100
qualifier popup範囲等を表すポップアップボタン300,700,1400(条件の種別により変動)
expression field文字列を入力するフィールド200
[beginning ]number field(開始)数値を入力するフィールド1300
and string時間に関する開始数値と終了数値をつなぐテキスト1501,1201(条件の種別により変動)
ending number終了数値を入力するフィールド1500
[beginning ]days(開始)時間の数値を入力するフィールド900
units popup時間の数値の単位を表すポップアップボタン1000
ago string「以前」のテキスト1100
ending days field終了時間の数値を入力するフィールド1200
[beginning ]date(開始)日時を入力するBSDatePicker600
to string開示日時と終了日時をつなぐテキスト801
ending date field終了日時を入力するBSDatePicker800

なぜこんな面倒くさいことをするのか?

たしかに、そういう需要があることは昔から知ってるというか、昔の人の方がこだわってるっていうか、それでいじめられたことがあるというか。。。
Mail.app がそうなってたからです!!
語順?まあ、そういう説もある。

カテゴリ: Development

Last Modified: