@xen-orchestra/web-core 0.34.0 → 0.35.1
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.
- package/lib/components/dropdown/{DropdownTitle.vue → VtsDropdownTitle.vue} +4 -4
- package/lib/components/input-wrapper/VtsInputWrapper.vue +1 -10
- package/lib/components/menu/MenuList.vue +1 -1
- package/lib/components/size-progress-cell/VtsSizeProgressCell.vue +36 -0
- package/lib/components/space-card/VtsSpaceCard.vue +94 -0
- package/lib/components/ui/label/UiLabel.vue +4 -15
- package/lib/components/ui/tag/UiTag.vue +2 -1
- package/lib/components/ui/text-area/UiTextarea.vue +1 -3
- package/lib/i18n.ts +4 -0
- package/lib/locales/cs.json +12 -2
- package/lib/locales/da.json +261 -0
- package/lib/locales/de.json +3 -1
- package/lib/locales/en.json +11 -1
- package/lib/locales/es.json +1 -1
- package/lib/locales/fa.json +1 -1
- package/lib/locales/fr.json +13 -3
- package/lib/locales/it.json +9 -0
- package/lib/locales/nl.json +10 -1
- package/lib/locales/pt_BR.json +75 -14
- package/lib/locales/ru.json +1 -1
- package/lib/locales/sv.json +1 -1
- package/lib/locales/uk.json +2 -2
- package/lib/packages/remote-resource/README.md +32 -0
- package/lib/packages/remote-resource/define-remote-resource.ts +94 -6
- package/lib/packages/remote-resource/sse.store.ts +140 -0
- package/lib/types/utility.type.ts +6 -0
- package/package.json +1 -1
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
TODO: Replace `span` with `UiButton` when new version (with tertiary) is available
|
|
4
4
|
-->
|
|
5
5
|
<template>
|
|
6
|
-
<div class="dropdown-title">
|
|
6
|
+
<div class="vts-dropdown-title">
|
|
7
7
|
<VtsIcon :name="icon" size="medium" />
|
|
8
|
-
<div class="
|
|
8
|
+
<div class="typo-caption-small">
|
|
9
9
|
<slot />
|
|
10
10
|
</div>
|
|
11
11
|
<div v-if="onToggleSelectAll" class="buttons">
|
|
@@ -41,12 +41,12 @@ const { t } = useI18n()
|
|
|
41
41
|
</script>
|
|
42
42
|
|
|
43
43
|
<style lang="postcss" scoped>
|
|
44
|
-
.dropdown-title {
|
|
44
|
+
.vts-dropdown-title {
|
|
45
45
|
display: flex;
|
|
46
46
|
align-items: center;
|
|
47
47
|
padding: 0.4rem 1.6rem;
|
|
48
48
|
gap: 0.8rem;
|
|
49
|
-
height: 2.
|
|
49
|
+
height: 2.9rem;
|
|
50
50
|
background: var(--color-neutral-background-secondary);
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="vts-input-wrapper">
|
|
3
|
-
<UiLabel
|
|
4
|
-
:accent="labelAccent"
|
|
5
|
-
:for="id"
|
|
6
|
-
:href="learnMoreUrl"
|
|
7
|
-
:icon
|
|
8
|
-
:required="wrapperController.required"
|
|
9
|
-
class="label"
|
|
10
|
-
>
|
|
3
|
+
<UiLabel :accent="labelAccent" :for="id" :href="learnMoreUrl" :required="wrapperController.required" class="label">
|
|
11
4
|
<slot name="label">{{ label }}</slot>
|
|
12
5
|
</UiLabel>
|
|
13
6
|
<slot />
|
|
@@ -21,7 +14,6 @@
|
|
|
21
14
|
import UiInfo, { type InfoAccent } from '@core/components/ui/info/UiInfo.vue'
|
|
22
15
|
import UiLabel, { type LabelAccent } from '@core/components/ui/label/UiLabel.vue'
|
|
23
16
|
import { useRanked } from '@core/composables/ranked.composable.ts'
|
|
24
|
-
import type { IconName } from '@core/icons'
|
|
25
17
|
import { useMapper } from '@core/packages/mapper/use-mapper.ts'
|
|
26
18
|
import type { MaybeArray } from '@core/types/utility.type'
|
|
27
19
|
import { IK_INPUT_WRAPPER_CONTROLLER } from '@core/utils/injection-keys.util'
|
|
@@ -40,7 +32,6 @@ export type InputWrapperController = {
|
|
|
40
32
|
const { message: _message } = defineProps<{
|
|
41
33
|
label?: string
|
|
42
34
|
learnMoreUrl?: string
|
|
43
|
-
icon?: IconName
|
|
44
35
|
message?: InputWrapperMessage
|
|
45
36
|
}>()
|
|
46
37
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="progress-cell">
|
|
3
|
+
<VtsProgressBar :current :total noruler class="progress" />
|
|
4
|
+
<span>{{ n(percentage / 100, { maximumFractionDigits: 0, style: 'percent' }) }}</span>
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import VtsProgressBar from '@core/components/progress-bar/VtsProgressBar.vue'
|
|
10
|
+
import { useProgress } from '@core/packages/progress/use-progress.ts'
|
|
11
|
+
import { useI18n } from 'vue-i18n'
|
|
12
|
+
|
|
13
|
+
const { current, total } = defineProps<{
|
|
14
|
+
current: number
|
|
15
|
+
total: number
|
|
16
|
+
}>()
|
|
17
|
+
|
|
18
|
+
const { n } = useI18n()
|
|
19
|
+
|
|
20
|
+
const { percentage } = useProgress(
|
|
21
|
+
() => current,
|
|
22
|
+
() => total
|
|
23
|
+
)
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<style lang="postcss" scoped>
|
|
27
|
+
.progress-cell {
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
gap: 0.8rem;
|
|
31
|
+
|
|
32
|
+
.progress {
|
|
33
|
+
flex-grow: 1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
</style>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<UiCard class="card-container">
|
|
3
|
+
<UiCardTitle>
|
|
4
|
+
{{ t('space') }}
|
|
5
|
+
</UiCardTitle>
|
|
6
|
+
|
|
7
|
+
<div class="content">
|
|
8
|
+
<VtsProgressBar noruler :current="used" :total :label legend-type="percent" class="progress" />
|
|
9
|
+
|
|
10
|
+
<VtsCardRowKeyValue>
|
|
11
|
+
<template #key>{{ t('used-space') }}</template>
|
|
12
|
+
<template #value>{{ usedSpace.formattedValue }}</template>
|
|
13
|
+
<template v-if="usedSpace.rawValue > 0" #addons>
|
|
14
|
+
<VtsCopyButton :value="usedSpace.formattedValue" />
|
|
15
|
+
</template>
|
|
16
|
+
</VtsCardRowKeyValue>
|
|
17
|
+
|
|
18
|
+
<VtsCardRowKeyValue>
|
|
19
|
+
<template #key>{{ t('free-space') }}</template>
|
|
20
|
+
<template #value>
|
|
21
|
+
{{ freeSpace.formattedValue }}
|
|
22
|
+
</template>
|
|
23
|
+
<template v-if="freeSpace.rawValue > 0" #addons>
|
|
24
|
+
<VtsCopyButton :value="freeSpace.formattedValue" />
|
|
25
|
+
</template>
|
|
26
|
+
</VtsCardRowKeyValue>
|
|
27
|
+
|
|
28
|
+
<VtsCardRowKeyValue>
|
|
29
|
+
<template #key>{{ totalSizeLabel ? totalSizeLabel : t('size') }}</template>
|
|
30
|
+
<template #value>
|
|
31
|
+
{{ totalSpace.formattedValue }}
|
|
32
|
+
</template>
|
|
33
|
+
<template v-if="totalSpace.rawValue > 0" #addons>
|
|
34
|
+
<VtsCopyButton :value="totalSpace.formattedValue" />
|
|
35
|
+
</template>
|
|
36
|
+
</VtsCardRowKeyValue>
|
|
37
|
+
</div>
|
|
38
|
+
</UiCard>
|
|
39
|
+
</template>
|
|
40
|
+
|
|
41
|
+
<script setup lang="ts">
|
|
42
|
+
import VtsCardRowKeyValue from '@core/components/card/VtsCardRowKeyValue.vue'
|
|
43
|
+
import VtsCopyButton from '@core/components/copy-button/VtsCopyButton.vue'
|
|
44
|
+
import VtsProgressBar from '@core/components/progress-bar/VtsProgressBar.vue'
|
|
45
|
+
import UiCard from '@core/components/ui/card/UiCard.vue'
|
|
46
|
+
import UiCardTitle from '@core/components/ui/card-title/UiCardTitle.vue'
|
|
47
|
+
import { formatSize } from '@core/utils/size.util'
|
|
48
|
+
import { computed } from 'vue'
|
|
49
|
+
import { useI18n } from 'vue-i18n'
|
|
50
|
+
|
|
51
|
+
const { used, total } = defineProps<{
|
|
52
|
+
used: number
|
|
53
|
+
total: number
|
|
54
|
+
label: string
|
|
55
|
+
totalSizeLabel?: string
|
|
56
|
+
}>()
|
|
57
|
+
|
|
58
|
+
const { t } = useI18n()
|
|
59
|
+
|
|
60
|
+
const usedSpace = computed(() => ({
|
|
61
|
+
formattedValue: formatSize(used, 2),
|
|
62
|
+
rawValue: used,
|
|
63
|
+
}))
|
|
64
|
+
|
|
65
|
+
const totalSpace = computed(() => ({
|
|
66
|
+
formattedValue: formatSize(total, 2),
|
|
67
|
+
rawValue: total,
|
|
68
|
+
}))
|
|
69
|
+
|
|
70
|
+
const freeSpace = computed(() => {
|
|
71
|
+
const rawFreeSpace = total - used
|
|
72
|
+
|
|
73
|
+
return {
|
|
74
|
+
formattedValue: formatSize(rawFreeSpace, 2),
|
|
75
|
+
rawValue: rawFreeSpace,
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
</script>
|
|
79
|
+
|
|
80
|
+
<style scoped lang="postcss">
|
|
81
|
+
.card-container {
|
|
82
|
+
gap: 1.6rem;
|
|
83
|
+
|
|
84
|
+
.content {
|
|
85
|
+
display: flex;
|
|
86
|
+
flex-direction: column;
|
|
87
|
+
gap: 0.4rem;
|
|
88
|
+
|
|
89
|
+
.progress {
|
|
90
|
+
margin-block-end: 1.6rem;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
</style>
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- v3 -->
|
|
2
2
|
<template>
|
|
3
3
|
<div :class="toVariants({ accent })" class="ui-label">
|
|
4
|
-
<
|
|
5
|
-
<label :for="htmlFor" :class="{ required }" class="typo-caption label">
|
|
4
|
+
<label :for="htmlFor" :class="{ required }" class="typo-body-bold label">
|
|
6
5
|
<slot />
|
|
7
6
|
</label>
|
|
8
|
-
<UiLink v-if="href"
|
|
7
|
+
<UiLink v-if="href" size="small" :href>{{ t('learn-more') }}</UiLink>
|
|
9
8
|
</div>
|
|
10
9
|
</template>
|
|
11
10
|
|
|
12
11
|
<script lang="ts" setup>
|
|
13
|
-
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
14
12
|
import UiLink from '@core/components/ui/link/UiLink.vue'
|
|
15
|
-
import type { IconName } from '@core/icons'
|
|
16
13
|
import { toVariants } from '@core/utils/to-variants.util'
|
|
17
14
|
import { useI18n } from 'vue-i18n'
|
|
18
15
|
|
|
@@ -21,7 +18,6 @@ export type LabelAccent = 'neutral' | 'warning' | 'danger'
|
|
|
21
18
|
const { for: htmlFor } = defineProps<{
|
|
22
19
|
accent: LabelAccent
|
|
23
20
|
for?: string
|
|
24
|
-
icon?: IconName
|
|
25
21
|
required?: boolean
|
|
26
22
|
href?: string
|
|
27
23
|
}>()
|
|
@@ -33,10 +29,7 @@ const { t } = useI18n()
|
|
|
33
29
|
.ui-label {
|
|
34
30
|
display: flex;
|
|
35
31
|
align-items: center;
|
|
36
|
-
|
|
37
|
-
.icon {
|
|
38
|
-
margin-right: 0.8rem;
|
|
39
|
-
}
|
|
32
|
+
justify-content: space-between;
|
|
40
33
|
|
|
41
34
|
.label {
|
|
42
35
|
&.required::after {
|
|
@@ -46,10 +39,6 @@ const { t } = useI18n()
|
|
|
46
39
|
}
|
|
47
40
|
}
|
|
48
41
|
|
|
49
|
-
.learn-more-link {
|
|
50
|
-
margin-left: auto;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
42
|
/* ACCENT VARIANTS */
|
|
54
43
|
|
|
55
44
|
&.accent--neutral {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<slot name="icon">
|
|
6
6
|
<VtsIcon :name="icon" size="medium" />
|
|
7
7
|
</slot>
|
|
8
|
-
<span class="text-ellipsis">
|
|
8
|
+
<span v-tooltip class="text-ellipsis">
|
|
9
9
|
<slot />
|
|
10
10
|
</span>
|
|
11
11
|
</span>
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script lang="ts" setup>
|
|
15
15
|
import VtsIcon from '@core/components/icon/VtsIcon.vue'
|
|
16
|
+
import { vTooltip } from '@core/directives/tooltip.directive.ts'
|
|
16
17
|
import type { IconName } from '@core/icons'
|
|
17
18
|
import { toVariants } from '@core/utils/to-variants.util'
|
|
18
19
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- v2 -->
|
|
2
2
|
<template>
|
|
3
3
|
<div class="ui-textarea" :class="toVariants({ accent: hasMaxCharactersError ? 'danger' : accent })">
|
|
4
|
-
<UiLabel v-if="slots.default" :accent="labelAccent" :required :
|
|
4
|
+
<UiLabel v-if="slots.default" :accent="labelAccent" :required :href :for="id">
|
|
5
5
|
<slot />
|
|
6
6
|
</UiLabel>
|
|
7
7
|
<textarea v-bind="attrs" :id ref="textarea" v-model="model" :disabled class="textarea" />
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
import UiCharacterLimit from '@core/components/ui/character-limit/UiCharacterLimit.vue'
|
|
20
20
|
import UiInfo from '@core/components/ui/info/UiInfo.vue'
|
|
21
21
|
import UiLabel from '@core/components/ui/label/UiLabel.vue'
|
|
22
|
-
import type { IconName } from '@core/icons'
|
|
23
22
|
import { toVariants } from '@core/utils/to-variants.util'
|
|
24
23
|
import { useFocus } from '@vueuse/core'
|
|
25
24
|
import { computed, useAttrs, useId, useTemplateRef } from 'vue'
|
|
@@ -39,7 +38,6 @@ const {
|
|
|
39
38
|
maxCharacters?: number
|
|
40
39
|
disabled?: boolean
|
|
41
40
|
href?: string
|
|
42
|
-
icon?: IconName
|
|
43
41
|
required?: boolean
|
|
44
42
|
}>()
|
|
45
43
|
|
package/lib/i18n.ts
CHANGED
package/lib/locales/cs.json
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"api-info-details": "Podrobnosti o informaci z API",
|
|
35
35
|
"api-warning-details": "Podrobnosti o varování z API",
|
|
36
36
|
"appearance": "Vzhled",
|
|
37
|
+
"aria.breadcrumb.label": "Drobečková navigace",
|
|
37
38
|
"ascending": "vzestupně",
|
|
38
39
|
"auto-generated": "Automaticky vytvořeno",
|
|
39
40
|
"auto-power": "Automatické zapínání",
|
|
@@ -51,7 +52,11 @@
|
|
|
51
52
|
"backup-repository": "Repozitář pro zálohy (místní, NFS, SMB)",
|
|
52
53
|
"backup-targets": "Cíle zálohování",
|
|
53
54
|
"backup.full": "Plná záloha",
|
|
55
|
+
"backup.full-replication": "Úplná replikace",
|
|
54
56
|
"backup.incremental": "Přírůstková záloha",
|
|
57
|
+
"backup.incremental-replication": "Přírůstková replikace",
|
|
58
|
+
"backup.mirror.full": "Zrcadlová úplná záloha",
|
|
59
|
+
"backup.mirror.incremental": "Zrcadlová přírůstková záloha",
|
|
55
60
|
"backup.pool-metadata": "Metadata fondu",
|
|
56
61
|
"backup.rolling-snapshot": "Průběžně zachycovaný stav",
|
|
57
62
|
"backup.xo-config": "Nastavení XO",
|
|
@@ -74,7 +79,6 @@
|
|
|
74
79
|
"bond-devices": "Zařízení svazku",
|
|
75
80
|
"bond-status": "Stav svazku",
|
|
76
81
|
"boot-firmware": "Firmware zavádění",
|
|
77
|
-
"boot-firmware-bios": "Šablona už obsahuje řetězec BIOS",
|
|
78
82
|
"boot-firmware-uefi": "Firmware, kterým zaváděno, je UEFI",
|
|
79
83
|
"boot-vm": "Nastartovat virt. stroj",
|
|
80
84
|
"build-number": "Číslo sestavení",
|
|
@@ -289,6 +293,8 @@
|
|
|
289
293
|
"ip-addresses": "IP adresy",
|
|
290
294
|
"ip-mode": "Režim IP",
|
|
291
295
|
"ip-port-placeholder": "adresa[:port]",
|
|
296
|
+
"ipv4": "IPv4 adresa | IPv4 adresy",
|
|
297
|
+
"ipv6": "IPv6 adresa | IPv6 adresy",
|
|
292
298
|
"is-primary-host": "{name} je hlavní hostitel",
|
|
293
299
|
"iscsi-iqn": "iSCSI IQN název",
|
|
294
300
|
"iso-dvd": "ISO/DVD",
|
|
@@ -363,6 +369,7 @@
|
|
|
363
369
|
"manage-citrix-pv-drivers-via-windows-update": "Spravovat citrix PV ovladače prostřednictvím Windows Update",
|
|
364
370
|
"management": "Správa",
|
|
365
371
|
"management-agent-version": "Verze agenta pro správu",
|
|
372
|
+
"management-ip": "IP adresa správy",
|
|
366
373
|
"manufacturer-info": "Informace o výrobci",
|
|
367
374
|
"master": "Hlavní hostitel",
|
|
368
375
|
"maximum-cpu-limit": "Limit procesoru nejvýše",
|
|
@@ -379,7 +386,7 @@
|
|
|
379
386
|
"minimum-dynamic-memory": "Dynamicky přidělované paměti nejméně",
|
|
380
387
|
"minimum-static-memory": "Staticky přidělené paměti nejméně",
|
|
381
388
|
"missing-patches": "Chybějící záplaty",
|
|
382
|
-
"mode": "Režim",
|
|
389
|
+
"mode": "Režim | Režimy",
|
|
383
390
|
"more-actions": "Další akce",
|
|
384
391
|
"mtu": "MTU",
|
|
385
392
|
"multi-creation": "Vícenásobné vytvoření",
|
|
@@ -423,6 +430,7 @@
|
|
|
423
430
|
"no-config": "Žádné nastavení",
|
|
424
431
|
"no-data": "Žádné údaje",
|
|
425
432
|
"no-data-to-calculate": "Žádná data k výpočtu",
|
|
433
|
+
"no-hosts-detected": "Nezjištěni žádní hostitelé.",
|
|
426
434
|
"no-network-detected": "Nezjištěna žádná síť",
|
|
427
435
|
"no-pif-detected": "Nezjištěno žádné fyz. rozhraní",
|
|
428
436
|
"no-pools-detected": "Nezjištěny žádné fondy",
|
|
@@ -569,6 +577,7 @@
|
|
|
569
577
|
"snapshot": "Zachytit stav",
|
|
570
578
|
"snapshot-mode": "Režim zachyceného stavu",
|
|
571
579
|
"sockets-with-cores-per-socket": "{nSockets} patic × {nCores} jader/patici",
|
|
580
|
+
"software": "Software",
|
|
572
581
|
"software-tooling": "Software a nástroje",
|
|
573
582
|
"sort-by": "Seřadit podle",
|
|
574
583
|
"source-backup-repository": "Zdrojový repozitář záloh",
|
|
@@ -623,6 +632,7 @@
|
|
|
623
632
|
"tasks.quick-view.failed": "Nezdařilo se",
|
|
624
633
|
"tasks.quick-view.in-progress": "Probíhá",
|
|
625
634
|
"template": "Šablona",
|
|
635
|
+
"template-has-bios-strings": "Šablona už obsahuje řetězec BIOS",
|
|
626
636
|
"theme-auto": "Automaticky",
|
|
627
637
|
"theme-dark": "Tmavý",
|
|
628
638
|
"theme-light": "Světlý",
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
{
|
|
2
|
+
"about": "Om",
|
|
3
|
+
"accept-self-signed-certificates": "Accepter selvsignerede certifikater",
|
|
4
|
+
"access-xoa": "Tilgå XOA",
|
|
5
|
+
"account": "Konto",
|
|
6
|
+
"add": "Tilføj",
|
|
7
|
+
"add-filter": "Tilføj filter",
|
|
8
|
+
"admin-login": "Admin login",
|
|
9
|
+
"admin-password": "Admin password",
|
|
10
|
+
"admin-password-confirm": "Bekræft admin password",
|
|
11
|
+
"alarm-type.cpu_usage": "CPU forbrug overstiger @:n-percent",
|
|
12
|
+
"alarm-type.disk_usage": "Diskforbruget overstiger @:n-percent",
|
|
13
|
+
"alarm-type.fs_usage": "FS forbrug overstiger @:n-percent",
|
|
14
|
+
"alarm-type.log_fs_usage": "Log FS forbrug overstiger @:n-percent",
|
|
15
|
+
"alarm-type.mem_usage": "Hukommelsesforbruget overstiger @:n-percent",
|
|
16
|
+
"alarm-type.unknown": "Ukendt alarm type",
|
|
17
|
+
"alarms": "Alarmer",
|
|
18
|
+
"api-error-details": "API info detaljer",
|
|
19
|
+
"api-info-details": "AI Info detaljer",
|
|
20
|
+
"appearance": "Udseende",
|
|
21
|
+
"ascending": "stigende",
|
|
22
|
+
"auto-generated": "Automatisk genereret",
|
|
23
|
+
"available": "Tilgængelig",
|
|
24
|
+
"backup": "Backup",
|
|
25
|
+
"backup-network": "Backup netværk",
|
|
26
|
+
"backup.full": "Fuld backup",
|
|
27
|
+
"backups.jobs.disabled": "Deaktiveret",
|
|
28
|
+
"backups.jobs.looks-like-issue": "Det ser ud til, at der er et problem",
|
|
29
|
+
"bios-info": "BIOS information",
|
|
30
|
+
"bytes.gi": "GiB",
|
|
31
|
+
"bytes.ki": "KiB",
|
|
32
|
+
"bytes.mi": "MiB",
|
|
33
|
+
"cancel": "Annuller",
|
|
34
|
+
"click-to-display-alarms": "Klik for at vise alamer:",
|
|
35
|
+
"close": "Luk",
|
|
36
|
+
"coming-soon": "Kommer snart!",
|
|
37
|
+
"compression": "Kompression",
|
|
38
|
+
"configuration": "Konfiguration",
|
|
39
|
+
"configure-in-xo-5": "Konfigurer i XO 5",
|
|
40
|
+
"confirm-cancel": "Er du sikker på, at du vil annullere?",
|
|
41
|
+
"confirm-delete": "Du er ved at slette {0}",
|
|
42
|
+
"connect": "Forbind",
|
|
43
|
+
"connect-another-pool": "Forbind til en anden pool",
|
|
44
|
+
"connect-pool": "Forbind pool",
|
|
45
|
+
"connected": "Forbundet",
|
|
46
|
+
"connected-to-ip": "Forbundet til {ip}",
|
|
47
|
+
"connecting": "Forbinder",
|
|
48
|
+
"connection": "Forbindelse",
|
|
49
|
+
"connection-failed": "Forbindelse fejlede",
|
|
50
|
+
"connections": "Forbindelser",
|
|
51
|
+
"console": "Konsol",
|
|
52
|
+
"copy": "Kopier",
|
|
53
|
+
"copy-info-json": "Kopier information til JSON",
|
|
54
|
+
"core.close": "Luk",
|
|
55
|
+
"core.current": "Nuværende",
|
|
56
|
+
"core.hide": "Skjul",
|
|
57
|
+
"core.open": "Åbn",
|
|
58
|
+
"core.open-in-new-tab": "Åbn i ny fane",
|
|
59
|
+
"core.search": "Søg",
|
|
60
|
+
"core.select.all": "Vælg alt",
|
|
61
|
+
"core.select.n-object-of": "{from} - {to} af {total} objekter",
|
|
62
|
+
"cpu-model": "CPU model",
|
|
63
|
+
"cpus": "CPU'er",
|
|
64
|
+
"create": "Opret",
|
|
65
|
+
"created-by": "Oprettet af",
|
|
66
|
+
"dark-mode.auto": "Auto mørk tilstand",
|
|
67
|
+
"dark-mode.disable": "Deaktiver mørk tilstand",
|
|
68
|
+
"dark-mode.enable": "Aktivér mørk tilstand",
|
|
69
|
+
"dashboard": "Dashboard",
|
|
70
|
+
"date": "Dato",
|
|
71
|
+
"delete": "Slet",
|
|
72
|
+
"deploy-xoa-custom-ntp-servers": "Brugerdefinerede NTP-servere (adskilt af mellemrum)",
|
|
73
|
+
"deploy-xoa-status.importing": "Importerer XOA…",
|
|
74
|
+
"deploy-xoa-status.not-responding": "XOA svarer ikke",
|
|
75
|
+
"deploy-xoa-status.ready": "XOA er klar!",
|
|
76
|
+
"deploy-xoa-status.starting": "Starter XOA…",
|
|
77
|
+
"deploy-xoa-status.waiting": "Venter på at XOA svarer…",
|
|
78
|
+
"descending": "faldende",
|
|
79
|
+
"description": "Beskrivelse",
|
|
80
|
+
"dhcp": "DHCP",
|
|
81
|
+
"disabled": "Deaktiveret",
|
|
82
|
+
"disk-name": "Disk navn",
|
|
83
|
+
"disk-size": "Disk størrelse",
|
|
84
|
+
"dns": "DNS",
|
|
85
|
+
"do-you-have-needs": "Har du behov og/eller forventninger? Fortæl os det",
|
|
86
|
+
"documentation": "Dokumentation",
|
|
87
|
+
"documentation-name": "{name} dokumentation",
|
|
88
|
+
"duration": "Varighed",
|
|
89
|
+
"edit": "Rediger",
|
|
90
|
+
"enabled": "Aktiveret",
|
|
91
|
+
"end-date": "Slut dato",
|
|
92
|
+
"error": "Fejl | Fejl",
|
|
93
|
+
"error-no-data": "Fejl, data kan ikke indsamles.",
|
|
94
|
+
"error-occurred": "En fejl er opstået",
|
|
95
|
+
"expiration-date": "Udløbsdato",
|
|
96
|
+
"export-n-vms": "Eksporter 1 VM | Eksporter {n} VM'er",
|
|
97
|
+
"export-n-vms-manually": "Eksporter 1 VM manuelt | Eksporter {n} VM'er manuelt",
|
|
98
|
+
"export-table-to": "Eksportér tabel til {type}",
|
|
99
|
+
"export-vm": "Eksportér VM",
|
|
100
|
+
"export-vms": "Eksportér VM'er",
|
|
101
|
+
"fetching-fresh-data": "Henter nye data",
|
|
102
|
+
"filter.comparison.contains": "Indeholder",
|
|
103
|
+
"filter.comparison.ends-with": "Slutter med",
|
|
104
|
+
"filter.comparison.is": "Er",
|
|
105
|
+
"filter.comparison.matches-regex": "Matcher regex",
|
|
106
|
+
"filter.comparison.not-contain": "Indeholder ikke",
|
|
107
|
+
"filter.comparison.not-end-with": "Ender ikke på",
|
|
108
|
+
"filter.comparison.not-match-regex": "Matcher ikke regex",
|
|
109
|
+
"filter.comparison.starts-with": "Starter med",
|
|
110
|
+
"force-reboot": "Tving genstart",
|
|
111
|
+
"force-shutdown": "Tving nedlukning",
|
|
112
|
+
"forget": "Glem",
|
|
113
|
+
"fullscreen": "Fuldskærm",
|
|
114
|
+
"fullscreen-leave": "Forlad fuldskærm",
|
|
115
|
+
"gateway": "Gateway",
|
|
116
|
+
"go-back": "Gå tilbage",
|
|
117
|
+
"gpus": "GPU'er",
|
|
118
|
+
"graphics-display": "Grafik & Display",
|
|
119
|
+
"gzip": "gzip",
|
|
120
|
+
"hardware": "Hardware",
|
|
121
|
+
"host": "Host",
|
|
122
|
+
"host-currently-shutdown": "Denne host er i øjeblikket lukket ned, så vi kan ikke hente nogen data.",
|
|
123
|
+
"host-description": "Host beskrivelse",
|
|
124
|
+
"host-not-running": "Host kører ikke",
|
|
125
|
+
"host-off": "Host er slukket",
|
|
126
|
+
"host-status.running": "Kører",
|
|
127
|
+
"host-status.unknown": "Ukendt",
|
|
128
|
+
"host-unknown": "Host ukendt",
|
|
129
|
+
"host.active": "Aktiv",
|
|
130
|
+
"host.inactive": "Inaktiv",
|
|
131
|
+
"hosts-status.running": "Kører",
|
|
132
|
+
"hosts-status.unknown": "Ukendt",
|
|
133
|
+
"hyper-threading": "Hyper threading (SMT)",
|
|
134
|
+
"id": "ID",
|
|
135
|
+
"interrupted": "Afbrudt",
|
|
136
|
+
"ipv4": "IPv4-adresse | IPv4-adresser",
|
|
137
|
+
"ipv6": "IPv6-adresse | IPv6-adresser",
|
|
138
|
+
"is-primary-host": "{name} er primær host",
|
|
139
|
+
"iscsi-iqn": "iSCSI IQN",
|
|
140
|
+
"iso-dvd": "ISO/DVD",
|
|
141
|
+
"job-name": "Job navn",
|
|
142
|
+
"job.vm-force-reboot.in-progress": "Tvungen genstart i gang…",
|
|
143
|
+
"job.vm-force-reboot.missing-vms": "Ingen VM til at tvinge genstart",
|
|
144
|
+
"job.vm-shutdown.bad-power-state": "VM skal køre",
|
|
145
|
+
"language": "Sprog",
|
|
146
|
+
"last-week": "Sidste uge",
|
|
147
|
+
"learn-more": "Lær mere",
|
|
148
|
+
"load-now": "Indlæs nu",
|
|
149
|
+
"loading": "Indlæser…",
|
|
150
|
+
"log-out": "Log ud",
|
|
151
|
+
"login": "Log ind",
|
|
152
|
+
"mac-address": "MAC-adresse",
|
|
153
|
+
"mac-addresses": "MAC-adresser",
|
|
154
|
+
"manage-citrix-pv-drivers-via-windows-update": "Administrer Citrix PV drivere via Windows Update",
|
|
155
|
+
"memory": "Hukommelse",
|
|
156
|
+
"memory-usage": "Hukommelsesforbrug",
|
|
157
|
+
"message": "Besked",
|
|
158
|
+
"migrate": "Migrer",
|
|
159
|
+
"missing-patches": "Manglende opdateringer",
|
|
160
|
+
"more-actions": "Flere handlinger",
|
|
161
|
+
"mtu": "MTU",
|
|
162
|
+
"n-gb-left": "{n} GB tilbage",
|
|
163
|
+
"n-missing": "{n} mangler",
|
|
164
|
+
"n-percent": "{n}%",
|
|
165
|
+
"n-vms": "1 VM | {n} VM'er",
|
|
166
|
+
"name": "Navn",
|
|
167
|
+
"netmask": "Netmask",
|
|
168
|
+
"network": "Netværk",
|
|
169
|
+
"new": "Ny",
|
|
170
|
+
"new-features-are-coming": "Nye funktioner kommer snart!",
|
|
171
|
+
"new-vif": "Ny VIF",
|
|
172
|
+
"new-vm": "Ny VM",
|
|
173
|
+
"new-vm.add": "Tilføj en ny VM",
|
|
174
|
+
"new-vm.description": "VM beskrivelse",
|
|
175
|
+
"new-vm.name": "VM navn",
|
|
176
|
+
"news": "Nyheder",
|
|
177
|
+
"news-name": "{name} nyheder",
|
|
178
|
+
"no-data": "Ingen data",
|
|
179
|
+
"no-network-detected": "Ingen netværk fundet",
|
|
180
|
+
"no-pif-detected": "Ingen PIF fundet",
|
|
181
|
+
"no-result": "Ingen resultat",
|
|
182
|
+
"no-results": "Ingen resultater",
|
|
183
|
+
"no-vif-detected": "Ingen VIF fundet",
|
|
184
|
+
"no-vm-detected": "Ingen VM fundet",
|
|
185
|
+
"normal": "Normal",
|
|
186
|
+
"not-found": "Ikke fundet",
|
|
187
|
+
"object": "Objekt",
|
|
188
|
+
"ok": "OK",
|
|
189
|
+
"os-name": "OS navn",
|
|
190
|
+
"other-settings": "Andre indstillinger",
|
|
191
|
+
"password": "Password",
|
|
192
|
+
"patches": "Opdateringer",
|
|
193
|
+
"physical-interface-status": "Fysisk interface status",
|
|
194
|
+
"pif": "PIF",
|
|
195
|
+
"pif-status": "PIF status",
|
|
196
|
+
"pool": "Pool",
|
|
197
|
+
"pool-cpu-usage": "Pool CPU forbrug",
|
|
198
|
+
"pools-status.connected": "Forbundet",
|
|
199
|
+
"pools-status.unknown": "Ukendt",
|
|
200
|
+
"professional-support": "Professional support",
|
|
201
|
+
"properties": "Egenskaber",
|
|
202
|
+
"proxy": "Proxy",
|
|
203
|
+
"pxe": "PXE",
|
|
204
|
+
"reboot": "Genstart",
|
|
205
|
+
"relative-time.day": "1 dag | {n} dage",
|
|
206
|
+
"relative-time.hour": "1 time | {n} timer",
|
|
207
|
+
"relative-time.minute": "1 minut | {n} minutter",
|
|
208
|
+
"relative-time.month": "1 måned | {n} måneder",
|
|
209
|
+
"relative-time.now": "Lige nu",
|
|
210
|
+
"relative-time.second": "1 sekund | {n} sekunder",
|
|
211
|
+
"relative-time.year": "1 år | {n} år",
|
|
212
|
+
"report-when.always": "Altid",
|
|
213
|
+
"report-when.error": "Fejl",
|
|
214
|
+
"report-when.never": "Aldrig",
|
|
215
|
+
"resume": "Forsæt",
|
|
216
|
+
"save": "Gem",
|
|
217
|
+
"select-compression": "Vælg en komprimering",
|
|
218
|
+
"select.network": "Vælg et netværk",
|
|
219
|
+
"settings": "Indstillinger",
|
|
220
|
+
"settings.missing-translations": "Manglende eller forkert oversættelse?",
|
|
221
|
+
"size": "Størrelse",
|
|
222
|
+
"software": "Software",
|
|
223
|
+
"sr": "SR",
|
|
224
|
+
"ssh-password": "SSH password",
|
|
225
|
+
"ssh-password-confirm": "Bekræft SSH password",
|
|
226
|
+
"start": "Start",
|
|
227
|
+
"start-date": "Start dato",
|
|
228
|
+
"static": "Statisk",
|
|
229
|
+
"static-ip": "Statisk IP",
|
|
230
|
+
"status": "Status",
|
|
231
|
+
"switch-theme": "Skift tema",
|
|
232
|
+
"system": "System",
|
|
233
|
+
"theme-auto": "Auto",
|
|
234
|
+
"theme-dark": "Mørk",
|
|
235
|
+
"theme-light": "Lys",
|
|
236
|
+
"this-vm-cant-be-migrated": "Denne VM kan ikke migreres",
|
|
237
|
+
"timezone": "Tidszone",
|
|
238
|
+
"unable-to-connect-to": "Kan ikke foirbinde til {ip}",
|
|
239
|
+
"unable-to-connect-to-the-pool": "Kan ikke oprette forbindelse til poolen",
|
|
240
|
+
"unknown": "Ukendt",
|
|
241
|
+
"untranslated-text-helper": "Som standard vises ikke oversatte tekster på engelsk.",
|
|
242
|
+
"update": "Opdater",
|
|
243
|
+
"username": "Brugernavn",
|
|
244
|
+
"uuid": "UUID",
|
|
245
|
+
"version": "Version",
|
|
246
|
+
"vga": "VGA",
|
|
247
|
+
"vif": "VIF",
|
|
248
|
+
"vif-device": "VIF #{device}",
|
|
249
|
+
"vif-status": "VIF status",
|
|
250
|
+
"viridian": "Viridian",
|
|
251
|
+
"vlan": "VLAN",
|
|
252
|
+
"vm": "VM",
|
|
253
|
+
"vm-description": "VM beskrivelse",
|
|
254
|
+
"vm-is-running": "Denne VM kører",
|
|
255
|
+
"vms-status.unknown": "Ukendt",
|
|
256
|
+
"write": "Skriv",
|
|
257
|
+
"xo-lite-under-construction": "XOLite er under opbygning",
|
|
258
|
+
"xoa-admin-account": "XOA admin konto",
|
|
259
|
+
"xoa-ip": "XOA IP-adresse",
|
|
260
|
+
"zstd": "zstd"
|
|
261
|
+
}
|
package/lib/locales/de.json
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"accept-self-signed-certificates": "Selbst signierte Zertifikat akzeptieren",
|
|
6
6
|
"access-forum": "Zum Forum",
|
|
7
7
|
"access-xoa": "Zum XOA",
|
|
8
|
+
"account": "Konto",
|
|
8
9
|
"account-organization-more": "Konto, Organisation & mehr…",
|
|
9
10
|
"add": "Hinzufügen",
|
|
10
11
|
"add-filter": "Filter hinzufügen",
|
|
@@ -64,7 +65,6 @@
|
|
|
64
65
|
"bond-devices": "Bond Geräte",
|
|
65
66
|
"bond-status": "Bond status",
|
|
66
67
|
"boot-firmware": "Boot Firmware",
|
|
67
|
-
"boot-firmware-bios": "Die Vorlage enthält bereits die BIOS-Strings",
|
|
68
68
|
"boot-firmware-uefi": "Die Boot Firmware ist UEFI",
|
|
69
69
|
"boot-vm": "Starte VM",
|
|
70
70
|
"build-number": "Build-Version",
|
|
@@ -539,6 +539,7 @@
|
|
|
539
539
|
"tasks.quick-view.failed": "Fehlgeschlagen",
|
|
540
540
|
"tasks.quick-view.in-progress": "Im Gange",
|
|
541
541
|
"template": "Vorlage",
|
|
542
|
+
"template-has-bios-strings": "Die Vorlage enthält bereits die BIOS-Strings",
|
|
542
543
|
"theme-auto": "Auto",
|
|
543
544
|
"theme-dark": "Dunkel",
|
|
544
545
|
"theme-light": "Hell",
|
|
@@ -578,6 +579,7 @@
|
|
|
578
579
|
"vif-device": "VIF #{device}",
|
|
579
580
|
"vif-status": "VIF-Status",
|
|
580
581
|
"vifs": "VIFs",
|
|
582
|
+
"viridian": "Viridian",
|
|
581
583
|
"virtual-tpm": "Virtueller TPM (VTPM)",
|
|
582
584
|
"virtualization-boot-settings": "Virtualisierungs- und Start-Einstellungen",
|
|
583
585
|
"virtualization-mode": "Virtualisierungsmodus",
|