2010-10-25 100 views
2

我的Localizable.strings文件已被破壞,我不知道如何恢復它。Localizable.strings woes

如果我將它作爲純文本文件打開,它將以奇怪的字符開頭,我無法在此複製。

如果我離開文件是應用程序構建。如果我進行了任何更改,則值的解釋不正確或編譯時出現錯誤。

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是錯?)也不知道如何解決它。任何提示將更加讚賞。

回答

6

我對與您自己聲音非常相似的文件有問題。對我而言,Xcode不知道正確的文件格式。我經常在重新安排項目時得到這個結果,然後將這個文件移除並重新添加到Xcode項目中。當我重新添加文件時,其編碼被設置爲類似西方羅馬的東西,它似乎無法呈現除ASCII之外的其他東西。

這就是我做的來解決這個問題:

  • 在Xcode中選擇Localizable.stings在組&文件面板文件。

  • 對該文件做一個獲取信息。

  • 在信息面板上選擇常規選項卡。

  • 在該選項卡中,轉到文件編碼並更改其值。

最後一步是訣竅在於你現在必須猜測正確的編碼。我發現對於大多數歐洲語言,「Unicode(UTF-8)」起作用。對於亞洲語言,我發現「Unicode(UTF-16/32)」是可以嘗試的。

+0

記住做一個'Product> Clean'。 – Gonzo 2013-05-29 18:44:47

2

確保在文件獲取信息中選擇了UTF-16。如果它被設置爲無或UTF-8作爲編碼,那麼你需要改變它。如果你的角色之間有空格,那麼你選擇「重新解釋」文件爲UTF-16。如果文件中有奇怪的字符,那麼你需要刪除它們。

2

執行UTF-8問題,有時如果存在某些語法問題,您仍然需要檢查內容。

使用以下正則表達式逐行驗證您的文本,如果有任何行不匹配,則必須有問題。 「(?+)」

「(?+)」=;

+0

除了像//和/ *這樣的註釋外 – 2014-08-02 04:31:46

0

發生這種情況時,缺少報價或文件不正確。通常情況下,由於我的語言文件是由其他團隊成員完成的,他往往會忘記報價或其他內容。通常,XCode在該行顯示錯誤,有時它不會引發「損壞的數據」錯誤。

仔細檢查,如果您的所有字符串在引號

3

正確關閉,我只是有這樣的錯誤,因爲我忘了一個分號。花了我一段時間才弄明白。看起來像一個非常模糊的編譯器錯誤,但修復很簡單。

0

在Xcode中打開文件。

在Project Navigator中右鍵單擊它。

選擇打開爲 - > ASCII屬性列表

1

可以使用plutil命令行工具。如果沒有選項或-lint選項,它將檢查作爲參數給出的文件的語法。它會更精確地告訴你錯誤在哪裏。