china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网

公眾號
關注微信公眾號
移動端
創頭條企服版APP

關于代碼的干貨 | APP中加入語言設置并不簡單

5686
蝸牛睡眠 2016-04-22 11:00 搶發第一評

? ??正當公司遠赴拉斯維加斯去參加CES展會的前夕,我們的產品總監屁顛屁顛地跑過來對我說:“這兩天幫我多做一個功能吧, 用戶可以設置各國各種語言的, 還要帶藍牙綁定功能的,用我們的手機app去控制我們的硬件設備,畢竟咱們也要去參加international的會展了,要做的高端大氣上檔次一點” ?我當時聽完后是一臉懵逼, 然后說:“好。接著就開始加班加點的趕工了。

?

??? 因為之前并沒有做過可以設置多國語言的這個功能的經驗, 所以我第一個想到的方法是新建一個.plist文件, 在文件中存儲各國所需的語言文本,并且編號。然而這個方案并不能實現在桌面改變app的名稱,使名稱也國際化。好在網上能搜到很多關于國際化設置語言的博客和教程,感謝網絡上各種開發工程師大牛的無私奉獻,接下來我的國際語言設置功能才一步步地完善。

?

??? 第一步,我們需要新建一個.strings文件,在Xcode6之前,每個工程都會自帶一個Infoplist.strings文件,Xcode6開始以后,就需要我們手動去建了。在菜單欄打開File>New>File,選擇Recource中的Strings File,點擊Next. 此時這個文件名字可以自己取,我命名為LanguageSet.strings. 這個文件是用來設置app內部的文字的。然后再用同樣的方法新建一個InfoPlist.strings文件,這個名字是固定的,不能自己隨便定義。這個文件將會用來設置app在桌面上顯示的名字。

?

??? 第二步,點擊工程,進入到PROJECT,然后在InfoLocalizations欄點擊加號,添加想要的國家語種,比如我添加了English,那么現在我有了基本語言Chinese,和一個添加的語言English。然后回到我們的InfoPlist.strings文件,這個時候發現,在它的左邊多了個小箭頭,點擊一下,展開后會有它的子文件,分別是InfoPlist.strings(Base)(即我們的基本語言Chinese)InfoPlist.strings(English)。接著在InfoPlist.strings(Base)中,添加 CFBundleDisplayName =?你要的app中文名;在InfoPlist.strings(English)中添加CFBundleDisplayName =?“English name for your app”;這些字段都添加完后,我們發現現在我們切換手機的系統語言后,app的名稱也會自動變為我們想要的語種。那么為什么是CFBundleDisplayName而不是別的字段呢?如果你在Info.plist點擊鼠標右鍵,選擇Show Raw Keys/Values,然后所有的Key值都變成了它底層顯示的Key值了。

?

