精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

處理i18n國際電話區(qū)號的代碼實踐

移動開發(fā)
上周在忙產(chǎn)品的國際化(i18n)的問題 其中一個很重要的地方就是電話號碼的國際化(我們以電話號碼為主賬號) 電話號碼有個很重要的部分就是區(qū)號


 

前言

上周在忙產(chǎn)品的國際化(i18n)的問題 其中一個很重要的地方就是電話號碼的國際化(我們以電話號碼為主賬號) 電話號碼有個很重要的部分就是區(qū)號

??

上圖是我們產(chǎn)品的登錄界面 除了常規(guī)的電話號碼之外 前面還有一個區(qū)號 代表這個電話號碼所屬的是哪個國家和地區(qū) 關(guān)于區(qū)號的概念 可以看一下??維基百科??

 看到這里 可能有人奇怪 這有什么難的? 不就是按照列表來展示嗎? 這樣有幾個問題

  • 由于是支持多語言 那么不同的語言環(huán)境的系統(tǒng) 顯示出來的國家名稱是不一樣的 比如“中國” 簡體中文是“中國” 英文是“China” 韓文是“???????” 其在各個語言中的顯示排序都是不一樣的
  • 如果根據(jù)不同國家和語言來維護(hù)一張這樣的表 工作量太大 一般的公司估計做不來

所以這個工作我們就會放到本地來做 不過iOS已經(jīng)幫我們做了一部分工作了 我們可以根據(jù)??國家代碼??來獲取某個國家或在當(dāng)前區(qū)域中的本地化名稱

 

 

//獲取當(dāng)前l(fā)ocale
NSLocale *locale = [NSLocale currentLocale];

//獲取所有國家的代碼
NSArray *countryArray = [NSLocale ISOCountryCodes];

for (NSString *countryCode in countryArray)
{
//根據(jù)當(dāng)前l(fā)ocale和國家短碼 獲取指定國家的本地化名稱
NSString *localName = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
}

我們簡單測試一下

NSArray *countryArray  = [NSLocale ISOCountryCodes];
NSArray *languageArray = @[@"zh_CN",@"en_US",@"ja_JP"];

for ( NSString *languege in languageArray)
{
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:languege];

for ( int i = 0 ; i < 5 ; ++i )
{
NSString *countryCode = countryArray[i];

NSString *displayName = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];

NSLog(@"%@\t%@\t%@",languege,countryCode,displayName);
}
}

結(jié)果

 

 

zh_CN   AD  安道爾
zh_CN AE 阿拉伯聯(lián)合酋長國
zh_CN AF 阿富汗
zh_CN AG 安提瓜和巴布達(dá)
zh_CN AI 安圭拉

en_US AD Andorra
en_US AE United Arab Emirates
en_US AF Afghanistan
en_US AG Antigua and Barbuda
en_US AI Anguilla

ja_JP AD アンドラ
ja_JP AE アラブ首長國連邦
ja_JP AF アフガニスタン
ja_JP AG アンティグア?バーブーダ
ja_JP AI アンギラ

已經(jīng)介紹完iOS幫我們做的一部分工作了 那么另一部分就得我們自己來了
我們需要有一張 地區(qū)->區(qū)號 的列表 不過這個也簡單 網(wǎng)上一抓一大把 我也是網(wǎng)上找的 文件內(nèi)容如下(diallingcode.json)

[
{
"name": "Afghanistan",
"dial_code": "+93",
"code": "AF"
},
{
"name": "Albania",
"dial_code": "+355",
"code": "AL"
},

...
...
//中間省略
...
...

{
"name": "Virgin Islands, British",
"dial_code": "+1 284",
"code": "VG"
},
{
"name": "Virgin Islands, U.S.",
"dial_code": "+1 340",
"code": "VI"
}
]

維護(hù)這樣一張表就很簡單了我們可以存在本地 也可以放在服務(wù)器(“name”字段其實是不必須的 只是為了好看)

研究

我們暫時先把代碼放一放 來看一看其他產(chǎn)品是怎么做的

這個是微信的

??

微信的問題還是挺多的

  • 左邊是中文環(huán)境 按拼音分組是分對了 但是文字排序卻粗錯了 “阿”開頭的國家并沒有排列在一起
  • 右邊是法語環(huán)境 這些??衍生拉丁字母?? 并沒有正確的歸類

