web-dev-qa-db-ja.com

Localizable.stringsが破損していますか?

アプリケーションの国際化を含めようとしていますが、テスト目的でのみ、Localizable.stringファイルに単純な行を追加しました。

これは私のファイル全体です:

"テストロケール" = "テストロケール"

そして、アプリケーションを実行しようとすると、次のエラーが発生します。

Localizable.strings:0:エラー:検証に失敗しました:データが破損しているため、データを読み取ることができませんでした。

「テキストエンコーディング」をUTF-16に変更しようとしましたが、何も解決しませんでした。

何かアイデアはありますか?

前もって感謝します。

29
Paulo Rodrigues

これがファイル全体である場合は、最後にセミコロンを追加します。次のように変更します。

"テストロケール" = "テストロケール" ;

57
pre

より詳細な情報を取得するには、コマンドラインからプロパティリストユーティリティを使用できます。

plutil -lint <your_strings_file>.strings

-lintswitchは構文をチェックするためのものです。エラーが発生した場合は、行番号と詳細情報、および一般的に問題の修正方法に関するより良い指示が表示されます。

43
lucianoenrico

次のスクリプトを使用して、Localizable.stringsファイルを確認できます。

https://github.com/dcordero/Rubustrings

7
StuckOverFlow

私の場合、次のようになりました。

/* Comment for Very Long Sentence */
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence " =;
"Very Long Sentence Very Long Sentence Very Long Sentence Very Long Sentence ";

(最初の行の終わりにある '='ではなく '=;'に注意してください)

それが誰かを助けることを願っています...

4
Nicolas Miari

私の場合、文字列内の角かっこでした—\"の前にスラッシュを追加する必要がありました。

1
Shmidt

Plutilを使用してフォルダ全体の.stringsファイルをチェックする小さなスクリプトを作成しました。

https://github.com/CarlesEstevadeordal/check_strings