国際化周りの実装を試すのに、XcodeのPlaygroundでlocale変更出来たら便利だなーと思って調べてたのですが、情報が全く見つからず。
で、ちょっと考えて試したらMethod Swizzlingでうまく行きました( ´・‿・`)
シミュレーターの切り替えはこちら:
iOS - Xcode6で言語設定の切り替えが簡単になった - Qiita
extension NSLocale {
class func mono_currentLocale() -> NSLocale {
return NSLocale(localeIdentifier: "fr") // ここは適当に変えましょう
}
}
let method = class_getClassMethod(NSLocale.self, "currentLocale")
let swizzledMethod = class_getClassMethod(NSLocale.self, "mono_currentLocale")
method_exchangeImplementations(method, swizzledMethod)
print(NSLocale.currentLocale().localeIdentifier) // -> "fr"
method_exchangeImplementations(method, swizzledMethod)
をコメントアウトすると、デフォルトの en_US
になるはずです。
以前はHow To Test Locale In Your Playground in Swiftの方法で出来たようですが、Xcode 6.3.2でコンパイルエラーになってしまったので、新しいやり方を考えたらうまくいきました。
(http://stackoverflow.com/questions/31065859/how-can-i-change-the-locale-on-the-xcode-playground で質問してセルフ回答)
locale一覧はこちら:
https://gist.github.com/jacobbubu/1836273