Engadget 新胞弟: Engadget mobile 开站啦!

不知各位朋友有没发现一件事,Engagdet 手机相关信息实在太多了!这不能怪
Engadget,毕竟这几年科技产业中竞争最激烈、简直是百家争鸣的领域就是行动通讯领域。我们几乎以”天”为周期看到新款的手机。因此,您在
Engadget 自然会看到许多和通讯相关的消息。

谢谢各位大家参与「Engadget Chinese
下一步怎么走,才会更好?」活动,大家的响应 Engadget Chinese/中文版 的
Blogger
每回都有认真看,有些建议真的一针见血,直接刺到我们的心窝里,真的很高兴,大家是这么认真的看待
Engadget Chinese/中文版网站。这篇文章中,我们会将大家的问题总结成下列
Engadget
Chinese/中文版的可以改进的地方,以及我们的响应。而下一篇文章中,我们将会公布
20 位得到「Cableyoyo
数字缆线的小管家」的读者。没得奖的朋友没关系,接下我们要马上举办新活动了,当然也是有奖品可拿啰!谢谢各位大家参与「Engadget
Chinese 下一步怎么走,才会更好?」活动,大家的响应 Engadget
Chinese/中文版 的 Blogger
每回都有认真看,有些建议真的一针见血,直接刺到我们的心窝里,真的很高兴,大家是这么认真的看待
Engadget Chinese/中文版网站。这篇文章中,我们会将大家的问题总结成下列
Engadget
Chinese/中文版的可以改进的地方,以及我们的响应。而下一篇文章中,我们将会公布
20 位得到「Cableyoyo
数字缆线的小管家」的读者。没得奖的朋友没关系,接下我们要马上举办新活动了,当然也是有奖品可拿啰!

初衷


    有的时候在项目当中会使用到本地区域化的一些内容,还有可能需要使用别的区域的一些标识、属性、或者这个标识所对应的展示的内容(NSString等等),大概的了解还是有必要的。

但你以为手机的新信息只有这些吗?才不呢!为此,Engadget
主站编辑群决定另开新站,已行动通讯为主轴的 Engadget mobile
因而隆重推出。在 Engadget mobile
中,有更多手机相关讯息和更深度的手机评测等内容,喜欢行动电话的朋友们,去
Engadget mobile 瞧瞧绝对能满足您的信息瘾头。

  • 网站定位的问题

创建

– initWithLocaleIdentifier 
              实例方式创建

+ localeWithLocaleIdentifier: 
       类方式创建

另外,Engadget Chinese/CN 也会从 Engadget mobile
中选择适合华文朋友行动通讯相关文章,译成中文于 Engadget
中文站发表。喜欢阅读中文内容的朋友,继续关注 Engadget
Chinese/CN,同样不会错过 Engadget mobile 喔!

Engadget 的定位有点类似科技产品新闻的入口网站,由 Engadget
的部落格写手每天搜索所有的科技新闻网站,再写成约100-150字简短文章,直接写出重点,并加上写手本身的观点,如读者对这则新闻有更多的兴趣,应进入引用文章作进一步的阅读。这即是
Engadget 的定位所在,帮读者读完所有的科技新闻,并重新整理过滤。

获取

+
autoupdatingCurrentLocale 
     系统当前的本地区域化实例(随着用户改变设置改变)

+ currentLocale 
                           
当前的本地区域化实例(不会跟随用户改变设置而改变)

+ systemLocale 
                            手机默认的本地区域化实例

  • 编码问题

创建实例

   
在例子当中我们用到了相关的区域化的标识,转载可以到这里面NSLocale中常用的语言代码对照表查看一些相关的标识。

除了 Engadget
Chinese,还有推出简体版本,各位可按自己阅读文体的习惯,选择适合自己的
Engadget。但另一方面就牵涉到编码问题,目前除了海外网站,所有
Weblogs,inc网站都已经移转至新系统,待两边中文版移至新系统后,都会改为
UTF-8 编码。

