Android Studio には jetpack compose, Xcode は SwiftUI を使ったプロジェクトがある状態です。
作業環境
2024/7/13 現在
Android Studio
Android Studio Koala
使用しているプロジェクト: Jetpack Compose で作成したアプリ
Xcode
Xcode 15
使用しているプロジェクト: SwiftUI で作成したアプリ
Android Studio
- プロジェクトファイルの中から string ディレクトリを探します
- 選択した状態で右クリックをします
- メニューから open translations editor をクリックします
- 地球儀マークの近くにある + マークをクリックしてプルダウンメニューの中から追加したい言語をクリックします
- それぞれの言語の文章を入力します
- Jetpack Compose 上で stringResource(id = R.string.appName) のように使用したい文字列リソース ID を宣言します
例)
Text(text = stringResource(id = R.string.landmark_number)
- アプリをビルドすると言語設定に従って文字列が変化することを確認できます
Xcode
- プロジェクトファイルを選択する
- Localizations というリストの下にある + をクリックする
- 追加したい言語をプルダウンメニューから探してクリックする
- File -> New -> File をクリック
-
- String Catalog をクリックしてファイルを追加する
- すでにSwiftUI にTextが打ち込まれているのであればProduct -> Build で String Catalog にkey と value が追加されます
- それぞれの言語でローカライズしたい文字列を入力します
Text 内に入力されている文字列が key の役割を果たします。
Text("Favorite Landmarks only display")
- アプリを動かすと Text で定義されている文字列が言語設定に従って変化することが確認できます
筆者の感想
Android Studio ではstringResource()
の中にID を入力しないと使えないが、Xcode ではそうした必要なく Text の中にある文字列がそのまま key になってくれるのが、とても楽だと感じました。
そのかわり重複に十分注意をしなければならない部分であるため、その点を留意する必要がありそうです。