這個是Twitter的

??

Twitter在中文環(huán)境下還是挺奇怪的 但是卻沒有犯微信第二個錯誤

Facebook的呢? 人家的工程師比較聰明(懶) 壓根就不支持索引

接下來我們會解決出現(xiàn)的這幾個問題

代碼

先簡歷一個Modal 用來表示國家相關(guān)的信息

@interface MMCountry : NSObject

@property (nonatomic, strong) NSString *name; //國家名(本地化后的版本)
@property (nonatomic, strong) NSString *code; //國家代號
@property (nonatomic, strong) NSString *latin; //國家名的拉丁文(只包含基本拉丁字母)
@property (nonatomic, strong) NSString *dial_code; //區(qū)號

@end

然后我們要把區(qū)號從配置文件中讀取出來 并以區(qū)號為key 建立索引

NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"diallingcode" ofType:@"json"]];
NSError *error = nil;

NSArray *arrayCode = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

if ( error ) {

return;
}

//讀取文件
NSMutableDictionary *dicCode = [@{} mutableCopy];

for ( NSDictionary *item in arrayCode )
{
MMCountry *c = [MMCountry new];

c.code = item[@"code"];
c.dial_code = item[@"dial_code"];

[dicCode setObject:c forKey:c.code];
}

接著獲取這些國家的本地話名稱

NSLocale *locale = [NSLocale currentLocale];
NSArray *countryArray = [NSLocale ISOCountryCodes];

NSMutableDictionary *dicCountry = [@{} mutableCopy];

for (NSString *countryCode in countryArray) {

if ( dicCode[countryCode] )
{
MMCountry *c = dicCode[countryCode];

//這里 你懂的
c.name = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
if ( [c.name isEqualToString:@"臺灣"] )
{
c.name = @"中國臺灣";
}

//把名稱拉丁字母化
c.latin = [self latinize:c.name];

[dicCountry setObject:c forKey:c.code];
}
else
{
//找不到則說明配置文件不全 可以補全
NSLog(@"missed %@ %@",[locale displayNameForKey:NSLocaleCountryCode value:countryCode],countryCode);
}
}

這里要注意的是 把字母拉丁文化 解決了微信的第二個問題 使非基本拉丁字母也可以按照基本拉丁字母來排序 其函數(shù)如下

 

 

- (NSString*)latinize:(NSString*)str
{
NSMutableString *source = [str mutableCopy];

CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTransformToLatin, NO);

//微信是這樣做的
//CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTransformMandarinLatin, NO);

CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTransformStripDiacritics, NO);

return source;
}

這里有兩步

  1. 先將文字 轉(zhuǎn)成拉丁字母(kCFStringTransformToLatin)
  2. 再將拉丁字母去掉變音符(kCFStringTransformStripDiacritics)


這里是微信犯的***個錯誤 也就是沒有正確歸類的錯誤 因為微信在***步的時候只針對漢字進(jìn)行了處理 其他字符則沒有處理 導(dǎo)致第二步?jīng)]有得到正確的基本拉丁字符(kCFStringTransformMandarinLatin 參見注釋掉的代碼)


我們來測試一下這兩步會造成得到效果 還是之前的例子

 

 

NSArray *countryArray  = [NSLocale ISOCountryCodes];
NSArray *languageArray = @[@"zh_CN",@"en_US",@"ja_JP"];

for ( NSString *languege in languageArray)
{
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:languege];

for ( int i = 0 ; i < 5 ; ++i )
{
NSString *countryCode = countryArray[i];

NSString *displayName = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];

NSLog(@"%@\t%@\t%@\t@",languege,countryCode,displayName,[self latinize:displayName]);
}
}

結(jié)果

 

 

zh_CN   AD  安道爾 |   an dao er
zh_CN AE 阿拉伯聯(lián)合酋長國 | a la bo lian he qiu zhang guo
zh_CN AF 阿富汗 | a fu han
zh_CN AG 安提瓜和巴布達(dá) | an ti gua he ba bu da
zh_CN AI 安圭拉 | an gui la
en_US AD Andorra | Andorra
en_US AE United Arab Emirates | United Arab Emirates
en_US AF Afghanistan | Afghanistan
en_US AG Antigua & Barbuda | Antigua & Barbuda
en_US AI Anguilla | Anguilla
ja_JP AD アンドラ | andora
ja_JP AE アラブ首長國連邦 | arabu shou zhang guo lian ban
ja_JP AF アフガニスタン | afuganisutan
ja_JP AG アンティグア?バーブーダ | antigua?babuda
ja_JP AI アンギラ | angira

