(Có những câu hỏi tương tự. Một số câu trả lời là tôi đã cố gắng và thấy không hoạt động. Những người khác không có câu trả lời, tôi giả định vì các querents không cung cấp càng nhiều chi tiết càng tốt.)Bảng phân cảnh + nội dung bản địa hóa + tệp .strings không bản địa hóa tại thời gian chạy
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:
- Added một địa hóa cơ sở, trong đó chuyển
MainStoryboard.storyboard
en.lproj
-Base.lproj
. - Đã thêm bản địa hóa tiếng Pháp, được sao chép
InfoPlist.strings
(tiếng Anh) vàMainStoryboard.storyboard
(Base) vàofr.lproj
. - Đã thay đổi một vài chuỗi (tiêu đề của phân đoạn trong một
UISegmentedControl
) trong tiếng PhápMainStoryboard.storyboard
. - 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 làm bản địa hóa tiếng Pháp bằng cách sử dụ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ơ sở
MainStoryboard.storyboard
trong dự án Xcode 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 đã chấp nhận rằng bảng phân cảnh tiếng 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, bởi vì tất cả chúng đều được nhận xét là
IBUISegmentedControl...segmentTitles
; 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.
Điều này không thỏa đáng. Tôi đã thử xóa ứng dụng khỏi trình mô phỏng và thậm chí xóa thư mục dữ liệu có nguồn gốc. Lỗi vẫn tồn tại.
Như tôi đã nói, tôi không thể chuyển tệp .storyboard
sang phiên dịch không 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
?
Chuyển đổi các kịch bản để tự động Giao diện có không có hiệu lực. – user698970
Câu trả lời cho một câu hỏi tương tự khác được đề xuất chạy ibtool trên bảng cốt truyện cơ bản và sử dụng nó như là khởi động cho tệp .strings thay vì một Trình tạo giao diện được cung cấp. Hai tệp giống hệt nhau. – user698970
Đây là một biến khác: Bảng phân cảnh có rất nhiều cảnh không thể truy cập: Chúng không phải là bộ điều khiển ban đầu và chúng không có bất kỳ sự phân biệt nào dẫn đến chúng. (Không phải của tôi, tôi sẽ phải nói chuyện với nhà phát triển nghĩ rằng đây là một ý tưởng tốt.) Có thể can thiệp vào nội địa hóa .strings không? – user698970