iOS 对未适配语言设置默认语言

本文介绍了如何在iOS应用中处理未适配的语言设置,通过创建一个工具类myTools,当用户的首选语言不是英语、中文或韩语时,自动回退到英语作为默认显示语言。该工具类利用NSBundle加载'en.lproj'资源文件来实现这一功能。

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

1:建立一个工具类

 myTools

在.h中声明类方法

#define CURR_LANG  ([[NSLocale preferredLanguages] objectAtIndex:0])


@interface myTools :NSObject


+ (NSString *)DPLocalizedString:(NSString *)translation_key;


在.m中实现方法

+ (NSString *)DPLocalizedString:(NSString *)translation_key {

    NSString * s = NSLocalizedString(translation_key, nil);

    

    if (![CURR_LANGhasPrefix:@"en"] && ![CURR_LANGhasPrefix:@"zh"] && ![CURR_LANGhasPrefix:@"ko"]) {

        NSString * path = [[NSBundlemainBundle] pathForResource:@"en"ofType:@"lproj"];

        NSBundle * languageBundle = [NSBundlebundleWithPath:path];

        s = [languageBundle localizedStringForKey:translation_keyvalue:@""table:nil];

    }

    return s;

}

这里我适配了中英韩三种语言。所以判断如果首选语言不是其中之一的话设置为英语

在PCH文件中 导入工具类并且宏定义方法

#import "myTools.h"



#define MyLocalizedString(str,nil) [myTools DPLocalizedString:str]


接下来只要在国际化时候把系统的NSLocalizedString改成MyLocalizedString就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值