m_Orchestrate learning system---网站的语言选择功能(中文英文)

一、总结

一句话总结:有两种方法,一是session+js端代码,而是session+php端代码。

推荐使用session+php端代码

用函数最方便,最简便,就是不要忘记引入函数

二、网站的语言选择功能

功能描述截图如下:

方法一:session+js端代码实现

1、选择语言,设置session

//选择语言总界面
public function index()
{
$fry_language_type=input('fry_language_type');
if($fry_language_type){
session('fry_language_type',$fry_language_type);
$this->success('Success(成功)!!','index/index');
}
return view();
}

2、js端利用session选择语言

<!--语言选择的js-->
<script>
function chooseLanguage(){
$('.fry_language_item').hide();
$('.fry_language_hk').show();
var fry_language_type="{$Think.session.fry_language_type}";
//console.log(fry_language_type);
if(fry_language_type=="fry_language_hk"){
$('.fry_language_item').hide();
$('.fry_language_hk').show();
}else if(fry_language_type=="fry_language_cn"){
$('.fry_language_item').hide();
$('.fry_language_cn').show();
}else if(fry_language_type=="fry_language_en"){
$('.fry_language_item').hide();
$('.fry_language_en').show();
}
}
chooseLanguage();
</script>
<!--END 语言选择的js-->

3、具体页面位置的语言设置

<span class="fry_language_item fry_language_hk">個人中心</span><span class="fry_language_item fry_language_en">Personal</span>

比如导航部分

 <!-- 首頁的中間導航部分 -->
<!-- 中部導航部分 -->
<div class="pet_circle_nav">
<ul class="pet_circle_nav_list">
<li><a href="{:url('personal/index')}"
class="iconfont pet_nav_xinxianshi "></a><span class="fry_language_item fry_language_hk">個人中心</span><span class="fry_language_item fry_language_en">Personal</span></li>
<li><a href="{:url('engage/index')}"
class="iconfont pet_nav_zhangzhishi "></a><span class="fry_language_item fry_language_hk">活動啟發</span><span class="fry_language_item fry_language_en">WeEngage</span></li>
<li><a href="{:url('explore/index')}" class="iconfont pet_nav_kantuya "></a><span class="fry_language_item fry_language_hk">活動探索</span><span class="fry_language_item fry_language_en">WeExplore</span></li>
<li><a href="{:url('analyze/index')}" class="iconfont pet_nav_mengzhuanti "></a><span class="fry_language_item fry_language_hk">活動分析</span><span class="fry_language_item fry_language_en">WeAnalyze</span></li>
<li><a href="{:url('weexplain/index')}" class="iconfont pet_nav_meirong "></a><span class="fry_language_item fry_language_hk">活動演示</span><span class="fry_language_item fry_language_en">WeExplain</span></li>
<li><a href="{:url('reflect/index')}" class="iconfont pet_nav_yiyuan "></a><span class="fry_language_item fry_language_hk">活動反思</span><span class="fry_language_item fry_language_en">WeReflect</span></li>
<li><a href="{:url('forum.forum/index')}" class="iconfont pet_nav_dianpu "></a><span class="fry_language_item fry_language_hk">全站討論</span><span class="fry_language_item fry_language_en">Forum</span></li>
<li><a href="javascript:;" class="iconfont pet_nav_gengduo "></a><span class="fry_language_item fry_language_hk">更多</span><span class="fry_language_item fry_language_en">More</span></li>
</ul>
</div>
<!-- 中部導航部分 -->
<!-- 首頁的中間導航部分 -->

4、这种方法优缺点

优点:

a、简便,要设置语言的时候直接在写语言的位置直接复制下面这段代码设置即可

<span class="fry_language_item fry_language_hk">個人中心</span><span class="fry_language_item fry_language_en">Personal</span>
 
