質問: ローカライズ対応中のアプリで、キーボードのDecimalPadを指定している箇所があります。 iOSの設定アプリの書式の設定でイタリアを選択すると、DecimalPadのピリオドがカンマになりますが、これだと少々具合が悪い為(DBに値を入れて集計したりする為)、設定を無視して常にピリオドを表示するキーボードを表示させたいのですが、これは可能でしょうか? できればカスタムキーボードの実装は避けて、簡単な方法を探しております。
回答: 直接の回答ではありませんが、ローカライズ対応と言うことであれば、DecimalPadもローカライズ対応したものを表示すべきではないでしょうか。 「DBに値を入れて集計」と言うことであれば、`NSNumberFormatter`を使えば、現在のユーザ設定に応じたフォーマットで数値データを解釈してくれますので、DecimalPadにコンマが表示される設定であれば、コンマを小数点として解釈してくれます。 ``` let numberFormatter = NSNumberFormatter() if let value = numberFormatter.numberFromString(textField.text ?? "")?.doubleValue { print(value) } ``` 数値型の値を画面に表示する場合にも`NSNumberFormatter()`を使用することになります。 ``` numberFormatter.maximumFractionDigits = 10 textField.text = numberFormatter.stringFromNumber(123.456) //->イタリア語の状態では、123,456 と表示される ``` 日本人スタッフばかりで「ローカライズ対応」を行うと、つい表示される文言の翻訳にばかり気を取られがちですが、「小数点」「日付の書式」(日本流のyyyy/MM/dd形式は欧米ではほとんど使われません)なども、しっかりローカライズした方が良いのではないでしょうか。