1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Swift】ローカライズとiPhoneの使用言語

Last updated at Posted at 2018-07-21

1.はじめに

 英語と日本語に対応したアプリを作ったので、iPhoneの言語設定をちょこちょこ変えてテストをしていた時に、想定した言語で表示されなかったので書き留めておきます。
 
 ローカライズの設定
 ・英語(base)
 ・日本語
 
 「PROJECT > Info」 の設定
 スクリーンショット 2018-07-21 9.21.10.png

2.コード

ViewController.swift
override func viewDidLoad() {
	super.viewDidLoad()
	print(NSLocalizedString("hello", comment: ""))
}
Localizable.strings(Base)
"hello" = "hello english";
Localizable.strings(Japanese)
"hello" = "こんにちは 日本語";

3.想定

 iPhoneの使用言語の設定とアプリ内での表示の想定。
 iPhoneの使用言語は「設定 > 一般 > 言語と地域 > iPhoneの使用言語」で変更できます。

iPhoneの使用言語 アプリ内の表示
1 日本語 「こんにちは 日本語」
2 English 「hello english」
3 Español 「hello english」

 つまり、iPhoneの使用言語を日本語または英語にした場合は、それぞれ該当する言語で表示される。
 それ以外の言語に設定した場合は、英語で表示される。

4.うまくいかなかったパターン

 iPhoneの使用言語を日本語、英語以外に設定した場合に日本語で表示されたり英語で表示されたりした。
 これはアプリのローカライズが「iPhoneの使用言語」だけではなく、その下の「使用する言語の優先順序」にも影響されるためです。
 
 スクリーンショット 2018-07-21 9.44.54.png

 iPhoneの使用言語に日本語、英語を設定した場合は、それぞれ該当する言語で表示されます。
 iPhoneの使用言語に日本語、英語以外を設定した場合は、使用する言語の優先順序が影響します。
 日本語と英語のうち、優先順序の上位にある言語でアプリがローカライズされます。
 
 
 つまり、以下のような設定の場合は英語でローカライズされます。
 スクリーンショット 2018-07-21 9.51.20.png
 
 
 また、以下のような設定の場合は日本語でローカライズされます。
 スクリーンショット 2018-07-21 9.52.48.png
 

5.おわりに

 iPhoneの使用言語をコロコロ変えるユーザーはあまりいないと思うので、実際にはそこまで影響は出ないかなと思いますが、テストでちょっと戸惑ったのでメモしときます。

 
 
 
 
 
 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?