bfg-common 1.2.200 → 1.2.201

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 (62) hide show
  1. package/assets/localization/local_be.json +1 -3
  2. package/assets/localization/local_en.json +1 -3
  3. package/assets/localization/local_hy.json +1 -3
  4. package/assets/localization/local_kk.json +1 -3
  5. package/assets/localization/local_ru.json +1 -3
  6. package/assets/localization/local_zh.json +1 -3
  7. package/assets/scss/common/icons/icons-2.scss +222 -222
  8. package/components/atoms/switch/Switch.vue +107 -107
  9. package/components/atoms/wizard/Wizard.vue +1 -0
  10. package/components/atoms/wizard/utils/utils.ts +486 -538
  11. package/components/common/BadBrowser.vue +114 -114
  12. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  13. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  14. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  15. package/components/common/browse/blocks/Title.vue +66 -66
  16. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  17. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  18. package/components/common/feedback/Feedback.vue +261 -261
  19. package/components/common/feedback/VisitPortal.vue +53 -53
  20. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  21. package/components/common/recursionTree/RecursionTree.vue +201 -201
  22. package/components/common/vm/actions/add/Add.vue +568 -687
  23. package/components/common/vm/actions/add/utils.ts +238 -118
  24. package/components/common/vm/actions/addOld/Add.vue +690 -0
  25. package/components/common/vm/actions/addOld/FolderTreeView.vue +83 -0
  26. package/components/common/vm/actions/addOld/utils.ts +118 -0
  27. package/components/common/vm/actions/clone/Clone.vue +545 -545
  28. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  29. package/components/common/vm/actions/clone/utils.ts +43 -43
  30. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +9 -6
  31. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +267 -0
  32. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  33. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  34. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  35. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  36. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  37. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  38. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  39. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  40. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  41. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  42. package/components/common/vm/actions/common/select/name/Name.vue +10 -5
  43. package/components/common/vm/actions/common/select/name/NameOld.vue +215 -0
  44. package/components/common/vm/actions/common/select/storage/Storage.vue +6 -4
  45. package/components/common/vm/actions/common/select/storage/StorageOld.vue +194 -0
  46. package/components/common/vm/actions/common/select/storage/config/config.ts +154 -154
  47. package/components/common/vm/utils/powerActions.ts +55 -55
  48. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  49. package/components/layout/theHeader/utils/localization.ts +32 -32
  50. package/composables/useLocal.ts +38 -38
  51. package/minify.js +146 -146
  52. package/models/interfaces.ts +49 -49
  53. package/models/store/interfaces.ts +37 -37
  54. package/models/store/storage/interfaces.ts +32 -32
  55. package/models/store/types.ts +43 -43
  56. package/modules/fixContentBuild/utils/methods.ts +114 -114
  57. package/package.json +1 -1
  58. package/public/spice-console/application/codec.js +257 -257
  59. package/public/spice-console/lib/rasterEngine.js +907 -907
  60. package/public/spice-console/network/spicechannel.js +369 -369
  61. package/utils/contentBuild.ts +34 -34
  62. package/utils/sendTask.ts +77 -77
