美文网首页
iOS 使用本地化语言

iOS 使用本地化语言

作者: CoderZb | 来源:发表于2020-07-04 11:54 被阅读0次

最近在做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];
  • 默认情况下,标签的名字如下图所示为coderZb
    image.png

步骤七:将步骤六的代码修改对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

相关文章

网友评论

      本文标题:iOS 使用本地化语言

      本文链接:https://www.haomeiwen.com/subject/wyfuqktx.html