国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

幾行SpringBoot代碼輕松實(shí)現(xiàn)國際化

共 15423字,需瀏覽 31分鐘

 ·

2021-05-01 21:19

你知道的越多,不知道的就越多,業(yè)余的像一棵小草!

成功路上并不擁擠,因?yàn)閳?jiān)持的人不多。

編輯:業(yè)余草

blog.csdn.net/chenlixiao007

推薦:https://www.xttblog.com/?p=5182

i18n 國際化

在開發(fā)中,國際化(Internationalization),也叫本地化,指的是一個(gè)網(wǎng)站(或應(yīng)用)可以支持多種不同的語言,即可以根據(jù)用戶所在的語言類型和國家/地區(qū),顯示不同的文字。能夠讓不同國家,不同語種的用戶方便使用,提高用戶體驗(yàn)性。

實(shí)現(xiàn)國際化,比較簡單的實(shí)現(xiàn)方案就是根據(jù)不同的國家和語言開發(fā)不同的程序,分別用相應(yīng)的語言文字顯示,例如Oracle英文官網(wǎng)地址:https://www.oracle.com/index.html,中文官網(wǎng)地址:https://www.oracle.com/cn/index.html。

一般比較大型的公司會(huì)使用這種根據(jù)不同的國家和語言開發(fā)不同的程序的形式實(shí)現(xiàn)國家化,其一人家公司有資源投入開發(fā),其二可以根據(jù)不同國家,不同語種用戶習(xí)慣開發(fā)更加符合當(dāng)?shù)厝说牟季謽邮剑换サ取?/p>

還有另外一種國家化實(shí)現(xiàn)方案,就是開發(fā)一套程序,可以根據(jù)用戶所在區(qū)域顯示不同的語言文字,但是網(wǎng)站/應(yīng)用的布局樣式等不會(huì)發(fā)生很大變化。這個(gè)方案也是我們要將的i18n國際化實(shí)現(xiàn),i18n其實(shí)就是英文單詞Internationalization(國際化)的縮寫,i和n代表單詞首尾字母,18代表中間的18個(gè)字母。

i18n 實(shí)現(xiàn)

在Java中,通過java.util.Locale類表示本地化對象,它通過語言類型和國家/地區(qū)等元素來確定創(chuàng)建一個(gè)本地化對象 。Locale對象表示具體的地理,時(shí)區(qū),語言,政治等。

我們可以通過以下方法,獲取本地系統(tǒng)的語言,國家等信息;以及獲取代表指定地區(qū)的語言,國家信息Local對象。當(dāng)然你也可以調(diào)用 Locale.getAvailableLocales() 方法查看所有可用的Local對象。

package com.nobody;

import java.util.Locale;

/**
 * @Description
 * @Author Mr.nobody
 * @Date 2021/4/15
 * @Version 1.0
 */

public class LocalTest {
    public static void main(String[] args) {
        Locale defaultLocale = Locale.getDefault();
        Locale chinaLocale = Locale.CHINA;
        Locale usLocale = Locale.US;
        Locale usLocale1 = new Locale("en""US");
        System.out.println(defaultLocale);
        System.out.println(defaultLocale.getLanguage());
        System.out.println(defaultLocale.getCountry());
        System.out.println(chinaLocale);
        System.out.println(usLocale);
        System.out.println(usLocale1);
    }
}

// 輸出結(jié)果
zh_CN
zh
CN
zh_CN
en_US
en_US

我們一般會(huì)將不同的語言的屬性值存放在不同的配置文件中,ResourceBundle類可以根據(jù)指定的baseName和Local對象,就可以找到相應(yīng)的配置文件,從而讀取到相應(yīng)的語言文字,從而構(gòu)建出ResourceBundle對象,然后我們可以通過ResourceBundle.getString(key)就可以取得key在不同地域的語言文字了。

Properties配置文件命名規(guī)則:baseName_local.properties

假如baseName為i18n,則相應(yīng)的配置文件應(yīng)該命名為如下:

  • 中文的配置文件:i18n_zh_CN.properties
  • 英文的配置文件:i18n_en_US.properties

然后在兩個(gè)配置文件中,存放著鍵值對,對應(yīng)不同的語言文字

# 在i18n_zh_CN.properties文件中
userName=陳皮

# 在i18n_en_US.properties文件中
userName=Peel

我們通過如下方式,就可以獲取相應(yīng)語言環(huán)境下的信息了,如下:

Locale chinaLocale = Locale.CHINA;
ResourceBundle resourceBundle = ResourceBundle.getBundle("i18n", chinaLocale);
String userName = resourceBundle.getString("userName");
System.out.println(userName);

Locale usLocale = Locale.US;
resourceBundle = ResourceBundle.getBundle("i18n", usLocale);
userName = resourceBundle.getString("userName");
System.out.println(userName);

// 輸出結(jié)果
陳皮
Peel

