美文网首页
thinkphp5实现多语言切换 --- 2020-09-07

thinkphp5实现多语言切换 --- 2020-09-07

作者: 一位先生_ | 来源:发表于2020-09-07 09:49 被阅读0次

[thinkphp5.0中英文切换]

首先来看下它的配置:

// 是否开启多语言

'lang_switch_on' => true,

//语音列表

'lang_list' => ['zh-cn','en-us'],

// 获取当前选择语言的方法类

GetLang.php

<?php
namespace app\index\controller;
use think\Cookie;
use think\Lang;
use think\Request;
class GetLang{
  public function get_lang()
      {
          $lang = null;
          if(input('?lang')){
              $lang = input('lang');
          }
          if($lang==null){
              if(Cookie::has('think_var')){
                  $lang = Cookie::get('think_var');
              }else{
                  $lang = 'zh-cn';
              }
        }
        $lang = Lang::range($lang);//设定当前语言
        Lang::load(APP_PATH.DS.'index'.DS.'lang'.DS.$lang.EXT,$lang);//加载当前语言包
        Cookie::set('think_var',$lang);
        return $lang;
    }
}
?>

// 显示效果的控制器类

Index.php

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
  public function index(){
    $lang = new \app\index\controller\GetLang;
    $now_lang = $lang->get_lang();//获取当前语言
    if($now_lang=='zh-cn'){
      $now_lang='en-us';
    }elseif($now_lang=='en-us'){
      $now_lang='zh-cn';
    } 
    $this->assign('set_lang',$now_lang);
    return $this->fetch();
  }
}
?>

// 视图页

index.html

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>{:lang('TITLE')}</title>
  </head>
  <body>
    <a href="?lang={$set_lang}">{:lang('NOW_LANG')}</a>    
  </body>
</html>

//语言包文件

zh-cn.php

<?php
return [
  'TITLE'=>'语言切换',//网站标题
  'NOW_LANG'=>'切换',//网站切换语言按钮
]
?>

en-us.php

<?php
return [
  'TITLE'=>'Language switching',
  'NOW_LANG'=>'Switch',
];
?>

这些只是网站内静态文字展示,可满足使用 ,无任何问题。
至于接口中从数据库中调取的数据翻译问题,
我是这么处理的

  1. 比如后台发布文章数据的时候,对文章标题和内容文字进行翻译(我调取的是百度翻译接口,具体使用情况可百度查询,然后操作)
    2.在存储文章的文标题和内容的时候,也存储下英文的标题和内容,
    这样在网站前端页面中进行判断,然后是显示中文的还是英文的
    3.至于存储数据的时候 在操作数据库是存储在一张文章表(增加两个字段,存储翻译之后的文章标题和内容) 还是两张文章表(一张存储中文,一张存储英文) 可自己选择

一个简单的中英文切换网站 就这样做好了!

相关文章

  • thinkphp5实现多语言切换 --- 2020-09-07

    [thinkphp5.0中英文切换] 首先来看下它的配置: // 是否开启多语言 //语音列表 // 获取当前选择...

  • Flutter 多语言&多主题实现

    目录 多语言实现 多主题实现 状态管理 切换多语言 切换多主题 多语言实现 1. AndroidStudio-> ...

  • rxjs - i18n

    目的 实现网页多语言的切换 依赖 react,rxjs,useObservable感觉就是简单,简单,简单 实现 ...

  • 多语言切换实现

    为了顺应国际化的脚步,有时会碰到多语言切换的需求,例如Amazon官网上的这一幕 准备好语言包后首先将Accept...

  • Android实现多语言切换

    1,在res包下新建下图 2,选择locale - >> - 选择语言,都填好后,res下会多出一个values_...

  • iOS 多语言版本的开发(三)

    iOS 多语言版本的开发(三) 写在前面 iOS 多语言版本的开发(二) 中我们实现了如何让用户自己去切换系统语言...

  • iOS如何在App内切换多语言

    最近写项目的时候遇到这样一个需求,要求实现类似微信的多语言功能, 可在App内立即切换多语言,不需要重启App 下...

  • 国际化(多语言踩坑记录)

    多语言切换中遇到的坑:

  • Android 内多语言切换实现

    前言: 网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好...

  • Android 内多语言切换实现

    前言: 网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好...

网友评论

      本文标题:thinkphp5实现多语言切换 --- 2020-09-07

      本文链接:https://www.haomeiwen.com/subject/qulkektx.html