2012-04-16 39 views
26

Tôi đang cố gắng bao gồm việc quốc tế hóa đơn đăng ký của mình và chỉ cho mục đích thử nghiệm mà tôi đã thêm một dòng đơn giản trong tệp Localizable.string.Localizable.strings bị hỏng?

Đây là toàn bộ tập tin của tôi:

"Test locale" = "Test locale"

Và khi tôi cố gắng chạy ứng dụng của tôi, tôi nhận được lỗi này:

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

Tôi đã thử thay đổi "Text Encoding" sang UTF-16 nhưng không có gì giải quyết.

Bất kỳ sự biếng nhác nào?

Xin cảm ơn trước.

+0

đây là một thư viện có thể giúp bạn để bản địa hoá dự án https://github.com/dipkasyap/DGLocalization – dip

Trả lời

56

Nếu đây là toàn bộ tệp của bạn, hãy thêm dấu chấm phẩy ở cuối. Thay đổi nó thành:

"Test locale" = "Test locale";

+1

Ôi Chúa ơi, làm thế nào tôi đã ngu ngốc, rất đơn giản. Cảm ơn bạn. –

+0

OMG..i không bao giờ mong đợi rằng tôi sẽ làm loại sai lầm này .. –

+0

Học iOS lần đầu tiên với cách nhanh chóng truy cập từ Android, đây thực sự là một sai lầm thực sự gây phiền nhiễu ... – Warpzit

3

Trong trường hợp của tôi, nó là như thế này:

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

(Chú ý '=;' thay vì '=' ở cuối dòng đầu tiên)

Hy vọng nó sẽ giúp ai đó ...

+0

Xảy ra rất nhiều khi bạn sao chép/dán mà không kiểm tra. .. –

1

Trong trường hợp của tôi, đó là dấu ngoặc trong chuỗi - tôi cần thêm dấu gạch chéo e \ ".

37

Để có được thông tin chi tiết hơn bạn có thể sử dụng tiện ích Danh sách tài sản từ dòng lệnh:

plutil -lint <your_strings_file>.strings 

sự Công tắc -lint là để kiểm tra cú pháp. Nếu bạn gặp lỗi, bạn sẽ nhận được số dòng và thông tin thêm, và nói chung là hướng dẫn tốt hơn về cách khắc phục vấn đề.

+1

Cảm ơn, chính xác những gì tôi cần. Cách quá lớn của một tập tin để kiểm tra bằng tay. –

+0

Có cách nào để tích hợp lệnh này vào bản dựng Xcode không? –

+0

Không bao giờ thử, nhưng đây là những gì bạn có thể thử: bạn có thể thêm giai đoạn chạy tập lệnh trong "giai đoạn xây dựng" và, trong giai đoạn này, hãy gọi một tập lệnh kiểm tra tất cả các tệp .strings của bạn. Bạn có thể kéo giai đoạn tập lệnh trên đầu trang của những người khác (hoặc kéo những người khác xuống) để thực thi việc xây dựng lại kịch bản lệnh du lịch. nó bạn đặt XCode -> Preferences -> Building -> Build options "Tiếp tục xây dựng sau khi lỗi" sau đó xây dựng dừng lại nếu kịch bản thất bại. – lucianoenrico