缺点:
a、因为是在js端进行的语言选择,所以如果网页加载特别慢没执行到选择语言的js的话,那么显示的时候设置的不同语言是共存的
b、一些特殊的情况无效,比如title,比如下面这段代码(无效原因,span标签被用了):
 <div class="am-u-sm-6">
<div class="am-form-group">
<select data-am-selected="{btnSize: 'sm'}" name="a_type" id="student_note_type_choose">
<option value="1" note_type="student_note_type_article">
<span class="fry_language_item fry_language_hk">文章類</span><span class="fry_language_item fry_language_en">Article</span>
</option>
<option value="2" note_type="student_note_type_picture">
<span class="fry_language_item fry_language_hk">圖片類(畫畫)</span><span class="fry_language_item fry_language_en">Image</span>
</option>
<option value="3" note_type="student_note_type_audio">
<span class="fry_language_item fry_language_hk">音訊類</span><span class="fry_language_item fry_language_en">Audio</span>
</option>
<option value="4" note_type="student_note_type_video">
<span class="fry_language_item fry_language_hk">視頻類</span><span class="fry_language_item fry_language_en">Video</span>
</option>
</select>
</div>
</div>

方法二:session+php端代码实现

第一步和上面是一样的,只是语言选择从js操作变成了php操作

1、选择语言,设置session

//选择语言总界面
public function index()
{
$fry_language_type=input('fry_language_type');
if($fry_language_type){
session('fry_language_type',$fry_language_type);
$this->success('Success(成功)!!','index/index');
}
return view();
}

2、php(thinkphp5)利用session选择语言

switch语句实现

<select data-am-selected="{btnSize: 'sm'}" name="a_type" id="student_note_type_choose">
<option value="1" note_type="student_note_type_article">
<?php $fry_language_type=session('fry_language_type');?>
{switch name="$fry_language_type"}
{case value="fry_language_hk"} 文章類 {/case}
{case value="fry_language_en"} Article {/case}
{default /}
{/switch}
</option>
</select>

if语句实现

{if condition="session('fry_language_type')=='fry_language_hk'"}圖片類(畫畫){elseif condition="session('fry_language_type')=='fry_language_en'"/}Image{/if}
<select data-am-selected="{btnSize: 'sm'}" name="a_type" id="student_note_type_choose">
<option value="2" note_type="student_note_type_picture">
{if condition="session('fry_language_type')=='fry_language_hk'"}圖片類(畫畫){elseif condition="session('fry_language_type')=='fry_language_en'"/}Image{/if}
</option>
</select>

函数实现

这长段php代码完全可以写个函数代替:

<select data-am-selected="{btnSize: 'sm'}" name="a_type" id="student_note_type_choose">
<option value="1" note_type="student_note_type_article">
{:chooseLanguage("文章類","Article");}
</option>
<option value="2" note_type="student_note_type_picture">
{:chooseLanguage("圖片類(畫畫)","Image");}
</option>
<option value="3" note_type="student_note_type_audio">
{:chooseLanguage("音訊類","Audio");}
</option>
<option value="4" note_type="student_note_type_video">
{:chooseLanguage("視頻類","Video");}
</option>
</select>

对应函数:

//語言選擇函數
function chooseLanguage($fry_language_hk,$fry_language_en){
$fry_language_type=session('fry_language_type');
if($fry_language_type=="fry_language_hk") echo $fry_language_hk;
if($fry_language_type=="fry_language_en") echo $fry_language_en;
}

3、优缺点

因为是在php端操作,所以上述js方法出现的问题这里都不会出现,但是感觉修改一处代码太长不简洁,可能用if标签会好点

其实也差不多,if标签和switch标签的长度

用函数最方便,最简便,就是不要忘记引入函数

 

