Skip to content

Commit 5926a6a

Browse files
authored
feat: global type definition (#508)
* remove message type at vue layer * implement: global type definition for locale message * implement: global type definition for datetime format * refactoring * implement: global type definition for number format * refactoring * update comments * add examples * fix lint warnings and formatting
1 parent d3fda29 commit 5926a6a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1882
-669
lines changed

examples/type-safe/README.md

Lines changed: 0 additions & 27 deletions
This file was deleted.
File renamed without changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# global-type-definition
2+
3+
This is one of the type-safe i18n resources examples.
4+
5+
This example is how to usage of global type definition for i18n resources in global scope.
File renamed without changes.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "global-type-definition",
3+
"version": "0.0.0",
4+
"private": true,
5+
"scripts": {
6+
"dev": "vite",
7+
"build": "vue-tsc --noEmit && vite build",
8+
"serve": "vite preview"
9+
},
10+
"dependencies": {
11+
"vue": "^3.0.11",
12+
"vue-i18n": "link:../../packages/vue-i18n"
13+
},
14+
"devDependencies": {
15+
"@vitejs/plugin-vue": "^1.2.2",
16+
"@vue/compiler-sfc": "^3.0.11",
17+
"typescript": "^4.1.3",
18+
"vite": "^2.3.4",
19+
"vue-tsc": "^0.0.24"
20+
}
21+
}
File renamed without changes.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<template>
2+
<HelloWorld />
3+
</template>
4+
5+
<script lang="ts">
6+
import { defineComponent } from 'vue'
7+
import HelloWorld from './components/HelloWorld.vue'
8+
9+
export default defineComponent({
10+
name: 'App',
11+
components: {
12+
HelloWorld
13+
}
14+
})
15+
</script>
16+
17+
<style>
18+
#app {
19+
font-family: Avenir, Helvetica, Arial, sans-serif;
20+
-webkit-font-smoothing: antialiased;
21+
-moz-osx-font-smoothing: grayscale;
22+
text-align: center;
23+
color: #2c3e50;
24+
margin-top: 60px;
25+
}
26+
</style>
File renamed without changes.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<p>`t` resource key completion: {{ t('menu.login') }}</p>
3+
<p>`d` resource key completion: {{ d(new Date(), 'short') }}</p>
4+
<p>`n` resource key completion: {{ n(1000, 'currency') }}</p>
5+
</template>
6+
7+
<script lang="ts">
8+
import { defineComponent } from 'vue'
9+
import { useI18n } from 'vue-i18n'
10+
11+
export default defineComponent({
12+
name: 'HelloWorld',
13+
setup() {
14+
// use global scope
15+
const { t, d, n } = useI18n({
16+
inheritLocale: true,
17+
})
18+
return { t, d, n }
19+
}
20+
})
21+
</script>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"hello": "こんにちは、世界!",
3+
"menu": {
4+
"login": "ログイン"
5+
},
6+
"errors": ["エラー!"]
7+
}

0 commit comments

Comments
 (0)