例子1:创建 zh_Hans_CN NSLocale实例

NSLocale *CNLocale = [[NSLocale alloc]
initWithLocaleIdentifier:@”zh_Hans_CN”];

NSLog(@”%@”,CNLocale.localeIdentifier);

NSLog(@”%@”,[CNLocale displayNameForKey:NSLocaleIdentifier
value:@”zh_Hans_CN”]);

NSLog(@”%@”,[CNLocale displayNameForKey:NSLocaleIdentifier
value:@”en_US”]);

    打印出来的内容:

2018-01-15 19:48:37.960430+0800 ZsNSLocale[21114:1956348] zh_CN

2018-01-15 19:48:37.960767+0800 ZsNSLocale[21114:1956348]
中文(简体,中国)

2018-01-15 19:48:37.960905+0800 ZsNSLocale[21114:1956348]
英文(美国)

    从上述的内容来看,创建一个中国的区域化实例。只要调用这个CNLocale获取到的数据都是CN(中国
简体)下展示的数据。

  • 更所在地的科技产业新闻

例子2:创建一个en_US的NSLocale的实例

NSLocale *ENLocale = [NSLocale
localeWithLocaleIdentifier:@”en_US”];

NSLog(@”%@”,ENLocale.localeIdentifier);

NSLog(@”%@”,[ENLocale displayNameForKey:NSLocaleIdentifier
value:@”zh_Hans_CN”]);

NSLog(@”%@”,[ENLocale displayNameForKey:NSLocaleIdentifier
value:@”en_US”]);

    打印的内容:

2018-01-15 21:59:29.814283+0800 ZsNSLocale[799:42893] en_US

2018-01-15 21:59:29.820161+0800 ZsNSLocale[799:42893] Chinese
(Simplified, China)

2018-01-15 21:59:29.821923+0800 ZsNSLocale[799:42893] English
(United States)

    上述打印结果可以看到,在en_US实例下打印出来的都是以en_US的区域化展示结果(美国
英文)

    上述结果都是以 – initWithLocaleIdentifier 的形式创建,还可以用另一种类方法去创建,结果都是一样的,就简单的创建一个实例

NSLocale *TestLocale = [NSLocale
localeWithLocaleIdentifier:@”en_US”];

目前 Engadget Chinese/中文版以翻译:所在地文章以 7:3
的方式分配。未来的作法是,翻译文章量不变,待 Engadget
Chinese/中文版人力更充足时,增加更多的所在地文章,以及访问所在地科技厂商文章。

结论

    区域化实例,其中所有的展示、显示数据都是这个实例区域中的展示数据。

  • 版面设计不适合华人胃口

获取实例

使版面清爽,接近华人的阅读习惯真是一针见血的好建议,不过由于整个后台系统皆建置于美国,不是即日就能修正,然而将
Engadget Chinese
版面修整的清爽干净,适合华人阅读,将是我们今年的重大目标之一。

获取手机默认的本地区域化实例

    当我们刚买到一个iphone的时候,会显示你好,然后让你设置你的语言、地区什么,但是为什么国行的手机是你好,而国外的手机是hello呐!

图片 1

新手机开机启动图

    在你手机还没有使用的时候,会有一个默认的本地区域化实例

[NSLocale systemLocale];

NSLog(@”%@”,[[NSLocale systemLocale]localeIdentifier]);

NSLog(@”%@”,[[NSLocale systemLocale]languageCode]);

NSLog(@”%@”,[[NSLocale systemLocale]
displayNameForKey:NSLocaleIdentifier value:@”zh_Hans_CN”]);

    打印内容:

2018-01-15 22:37:00.348944+0800 ZsNSLocale[1124:168306]

2018-01-15 22:37:00.349130+0800 ZsNSLocale[1124:168306] (null)

