iOS开发之多国语言国际化适配经验浅谈

12.jpg

iOS多国语言国际化由于我个人也是第一次做,所以遇到了很多问题, 在此我把我所遇到的一些问题分享给大家。 最基础的怎么进行多国语言国际化在此就不老生常谈了,有兴趣的朋友可自行百度。

1.首先我们说下翻译的格式:"你好" = "hello"; 我们可以把需要翻译的文档制作成"你好" = "";这种Word文档 每一种语言一个Word文档,这样你会发现,你做国际化的时候会快很多,不必到处找啊找的,我们这次搞得就是表格样式的,坑死人了,放翻译文档放的手都软了;

2.我们尽量把同一个VC的词语翻译成差不多长的其他语言。 大家可以想象一下如果你的一个布局里面有一排按钮,等分排练的,然后翻译的title一个好长一个非常短的,我们该这么去适配呢?而我们最简单的做法是 btn.titleLabel.adjustsFontSizeToFitWidth = YES;想象一下当时我是有多痛苦了吗?所以说,当你看到这篇文章的时候说明你很庆幸,至少下次你遇到这样的需求你可以及时的和翻译说。

3.由于某些国家的语言有很多种不同的系列,导致测试的时候会出现,这种语言缺失,其实不然,只是你在选择语言的时候少选了他的语种,就像中文一样,有简体和繁体中文。我这里最常见的有这么几种: 西班牙语(最坑爹,我选了3个才搞定) 丹麦语 俄语 葡萄牙语 意大利语

4.当初做项目的时候没管那么多,直接是只考虑了中文,然而国际版我们的项目需要减少一个tabBarItem所以通过判断是否为中文来判断的具体写法是写了个单例的类然后写的方法:

//判断是否为中文简体
- (BOOL)isSimpleChinese
{
    NSString *language = [[NSLocale preferredLanguages] firstObject];
    if ([language isEqualToString:@"zh-Hans"]) {
          return 1;
    }else{
        return 0;
    }
}

然而我们的运气貌似有点差,刚好碰上的iOS9升级,失效了,打开代码断点看看,原来是苹果IOS9增加了语言后面的地区代码,原来的zh-Hanz变成了zh-Hanz-CN 能怎么办呢?当然是改代码咯。。。。下面是改过的代码

//判断是否为中文简体
- (BOOL)isSimpleChinese
{
    NSString *language = [[NSLocale preferredLanguages] firstObject];
if ([language hasPrefix:@"zh-Hans"]) {
        return 1;
    }
    else {
        return 0;
    }
}

仔细的你是否发现了代码的不同之处啊?

5.国际化一些有图片的地方,我们需要特别注意下取名哦,比如: hello_en@2x.png(英语) 这样做的好处就是我们替换图片的时候只要判断下后缀是否是en 就可以判断当前语言所需的图片下面我截个图给大家瞧瞧

屏幕快照 2015-09-29 上午9.40.17.png

记得叫美工改好名字哦,我们用起来的时候就会方便快捷!

更多经验请点击 原文在:http://www.allluckly.cn/

如对你有帮助,请不要吝惜你的star和喜欢哦!

推荐一款学习iOS开发的app_____|______| | 传送门 暂时就发现这么多,大家有什么需要补充的也可以简信给我。 技术交流群:534926022(免费) 511040024(0.8/人付费) 版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2278
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2329
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23410
来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

2752
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1985
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1162
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1843
来自专栏DT乱“码”

简单的考勤系统

连接数据库类 package com.lianrui.it; import java.sql.Connection; import java.sql.Driv...

3469
来自专栏我和未来有约会

silverlight向服务器post数据类

using System; using System.Net; using System.Windows; using System.Windows.Co...

1955
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5435

扫码关注云+社区