Vuei18n 实际应用 不使用打包工具篇!

简介: Vuei18n 实际应用 不使用打包工具篇!

1.远程加载翻译文件

var i18n = new VueI18n({
    locale:"zh",
    silentTranslationWarn:true,//没有的key值不发出警告
    missing(){//没有key值时应如何处理  
        return "";
    }
})


var app = new Vue({
    i18n,
    el:"#app"
})



var test = new Vue({
    i18n,
    el:"#test"
})


$.get("zh.json").done((result)=>{//json格式错误无法触发回调
     //动态设置
    i18n.setLocaleMessage('zh',result.zh);
})
复制代码

HTML

<div id="app">
    <p >{{$t('name')}}</p>
</div>
<div id="test">
    <p >{{$t('name1')}}</p>
</div>
复制代码

翻译文件

{
    "zh":{
        "name":"小遁"
    }
}
复制代码

2动态切换语言

i18n.locale = 'en';
复制代码

2 HTML用法 以及 与JS 的对应

$t

翻译文件


image.png

12 如果不被字符串包裹 则无法输出

HTML文件

    <p >{{$t('age')}}</p>
    <p >{{$t('gretting',{name:'小遁'})}}</p>
    <p >{{$t('color',['红色','绿色'])}}</p>

    <!-- 注意 v-t在使用上述远程加载时将失效 -->
    <p v-t="'age'"></p>
    <p v-t="{path:'gretting',locale:'zh',args:{name:'小遁'}}"></p>
    <p v-t="{path:'color',locale:'zh',args:['红色','绿色']}"></p>

    <p v-text="$t('age')"></p>
复制代码

JS

    console.log(i18n.t('age'))
    console.log(i18n.t('gretting',{name:'小遁'}))
    console.log(i18n.t('color','zh',['红色','绿色']))
复制代码

$tc


JS

     console.log(i18n.tc('car',0))
    console.log(i18n.tc('apple',0))
    console.log(i18n.tc('apple',10,{count:10}))
    console.log(i18n.tc('apple',10,'zh',{count:10}))
复制代码

4 DOM占位符

a

  <i18n path="term" tag="p" id="week">
        <span >{{ $t('tos') }}</a>
    </i18n>

    tos: 'Term of Service',
     term: 'I accept xxx {0}.'
复制代码

输出

        <p id="week">I accept xxx <span>Term of Service </span>.</p>
复制代码
  image.png

b

  <i18n path="info" tag="p">
        <span place="limit">10</span>
        <a place="action" href="#">{{ $t('change') }}</a>
      </i18n>

    info: 'You can {action} until {limit} minutes from departure.',
            change: 'change your flight',
            refund: 'refund the ticket'
复制代码

输出

    <p>
        You can
        <a place="action" href="#">change your flight</a> until 
        <span place="limit">10</span> minutes from departure.
    </p>
复制代码
image.png

c

  <i18n path="info" tag="p" :places="{ limit: 10 }">
        <a place="action" href="#">{{ $t('refund') }}</a>
    </i18n>
复制代码

输出

<p>You can <a place="action" href="#">refund the ticket</a> until 10 minutes from departure.</p>
复制代码
  image.png

3 链接翻译字段


image.png

如何运行GitHub上使用webpake打包的项目

第一步要确保你的电脑上有Node.js 且安装了NPM

在Github上下载好压缩包后 ,解压后进入,通常第一级就能发现package.json 这个文件



image.png

打开这个文件 找到scripts下的内容


image.png

通常dev 下是项目的案例,运行它将在本地建一个服务器,这里面的每一个命令都有价值

windows系统,在此目录下按住Shift点击鼠标右键,选择在"此处打开cmd"或"在此处打开powershell"

先输入npm install,安装项目所需要的依赖
安装完成后 以npm run 的方式运行脚本
npm run dev
npm run docs:dev
在本地建立一个API文档

image.png

感谢阅读,更多细节请阅读文档!


原文发布时间为:2018年07月02日

原文作者:掘金

本文来源:掘金 如需转载请联系原作者


相关文章
|
8月前
|
移动开发 前端开发 JavaScript
uniapp如何打包h5项目
uniapp如何打包h5项目
569 0
|
Web App开发 前端开发 JavaScript
用electron打包前端应用初体验
用electron打包开发桌面应用遇到的各种问题和解决办法
232 1
|
缓存 前端开发 JavaScript
前端工具Vite的出现解决了什么?
在 ESM 出现之前,Javascript 是没有一个标准的模块方案。 比如说 `CJS` 是用于 Node 服务端的模块化方案,`AMD` 是用于浏览器的模块化方案。为了解决这个模块共用性问题,出现了 `UMD` 用于兼容这两种模块规范。 鉴于上面共用性问题,实际开发中配置的打包方式,采用的还是 UMD 模式。因为这样可以避免打包而产生的规范问题,并且在 ESM 不能使用的情况下也会选择 UMD。
146 0
前端工具Vite的出现解决了什么?
|
前端开发 JavaScript 开发者
前端工程化打包工具之Rollup
Rollup是一个非常流行的前端工程化打包工具,它可以帮助开发者快速构建具有可重用性和可维护性的前端项目,并且提供了完善的依赖管理和打包机制。
194 3
|
区块链 Python
打包工具--pyinstaller
打包工具--pyinstaller
113 0
|
缓存 前端开发 JavaScript
模块化开发与前端打包工具
模块化开发与前端打包工具
193 0
|
缓存 Rust 前端开发
esbuild + swc 能有多快?
前端工具层出不穷,之前有常用的打包工具webpack,现在有了速度更快的vite。 vite的开发模式是基于esBuild编译的,打包又是基于rollup,启动项目是很快的。
827 0
esbuild + swc 能有多快?
在vuecli3怎么提升构建打包速度?
在vuecli3怎么提升构建打包速度?
332 0
|
JavaScript 中间件