2010-10-12 28 views
8

Tình huống: Tôi đang bắt đầu XCode, tạo một dự án mới cho iPhone (ứng dụng xem) và tải tệp XIB vào IB. Tôi thao tác chế độ xem (thêm nhãn có chuỗi "hello"), lưu, tạo, chạy ứng dụng, mọi thứ đều ổn. Bây giờ tôi đang bản địa hóa XIB. Những gì tôi làm: nhấp chuột phải vào tệp xib, thêm ngôn ngữ mong muốn và sau đó, tôi có hai tệp XIB trong XCode của tôi. Trông thật hoàn hảo, giống như nó được hiển thị trong cuốn sách Lập trình iPhone của tôi ("trang trại mọt sách lớn"). Tôi thay đổi nhãn trong cả hai XIB thành chuỗi khác, cho phép nói "chào buổi sáng!".Tại sao tệp XIB của tôi không bản địa hóa (iPhone)?

Sự cố: Bây giờ tôi làm sạch và xây dựng lại ứng dụng - nhưng nó cho thấy tệp XIB cũ, allways chuỗi "hello". Ngay cả khi tôi thay đổi các cài đặt trên iphone sang các ngôn ngữ khác, tôi cũng có được chuỗi "hello" được hiển thị. Nhưng XIB với "hello" không tồn tại trong xcode của tôi ở bất cứ đâu!

Bất kỳ gợi ý nào cho tôi? Nó làm tôi phát điên - và tôi chỉ hy vọng rằng tôi đang thiếu một điều đơn giản.

Tôi đang sử dụng XCode 3.2.3 và SDK 4.0

Cảm ơn rất nhiều trước!

Trả lời

7

Có aa vài bước để làm theo, bao gồm:

  • ibtool --generate-dây-file Example.strings en.lpoj/Example.xib
  • genstrings -o en.lproj * .m
  • dịch tập tin nguồn
  • ibtool --strings-file fr.lproj/Example.strings en.lproj/Example.xib -Viết fr.lproj/Example.xib
  • kéo các tập tin tài nguyên dịch sang dự án (trong th e địa điểm chính xác).

Hãy xem iPhone localization tutorial này để biết đầy đủ các bước + ảnh chụp màn hình.

+0

Cảm ơn sự giúp đỡ của bạn. Thật không may nó đã không giải quyết được vấn đề. Nhưng: nó đã giúp tôi, xác định vấn đề còn tốt hơn nữa. Ngay cả khi tôi xóa tệp XIB trong ví dụ trên (sử dụng xcode hoặc dòng lệnh cũ tốt) - tệp XIB vẫn được hiển thị trên trình mô phỏng. Vì vậy, câu hỏi là: Làm thế nào để thoát khỏi XIB? Tôi đã mong đợi một lỗi trong thời gian biên dịch hoặc trong thời gian thực hiện - nhưng không có gì. Vẫn hiển thị XIB cũ? Nhưng tại sao? Bất kỳ gợi ý nào cho tôi? – peace97

+3

Ok - sau khi suy nghĩ trong 2-5 phút, điểm là như sau: khi không * xóa ứng dụng * trên iPhone-Simulator, Trình mô phỏng dường như chứa tệp XIB. Sau khi xóa ứng dụng, tôi nhận được lỗi thời gian chạy dự kiến ​​ – peace97

+4

Ok - đó là: tôi đã bỏ lỡ xóa ứng dụng trên trình giả lập iPhone. Sau khi bản địa hoá ứng dụng, tôi phải xóa nó trên iPhone giả lập, hơn là tạo một bản dựng sạch sẽ và mọi thứ đều ổn. – peace97

6

Trình mô phỏng iPhone và thiết bị chứa bộ nhớ cache của NIB. nó rất dễ dàng để xóa trên trình mô phỏng vì nó có thể bị xóa, nhưng tôi đang cố gắng tìm ra cách xóa bộ nhớ cache đó trên thiết bị mà không phải xóa ứng dụng.

+0

Bạn không thể làm điều đó, nhưng trong khi ứng dụng của bạn xây dựng lại, bạn có thời gian để xóa ứng dụng khỏi thiết bị/trình mô phỏng. Ít nhất, nó làm việc cho tôi, bởi vì ứng dụng đủ lớn ... – 18446744073709551615

0

Trong trường hợp của tôi, tôi phải khởi động lại xcode ngoài việc xóa ứng dụng trên trình mô phỏng để làm cho ứng dụng hoạt động.

2

Hãy thử điều này:

  1. Kiểm tra xem bạn đã thêm Localitations tham số để "Thông tin" tab của file dự án của bạn
  2. Window - Lịch tổ chức - Chọn dự án của bạn - Xóa dữ liệu thu được
  3. dự án sạch
  4. Xóa ứng dụng khỏi thiết bị của bạn
  5. Chạy lại.
0

Xcode có lỗi khi nói đến chuỗi được bản địa hóa trong tệp xib. Thay vì thay thế các chuỗi được bản địa hóa bằng các chuỗi xib thực tế, Xcode giữ các chuỗi xib ban đầu. Tất cả những gì bạn phải làm là chuyển đổi tệp chuỗi có thể bản địa hóa thành tệp bộ dựng giao diện. Bạn có thể làm điều đó trong phần Localization trong thuộc tính tệp của trình xây dựng giao diện.

Hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan