Localizable.strings の問題点
-
26-09-2019 - |
質問
Localizable.strings ファイルが何らかの理由で破損しており、復元方法がわかりません。
プレーン テキスト ファイルとして開くと、ここではコピーできない奇妙な文字で始まります。
ファイルをそのままにしておくと、アプリがビルドされます。変更を加えると、値が正しく解釈されないか、コンパイル時にエラーが発生します。
Localizable.strings: Conversion of string failed. The string is empty.
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1
これはエンコーディングの問題ではないかと思われますが、どのようにして起こったのか (おそらく SVN が原因でしょうか?)、解決方法もわかりません。ヒントをいただければ幸いです。
解決
あなたの問題と非常によく似た同じファイルに問題があります。私にとって何が起こるかというと、Xcode が正しいファイル形式を認識していないということです。プロジェクトを再配置するときによくこの問題が発生し、このファイルを削除して Xcode プロジェクトに再度追加します。ファイルを再度追加すると、エンコーディングが Western Roman のようなものに設定され、ASCII 以外をレンダリングできないようです。
問題を解決するために私が行うことは次のとおりです。
Xcode の [グループとファイル] パネルで Localizable.stings ファイルを選択します。
そのファイルについて「情報の取得」を実行します。
情報パネルで「全般」タブを選択します。
そのタブで、「ファイル エンコーディング」に移動し、その値を変更します。
最後のステップでは、正しいエンコーディングを推測する必要があるため、ここにトリックがあります。ほとんどのヨーロッパ言語では「Unicode (UTF-8)」が機能することがわかりました。アジア言語の場合は、「Unicode (UTF-16/32)」を試してみるとよいでしょう。
他のヒント
私はちょうどそのエラーが発生しました。それを把握するために私にしばらく時間がかかりました。本当にあいまいなコンパイラエラーのように思えるが、修正は簡単だった。
で確認してくださいファイルの-情報を見るには、UTF-16が選択されていること。それはその後、エンコードとしてnoneまたはUTF-8に設定すると、あなたはそれを変更する必要があります。あなたの文字がそれらの間にスペースを持っているなら、あなたはUTF-16などのファイルを「再解釈」することを選択しました。ファイルに変な文字がある場合は、それらを削除する必要があります。
Execpt UTF-8の問題、時にはあなたはまだいくつかの構文に問題がある場合、ケース内のコンテンツをチェックする必要があります。
を使用するラインで、あなたのテキストの行を確認するには、次の正規表現マッチしない任意の行があります場合は、問題がなければなりません。
の "(+。?)" = "(+。?)"; の
あなたはplutil
コマンドラインツールを使用することができます。オプションを指定しないか、-lint
オプションでは、引数として与えられたファイルの構文をチェック。エラーがある場合には、より正確に教えてくれます。
これが私に起こります。私の言語ファイルを他のチームメンバーによって行われているので、最も一般的に、彼は引用符か何かを忘れる傾向があります。通常XCodeのは、そのライン上のエラーを示し、時にはそれがdoes'nt、ちょうど「破損データ」というエラーがスローされます。
ダブルチェック、すべての文字列が正しく引用符で閉じられている場合は、
Xcodeでファイルを開きます。
右プロジェクトナビゲータでそれをクリックします。
を選択として開く - > ASCIIプロパティリストの