zoukankan      html  css  js  c++  java
  • jquery.i18n的国际化

    html中写好样式

        <div class="container">
            <div class="top">
                <!-- 切换按钮 -->
                <div class="top1">
                    <div id="chinese" class=" AA">切换为中文</div>
                    <div id="english" class=" AA">switch to english</div>
                    <div id="Vietnam" class=" AA">Việt nam</div>
                </div>
            </div>
            <!-- 显示的主体内容  -->
            <div class="register-box">
                <div class="telphone">
                    <input type="text" id="telphone" i18n="footer.phone" placeholder="footer.phone" value="">
                </div>
                <div class="password">
                    <input type="text" id="password" i18n="footer.password" placeholder="footer.password" value="">
                    <span id="code" style="display:none"></span>
                </div>
                <div class="telcode">
                    <input type="text" id="gg" i18n="footer.yanzhen" placeholder="footer.yanzhen" value="">
                    <button id="getcode" i18n="footer.Getverification">Get verification code</button>
                </div>
                <div class="registerbtn" id="registerbtn">
                </div>
                <div class="bottomtitle">
                    <span i18n="footer.Apply">By clicking 'apply now' you agree</span><span id="register"
                        i18n="footer.registration">《User registration agreement》</span>
                </div>
    
    
            </div>
        </div>

    引入css文件 如<link rel="stylesheet" href="./style/register.css"> 写好css样式

    input {
        border: 0;
        background: #fbe8ea;
    }
    
    button {
        border: 0;
    }
    
    .container {
         7.5rem;
        height: 100%;
        background: #e96459;
    }
    
    .logo,
    .background {
         100%;
    }
    
    .background img,
    .logo img {
         100%;
    }
    
    .register-box {
        margin: auto;
         6.9rem;
        height: 5.2rem;
        background-size: 100% 100%;
        padding-top: 0.5rem;
        background: #fbe8ea
    }
    
    .telphone,
    .password,
    .telcode {
         5.9rem;
        margin-left: .7rem;
        height: .7rem;
        line-height: .7rem;
        border-radius: .14rem;
        border: 1px solid #bfbfbf;
    }
    
    #telphone,
    #password,
    #telcode {
         5rem;
        border: none;
        outline: none;
        margin-left: .2rem;
        font-size: .28rem;
    }
    #gg {
         3rem;
        border: none;
        outline: none;
        margin-left: .2rem;
        font-size: .28rem;
    }
    .password {
        margin-top: .4rem;
        margin-bottom: .4rem;
    }
    
    #code {
        float: right;
        margin-right: 0.5rem;
    }
    
    #codetxt {
        float: right;
        margin-right: .5rem
    }
    
    .registerbtn {
        margin-left: .7rem;
         5.9rem;
        height: .9rem;
        line-height: .9rem;
        border-radius: .9rem;
        margin-top: .35rem;
        border: none;
        background-image:url(../image/enbutton.png);
        background-repeat:  no-repeat ;
        align-items:center;
        background-size: 100% 100%;
        overflow: hidden;
    }
    
    .display{
        display: none;
    }
    
    #getcode {
        margin-top: 0.1rem;
         2.1rem;
        height: 80%;
        text-align: center;
        font-size: .24rem;
        color: #e45849;
        background: #fbe8ea;
        font-weight: 600;
        float: right;
        border-left: 1px solid #bfbfbf;
    }
    
    .bottomtitle {
         6.5rem;
        margin-left: .5rem;
        border: none;
        height: .4rem;
        margin: 0rem auto;
        margin-top: 0.1rem;
        font-size: .16rem;
        color: rgb(177, 177, 177);
        transform: scale(0.8);
    }
    
    #register {
        color: #da362d;
    }
    .top{
        display: inline-block;
       background-color:  #FBE9EB;
       height: 30px;
        100%;
       margin: 0 auto;
    }
    .top1{
       
        
        text-align: center;
        line-height: 30px;
        
        
        
        
    }
    .AA{
        display: inline-block;
        border-right: 1px solid #D2402A;
        text-align: center;
        line-height: 20px;
        padding-right: 5px;
        height: 20px;
        color: #CF3216;
        
        font-weight: 700;
    }

    引入jquery.i18n.min.js  如

    <script type="text/javascript" src="./i18n/jquery.i18n.min.js"></script>

    ./i18n/jquery.i18n.min.js通用代码

    (function ($) { $.fn.extend({ i18n: function (options) { var defaults = { lang: "", defaultLang: "", filePath: "i18n/", filePrefix: "i18n_", fileSuffix: "", forever: true, callback: function () { } }; function getCookie(name) { var arr = document.cookie.split('; '); for (var i = 0; i < arr.length; i++) { var arr1 = arr[i].split('='); if (arr1[0] == name) { return arr1[1] } } return '' }; function setCookie(name, value, myDay) { var oDate = new Date(); oDate.setDate(oDate.getDate() + myDay); document.cookie = name + '=' + value + '; expires=' + oDate }; var options = $.extend(defaults, options); if (getCookie('i18n_lang') != "" && getCookie('i18n_lang') != "undefined" && getCookie('i18n_lang') != null) { defaults.defaultLang = getCookie('i18n_lang') } else if (options.lang == "" && defaults.defaultLang == "") { throw "defaultLang must not be null !" }; if (options.lang != null && options.lang != "") { if (options.forever) { setCookie('i18n_lang', options.lang) } else { $.removeCookie("i18n_lang") } } else { options.lang = defaults.defaultLang }; var i = this; $.getJSON(options.filePath + options.filePrefix + options.lang + options.fileSuffix + ".json", function (data) { var i18nLang = {}; if (data != null) { i18nLang = data } $(i).each(function (i) { var i18nOnly = $(this).attr("i18n-only"); if ($(this).val() != null && $(this).val() != "") { if (i18nOnly == null || i18nOnly == undefined || i18nOnly == "" || i18nOnly == "value") { $(this).val(i18nLang[$(this).attr("i18n")]) } } if ($(this).html() != null && $(this).html() != "") { if (i18nOnly == null || i18nOnly == undefined || i18nOnly == "" || i18nOnly == "html") { $(this).html(i18nLang[$(this).attr("i18n")]) } } if ($(this).attr('placeholder') != null && $(this).attr('placeholder') != "") { if (i18nOnly == null || i18nOnly == undefined || i18nOnly == "" || i18nOnly == "placeholder") { $(this).attr('placeholder', i18nLang[$(this).attr("i18n")]) } } }); options.callback() }) } }) })(jQuery);

    js代码,ready读取

            $(document).ready(function () {
                /*默认语言*/
                var defaultLang = "en";
    
                $("[i18n]").i18n({
                    defaultLang: defaultLang,
                    filePath: "i18n/",
                    filePrefix: "i18n_",
                    fileSuffix: "",
                    forever: true,
                    callback: function () {
                        console.log("i18n has been completed.");
    
    
    
                    }
                });
                /*切换为中文 - 按钮*/
                $("#chinese").click(function () {
                    $("[i18n]").i18n({
                       
                        defaultLang: "cn"
    
                    });
    
                });
                /*切换为英文 - 按钮*/
                $("#english").click(function () {
                    $("[i18n]").i18n({
                        
                        defaultLang: "en",
                    });
    
                });
                /*切换为越南 - 按钮*/
                $("#Vietnam").click(function () {
                    $("[i18n]").i18n({
                      
                        defaultLang: "vi",
                    });
                   
    
                    
    
                });
    
            });

    新建文件 cn.json en.json 

    如cn.json

    {
        "footer.about" :"关于",
        "footer.contact": "联系我们",
        "footer.phone": "请输入手机号",
        "footer.yanzhen": "请输入校验码",
        "footer.password": "请输入密码",
        "footer.Getverification": "获取验证码",
        "footer.Apply": "点击“立即申请”即表示您同意",
        "footer.registration": "《用户注册协议》"
    }

    最后的效果图  

  • 相关阅读:
    【BZOJ】【1412】【ZJOI2009】狼和羊的故事
    【POJ】【2987】Firing
    【BZOJ】【1324】王者之剑
    【POJ】【2125】Destroying the Graph
    bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)
    bzoj3810: [Coci2015]Stanovi(记忆化搜索)
    bzoj2120: 数颜色(BIT套主席树+set/分块)
    bzoj2144: 跳跳棋(二分/倍增)
    bzoj4552: [Tjoi2016&Heoi2016]排序(二分+线段树)
    bzoj4773: 负环(倍增floyd)
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12526183.html
Copyright © 2011-2022 走看看