iOS 国际化 没有国际化的语言显示默认语言

本文介绍了一种针对不同地区语言(如简体中文、繁体中文、英语等)的应用处理方法,特别是如何通过代码实现语言切换及当目标语言未被支持时默认使用英语的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们公司只做了简体,繁体,英文国际化 需求是如果没有国际化的语言默认显示英语。

#define CURR_LANG ([[NSLocale preferredLanguages] objectAtIndex:0])
NSString *localizedString = NSLocalizedString(translation_key, nil);
NSString *localeStr = CURR_LANG;
NSString *lauguageString;
// 切割字符串因为大陆版,港版,美版 所标示的字符串不通,比如行货切换为简体中文为:zh-Hant ,美版为zh-Hant-US所以的切割判断。
NSArray *lauguageArr = [localeStr componentsSeparatedByString:@”-“];
if (lauguageArr.count > 1) {
NSString *lauStr = [lauguageArr[0] stringByAppendingString:@”-“];
lauguageString = [lauStr stringByAppendingString:lauguageArr[1]];
} else {
lauguageString = localeStr;
}
// 由于繁体分为台湾繁体,香港繁体,繁体中文,所以要各自判断。
if (![lauguageString isEqualToString:@”en”] && ![lauguageString isEqualToString:@”zh-Hant”] && ![lauguageString isEqualToString:@”zh-Hans”] && ![lauguageString isEqualToString:@”zh-HK”] && ![lauguageString isEqualToString:@”zh-TW”]) {
NSString *path = [[NSBundle mainBundle] pathForResource:@”en” ofType:@”lproj”];
NSBundle *languageBundle = [NSBundle bundleWithPath:path];
localizedString= [languageBundle localizedStringForKey:translation_key value:@”” table:nil];

有不对的地方,请大神指教,刚做这个需求,可能有写地方还不完善,请大家见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值