精华内容
下载资源
问答
  • 请问大神们可以帮助我吗?在我的程序里面我想实现多语言切换,调用系统的语言设置, 改变我自己的app语言,但是不改变系统的显示语言,这样怎么实现?
  • golang多语言支持

    千次阅读 热门讨论 2021-02-13 16:23:45
    beego中设置全局变量如下: Translation i18n.IL ...初始化多语言函数: func InitLang(){ beego.Translation:=i18n.NewLocale() beego.Translation.LoadPath(beego.LangPath) beego.Translation.SetLocale

    专注后台开发相关技术,广度深度并存,干货情怀同在。
    微信搜索【晨梦思雨】关注这个不一样的程序员。

    ❤️强烈推荐人工智能学习网站❤️
     

    beego中设置全局变量如下:

    Translation i18n.IL  
    Lang        string  //设置语言包,zh、en
    LangPath    string  //设置语言包所在位置
    

    初始化多语言函数:

    func InitLang(){
        beego.Translation:=i18n.NewLocale()
        beego.Translation.LoadPath(beego.LangPath)
        beego.Translation.SetLocale(beego.Lang)
    }
    

    为了方便在模板中直接调用多语言包,我们设计了三个函数来处理响应的多语言:

    beegoTplFuncMap["Trans"] = i18n.I18nT
    beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate
    beegoTplFuncMap["TransMoney"] = i18n.I18nMoney
    
    func I18nT(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Translate(s)
    }
    
    func I18nTimeDate(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Time(s)
    }   
    
    func I18nMoney(args ...interface{}) string {
        ok := false
        var s string
        if len(args) == 1 {
            s, ok = args[0].(string)
        }
        if !ok {
            s = fmt.Sprint(args...)
        }
        return beego.Translation.Money(s)
    }
    

    多语言开发使用

    1. 设置语言以及语言包所在位置,然后初始化i18n对象:

      beego.Lang = "zh"
      beego.LangPath = "views/lang"
      beego.InitLang()
      
    2. 设计多语言包

      上面讲了如何初始化多语言包,现在设计多语言包,多语言包是json文件,如第十章介绍的一样,我们需要把设计的文件放在LangPath下面,例如zh.json或者en.json

      # zh.json
      
      {
      "zh": {
          "submit": "提交",
          "create": "创建"
          }
      }
      
      #en.json
      
      {
      "en": {
          "submit": "Submit",
          "create": "Create"
          }
      }
      
    3. 使用语言包

      我们可以在controller中调用翻译获取响应的翻译语言,如下所示:

      func (this *MainController) Get() {
          this.Data["create"] = beego.Translation.Translate("create")
          this.TplNames = "index.tpl"
      }
      

      我们也可以在模板中直接调用响应的翻译函数:

      //直接文本翻译
      {{.create | Trans}}
      
      //时间翻译
      {{.time | TransDate}}   
      
      //货币翻译
      {{.money | TransMoney}} 

     


     ❤️强烈推荐人工智能学习网站❤️

    专注后台开发相关技术,广度深度并存,干货情怀同在。
    微信搜索【晨梦思雨】关注这个不一样的程序员。

    展开全文
  • shopify多语言

    千次阅读 2018-05-15 14:59:35
    在shopify某个页面添加一个输入框,输入框提示是Note,但显示的是一长串的这个东东TRANSLATION MISSING:EN.CUSTOMER.REGISTER.NOTE这个是多语言的翻译从后台 Online Store => Edit code 找到Locales 在 ...

    在shopify某个页面添加一个输入框,输入框提示是Note,但显示的是一长串的这个东东

    TRANSLATION MISSING:EN.CUSTOMER.REGISTER.NOTE


    这个是多语言的翻译文件缺少内容导致的。

    从后台 Online Store => Edit code ,找到Locales 


    在 右边的 "Customer" -> "register" 下添加一个"note" 即可

    类似的,在其他语言文件如de.json、fr.json等也要加上note的其他语言版本


    展开全文
  • NodeJS 实现多语言

    千次阅读 2018-10-17 00:02:52
    什么是多语言? 原文出自:https://www.pandashen.com 我们平时访问一些文档类型的网站时,经常可以看到页面右上角有一个下拉框用来选择当前页面支持的语言,并在选中后将整个网页的内容切换为选中的语言,这...

    在这里插入图片描述

    什么是多语言?


    阅读原文


    我们平时访问一些文档类型的网站时,经常可以看到页面右上角有一个下拉框用来选择当前页面支持的语言,并在选中后将整个网页的内容切换为选中的语言,这就是项目中的多语言,多语言可以根据浏览器请求发送的语言类型在服务器进行设置,也可以在请求服务器时返回多种语言,并根据权重和浏览器的支持情况进行选择和渲染。


    功能描述

    在本文中我们通过客户端向服务器发送请求告诉服务器客户端所支持的语言及权重,服务器检索语言包并根据客户端发送的语言类型和权重返回对应语言的内容。

    在这个过程中客户端向服务器发送请求需要使用请求头 Accept-Language,值中设置语言类型和权重,语言与语言之间使用 , 隔开,语言与权重之间使用 ; 隔开,权重用 q 表示,与值用 = 隔开,如果权重值为 1 则可省略(最大值),值的格式为 zh-CN, zh;q=0.7, en;q=0.8, fr;q=0.1

    服务器响应时,应通过响应头告诉浏览器返回的内容为何种语言,响应头为 Content-Language, 值的格式为 zh-CN, en,多个语言之间使用 , 隔开。


    服务器的实现

    // 文件:server.js
    const http = require("http");
    const querystring = require("querystring");
    
    // 语言包
    let languagesPackage = {
        "zh-CN": "你好",
        en: "Hello",
        fr: "Bonjour"
    };
    
    // 默认语言为英语
    languagesPackage.defaultLanguage = "en";
    
    // 创建服务器
    const server = http.createServer((req, res) => {
        // 获取请求头中的语言和权重
        let languages = req.headers["accept-language"];
    
        // 如果客户端设置了语言
        if (languages) {
            // 解析语言为 [{ name: 'zh-CN', q: 1 }, { name: 'en', q: '0.8' }] 格式
            let lans = languages
                .split(",")
                .map(lang => {
                    let [name, q = 1] = Object.keys(
                        querystring.parse(lang.tirm(), ";q=")
                    );
                    return { name, q };
                })
                .sort((a, b) => b.q - a.q); // 并按照权重逆序排序
    
            // 循环检测 languagesPackage 是否存在客户端的语言
            for (let i = 0; i < lans.length; i++) {
                let { name } = lans[i];
                let content = languagesPackage[name];
    
                // 如果存在直接设置响应头并返回内容
                if (content) {
                    res.setHeader("Content-Type", name);
                    return res.end(content);
                }
            }
        }
    
        // 如果客户端没设置语言活语言找不到时返回服务器设置的默认语言
        res.setHeader("Content-Type", languagesPackage.defaultLanguage);
        res.end(languagesPackage[languagesPackage.defaultLanguage]);
    });
    
    server.listen(3000, () => {
        console.log("server start 3000");
    });
    

    其实上面服务器和客户端配合实现多语言的思路就是客户端向服务器发送 Accept-Language 告诉服务器需要的语言和权重,服务器解析后根据权重从大到小排序,然后循环判断语言包中是否含有客户端需要的语言,如果有,则中断循环直接设置响应头和返回对应内容,如果不存在客户端的需要的语言或者客户端没有向后台发送 Accept-Language 则返回服务器默认设置的语言类型和内容。


    验证多语言

    为了方便我们使用 curl 模拟客户端向服务器发送请求查看返回内容是否正确,之所以使用 curl 是因为只发送验证的请求,方便设置 Accept-Language 请求头,更灵活的控制多语言的类型和权重。

    启动服务器 server.js,打开命令行窗口,输入下面的命令执行,查看返回命令行响应体中的内容和设置的语言是否对应。

    curl -v --header “Accept-Language: zh-CN, zh;q=0.7, en;q=0.8, fr;q=0.1” http://localhost:3000


    总结

    这样我们就实现了一个简单的多语言,其实真正的多语言在服务器是需要做繁琐的解析和性能优化的(只解析界面有的单词返回,保证响应体中的内容最小),在前端可以通过 JavaScript 的库 il8n(国际化语言包)来实现。


    展开全文
  • Qt 多语言切换——Qt语言家

    万次阅读 2018-03-09 18:29:45
    Qt 多语言切换——Qt语言家 1.修改程序文件 1.1在pro文件中加入说明 1.2语言文字在程序中说明 2.生成ts文件 2.修改ts文件 3. 生成qm文件 4. 加载qm语言包 5. 重新设置界面显示 添加示例 问题:Cannot run compiler...

    Qt 多语言切换——Qt语言家

    1.修改程序文件

    1.1在pro文件中加入说明

    TRANSLATIONS = lang_English.ts \
                   lang_Chinses.ts
    

      在pri文件中,加入说明,其中“lang_English.ts”与“llang_Chinses.ts”为设置语言文件的名称,这里使用中文与英语两种语言,当你需要其他更多的语言时,添加多个语言文档即可。

    1.2语言文字在程序中说明

      为了Qt识别你在程序中需要语言准换的文字,需要将需要转换的文字使用QObject::tr(“…”) 进行标记,否则程序中并不能对其进行识别。例如:

     label->setText(tr( "Hello World"));

      而在ui窗口直接进行添加一些插件中的语言,一般默认可以识别进行翻译的。如果我们想将其关掉,可以选择插件的属性,将toolTip中“可翻译的”直接取消勾选即可。
      

    这里写图片描述
      

    2.生成ts文件

    这里写图片描述
    在Qt的菜单栏之中选择:工具->外部->Qt预言家->更新翻译(lupdate)。
    生成ts文件

    2.修改ts文件

    ![这里写图片描述](https://img-blog.csdn.net/20180309145352159?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NTE1NzI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) —-   利用Qt中自带的Linguist打开刚刚生成的st文件,根据相应的语言,进行语言转换。   
    ![这里写图片描述](https://img-blog.csdn.net/20180309152843220?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU0NTE1NzI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

    3. 生成qm文件

    ts文件翻译结束以后,点击保存,然后在Qt Creator中,使用:工具->外部->Qt预言家->部署翻译(lrelease),就会生成需要的qm文件。
      

    这里写图片描述

    4. 加载qm语言包

    将生成的qm文件移动到发布版本中的相应位置,然后在程序中加载。

    void MainWindow::changeTr(int language_label)
    {
        QString qmFilename;
        static QTranslator* translator;
        if (translator != NULL)
        {
            qApp->removeTranslator(translator);
            delete translator;
            translator = NULL;
        }
        translator = new QTranslator;
    
        QString runPath = QCoreApplication::applicationDirPath();       //获取文件运行路径
    
        if(language_label==1)
        {
            qmFilename = runPath + "/lang_Chinese.qm";
        }
        else
        {
            qmFilename = runPath + "/lang_English.qm";
        }
        if (translator->load(qmFilename))
        {
            qApp->installTranslator(translator);
        }
            ui->retranslateUi(this);             // 重新设置界面显示
    }

    5. 重新设置界面显示

    当实现“qApp->installTranslator(translator)”以后,还应该将显示界面重新显示一次进行更新。主界面可以直接借助步骤4中ui->retranslateUi(this)进行重新设置界面显示,但是这个只能更新当前页面,其余页面并不能直接显示出来。需要按照以下格式将每一个需要显示的页面添加相应的程序。

    添加示例

    dialogdebug.h添加

        void changeEvent(QEvent *e);

    dialogdebug.cpp

    void Dialogdebug::changeEvent(QEvent *e)
    {
        QDialog::changeEvent(e);
        switch (e->type()) {
        case QEvent::LanguageChange:
            ui->retranslateUi(this);
            break;
        default:
            break;
        }
    }

    问题:Cannot run compiler 'cl'. Maybe you forgot to setup the environment?

    如果运行的时候提示上边的错误,则说明是没有设置编译器的环境变量,我使用的是VS2017,就以VS2017为例进行设置。
    首先进入VS2017安装目录找到cls.exe的目录,一般是”..\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx64\x64”。
    然后右击我的电脑属性,按照下图的顺序进行设置,将VS2017目录添加进去即可。
    这里写图片描述

    展开全文
  • Android多语言设置

    千次阅读 2019-08-04 21:28:35
    如果Android应用需要做本地化,都要用到多语言来适配,例如手机设置成英文后,App内文字变成英文。 App提供资源可以参考官方文档...
  • React Native多语言切换

    千次阅读 2020-03-26 17:34:58
    React Native多语言切换应该是一个比较常见的需求,具体可以分为两种方式: 1. 识别手机系统语言,app自动加载相应的语言文件; 2. 允许用户在App内手动切换语言,这种情况并不需要保证App语言与手机系统语言一致...
  • 博主最近在写一个多语言的项目,因为之前没实际接触过多语言的设计,所以写这篇文章记录下这次多语言开发的过程。 博主的开发环境是:Springboot1.5.6 + thymeleaf,需要注意的是,springboot 1.x和2.x有比较大的...
  • 多语言网站,顾名思义就是能够以多种语言(而不是单种语言)为用户提供信息服务,让使用不同语言的用户都能够从同个网站获得内容相同的信息。 多语言网站实现方案 1,静态:就是为每种语言分别准备一套页面文件,...
  • 2.准备一份中文的strings文件,利用插件翻译成多语言 3.代码实现转换逻辑   具体步骤如下: 1.安装插件步骤省略 2.翻译文件,如下图 点击OK翻译完毕,翻译完毕之后,会出现如下图所示的文件夹 ...
  • APP实现多语言

    千次阅读 2017-11-15 17:41:08
    APP为什么要做多语言?   首先如果APP的用户量超级多,并且不只在内地使用,海外也有市场。那么来自各个不同国家和地区的人使用的时候,肯定想把这个APP设置成他所熟悉的语言,比如微信,微博,支付宝等这些APP...
  • ios多语言切换

    千次阅读 2016-12-08 10:54:51
    软件需要适配多语言,通常想到的第一个方法就是切换多语言的时候发送通知到各个页面,从而实现多语言的切换,其实这个方法太不好了,通知多,影响大,有的干脆直接重启软件来切换多语言,其实这几种都是不可取的,...
  • HTML页面多语言切换

    万次阅读 2019-02-20 16:28:32
    简单的页面还好,如果遇到更多语言和复杂页面难免会增加维护难度。后来另一个同事用jQuery+AJAX+json+cookie的方式加以改进,我学习了一下代码,做了个自己的版本。 首先,页面不需要复制多个语言版本了,我们为每...
  • ThinkPHP5多语言实现

    千次阅读 2018-11-05 21:34:07
    ThinkPHP内置通过\think\Lang类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件。任何字符串形式的输出,都可以定义语言常量。 1 、语言包 是用户定义的,一般情况下每一种语言...
  • iOS 启动页多语言

    千次阅读 2016-03-14 09:06:32
    iOS 启动页多语言 个人网站: Colin’s Nest 转载请注明出处。 iOS开发交流群: 184226705. 欢迎加入~ 启动页适配多语言, 想必很多 App 都有类似的需求。但是之前尝试过程中, 发现 “多语言” 的那几种实现方式, 在...
  • 多语言的测试注意事项

    千次阅读 2017-12-26 23:36:53
    所谓多语言测试,是指APP在多个使用不同语言的国家发布,则必须对多种语言支持的一种场景测试。比如希望在Google Play上发布一个APP,提供给全球用户下载,那么就需要支持英语、泰语、韩语、阿拉伯语等等不同国家的...
  • android 多语言设置

    千次阅读 2016-04-20 11:27:18
    最近APP里做到了多语言的功能,需要简体中文,繁体中文,英语,三种语言。去查找了一下资料发现语言的切换就只是重载了一下resources; private void setLanguage(int languageType){ Resources resources =...
  • android多语言切换失效

    千次阅读 2018-06-26 17:46:01
    最近一个项目中用到了多语言,可是在有些语言切换失效,挣扎许久终于找到问题了。这是切换语言的代码:public void changeAppLanguage(String key) { Configuration configurat = getResources().getConfiguration...
  • .NET CORE 多语言实现方案

    千次阅读 2019-07-21 07:00:00
    根据市场需求,基于.NET CORE平台开发的RoadFlow工作流平台需要实现多语言版本。经过方案讨论和比对,决定采用.NET自带的本地化功能来实现多语言。话不多说,直...
  • discuz多语言切换

    千次阅读 2016-10-27 14:34:23
    1.在/source下增加目录locale,将待切换的语言包langguage放到里面并重命名,下面以中文包更名为zh_CN,英文包更名为en_US为例进行操作(原先没人的/source/language还留在那里一.../**begin 多语言包切换**/ require_onc
  • Android实现多语言切换

    千次阅读 2018-06-13 22:53:27
    前言,最近要实现多语言切换需求,在网上查了很多资料,基本实现了想要的效果。 主要代码: Configuration configuration = activity.getResources().getConfiguration(); LocaleList localeList = new ...
  • C#实现多语言

    千次阅读 2012-07-22 20:25:00
    C#实现多语言非常方便,步骤如下: 一、设置窗体为支持多语言; 1) LocalLizable = true; 2)language=英语;//您需要的多语言 3)这是窗体上的多语言设置成你需要语言; 如语言为英文时,button1.text=...
  • springMVC 国际化 多语言

    千次阅读 2017-09-18 16:26:30
    springMVC 国际化(多语言) 配置 系统有时需要考虑多国人员使用(比如中国人、美国人、日本人、韩国人),面向不同国家的使用者应该能方便地在不同语言之间进行切换,比如中文、英文、日文、韩文。 常用的有两种...
  • 有时候做网站的时候需要考虑多语言设计,比如外贸网站。即便是简体中文和繁体中文网站设计也不是简单的繁简转换就行的。 多语言网站面临的设计问题: 1、多语言语法问题 简体中文和繁体中文是现代汉语并存的两种...
  • ThinkPHP5之多语言切换

    千次阅读 2017-05-07 23:57:37
    T和inkPHP5的多语言切换是个人比较欣赏的一点,真是佩服设计者(怎么想到多语言切换的?)。 在实际开发过程中,往往不是单一语言的项目,涉及多语言的使用,这时需要多语言切换。 关键函数:Lang::...
  • THINKPHP 5.0.7 开启多语言模式

    千次阅读 2017-07-27 15:51:04
    THINKPHP 5.0 开启多语言
  • Android产品定制多语言

    千次阅读 2012-12-03 18:41:59
    Android产品定制多语言      android产品支持的多语言非常丰富,在很多市场上销售的android产品的语言列表很长很长。在国内,一般都默认中文,还有许多其他语言,有事列表太长了,一旦客户在前面点错了,要再...
  • 前端多语言的切换

    万次阅读 2017-03-23 14:46:36
    前端开发中多语言的切换,可使用js动态替换内容 1、在用户点击切换语言后,把选择的语言版本保存在cookie中 //写入cookie函数 function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.set...
  • ThinkPHP多语言包配置

    千次阅读 2016-09-22 22:35:48
    TP3.2框架多语言包配置简单快速入门,语言包是个大工程,望各位道友且敲且珍惜=.=
  • Android动态设置多语言

    千次阅读 2016-06-22 15:54:22
    动态设置多语言效果图:需求:在设置中添加一个可以设置语言的需求,点击选中的语言,就可以切换显示。demo代码:APP类:app初始化的时候获取保存的语言(没有就系统默认),设置语言。public class APP extends ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 324,606
精华内容 129,842
关键字:

多语言