Xcode 4.6, nhắm mục tiêu iOS 6, SDK iOS 6.1Nội dung bản địa hóa + Bảng phân cảnh + .strings -> không bản địa hóa
Tôi bắt đầu với bảng phân cảnh hoạt động tốt cho ứng dụng của mình; các chuỗi chứa trong tiếng Anh. Tôi muốn thêm bản địa hóa tiếng Pháp. Tôi đã làm điều này:
- Đã thêm nội dung cơ bản, được chuyển MainStoryboard.storyboard từ en.lproj sang Base.lproj.
- Đã thêm bản địa hóa tiếng Pháp, đã sao chép InfoPlist.strings (tiếng Anh) và MainStoryboard.storyboard (Base) vào fr.lproj.
- Đã thay đổi một vài chuỗi (tiêu đề phân đoạn trong một UISegmentedControl) trong MainStoryboard.storyboard Pháp.
- Trong Trình mô phỏng, hãy đặt ngôn ngữ thành tiếng Pháp.
- Chạy ứng dụng từ Xcode.
Kết quả: Tính năng này hoạt động; các chuỗi đã thay đổi của tôi xuất hiện trong ứng dụng đang chạy.
Nhưng tôi muốn được tất cả ưa thích. Tôi muốn thực hiện bản địa hóa tiếng Pháp bằng tệp .strings. (Nó không phải chỉ là vấn đề được ưa thích; địa hóa tiếng Pháp sẽ được chuyển giao cho người dịch không kỹ thuật, người không thể được dự kiến sẽ làm chủ Interface Builder.) Vì vậy:
- chọn các MainStoryboard.storyboard cơ sở trong Xcode Dự án hoa tiêu.
- Trong thanh tra Tệp, trong Bản địa hóa, đã thay đổi nội dung địa phương tiếng Pháp từ "Bảng phân cảnh cảm ứng Cocoa giao diện" thành "Chuỗi có thể định vị cục bộ".
- Cảnh báo của Xcode đã được chấp nhận rằng bảng phân cảnh của Pháp sẽ bị hủy có lợi cho tệp .strings, xuất hiện trong trình chỉnh sửa Trợ lý.
- Thực hiện hai chỉnh sửa tương tự; không có câu hỏi nào về việc chúng sai các chuỗi sai, vì tất cả chúng đều được nhận xét là phân đoạn IBUISegmentedControl ...Tiêu đề; và văn bản nhãn không xuất hiện ở bất kỳ nơi nào khác trong tệp .strings.
- Đã xóa bản sao hiện tại (đang hoạt động) của ứng dụng khỏi trình mô phỏng.
- Chạy ứng dụng.
Kết quả: Chế độ xem sử dụng bản địa gốc (tiếng Anh) gốc, thay vì tải chuỗi tiếng Pháp.
Chuyển đổi thành Tự động trả lời không có hiệu lực. Xóa ứng dụng khỏi trình giả lập không có hiệu lực. Việc xóa thư mục Các sản phẩm có nguồn gốc không có hiệu lực. Một tràn ngăn xếp được đề xuất bằng cách sử dụng ibtool để tạo tệp .strings thay vì Xcode; hai tệp được tạo giống hệt nhau.
Điều này không thỏa đáng. Như tôi đã nói, tôi không thể chuyển một tập tin .storyboard sang một dịch giả phi kỹ thuật. Làm cách nào để iOS có thể chấp nhận bản địa hóa bảng phân cảnh từ tệp .strings?
Vệ sinh thư mục xây dựng đã giải quyết được sự cố cho tôi. – Robert