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

翻译文件

76f8fe5921b4a5191a196424dc6bff05b2687af1

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

6dfdd5f0e1ba600579311b81be5b57207f18553a

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>
复制代码
1   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>
复制代码
1 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>
复制代码
1   image.png

3 链接翻译字段


1 image.png

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

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

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


da8880b9ece875c727d4f543b4d33535800074f1
image.png

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


1 image.png

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

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

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

1 image.png

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


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

原文作者:掘金

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


相关文章
|
前端开发 JavaScript 开发者
Vite前端构建工具详解
Vite 是一款新兴的前端构建工具,它的出现带来了前端开发体验的革命性变化。本文将介绍 Vite 的基本概念和核心特性,并通过代码实例来演示其强大功能。
164 0
|
3月前
|
JavaScript
Vite 项目中如何去集成 Sass
Vite 项目中如何去集成 Sass
39 0
|
缓存 前端开发 JavaScript
前端工具Vite的出现解决了什么?
在 ESM 出现之前,Javascript 是没有一个标准的模块方案。 比如说 `CJS` 是用于 Node 服务端的模块化方案,`AMD` 是用于浏览器的模块化方案。为了解决这个模块共用性问题,出现了 `UMD` 用于兼容这两种模块规范。 鉴于上面共用性问题,实际开发中配置的打包方式,采用的还是 UMD 模式。因为这样可以避免打包而产生的规范问题,并且在 ESM 不能使用的情况下也会选择 UMD。
125 0
前端工具Vite的出现解决了什么?
|
区块链 Python
打包工具--pyinstaller
打包工具--pyinstaller
92 0
|
缓存 JavaScript CDN
关于vite打包优化,你了解多少
关于vite打包优化,你了解多少
|
缓存 前端开发 JavaScript
模块化开发与前端打包工具
模块化开发与前端打包工具
172 0
|
Web App开发 缓存 前端开发
|
缓存 Rust 前端开发
esbuild + swc 能有多快?
前端工具层出不穷,之前有常用的打包工具webpack,现在有了速度更快的vite。 vite的开发模式是基于esBuild编译的,打包又是基于rollup,启动项目是很快的。
773 0
esbuild + swc 能有多快?
|
JavaScript 前端开发 Go
esbuild 配置开发环境
esbuild 相信在使用过vite的同学都知道,vite是开发环境使用的是esbuild来进行编译代码的,生成环境打包使用的是rollup,想看rollup的同学,可以查看我的往期文章。(实战 rollup 第一节入门) (rollup 实战第二节 搭建开发环境)(rollup 实战第二节 搭建开发环境)
esbuild 配置开发环境
|
XML 存储 IDE