jQuery实战教程 jQuery多国语言切换特效解析
沉沙 2018-06-28 来源 : 阅读 1514 评论 0

摘要:本文通过一个示例讲解了 jQuery如何实现多国语言切换特效,在这个示例中,通过简单的代码,实现包括中文和英文在内的7种不同国家语言的切换效果。希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入。

简要教程

这是一款实现多国语言切换的jquery特效。在这个示例中,通过简单的js代码,实现包括中文和英文在内的7种不同国家语言的切换效果。

 使用方法

在页面中引入jquery和style.css。

<link rel="stylesheet" href="css/style.css">
<script type="text/javascript" src="path/to/jquery.min.js"></script>

   

 HTML结构

示例中,整个页面分为两个部分,一部分是选择语言的下拉列表框,另外一部分是显示文字的区域。

<!--选择语言的下拉列表框-->
<div class="translate_wrapper">
  <div class="current_lang">
    <div class="lang">
      <img src="https://image.flaticon.com/icons/svg/299/299722.svg">
      <span class="lang-txt">EN</span>
      <span class="fa fa-chevron-down chevron"></span>
    </div>
</div>
<div class="more_lang">
    <div class="lang" data-value='cn'>
      <img src="https://image.flaticon.com/icons/svg/299/299914.svg">
      <span class="lang-txt">简体中文</span>     
    </div>
     
    <div class="lang selected" data-value='en'>
      <img src="https://image.flaticon.com/icons/svg/299/299722.svg">
      <span class="lang-txt">English<span> (US)</span></span>     
    </div>
    
     
     <div class="lang" data-value='de'>
      <img src="https://image.flaticon.com/icons/svg/299/299786.svg">
      <span class="lang-txt">Deutsch</span>     
    </div>
     
    <div class="lang" data-value='es'>
      <img src="https://image.flaticon.com/icons/svg/299/299820.svg">
      <span class="lang-txt">Español</span>     
    </div> 
    <div class="lang" data-value='fr'>
      <img src="https://image.flaticon.com/icons/svg/299/299753.svg">
      <span class="lang-txt">Français</span>     
    </div>
    <div class="lang" data-value="pt">
      <img src="https://image.flaticon.com/icons/svg/299/299693.svg">
      <span class="lang-txt">Português<span> (BR)</span></span>     
    </div>
    <div class="lang" data-value="ar">
      <img src="https://image.flaticon.com/icons/svg/299/299815.svg">
      <span class="lang-txt">العربية <span> (SA)</span></span>     
    </div>
  </div>
</div>
<!--文字内容-->
<div class="content">
  <div class="ct-img">
    <img src="img/lizard-765x510.jpg">
  </div>
  <div class="ct-txt">
    <h1 id="title"></h1>
    <p></p>
    <a href="#"><span>Link</span></a>
  </div>
</div>

   

实现多国语言切换的js代码页非常简单,各国语言的标题,内容等被存放在一个数组中。

var trans = [
  {
    en : 'Chameleon',
    pt : 'Camaleão',
    es : 'Camaleón',
    fr : 'Caméléon',
    de : 'Chamäleon',
    cn : '变色龙',
    ar : 'حرباء'
  },{
    en : 'For sheer breadth of freakish ......',
    pt : 'Por uma infinidade de caract......',
    es : 'Por pura amplitud de extrañas......',
    fr: "Pour l'ampleur pure des caract......",
    de: 'Wegen der schieren Breite der......',
    cn: '由于极其奇特的解剖特征,变色......',
    ar : 'لمجرد اتساع الميزات التشريحية فظيع، ......'
  },{
    en : 'See More',
    pt : 'Saiba mais',
    es : 'Más información',
    fr : 'En savoir plus',
    de : 'Weitere Infos',
    cn : '查看更多',
    ar : 'مشاهدة المزيد'
  },
   
];

   

实现翻译的是translate()函数,它通过数组下标来查找相应的语言。

translate(tnum); 
function translate(tnum){
  $('h1#title').text(trans[0][tnum]);
  $('p').text(trans[1][tnum]);
  $('.content a span').text(trans[2][tnum]);
}

            

然后在点击下拉框中的选项时,通过获取data-value的值来得到当前用户选择了什么语言,然后再通过translate()函数将文字转换为相应的语言。

$('.more_lang .lang').click(function(){
    $(this).addClass('selected').siblings().removeClass('selected');
    $('.more_lang').removeClass('active'); 
     
    var img = $(this).find('img').attr('src');   
    var lang = $(this).attr('data-value');
    var tnum = lang;
    translate(tnum);
     
    $('.current_lang .lang-txt').text(lang);
    $('.current_lang img').attr('src', img);
     
    if(lang == 'ar'){
      $('body').attr('dir', 'rtl');
    }else{
      $('body').attr('dir', 'ltr');
    }
     
  });
});

   

本文由职坐标整理发布,更多相关内容,请关注职坐标WEB前端jQuery频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程