LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

マルチ言語化の対応

Last updated at Posted at 2020-11-22

この記事は、iOSアプリ開発から公開までの流れ の第9章です。

本稿では、iOS のマルチ言語化(ローカライズ)の対応手順を記載します。

1. Strings File テンプレートのファイルを追加します

1.jpeg

2. ファイル名は Localizable.strings とします

なぜかみんなこの名称を使っています。
2.jpeg

3. Localize... を実行します

インスペクタ > Localization > Localize... をクリックします。
3.jpeg

4. 表示が変更されて English だけが設定されている状態になりました

4.jpeg

5. 日本語を追加します

プロジェクト設定の Localizations の + ボタンをクリックし、Japanese (ja) を選択します。
5.jpeg

6. Localizable.strings をチェックして Finish

LaunchScreen.storyboard の方は、iOSアプリのスプラッシュ画面の作成と設定で画像のみのスプラッシュ画面にしたので、ここではチェックを外します。
6.jpeg

7. 日本語のファイルが作成されました

7.jpeg

8. 使い方の例1

以下のように、<key> = <value>; の形式で記載します。

Localizable.strings (English)
ToS_Title = "Terms of Service";
ToS_Agree = "Agree";
ToS_Date = "Agreement date";
Localizable.strings (Japanese)
ToS_Title = "利用規約";
ToS_Agree = "同意する";
ToS_Date = "同意日時";

Text での指定方法は、Text(_ key: LocalizedStringKey) の指定方法となります。

ContentView.swift
Text("ToS_Title")
Text("ToS_Agree")

表示結果は以下のとおり。
13.jpeg

9. 使い方の例2

String での指定方法は、NSLocalizedString(_ key: String, #comment: String) となるようです。comment: はみんさん "" としています。

SocPingTerms.swift
Text(NSLocalizedString("ToS_Date", comment: "") + ": " + self.getAgreementDate())

表示結果は以下のとおり。
15.jpeg

終わり。

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