修正日: 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もお試しください。