對于不同地域語言環(huán)境的用戶,我們是如何處理國際化呢?其實(shí)原理很簡單,假設(shè)客戶端發(fā)送一個(gè)請求到服務(wù)端,在請求頭中設(shè)置了鍵值對,“Accept-Language”:“zh-CN”,根據(jù)這個(gè)信息,可以構(gòu)建出一個(gè)代表這個(gè)區(qū)域的本地化對象Locale,根據(jù)配置文件的baseName和Locale對象就可以知道讀取哪個(gè)配置文件的屬性,將要顯示的文字格式化處理,最終返回給客戶端進(jìn)行顯示。

Springboot 集成 i18n

在Springboot中,我們會(huì)使用到一個(gè)MessageSource接口,用于訪問國際化信息,此接口定義了幾個(gè)重載的方法。code即國際化資源的屬性名(鍵);args即傳遞給格式化字符串中占位符的運(yùn)行時(shí)參數(shù)值;local即本地化對象;resolvable封裝了國際化資源屬性名,參數(shù),默認(rèn)信息等。

  • String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale)
  • String getMessage(String code, @Nullable Object[] args, Locale locale)
  • String getMessage(MessageSourceResolvable resolvable, Locale locale)

Springboot提供了國際化信息自動(dòng)配置類MessageSourceAutoConfiguration,它可以生成MessageSource接口的實(shí)現(xiàn)類ResourceBundleMessageSource,注入到Spring容器中。MessageSource配置生效依靠ResourceBundleCondition條件,從環(huán)境變量中讀取spring.messages.basename的值(默認(rèn)值messages),這個(gè)值就是MessageSource對應(yīng)的資源文件名稱,資源文件擴(kuò)展名是.properties,然后通過PathMatchingResourcePatternResolver從classpath*:目錄下讀取對應(yīng)的資源文件,如果能正常讀取到資源文件,則加載配置類。源碼如下:

package org.springframework.boot.autoconfigure.context;

@Configuration
@ConditionalOnMissingBean(value = MessageSource.classsearch = SearchStrategy.CURRENT)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@Conditional(ResourceBundleCondition.class)
@EnableConfigurationProperties
public class MessageSourceAutoConfiguration 
{

    private static final Resource[] NO_RESOURCES = {};

    // 我們可以在application.properties文件中修改spring.messages前綴的默認(rèn)值,比如修改basename的值
    @Bean
    @ConfigurationProperties(prefix = "spring.messages")
    public MessageSourceProperties messageSourceProperties() {
        return new MessageSourceProperties();
    }

    // 生成ResourceBundleMessageSource實(shí)例,注入容器中
    @Bean
    public MessageSource messageSource(MessageSourceProperties properties) {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        if (StringUtils.hasText(properties.getBasename())) {
            messageSource.setBasenames(StringUtils
                                       .commaDelimitedListToStringArray(StringUtils.trimAllWhitespace(properties.getBasename())));
        }
        if (properties.getEncoding() != null) {
            messageSource.setDefaultEncoding(properties.getEncoding().name());
        }
        messageSource.setFallbackToSystemLocale(properties.isFallbackToSystemLocale());
        Duration cacheDuration = properties.getCacheDuration();
        if (cacheDuration != null) {
            messageSource.setCacheMillis(cacheDuration.toMillis());
        }
        messageSource.setAlwaysUseMessageFormat(properties.isAlwaysUseMessageFormat());
        messageSource.setUseCodeAsDefaultMessage(properties.isUseCodeAsDefaultMessage());
        return messageSource;
    }

    protected static class ResourceBundleCondition extends SpringBootCondition {

        private static ConcurrentReferenceHashMap<String, ConditionOutcome> cache = new ConcurrentReferenceHashMap<>();

        @Override
        public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {
            String basename = context.getEnvironment().getProperty("spring.messages.basename""messages");
            ConditionOutcome outcome = cache.get(basename);
            if (outcome == null) {
                outcome = getMatchOutcomeForBasename(context, basename);
                cache.put(basename, outcome);
            }
            return outcome;
        }

        private ConditionOutcome getMatchOutcomeForBasename(ConditionContext context, String basename) {
            ConditionMessage.Builder message = ConditionMessage.forCondition("ResourceBundle");
            for (String name : StringUtils.commaDelimitedListToStringArray(StringUtils.trimAllWhitespace(basename))) {
                for (Resource resource : getResources(context.getClassLoader(), name)) {
                    if (resource.exists()) {
                        return ConditionOutcome.match(message.found("bundle").items(resource));
                    }
                }
            }
            return ConditionOutcome.noMatch(message.didNotFind("bundle with basename " + basename).atAll());
        }

