update cli templates
This commit is contained in:
parent
af148a30cd
commit
ccad9d45c3
@ -4,8 +4,10 @@
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"dev:clean":"vite --force",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
"preview": "vite preview",
|
||||
"go":"pnpm voerkai18n extract && pnpm voerkai18n compile && vite"
|
||||
},
|
||||
"dependencies": {
|
||||
"@voerkai18n/cli": "workspace:^1.0.11",
|
||||
|
@ -25,6 +25,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
language: this.i18n.activeLanguage,
|
||||
tabIndex:0
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -41,21 +42,32 @@ export default {
|
||||
</script>
|
||||
<template>
|
||||
<div>
|
||||
<img alt="Vue logo" src="./assets/logo.png" />
|
||||
<h1>{{ t("中华人民共和国") }} </h1>
|
||||
<h2>{{ t("迎接中华民族的伟大复兴") }} </h2>
|
||||
<China :title="t('中华人民共和国')" />
|
||||
<Formatters />
|
||||
<h5>默认语言:{{ i18n.defaultLanguage }}</h5>
|
||||
<h5>当前语言:{{ i18n.activeLanguage.value }}</h5>
|
||||
<button :key="lng.name" v-for="lng of i18n.languages" @click="i18n.activeLanguage = lng.name"
|
||||
style="padding:8px;margin:8px;cursor:pointer"
|
||||
:style="{ 'outline': lng.name === i18n.activeLanguage.value ? '2px red solid' : '' }">{{ lng.title
|
||||
}}</button>
|
||||
<button @click="i18n.activeLanguage = 'de'" style="padding:8px;margin:8px;cursor:pointer"
|
||||
:style="{ 'outline': i18n.activeLanguage.value === 'de' ? '2px red solid' : '' }">德语</button>
|
||||
<button @click="i18n.activeLanguage = 'jp'" style="padding:8px;margin:8px;cursor:pointer"
|
||||
:style="{ 'outline': i18n.activeLanguage.value === 'jp' ? '2px red solid' : '' }">日语</button>
|
||||
<h1 class="navbar" id="title">
|
||||
VoerkaI18n多语言解决方案
|
||||
<div class="menu" >
|
||||
<button class="menuitem" :key="lng.name" v-for="lng of i18n.languages" @click="i18n.activeLanguage = lng.name"
|
||||
:style="{ 'outline': lng.name === i18n.activeLanguage.value ? '2px red solid' : '' }">{{ lng.title
|
||||
}}</button>
|
||||
<button class="menuitem" @click="i18n.activeLanguage = 'de'"
|
||||
:style="{ 'outline': i18n.activeLanguage.value === 'de' ? '2px red solid' : '' }">德语</button>
|
||||
<button class="menuitem" @click="i18n.activeLanguage = 'jp'"
|
||||
:style="{ 'outline': i18n.activeLanguage.value === 'jp' ? '2px red solid' : '' }">日语</button>
|
||||
</div>
|
||||
</h1>
|
||||
<span><b>默认语言:</b>{{ i18n.defaultLanguage }} <b>当前语言:</b>{{ i18n.activeLanguage.value }}</span>
|
||||
<div class="tabs">
|
||||
<div class="tab" title="" >
|
||||
<h3>{{ t("中华人民共和国") }} </h3>
|
||||
<h3>{{ t("迎接中华民族的伟大复兴") }} </h3>
|
||||
<China :title="t('中华人民共和国')" />
|
||||
</div>
|
||||
<div class="tab" style="flex:2;font-size:small">
|
||||
<Formatters />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -65,8 +77,50 @@ export default {
|
||||
font-family: Avenir, Helvetica, Arial, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-align: center;
|
||||
color: #2c3e50;
|
||||
margin-top: 60px;
|
||||
color: #2c3e50;
|
||||
margin-top:80px;
|
||||
}
|
||||
.navbar{
|
||||
position: fixed;
|
||||
margin:0;
|
||||
top:0;
|
||||
left:0;
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
background: #298df1;
|
||||
padding: 12px;
|
||||
color:white;
|
||||
text-align: left ;
|
||||
}
|
||||
.navbar>.menu{
|
||||
float:right;
|
||||
top:0;
|
||||
margin:0px;
|
||||
padding-right:20px;
|
||||
}
|
||||
|
||||
.navbar>.menu>.menuitem{
|
||||
padding:8px;
|
||||
margin:8px;
|
||||
cursor:pointer;
|
||||
}
|
||||
.tabs{
|
||||
width:100%;
|
||||
padding: 8px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
flex-direction: row;
|
||||
|
||||
}
|
||||
.tabs > .tab{
|
||||
position: relative;
|
||||
padding: 8px;
|
||||
background: #f3f3f3;
|
||||
min-height: 500px;
|
||||
margin:4px;
|
||||
color:rgb(4, 123, 202);
|
||||
flex:1;
|
||||
border-radius: 8px;
|
||||
}
|
||||
</style>
|
||||
|
@ -10,7 +10,7 @@ const count = ref(0)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div style="padding:16px;border:1px red solid;margin:0 auto;margin-bottom:16px;width:600px;">
|
||||
<div>
|
||||
<h2>{{ title }}</h2>
|
||||
<h3>{{ t("成立于{}年",1949)}} </h3>
|
||||
<h3>{{ t("首都:北京")}} </h3>
|
||||
|
@ -12,14 +12,16 @@ export default {
|
||||
components: { China },
|
||||
data() {
|
||||
return {
|
||||
NOW: null//new Date()
|
||||
NOW: new Date(),
|
||||
datetime:null
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<div style="padding:16px;border:1px red solid;line-height:120%;margin:0 auto;margin-bottom:16px;width:600px;text-align:left;">
|
||||
<div class="font-size:6px;">
|
||||
{{t("Hello world!")}}
|
||||
<table>
|
||||
<thead>
|
||||
<tr style="font-weight:bold;">
|
||||
@ -28,9 +30,17 @@ export default {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td colspan="2" >
|
||||
<select v-model="datetime" >
|
||||
<option default :value="null">空值</option>
|
||||
<option :value="NOW">现在</option>
|
||||
</select>
|
||||
</td></tr>
|
||||
<tr><td colspan="2" ><b>日期</b></td></tr>
|
||||
<tr><td>默认</td><td>{{ t("现在是{ value }", NOW) }}</td></tr>
|
||||
<tr><td>date</td><td>{{ t("现在是{ value | date }", NOW) }}</td></tr>
|
||||
<!-- <tr><td>默认</td><td>{{ t("现在是{ value }", NOW) }}</td></tr> -->
|
||||
<!-- <tr><td>date</td><td>{{ t("现在是{ value | date }", datetime) }}</td></tr>
|
||||
<tr><td>date|empty</td><td>{{ t("现在是{ value | date | empty }", datetime) }}</td></tr>
|
||||
<tr><td>date|empty('无')</td><td>{{ t("现在是{ value | date | empty('无') }", datetime) }}</td></tr>
|
||||
<tr><td>shortdate</td><td>{{ t("现在是{ value | shortdate }", NOW) }}</td></tr>
|
||||
<tr><td>time</td><td>{{ t("现在是{ value | time }", NOW) }}</td></tr>
|
||||
<tr><td>shorttime</td><td>{{ t("现在是{ value | shorttime }", NOW) }}</td></tr>
|
||||
@ -50,7 +60,7 @@ export default {
|
||||
<tr><td>millisecond</td><td>{{ t("现在是{ value | millisecond }", NOW) }}</td></tr>
|
||||
<tr><td>timestamp</td><td>{{ t("现在是{ value | timestamp }", NOW) }}</td></tr>
|
||||
<tr><td colspan="2" ><b>货币</b></td></tr>
|
||||
<tr><td>currency-cny</td><td>{{ t("商品价格:{ value | currency('CNY','元整',3)}", 788741) }}</td></tr>
|
||||
<tr><td>currency-cny</td><td>{{ t("商品价格:{ value | currency('CNY','元整',3)}", 788741) }}</td></tr> -->
|
||||
<tr><td>currency</td><td>{{ t("商品价格:{ value | currency }", 788741) }}</td></tr>
|
||||
<tr><td>capitalizeCurrency</td><td>{{ t("商品价格:{ value | capitalizeCurrency }", 788741) }}</td></tr>
|
||||
<tr><td>capitalizeCurrency</td><td>{{ t("商品价格:{ value | capitalizeCurrency(true) }", 788741.35) }}</td></tr>
|
||||
|
@ -1,32 +1,33 @@
|
||||
export default {
|
||||
"1": "Hello world!",
|
||||
"1": "Hello world!(EN)",
|
||||
"2": "The People's Republic of China",
|
||||
"3": "Welcome the great rejuvenation of the Chinese nation",
|
||||
"4": "Founded in {}",
|
||||
"5": "Capital: Beijing",
|
||||
"6": "VoerkaI18n多语言解决方案 ",
|
||||
"7": "Now is { value | date }",
|
||||
"8": "Now is { value | shortdate }",
|
||||
"9": "Now is { value | time }",
|
||||
"10": "Now is { value | shorttime }",
|
||||
"11": "Now is { value | year }",
|
||||
"12": "Now is { value | month }",
|
||||
"13": "Now is { value | day }",
|
||||
"14": "Now is { value | weekdayValue }",
|
||||
"15": "Now is { value | weekday }",
|
||||
"16": "Now is { value | shortWeekday }",
|
||||
"17": "Now is { value | monthName }",
|
||||
"18": "Now is { value | shorMonthName }",
|
||||
"19": "Now is { value | hour }",
|
||||
"20": "Now is { value | hour12 }",
|
||||
"21": "Now is { value | minute }",
|
||||
"22": "Now is { value | second }",
|
||||
"23": "Now is { value | millisecond }",
|
||||
"24": "Now is { value | timestamp }",
|
||||
"25": "Price: { value | currency }",
|
||||
"26": "Price: { value | capitalizeCurrency }",
|
||||
"27": "Now is { value }",
|
||||
"28": "Price: { value | currency('CNY','元整',3)}",
|
||||
"29": "Price:{ value | capitalizeCurrency(true) }",
|
||||
"30": "Count: { value | number }"
|
||||
"8": "Now is { value | date | empty }",
|
||||
"9": "Now is { value | date | empty('无') }",
|
||||
"10": "现在是{ value | shortdate }",
|
||||
"11": "现在是{ value | time }",
|
||||
"12": "现在是{ value | shorttime }",
|
||||
"13": "现在是{ value | year }",
|
||||
"14": "现在是{ value | month }",
|
||||
"15": "现在是{ value | day }",
|
||||
"16": "现在是{ value | weekdayValue }",
|
||||
"17": "现在是{ value | weekday }",
|
||||
"18": "现在是{ value | shortWeekday }",
|
||||
"19": "现在是{ value | monthName }",
|
||||
"20": "现在是{ value | shorMonthName }",
|
||||
"21": "现在是{ value | hour }",
|
||||
"22": "现在是{ value | hour12 }",
|
||||
"23": "现在是{ value | minute }",
|
||||
"24": "现在是{ value | second }",
|
||||
"25": "现在是{ value | millisecond }",
|
||||
"26": "现在是{ value | timestamp }",
|
||||
"27": "商品价格:{ value | currency('US ','元整',3)}",
|
||||
"28": "商品价格:{ value | currency }",
|
||||
"29": "商品价格:{ value | capitalizeCurrency }",
|
||||
"30": "商品价格:{ value | capitalizeCurrency(true) }",
|
||||
"31": "商品数量:{ value | number }"
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
/**
|
||||
|
||||
格式化器用来对翻译文本内容中的插值变量进行格式化,
|
||||
比如将一个数字格式化为货币格式,或者将一个日期格式化为友好的日期格式。
|
||||
|
||||
- 以下定义了一些格式化器,在中文场景下,会启用这些格式化器。
|
||||
import dayjs from "dayjs";
|
||||
const formatters = {
|
||||
"*":{ // 在所有语言下生效的格式化器
|
||||
$types:{...}, // 只作用于特定数据类型的默认格式化器
|
||||
.... // 全局格式化器
|
||||
},
|
||||
cn:{
|
||||
// 只作用于特定数据类型的格式化器
|
||||
$types:{
|
||||
Date:(value)=>dayjs(value).format("YYYY年MM月DD日 HH:mm:ss"),
|
||||
},
|
||||
date:(value)=>dayjs(value).format("YYYY年MM月DD日")
|
||||
bjTime:(value)=>"北京时间"+ value,
|
||||
[格式化器名称]:(value)=>{...},
|
||||
[格式化器名称]:(value)=>{...},
|
||||
[格式化器名称]:(value)=>{...},
|
||||
},
|
||||
en:{
|
||||
$types:{
|
||||
Date:(value)=>dayjs(value).format("YYYY/MM/DD HH:mm:ss"), // 默认的格式化器
|
||||
},
|
||||
date:(value)=>dayjs(value).format("YYYY/MM/DD")
|
||||
bjTime:(value)=>"BeiJing "+ value,
|
||||
[格式化器名称]:(value)=>{...},
|
||||
[格式化器名称]:(value)=>{...},
|
||||
[格式化器名称]:(value)=>{...},
|
||||
}
|
||||
}
|
||||
- 在翻译函数中使用格式化器的方法,示例如下:
|
||||
|
||||
t("Now is { value | date | bjTime }",{value: new Date()})
|
||||
其等效于:
|
||||
t(`Now is ${bjTime(date(value))",{value: new Date()})
|
||||
由于value分别经过两个管道符转换,上一个管道符的输出作为下一个管道符的输入,可以多次使用管道符。
|
||||
|
||||
最终的输出结果:
|
||||
中文: "现在是北京时间2022年3月1日"
|
||||
英文: "Now is BeiJing 2022/03/01"
|
||||
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
export default{
|
||||
// 在所有语言下生效的格式化器
|
||||
"*":{
|
||||
//[格式化名称]:(value)=>{...},
|
||||
//[格式化名称]:(value,arg)=>{...},
|
||||
},
|
||||
// 在所有语言下只作用于特定数据类型的格式化器
|
||||
$types:{
|
||||
|
||||
},
|
||||
zh:{
|
||||
$types:{
|
||||
// 所有类型的默认格式化器
|
||||
// "*":{
|
||||
|
||||
// },
|
||||
// Date:{
|
||||
|
||||
// },
|
||||
// Number:{
|
||||
|
||||
// },
|
||||
// String:{
|
||||
|
||||
// },
|
||||
// Array:{
|
||||
|
||||
// },
|
||||
// Object:{
|
||||
|
||||
// }
|
||||
}
|
||||
},
|
||||
en:{
|
||||
$types:{
|
||||
// 所有类型的默认格式化器
|
||||
// "*":{
|
||||
|
||||
// },
|
||||
// Date:{
|
||||
|
||||
// },
|
||||
// Number:{
|
||||
|
||||
// },
|
||||
// String:{
|
||||
|
||||
// },
|
||||
// Array:{
|
||||
|
||||
// },
|
||||
// Object:{
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
@ -6,27 +6,28 @@ export default {
|
||||
"首都:北京": 5,
|
||||
"VoerkaI18n多语言解决方案 ": 6,
|
||||
"现在是{ value | date }": 7,
|
||||
"现在是{ value | shortdate }": 8,
|
||||
"现在是{ value | time }": 9,
|
||||
"现在是{ value | shorttime }": 10,
|
||||
"现在是{ value | year }": 11,
|
||||
"现在是{ value | month }": 12,
|
||||
"现在是{ value | day }": 13,
|
||||
"现在是{ value | weekdayValue }": 14,
|
||||
"现在是{ value | weekday }": 15,
|
||||
"现在是{ value | shortWeekday }": 16,
|
||||
"现在是{ value | monthName }": 17,
|
||||
"现在是{ value | shorMonthName }": 18,
|
||||
"现在是{ value | hour }": 19,
|
||||
"现在是{ value | hour12 }": 20,
|
||||
"现在是{ value | minute }": 21,
|
||||
"现在是{ value | second }": 22,
|
||||
"现在是{ value | millisecond }": 23,
|
||||
"现在是{ value | timestamp }": 24,
|
||||
"商品价格:{ value | currency }": 25,
|
||||
"商品价格:{ value | capitalizeCurrency }": 26,
|
||||
"现在是{ value }": 27,
|
||||
"商品价格:{ value | currency('CNY','元整',3)}": 28,
|
||||
"商品价格:{ value | capitalizeCurrency(true) }": 29,
|
||||
"商品数量:{ value | number }": 30
|
||||
"现在是{ value | date | empty }": 8,
|
||||
"现在是{ value | date | empty('无') }": 9,
|
||||
"现在是{ value | shortdate }": 10,
|
||||
"现在是{ value | time }": 11,
|
||||
"现在是{ value | shorttime }": 12,
|
||||
"现在是{ value | year }": 13,
|
||||
"现在是{ value | month }": 14,
|
||||
"现在是{ value | day }": 15,
|
||||
"现在是{ value | weekdayValue }": 16,
|
||||
"现在是{ value | weekday }": 17,
|
||||
"现在是{ value | shortWeekday }": 18,
|
||||
"现在是{ value | monthName }": 19,
|
||||
"现在是{ value | shorMonthName }": 20,
|
||||
"现在是{ value | hour }": 21,
|
||||
"现在是{ value | hour12 }": 22,
|
||||
"现在是{ value | minute }": 23,
|
||||
"现在是{ value | second }": 24,
|
||||
"现在是{ value | millisecond }": 25,
|
||||
"现在是{ value | timestamp }": 26,
|
||||
"商品价格:{ value | currency('CNY','元整',3)}": 27,
|
||||
"商品价格:{ value | currency }": 28,
|
||||
"商品价格:{ value | capitalizeCurrency }": 29,
|
||||
"商品价格:{ value | capitalizeCurrency(true) }": 30,
|
||||
"商品数量:{ value | number }": 31
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
|
||||
import messageIds from "./idMap.js" // 语言ID映射文件
|
||||
import { translate,i18nScope } from "./runtime.js" // 运行时
|
||||
import runtime from "./runtime.js" // 运行时
|
||||
const { translate,i18nScope } = runtime
|
||||
import defaultFormatters from "./formatters/zh.js" // 默认语言格式化器
|
||||
const activeFormatters = defaultFormatters // 激活语言格式化器
|
||||
|
||||
@ -44,6 +45,7 @@ const loaders = {
|
||||
const scope = new i18nScope({
|
||||
...scopeSettings, // languages,defaultLanguage,activeLanguage,namespaces,formatters
|
||||
id : "vueapp", // 当前作用域的id,自动取当前工程的package.json的name
|
||||
debug : false, // 是否在控制台输出高度信息
|
||||
default : defaultMessages, // 默认语言包
|
||||
messages : activeMessages, // 当前语言包
|
||||
idMap : messageIds, // 消息id映射列表
|
||||
|
@ -1,212 +1,219 @@
|
||||
{
|
||||
"Hello world!": {
|
||||
"en": "Hello world!",
|
||||
"en": "Hello world!(EN)",
|
||||
"$file": [
|
||||
"App.vue"
|
||||
],
|
||||
"de": "Hello world!"
|
||||
"de": "Hello world!(DE)"
|
||||
},
|
||||
"中华人民共和国": {
|
||||
"en": "The People's Republic of China",
|
||||
"$file": [
|
||||
"App.vue"
|
||||
],
|
||||
"de": "中华人民共和国"
|
||||
"de": "中华人民共和国(DE)"
|
||||
},
|
||||
"迎接中华民族的伟大复兴": {
|
||||
"en": "Welcome the great rejuvenation of the Chinese nation",
|
||||
"$file": [
|
||||
"App.vue"
|
||||
],
|
||||
"de": "迎接中华民族的伟大复兴"
|
||||
"de": "迎接中华民族的伟大复兴(DE)"
|
||||
},
|
||||
"成立于{}年": {
|
||||
"en": "Founded in {}",
|
||||
"$file": [
|
||||
"components\\china.vue"
|
||||
],
|
||||
"de": "成立于{}年"
|
||||
"de": "成立于{}年(DE)"
|
||||
},
|
||||
"首都:北京": {
|
||||
"en": "Capital: Beijing",
|
||||
"$file": [
|
||||
"components\\china.vue"
|
||||
],
|
||||
"de": "首都:北京"
|
||||
"de": "首都:北京(DE)"
|
||||
},
|
||||
"VoerkaI18n多语言解决方案 ": {
|
||||
"en": "VoerkaI18n多语言解决方案 ",
|
||||
"$file": [
|
||||
"App.vue"
|
||||
],
|
||||
"de": "VoerkaI18n多语言解决方案 "
|
||||
"de": "VoerkaI18n多语言解决方案 (DE)"
|
||||
},
|
||||
"现在是{ value | date }": {
|
||||
"en": "Now is { value | date }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | date }"
|
||||
"de": "DE Now is { value | date }(DE)"
|
||||
},
|
||||
"现在是{ value | date | empty }": {
|
||||
"en": "Now is { value | date | empty }",
|
||||
"de": "Now is { value | date | empty }(DE)",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
]
|
||||
},
|
||||
"现在是{ value | date | empty('无') }": {
|
||||
"en": "Now is { value | date | empty('无') }",
|
||||
"de": "Now is { value | date | empty('无') } (DE) ",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
]
|
||||
},
|
||||
"现在是{ value | shortdate }": {
|
||||
"en": "Now is { value | shortdate }",
|
||||
"en": "现在是{ value | shortdate }",
|
||||
"de": "现在是{ value | shortdate }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | shortdate }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | time }": {
|
||||
"en": "Now is { value | time }",
|
||||
"en": "现在是{ value | time }",
|
||||
"de": "现在是{ value | time }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | time }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | shorttime }": {
|
||||
"en": "Now is { value | shorttime }",
|
||||
"en": "现在是{ value | shorttime }",
|
||||
"de": "现在是{ value | shorttime }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | shorttime }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | year }": {
|
||||
"en": "Now is { value | year }",
|
||||
"en": "现在是{ value | year }",
|
||||
"de": "现在是{ value | year }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | year }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | month }": {
|
||||
"en": "Now is { value | month }",
|
||||
"en": "现在是{ value | month }",
|
||||
"de": "现在是{ value | month }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | month }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | day }": {
|
||||
"en": "Now is { value | day }",
|
||||
"en": "现在是{ value | day }",
|
||||
"de": "现在是{ value | day }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | day }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | weekdayValue }": {
|
||||
"en": "Now is { value | weekdayValue }",
|
||||
"en": "现在是{ value | weekdayValue }",
|
||||
"de": "现在是{ value | weekdayValue }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | weekdayValue }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | weekday }": {
|
||||
"en": "Now is { value | weekday }",
|
||||
"en": "现在是{ value | weekday }",
|
||||
"de": "现在是{ value | weekday }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | weekday }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | shortWeekday }": {
|
||||
"en": "Now is { value | shortWeekday }",
|
||||
"en": "现在是{ value | shortWeekday }",
|
||||
"de": "现在是{ value | shortWeekday }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | shortWeekday }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | monthName }": {
|
||||
"en": "Now is { value | monthName }",
|
||||
"en": "现在是{ value | monthName }",
|
||||
"de": "现在是{ value | monthName }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | monthName }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | shorMonthName }": {
|
||||
"en": "Now is { value | shorMonthName }",
|
||||
"en": "现在是{ value | shorMonthName }",
|
||||
"de": "现在是{ value | shorMonthName }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | shorMonthName }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | hour }": {
|
||||
"en": "Now is { value | hour }",
|
||||
"en": "现在是{ value | hour }",
|
||||
"de": "现在是{ value | hour }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | hour }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | hour12 }": {
|
||||
"en": "Now is { value | hour12 }",
|
||||
"en": "现在是{ value | hour12 }",
|
||||
"de": "现在是{ value | hour12 }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | hour12 }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | minute }": {
|
||||
"en": "Now is { value | minute }",
|
||||
"en": "现在是{ value | minute }",
|
||||
"de": "现在是{ value | minute }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | minute }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | second }": {
|
||||
"en": "Now is { value | second }",
|
||||
"en": "现在是{ value | second }",
|
||||
"de": "现在是{ value | second }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | second }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | millisecond }": {
|
||||
"en": "Now is { value | millisecond }",
|
||||
"en": "现在是{ value | millisecond }",
|
||||
"de": "现在是{ value | millisecond }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | millisecond }"
|
||||
]
|
||||
},
|
||||
"现在是{ value | timestamp }": {
|
||||
"en": "Now is { value | timestamp }",
|
||||
"en": "现在是{ value | timestamp }",
|
||||
"de": "现在是{ value | timestamp }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value | timestamp }"
|
||||
},
|
||||
"商品价格:{ value | currency }": {
|
||||
"en": "Price: { value | currency }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "商品价格:{ value | currency }"
|
||||
},
|
||||
"商品价格:{ value | capitalizeCurrency }": {
|
||||
"en": "Price: { value | capitalizeCurrency }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "商品价格:{ value | capitalizeCurrency }"
|
||||
},
|
||||
"现在是{ value }": {
|
||||
"en": "Now is { value }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "现在是{ value }"
|
||||
]
|
||||
},
|
||||
"商品价格:{ value | currency('CNY','元整',3)}": {
|
||||
"en": "Price: { value | currency('CNY','元整',3)}",
|
||||
"en": "商品价格:{ value | currency('US ','元整',3)}",
|
||||
"de": "商品价格:{ value | currency('CNY','元整',3)}",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "商品价格:{ value | currency('CNY','元整',3)}"
|
||||
]
|
||||
},
|
||||
"商品价格:{ value | currency }": {
|
||||
"en": "商品价格:{ value | currency }",
|
||||
"de": "商品价格:{ value | currency }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
]
|
||||
},
|
||||
"商品价格:{ value | capitalizeCurrency }": {
|
||||
"en": "商品价格:{ value | capitalizeCurrency }",
|
||||
"de": "商品价格:{ value | capitalizeCurrency }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
]
|
||||
},
|
||||
"商品价格:{ value | capitalizeCurrency(true) }": {
|
||||
"en": "Price:{ value | capitalizeCurrency(true) }",
|
||||
"en": "商品价格:{ value | capitalizeCurrency(true) }",
|
||||
"de": "商品价格:{ value | capitalizeCurrency(true) }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "商品价格:{ value | capitalizeCurrency(true) }"
|
||||
]
|
||||
},
|
||||
"商品数量:{ value | number }": {
|
||||
"en": "Count: { value | number }",
|
||||
"en": "商品数量:{ value | number }",
|
||||
"de": "商品数量:{ value | number }",
|
||||
"$file": [
|
||||
"components\\formatters.vue"
|
||||
],
|
||||
"de": "商品数量:{ value | number }"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
{{if moduleType === "esm"}}
|
||||
import messageIds from "./idMap.js" // 语言ID映射文件
|
||||
{{if inlineRuntime }}import { translate,i18nScope } from "./runtime.js" // 运行时
|
||||
{{if inlineRuntime }}import runtime from "./runtime.js" // 运行时
|
||||
const { translate,i18nScope } = runtime
|
||||
import defaultFormatters from "./formatters/{{defaultLanguage}}.js" // 默认语言格式化器
|
||||
{{if defaultLanguage === activeLanguage}}const activeFormatters = defaultFormatters{{else}}import activeFormatters from "./formatters/{{activeLanguage}}.js"{{/if}} // 激活语言格式化器
|
||||
{{else}}import { translate,i18nScope } from "@voerkai18n/runtime"
|
||||
|
@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
{{if moduleType === "esm"}}
|
||||
export default{{else}}module.exports = {{/if}}{
|
||||
export default{{else}}module.exports = {{/if}} {
|
||||
// 格式化器参数
|
||||
$config:{
|
||||
|
||||
|
@ -15,11 +15,19 @@ import { computed,reactive,ref } from "vue"
|
||||
|
||||
function forceUpdate(app){
|
||||
function updateComponent(inst){
|
||||
if(inst && inst.update) inst.update()
|
||||
if(inst.subTree && inst.subTree.children){
|
||||
inst.subTree.children.forEach( vnode=>{
|
||||
if(vnode && vnode.component) updateComponent(vnode.component)
|
||||
})
|
||||
if(!inst) return
|
||||
if(inst.update) inst.update()
|
||||
if(inst.subTree){
|
||||
if(inst.subTree.children){
|
||||
inst.subTree.children.forEach( vnode=>{
|
||||
if(vnode && vnode.component) updateComponent(vnode.component)
|
||||
})
|
||||
}
|
||||
if(inst.subTree.dynamicChildren){
|
||||
inst.subTree.dynamicChildren.forEach( vnode=>{
|
||||
if(vnode && vnode.component) updateComponent(vnode.component)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
try{
|
||||
|
Loading…
x
Reference in New Issue
Block a user