修正日: 07/09/05
練習問題10
解答編
解答編です。まずはコードの追加部分。
- (void)setValues
{
[bmiField setFloatValue:bmi];
[bmiSlider setFloatValue:bmi];
[heightField setFloatValue:height];
[heightSlider setFloatValue:height];
[weightField setFloatValue:weight];
[weightSlider setFloatValue:weight];
if(bmi<18)
[alertField setStringValue:NSLocalizedString(@"too thin",@"")];
else if(bmi>25)
[alertField setStringValue:NSLocalizedString(@"too fat",@"")];
else
[alertField setStringValue:@""];
}
BMIを計算した後、結果に応じてalertFieldにローカライズされた文字列をセットしています。メッセージのサンプルはこちら。
"too thin" = "もっと飯食え!";
"too fat" = "もっと運動しろ!";
まあこの文言は何でも構いません。
それからもちろんこのalertFieldをウィンドウに追加してやる必要があります。これは今更説明する必要はありませんね。
システム環境設定の「言語環境」の「言語」タブでEnglishを日本語の上にドラッグすることでCalcBmiを英語版で起動させることができます。正しくローカライズできているかどうか試してみてください。
サンプルをこちらに置いておきます。
ローカライズはこのようにものすごく簡単にできるのですが、バージョンアップのたびに同じような作業が必要になるので、後々結構面倒くさくなってきます。世の中にはローカライズを支援するためのソフトがいくつもありますので、自作のソフトを公開するようになったら、そのようなソフトを試してみると良いでしょう。その際は拙作iLingualもお試しください。