日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS中代码支持多国语言切换的实现(Xcode5+iOS7)

發布時間:2024/9/30 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS中代码支持多国语言切换的实现(Xcode5+iOS7) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
時間2014-03-08 22:14:13?CSDN博客?原文??http://blog.csdn.net/gisxy/article/details/20577881

為了增加程序的用戶使用數量,那么程序的國際化是不可或缺的一步。在Xcode中要實現程序的國際化,其實非常簡單,開發者只需要簡單配置,并修改相應的字符串鍵值對即可。

? ? ? ? 應用程序的國際化主要包括三個方面:A、程序名稱國際化;B、程序內容國際化;C、程序資源國際化

? 在Xcode中新建項目后,可以在project的info選項卡中找到Localization的項目,可以添加應用程序需要支持的國際語言。


?


回到項目中可以發現在InfoPlist.strings、Main.storyboard(Main.strings)增加了相應項,而Localizable.strings文件如果已經存在的情況也會增加對應的語言版本。(默認情況,Xcode5+iOS7下Localizable文件需要新建,如下圖)


完成以上的設置和文件添加,來看應用程序國際化的ABC。

A、應用名稱國際化(InfoPlist.strings)

在InfoPList.strings的不同語言版本的文件中設置相應語言下程序的顯示名稱

英語版 /* Localized versions of Info.plist keys */CFBundleDisplayName="test"; 中文版 /* Localized versions of Info.plist keys */

CFBundleDisplayName=?"測試"?;

? ? ? ? ?這樣程序在運行時,就會根據設備當前設置的語言版本顯示對應語言的名稱。 B、內容國際化(Localizable.strings)?

同樣,應用程序里面的內容(組件顯示的名稱、提示等)可以在Localizable.strings的對應文件以鍵值對的形式配置;

英文

/*?

? Localizable.strings

??LocalizeMe

? Created by gisxy on 14-3-5.

? Copyright (c) 2014?年?esrixa. All rights reserved.

*/

"abc"?=?"cba"?;

"message"?=?"this is english"?;

"ok"?=?"ok"?;

? 中文 /* Localizable.stringsLocalizeMeCreated by gisxy on 14-3-5.Copyright (c) 2014年 esrixa. All rights reserved. */ "abc"="我是測試"; "message"="這是中文信息提示"; "ok"="確定"; 需要注意的是代碼里面:對于相應提示的代碼應該使用NSLocalizedString(@"鍵值", nil)

??UIAlertView?*alert = [[?UIAlertView?alloc?]?initWithTitle?:?NSLocalizedString?(@"abc"?,?nil?)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??message?:?NSLocalizedString?(?@"message"?,?nil)

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??delegate?:?self

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??cancelButtonTitle?:?NSLocalizedString?(?@"ok"?,?nil?)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??otherButtonTitles?:?nil?];

? ??[alert show];

C、資源國際化

? ? ? ? 在iOS7中storyboard生成的對應語言文本文件可以通過配置相應組件的顯示名稱來完成國際化

/* Class = "IBUIButton"; normalTitle = "定位"; ObjectID = "qpS-qC-Lcy"; */ "qpS-qC-Lcy.normalTitle" = "定位"; ? ? ? ? 對于使用xib文件組織布局的情況下,以上方法并不好使,個人建議是:復制xib文件改名,修改顯示的名稱,然后在代碼里面來根據語言版本來加載對應的資源,該方法同樣使用圖片等資源。
判斷當前設備語言版本: NSArray *languages = [NSLocale preferredLanguages];NSString *currentLanguage = [languages objectAtIndex:0];NSLog(@"language is %@",currentLanguage);

如不同語言的圖片資源位于不同文件夾下,然后可以根據語言版本來動態加載: _chineseImagesPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Images_Chinese/"]; _englishImagesPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Images_English/"];

總結

以上是生活随笔為你收集整理的iOS中代码支持多国语言切换的实现(Xcode5+iOS7)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。