235

base.lproj ストーリーボードと 3 つの文字列ファイルを作成して、アプリケーションの一部をローカライズしました。1か月前とその後、新しいビューコントローラーをアプリに追加しましたが、このコントローラーのボタンとラベルは文字列ファイルに表示されません

この 3 つのストーリーボードに添付された文字列ファイルを更新することは可能ですか、それとも NSLocalizableString と Localizable.strings を使用してプログラムで新しい文字列の翻訳を追加する必要がありますか?

4

15 に答える 15

271

次の 2 つのオプションがあります。

オプション1

Xcode は、ファイルを[Interface Builder Cocoa Touch Storyboard]ファイル タイプまたは[Localizable Strings]ファイル タイプのいずれかに変換することで、ファイルを「リロード」できます。

  1. Project Navigator からベース ストーリーボード ファイルを選択します。
  2. File Inspector でLocalizationセクションを見つけます。
  3. ファイルが現在 [ローカライズ可能な文字列] である場合は、[Interface Builder Cocoa Touch Storyboard] に変更するか、その逆に変更します。
  4. Xcode は、古いローカリゼーションの取り組みを維持しながら、ストーリーボードを現在のバージョンに変換する必要があります。必要に応じて、ここでファイルを元のファイル タイプに戻すことができます。

オプション 2

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

  1. ターミナルアプリケーションを開く

  2. Base.lproj ディレクトリを見つけます

  3. 次の行を使用して文字列を抽出します。

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

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

詳細については、 https ://conyac.cc/business/columns/localization_guide_ios をご覧ください。

于 2013-05-01T07:17:31.167 に答える
85

BartyCrouchをチェックしてください。問題を完全に解決します。また、オープン ソースであり、積極的にメンテナンスされており、簡単にインストールしてプロジェクトに統合できます。


Homebrew経由で BartyCrouch をインストールします。

brew install bartycrouch

または、 Mint経由でインストールします:

mint install Flinesoft/BartyCrouch

Storyboards/XIBs Strings ファイルを段階的に更新します。

$ bartycrouch update

これはまさにあなたが探していたものです。


ストーリーボード/XIB 文字列ファイルを常に最新の状態に保つために、ビルド スクリプトを追加することを強くお勧めします (ビルド スクリプトの追加方法については、こちらを参照してください)。

if which bartycrouch > /dev/null; then
    bartycrouch update -x
    bartycrouch lint -x
else
    echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi

Storyboards/XIBs Strings ファイルを段階的に更新することLocalizable.stringsNSLocalizedStringに加えて、重複するキーまたは空の値の警告を使用して、コードに新しく追加されたキーでファイルが更新されたままになるようにします。

追加情報については、 GitHubの BartyCrouchまたはこの詳細な記事を確認してください。

于 2016-02-14T22:14:43.930 に答える
34

これは万人向けではありませんが、端末に追加のツールを必要とせず、手動での小さな変更は簡単です。(プロセスを自動化する場合は、これを考慮しないでください。)

ステップ 0: ストーリーボード言語のセットアップ

  • ベース(英文あり)
  • 英語 (ベース ファイルが英語であるため、ローカライズ可能な文字列ファイルは存在しません)
  • その他の言語 (ローカライズ可能な文字列ファイル)

基本構成

この手順は 1 回だけ実行されます。

ストーリーボードに何かを追加するときは、次のようにします

ステップ 1: 英語にローカライズ可能な文字列ファイルを追加する

英語を追加

英語の項目をマークするだけです。

これにより、すべての行を含む完全に新しい英語のローカライズ可能な文字列ファイルが作成されます

ステップ 2: 新しい項目を他の言語ファイルにコピーする

そしてそれらを翻訳します

ステップ 3: 英語のマークを外し、対応するローカライズ可能な文字列ファイルを削除します

このファイルは、新しい項目を取得するためだけに必要でした

これは簡単で迅速なプロセスです。すべてがストーリーボード エディターで行われます。

編集:

このプロセスは、小さなストーリーボードで非常にうまく機能します。たとえば、タブ ベースのプロジェクトがあり、各タブにストーリーボードがあります。

チュートリアルを見つけるには、「ストーリーボード リファレンス」を検索してください。

良い例: Xcode のストーリーボード参照、どこで使用すればよいですか?

そのため、それぞれの小さなストーリーボードには、ローカライズする文字列がいくつかあります。

于 2016-05-28T20:26:10.037 に答える
4

インクリメンタル ローカリゼーションをサポートするAppleGlotというApple のコマンド ライン ツールのアプリがあります。まだ試していませんが、(しばらく前に) 検索したツールとまったく同じように見えます。

于 2014-06-16T13:39:15.933 に答える
4

ストーリーボードと xib から文字列を抽出し、それらを既存の翻訳とマージするスクリプトを次に示します。

プロジェクトのビルド時にスクリプトを自動的に実行するには、スクリプトをプロジェクトのルート ディレクトリに配置し、次の行を使用してスクリプトの実行フェーズをプロジェクト設定のターゲット ビルド フェーズに追加します。

./mergegenstrings.py PathToSourceDir

または、必要に応じてターミナルでスクリプトを手動で実行できます。

ibtoolTha Leang が応答すると、スクリプトが実行されます。また、ソース コードで でgenstringsマークされた文字列を抽出してマージするためにも実行されます。このスクリプトは、実行後に文字列をマージするこの投稿のスクリプトにNSLocalizedString基づいています。genstrings

于 2015-03-17T10:02:46.343 に答える
0

これは、ストーリーボードまたは xib からローカライズ文字列に新しいテキストを更新する簡単な方法です

1- このスクリプトを使用http://tredje.se/dev/trouble/?x=entry:entry150917-204052

2-更新するローカライズ文字列を選択し、言語文字列を「ローカライズ文字列」から「インターフェースビルダーストーリーボード」に切り替えます

3-元に戻します:)

終わり。

ここに画像の説明を入力

于 2016-11-20T13:56:23.860 に答える