m_Orchestrate learning system---网站的语言选择功能(中文英文)的更多相关文章

  1. CPLEX IDE 菜单栏语言设置( 中文 英文 韩文 等多国语言 设置)

    http://www-01.ibm.com/support/docview.wss?uid=swg21573032 Technote (FAQ) Question How to change the ...

  2. m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么

    m_Orchestrate learning system---十三.thinkphp的验证器支持多语言么 一.总结 一句话总结:支持,不仅验证器支持,其它的插件应该都支持 不仅thinkphp支持多 ...

  3. m_Orchestrate learning system---三十六、如何修改插件的样式(比如ueditor)

    m_Orchestrate learning system---三十六.如何修改插件的样式(比如ueditor) 一.总结 一句话总结:所有的js,html插件,修改样式无非是两种,一是直接修改css ...

  4. m_Orchestrate learning system---二十七、修改时如何快速找到作用位置

    m_Orchestrate learning system---二十七.修改时如何快速找到作用位置 一.总结 一句话总结:找人,找起作用的位置真的重要,找到就事半功倍了 加载页面的时候观察在f12的e ...

  5. m_Orchestrate learning system---十、解决bug最根本的操作是什么

    m_Orchestrate learning system---十.解决bug最根本的操作是什么 一.总结 一句话总结:多学多练,遇到bug超级轻松 1.如何查看js代码的异常? 开发者选项里面可以查 ...

  6. Learning Spark: Lightning-Fast Big Data Analysis 中文翻译

    Learning Spark: Lightning-Fast Big Data Analysis 中文翻译行为纯属个人对于Spark的兴趣,仅供学习. 如果我的翻译行为侵犯您的版权,请您告知,我将停止 ...

  7. Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)

    In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...

  8. m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置

    m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...

  9. m_Orchestrate learning system---二十八、字體圖標iconfont到底是什麼

    m_Orchestrate learning system---二十八.字體圖標iconfont到底是什麼 一.总结 一句话总结: 阿里巴巴 图标库 iconfont-阿里巴巴矢量图标库 1.表格的t ...

随机推荐

  1. postgresql----数据库表约束----UNIQUE

    四.UNIQUE ---- 唯一约束 唯一键可以是单个字段,也可以是多个字段的组合,设置唯一约束后,INSERT或UPDATE时如果表中唯一键字段中已存在该数据,则拒绝该行数据的INSERT或UPDA ...

  2. 修改Yii2的默认语言language为中文zh-CN的方法

    如果用的语言是en-US的话,网页加载速度很慢,因为要加载国外镜像或者链接什么的,使用zh-CN就直接加载国内链接或者CDN,速度比较快: ------------------------------ ...

  3. jenkins之配置git认证方式

    在使用jenkins构建时候需要从git下拉代码,需要配置认证方式 http拉取代码 配置用户名和密码认证 添加认证 设置用户名和密码 git认证 设置私钥认证

  4. DNS的MX记录和CNAME记录(转)

    MX记录就是邮件域名对邮件服务器(域名)的映射.可以映射到多个邮件服务器,发送时会选择一台发送. 拿到新域名后,还要再查找DNS,将域名转不ip 原文:http://my.oschina.net/u/ ...

  5. scrapy-redis分布式爬虫

    简介 Scrapy-Redis则是一个基于Redis的Scrapy分布式组件.它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule), 并对爬取产生的项目(items) ...

  6. hdu 5056 Boring count (窗体滑动)

    You are given a string S consisting of lowercase letters, and your task is counting the number of su ...

  7. Visual Studio 2017企业版 Enterprise 注册码 专业版Professional 激活码key

    Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QFVisual Studio 2017(VS2017 ...

  8. spring boot 重定向

    /** * 测试各个html文件用. * @param model * @return */ @RequestMapping("home") public String home( ...

  9. springcloud12---sidecar

    Sidecar:异构平台整合.做了一个桥 package com.itmuch.cloud; import org.springframework.boot.SpringApplication; im ...

  10. 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感

    http://sd89.blog.163.com/blog/static/356041322014112532958728/ 3D图片的拍摄,与平面有着全新的不同要求,那就是空间感的表现. 简单来说, ...