        // 讀取classpath*:路徑下的配置文件
        private Resource[] getResources(ClassLoader classLoader, String name) {
            String target = name.replace('.''/');
            try {
                return new PathMatchingResourcePatternResolver(classLoader)
                    .getResources("classpath*:" + target + ".properties");
            }
            catch (Exception ex) {
                return NO_RESOURCES;
            }
        }

    }

}

以下這個(gè)類是Spring國際化處理的屬性配置類,我們可以在application.properties文件中自定義修改這些默認(rèn)值,例如:spring.messages.basename=i18n

package org.springframework.boot.autoconfigure.context;

/**
 * Configuration properties for Message Source.
 *
 * @author Stephane Nicoll
 * @author Kedar Joshi
 * @since 2.0.0
 */

public class MessageSourceProperties {

    /**
  * Comma-separated list of basenames (essentially a fully-qualified classpath
  * location), each following the ResourceBundle convention with relaxed support for
  * slash based locations. If it doesn't contain a package qualifier (such as
  * "org.mypackage"), it will be resolved from the classpath root.
  */

    private String basename = "messages";

    /**
  * Message bundles encoding.
  */

    private Charset encoding = StandardCharsets.UTF_8;

    /**
  * Loaded resource bundle files cache duration. When not set, bundles are cached
  * forever. If a duration suffix is not specified, seconds will be used.
  */

    @DurationUnit(ChronoUnit.SECONDS)
    private Duration cacheDuration;

    /**
  * Whether to fall back to the system Locale if no files for a specific Locale have
  * been found. if this is turned off, the only fallback will be the default file (e.g.
  * "messages.properties" for basename "messages").
  */

    private boolean fallbackToSystemLocale = true;

    /**
  * Whether to always apply the MessageFormat rules, parsing even messages without
  * arguments.
  */

    private boolean alwaysUseMessageFormat = false;

    /**
  * Whether to use the message code as the default message instead of throwing a
  * "NoSuchMessageException". Recommended during development only.
  */

    private boolean useCodeAsDefaultMessage = false;

    // 省略get/set
}

我們在類路徑下創(chuàng)建好國際化配置文件之后,就可以注入MessageSource實(shí)例,進(jìn)行國際化處理了:

i18n.properties文件是默認(rèn)文件,當(dāng)找不到語言的配置的時(shí)候,使用該文件進(jìn)行展示。

@Autowired
private MessageSource messageSource;

@GetMapping("test")
public GeneralResult<String> test() {
    // 獲取客戶端的語言環(huán)境Locale對象,即取的請求頭Accept-Language鍵的值來判斷,我們也可以自定義請求頭鍵,來獲取語言標(biāo)識
    Locale locale = LocaleContextHolder.getLocale();
    String userName = messageSource.getMessage("userName"null, locale);
    System.out.println(userName);
    return GeneralResult.genSuccessResult(userName);
}

上面我們是利用Spirng自帶的LocaleContextHolder來獲取本地對象Locale,它是取的請求頭Accept-Language鍵的語言值來判斷生成相應(yīng)Locale對象。我們也可以根據(jù)其他方式,例如請求頭中自定義鍵的值,來生成Locale對象,然后再通過messageSource.getMessage()方法來實(shí)現(xiàn)最終的國家化。

