Tôi nghĩ bản địa hoá xibs trực tiếp không phải là một lựa chọn tốt. Tôi đang sử dụng https://github.com/steipete/Aspects để móc phương thức awakeFromNib của UILabel và bản địa hóa văn bản ở đó. Ví dụ:
#define Localized(_v_) NSLocalizedString(_v_, nil)
NSError *err = nil;
[UILabel aspect_hookSelector:@selector(awakeFromNib)
withOptions:AspectPositionAfter
usingBlock:^(id<AspectInfo> aspectInfo) {
UILabel *label = aspectInfo.instance;
NSString *lStr = Localized(label.text);
if (lStr) {
label.text = lStr;
}
} error:&err];
Nếu bạn có UIButton và các UIView khác để xử lý, bạn có thể chỉ cần đánh thứcFromNib của UIView và bản địa hóa từng loại chế độ xem.
Bạn có thể tham khảo bản dịch trong tệp .strings từ xib hay bạn cần đặt giá trị nhãn (v.v.) bằng mã nếu bạn chỉ muốn một xib thay vì xib cho mỗi ngôn ngữ? – jrturton
Câu hỏi hay @jrturton, và tôi không chắc chắn về câu trả lời cho nó. Để tham khảo .strings từ bên trong một xib chính nó? Tôi nghi ngờ nó có thể được thông qua KVC, nhưng tôi chưa bao giờ thử. –
xem hướng dẫn này: http: //www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial –