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. json包的不同导致结果不同

    json包的不同导致结果不同 引入如下json jar包 import org.json.JSONArray; 2 import org.json.JSONObject; 代码: JSONObject ...

  2. [Jenkins] 批量删除构建历史

    Manage Jenkins -> Script Console def jobName = "Some_Job_Name" def maxNumber = 64 Jenki ...

  3. js判断移动端和PC端跳转不同页面

    方法一: /* * * 判断PC端与WAP端 */ var mobile_bs = { versions: function() { var u = navigator.userAgent; retu ...

  4. MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具

    mybatis – MyBatis 3 | 日志 http://www.mybatis.org/mybatis-3/zh/logging.html MyBatis 内置日志工厂基于运行时自省机制选择合 ...

  5. SUBSTRING_INDEX()

    http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index ) DEFAULT 'fru ...

  6. xdotool xdotool模拟击键和鼠标移动--CutyCapt是一个截图工具,xvfb-run

    最近在做一个生成网站缩略图的功能,从网上查到相关资料,现与大家分享,xvfb这个软件,安装上之后一条命令就能执行此操作.很容易的就生成了自己想要的缩略图. xvfb-run -运行在一个虚拟的X服务器 ...

  7. CRM - 权限

    一.引入权限组件 引入权限组件 rbac settings: 'rbac.apps.RbacConfig', 中间件: 'rbac.service.rbac.ValidPermission', 员工表 ...

  8. sublime text2和3怎么设置修改字体

    首先,请打开你的sublime text2或3,点击工具栏中的Preferences 然后打开Settings-User 打开Settings-User之后 如下图 请复制以下代码然后粘贴至花括号内 ...

  9. jvm启动

    首先使用 Java 命令启动JVM 其次进行JVM配置的装载——根据当前路径和系统的版本去寻找jvm.cfg文件,装载配置. 每种需要java虚拟机的软件,都会带一个jvm.cfg.然后jvm.cfg ...

  10. Spark UI (基于Yarn) 分析与定制

    转载自:https://yq.aliyun.com/articles/60194 摘要: 这篇文章的主旨在于让你了解Spark UI体系,并且能够让你有能力对UI进行一些定制化增强.在分析过程中,你也 ...