iOS 使用本地化语言

2020-07-04  本文已影响0人  CoderZb

最近在做Apple 登录,使用苹果自带的组件创建的按钮是是英文的Sign in with Apple,如下图所示

image.png

现在需要把英文变成中文显示,做法如下

步骤一:添加支持的语言----简体中文

image.png

步骤二:项目根目录下创建以strings结尾的文件,命名为Localizable.strings,注意一定不要自定义该名字,命名成Localizable.strings即可,否则后续步骤中的映射关系不生效。

image.png
image.png

步骤三:本地化操作(添加简体中文和英文)

image.png image.png
image.png

步骤四:重新运行项目

image.png

如果仅仅是想解决苹果登录的按钮是英文的问题,可以不往下看

步骤五:在添加映射关系

image.png

步骤六:创建uilabel,进行测试

UILabel *item = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
item.backgroundColor = [UIColor redColor];
item.text =@"coderZb";
item.textColor = [UIColor blackColor];
[self.view addSubview:item];

步骤七:将步骤六的代码修改对text的赋值方式,重新运行,发现实现了映射关系

item.text =@"coderZb";修改成item.text = NSLocalizedString(@"coderZb",nil);

image.png

最后我们打开NSLocalizedString这个宏,看看这个宏是什么含义


image.png
#define NSLocalizedString(key, comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \
        [bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \
        [bundle localizedStringForKey:(key) value:(val) table:(tbl)]
image.png
上一篇下一篇

猜你喜欢

热点阅读