@varlet/cli 1.27.10 → 1.27.11-alpha.1653989396088

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/generators/base/README.md +6 -0
  2. package/generators/{base → config/default/base}/docs/home.zh-CN.md +0 -0
  3. package/generators/config/default/base/package.json +98 -0
  4. package/generators/{base → config/default/base}/types/basicComponent.d.ts +0 -0
  5. package/generators/{base → config/default/base}/types/button.d.ts +0 -0
  6. package/generators/{base → config/default/base}/types/index.d.ts +0 -0
  7. package/generators/{base → config/default/base}/varlet.config.js +0 -0
  8. package/generators/{sfc → config/default/sfc}/src/button/Button.vue +0 -2
  9. package/generators/config/default/sfc/src/button/__tests__/index.spec.js +7 -0
  10. package/generators/{sfc → config/default/sfc}/src/button/button.less +0 -0
  11. package/generators/{sfc → config/default/sfc}/src/button/docs/zh-CN.md +0 -0
  12. package/generators/{sfc → config/default/sfc}/src/button/example/BasicUse.vue +0 -0
  13. package/generators/{sfc → config/default/sfc}/src/button/example/ModifyColor.vue +0 -0
  14. package/generators/{sfc → config/default/sfc}/src/button/example/index.vue +0 -0
  15. package/generators/{sfc → config/default/sfc}/src/button/index.ts +0 -0
  16. package/generators/{tsx → config/default/tsx}/src/button/Button.tsx +0 -0
  17. package/generators/config/default/tsx/src/button/__tests__/index.spec.js +7 -0
  18. package/generators/{tsx → config/default/tsx}/src/button/button.less +0 -0
  19. package/generators/{tsx → config/default/tsx}/src/button/docs/zh-CN.md +0 -0
  20. package/generators/{tsx → config/default/tsx}/src/button/example/BasicUse.vue +0 -0
  21. package/generators/{tsx → config/default/tsx}/src/button/example/ModifyColor.vue +0 -0
  22. package/generators/{tsx → config/default/tsx}/src/button/example/index.vue +0 -0
  23. package/generators/{tsx → config/default/tsx}/src/button/index.ts +0 -0
  24. package/generators/config/i18n/base/docs/home.en-US.md +11 -0
  25. package/generators/config/i18n/base/docs/home.zh-CN.md +11 -0
  26. package/generators/{base → config/i18n/base}/package.json +2 -1
  27. package/generators/config/i18n/base/types/basicComponent.d.ts +7 -0
  28. package/generators/config/i18n/base/types/button.d.ts +12 -0
  29. package/generators/config/i18n/base/types/index.d.ts +6 -0
  30. package/generators/config/i18n/base/types/locale.d.ts +24 -0
  31. package/generators/config/i18n/base/varlet.config.js +115 -0
  32. package/generators/config/i18n/sfc/src/button/Button.vue +36 -0
  33. package/generators/config/i18n/sfc/src/button/__tests__/index.spec.js +7 -0
  34. package/generators/config/i18n/sfc/src/button/button.less +14 -0
  35. package/generators/config/i18n/sfc/src/button/docs/en-US.md +39 -0
  36. package/generators/config/i18n/sfc/src/button/docs/zh-CN.md +39 -0
  37. package/generators/config/i18n/sfc/src/button/example/BasicUse.vue +11 -0
  38. package/generators/config/i18n/sfc/src/button/example/ModifyColor.vue +11 -0
  39. package/generators/config/i18n/sfc/src/button/example/index.vue +17 -0
  40. package/generators/config/i18n/sfc/src/button/example/locale/en-US.ts +5 -0
  41. package/generators/config/i18n/sfc/src/button/example/locale/index.ts +23 -0
  42. package/generators/config/i18n/sfc/src/button/example/locale/zh-CN.ts +5 -0
  43. package/generators/config/i18n/sfc/src/button/index.ts +10 -0
  44. package/generators/config/i18n/sfc/src/locale/__tests__/index.spec.js +51 -0
  45. package/generators/config/i18n/sfc/src/locale/docs/en-US.md +32 -0
  46. package/generators/config/i18n/sfc/src/locale/docs/zh-CN.md +31 -0
  47. package/generators/config/i18n/sfc/src/locale/en-US.d.ts +5 -0
  48. package/generators/config/i18n/sfc/src/locale/en-US.ts +7 -0
  49. package/generators/config/i18n/sfc/src/locale/index.ts +67 -0
  50. package/generators/config/i18n/sfc/src/locale/zh-CN.d.ts +5 -0
  51. package/generators/config/i18n/sfc/src/locale/zh-CN.ts +7 -0
  52. package/generators/config/i18n/tsx/src/button/Button.tsx +35 -0
  53. package/generators/config/i18n/tsx/src/button/__tests__/index.spec.js +7 -0
  54. package/generators/config/i18n/tsx/src/button/button.less +14 -0
  55. package/generators/config/i18n/tsx/src/button/docs/en-US.md +39 -0
  56. package/generators/config/i18n/tsx/src/button/docs/zh-CN.md +39 -0
  57. package/generators/config/i18n/tsx/src/button/example/BasicUse.vue +11 -0
  58. package/generators/config/i18n/tsx/src/button/example/ModifyColor.vue +11 -0
  59. package/generators/config/i18n/tsx/src/button/example/index.vue +17 -0
  60. package/generators/config/i18n/tsx/src/button/example/locale/en-US.ts +5 -0
  61. package/generators/config/i18n/tsx/src/button/example/locale/index.ts +23 -0
  62. package/generators/config/i18n/tsx/src/button/example/locale/zh-CN.ts +5 -0
  63. package/generators/config/i18n/tsx/src/button/index.ts +10 -0
  64. package/generators/config/i18n/tsx/src/locale/__tests__/index.spec.js +51 -0
  65. package/generators/config/i18n/tsx/src/locale/docs/en-US.md +32 -0
  66. package/generators/config/i18n/tsx/src/locale/docs/zh-CN.md +31 -0
  67. package/generators/config/i18n/tsx/src/locale/en-US.d.ts +5 -0
  68. package/generators/config/i18n/tsx/src/locale/en-US.ts +7 -0
  69. package/generators/config/i18n/tsx/src/locale/index.ts +67 -0
  70. package/generators/config/i18n/tsx/src/locale/zh-CN.d.ts +5 -0
  71. package/generators/config/i18n/tsx/src/locale/zh-CN.ts +7 -0
  72. package/lib/commands/create.d.ts +3 -1
  73. package/lib/commands/create.js +44 -11
  74. package/lib/commands/gen.js +13 -4
  75. package/lib/index.js +5 -1
  76. package/package.json +6 -7
  77. package/site/pc/components/AppHeader.vue +3 -5
  78. package/generators/sfc/src/button/__tests__/index.spec.js +0 -8
  79. package/generators/tsx/src/button/__tests__/index.spec.js +0 -8