??? 第三步,現在我們開始設置app內部的國際化語言了。第二步中設置app國際化名稱原理相同,也是一個key對應一個value的格式。在我們的LanguageSet.strings的文件左側,單機箭頭打開它的字文件,在LanguageSet.strings(Base)中添加?“text” =?“你好,蝸牛睡眠”;?LanguageSet.strings(English)中添加?“text” =?“hello snail sleep”;其中”text”是我們所取的key = 號后面對應的文字,就是我們在app中展示出來的文字。那么該如何去使用這個keyvalue呢?我們可以先在viewController中添加一個UILabel對象,命名就為label吧,設置好這個label的大小及位置參數后,我們再設置這個label的文字。一般我們會是這樣設置 label.text = @“測試文字”;那么控制器上就會展示出測試文字這四個字,接著我們把 label 的文字設置為 label.text =? NSLocalizedString(<#key#>, <#comment#>);參數key填我們之前的@“text”(前面需要加@),參數comment可以為nil,這樣如果系統為中文環境那么就會展示“你好,蝸牛睡眠”,如果改為英文環境就會顯示”hello snail sleep”。到此為止,我們的app國際化語言功能基本就完成了。然而我還是太天真了……

?

??? 在以上都做完之后,產品總監又屁顛屁顛地跑過來對我說:“怎么在英文環境下不能設置成中文呀?我需要在英文環境下也能設置中文,快,再改改(微笑臉)。”聽完后,我又是一臉懵逼,然后也就是我們接下來的第四步了……

?

??? 第四步,如何在英文環境下也能把展示的文字變成我們中文設置的那些keyvalue呢?其實也不難,我們剛剛是使用 NSLocalizedString方法來獲取文字的。接下來,我們先創建一個 NSBundle 對象,命名為bundle。然后我們每次設置語言的時候,先把bundle的地址改換掉,bundle = [NSBundle bundleWithPath:path]; 變量path就是我們國際化語言包的地址,比如 path = [[NSBundle mainBundle] pathForResource:@“en” ofType:@“lproj”];這樣就獲得了英文的語言包地址,然后我們的label.text = [bundle localizedStringForKey:@“text” value:nil table:@“LanguageSet”];這樣即使在中文語言環境,也會從我們的英文語言包地址去獲取keyvalue,所以會展示出英文。注意table后面的參數,一定要和我們的LanguageSet.strings文件名對應,否則將無法獲取。

?

文末我要提一下,其實可以建一個語言管理類專門去管理語言設置,當然怎么去寫這個語言管理類,各人有各人的洗好,我也就不贅述了。此外,我在GitHub上放了語言設置的開源Demo,里面的代碼都是參考網絡上各種大神的文獻后去寫的,可惜我沒有一一記錄那些文獻的地址,非常感謝也非常抱歉。

Github:https://github.com/WayHouse/international-language-localsetting.


聲明:該文章版權歸原作者所有,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與本網聯系。
您閱讀這篇文章花了0
轉發這篇文章只需要1秒鐘
喜歡這篇 0
評論一下 0
凱派爾知識產權全新業務全面上線
相關文章
評論
試試以這些內容開始評論吧
登錄后發表評論
凱派爾知識產權全新業務全面上線
寧波城市站
金華城市站
×
#熱門搜索#
精選雙創服務
歷史搜索 清空

Tel:18514777506

關注微信公眾號

創頭條企服版APP

china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网
国产乱理伦片在线观看夜一区| 欧美一区二区视频在线观看| 欧美日韩一区二区在线观看| 久久久综合视频| 亚洲成人激情自拍| 91偷拍与自偷拍精品| 精品国产一区二区三区不卡| 欧美日韩夫妻久久| 最新热久久免费视频| 国产一区二区主播在线| 欧美精品高清视频| 一区二区三区在线观看网站| 国产91精品欧美| 精品免费日韩av| 日本在线不卡视频一二三区| 欧美性猛交xxxx黑人交| 亚洲欧美偷拍另类a∨色屁股| 国产成人超碰人人澡人人澡| 精品国产精品网麻豆系列| 日本欧美加勒比视频| 欧美色成人综合| 亚洲最新视频在线播放| 91免费版在线看| 国产精品高潮久久久久无| 国产成人精品免费看| 久久午夜免费电影| 国产在线一区二区综合免费视频| 日韩欧美国产一区在线观看| 婷婷激情综合网| 视频一区二区三区入口| 欧美色图激情小说| 亚洲国产精品一区二区尤物区| 色婷婷亚洲精品| 亚洲色图色小说| 91网页版在线| 一区二区三区在线免费播放| 91黄色小视频| 亚洲午夜精品网| 欧美唯美清纯偷拍| 亚洲无线码一区二区三区| 在线亚洲免费视频| 亚洲综合久久久| 欧美色精品在线视频| 亚洲国产中文字幕在线视频综合| 欧美午夜在线观看| 午夜精品久久久久影视| 91麻豆精品国产91久久久久久久久 | 亚洲不卡一区二区三区| 在线看日本不卡| 亚洲专区一二三| 欧美精品在线视频| 美脚の诱脚舐め脚责91| 精品国产乱码久久| 国产成人丝袜美腿| 国产精品久久久久久久久快鸭 | 国产成人啪免费观看软件| 国产三区在线成人av| 成人黄色网址在线观看| 亚洲男女毛片无遮挡| 欧美写真视频网站| 日韩在线一区二区| 欧美mv日韩mv国产网站| 国产成人高清在线| 亚洲免费观看在线视频| 欧美日韩国产精选| 久久99精品久久久久婷婷| 久久久久久久电影| 白白色 亚洲乱淫| 亚洲激情自拍偷拍| 666欧美在线视频| 黑人巨大精品欧美黑白配亚洲| 国产欧美中文在线| 91黄色免费版| 美脚の诱脚舐め脚责91| 亚洲国产精华液网站w| 色老汉一区二区三区| 日韩成人精品视频| 国产调教视频一区| 在线观看91视频| 六月丁香婷婷色狠狠久久| 欧美高清在线精品一区| 欧美怡红院视频| 久久99在线观看| ...av二区三区久久精品| 欧美日韩国产系列| 国产成人丝袜美腿| 亚洲图片欧美一区| 久久女同互慰一区二区三区| 91美女片黄在线| 久久精品二区亚洲w码| 最新中文字幕一区二区三区| 欧美年轻男男videosbes| 国产精品中文字幕日韩精品 | 丁香五精品蜜臀久久久久99网站 | 国产片一区二区三区| 色女孩综合影院| 另类小说图片综合网| 国产精品家庭影院| 555www色欧美视频| voyeur盗摄精品| 日本成人在线网站| 亚洲欧洲av一区二区三区久久| 日韩视频一区二区在线观看| youjizz久久| 美腿丝袜亚洲三区| 亚洲另类在线视频| 久久人人爽爽爽人久久久| 欧美午夜不卡在线观看免费| 国产成人在线视频播放| 午夜av电影一区| 国产精品乱人伦| 欧美一区二区三区在| 97se亚洲国产综合自在线不卡| 美女任你摸久久| 一区二区三区在线不卡| 久久只精品国产| 欧美猛男男办公室激情| 99久久伊人精品| 极品美女销魂一区二区三区免费| 亚洲六月丁香色婷婷综合久久| www日韩大片| 欧美久久婷婷综合色| 91亚洲精品久久久蜜桃网站| 国产自产v一区二区三区c| 午夜av区久久| 一区二区视频在线| 欧美国产精品一区二区| 欧美va在线播放| 3d动漫精品啪啪| 欧美午夜精品久久久| 91在线视频在线| 国产+成+人+亚洲欧洲自线| 蜜桃一区二区三区在线| 亚洲h动漫在线| 玉足女爽爽91| 国产精品国产三级国产a| 久久免费看少妇高潮| 欧美一卡二卡在线| 欧美日韩性生活| 在线观看www91| 色视频欧美一区二区三区| 成人小视频免费观看| 亚洲欧洲精品一区二区三区 | 免费人成黄页网站在线一区二区| 一区二区三区欧美| 中文字幕一区三区| 中文字幕成人av| 国产欧美一区二区精品忘忧草| 精品少妇一区二区三区日产乱码| 欧美日韩极品在线观看一区| 91激情在线视频| 91美女在线视频| 99国产麻豆精品| 99视频热这里只有精品免费| 成人深夜在线观看| 国产福利一区在线观看| 国产一区二区成人久久免费影院| 久久精品国产免费| 麻豆精品视频在线观看免费| 免费高清视频精品| 免费成人在线观看| 美女一区二区视频| 久久精品国产**网站演员| 看电视剧不卡顿的网站| 久久9热精品视频| 激情伊人五月天久久综合| 激情五月婷婷综合网| 国产老女人精品毛片久久| 国产精品一线二线三线精华| 国产精品自拍三区| 成人伦理片在线| 99久久国产综合精品色伊| 91视视频在线观看入口直接观看www| 北条麻妃国产九九精品视频| 91亚洲国产成人精品一区二三| 91丝袜美女网| 欧美色偷偷大香| 欧美一区二区日韩| 精品99久久久久久| 久久久精品人体av艺术| 中文字幕精品一区二区三区精品| 国产亚洲自拍一区| 国产精品免费网站在线观看| 综合色天天鬼久久鬼色| 一区二区三区精品| 丝袜美腿一区二区三区| 蜜桃av一区二区三区电影| 国产一区二区三区在线观看免费视频| 久久 天天综合| 大白屁股一区二区视频| 91免费观看在线| 欧美精品丝袜久久久中文字幕| 欧美精品欧美精品系列| 精品国产不卡一区二区三区| 欧美经典一区二区三区| 亚洲你懂的在线视频| 日韩电影在线观看网站| 国产在线播放一区二区三区| 成人高清免费在线播放| 欧美怡红院视频|