bfg-common 1.2.115 → 1.2.117

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 (52) hide show
  1. package/assets/localization/local_be.json +2109 -2109
  2. package/assets/localization/local_en.json +2112 -2112
  3. package/assets/localization/local_hy.json +2112 -2112
  4. package/assets/localization/local_kk.json +2112 -2112
  5. package/assets/localization/local_ru.json +2112 -2112
  6. package/assets/localization/local_zh.json +2112 -2112
  7. package/components/atoms/switch/Switch.vue +107 -107
  8. package/components/common/BadBrowser.vue +114 -114
  9. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  10. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  11. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  12. package/components/common/browse/blocks/Title.vue +66 -66
  13. package/components/common/config/states.ts +14 -0
  14. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  15. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  16. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  17. package/components/common/feedback/Feedback.vue +261 -261
  18. package/components/common/feedback/VisitPortal.vue +53 -53
  19. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  20. package/components/common/recursionTree/RecursionTree.vue +201 -201
  21. package/components/common/vm/actions/clone/Clone.vue +545 -545
  22. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  23. package/components/common/vm/actions/clone/utils.ts +43 -43
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  29. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  30. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +447 -447
  31. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  32. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  33. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  34. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  35. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  36. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  37. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  38. package/components/common/vm/actions/common/select/storage/Storage.vue +194 -194
  39. package/components/common/vm/actions/common/select/storage/config/config.ts +154 -154
  40. package/components/common/vm/actions/utils.ts +57 -9
  41. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  42. package/composables/useLocal.ts +38 -38
  43. package/minify.js +146 -146
  44. package/models/store/interfaces.ts +37 -37
  45. package/models/store/storage/interfaces.ts +32 -32
  46. package/models/store/types.ts +43 -32
  47. package/modules/fixContentBuild/utils/methods.ts +114 -114
  48. package/package.json +1 -1
  49. package/public/spice-console/application/codec.js +257 -257
  50. package/public/spice-console/lib/rasterEngine.js +907 -907
  51. package/public/spice-console/network/spicechannel.js +369 -369
  52. package/utils/contentBuild.ts +34 -34