2018-01-15 22:37:00.349462+0800 ZsNSLocale[1124:168306] Chinese
(Simplified, China)

   
打印结果显示的内容是,初始本地化实例的标识码为空,而languageCode的值为null,其他属性都为null,但是用这个实例去获取标识所对应的展示值时,拿到了Chinese
(Simplified,
China)这个内容表示当前的设备是在一个英文区域之下,经测试国行的会生成简体
中国,
而外国的会生成本国的本地区域化实例,应该都是写死的(如果错误请指正)。

  • Email验证方式不方便响应文章

结论

    系统的初始状态的本地区域化实例存在,但是标识为空,其属性为null,当用这个实例,去获取标识所对应的展示值时,是跟你手机设备是哪个区域发行地有关。国行:简体中文,中国,
 外国:主体语言,发行地国家。

使用 email 作为验证方式也是整个 weblogs, inc
平台的规则作法,我们会给予反应,但如果不是整个系统平台更正的话,短时间应该不会改变。

获取当前的本地区域化实例

    获取设备当前的本地区域化实例

NSLocale *CurrenLocale = [NSLocale currentLocale];

NSLocale *CurrenLocale = [NSLocale currentLocale];

NSLog(@”%@”,[CurrenLocale localeIdentifier]);

NSLog(@”%@”,[CurrenLocale displayNameForKey:NSLocaleIdentifier
value:@”zh_Hans_CN”]);

NSLog(@”%@”,[CurrenLocale displayNameForKey:NSLocaleIdentifier
value:@”en_CN”]);

    打印内容:

2018-01-16 00:28:31.323844+0800 ZsNSLocale[1860:937393] en_CN

2018-01-16 00:28:31.324212+0800 ZsNSLocale[1860:937393] en

2018-01-16 00:28:31.324387+0800 ZsNSLocale[1860:937393]
中文(简体,中国)

2018-01-16 00:28:31.324425+0800 ZsNSLocale[1860:937393] 英文(中国)

  • 文章过于简短

结论

    当App中用
+ currentLocale方法拿到的本地区域化实例,当用户修改手机设置的语言地区App中的实例也不会改变,如果需要改变的话需要监听NSCurrentLocaleDidChangeNotification。

应用场景:App只拿一次语言时调用+ currentLocale不会跟着改变,要想跟着改变的话需要监听NSCurrentLocaleDidChangeNotification。

[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(CurrentLocaleDidChange:)
name:NSCurrentLocaleDidChangeNotification object:nil];

对于 Engadget 文章过于简短的问题,可由 Engadget
的定位找到答案。不过我们也从善如流,尽力增加产品评测和专栏文章,以增加整个网站的深度。

获取系统的本地化实例

[NSLocale autoupdatingCurrentLocale];

NSLog(@”%@”,[[NSLocale autoupdatingCurrentLocale]
localeIdentifier])

  • 每周电子报,列文章标题

结论

    当App中用 + autoupdatingCurrentLocale 
的方法获取到本地区域化实例。当用户修改系统语言地区时,App中获取到的实例也会跟着改变。

    应用场景:1.App中本地区域化实例必须根据系统的变化而变化就使用 + autoupdatingCurrentLocale
方法;2.App国际化时间时会用到当前实例;3.国际化货币等等;

由于Weblogs,inc 并没有会员系统,加上本有提供 RSS
feed,因此从未考虑过每周电子报的作法。不过这点倒是提醒了我们,并不是每个读者都习惯使用
RSS 阅读器订阅 Engadget。未来我们会思考邀请订阅电子报的作法,非常感激。

属性

  • 增加文章的深度和专栏文章

    Objective-C

    availableLocaleIdentifiers 
    iPhone中所有本地区域化的编码

    ISOCountryCodes 
                 iPhone中所有的国家地区的编码

    ISOLanguageCodes
               iPhone中所有的语言的编码

 
  ISOCurrencyCodes
                iPhone中所有的货币列表

 
  commonISOCurrencyCodes 
 iPhone中常见的货币列表

我们会持续增加深度文章的数量,如 switched on
这样的专栏文章我们也会持续加入。

参考:

   Apple官方文档

 
 NSLocale中常用的语言代码对照表

相关文章