Tôi đã mã sau đây để chuyển đổi thời gian chạy ngôn ngữ:Làm cách nào để nhận các chuỗi kịch bản được bản địa hóa sau khi chuyển sang ngôn ngữ khi chạy trong IOS?
-(void) switchToLanguage:(NSString *)lang{
self.language = lang;
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:self.language, nil]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Và tôi có một chức năng Helper để lấy dây cục bộ:
+(NSString *) getLocalizedString:(NSString *)key{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Localizable"
ofType:@"strings"
inDirectory:nil
forLocalization:appDelegate.language];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
return [dict objectForKey:key];
}
này đang làm việc. Bảng phân cảnh của tôi cũng được bản địa hóa, nhưng chúng không thay đổi khi tôi chuyển sang ngôn ngữ khác.
Làm cách nào để có được các giá trị được bản địa hóa cho các chuỗi bảng phân cảnh?
Bạn đang sử dụng cơ sở Quốc tế hóa hay cốt truyện riêng biệt cho mỗi ngôn ngữ? –
Tôi đang sử dụng Base internalization. – Burak