web-dev-qa-db-ja.com

Swift:ストーリーボードでのローカリゼーション-ラベルがMain.stringsに追加されていませんか?

アプリをローカライズしようとして、ターゲット言語用の新しいMain.stringsファイルを作成すると、Interface Builderで作成したすべてのもの(ラベル、ボタンなど)が新しいMain.stringsファイル(ベースと言語)に追加されます。バージョン)と私はそれに応じてテキストをローカライズすることができます。

しかし、後でInterface BuilderのViewControllerにラベルまたはボタンを追加しても、ベースバージョンと言語バージョンのMain.stringsファイルに自動的に追加されません。

では、ボタン/ラベルのObjectIDを確認して、文字列ファイルに追加するにはどうすればよいですか?

または、Xcodeに新しく追加されたラベルとボタンをそれらのファイルに自動的に追加させる別の方法はありますか?

11
RjC

ストーリーボードからUILabelを選択すると、右側のパネルにUILabelのオブジェクトIDが表示されます。

enter image description here

次に、Main.stringファイルに次のようにラベルのテキストを設定できます。

"v12-vM-an5.text" = "Phone";
18
Dhaval Bhimani

Dhaval Bhimaniの答えは、新しく追加された少数のビューコンポーネントをローカライズするための最も簡単なソリューションです。ストーリーボードのすべてのローカリゼーションを再生成する場合は、Main.storyboard->すべての言語のローカリゼーションチェックボックスの選択を解除します。 [ローカライズされたリソースファイルをディスクから削除する]チェックボックスをオンにします enter image description here ここで、新しく追加したラベルとボタンがそこにあることを確認し、言語を選択して再度ローカライズします。その前に文字列ファイルをバックアップする場合に備えて

0
EarlySun

Ibtoolを使用して、ストーリーボード内の文字列を抽出します。

ターミナルアプリケーションを開きます。Base.lprojディレクトリを見つけます。次の行を使用して、文字列を抽出します。

ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings

Ibtoolが文字列をfile_name.stringsに抽出した後、それをコピーして元の.stringsファイルに貼り付けることができます。

(元々はここで読んでください ローカライズされたストーリーボードの文字列を更新することは可能ですか?

0
katie