@@ -1,154 +1,154 @@
1
- import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
2
- import type {
3
- UI_I_ColumnKey,
4
- UI_I_HeadItem,
5
- UI_I_BodyItem,
6
- } from '~/components/atoms/table/dataGrid/models/interfaces'
7
- import type { UI_I_Localization } from '~/models/interfaces'
8
- import { UI_T_StorageColumnKeys } from '~/components/common/vm/actions/common/select/storage/models/types'
9
- import {
10
- constructColumnKey,
11
- constructHeadItem,
12
- } from '~/components/atoms/table/dataGrid/utils/constructDataTable'
13
- import {
14
- datastoreIconByState,
15
- datastoreLocalizationByState,
16
- } from '~/components/common/config/states'
17
-
18
- export const storageTableKeys: UI_T_StorageColumnKeys = [
19
- 'name',
20
- 'state',
21
- 'capacity_mb',
22
- 'provisioned_mb',
23
- 'free_mb',
24
- 'used_mb',
25
- 'type_text',
26
- 'thin_provisioning',
27
- 'access_mode',
28
- 'hardware_acceleration',
29
- 'drive_type',
30
- 'device',
31
- 'storage_io_control',
32
- ]
33
-
34
- const getItems = (
35
- localization: UI_I_Localization
36
- ): [string, boolean, string, string][] => {
37
- return [
38
- [localization.name, true, '96px', storageTableKeys[0]],
39
- [localization.state, true, '138px', storageTableKeys[1]],
40
- [localization.capacity, true, '110px', storageTableKeys[2]],
41
- [localization.provisioned, true, '128px', storageTableKeys[3]],
42
- [localization.free, true, '110px', storageTableKeys[4]],
43
- [localization.used, true, '110px', storageTableKeys[5]],
44
- [localization.type, true, '110px', storageTableKeys[6]],
45
- [localization.thinProvisioning, true, '132px', storageTableKeys[7]],
46
- [localization.access, true, '110px', storageTableKeys[8]],
47
- [localization.hardwareAcceleration, true, '134px', storageTableKeys[9]],
48
- [localization.driverType, true, '110px', storageTableKeys[10]],
49
- [localization.device, true, '110px', storageTableKeys[11]],
50
- [localization.storageIoControl, true, '110px', storageTableKeys[12]],
51
- ]
52
- }
53
-
54
- export const columnKeys = (
55
- localization: UI_I_Localization
56
- ): UI_I_ColumnKey[] => {
57
- const result: UI_I_ColumnKey[] = []
58
- getItems(localization).forEach((item, i) => {
59
- const col = i === 0 ? 'icon' : `col${i}`
60
- result.push(constructColumnKey(col, item[0], item[1]))
61
- })
62
- return result
63
- }
64
-
65
- export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
66
- const result: UI_I_HeadItem[] = []
67
- getItems(localization).forEach((item, i) => {
68
- const col = i === 0 ? 'icon' : `col${i}`
69
- result.push(constructHeadItem(col, item[0], item[3], true, item[2]))
70
- })
71
- return result
72
- }
73
-
74
- export const bodyItems = (
75
- data: UI_I_DatastoreTableItem[],
76
- localization: UI_I_Localization
77
- ): UI_I_BodyItem[][] => {
78
- const bodyItems: UI_I_BodyItem[][] = []
79
- const { $binary } = useNuxtApp()
80
-
81
- data.forEach((storage: UI_I_DatastoreTableItem, key: number) => {
82
- const state =
83
- localization[datastoreLocalizationByState[storage[storageTableKeys[1]]]]
84
- bodyItems.push([
85
- {
86
- key: 'icon',
87
- text: storage[storageTableKeys[0]].toString(),
88
- data: `vsphere-icon-${datastoreIconByState[storage.state]}`,
89
- id: key,
90
- },
91
- {
92
- key: 'col1',
93
- text: state,
94
- id: key,
95
- },
96
- {
97
- key: 'col2',
98
- text: $binary.round(storage.capacity[storageTableKeys[2]]),
99
- id: key,
100
- },
101
- {
102
- key: 'col3',
103
- text: $binary.round(storage.capacity[storageTableKeys[3]].toString()),
104
- id: key,
105
- },
106
- {
107
- key: 'col4',
108
- text: $binary.round(storage.capacity[storageTableKeys[4]].toString()),
109
- id: key,
110
- },
111
- {
112
- key: 'col5',
113
- text: $binary.round(storage.capacity[storageTableKeys[5]].toString()),
114
- id: key,
115
- },
116
- {
117
- key: 'col6',
118
- text: storage[storageTableKeys[6]].toString(),
119
- id: key,
120
- },
121
- {
122
- key: 'col7',
123
- text: storage[storageTableKeys[7]] ? localization.yes : localization.no,
124
- id: key,
125
- },
126
- {
127
- key: 'col8',
128
- text: storage[storageTableKeys[8]].toString(),
129
- id: key,
130
- },
131
- {
132
- key: 'col9',
133
- text: storage[storageTableKeys[9]].toString(),
134
- id: key,
135
- },
136
- {
137
- key: 'col10',
138
- text: storage[storageTableKeys[10]].toString(),
139
- id: key,
140
- },
141
- {
142
- key: 'col11',
143
- text: storage[storageTableKeys[11]].toString(),
144
- id: key,
145
- },
146
- {
147
- key: 'col12',
148
- text: storage[storageTableKeys[12]].toString(),
149
- id: key,
150
- },
151
- ])
152
- })
153
- return bodyItems
154
- }
1
+ import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
2
+ import type {
3
+ UI_I_ColumnKey,
4
+ UI_I_HeadItem,
5
+ UI_I_BodyItem,
6
+ } from '~/components/atoms/table/dataGrid/models/interfaces'
7
+ import type { UI_I_Localization } from '~/models/interfaces'
8
+ import { UI_T_StorageColumnKeys } from '~/components/common/vm/actions/common/select/storage/models/types'
9
+ import {
10
+ constructColumnKey,
11
+ constructHeadItem,
12
+ } from '~/components/atoms/table/dataGrid/utils/constructDataTable'
13
+ import {
14
+ datastoreIconByState,
15
+ datastoreLocalizationByState,
16
+ } from '~/components/common/config/states'
17
+
18
+ export const storageTableKeys: UI_T_StorageColumnKeys = [
19
+ 'name',
20
+ 'state',
21
+ 'capacity_mb',
22
+ 'provisioned_mb',
23
+ 'free_mb',
24
+ 'used_mb',
25
+ 'type_text',
26
+ 'thin_provisioning',
27
+ 'access_mode',
28
+ 'hardware_acceleration',
29
+ 'drive_type',
30
+ 'device',
31
+ 'storage_io_control',
32
+ ]
33
+
34
+ const getItems = (
35
+ localization: UI_I_Localization
36
+ ): [string, boolean, string, string][] => {
37
+ return [
38
+ [localization.name, true, '96px', storageTableKeys[0]],
39
+ [localization.state, true, '138px', storageTableKeys[1]],
40
+ [localization.capacity, true, '110px', storageTableKeys[2]],
41
+ [localization.provisioned, true, '128px', storageTableKeys[3]],
42
+ [localization.free, true, '110px', storageTableKeys[4]],
43
+ [localization.used, true, '110px', storageTableKeys[5]],
44
+ [localization.type, true, '110px', storageTableKeys[6]],
45
+ [localization.thinProvisioning, true, '132px', storageTableKeys[7]],
46
+ [localization.access, true, '110px', storageTableKeys[8]],
47
+ [localization.hardwareAcceleration, true, '134px', storageTableKeys[9]],
48
+ [localization.driverType, true, '110px', storageTableKeys[10]],
49
+ [localization.device, true, '110px', storageTableKeys[11]],
50
+ [localization.storageIoControl, true, '110px', storageTableKeys[12]],
51
+ ]
52
+ }
53
+
54
+ export const columnKeys = (
55
+ localization: UI_I_Localization
56
+ ): UI_I_ColumnKey[] => {
57
+ const result: UI_I_ColumnKey[] = []
58
+ getItems(localization).forEach((item, i) => {
59
+ const col = i === 0 ? 'icon' : `col${i}`
60
+ result.push(constructColumnKey(col, item[0], item[1]))
61
+ })
62
+ return result
63
+ }
64
+
65
+ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
66
+ const result: UI_I_HeadItem[] = []
67
+ getItems(localization).forEach((item, i) => {
68
+ const col = i === 0 ? 'icon' : `col${i}`
69
+ result.push(constructHeadItem(col, item[0], item[3], true, item[2]))
70
+ })
71
+ return result
72
+ }
73
+
74
+ export const bodyItems = (
75
+ data: UI_I_DatastoreTableItem[],
76
+ localization: UI_I_Localization
77
+ ): UI_I_BodyItem[][] => {
78
+ const bodyItems: UI_I_BodyItem[][] = []
79
+ const { $binary } = useNuxtApp()
80
+
81
+ data.forEach((storage: UI_I_DatastoreTableItem, key: number) => {
82
+ const state =
83
+ localization[datastoreLocalizationByState[storage[storageTableKeys[1]]]]
84
+ bodyItems.push([
85
+ {
86
+ key: 'icon',
87
+ text: storage[storageTableKeys[0]].toString(),
88
+ data: `vsphere-icon-${datastoreIconByState[storage.state]}`,
89
+ id: key,
90
+ },
91
+ {
92
+ key: 'col1',
93
+ text: state,
94
+ id: key,
95
+ },
96
+ {
97
+ key: 'col2',
98
+ text: $binary.round(storage.capacity[storageTableKeys[2]]),
99
+ id: key,
100
+ },
101
+ {
102
+ key: 'col3',
103
+ text: $binary.round(storage.capacity[storageTableKeys[3]].toString()),
104
+ id: key,
105
+ },
106
+ {
107
+ key: 'col4',
108
+ text: $binary.round(storage.capacity[storageTableKeys[4]].toString()),
109
+ id: key,
110
+ },
111
+ {
112
+ key: 'col5',
113
+ text: $binary.round(storage.capacity[storageTableKeys[5]].toString()),
114
+ id: key,
115
+ },
116
+ {
117
+ key: 'col6',
118
+ text: storage[storageTableKeys[6]].toString(),
119
+ id: key,
120
+ },
121
+ {
122
+ key: 'col7',
123
+ text: storage[storageTableKeys[7]] ? localization.yes : localization.no,
124
+ id: key,
125
+ },
126
+ {
127
+ key: 'col8',
128
+ text: storage[storageTableKeys[8]].toString(),
129
+ id: key,
130
+ },
131
+ {
132
+ key: 'col9',
133
+ text: storage[storageTableKeys[9]].toString(),
134
+ id: key,
135
+ },
136
+ {
137
+ key: 'col10',
138
+ text: storage[storageTableKeys[10]].toString(),
139
+ id: key,
140
+ },
141
+ {
142
+ key: 'col11',
143
+ text: storage[storageTableKeys[11]].toString(),
144
+ id: key,
145
+ },
146
+ {
147
+ key: 'col12',
148
+ text: storage[storageTableKeys[12]].toString(),
149
+ id: key,
150
+ },
151
+ ])
152
+ })
153
+ return bodyItems
154
+ }
@@ -36,18 +36,55 @@ export const constructDiskDevicesFunc = (
36
36
  | UI_I_CreateVmDataCdDvdDevice
37
37
  )[] =