可以到看 系統(tǒng)會根據(jù)不同國家和不同語言的特點 將同一個國家的不同表達(dá)形式轉(zhuǎn)化成不同的拉丁字母

接下來 我們把獲取過的數(shù)據(jù)根據(jù)’A’-‘Z’進(jìn)行歸類

NSMutableDictionary *dicSort = [@{} mutableCopy];

for ( MMCountry *c in dicCountry.allValues )
{
NSString *indexKey = @"";

if ( c.latin.length > 0 )
{
indexKey = [[c.latin substringToIndex:1] uppercaseString];

char c = [indexKey characterAtIndex:0];

if ( ( c < 'A') || ( c > 'Z' ) )
{
continue;
}
}
else
{
continue;
}

NSMutableArray *array = dicSort[indexKey];

if ( !array )
{
array = [NSMutableArray array];

dicSort[indexKey] = array;
}

[array addObject:c];
}

*** 將每個歸類下面的數(shù)據(jù) 排序重新整理

for ( NSString *key in dicSort.allKeys )
{
NSArray *array = dicSort[key];

array = [array sortedArrayUsingComparator:^NSComparisonResult(MMCountry *obj1, MMCountry *obj2) {

return [obj1.name localizedStandardCompare:obj2.name];
}];

// array = [array sortedArrayUsingComparator:^NSComparisonResult(CSCountry *obj1, CSCountry *obj2) {
//
// return obj1.latin > obj2.latin;
// }];

dicSort[key] = array;
}

這樣dicSort就是我們最終得到的結(jié)果集


這里是微信犯的第二個錯誤 微信的排序是按照latin來排序的(見注釋掉的代碼) 所以導(dǎo)致了相同漢字的國家排不到一起的情況 正確的方式是用localizedStandardCompare來排序 這也是iOS已為我們提供好了的本地化比較函數(shù)
看看之前的圖中 挑三個國家出來 比如:阿爾巴尼亞 愛爾蘭 阿魯巴 他們的拼音是 aerbabiya aierlan aluba 如果按照拼音排序的話 這樣的排序就是正確的


我們來看看最終的效果

??

是不是比微信的更好?

討論

雖然代碼是寫完了 但是問題并沒有結(jié)果 有一個關(guān)鍵的問題就是 為什么我們要按照’A’-‘Z’來索引排序呢? 比如Twitter在日文和韓文環(huán)境下是這樣的

??

