非同期で呼び出したPHPで重い処理をしてもタイムアウトさせない方法
のえる
2021.11.02
どうも、のえるです。
最近暖かくなってきて、朝から眠いです。
ぇ? 寝過ぎじゃないか?
逆です、3時まで起きてますから(ぁ
さて、今回はiPhoneアプリでローカライズする際にちょっとしたTipsをご紹介します。
ローカライズする際に一番困るのが、各国における、時刻や日付の表示方法です。
具体的には「日本とアメリカで、12時間表示の内容が異なる」「日付の順番が違う」などです。
そこで使うのが「フォーマット文字列」です。
よく使う方法としては、下記のように「数値をゼロ埋めする」などがあります。
1 2 |
NSLog(@"%03ld", 1); // 「001」と表示される |
文字列の表示などもフォーマットで出来ます。
1 2 3 4 |
NSString *str1 = @"foo"; NSString *str2 = @"bar"; NSLog(@"str1: %@, str2: %@", str1, str2); // 「str1:foo, str2:bar」と表示される |
さて、ここで疑問が・・・。
『日本では「foo, bar」、アメリカでは「bar, foo」と表示させる』にはどうしたら良いでしょう?
単純にフォーマット文字列を入れ替えるだけでは駄目ですね。
かと言って、言語ごとにif文を使うのはナンセンスです。
というわけで回答をお見せします。
1 2 3 4 5 6 |
NSString *str1 = @"foo"; NSString *str2 = @"bar"; // 日本用 (「foo, bar」と表示される) NSLog(@"%@, %@", str1, str2); // アメリカ用 (「bar, foo」と表示される) NSLog(@"%2$@, %1$@", str1, str2); |
実はフォーマット文字列は適用させる変数の順番を指定出来るみたいです。
これを使えば、時刻や日付をローカライズする際に簡単に行えます。
いかがでしたか?
弊社では海外展開のアプリも常に意識していますので、
ローカライズのTipsなどがあれば、また掲載していきたいと思います。
ではではっ♪
POPULAR
のえる
Full-stack Developer
人気記事