@@ -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
+ }
@@ -1,55 +1,55 @@
1
- import type { API_UI_T_VmState } from '~/models/store/types'
2
- import type { UI_I_VmPowerActions } from '~/components/common/vm/models/interfaces'
3
-
4
- export const getPowerActionsByState = (
5
- state: API_UI_T_VmState
6
- ): UI_I_VmPowerActions => {
7
- const powerActions = {
8
- hard_stop: false,
9
- power_off: false,
10
- power_on: false,
11
- reset: false,
12
- restart_guest: false,
13
- shutdown_guest: false,
14
- suspend: false,
15
- }
16
- switch (state) {
17
- case 0: // Unknown
18
- powerActions.power_on = true
19
- powerActions.hard_stop = true
20
- break
21
- case 1: // Powered off
22
- powerActions.power_on = true
23
- break
24
- case 2: // Powered on
25
- powerActions.power_off = true
26
- powerActions.suspend = true
27
- powerActions.reset = true
28
- powerActions.hard_stop = true
29
- powerActions.shutdown_guest = true
30
- powerActions.restart_guest = true
31
- break
32
- case 3: // Suspended
33
- case 4: // Error
34
- case 5: // Warning
35
- powerActions.power_on = true
36
- powerActions.hard_stop = true
37
- break
38
- case 6: // Pending
39
- powerActions.hard_stop = true
40
- break
41
- case 7: // Paused
42
- powerActions.power_on = true
43
- powerActions.hard_stop = true
44
- break
45
- case 8: // Blocked
46
- case 9: // Shutting down
47
- case 10: // Shut off
48
- powerActions.hard_stop = true
49
- break
50
- default:
51
- powerActions.hard_stop = true
52
- }
53
-
54
- return powerActions
55
- }
1
+ import type { API_UI_T_VmState } from '~/models/store/types'
2
+ import type { UI_I_VmPowerActions } from '~/components/common/vm/models/interfaces'
3
+
4
+ export const getPowerActionsByState = (
5
+ state: API_UI_T_VmState
6
+ ): UI_I_VmPowerActions => {
7
+ const powerActions = {
8
+ hard_stop: false,
9
+ power_off: false,
10
+ power_on: false,
11
+ reset: false,
12
+ restart_guest: false,
13
+ shutdown_guest: false,
14
+ suspend: false,
15
+ }
16
+ switch (state) {
17
+ case 0: // Unknown
18
+ powerActions.power_on = true
19
+ powerActions.hard_stop = true
20
+ break
21
+ case 1: // Powered off
22
+ powerActions.power_on = true
23
+ break
24
+ case 2: // Powered on
25
+ powerActions.power_off = true
26
+ powerActions.suspend = true
27
+ powerActions.reset = true
28
+ powerActions.hard_stop = true
29
+ powerActions.shutdown_guest = true
30
+ powerActions.restart_guest = true
31
+ break
32
+ case 3: // Suspended
33
+ case 4: // Error
34
+ case 5: // Warning
35
+ powerActions.power_on = true
36
+ powerActions.hard_stop = true
37
+ break
38
+ case 6: // Pending
39
+ powerActions.hard_stop = true
40
+ break
41
+ case 7: // Paused
42
+ powerActions.power_on = true
43
+ powerActions.hard_stop = true
44
+ break
45
+ case 8: // Blocked
46
+ case 9: // Shutting down
47
+ case 10: // Shut off
48
+ powerActions.hard_stop = true
49
+ break
50
+ default:
51
+ powerActions.hard_stop = true
52
+ }
53
+
54
+ return powerActions
55
+ }
@@ -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,32 +1,32 @@
1
- import type { UI_T_LangValue } from '~/models/types'
2
-
3
- export const defineBrowserLangFunc = (): Exclude<UI_T_LangValue, 'BROWSER'> => {
4
- const browserLanguage: string = navigator.language
5
-
6
- let lang: Exclude<UI_T_LangValue, 'BROWSER'>
7
-
8
- switch (browserLanguage.substring(0, 2)) {
9
- case 'en':
10
- lang = 'en_US'
11
- break
12
- case 'ru':
13
- lang = 'ru_RU'
14
- break
15
- case 'hy':
16
- lang = 'hy_AM'
17
- break
18
- case 'zh':
19
- lang = 'zh_CHS'
20
- break
21
- case 'kk':
22
- lang = 'kk_KZ'
23
- break
24
- case 'be':
25
- lang = 'be_BY'
26
- break
27
- default:
28
- lang = 'en_US'
29
- break
30
- }
31
- return lang
32
- }
1
+ import type { UI_T_LangValue } from '~/models/types'
2
+
3
+ export const defineBrowserLangFunc = (): Exclude<UI_T_LangValue, 'BROWSER'> => {
4
+ const browserLanguage: string = navigator.language
5
+
6
+ let lang: Exclude<UI_T_LangValue, 'BROWSER'>
7
+
8
+ switch (browserLanguage.substring(0, 2)) {
9
+ case 'en':
10
+ lang = 'en_US'
11
+ break
12
+ case 'ru':
13
+ lang = 'ru_RU'
14
+ break
15
+ case 'hy':
16
+ lang = 'hy_AM'
17
+ break
18
+ case 'zh':
19
+ lang = 'zh_CHS'
20
+ break
21
+ case 'kk':
22
+ lang = 'kk_KZ'
23
+ break
24
+ case 'be':
25
+ lang = 'be_BY'
26
+ break
27
+ default:
28
+ lang = 'en_US'
29
+ break
30
+ }
31
+ return lang
32
+ }
@@ -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
+ }