瀏覽 130
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 男女免费av| 97人人澡| 人人干AV| 天天搞天天曰在线观看| 大香蕉伊人在线观看| 豆花视频成人版www满18| 欧美性猛交ⅩXXX乱大交| 内射黄片| 色悠悠久久| 五月天激情影院| 九九精品视频在线观看| 国产免费内射| 久久久久亚洲AV无码专区成人| 一级大黄色毛片| 夜夜操天天干| 北条麻妃高清无码| 波多野结衣高清av久久直播免| 内射免费视频| 俺也干| 91天堂在线| 99久久精品国产成人一区二区| 尤物视频网站在线观看| 人人色人人操| www.色老板| 日韩av一区二区三区| 性爱视频免费| 欧美操逼在线| 国产网站视频| 最新毛片网站〖网:.〗| 农村新婚夜一级A片| 中文字幕在线观看网站| 黄页网站免费在线观看| 91精品国产麻豆国产自产在线 | 影音先锋资源| 亚洲无码在线播放| 无码AⅤ一区二区三区| 韩国精品在线观看| 欧美亚洲日韩一区二区| 嫩BBB槡BBBB槡BBBB免费视频| 九九惹伊人| 一区无码免费| 辽宁模特张雪馨视频最新| 国产无遮挡又黄又爽免费网站| www国产精品| 麻豆精品一区| 三级片男人的天堂| 久干妞| 尹人大香蕉网| 91大熟女91大腚女人| 国产无码成人电影| 五月婷婷六月丁香| 亚洲三级网站| 国产精品成人无码免费| 日本中文字幕电影| 精品久久精品| 亚洲色在线观看| 国产乱伦内射| 国产日女人| 免费涩涩无遮挡18国产| 精品人妻在线| 国产极品无码| 国产极品久久久| 久久6热| 日韩精品欧美一区二区三区| 99操| 亚洲综合小说| 日韩十八禁| 国产午夜在线观看| 成人精品国产| caopor在线| 精品欧美乱码久久久久久| 做爰视频毛片下载蜜桃视频| 7799精品视频天天看| 自拍偷拍亚洲无码| 91人妻中文字幕| 欧美性xxxxx| www.91超碰在线| 国产成人小视频在线观看| 亚洲精品成人av| 欧美激情伊人久久五月天| 天天干天天干天天干| 日本一级a片| 首页-91n| 亚洲精品国产AV| 伊人久久大香线蕉av一区| 色片在线观看| 中文字幕视频在线播放| 精品一二区| 欧美成人手机在线| 国产综合久久久7777777| 自拍偷拍AV| 成年女人免费视频| 豆花av在线| 黑人猛躁白人BBBBBBBBB| 国产裸体网站| 毛片A级| 久热九九| 黄色片a片| 亚洲高清超级无码在线视频观看| 日韩欧美中文字幕公布| 日本69视频| 日韩一区二区三区无码| 中文字幕av免费在线观看| 日本免费不卡视频| 欧美色图另类图片| 一本色道久久无码人妻精品69| 国产熟女av| 亚洲成人不卡| 国产乱伦免费视频| 国产欧美日韩在线视频| 亚洲无码资源| 国产第一精品| 欧美日韩激情视频| 黄色电影a片| 亚洲色图欧美另类| 熟女嗷嗷叫高潮合集91| 久久久久久久精| 91精品国产91久久久久久久久久 | 亚洲无码性爱| 成人无码免费毛片A片| 久热久| 欧美性猛交一区二区三区| 成人电影亚洲天堂| 熟女人妻一区二区三区| 国产精品国产三级片| 91在线成人视频| 91国产精品在线视频| AV777777| 日韩欧美高清无码| 嫩BBB槡BBBB槡BBBB免费视频| 一级片黄片| 成年人国产| 天干夜天干天天天爽视频| 成人无码久久| 91精品内射| 精品人妻午夜一区二区三区四区| 成人亚洲电影| av无码网站| 日韩欧美三级| 欧美成人毛片AAAAAA| 欧美性生活| AⅤ视频在线观看| 在线视频三区| 亚洲视频偷拍| 亚洲天堂在线视频播放| 亚洲欧美成人在线视频| 日韩不卡在线观看| 亚洲第一免费视频| 欧美成人自拍| 无码精品ThePorn| 国产精品毛片| 欧美日韩不卡在线| 一本色道久久综合狠狠躁| 51嘿嘿嘿国产精品伦理| 在线观看AV网站| 99视频在线精品| 四虎成人无码| 日韩在线视频免费| 91免费小视频| a片在线免费观看| 中文字幕高清| 成人资源站| 成人自拍网站| 免费在线看A| 做爰视频毛片下载蜜桃视频| 欧美精品成人在线| 黄片免费观看网站| 西西人体444大胆高清张悠雨| 欧美九九| 无码国产传媒精品一区| 国产成人久久精品麻豆二区| 夜夜骑夜夜撸| 国产TS在线| 制服丝袜大香蕉| 第一福利视频| 亚洲免费无码| 少妇搡BBBB搡BBB搡打电话| 特黄特色一级特黄大片| 久久天天拍| 操逼网首页123| 色婷婷激情| 久久爆乳一区二区三区| 国产视频一区二区三区四区| 国产精品视频一区二区三区在线观看| 曰韩一级片| 色国产在线| 91黑人| 狠狠干大香蕉| 日韩人妻精品中文字幕| 国产和日韩中文字幕| 无码av网| 国产视频高清无码| 国产精品高潮无套内谢| 国内精品久久久| 中文字幕在线字幕中文乱码区别| 亚洲国产一区二区三区四区| 国产成人久久精品麻豆二区| 国产剧情一区二区三区| 婷婷成人综合| 九九九精彩视频| 免费18蜜桃久久19| 蜜桃人妻| 日本韩国无码视频| 亚洲日韩视频在线| 蜜臀久久99精品久久久老牛影视 | 久久久婷婷| 国产91综合一区在线观看| 欧美亚洲日韩一区| 日韩亚洲在线观看| 国产无码免费在线观看| 欧一美一婬一伦一区二区三区自慰| 最新97色黄色精品高清网站| 中文字幕成人在线播放| 一个人看的www日本高清视频| 特级艺体西西444WWw| 亚洲国产中文字幕| 精品视频在线观看| 黄色高清视频在线观看| 国产麻豆精品成人免费视频| 亚洲日本视频| 精品无码一区二区三区爱与| 西西www444无码大胆| 亚洲精品白浆高清久久久久久| 国产内射精品| 狠狠撸在线观看| 国内夫妻【20p】| 亚洲精品成人无码熟妇在线| 免费黄片在线| 张柏芝BBw搡BBBB槡BBBBHDfree | 色五月视频在线| 日韩欧美视频在线播放| 粉嫩av懂色av蜜臀av分享| 天天爱夜夜操| 亚洲高潮| 国产精品不卡在线| 日韩肏逼| 超碰在线| 欧美a∨| 熟妇人妻中文| 久久久久无码精品亚洲日韩| 欧美日韩男女淫乱一区二区| 能看毛片的网站| 日韩视频区| 午夜在线视频| 激情亚洲五月天| 人人草人人舔| 97黄片| 高潮视频在线观看| 国产欧美精品AAAAAA片| 婷婷五月色综合| 亚洲69视频| 99久久国内精品成人免费| 激情五月天av| 狠狠av| 欧美日韩精品在线| 91最新国产| 国产无遮挡又黄又爽又色视频| 三级久久久| 天堂A片电影网站在线观看| 日本成人免费| 久久婷婷综合网| 欧美一区二区在线| 久久黄色成人视频| 天天爽天天爽成人A片影院| 四川少妇搡bbbb搡bbbb| 久久久久久精品国产三级| 欧美爱爱网| 久久18| 激情国产在线| 亚洲AV无码免费| a黄色片| 成人无码交配视频国产网站| 亚洲精品久久久久avwww潮水| 久久成人国产| 家庭乱伦AV| 91视频中文字幕| 欧美拍拍| 开心色情| 久久久蜜桃| 欧美一级黃色A片免费看蜜桃熟了| 国产精品乱码一区二区三区| 岛国无码AV在线观看| 伊人大香蕉在线网| 欧美一区二区三区在线播放 | 亚洲欧美视频在线观看| 日日干夜夜操| 中文字幕在线观看免费| 大香蕉一区| 日韩精品在线观看视频| 91AV视频| 操逼AⅤ| 国产人与禽zoz0性伦| 久久特黄| 国产—级a毛—a毛免费视频| 国产一级精品视频| 逼特逼视频网站| 无码精品人妻一区二区| 免费观看黄色成人网站| 激情五月色五月| 亚洲AV在线人妻| 久草社区在线| 久久双飞| 国产亚洲婷婷| 69性爱视频| 欧美A片免费| 青青草原视频在线| 国产精品欧美一区二区三区苍井空| 男人天堂视频在线观看| 少妇厨房愉情理伦BD在线观看| 亚洲乱码中文字幕| 午夜99| 成人av免费在线观看| 久久久久大香蕉| 中国女人操逼视频| 亚卅毛片| 婷婷精品秘进入| 国产a片免费观看| 精品国内自产拍在线观看视频 | 初学影院WWWBD英语完整版在线观看| 青青草成人免费在线视频| 国产51视频| 日逼高清无码| 五月停亭六月,六月停亭的英语| A视频在线观看| 国产一级a毛一级a毛视频在线网站 | 色呦呦中文字幕| 亚洲网站在线| 一级大毛片| 国产女人18毛片水18精品软件 | 五月天婷婷色| 国产又大又粗又爽| 日本高清免费视频| 精品aaa| 视色影院| 一区在线播放| 美国操逼片| 国产成人69免费看| 成年人国产| 丁香五月社区| 综合一区二区| 操操操AV| 日韩在线免费播放| 春宵福利导航| 人妻第一页| 久久精品国产AV一区二区三区| 国产伦精品一级A片视频夜夜| 中文字幕精品在线视频| 内射极品美女| 中文久久| 女人18片毛片60分钟翻译| 看免费黄色视频| 性无码一区二区| 亚洲日韩在线视频| 乱伦乱伦乱伦中文字幕| 久久精品999| 日韩人妻无码中文字幕| 天堂VA蜜桃一区二区三区| 日欧视频| wwwsesese| 囯产精品宾馆在线精品酒店| 中国免费视频高清观看| 91吴梦梦无码一区二区| 成人亚洲A片V一区二区三区蜜月| 操逼网站视频| 中文字幕第一页亚洲| AV福利在线观看| 国产三级黄片| A级视频网| 麻豆91精品91久久久| 一级黄色视频在线观看| 大奶一区二区| 在线观看日韩欧美| 无码人妻精品一区二区三千菊电影| 亚洲免费观看高清视频| 91精品国产一区二区三区| 91在线无码精品秘入口国战| 久久久性爱视频| 午夜精品成人| 久久婷婷国产麻豆91天堂 | 操逼视频一级| 黄色日逼片| 狠狠干高清成人二区三区| 欧美色影院| 精品无码专区| 日皮做爱视频网站| 日韩免费高清无码视频| 日韩午夜福利| 色婷婷艹| 亚洲第一成人久久网站| 日韩人妻在线视频| 2014亚洲天堂| 国产精品无码激情| 操一操影院| 成人无码视频在线| 国产一级a一片成人AV| 黄片视频网站| 亚洲精品无码在线播放| 草草影院国产第一页| 黃色一级A片一級片| 亚洲aaa在线| 高潮免费视频| 午夜精品秘一区二区三区| 日韩AV在线天堂| 麻豆高清无码| 中文视频免费播放| 五月乱伦| 欧美丰满人妻免费视频人| 高清无码一区二区在线| 人人澡人人澡人人| 亚洲中文字幕av天堂| 无码导航| 精品香蕉视频| 在线看的av| a黄色片| 国产粉嫩小泬白浆18p| 99做爱| 成人自拍偷拍| 另类BBwBBw| 久久99热这里只频精品6学生| 激情网站免费| 亚洲成人色色| 秋霞一区二区三区无码| 又色又爽| 黄色视频网站在线| 草草影院第一页YYCCC| 大色网小色网| 9l蝌蚪PORNY中文| 欧美亚洲中文| 久久久久久久久久久久久久久久久久免费精品分类视频 | 国产乱╳╳AⅤ毛片| 亚洲无aV在线中文字幕| 自慰一区| 丁香成人五月天| 成人香蕉| av无码中文字幕| 亚洲免费视频在线看| 337p大胆色噜噜噜噜噜| 91精品国产综合久久久蜜臀图片| 偷拍亚洲| 国产AV无码一区| 久久99久久99精品免视看婷婷| 久久丁香五月天| 色情一级AA片免费观看| 欧美日本成人网站入口| 黄色电影A| 68久久久| 美女大香蕉| 欧美不卡在线视频| 淫色五月| 国产第八页| 国产精品成人无码| 无码中文综合成熟精品AV电影 | 亚洲无码性爱| 婷婷午夜福利| 久久这里有精品| 狠狠干婷婷| 欧美国产成人在线| 91在线无码精品秘国产| 大香蕉美女视频| 日韩午夜剧场| 欧美亚洲在线观看| 黄色三级片网站| 少妇搡BBBB搡BBB搡AA| 最新人妻| 午夜久久久久久久久久久久91| 三级无码AV| 中文字幕永久| 日韩高清无码免费观看| 国产免费视频| 大地影视中文第三页最新在线观看 | 一区二区三区无码在线观看| 久久视频在线| 色婷婷在线视频| 亚洲国产日本| 国产凹凸视频在线观看| 天天干天天射天天操| 亚洲精品成人一二三区| 国产成人无码区免费视频| 亚洲一级黄色视频| 欧美色图色就是色| 国产乱子伦真实精品| 日韩欧美国产精品综合嫩V| 午夜成人福利在线观看| 超碰在线大香蕉| 在线免费观看成人网站| 大香蕉在线视频99| 视频在线观看一区| 欧美一区二区三区系列电影| 99色色网| 日本黄A三级三级三级| 狠狠综合| 日韩AV中文字幕在线| 偷拍亚洲综合| 苍井空亚洲精品AA片在线播放| 免费无码蜜臀在线观看| 影音先锋中文字幕资源| 九色PORNY国产成人| 97精品人妻一区二区| 日韩午夜欧美精品一二三区| 成人毛片在线播放| 俺也来最新色视频| 精品人妻一区二区三区四区 | 五月婷视频| 六月丁香久久| 日韩激情在线| 成人喷水亚洲一区无码| 国产精品久久无码| 国产精品国产三级国产专区52| 91香蕉视频18| 天天干天天日天天色| 色综合成人| 91精品国产成人www| 夜夜操免费视频| 五月天一区二区| 成人免费爱爱视频| 国产一级a毛一级a毛片视频黑人 | 青青草免费福利视频| 91久久久无码国产一区二区三区 | 日日夜夜天天综合| 超碰人人操| 黄色A片在线观看| 亚洲自慰| 国产成人片在线观看| 国产欧美在线综合| 2017人人操| 安徽妇搡BBBB搡BBBB| 91在线视频免费| 成人精品二区| 亚洲精品乱码久久久久久按摩观| 操美女逼逼| 成人色色网站| 九九热这里有精品| 国产夫妻av| 中文字幕av高清片,中文在线观看| 欧美日韩高清在线| 日韩A∨视频| 日韩一区二区三区无码| 伊人久久大香蕉国产| 日日操天天操夜夜操| 黃色一级一片免费播放| 潮喷av| 中文字幕丰满熟妇人妻| 成人无码激情| 97在线免费| 影音先锋成人视频| 国产天堂| 成人黄片18| 久久久久逼| 亚洲日韩精品在线观看| 熟女熟妇人妻一区二区三区| 99久久久久久久无码| 成人在线乱码视频| 99久久视频| 香蕉视频在线看| 69AV视频在线观看| 国产一区在线看| 秋霞丝鲁片一区二区三区手机在绒免 | 北条麻妃无码精品AV怎么看| 国产操屄视频| 日韩三级在线| 日韩国产中文字幕| 国产夫妻在线视频| 日韩乱妇| 熟女老阿V8888AV| 国产aaaaaaaaaa| 精品成人网| 在线观看中文字幕视频| www.日韩系列| 2025毛片| 人妻无码中文久久久久专区| 日韩小视频| 国产激情视频在线观看| 国产1区2区| 色综合色综合| 久久xx| 俺来也网| 欧美日韩操逼视频| 国产成人精品二三区麻豆| 欧美日韩免费视频| 亚洲一区二区三区在线视频| 美国无码| 国产手机拍视频推荐2023 | 91丨熟女露脸| 一区无码视频| 久久精品国产AV一区二区三区| 成人乱码一区二区三区| 成人女人18女人毛片| 91在线无码精品秘网站| 午夜日韩乱伦| 人妻少妇被猛烈进入中文字幕 | 麻豆二区| 无码AⅤ一区二区三区| 日本韩国无码| 日韩人妻在线观看| 狠狠一区| 无码婷婷| 8050午夜网| 精品福利在线观看| 亚洲av网站| 亚洲天堂在线视频| 精品人妻一二三区| 国产精品久久AV电影| 怡春院综合成人社区| 色色网站免费| 亚洲天堂2014| 日韩v欧美v日本v亚洲v国产v| 中文字幕人成人乱| 色婷婷在线视频播放| 天天日天天日天天操| 日韩在线99| 日本无码精品| 玖玖激情| 一级A片亲子乱中文| 偷拍亚洲欧美| 伊人999| 九九热在线观看| 91精品久久人妻一区二区夜夜夜 | 成年人免费黄色视频| 亚洲色香蕉| 2021天天夜日| 亚洲高清无码网站| 3d动漫精品H区XXXXX区| 制服丝袜大香蕉| 久久午夜视频| 国产AV毛片| 亚洲香蕉视频| 在线看片AV| 久久婷婷热| 日本在线一级| 少妇推油呻吟白浆啪啪成人片| 国产美女全裸网站| 日本中文字幕在线视频| 五月天堂网| 亚洲成人影片| 国产欧美日韩成人| 日韩操逼av| 91天天看| 蜜芽AV在线| 国产图区| 欧美日韩中文字幕| 女公务员人妻呻吟求饶| 日韩无码精品一区| 老司机视频在线视频18| 国产成人精品免高潮在线人与禽一| 亚洲高清无码一区| 天天干天天干天天| 五月天婷婷在线播放视频免费观看| 精品久久免费一区二区三区| 在线观看的AV| 欧美一级特黄A片免费| 人妻人人爱| 情趣视频网站| 国产精品自拍在线观看| 国产欧美黄片| 久久亚洲av| 欧美成人精品欧美一级乱黄| 蜜桃影视| 精品国精品自拍自在线| 51妺嘿嘿午夜福利在线| 欧美日韩操逼视频| 国产AV资源| 天天操人人爽| 亚洲中文无码电影| 黄a网站| 欧美撒色逼撒| 996热re视频精品视频这里| 婷婷激情视频| 美日韩中文字幕| 人人色人人色| 午夜福利AV电影| 67194国产| 国产视频无码| 成人免费区一区二区三区| 国产精品成人免费| 欧美又粗又长| 亚洲精品国产AV| 一区无码免费| 婷婷五月成人| 欧美AAAAAA| 天干天干天夜夜操| 成人综合娱乐网| 成人亚洲A片V一区二区三区蜜月 | 国产熟女一区二区视频网站| 亚洲精品成人网站| 亚洲中文免费视频| 超碰青娱乐| 日韩在线视频第一页| 婷婷深爱五月| 日本在线观看| 操逼网123首页| 天堂资源中文在线| 国产成人精品一区二区| 亚洲中文无码在线观看| 国产sm视频| 国产中文字幕在线播放| 1024手机在线观看| 蜜桃AV无码一区二区三区| 日本三级网| 国产免看一级a一片成人aⅴ| 99色在线视频| 超碰在线观看97| 伊人三级片| 国产凹凸视频| 韩日美女性爱| 熟女少妇一区二区| 亚洲高清无码中文字幕| 日韩AA视频| 国产探花在线观看| 永久黄网站| 国产又粗又大又黄视频| 日韩高清在线播放| 天天日日天天| 国产精品一区二区三区不卡| 91精品婷婷国产综合久久| 91av视频| 国内精品久久久久久久久久| 国产一二三四区| www.99免费视频| 国产一级a毛一级a毛视频在线网站)| 一起操在线观看| 蜜桃在线无码| 成人激情在线视频| 岛国A视频| 色五月在线观看| 久久福利| 亚洲伊人综合| 国产AV福利| 青娱乐网站| 日韩无码第一页| 老汉AV| 91在线91| A片免费在线播放| v天堂在线观看| 午夜黄色影院| 在线国产激情视频| 欧美性猛交XXXX乱大交蜜桃| 亚洲最新在线观看| 人人澡人人爱| av一区在线| 人人妻人人爽人人精品| 特级西西444www| 国产精品热| 内射视频免费看| 丁香成人五月天| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇 | 七十路の高齢熟妇无码| 日韩在线高清视频| 亚洲无码一本道| 一本大道久久久久| 国产免费成人视频| 黄色AV免费观看| 在线中文字幕网站| 欧美日韩一区二区三区四区| 伊人大香蕉网| 国产一片黑夜内射| 伊人色色综合| 人人爱,人人操| 西西人体BBBBBB| 欧美肏屄| 在线国产激情| 伊人大香蕉网| 91麻豆精品视频| 久久爱91| 日韩有码第一页| 成人自拍电影| 久久人人操| 51妺嘿嘿午夜福利在线| 亚洲av成人网| 人人草人人操| AAA久久久| 怡春院国产| 亚洲无码专区视频| 懂色成人视频在线观看| 亚洲制服在线观看| 欧美一区二区三区四| 黄色综合| 中文字幕亚洲视频在线观看| 欧美亚洲色色网视频| 2025av天堂| 骚骚肥肥一区二区三区| 无码中文字幕在线观看| 亚洲A片V一区二区三区| 91福利视频网| 日韩AV免费看| 国产精品精品精品| 国产精品HongKong麻豆| 精品乱子伦一区二区三区免费播成| 国产亚洲精品久久久波多野结衣 | 久久久精品午夜人成欧洲亚洲韩国| 在线观看黄片网站| 日韩一级特黄A片免费观| 国产亲子乱XXXXimim/| 国产成人97精品免费看片| 亚洲天堂视频在线| 91丨九色丨老熟女探花| 日韩欧美在线中文| 插逼综合网| 韩国中文无码| re久久| 麻豆天美蜜桃91| 超碰一级片| 国产粗大| 日韩一级一级一级| h片在线观看免费| 麻豆秘在线观看国产| 亚洲免费视频在线观看| 91www| 影音先锋男人你懂的| 国内自拍激情视频| 欧美肏屄| 草草影院第一页| 国产夫妻自拍av| 九九九精品| 日本精品在线| 色婷婷小说| 波多野结衣视频在线观看| 操BBBB| 婷婷五月丁香在线| 亚洲黄色无码视频| 日韩人妻一区二区三区| 亚洲成人无码在线播放| 91精品人妻一区二区三区四区 | www.17c嫩嫩草色蜜桃网站| 久草视频这里只有精品| 无码精品一区二区三区在线观看| 国产高清无码免费| 亚洲日韩成人电影| 国产精彩无码视频| 欧美操美女| 天堂成人在线视频| 亚洲av观看| 亚洲av免费看| 三级无码在线观看| 日韩av一级| 国产视频一区二区三区四区| 国产免费AV在线| 一级特黄色| 最近最经典中文MV字幕| 国产欧美日韩综合精品| 成人无码区免费AV毛片| 国产v在线| 东方av在线播放| 欧亚一区二区| 成人网站视频在线免费观看| 中文字幕乱妇无码Av在线| 东京热一区二区三区| 国产精品乱子伦一区二区三区视频| 五月丁香六月色| 亚洲精品久久久久毛片A级牛奶| 一本大道香蕉av久久精东影业| 成人免费大香蕉| 美日韩中文字幕| 亚洲va欧洲va国产va不卡| 91亚洲精品视频在线| 激情五月天av| 日本家庭乱伦视频| 中文字幕1| 日韩AV小说| 91热在线| 91吴梦梦一区二区传媒| 色色色色综合| 蜜芽成人精品久久久视频| 一级a一级a爰片免费免免在线| 最美孕交vivoestv另类| 日韩人妻中文字幕| 国产精品一区二区在线| 亚洲xxxxx| www一级片| 午夜福利91| 天干夜天干天天天爽视频| 另类性爱视频| 欧美多人| 十八无码成人免费网站| 久操B网| 91蜜臀在线| 黄色录像一级带| 国产一级a毛一级a做免费的视频l 精品国产免费观看久久久_久久天天 | 99久久婷婷国产综合精品hsex | 久久国产2025| 91视频大全| 日韩黄色电影在线| 日韩高清一级免费| 成人国产精品在线观看| 青青青在线| 欧美日韩逼| 2025毛片| 亚洲国产精品成人va在线观看 | 91青青草视频| 九色国产在线| 色婷婷日韩精品一区二区三区| 北条麻妃在线不卡| 91超碰人人操| 在线无码一区二区三区| 一级国产欧美成人A片| 色超碰| 99综合视频| a视频免费在线观看| 人妻大屁股-91Porn| 成人午夜毛片| 国产免费一区二区|