2012-04-16 25 views
26

Próbuję uwzględnić internacjonalizację mojej aplikacji i tylko do celów testowych dodałem prostą linię w pliku Localizable.string.Localizable.strings jest uszkodzony?

To cały mój plik:

"Test locale" = "Test locale"

I gdy próbuję uruchomić mojej aplikacji otrzymuję ten błąd:

Localizable.strings:0: error: validation failed: The data couldn’t be read because it has been corrupted.

próbowałam zmianę "Kodowanie tekstu" na UTF-16 ale nic nie rozwiązało.

Jakieś idei?

Z góry dziękuję.

+0

o to biblioteka, która może pomóc zlokalizować projekt https://github.com/dipkasyap/DGLocalization – dip

Odpowiedz

56

Jeśli jest to cały plik, dodaj średnik na końcu. Zmień go na adres:

"Test locale" = "Test locale";

+1

Boże, jaki byłem głupi, bardzo proste. Dziękuję Ci. –

+0

OMG..i nigdy nie spodziewam się, że zrobię tego rodzaju błąd .. –

+0

Nauka iOS po raz pierwszy z szybkim przejściem od Androida, jest to naprawdę bardzo irytujący błąd ... – Warpzit

3

W moim przypadku było tak:

/* 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 "; 

(Zauważ, że '=;' zamiast '=' na końcu pierwszego wiersza)

mam nadzieję, że ktoś pomoże ...

+0

Dzieje się dużo podczas kopiowania/wklejania bez sprawdzania. .. –

1

W moim przypadku było nawiasach ciąg - musiałem dodać ukośnik befor e \ ".

37

Aby uzyskać bardziej szczegółowe informacje, można użyć narzędzia liście Właściwość z wiersza poleceń:

plutil -lint <your_strings_file>.strings 

-lint przełącznik służy do sprawdzania składni. Jeśli masz błąd, dostaniesz numer linii i więcej informacji, a ogólnie lepsze wskazówki, jak rozwiązać problem.

+1

Dzięki, dokładnie to, czego potrzebowałem. Zbyt duży plik do sprawdzenia ręcznie. –

+0

Czy istnieje sposób zintegrowania tego polecenia z kompilacją Xcode? –

+0

Nigdy nie próbowałem, ale to jest to, co możesz spróbować: możesz dodać fazę uruchamiania skryptu w "fazach kompilacji" iw tej fazie wywołać skrypt, który sprawdza wszystkie twoje pliki .strings. Możesz przeciągnąć fazę skryptu na inne (lub przeciągnąć pozostałe), aby wykonać wstępną kompilację skryptu trasy. to ustawiłeś XCode -> Preferencje -> Budynek -> Opcje kompilacji "Kontynuuj budowanie po błędach", wtedy kompilacja zatrzymuje się, jeśli skrypt się nie powiedzie. – lucianoenrico

Powiązane problemy