最近在做Apple 登录,使用苹果自带的组件创建的按钮是是英文的
image.pngSign in with Apple
,如下图所示
现在需要把英文变成中文显示,做法如下
步骤一:添加支持的语言----简体中文
image.png步骤二:项目根目录下创建以strings
结尾的文件,命名为Localizable.strings
,注意一定不要自定义该名字,命名成Localizable.strings
即可,否则后续步骤中的映射关系不生效。
image.png
image.png
步骤三:本地化操作(添加简体中文和英文)
image.png image.pngimage.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];
- 默认情况下,标签的名字如下图所示为
coderZb
image.png
步骤七:将步骤六的代码修改对text的赋值方式,重新运行,发现实现了映射关系
将item.text =@"coderZb";
修改成item.text = NSLocalizedString(@"coderZb",nil);
最后我们打开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
网友评论