2020-11-17

  1. 在app.js里面 onLaunch: function() {

}
写入新增代码1 如:按照下方的的图片


image.png
//新增daima1

    this.setWeiyu();
    var e = this;
    wx.getSystemInfo({
      success: function (a) {
        e.globalData.StatusBar = a.statusBarHeight;
        var s = wx.getMenuButtonBoundingClientRect();
        e.globalData.Custom = s, e.globalData.CustomBar = s.bottom + s.top - a.statusBarHeight;
      }
    });
    // 新增代码1结束
  1. app(){} 里面写入 新增代码2 如图


    image.png
globalData: {
        // 新增代码2
   weiyu:false,
   //新增2代码结束
 },
  1. 最下方添加切换语言函数 如图:


    image.png
 // 新增代码3
   setWeiyu(){
    let weiyu = false;//默认汉语
    if (this.contains(wx.getStorageInfoSync().keys, "weiyu")) {//若缓存中有语言设置
    weiyu = wx.getStorageSync("weiyu"); 
    }
    this.globalData.weiyu = weiyu;
},
contains: function (arr, obj) {
  var i = arr.length;
  while (i--) {
    if (arr[i] === obj) {
      return true;
    }
  }
  return false;
},
echo: function (text) {
  if (!text) return text;
  var n = text.split("|");
  // console.log(n)
  if (n.length == 1) {
    return n;
  } else {
    return this.globalData.weiyu ? n[1] : n[0]
  }
}
//代码3结束

页面的翻译准备 第1步

// page里面写 加代码1

//新增代码1开始
changeLang(a) {
    this.setData({ isWeiyu: a.detail })
  },
 //新增1结束   

下面截图是实例代码1

image.png

第2步

在js文件中搜搜data关键字 里头写 代码2

//新增代码2开始
isWeiyu: app.globalData. isWeiyu,
//代码2结束

下面截图是实例代码2

image.png

第3步

在json文件中 里头写 代码3

 "navigationStyle": "custom",

下面截图是实例代码3

image.png

第4步

在wxml文件头部导入一下代码

<wxs src="../../echo.wxs" module="echo"></wxs>
<custom showCheckbox bgColor ="bg-white" color="pink" bind:changeLang="changeLang">
    <view slot="content">{{echo(isWeiyu,"我的|مىنىڭ")}}</view>
    <view slot="right">
        <view bindtap="my_center" class="action" style="margin-left:1rpx;width:100rpx;padding-top:20rpx;padding-bottom:30rpx;">
            <image src="/image/my_center.png" style="width:33rpx;height:36rpx;"></image>
        </view>
    </view>
</custom>

每个字符全都换成{{echo(isWeiyu,"我的|مىنىڭ")}} 代码如下

{{echo(isWeiyu,"我的|مىنىڭ")}}

知识点1.

如果想把文字或者view显示在右边的话 添加以下代码4

style="direction:{{isWeiyu?'rtl':'ltr'}}"

下面截图是实例代码4

image.png

知识点2.

如果是wxml显示的文字不在当前文件里得加一下代码

isWeiyu="{{isWeiyu}}" 
image.png
image.png

知识点3.

如果是后端中获取的文字那需要这么表达,这里的item是命名,按照实际代码确定的

{{echo(isWeiyu,item.title)}}

image.png

知识点4.

如果是后端中获取的文字那需要这么表达,这里的item是命名,按照实际代码确定的

//图片位置判断
 class="{{isWeiyu?'uylunbo-right-img':'lunbo-right-img'}}"
//图片来源判断
src="{{isWeiyu?'/image/uylunbo_r.png':'/image/lunbo_r.png'}}
image.png

image.png

知识点5.

如果js里面没有page 只有component的话 在properties里 加一下代码

isWeiyu:{
            type:Boolean,
            value:false
},

下面截图是实例代码5

image.png

知识点5. js文件里的处理

    if((that.data.extra.order_type == 1 || !that.data.extra.order_type) && !that.data.extra.address_id && that.data.store.delivery_type != 2) {
            app.util.toast(app.echo('请选择收货地址|ئادرىس تاللاڭ'), '');
            return false;
        }