@@ -0,0 +1,51 @@
1
+ import enUS from '../en-US'
2
+ import { useLocale } from '../index'
3
+
4
+ function mockConsole(method, fn = () => {}) {
5
+ const originMethod = console[method]
6
+
7
+ console[method] = fn
8
+
9
+ return {
10
+ mockRestore() {
11
+ console[method] = originMethod
12
+ },
13
+ }
14
+ }
15
+
16
+ test('test add lang', () => {
17
+ const { add, use, pack, packs } = useLocale()
18
+
19
+ const LANG = 'custom'
20
+ const PACK = {
21
+ button: 'Custom Text',
22
+ }
23
+
24
+ add(LANG, PACK)
25
+ use(LANG)
26
+
27
+ expect(pack.value.lang).toBe(LANG)
28
+ expect(packs[LANG]).toBe(PACK)
29
+ })
30
+
31
+ test('test merge lang', () => {
32
+ const fn = jest.fn()
33
+ const { mockRestore } = mockConsole('warn', fn)
34
+ const { add, use, merge, pack } = useLocale()
35
+
36
+ const LANG = 'en-US'
37
+ const PACK = {
38
+ dialogTitle: 'Custom Text',
39
+ }
40
+
41
+ add(LANG, enUS)
42
+ use('zh_HK')
43
+ use(LANG)
44
+ merge('zh_HK', PACK)
45
+ merge(LANG, PACK)
46
+
47
+ expect(pack.value.button).toBe('Custom Text')
48
+ expect(fn).toHaveBeenCalledTimes(2)
49
+
50
+ mockRestore()
51
+ })
@@ -0,0 +1,32 @@
1
+ # Locale
2
+
3
+ ### Intro
4
+ Component library uses Chinese as the default language, support multi-language switch,
5
+ built-in support for `Chinese`, `English`.
6
+
7
+ ### Multi-language switch
8
+ The `Locale` component is introduced to realize multi-language switching, and `Locale.add` is used for language extension.
9
+
10
+ ```js
11
+ // playground-ignore
12
+ import { Locale } from 'packages/varlet-ui/types/index'
13
+ import enUS from 'packages/varlet-ui/es/locale/en-US'
14
+
15
+ Locale.add('en-US', enUS)
16
+ ```
17
+
18
+ Use `Locale.use` to switch languages.
19
+
20
+ ```js
21
+ // playground-ignore
22
+ Locale.use('en-US')
23
+ ```
24
+
25
+ Use `Locale.merge` to merge languages.
26
+
27
+ ```js
28
+ // playground-ignore
29
+ Locale.merge('en-US', {
30
+ button: 'Hello'
31
+ })
32
+ ```
@@ -0,0 +1,31 @@
1
+ # 国际化
2
+
3
+ ### 介绍
4
+ 组件库使用中文作为默认语言,支持多语言切换,内置支持 `中文`,`英文`。
5
+
6
+ ### 多语言切换
7
+ 引入 `Locale` 组件实现多语言切换,使用 `Locale.add` 进行语言扩展。
8
+
9
+ ```js
10
+ // playground-ignore
11
+ import { Locale } from 'packages/varlet-ui/types/index'
12
+ import enUS from 'packages/varlet-ui/es/locale/en-US'
13
+
14
+ Locale.add('en-US', enUS)
15
+ ```
16
+
17
+ 使用 `Locale.use` 进行切换语言
18
+
19
+ ```js
20
+ // playground-ignore
21
+ Locale.use('en-US')
22
+ ```
23
+
24
+ 使用 `Locale.merge` 进行语言合并
25
+
26
+ ```js
27
+ // playground-ignore
28
+ Locale.merge('en-US', {
29
+ button: 'Hello'
30
+ })
31
+ ```
@@ -0,0 +1,5 @@
1
+ import type { Pack } from '../../types'
2
+
3
+ declare const enUS: Pack
4
+
5
+ export default enUS
@@ -0,0 +1,7 @@
1
+ import { Pack } from './index'
2
+
3
+ // for component's internal
4
+ export default {
5
+ // Button component
6
+ button: 'Button'
7
+ } as Pack
@@ -0,0 +1,67 @@
1
+ import { ref } from 'vue'
2
+ import type { Ref } from 'vue'
3
+ import zhCN from './zh-CN'
4
+
5
+ export type Pack = {
6
+ // Button component
7
+ button: string
8
+
9
+ // internal
10
+ lang?: string
11
+ }
12
+
13
+ function useLocale<T = Pack>() {
14
+ const packs: Record<string, Partial<T>> = {}
15
+ const pack: Ref<Partial<T>> = ref({})
16
+
17
+ const add = (lang: string, pack: Partial<T> & { lang?: string }) => {
18
+ pack.lang = lang
19
+ packs[lang] = pack
20
+ }
21
+
22
+ const use = (lang: string) => {
23
+ if (!packs[lang]) {
24
+ console.warn(`The ${lang} does not exist. You can mount a language package using the add method`)
25
+ return {}
26
+ }
27
+
28
+ pack.value = packs[lang]
29
+ }
30
+
31
+ const merge = (lang: string, pack: Partial<T>) => {
32
+ if (!packs[lang]) {
33
+ console.warn(`The ${lang} does not exist. You can mount a language package using the add method`)
34
+ return
35
+ }
36
+
37
+ packs[lang] = { ...packs[lang], ...pack }
38
+
39
+ use(lang)
40
+ }
41
+
42
+ return {
43
+ packs,
44
+ pack,
45
+ add,
46
+ use,
47
+ merge,
48
+ }
49
+ }
50
+
51
+ const { packs, pack, add, use, merge } = useLocale()
52
+
53
+ add('zh-CN', zhCN)
54
+ use('zh-CN')
55
+
56
+ export { packs, pack, add, use, merge, useLocale }
57
+
58
+ export const _LocaleComponent = { packs, pack, add, use, merge, useLocale }
59
+
60
+ export default {
61
+ packs,
62
+ pack,
63
+ add,
64
+ use,
65
+ merge,
66
+ useLocale,
67
+ }
@@ -0,0 +1,5 @@
1
+ import type { Pack } from '../../types'
2
+
3
+ declare const zhCN: Pack
4
+
5
+ export default zhCN
@@ -0,0 +1,7 @@
1
+ import { Pack } from './index'
2
+
3
+ // for component's internal
4
+ export default {
5
+ // Button component
6
+ button: '按钮'
7
+ } as Pack
@@ -0,0 +1,35 @@
1
+ import { defineComponent, PropType } from 'vue'
2
+ import './button.less'
3
+
4
+ // i18n for component's internal
5
+ // import { pack } from '../locale'
6
+
7
+ export default defineComponent({
8
+ name: 'BButton',
9
+ props: {
10
+ color: {
11
+ type: String
12
+ },
13
+ onClick: {
14
+ type: Function as PropType<(e: Event) => void>
15
+ }
16
+ },
17
+ setup(props, { slots }) {
18
+ const handleClick = (e: Event) => props.onClick?.(e)
19
+
20
+ return () => {
21
+ const { color } = props
22
+
23
+ return <>
24
+ <button
25
+ class="basic-button"
26
+ style={{ background: color }}
27
+ onClick={ handleClick }
28
+ >
29
+ {/*{ pack.value.button }*/}
30
+ { slots.default?.() }
31
+ </button>
32
+ </>
33
+ }
34
+ }
35
+ })
@@ -0,0 +1,7 @@
1
+ import Button from '../index'
2
+ import { createApp } from 'vue'
3
+
4
+ test('test button use', () => {
5
+ const app = createApp({}).use(Button)
6
+ expect(app.component(Button.name)).toBeTruthy()
7
+ })
@@ -0,0 +1,14 @@
1
+ .basic-button {
2
+ display: flex;
3
+ padding: 10px;
4
+ background: #009688;
5
+ color: #fff;
6
+ outline: none;
7
+ border: none;
8
+ border-radius: 2px;
9
+ cursor: pointer;
10
+
11
+ &:active {
12
+ opacity: 0.9
13
+ }
14
+ }
@@ -0,0 +1,39 @@
1
+ # Button
2
+
3
+ ### Basic Use
4
+ ```html
5
+ <b-button>start</b-button>
6
+ ```
7
+
8
+ ```vue
9
+ import BasicUse from '../example/BasicUse'
10
+ ```
11
+
12
+ ### Theme Color Button
13
+ ```html
14
+ <b-button color="#009688">start</b-button>
15
+ ```
16
+
17
+ ```vue
18
+ import ModifyColor from '../example/ModifyColor'
19
+ ```
20
+
21
+ ## API
22
+
23
+ ### Props
24
+
25
+ | Prop | Description | Type | Default |
26
+ | --- | --- | --- | --- |
27
+ | `color` | 按钮颜色 | _string_ | `default` |
28
+
29
+ ### Events
30
+
31
+ | Event | Description | Arguments |
32
+ | --- | --- | --- |
33
+ | `click` | Triggered when the button is clicked | `event: Event` |
34
+
35
+ ### Slots
36
+
37
+ | Slot | Description | Arguments |
38
+ |-----------| --- | --- |
39
+ | `default` | Button content | `-` |
@@ -0,0 +1,39 @@
1
+ # 按钮
2
+
3
+ ### 基本使用
4
+ ```html
5
+ <b-button>组件库从我开始</b-button>
6
+ ```
7
+
8
+ ```vue
9
+ import BasicUse from '../example/BasicUse'
10
+ ```
11
+
12
+ ### 主题色按钮
13
+ ```html
14
+ <b-button color="#009688">组件库从我开始</b-button>
15
+ ```
16
+
17
+ ```vue
18
+ import ModifyColor from '../example/ModifyColor'
19
+ ```
20
+
21
+ ## API
22
+
23
+ ### 属性
24
+
25
+ | 参数 | 说明 | 类型 | 默认值 |
26
+ | --- | --- | --- | --- |
27
+ | `color` | 按钮颜色 | _string_ | `default` |
28
+
29
+ ### 事件
30
+
31
+ | 事件名 | 说明 | 参数 |
32
+ | --- | --- | --- |
33
+ | `click` | 点击按钮时触发 | `event: Event` |
34
+
35
+ ### 插槽
36
+
37
+ | 插槽名 | 说明 | 参数 |
38
+ | --- | --- | --- |
39
+ | `default` | 按钮内容 | `-` |
@@ -0,0 +1,11 @@
1
+ <script setup>
2
+ import Button from '../Button'
3
+ import { pack, use } from './locale'
4
+ import { watchLang } from 'packages/varlet-cli/site/utils'
5
+
6
+ watchLang(use)
7
+ </script>
8
+
9
+ <template>
10
+ <b-button>{{ pack.start }}</b-button>
11
+ </template>
@@ -0,0 +1,11 @@
1
+ <script setup>
2
+ import Button from '../Button'
3
+ import { pack, use } from './locale'
4
+ import { watchLang } from 'packages/varlet-cli/site/utils'
5
+
6
+ watchLang(use)
7
+ </script>
8
+
9
+ <template>
10
+ <b-button color="#03A9F4">{{ pack.start }}</b-button>
11
+ </template>
@@ -0,0 +1,17 @@
1
+ <script setup>
2
+ import AppType from '@varlet/cli/site/mobile/components/AppType'
3
+ import BasicUse from './BasicUse'
4
+ import ModifyColor from './ModifyColor'
5
+ import { pack, use } from './locale'
6
+ import { watchLang } from 'packages/varlet-cli/site/utils'
7
+
8
+ watchLang(use)
9
+ </script>
10
+
11
+ <template>
12
+ <app-type>{{ pack.basicUse }}</app-type>
13
+ <basic-use/>
14
+
15
+ <app-type>{{ pack.modifyColor }}</app-type>
16
+ <modify-color/>
17
+ </template>
@@ -0,0 +1,5 @@
1
+ export default {
2
+ basicUse: 'Basic use',
3
+ modifyColor: 'Modify Color',
4
+ start: 'Start'
5
+ }
@@ -0,0 +1,23 @@
1
+ // lib
2
+ import _zhCN from '../../../locale/zh-CN'
3
+ import _enCN from '../../../locale/en-US'
4
+ // mobile example doc
5
+ import zhCN from './zh-CN'
6
+ import enUS from './en-US'
7
+ import { useLocale, add as _add, use as _use } from '../../../locale'
8
+
9
+ const { add, use: exampleUse, pack, packs, merge } = useLocale()
10
+
11
+ const use = (lang: string) => {
12
+ _use(lang)
13
+ exampleUse(lang)
14
+ }
15
+
16
+ export { add, pack, packs, merge, use }
17
+
18
+ // lib
19
+ _add('zh-CN', _zhCN)
20
+ _add('en-US', _enCN)
21
+ // mobile example doc
22
+ add('zh-CN', zhCN as any)
23
+ add('en-US', enUS as any)
@@ -0,0 +1,5 @@
1
+ export default {
2
+ basicUse: '基本使用',
3
+ modifyColor: '修改颜色',
4
+ start: '起步'
5
+ }
@@ -0,0 +1,10 @@
1
+ import type { App } from 'vue'
2
+ import Button from './Button.vue'
3
+
4
+ Button.install = function (app: App) {
5
+ app.component(Button.name, Button)
6
+ }
7
+
8
+ export const _ButtonComponent = Button
9
+
10
+ export default Button
@@ -0,0 +1,51 @@
1
+ import enUS from '../en-US'
2
+ import { useLocale } from '../index'
3
+
4
+ function mockConsole(method, fn = () => {}) {
5
+ const originMethod = console[method]
6
+
7
+ console[method] = fn
8
+
9
+ return {
10
+ mockRestore() {
11
+ console[method] = originMethod
12
+ },
13
+ }
14
+ }
15
+
16
+ test('test add lang', () => {
17
+ const { add, use, pack, packs } = useLocale()
18
+
19
+ const LANG = 'custom'
20
+ const PACK = {
21
+ button: 'Custom Text',
22
+ }
23
+
24
+ add(LANG, PACK)
25
+ use(LANG)
26
+
27
+ expect(pack.value.lang).toBe(LANG)
28
+ expect(packs[LANG]).toBe(PACK)
29
+ })
30
+
31
+ test('test merge lang', () => {
32
+ const fn = jest.fn()
33
+ const { mockRestore } = mockConsole('warn', fn)
34
+ const { add, use, merge, pack } = useLocale()
35
+
36
+ const LANG = 'en-US'
37
+ const PACK = {
38
+ dialogTitle: 'Custom Text',
39
+ }
40
+
41
+ add(LANG, enUS)
42
+ use('zh_HK')
43
+ use(LANG)
44
+ merge('zh_HK', PACK)
45
+ merge(LANG, PACK)
46
+
47
+ expect(pack.value.button).toBe('Custom Text')
48
+ expect(fn).toHaveBeenCalledTimes(2)
49
+
50
+ mockRestore()
51
+ })
@@ -0,0 +1,32 @@
1
+ # Locale
2
+
3
+ ### Intro
4
+ Component library uses Chinese as the default language, support multi-language switch,
5
+ built-in support for `Chinese`, `English`.
6
+
7
+ ### Multi-language switch
8
+ The `Locale` component is introduced to realize multi-language switching, and `Locale.add` is used for language extension.
9
+
10
+ ```js
11
+ // playground-ignore
12
+ import { Locale } from 'packages/varlet-ui/types/index'
13
+ import enUS from 'packages/varlet-ui/es/locale/en-US'
14
+
15
+ Locale.add('en-US', enUS)
16
+ ```
17
+
18
+ Use `Locale.use` to switch languages.
19
+
20
+ ```js
21
+ // playground-ignore
22
+ Locale.use('en-US')
23
+ ```
24
+
25
+ Use `Locale.merge` to merge languages.
26
+
27
+ ```js
28
+ // playground-ignore
29
+ Locale.merge('en-US', {
30
+ button: 'Hello'
31
+ })
32
+ ```
@@ -0,0 +1,31 @@
1
+ # 国际化
2
+
3
+ ### 介绍
4
+ 组件库使用中文作为默认语言,支持多语言切换,内置支持 `中文`,`英文`。
5
+
6
+ ### 多语言切换
7
+ 引入 `Locale` 组件实现多语言切换,使用 `Locale.add` 进行语言扩展。
8
+
9
+ ```js
10
+ // playground-ignore
11
+ import { Locale } from 'packages/varlet-ui/types/index'
12
+ import enUS from 'packages/varlet-ui/es/locale/en-US'
13
+
14
+ Locale.add('en-US', enUS)
15
+ ```
16
+
17
+ 使用 `Locale.use` 进行切换语言
18
+
19
+ ```js
20
+ // playground-ignore
21
+ Locale.use('en-US')
22
+ ```
23
+
24
+ 使用 `Locale.merge` 进行语言合并
25
+
26
+ ```js
27
+ // playground-ignore
28
+ Locale.merge('en-US', {
29
+ button: 'Hello'
30
+ })
31
+ ```
@@ -0,0 +1,5 @@
1
+ import type { Pack } from '../../types'
2
+
3
+ declare const enUS: Pack
4
+
5
+ export default enUS
@@ -0,0 +1,7 @@
1
+ import { Pack } from './index'
2
+
3
+ // for component's internal
4
+ export default {
5
+ // Button component
6
+ button: 'Button'
7
+ } as Pack
@@ -0,0 +1,67 @@
1
+ import { ref } from 'vue'
2
+ import type { Ref } from 'vue'
3
+ import zhCN from './zh-CN'
4
+
5
+ export type Pack = {
6
+ // Button component
7
+ button: string
8
+
9
+ // internal
10
+ lang?: string
11
+ }
12
+
13
+ function useLocale<T = Pack>() {
14
+ const packs: Record<string, Partial<T>> = {}
15
+ const pack: Ref<Partial<T>> = ref({})
16
+
17
+ const add = (lang: string, pack: Partial<T> & { lang?: string }) => {
18
+ pack.lang = lang
19
+ packs[lang] = pack
20
+ }
21
+
22
+ const use = (lang: string) => {
23
+ if (!packs[lang]) {
24
+ console.warn(`The ${lang} does not exist. You can mount a language package using the add method`)
25
+ return {}
26
+ }
27
+
28
+ pack.value = packs[lang]
29
+ }
30
+
31
+ const merge = (lang: string, pack: Partial<T>) => {
32
+ if (!packs[lang]) {
33
+ console.warn(`The ${lang} does not exist. You can mount a language package using the add method`)
34
+ return
35
+ }
36
+
37
+ packs[lang] = { ...packs[lang], ...pack }
38
+
39
+ use(lang)
40
+ }
41
+
42
+ return {
43
+ packs,
44
+ pack,
45
+ add,
46
+ use,
47
+ merge,
48
+ }
49
+ }
50
+
51
+ const { packs, pack, add, use, merge } = useLocale()
52
+
53
+ add('zh-CN', zhCN)
54
+ use('zh-CN')
55
+
56
+ export { packs, pack, add, use, merge, useLocale }
57
+
58
+ export const _LocaleComponent = { packs, pack, add, use, merge, useLocale }
59
+
60
+ export default {
61
+ packs,
62
+ pack,
63
+ add,
64
+ use,
65
+ merge,
66
+ useLocale,
67
+ }
@@ -0,0 +1,5 @@
1
+ import type { Pack } from '../../types'
2
+
3
+ declare const zhCN: Pack
4
+
5
+ export default zhCN
@@ -0,0 +1,7 @@
1
+ import { Pack } from './index'
2
+
3
+ // for component's internal
4
+ export default {
5
+ // Button component
6
+ button: '按钮'
7
+ } as Pack
@@ -1 +1,3 @@
1
- export declare function create(name: string): Promise<void>;
1
+ export declare function create(name: string, cmd: {
2
+ disableI18n?: boolean;
3
+ }): Promise<void>;