iOS开发:国际化没有处理的国家地区,解决默认显示的问题

        在处理App国际化的时候,不可能照顾到全球所有的地区,一般都是根据业务需求来选择国家和地区处理国际化的。做过国际化的同仁都知道,根据实际需求处理国际化,但是没有业务需求的国家怎么处理,这是也要考虑的,但是一般都觉得如果没有处理的国家会默认英语或者什么语言,其实不是的,如果没有设置的国家和地区,然后你又没有做默认的处理,就会出现意想不到的情况,那么下面就来讲一下,没有处理的国际化,怎么设置默认语言。

之前的写过两篇关于国际化处理的文章,1、通过json格式来批量处理国际化内容,2App国际化配置过程,但是没有说明默认情况的处理,在这里做一个补充,这样做国际化的时候就万无一失了。

再简单提一下App国际化处理的步骤过程,首先要在项目中添加文件名字必须要命名为首字母大写的“InfoPlist”,然后单击选中新建的这个文件,点击Localize之后,会弹出一个提示对话框,展开对话框列表,发现下拉列表所展示的所有语言就是我们需要国际化的语言,选择需要本地化的语言,然后点击对话框的Localize按钮,然后依次把需要的语言都按照这种方法选中添加即可。以上就是大概设置国际化的主要步骤,但是怎么处理没有设置的地区的默认显示语言呢,操作非常简单,具体如下所示。

情况一、单一简单的国际化处理的情况:

如果只有一个单词需要处理,那么完全可以在Localize.strings里面给对应的键值对做处理,比如:"Store" = "Store”;


键值对设置的单词一样,这样就算你没有设置默认值,默认的就是英文,比如简体中文不在你设置的国际化范围内,那么你在手机语言是简体中文的时候下载App,那么打开App之后,显示的那个单词就是英文的。这种操作只是针对简单的单个词汇的国际化处理,前提是对应的键值名称都要保持一致才行。

情况二、通过json格式来批量处理国际化内容的情况:

通过json格式来批量处理国际化内容,这种情况也不复杂,只要就是需要在使用的地方做一个判断处理,手动设置一个默认情况显示的情况,举个例子:

 NSString *cart = NSLocalizedString(@"storeAreaArr", nil);

    if ([cart isEqualToString:@"storeAreaArr"]) {

扫描二维码关注公众号,回复: 1475028 查看本文章

        cellTitles = @[@"United States",@"Canada",@"Mexico",@"China",@"Japan",@"South Korea",@"United Kingdom",@"European Union",@"Singapore",@"Malaysia",@"Australia",@"Taiwan",@"Hongkong",@"Macao"];

    }else {

        NSData *data = [cart dataUsingEncoding:NSUTF8StringEncoding];

        cellTitles = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

    }



根据键值对,键的名字"storeAreaArr”来判断处理设置默认情况。



    以上就是本节内容,欢迎关注三掌柜的微信公众号,有更多精彩等你来!


猜你喜欢

转载自blog.csdn.net/CC1991_/article/details/80568274