其實按照不同國家的語言特點來進(jìn)行對應(yīng)的索引 應(yīng)該才是***的解決辦法(PS:看到Twitter在中文環(huán)境下的糟糕結(jié)果 我也不確定其在日文和韓文下的結(jié)果是否是正確的(ˉ﹃ˉ)
當(dāng)然 如果真要這樣做 其實改動量也不大 只要在索引的那塊稍微修改一下就行了

小結(jié)

文中的demo可以在??這里??找到

正如討論中說的一樣 本文所討論的方案 并不是最終的解決方案 如果需要更好的體驗的話 還要深入研究各國的文化才行 所以 國際化并不單純是個技術(shù)問題 更是個社會工程啊~~~~

責(zé)任編輯:倪明 來源: 里脊串的開發(fā)隨筆
相關(guān)推薦

2023-09-05 15:23:06

開發(fā)應(yīng)用鴻蒙

2016-12-19 15:35:10

Web開發(fā)者jQueryi18n

2021-04-16 16:37:23

SpringMVC源碼配置

2023-01-31 10:29:26

JavaScript國際化國際化庫

2025-11-04 07:58:20

SpringBoot多語言18n

2012-02-01 09:22:33

Java

2020-11-06 07:30:36

JS文件

2015-03-30 09:32:15

XcodeiOS應(yīng)用程序

2018-06-06 15:08:57

前端開發(fā)工具

2022-08-02 09:01:55

后臺管理模版

2020-02-06 11:35:58

Java 8APIJava

2020-01-15 15:12:38

Java8日期處理代碼

2024-04-01 11:52:46

2010-08-26 17:39:48

谷歌

2023-07-17 15:28:03

JavaScrip開發(fā)

2024-05-17 08:25:06

數(shù)據(jù)驅(qū)動React語言包

2021-04-08 10:01:48

Java機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2014-06-23 14:55:13

浪潮I2I國際化

2024-07-25 13:04:21

2023-05-04 08:02:13

點贊
收藏

51CTO技術(shù)棧公眾號

国产一区二区不卡老阿姨| 丁香5月婷婷久久| 久久蜜桃一区二区| 国产97在线亚洲| 一二三四国产精品| 亚洲精品伊人| 亚洲成人免费看| 欧美午夜免费| 国产精品羞羞答答在线| 欧美国内亚洲| 日韩精品免费看| 韩国日本美国免费毛片| 在线免费黄色| 国产福利一区二区三区视频| 91精品国产网站| 亚洲色图 激情小说| 日韩高清一区| 日韩欧美国产高清91| 五月天男人天堂| 午夜小视频在线播放| 男人的天堂久久精品| 欧美激情免费在线| 极品人妻videosss人妻| 欧美大片91| 色av成人天堂桃色av| 男女裸体影院高潮| h网站在线免费观看| 成人少妇影院yyyy| 国产区亚洲区欧美区| 国产成人无码精品亚洲| 91一区二区三区四区| 亚洲激情国产精品| 一级做a免费视频| 午夜欧美激情| 亚洲午夜久久久久| 在线观看免费91| 国模吧精品人体gogo| 国产91在线|亚洲| 国产精品一区二区性色av | 玩弄中年熟妇正在播放| 蜜桃av在线免费观看| 国产性做久久久久久| 狠狠久久综合婷婷不卡| 国产视频www| 蜜桃在线一区二区三区| 国产91九色视频| 女人十八岁毛片| 在线 亚洲欧美在线综合一区| 久久精品国产一区| 免费黄色国产视频| 欧美日韩中文一区二区| 亚洲欧美精品一区二区| 亚洲综合自拍网| 精品三级av| 亚洲成av人乱码色午夜| 日本中文字幕有码| www.豆豆成人网.com| 日韩午夜精品视频| 五月天六月丁香| 国产精品一区免费在线| 欧美日本一区二区| 在线一区二区不卡| 国产精品亚洲综合在线观看| 欧美一二三区在线| 91精品人妻一区二区三区蜜桃2| 国产视频网站一区二区三区| 91精品婷婷国产综合久久性色| 女人高潮一级片| 成人激情久久| 91精品国模一区二区三区| 亚洲精品永久视频| 日韩精品一级| 精品少妇一区二区三区免费观看| 无码人妻一区二区三区在线| 国产精品一区二区中文字幕| 日韩高清有码在线| 国产又大又粗又爽的毛片| 精品理论电影在线| zzjj国产精品一区二区| 一起操在线播放| 亚洲网址在线| 欧美中在线观看| 91porny九色| 麻豆免费精品视频| 成人三级在线| 视频在线不卡| 91蜜桃免费观看视频| 日本一区二区在线| 老司机99精品99| 午夜精品一区在线观看| 黑人糟蹋人妻hd中文字幕 | 91在线观看免费观看| 亚洲第一天堂在线观看| 2024国产精品| 在线看视频不卡| 草草影院在线| 欧美丝袜丝nylons| 久久久久国产免费| 国产一区二区三区四区大秀| 久久香蕉频线观| 久久久久久久久久免费视频| 美女性感视频久久| 成人免费91在线看| 高清在线观看av| 亚洲综合在线第一页| 国产精品欧美激情在线观看| 伊人久久精品| 精品五月天久久| 人人澡人人澡人人看| 亚洲精品国产日韩| 91精品国产综合久久男男| 日韩中文字幕免费观看| 国产精品国产三级国产| 香港三级韩国三级日本三级| 电影一区中文字幕| 亚洲天堂网在线观看| 欧美精品久久久久性色| 日本大胆欧美人术艺术动态| 成人午夜电影在线播放| 日本福利专区在线观看| 精品国产999| 先锋资源在线视频| 精品视频亚洲| 538国产精品视频一区二区| 97人妻精品一区二区三区动漫| 99久久99久久精品国产片果冻| 中文字幕中文字幕在线中心一区 | 亚洲精品国产一区二区三区四区在线| 18岁网站在线观看| 1313精品午夜理伦电影| 97se亚洲国产综合自在线观| 免费看国产精品一二区视频| av片哪里在线观看| 欧美视频精品在线| 国产美女喷水视频| 激情久久久久久| 亚洲aⅴ男人的天堂在线观看| 九色蝌蚪在线| 欧美性xxxx| 国产精品久久久久久亚洲色| 7777久久香蕉成人影院| 国产精品入口日韩视频大尺度| 色综合视频在线| 亚洲欧美激情在线| gai在线观看免费高清| 国产一区二区三区日韩精品| 欧美亚洲成人xxx| 婷婷在线免费观看| 亚洲成a人v欧美综合天堂| 香蕉网在线视频| 7777久久香蕉成人影院| 91视频九色网站| 日本美女在线中文版| 欧美三级电影在线看| 最新中文字幕视频| 一本色道久久综合亚洲精品高清| 国产精品9999久久久久仙踪林| 黄色在线免费| 欧美电影一区二区三区| 欧美极品jizzhd欧美18| 免费欧美在线视频| 相泽南亚洲一区二区在线播放| 欧美自拍电影| 亚洲裸体xxxx| 欧美精品韩国精品| 2020国产精品| 性生交免费视频| 成人嫩草影院| 国产精品嫩草影院一区二区| 在线免费av网站| 欧美日韩国产小视频| 亚洲一级理论片| 激情欧美一区二区三区在线观看| 天天干天天操天天干天天操| 高清久久一区| 欧美精品久久久久久久免费观看| 欧美综合视频在线| 福利一区福利二区微拍刺激| 深爱五月激情网| 日本一不卡视频| 色乱码一区二区三区熟女| 三级欧美日韩| 69国产精品成人在线播放| 国产午夜福利100集发布| 女人黄色一级片| 午夜欧美在线| 97国产超碰| 国产网红在线观看| 亚洲精品久久久久久久久| 日韩精品一区二区亚洲av| 国产欧美精品在线观看| 在线观看中文av| 一区二区三区导航| 亚洲aⅴ天堂av在线电影软件| 97精品资源在线观看| 欧美激情videos| 九九在线视频| 欧美一区二区三区免费大片| 国产午夜福利一区二区| 久久九九99视频| 日本中文字幕在线不卡| 亚洲狼人精品一区二区三区| 午夜精品一区二区三区在线观看| 精品视频一区二区三区| 欧洲亚洲女同hd| 精品176二区| 亚洲精品国产欧美| 一级黄色片在线观看| 偷拍与自拍一区| 刘亦菲国产毛片bd| 99这里都是精品| 五月花丁香婷婷| 国产精品社区| 男人草女人视频| 欧美影院三区| 久久精品成人一区二区三区蜜臀 | 国产孕妇孕交大片孕| 精品欧美激情精品一区| 免费高清在线观看电视| 久久久久久久久久久99999| 色婷婷综合在线观看| 免费日韩视频| 阿v天堂2018| 国产精品久久久久蜜臀| 欧美精品久久| av不卡一区二区| 国产在线a不卡| 成人爱爱网址| 91精品成人久久| wwwav在线| 中文字幕日本精品| 毛片在线播放网站| 亚洲精品国产综合区久久久久久久| 国产深喉视频一区二区| 欧美午夜精品理论片a级按摩| 可以免费看的av毛片| 亚洲福利视频三区| 成人自拍小视频| 亚洲欧美在线观看| 成人一级片免费看| 久久久www成人免费无遮挡大片| 99久久久无码国产精品性波多 | 国产又粗又黄又爽的视频| 色天使久久综合网天天| 800av免费在线观看| 亚洲成人一区二区| 久久久久久久久久99| 亚洲欧美电影一区二区| 久久福利免费视频| 国产精品高潮呻吟| 日本裸体美女视频| 国产精品久久久久婷婷二区次| av男人的天堂av| 久久久久99精品一区| 欧美特级黄色录像| 国产亚洲精品福利| 99久久精品免费视频| 国产欧美综合在线| 欧美另类69xxxx| 国产精品电影一区二区| 日韩三级在线观看视频| 亚洲精品一二三| 国产精品免费在线视频| 亚洲色图制服诱惑| 国产一区二区三区在线视频观看| 中文字幕综合网| 1024手机在线视频| 亚洲一级片在线观看| 日本免费观看视| 欧美性极品xxxx娇小| 中文字幕xxxx| 欧美日韩国产区一| 精品国产亚洲AV| 亚洲国产成人精品女人久久久| 五月婷婷激情在线| 在线日韩精品视频| 国产区在线看| 久久久久久久久久久av| 亚洲精品福利电影| 国产精品视频永久免费播放| 2019中文亚洲字幕| 国产乱码精品一区二区三区日韩精品| 日韩av字幕| 欧美三日本三级少妇三99| 四季av一区二区凹凸精品| 亚洲av综合色区| 一区二区三区导航| 在线不卡一区二区三区| 成年人午夜久久久| 在线观看免费小视频| 一区二区三区在线观看动漫 | 午夜在线视频播放| 欧美巨猛xxxx猛交黑人97人| 人在线成免费视频| 国产精品爽爽爽| 国产香蕉精品| 亚洲a∨一区二区三区| 影音先锋亚洲精品| 在线观看免费黄网站| 国产成人精品影视| 在线观看免费小视频| 亚洲午夜久久久久中文字幕久| 波多野结衣家庭主妇| 日韩欧美久久久| 国产香蕉视频在线看| 欧美福利视频网站| 日本中文字幕一区二区| 国产成人免费观看| 青青草国产免费一区二区下载 | 欧美狂猛xxxxx乱大交3| 亚洲欧美日韩精品久久久久| 亚洲s码欧洲m码国产av| 日韩欧美一区在线| 成人免费一区二区三区视频网站| 欧美激情图片区| 色综合一区二区日本韩国亚洲 | 综合色天天鬼久久鬼色| 国产无人区码熟妇毛片多| 日韩一区二区三区四区五区六区| 蝌蚪视频在线播放| 国模精品视频一区二区| 亚洲色图图片| 日本一区网站| 99精品热6080yy久久| 亚洲一二三av| 国产人成一区二区三区影院| 日韩女同强女同hd| 日韩区在线观看| 麻豆电影在线播放| 国产精品福利观看| 一本久久青青| 国产精品无码人妻一区二区在线| 国产乱码字幕精品高清av| 亚洲一二三精品| 日本高清免费不卡视频| 偷拍自拍在线视频| 久久久久久69| 一区二区三区高清在线观看| 神马午夜伦理影院| 国产一区二区三区在线观看免费 | 欧美美女在线直播| 屁屁影院ccyy国产第一页| 国产乱子轮精品视频| 中文国语毛片高清视频| 欧美三级电影网站| 日韩子在线观看| 91精品久久久久久久久久入口| 精品国产一区二区三区噜噜噜 | 精品国产乱码久久久久久闺蜜| 成人福利片网站| 91久久精品美女高潮| 91麻豆国产自产在线观看亚洲| 男人插女人下面免费视频| 久久久久免费观看| 久久亚洲精品石原莉奈| 亚洲片国产一区一级在线观看| 自拍一区在线观看| 欧美日韩一区在线播放| 日韩影院精彩在线| 成人免费视频入口| 欧美精品18+| 在线午夜影院| 国产精品久久久久久久久婷婷| 亚洲黄色影院| 性欧美丰满熟妇xxxx性仙踪林| 日韩在线一区二区三区| 色之综合天天综合色天天棕色| 久久精品毛片| 欧洲性xxxx| 欧美一区二区三区免费| 色呦呦久久久| 精品视频导航| 日韩av一区二区三区四区| 2017亚洲天堂| 日韩精品最新网址| 涩涩涩在线视频| 亚洲高清视频一区二区| 国产一区二区三区香蕉| 日本少妇毛茸茸高潮| 国产视频精品一区二区三区| 欧亚一区二区| 四虎免费在线观看视频| 波多野结衣视频一区| 草莓视频18免费观看| 中文字幕视频在线免费欧美日韩综合在线看| 免费一区二区三区四区| 国产精品videossex国产高清| 97久久精品人人澡人人爽| 中文字幕第315页| 九九热视频这里只有精品| 午夜精品福利影院| 亚洲精品成人在线播放| 亚洲成人激情av| av网站在线播放| 国产精品视频500部| 日韩和的一区二区| 妺妺窝人体色www婷婷| 亚洲天堂成人在线视频| 亚洲精品黑牛一区二区三区| 成人在线看视频|