onSubmit: function() {
        var that = this;
        if(that.data.cart.is_category_limit == 1) {
            wx.showModal({
                title: app.echo('温馨提示|ئەسكەرتىش'),
                content: that.data.cart.category_limit_cn
            });
            return false;
        }

else {
                goods_id = goodsActive['id'];
                option_id = goodsActive['activeOptionId'];
                var optionKey = goodsActive['activeOptionKey'];
                if(!goodsActive.total) {
                    app.util.toast = app.echo('库存不足|سېتلىپ بولدى');
                    return false;
                }


onTurncateCart: function(){
        var that = this;
        wx.showModal({
            content: app.echo("确定清除购物车吗?|مال ھارۋىسىنى تازلامسىز؟"),
            success: function (res) {
                if (res.confirm) {
                    app.util.request({
                        url: 'wmall/store/goods/truncate',
                        data: {sid: that.data.store.id},
                        success: function() {
                            if(that.data.goodsActive) {
                                that.data.goodsActive.totalnum = 0;
                                for(var i in that.data.goodsActive['options_data']) {
                                    that.data.goodsActive['options_data'][i]['num'] = 0;
                                }
                            }
                            that.data.goodsItem = that.data.goodsAll;
                            that.setData({
                                goodsActive: that.data.goodsActive,
                                goodsDetail: that.data.goodsActive,
                                cart: {},
                                showCartDetail: false,
                            });
                            that.onCalculate();
                        }
                    });
                }
            }
        });
    },

有些复杂的语法中使用:

<view class='wui-cell wui-cell-access coupon susyixil' bind:tap='onToggleCoupon'>
                            <view class='wui-cell-bd'>{{echo(isWeiyu," 商家代金券| دۇكان ئېتىبار بېلىتى")}}</view>
                            <view class='wui-cell-ft {{coupons.length? "": "disabled"}} susyixil' wx:if="{{!order.coupon.id}}">{{coupons.length
                                > 0 ? (coupons.length + echo(isWeiyu,'张代金券|دانە')) : echo(isWeiyu,'暂无代金券|يوق')}}</view>
                            <view class='wui-cell-ft' wx:if="{{order.coupon.id}}">-<text
                                    class="font-12">{{Lang.dollarSign}}</text>{{order.coupon.discount}}</view>
                        </view>

6.要隐藏自定义组件还是生效他的 作用的话 ,hidden来实现

<wxs src="../../echo.wxs" module="echo"></wxs>
<view hidden="{{true}}">
    <custom  bind:changeLang="changeLang"></custom>
 </view> 

7.组件里面的文字需要就在组件里面处理 要data proprty 还有method都要全看图片

var app = getApp();
Component({
    options: {
        addGlobalClass: true,
    },
    properties: {
        isWeiyu:{
            type:Boolean,
            value:false
                              }
                     },
    data: {
        isWeiyu: app.globalData. isWeiyu,
        Lang: app.Lang,
        showback: false,
        popup: {
            activity: false
        },
        themecolor: app.util.getThemeColorValue(app.util.getStorageSync('theme.themecolor'))
    },
    methods: {
        changeLang(a) {
            this.setData({ isWeiyu: a.detail })
        }
        
    
    
})

知识点8: placeholder使用方法

placeholder="{{echo(isWeiyu,'请输入手机号|تىلفۇن نۇمرىڭىزنى كىرگۈزۈڭ')}}"

知识点9: tabbar组建的上的使用 ,先tabbar文件夹里配置好双语后,咋子回来 使用tabbar的 页面 传递给值
image.png

外卖江双语的时候 因为主包大 删除了,功能文件shop和tangshi
知识点5. 外卖江餐厅名称长度不保存问题是数据库长促要改看图片

image.png

image.png
//设置提示语样式
placeholder-style   ="font-family: 'UKIJ Tuz Kitab';" 
某个文字不现实不是位于的时候和汉语的售后
<text wx:if="{{!ug}}">%</text>
<text wx:if="{{ug}}">%</text>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容