Tôi đang làm việc trên một ứng dụng có hỗ trợ đa ngôn ngữ. Như bạn có thể mong đợi, bất cứ lúc nào tôi tải một số file ngòi sử dụng một mã như thế này:Tải thủ công một ngòi bản địa hóa khác trong iOs
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:nil];
Ứng dụng sau đó sẽ được tải cục bộ phiên bản xib tương ứng từ thư mục Languange của nó. Bây giờ, tôi tự hỏi nếu nó có thể tải các tập tin nib bản địa bằng tay. Ví dụ, thay vì chỉ đơn giản là tải CustomController, tải/, vv phiên bản tiếng Anh /Pháp/Đức của CustomController.
Có cách nào tôi có thể đạt được điều này không?
Cảm ơn sự giúp đỡ của bạn trước!
P.S. Tôi biết điều này có thể không phải là cách thích hợp để thay đổi ngôn ngữ trong một ứng dụng iphone/ipad, nhưng đây không phải là quyết định của tôi
[sau sửa] này trông hơi kỳ lạ và giống như một hack, nhưng nó có vẻ làm việc (tải nib Đức):
NSString* path= [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:languageBundle];
tôi thấy mũi ở đây: http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html
Nó không cảm thấy hoàn toàn đúng mặc dù, tôi tự hỏi nếu có những giải pháp khác nữa. Để bắt đầu, tôi có cảm giác điều này sẽ gây ra sự cố với phiên bản cũ của iO, vì thư mục ngôn ngữ có quy ước đặt tên khác nhau
Kiểm tra xem điều này có thể giúp bạn: http://stackoverflow.com/questions/598020/objective-c-cocoa-internationalization-with-nibs-is-that-really-a-good-idea – Peres
Có, nhưng không phải trong trường hợp này. Tôi có một số ý tưởng về cách để đạt được một hiệu ứng như vậy mà không cần sử dụng ngòi cục bộ. Thật không may, các ứng dụng sử dụng chúng ngay bây giờ và ý tưởng là để làm điều này càng sớm càng tốt, mà không cần phải làm nhiều viết lại/xem xét lại các ứng dụng. Nếu tôi có thể tự tải các xib bản địa hóa, nó sẽ thực sự dễ dàng để chuyển đổi nó – BBog
Nhưng chúng ta đang nói về làm nó trên chạy?Ví dụ tôi có ngòi cho tiếng Anh Anh, và sau đó tôi đi đến các thiết lập và chuyển đổi ngôn ngữ để frensh và nó sẽ chỉ thay đổi ?? – Peres