38
38
  virtualHardwareHardDisks?.map((hardDisk: UI_I_SendDataNewHardDisk) => {
39
+ // let result:
40
+ // | UI_I_CreateVmDataNewDiskDevice
41
+ // | UI_I_CreateVmDataExistDiskDevice = {
42
+ // create: true,
43
+ // size: hardDisk.size,
44
+ // bus: hardDisk.bus || '',
45
+ // storage_id: hardDisk.storage?.id || '',
46
+ // provision_type: hardDisk.provision_type || '',
47
+ // disk_mode: hardDisk.disk_mode || '',
48
+ // boot_order: hardDisk.boot_order || 0,
49
+ // }
50
+ // TODO refactoring
39
51
  let result:
40
- | UI_I_CreateVmDataNewDiskDevice
41
- | UI_I_CreateVmDataExistDiskDevice = {
42
- create: true,
43
- size: hardDisk.size,
44
- bus: hardDisk.bus || '',
45
- storage_id: hardDisk.storage?.id || '',
46
- provision_type: hardDisk.provision_type || '',
47
- disk_mode: hardDisk.disk_mode || '',
48
- boot_order: hardDisk.boot_order || 0,
52
+ any = {
53
+ size: hardDisk.size ?? 0,
54
+ source: hardDisk.source ?? '',
55
+ storage_id: hardDisk.storage_id ?? '',
56
+ device_type: hardDisk.device_type ?? '',
57
+ bus: hardDisk.bus ?? '',
58
+ target: hardDisk.target ?? '',
59
+ boot_order: hardDisk.boot_order ?? 0,
60
+ provision_type: hardDisk.provision_type ?? '',
61
+ disk_mode: hardDisk.disk_mode ?? '',
62
+ sharing: hardDisk.sharing ?? false,
63
+ read_only: hardDisk.read_only ?? false,
64
+ shares: hardDisk.shares ?? 0,
65
+ cache: hardDisk.cache ?? '',
66
+ io: hardDisk.io ?? '',
67
+ limit_iops: hardDisk.limit_iops ?? 0,
68
+ discard: hardDisk.discard ?? '',
69
+ attach: hardDisk.attach ?? false,
70
+ detach: hardDisk.detach ?? false,
71
+ remove: hardDisk.remove ?? false,
72
+ create: hardDisk.create ?? true,
49
73
  }
50
74
  if (!hardDisk.create) {
75
+ // result = {
76
+ // create: false,
77
+ // // source: hardDisk.source,
78
+ // size: hardDisk.size,
79
+ // bus: hardDisk.bus || '',
80
+ // // device_type: hardDisk.device_type || '',
81
+ // storage_id: hardDisk.storage?.id || '',
82
+ // provision_type: hardDisk.provision_type || '',
83
+ // disk_mode: hardDisk.disk_mode || '',
84
+ // boot_order: hardDisk.boot_order || 0,
85
+ // }
86
+ // }
87
+ // TODO refactoring
51
88
  result = {
52
89
  create: false,
53
90
  // source: hardDisk.source,
@@ -58,6 +95,17 @@ export const constructDiskDevicesFunc = (
58
95
  provision_type: hardDisk.provision_type || '',
59
96
  disk_mode: hardDisk.disk_mode || '',
60
97
  boot_order: hardDisk.boot_order || 0,
98
+ target: hardDisk.target ?? '',
99
+ sharing: hardDisk.sharing ?? false,
100
+ read_only: hardDisk.read_only ?? false,
101
+ shares: hardDisk.shares ?? 0,
102
+ cache: hardDisk.cache ?? '',
103
+ io: hardDisk.io ?? '',
104
+ limit_iops: hardDisk.limit_iops ?? 0,
105
+ discard: hardDisk.discard ?? '',
106
+ attach: hardDisk.attach ?? false,
107
+ detach: hardDisk.detach ?? false,
108
+ remove: hardDisk.remove ?? false,
61
109
  }
62
110
  }
63
111
  return result
@@ -1,54 +1,54 @@
1
- <template>
2
- <div class="kerberos-auth">
3
- <atoms-alert
4
- v-show="isShowAlert"
5
- test-id="kerberos-authentication"
6
- status="alert-warning"
7
- :items="[localization.kerberosAuthenticationAlert]"
8
- @remove="isShowAlert = false"
9
- />
10
-
11
- <div class="kerberos-auth__inner">
12
- <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
- <input
14
- :id="item.label"
15
- v-model="kerberosType"
16
- type="radio"
17
- :value="item.value"
18
- />
19
- <label :for="item.label">
20
- {{ item.label }}
21
- </label>
22
- </div>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import { UI_I_Localization } from '~/models/interfaces'
29
- import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
- import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
- import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
-
33
- const localization = computed<UI_I_Localization>(() => useLocal())
34
-
35
- const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
- const isShowAlert = ref<boolean>(true)
37
-
38
- const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
- kerberosOptionsFunc(localization.value)
40
- )
41
- </script>
42
-
43
- <style lang="scss" scoped>
44
- .kerberos-auth {
45
- &__inner {
46
- margin-top: 12px;
47
- }
48
- }
49
-
50
- input[type='radio']:focus:checked + label::before,
51
- input[type='radio']:focus + label::before {
52
- box-shadow: inset 0 0 0 0.25rem #0094d2;
53
- }
54
- </style>
1
+ <template>
2
+ <div class="kerberos-auth">
3
+ <atoms-alert
4
+ v-show="isShowAlert"
5
+ test-id="kerberos-authentication"
6
+ status="alert-warning"
7
+ :items="[localization.kerberosAuthenticationAlert]"
8
+ @remove="isShowAlert = false"
9
+ />
10
+
11
+ <div class="kerberos-auth__inner">
12
+ <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
+ <input
14
+ :id="item.label"
15
+ v-model="kerberosType"
16
+ type="radio"
17
+ :value="item.value"
18
+ />
19
+ <label :for="item.label">
20
+ {{ item.label }}
21
+ </label>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { UI_I_Localization } from '~/models/interfaces'
29
+ import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
+ import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
+ import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
+
33
+ const localization = computed<UI_I_Localization>(() => useLocal())
34
+
35
+ const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
+ const isShowAlert = ref<boolean>(true)
37
+
38
+ const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
+ kerberosOptionsFunc(localization.value)
40
+ )
41
+ </script>
42
+
43
+ <style lang="scss" scoped>
44
+ .kerberos-auth {
45
+ &__inner {
46
+ margin-top: 12px;
47
+ }
48
+ }
49
+
50
+ input[type='radio']:focus:checked + label::before,
51
+ input[type='radio']:focus + label::before {
52
+ box-shadow: inset 0 0 0 0.25rem #0094d2;
53
+ }
54
+ </style>
@@ -1,38 +1,38 @@
1
- import localRu from '~/assets/localization/local_ru.json'
2
- import localEn from '~/assets/localization/local_en.json'
3
- import localHy from '~/assets/localization/local_hy.json'
4
- import localZh from '~/assets/localization/local_zh.json'
5
- import localKk from '~/assets/localization/local_kk.json'
6
- import localBe from '~/assets/localization/local_be.json'
7
- const locals = {
8
- localRu,
9
- localEn,
10
- localHy,
11
- localZh,
12
- localKk,
13
- localBe,
14
- }
15
- export const useLocal = () => {
16
- const config = useRuntimeConfig()
17
-
18
- const code: string = config?.public?.LOCALIZATION_CODE?.toLowerCase() || 'ru'
19
-
20
- document.getElementsByTagName('html')[0].setAttribute('lang', code)
21
-
22
- switch (code) {
23
- case 'ru':
24
- return locals.localRu
25
- case 'en':
26
- return locals.localEn
27
- case 'hy':
28
- return locals.localHy
29
- case 'zh':
30
- return locals.localZh
31
- case 'kk':
32
- return locals.localKk
33
- case 'be':
34
- return locals.localBe
35
- default:
36
- return locals.localRu
37
- }
38
- }
1
+ import localRu from '~/assets/localization/local_ru.json'
2
+ import localEn from '~/assets/localization/local_en.json'
3
+ import localHy from '~/assets/localization/local_hy.json'
4
+ import localZh from '~/assets/localization/local_zh.json'
5
+ import localKk from '~/assets/localization/local_kk.json'
6
+ import localBe from '~/assets/localization/local_be.json'
7
+ const locals = {
8
+ localRu,
9
+ localEn,
10
+ localHy,
11
+ localZh,
12
+ localKk,
13
+ localBe,
14
+ }
15
+ export const useLocal = () => {
16
+ const config = useRuntimeConfig()
17
+
18
+ const code: string = config?.public?.LOCALIZATION_CODE?.toLowerCase() || 'ru'
19
+
20
+ document.getElementsByTagName('html')[0].setAttribute('lang', code)
21
+
22
+ switch (code) {
23
+ case 'ru':
24
+ return locals.localRu
25
+ case 'en':
26
+ return locals.localEn
27
+ case 'hy':
28
+ return locals.localHy
29
+ case 'zh':
30
+ return locals.localZh
31
+ case 'kk':
32
+ return locals.localKk
33
+ case 'be':
34
+ return locals.localBe
35
+ default:
36
+ return locals.localRu
37
+ }
38
+ }