[Go] GO语言实战-gin框架项目实现中英文切换
时间:2022-07-22
本文章向大家介绍[Go] GO语言实战-gin框架项目实现中英文切换,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如果项目中需要有多语言的展示,类似网站中英文切换,可以使用下面这个方法来实现
主要思路就是,页面html内容展示的时候,不能固定写死在页面上,需要从控制器部分分配过来变量,展示输出这个变量
这个变量的内容来自一个结构体的成员,该结构体在创建实例的时候,可以根据传递参数的不同,实例的成员内容不同
实际展示的地址是:
http://gofly.sopans.com/
控制器部分就是分配变量,在这里是通过get传递lang这个参数cn就是中文,en就是英文
engine.GET("/index", tmpl.PageIndex)
//首页
func PageIndex(c *gin.Context) {
lang := c.Query("lang")
if lang == "" ||lang!="cn"{
lang = "en"
}
language:=config.CreateLanguage(lang)
c.HTML(http.StatusOK, "index.html", gin.H{
"Copyright":language.WebCopyRight,
"WebDesc":language.MainIntro,
"SubIntro":language.IndexSubIntro,
"Document":language.IndexDocument,
"VisitorBtn":language.IndexVisitors,
"AgentBtn":language.IndexAgent,
"OnlineChat":language.IndexOnlineChat,
"IndexSend":language.Send,
"Lang":lang,
})
}
langguage这个结构体部分,根据不同的参数,创建不同的实例成员
package config
type Language struct {
WebCopyRight string
MainIntro string
Send string
Notice string
IndexSubIntro,IndexVisitors,IndexAgent,IndexDocument,IndexOnlineChat string
}
func CreateLanguage(lang string)*Language{
var language *Language
if lang=="en"{
language=&Language{
WebCopyRight: "TaoShihan",
MainIntro: "Simple and Powerful Go language online customer chat system",
IndexSubIntro: "GO-FLY, a Vue 2.0-based online customer service instant messaging system for PHP engineers and Golang engineers",
IndexDocument:"API Documents",
IndexVisitors:"Visitors Here",
IndexAgent:"Agents Here",
IndexOnlineChat:"Let’s chat. - We're online",
Send:"Send",
Notice:"Hello and welcome to go-fly - how can we help?",
}
}
if lang=="cn"{
language=&Language{
WebCopyRight: "陶士涵的菜地版权所有",
MainIntro:"极简强大的Go语言在线客服系统",
IndexSubIntro:"GO-FLY,一套为PHP工程师、Golang工程师准备的基于 Vue 2.0的在线客服即时通讯系统",
IndexVisitors:"访客入口",
IndexAgent:"客服入口",
IndexDocument:"接口文档",
IndexOnlineChat:"在线咨询",
Send:"发送",
Notice:"欢迎您访问go-fly!有什么我能帮助您的?",
}
}
return language
}
- TensorFlow-7-TensorBoard Embedding可视化
- windows下nginx的安装及使用方法入门
- Scala Turtuial-容器(集合)类型
- Scala Turtuial-基本语法
- C++ Virtual And Pure Virtual Explained
- 搭建分布式Spark计算平台
- 像tomcat容器那样自定义一个 Classloader
- react+redux+webpack教程5
- TensorFlow-9-词的向量表示
- Hadoop和Zookeeper安装过程中出现的问题解决
- Ryu和OpenStack集成
- react+redux+webpack教程2
- C/C++ Development using Visual Studio Code, CMake and LLDB
- TensorFlow-10-基于 LSTM 建立一个语言模型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现向本地写入一个XML文件和解析XML文件
- Android自定义View实现带4圆角或者2圆角的效果
- Android 在 res/layout 文件夹 下创建一个 子文件夹实例
- Android开发实现TextView超链接5种方式源码实例
- Android根据包名停止其他应用程序的方法
- Android APP存活检测方式
- 利用Android两行代码真正杀死你的App
- android判断应用是否已经启动的实例
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 在Android中查看当前Activity是否销毁的操作
- Android 7.0 运行时权限弹窗问题的解决
- Android加密之全盘加密详解
- Android 实现彻底退出自己APP 并杀掉所有相关的进程
- 使用Android开发接入第三方原生SDK实现微信登录
- Android打包篇:Android Studio将代码打包成jar包教程