問題タブ [genstrings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4492 参照

ios - Swift で value パラメータを使用すると genstrings がチョークする

を含む基本的なSwiftファイルTest.swiftがあります

このファイルで実行するgenstringsと、予期しない警告が表示されます

生成されたLocalizable.stringsファイルにエントリがありません"key 1"

ただし、ファイルで以下のコードを使用してObjective-Cで同等のことを行うとTest.m

コマンドはgenstrings期待どおりに機能し、のエントリを取得し"key 1"ます。

私は何を間違っていますか?

0 投票する
1 に答える
1138 参照

swift - NSLocalizedString で tableName パラメータを設定すると、genstrings が機能しない

パラメータを使用する呼び出しごとにコマンドラインをBad entry in file使用するとエラーが発生しますgenstringsNSLocalizedStringtableName

ローカライズされた文字列を生成しようとする場合は、次の例を参照してください ( Firefox-iOSから)

ファイル ./StorageTests/TestSQLiteHistory.swift の不正なエントリ (行 = 100): 引数はリテラル文字列ではありません。

ファイル ./StorageTests/TestSQLiteHistory.swift の不正なエントリ (行 = 101): 引数はリテラル文字列ではありません。

ファイル ./StorageTests/TestSQLiteHistory.swift の不正なエントリ (行 = 102): 引数はリテラル文字列ではありません。

ファイル ./StorageTests/TestSQLiteHistory.swift の不正なエントリ (行 = 103): 引数はリテラル文字列ではありません。引数はリテラル文字列ではありません。

これらの行のコードは次のとおりです

解決策を探したところ、ローカライズされた文字列を生成およびマージするためのこのツールが見つかりました。このケースでは機能し、ローカライズされた文字列を生成してマージしましLocalizable.stringsたが、実行時にアプリはローカライズされたタイトルを表示しませんStorage.stringsLocalizable.strings

手動で行うのではなく、これらのファイルを自動的に生成するソリューションはありますか?

0 投票する
1 に答える
1840 参照

ios - ローカリゼーションのためにストーリーボードから抽出された genstrings 生成キー (オブジェクト ID) を変更しますか?

ストーリーボードのボタンを押してLocalize...文字列ファイルを生成し、ストーリーボードを他の言語にローカライズできるようにしました。ストーリーボードに対応する文字列ファイルの 1 つで、次のようなものが表示されます。

Android などの他のプラットフォームで使用できるように、キー フィールドorz-58-mzb.textをより意味のあるものに変更できるかどうか疑問に思っています。faq.answer.23.textストーリーボード エディターで、オブジェクト ID を変更できないことに気付きました (スクリーンショットを参照)。キーを変更する他の方法はありますか?

オブジェクト ID の Xcode スクリーンショット

0 投票する
1 に答える
1457 参照

ios - genstrings によって生成された Localizable.strings の文字エンコーディング

私の「ViewController.swift」には、ローカライズされた文字列があります。

ターミナルで、「Localizable.strings」ファイルを生成するために、次のように入力しました。

そして次の結果を得ました:

と入力するod -c Localizable.stringsと、次のようになります。

と入力file Localizable.stringsすると、次のように表示されます。

「emacs」でファイルを開くと、これらの文字が表示されず、入力すると次のように表示さM-x describe-current-coding-system RETれます。

したがって、ファイルの先頭にあるこれらの 8 進文字 \377 および \376 は、一種の utf-16-le BOM のように見えます。これは、各文字の後に \0 が続く理由を説明しています (UTF-16 は、この場合はUTF-8)。

これは正常/有用/有害ですか?

また、標準の *nix ツール ( grepsedawk) は utf-16 ファイルを適切に処理しません。

また、 Localizable.strings を編集して に置き換え"hello";ました"Hello";。それから、「SourceTree」(私の「git」クライアント) は、私がしない限り違いを表示できません:

Apple のInternationalization and Localization Guide には次のように書かれています。

注: Localizable.strings ファイルが Unicode (UtF-16) であると Xcode が警告する場合は、ファイル インスペクタを使用して Unicode (UTF-8) に変換できます。

では、BOM を削除/無視する必要がありますか?

genstringsUTF-8 ファイルを生成するオプションはないようです。

ファイルを変換する必要がありますか?

0 投票する
1 に答える
1361 参照

ios - Xcode で Genstrings にアクセスするにはどうすればよいですか?

現在、言語の切り替えに役立つポッドを使用しています。インストール プロセスの一部は次のとおりです。

私は genstrings に精通しておらず、ライターが何を指しているのかよくわかりません。ライターはローカライズされた文字列フォルダーを意味していると推測していますが、ターミナルを実行すると、次のエラーが発生しました。

指示が何を意味するのか分かりますか?