• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

H5快应用国际化

android 搞代码 3年前 (2022-03-02) 35次浏览 已收录 0个评论
文章目录[隐藏]

案例背景

最近在H5快利用开发过程中,须要依据零碎语言加载对应的H5动静网址。但我的我的项目中的网站国际化是依据动静url来实现的,须要我本人实现动静加载不同国家语言的url网址。比方,手机零碎语言为日语时,关上日语网页;零碎语言为简体中文时,关上简体中文网页,零碎语言为英语时,关上英文网站,如下图所示:

解决方案

步骤一:绑定变量

web组件的src属性值须要用变量绑定,不能固定写死,如下图中{{ }}中的loadUrl就是一个绑定变量,loadUrl在ux文件中script标签下进行定义,如果是基于海内快利用IDE H5模板创立的工程,此步骤可疏忽,IDE模板代码都曾经帮你搞定了。

<code class="java"> <!—template局部 -->
 
       <web src="{{loadUrl}}"
 
         </web>
 
      <!—script局部 -->
 
       export default {
 
           data: {
 
              loadUrl: "https://transit.navitime.com/en",
 
           },
步骤二:初始化变量

在快利用生命周期onInit()办法中通过快利用API device接口获取零碎地区语言,判断语言后加载对应的H5网址。

<code class="java">onInit: function () {
            const device = require("@system.device")
            const res = device.getInfoSync();
            let local = res.language;  //system lauguage  
            let region = res.region;  //system region
            console.info('onInit :localole= ' + local + ", region=" + region);
            if (local === 'zh') {
                if (region === "CN") {
                    this.loadUrl = "https://transit.navitime.com/zh-cn/";
                } else if (region === "TW") {
                    this.loadUrl = "https://transit.navitime.com/zh-tw/";
                }
            } else if (local === 'ja') {
                this.loadUrl = "https://transit.navitime.com/ja/?from=huawei.quickapp";
            } else {
                //Other languages can use the default language H5
                this.loadUrl = "https://transit.navitime.com/en";
            }
        },
    

步骤三

此步骤是针对H5快利用曾经关上运行的场景。如果用户此时去零碎设置切换语言,心愿H5网页也要更新相应的语言。如果不想更新,能够疏忽此步骤,用户能够退出利用,从新进入即可。

快利用提供了在运行期间监听语言配置发生变化的接口,适配代码如下:

<code class="java">onConfigurationChanged(object) {
            console.log("onConfigurationChanged object=" + JSON.stringify(object));
            if (object.type === "locale") {
                const configuration=require("@system.configuration")
                var localeObject = configuration.getLocale();
                let local= localeObject.language;
                let region= localeObject.countryOrRegion;
               console.info(onConfigurationChanged(object :localole= ' + local + ", region=" + region);
            if (local === 'zh') {
                if (region === "CN") {
                    this.loadUrl = "https://transit.navitime.com/zh-cn/";
                } else if (region === "TW") {
                    this.loadUrl = "https://transit.navitime.com/zh-tw/";
                }
            } else if (local === 'ja') {
                this.loadUrl = "https://transit.navitime.com/ja/?from=huawei.quickapp";
            } else {     
                //Other languages can use the default language H5
                this.loadUrl = "https://transit.navitime.com/en";
            }     
            }
        },
 

总结

此案例能够帮忙开发者疾速实现网页加载的国际化,为H5快利用寰球公布提供了好的解决方案。

原文链接:
https://developer.huawei.com/consumer/cn/forum/topic/0204404985127060222?fid=18
作者:AppGallery Connect


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:H5快应用国际化

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址