web-dev-qa-db-ja.com

Localizable.strings-正しい形式ではないため、データを読み取ることができませんでした

Texteditまたはwebから何かをコピーしてローカライズ可能なファイルに貼り付けると、このコンパイルエラーが表示されます。ローカライズ可能なファイルにこれらを入力しても、エラーは表示されません。正しい形式と「;」を使用していることを保証しますファイル内。

"New" = "New";
"In Progress" = "In Progress";
"Waiting" = "Waiting";
"Closed" = "Closed";
38
Rashad
  • ターミナルからplutilを使用します。

ローカライズ可能なファイルのバージョンごとに実行する必要があります。例えば

  1. cdプロジェクトルートに
  2. cd eb.lproj-これは、使用しているローカリゼーションに置き換えることができます。
  3. plutil -lint Localizable.strings

手順3を実行すると、エラーが表示され、ファイルの何が問題なのかがわかります。または、ファイルに問題がないことが通知されます

110
bat

私にとっては、セミコロンが欠落していました。ツールを使用して.stringsファイルを生成する場合は、区切りセミコロンを「食べる」可能性のあるエスケープされていない引用符がないことを確認してください。

28
Ahmed Khalaf

私の場合、文字列ペアの間に「=」がありませんでした。 plutilでさえ、エラー行を見つける助けにはなりませんでした。各文字列ペアを手動でチェックしました。 :/

3
EsmaGo

私は同じ問題を抱えていたので、Localizable.String fileの未使用の文字列をコメントするか削除して解決しました:)

3

あなたの構文はうまくいくようです、私が見ることができる唯一のものはあなたのファイルを「壊して」、このエラーを引き起こすことができるのは引用文字です。 "などの他の形式ではなく、必ずを使用してください。

2
Rashwan L

pl <Localizable.stringsplutil -lint Localizable.stringsよりも優れています

ログには次のように表示されます

2019-08-14 16:39:34.066 pl [21007:428513] CFPropertyListCreateFromXMLData():古いスタイルのplistパーサー:427行目の辞書にセミコロンがありません。解析は中止されます。 _CFPropertyListMissingSemicolonでブレークしてデバッグします。 2019-08-14 16:39:34.068 pl [21007:428513] CFPropertyListCreateFromXMLData():古いスタイルのplistパーサー:427行目の辞書にセミコロンがありません。解析は中止されます。 _CFPropertyListMissingSemicolonでブレークしてデバッグします。 2019-08-14 16:39:34.071 pl [21007:428513] *** ASCIIプロパティリストの解析例外:NSParseErrorException Error Domain = NSCocoaErrorDomain Code = 3840 "予期しない文字/行1" UserInfo = { NSDebugDescription =予期しない文字/ 1行目、kCFPropertyListOldStyleParsingError = Error Domain = NSCocoaErrorDomain Code = 3840 "Missing ';'行427 "UserInfo = {NSDebugDescription = ';'がありません427行目}}

2
Jerome

私はかつて同様のエラーが発生し、次のようにファイルの途中にURLがあることが判明しました:

// Some Comment 1
"Some key 1" = "Some value 1";
http://...whatever...
// Some Comment 2
"Some key 2" = "Some value 2";

そのファイルでplutil -lintを呼び出すと、出力は次のようになりました。

Unexpected character / at line 1

実際、最初の文字は/でした。ファイルはコメントで始まっていましたが、URLを削除すると問題は解決しました。または、実際にあるべきコメントに変換します。 URLは文字列ファイルの先頭近くにはなく、6000行の文字列ファイルの中央にあることに注意してください。私はコミット履歴をブラウズしてそれを見つけることができ、常に変更を見ることができました。

1
Mecki

また、stringsファイル名が常にLocalizable.stringsであることを確認してください

1
Naishta

私は、文字列の値の1つに対してバックスラッシュ\を使用して文字列値をエスケープしなかった同様の問題を抱えていました。

前:

"INVALID_NUMBER" = "無効な番号を入力しているようです。番号は" 0 "または" 7 "で始まる必要があります。

更新:

"INVALID_NUMBER" = "無効な番号を入力しているようです。番号は\" 0\"または\" 7\"で始まる必要があります";

引用符"を表示する場合は、バックスラッシュが必要です

こちらをご覧ください 文字列に引用符を含める方法

0
Praveenkumar

Info.plistが正しい形式ではないようです。正しく確認してください。私も同じ問題を抱えていました。 info.plistを変更して解決しました。

0
Ayush Dixit

私はちょうどこの経験をした:

  • visual Codeまたは他のテキストエディター内で作業を行う外部トランスレーター
  • ファイルが機能せず、次のようなエラーが発生します:(plutil -lintでテスト)

    Localizable.strings: Unexpected character " at line 1 CardRatingView.strings: Unexpected character / at line 2

XCode内に新しいファイルを作成し、すべてのファイルコンテンツをコピーして貼り付けたところ、突然すべてが正常に機能しました。

他のテキストエディタで作業しているときに、何かがうまくいかなかったり、ファイル自体が破損したりする可能性があると思います。

0
Francesco Fiore

私はこの問題に出くわしました、私の書式設定はすべて正しかったです。 plutil -lint Localizable.stringsを使用し、"utf8_utils"などのRubyライブラリを使用して不正な文字をチェックすることも、不正な文字を見つける際に機能しませんでした。ただし、irbの実行中にLocalizable.stringsの内容をターミナルアプリに貼り付けたとき、奇妙な文字が表示されました。

"PercentComplete" = "%d procent gennemført";

Irbに貼り付け:

"PercentComplete"\U+FFC2\U+FFA0= "%d procent gennemf\U+FFC3\U+FFB8rt";

その後、私がしなければならなかったのは、これらの奇妙な空白文字を修正するための正規表現の置き換えでした:\U+FFC2\U+FFA0

0
prolfe