@xen-orchestra/web-core 0.35.1 → 0.37.0
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/console/VtsRemoteConsole.vue +1 -1
- package/lib/components/copy-button/VtsCopyButton.vue +1 -1
- package/lib/components/layout/VtsLayoutSidebar.vue +1 -1
- package/lib/components/quick-info-card/VtsQuickInfoCard.vue +1 -1
- package/lib/components/relative-time/VtsRelativeTime.vue +2 -3
- package/lib/components/select/VtsSelect.vue +1 -1
- package/lib/components/state-hero/VtsStateHero.vue +20 -10
- package/lib/components/table/VtsRow.vue +26 -0
- package/lib/components/table/VtsTable.vue +99 -42
- package/lib/components/table/cells/VtsCollapsedListCell.vue +59 -0
- package/lib/components/table/cells/VtsHeaderCell.vue +31 -0
- package/lib/components/table/cells/VtsLinkCell.vue +33 -0
- package/lib/components/table/cells/VtsNumberCell.vue +21 -0
- package/lib/components/{size-progress-cell/VtsSizeProgressCell.vue → table/cells/VtsProgressBarCell.vue} +8 -5
- package/lib/components/table/cells/VtsStatusCell.vue +69 -0
- package/lib/components/table/cells/VtsTagCell.vue +24 -0
- package/lib/components/table/cells/VtsTextCell.vue +32 -0
- package/lib/components/table/cells/VtsTruncatedTextCell.vue +64 -0
- package/lib/components/task/VtsQuickTaskButton.vue +1 -1
- package/lib/components/tree/VtsTreeLine.vue +1 -1
- package/lib/components/ui/alert/UiAlert.vue +1 -1
- package/lib/components/ui/button/UiButton.vue +4 -2
- package/lib/components/ui/button-icon/UiButtonIcon.vue +12 -11
- package/lib/components/ui/column-header/UiColumnHeader.vue +22 -0
- package/lib/components/ui/info/UiInfo.vue +5 -1
- package/lib/components/ui/input/UiInput.vue +3 -2
- package/lib/components/ui/link/UiLink.vue +5 -0
- package/lib/components/ui/log-entry-viewer/UiLogEntryViewer.vue +1 -1
- package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +2 -2
- package/lib/components/ui/table-cell/UiTableCell.vue +41 -0
- package/lib/components/ui/table-pagination/PaginationButton.vue +1 -1
- package/lib/components/ui/task-item/UiTaskItem.vue +229 -0
- package/lib/components/ui/task-list/UiTaskList.vue +31 -0
- package/lib/components/ui/toaster/UiToaster.vue +1 -1
- package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +6 -2
- package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +1 -7
- package/lib/composables/pagination.composable.ts +16 -1
- package/lib/composables/relative-time.composable.ts +8 -61
- package/lib/composables/table-state.composable.ts +56 -0
- package/lib/composables/tree-filter.composable.ts +2 -2
- package/lib/icons/fa-icons.ts +2 -0
- package/lib/icons/object-icons.ts +1 -1
- package/lib/locales/en.json +26 -1
- package/lib/locales/fr.json +26 -1
- package/lib/packages/form-select/use-form-select-controller.ts +1 -0
- package/lib/packages/table/README.md +53 -308
- package/lib/packages/table/define-column.ts +7 -0
- package/lib/packages/table/define-columns.ts +104 -50
- package/lib/packages/table/index.ts +3 -11
- package/lib/packages/table/types.ts +10 -0
- package/lib/{composables/tree.composable.md → packages/tree/README.md} +28 -23
- package/lib/{composables → packages}/tree/branch-definition.ts +9 -4
- package/lib/{composables → packages}/tree/branch.ts +15 -20
- package/lib/{composables → packages}/tree/build-nodes.ts +5 -5
- package/lib/{composables → packages}/tree/define-branch.ts +8 -4
- package/lib/{composables → packages}/tree/define-leaf.ts +8 -3
- package/lib/{composables → packages}/tree/define-tree.ts +10 -5
- package/lib/{composables → packages}/tree/leaf-definition.ts +1 -1
- package/lib/{composables → packages}/tree/leaf.ts +3 -3
- package/lib/{composables → packages}/tree/tree-node-base.ts +18 -3
- package/lib/{composables → packages}/tree/tree-node-definition-base.ts +4 -2
- package/lib/{composables → packages}/tree/types.ts +11 -9
- package/lib/{composables/tree.composable.ts → packages/tree/use-tree.ts} +24 -11
- package/lib/tables/column-definitions/address-column.ts +4 -0
- package/lib/tables/column-definitions/button-column.ts +35 -0
- package/lib/tables/column-definitions/button-icon-column.ts +30 -0
- package/lib/tables/column-definitions/collapsed-list-column.ts +12 -0
- package/lib/tables/column-definitions/date-column.ts +34 -0
- package/lib/tables/column-definitions/info-column.ts +12 -0
- package/lib/tables/column-definitions/input-column.ts +32 -0
- package/lib/tables/column-definitions/link-column.ts +14 -0
- package/lib/tables/column-definitions/literal-column.ts +9 -0
- package/lib/tables/column-definitions/number-column.ts +10 -0
- package/lib/tables/column-definitions/percent-column.ts +15 -0
- package/lib/tables/column-definitions/progress-bar-column.ts +10 -0
- package/lib/tables/column-definitions/select-column.ts +12 -0
- package/lib/tables/column-definitions/select-item-column.ts +8 -0
- package/lib/tables/column-definitions/status-column.ts +16 -0
- package/lib/tables/column-definitions/tag-column.ts +11 -0
- package/lib/tables/column-definitions/text-column.ts +11 -0
- package/lib/tables/column-definitions/truncated-text-column.ts +10 -0
- package/lib/tables/column-sets/backup-issue-columns.ts +15 -0
- package/lib/tables/column-sets/backup-job-columns.ts +23 -0
- package/lib/tables/column-sets/backup-job-schedule-columns.ts +21 -0
- package/lib/tables/column-sets/backup-log-columns.ts +19 -0
- package/lib/tables/column-sets/host-columns.ts +19 -0
- package/lib/tables/column-sets/network-columns.ts +22 -0
- package/lib/tables/column-sets/new-vm-network-columns.ts +24 -0
- package/lib/tables/column-sets/new-vm-sr-columns.ts +33 -0
- package/lib/tables/column-sets/patch-columns.ts +13 -0
- package/lib/tables/column-sets/pif-columns.ts +23 -0
- package/lib/tables/column-sets/server-columns.ts +18 -0
- package/lib/tables/column-sets/sr-columns.ts +20 -0
- package/lib/tables/column-sets/vdi-columns.ts +21 -0
- package/lib/tables/column-sets/vif-columns.ts +23 -0
- package/lib/tables/column-sets/vm-columns.ts +21 -0
- package/lib/tables/helpers/render-body-cell.ts +4 -0
- package/lib/tables/helpers/render-head-cell.ts +6 -0
- package/lib/tables/helpers/render-loading-cell.ts +5 -0
- package/lib/tables/types.ts +7 -0
- package/lib/utils/size.util.ts +5 -9
- package/package.json +1 -1
- package/lib/components/data-table/VtsDataTable.vue +0 -70
- package/lib/components/table/ColumnTitle.vue +0 -152
- package/lib/packages/table/apply-extensions.ts +0 -26
- package/lib/packages/table/define-renderer/define-table-cell-renderer.ts +0 -27
- package/lib/packages/table/define-renderer/define-table-renderer.ts +0 -47
- package/lib/packages/table/define-renderer/define-table-row-renderer.ts +0 -29
- package/lib/packages/table/define-renderer/define-table-section-renderer.ts +0 -29
- package/lib/packages/table/define-table/define-multi-source-table.ts +0 -39
- package/lib/packages/table/define-table/define-table.ts +0 -13
- package/lib/packages/table/define-table/define-typed-table.ts +0 -18
- package/lib/packages/table/transform-sources.ts +0 -13
- package/lib/packages/table/types/extensions.ts +0 -16
- package/lib/packages/table/types/index.ts +0 -47
- package/lib/packages/table/types/table-cell.ts +0 -18
- package/lib/packages/table/types/table-row.ts +0 -20
- package/lib/packages/table/types/table-section.ts +0 -19
- package/lib/packages/table/types/table.ts +0 -28
- package/lib/types/button.type.ts +0 -3
|
@@ -1,66 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { computed,
|
|
1
|
+
import { formatTimeAgoIntl } from '@vueuse/core'
|
|
2
|
+
import { computed, toValue, type MaybeRefOrGetter } from 'vue'
|
|
3
3
|
import { useI18n } from 'vue-i18n'
|
|
4
4
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const toTime = computed(() => unref(toDate).getTime())
|
|
9
|
-
const isPast = computed(() => toTime.value > fromTime.value)
|
|
10
|
-
const diff = computed(() => Math.abs(toTime.value - fromTime.value))
|
|
11
|
-
|
|
12
|
-
return computed(() => {
|
|
13
|
-
if (diff.value < 10000) {
|
|
14
|
-
return t('relative-time.now')
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const years = Math.floor(diff.value / 31556952000)
|
|
18
|
-
let timeLeft = diff.value % 31556952000
|
|
19
|
-
|
|
20
|
-
const months = Math.floor(timeLeft / 2629746000)
|
|
21
|
-
timeLeft = timeLeft % 2629746000
|
|
22
|
-
|
|
23
|
-
const days = Math.floor(timeLeft / 86400000)
|
|
24
|
-
timeLeft = timeLeft % 86400000
|
|
25
|
-
|
|
26
|
-
const hours = Math.floor(timeLeft / 3600000)
|
|
27
|
-
timeLeft = timeLeft % 3600000
|
|
28
|
-
|
|
29
|
-
const minutes = Math.floor(timeLeft / 60000)
|
|
30
|
-
timeLeft = timeLeft % 60000
|
|
31
|
-
const seconds = Math.floor(timeLeft / 1000)
|
|
32
|
-
|
|
33
|
-
const parts = []
|
|
34
|
-
|
|
35
|
-
if (years > 0) {
|
|
36
|
-
parts.push(t('relative-time.year', { n: years }))
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (months > 0) {
|
|
40
|
-
const n = days >= 15 ? months + 1 : months
|
|
41
|
-
parts.push(t('relative-time.month', { n }))
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (years === 0 && months === 0) {
|
|
45
|
-
if (days > 0) {
|
|
46
|
-
parts.push(t('relative-time.day', { n: days }))
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (days <= 1 && hours > 0) {
|
|
50
|
-
parts.push(t('relative-time.hour', { n: hours }))
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (days === 0 && minutes > 0) {
|
|
54
|
-
parts.push(t('relative-time.minute', { n: minutes }))
|
|
55
|
-
}
|
|
5
|
+
export function getRelativeTime(date: MaybeRefOrGetter<Date>, locale: MaybeRefOrGetter<string>) {
|
|
6
|
+
return formatTimeAgoIntl(toValue(date), { locale: toValue(locale) })
|
|
7
|
+
}
|
|
56
8
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
}
|
|
9
|
+
export default function useRelativeTime(date: MaybeRefOrGetter<Date>) {
|
|
10
|
+
const { locale } = useI18n()
|
|
61
11
|
|
|
62
|
-
|
|
63
|
-
str: parts.join(' '),
|
|
64
|
-
})
|
|
65
|
-
})
|
|
12
|
+
return computed(() => getRelativeTime(date, locale))
|
|
66
13
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { StateHeroType } from '@core/components/state-hero/VtsStateHero.vue'
|
|
2
|
+
import type { TableState } from '@core/components/table/VtsTable.vue'
|
|
3
|
+
import { computed, toValue, type MaybeRefOrGetter } from 'vue'
|
|
4
|
+
import { useI18n } from 'vue-i18n'
|
|
5
|
+
|
|
6
|
+
type TableStateInput = undefined | boolean | string | TableState
|
|
7
|
+
|
|
8
|
+
export function useTableState(config: {
|
|
9
|
+
busy?: MaybeRefOrGetter<TableStateInput>
|
|
10
|
+
error?: MaybeRefOrGetter<TableStateInput>
|
|
11
|
+
empty?: MaybeRefOrGetter<TableStateInput>
|
|
12
|
+
}) {
|
|
13
|
+
const { t } = useI18n()
|
|
14
|
+
|
|
15
|
+
const DEFAULT_MESSAGES: { [K in StateHeroType]?: string } = {
|
|
16
|
+
'no-data': t('no-data'),
|
|
17
|
+
'no-result': t('no-result'),
|
|
18
|
+
error: t('error-no-data'),
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function handleStateInput(
|
|
22
|
+
defaultType: StateHeroType,
|
|
23
|
+
inputRaw: MaybeRefOrGetter<TableStateInput>
|
|
24
|
+
): TableState | undefined {
|
|
25
|
+
const input = toValue(inputRaw)
|
|
26
|
+
|
|
27
|
+
if (input === undefined) {
|
|
28
|
+
return undefined
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (typeof input === 'object') {
|
|
32
|
+
return { message: DEFAULT_MESSAGES[input.type], ...input }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (typeof input === 'string') {
|
|
36
|
+
return { type: defaultType, message: input }
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (input) {
|
|
40
|
+
return {
|
|
41
|
+
type: defaultType,
|
|
42
|
+
message: DEFAULT_MESSAGES[defaultType],
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return undefined
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return computed(() => {
|
|
50
|
+
return (
|
|
51
|
+
handleStateInput('busy', config.busy) ??
|
|
52
|
+
handleStateInput('error', config.error) ??
|
|
53
|
+
handleStateInput('no-data', config.empty)
|
|
54
|
+
)
|
|
55
|
+
})
|
|
56
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TreeNodeBase } from '@core/
|
|
1
|
+
import type { TreeNodeBase } from '@core/packages/tree/tree-node-base'
|
|
2
2
|
import { refDebounced } from '@vueuse/shared'
|
|
3
3
|
import { computed, ref } from 'vue'
|
|
4
4
|
|
|
@@ -12,5 +12,5 @@ export function useTreeFilter() {
|
|
|
12
12
|
const predicate = (node: TreeNodeBase) =>
|
|
13
13
|
hasFilter.value ? node.label.toLocaleLowerCase().includes(debouncedFilter.value.toLocaleLowerCase()) : undefined
|
|
14
14
|
|
|
15
|
-
return { filter, predicate, isSearching }
|
|
15
|
+
return { filter, predicate, isSearching, hasFilter }
|
|
16
16
|
}
|
package/lib/icons/fa-icons.ts
CHANGED
|
@@ -58,6 +58,7 @@ import {
|
|
|
58
58
|
faExclamation,
|
|
59
59
|
faExclamationCircle,
|
|
60
60
|
faExternalLink,
|
|
61
|
+
faEye,
|
|
61
62
|
faEyeSlash,
|
|
62
63
|
faFileCsv,
|
|
63
64
|
faFileExport,
|
|
@@ -166,6 +167,7 @@ export const faIcons = defineIconPack({
|
|
|
166
167
|
exclamation: { icon: faExclamation },
|
|
167
168
|
'exclamation-circle': { icon: faExclamationCircle },
|
|
168
169
|
'external-link': { icon: faExternalLink },
|
|
170
|
+
eye: { icon: faEye },
|
|
169
171
|
'eye-slash': { icon: faEyeSlash },
|
|
170
172
|
file: { icon: faFile },
|
|
171
173
|
'file-csv': { icon: faFileCsv },
|
|
@@ -198,7 +198,7 @@ export const objectIcons = defineIconPack({
|
|
|
198
198
|
},
|
|
199
199
|
{ icon: getStatusIcon(state) },
|
|
200
200
|
]),
|
|
201
|
-
network: defineIcon([['connected', 'disconnected']], state => [
|
|
201
|
+
network: defineIcon([['connected', 'partially-connected', 'disconnected']], state => [
|
|
202
202
|
{
|
|
203
203
|
icon: faNetworkWired,
|
|
204
204
|
color: getMainColor(state),
|
package/lib/locales/en.json
CHANGED
|
@@ -10,8 +10,11 @@
|
|
|
10
10
|
"account-organization-more": "Account, organization & more…",
|
|
11
11
|
"add": "Add",
|
|
12
12
|
"add-filter": "Add filter",
|
|
13
|
+
"add-host-internal-network-in-xo-5": "Add a host internal network in XO-5",
|
|
14
|
+
"add-network-in-xo-5": "Add network in XO-5",
|
|
13
15
|
"add-or": "+OR",
|
|
14
16
|
"add-sort": "Add sort",
|
|
17
|
+
"add-vifs-in-xo-5": "Add VIF in XO-5",
|
|
15
18
|
"admin-login": "Admin login",
|
|
16
19
|
"admin-password": "Admin password",
|
|
17
20
|
"admin-password-confirm": "Confirm admin password",
|
|
@@ -47,6 +50,7 @@
|
|
|
47
50
|
"backed-up-vms": "Backed up VMs",
|
|
48
51
|
"backup": "Backup",
|
|
49
52
|
"backup-issues": "Backup issues",
|
|
53
|
+
"backup-job": "Backup job",
|
|
50
54
|
"backup-jobs": "Backup jobs",
|
|
51
55
|
"backup-network": "Backup network",
|
|
52
56
|
"backup-repositories": "Backup repositories",
|
|
@@ -218,6 +222,7 @@
|
|
|
218
222
|
"enabled": "Enabled",
|
|
219
223
|
"end-date": "End date",
|
|
220
224
|
"end-of-life": "End of life",
|
|
225
|
+
"ended": "Ended",
|
|
221
226
|
"engines-off": "Engines off, orbit stable",
|
|
222
227
|
"eol": "EOL",
|
|
223
228
|
"error": "Error | Errors",
|
|
@@ -366,6 +371,7 @@
|
|
|
366
371
|
"last-run-number": "Last run #{n}",
|
|
367
372
|
"last-week": "Last week",
|
|
368
373
|
"learn-more": "Learn more",
|
|
374
|
+
"lets-go": "Let's go!",
|
|
369
375
|
"license-name": "{name} license",
|
|
370
376
|
"license-socket": "License socket",
|
|
371
377
|
"license-type": "License type",
|
|
@@ -384,6 +390,7 @@
|
|
|
384
390
|
"mac-address": "MAC address",
|
|
385
391
|
"mac-addresses": "MAC addresses",
|
|
386
392
|
"manage-citrix-pv-drivers-via-windows-update": "Manage citrix PV drivers via Windows Update",
|
|
393
|
+
"manage-vm-lifecycle-in-xo-5": "Manage VM lifecycle in XO-5",
|
|
387
394
|
"management": "Management",
|
|
388
395
|
"management-agent-not-detected": "Management agent not detected",
|
|
389
396
|
"management-agent-version": "Management agent version",
|
|
@@ -444,6 +451,7 @@
|
|
|
444
451
|
"no-alarms-detected": "No alarms detected",
|
|
445
452
|
"no-backed-up-vms-detected": "No backed up VMs detected",
|
|
446
453
|
"no-backup-available": "No backup available",
|
|
454
|
+
"no-backup-job-available": "No backup job available",
|
|
447
455
|
"no-backup-repositories-detected": "No backup repositories detected",
|
|
448
456
|
"no-backup-run-available": "No backup run available",
|
|
449
457
|
"no-config": "No configuration",
|
|
@@ -458,6 +466,7 @@
|
|
|
458
466
|
"no-pools-detected": "No pools detected",
|
|
459
467
|
"no-result": "No result",
|
|
460
468
|
"no-results": "No results",
|
|
469
|
+
"no-schedule-available": "No schedule available",
|
|
461
470
|
"no-selected-vm-can-be-exported": "No selected VM can be exported",
|
|
462
471
|
"no-selected-vm-can-be-migrated": "No selected VM can be migrated",
|
|
463
472
|
"no-server-detected": "No server detected",
|
|
@@ -495,6 +504,7 @@
|
|
|
495
504
|
"partially-connected": "Partially connected",
|
|
496
505
|
"password": "Password",
|
|
497
506
|
"password-invalid": "Password invalid",
|
|
507
|
+
"patch-name": "Patch name",
|
|
498
508
|
"patches": "Patches",
|
|
499
509
|
"patches-up-to-date": "Patches up to date",
|
|
500
510
|
"pause": "Pause",
|
|
@@ -524,6 +534,13 @@
|
|
|
524
534
|
"pools-status.unknown.tooltip": "Servers currently connecting or in an unknown state",
|
|
525
535
|
"pools-status.unreachable": "Unreachable",
|
|
526
536
|
"pools-status.unreachable.tooltip": "Configured servers that cannot be reached",
|
|
537
|
+
"popup-first-connection-default-interface": "From now on, this new version will be your default interface. If you prefer to keep XO 5 as your default for now, you can {documentationLink} to do so.",
|
|
538
|
+
"popup-first-connection-early-release": "Please note that this is an early release of an ongoing project. You’ll notice that some familiar pages from XO 5 are not yet available and that most features are currently read-only.",
|
|
539
|
+
"popup-first-connection-feedback": "Before we move forward, we’d love to hear your {feedbackLink} on the current state of XO 6. You can switch back to the previous version anytime by clicking the “XO 5” link in the top-right corner of any page.",
|
|
540
|
+
"popup-first-connection-feedback-and-impressions": "feedback and impressions",
|
|
541
|
+
"popup-first-connection-follow-this-guide": "follow this guide",
|
|
542
|
+
"popup-first-connection-introduction": "We’re excited to introduce the first official release of Xen Orchestra 6.",
|
|
543
|
+
"popup-first-connection-upcoming-release": "In the upcoming releases, we’ll be adding actions on all objects, user management, backup features, and much more. We hope you’ll enjoy exploring this brand-new interface!",
|
|
527
544
|
"power-on-host-for-console": "Power on your host to access its console",
|
|
528
545
|
"power-on-mode": "Power on mode",
|
|
529
546
|
"power-on-vm-for-console": "Power on your VM to access its console",
|
|
@@ -578,12 +595,14 @@
|
|
|
578
595
|
"s3-backup-repository": "S3 backup repository",
|
|
579
596
|
"save": "Save",
|
|
580
597
|
"scan-pifs": "Scan PIFs",
|
|
598
|
+
"scan-pifs-in-xo-5": "@:scan-pifs in XO-5",
|
|
581
599
|
"schedule": "Schedule",
|
|
582
600
|
"schedule-name": "Schedule name",
|
|
583
601
|
"scheduler-granularity": "Scheduler granularity",
|
|
584
602
|
"schedules": "Schedules",
|
|
585
603
|
"secure-boot": "Secure boot",
|
|
586
604
|
"see-all": "See all",
|
|
605
|
+
"see-details": "See details",
|
|
587
606
|
"see-less": "See less",
|
|
588
607
|
"see-n-more": "See {n} more",
|
|
589
608
|
"select-compression": "Select a compression",
|
|
@@ -601,6 +620,8 @@
|
|
|
601
620
|
"settings.missing-translations": "Missing or incorrect translations?",
|
|
602
621
|
"shared": "Shared",
|
|
603
622
|
"shorter-backup-reports": "Shorter backup reports",
|
|
623
|
+
"show-less": "Show less",
|
|
624
|
+
"show-more": "Show more",
|
|
604
625
|
"shutdown": "Shutdown",
|
|
605
626
|
"sidebar.search-tree-view": "Search in treeview",
|
|
606
627
|
"sidebar.vms-treeview": "VMs treeview",
|
|
@@ -656,9 +677,10 @@
|
|
|
656
677
|
"table-actions": "Table actions",
|
|
657
678
|
"tags": "Tags",
|
|
658
679
|
"task": "Task",
|
|
680
|
+
"task.ended": "@:ended",
|
|
659
681
|
"task.estimated-end": "Estimated end",
|
|
660
682
|
"task.progress": "Progress",
|
|
661
|
-
"task.started": "
|
|
683
|
+
"task.started": "@:started",
|
|
662
684
|
"tasks": "Tasks",
|
|
663
685
|
"tasks.n-subtasks": "{n} subtask | {n} subtasks",
|
|
664
686
|
"tasks.no-tasks": "No tasks",
|
|
@@ -700,6 +722,7 @@
|
|
|
700
722
|
"unlocked": "Unlocked",
|
|
701
723
|
"unreachable-hosts": "Unreachable hosts",
|
|
702
724
|
"unreachable-hosts-reload-page": "Done, reload the page",
|
|
725
|
+
"untitled": "Untitled",
|
|
703
726
|
"untranslated-text-helper": "By default, untranslated texts will be presented in english.",
|
|
704
727
|
"up-to-date": "Up-to-date",
|
|
705
728
|
"update": "Update",
|
|
@@ -754,6 +777,7 @@
|
|
|
754
777
|
"vms-tags": "VMs tags",
|
|
755
778
|
"warning": "Warning | Warnings",
|
|
756
779
|
"weblate": "Weblate",
|
|
780
|
+
"welcome-to-xo6": "Welcome to XO 6!",
|
|
757
781
|
"with-memory": "With memory",
|
|
758
782
|
"write": "Write",
|
|
759
783
|
"xcp-ng": "XCP-ng",
|
|
@@ -763,6 +787,7 @@
|
|
|
763
787
|
"xo-backups": "XO backups",
|
|
764
788
|
"xo-lite-under-construction": "XOLite is under construction",
|
|
765
789
|
"xo-replications": "XO replications",
|
|
790
|
+
"xo-team": "The XO Team",
|
|
766
791
|
"xoa": "XOA",
|
|
767
792
|
"xoa-admin-account": "XOA admin account",
|
|
768
793
|
"xoa-deploy": "XOA deployment",
|
package/lib/locales/fr.json
CHANGED
|
@@ -10,8 +10,11 @@
|
|
|
10
10
|
"account-organization-more": "Compte, organisation et plus…",
|
|
11
11
|
"add": "Ajouter",
|
|
12
12
|
"add-filter": "Ajouter un filtre",
|
|
13
|
+
"add-host-internal-network-in-xo-5": "Ajouter un réseau interne à l'hôte dans XO-5",
|
|
14
|
+
"add-network-in-xo-5": "Ajouter un réseau dans XO-5",
|
|
13
15
|
"add-or": "+OU",
|
|
14
16
|
"add-sort": "Ajouter un tri",
|
|
17
|
+
"add-vifs-in-xo-5": "Ajouter un VIF dans XO-5",
|
|
15
18
|
"admin-login": "Nom d'utilisateur administrateur",
|
|
16
19
|
"admin-password": "Mot de passe administrateur",
|
|
17
20
|
"admin-password-confirm": "Confirmer le mot de passe administrateur",
|
|
@@ -47,6 +50,7 @@
|
|
|
47
50
|
"backed-up-vms": "VMs sauvegardées",
|
|
48
51
|
"backup": "Sauvegarde",
|
|
49
52
|
"backup-issues": "Problèmes de sauvegarde",
|
|
53
|
+
"backup-job": "Job de sauvegarde",
|
|
50
54
|
"backup-jobs": "Jobs de sauvegarde",
|
|
51
55
|
"backup-network": "Réseau de sauvegarde",
|
|
52
56
|
"backup-repositories": "Dépôts de sauvegarde",
|
|
@@ -218,6 +222,7 @@
|
|
|
218
222
|
"enabled": "Activé",
|
|
219
223
|
"end-date": "Date de fin",
|
|
220
224
|
"end-of-life": "Fin de vie",
|
|
225
|
+
"ended": "Terminé",
|
|
221
226
|
"engines-off": "Moteurs arrêtés, orbite stable",
|
|
222
227
|
"eol": "EOL",
|
|
223
228
|
"error": "Erreur | Erreurs",
|
|
@@ -366,6 +371,7 @@
|
|
|
366
371
|
"last-run-number": "Dernière exécution #{n}",
|
|
367
372
|
"last-week": "Semaine dernière",
|
|
368
373
|
"learn-more": "En savoir plus",
|
|
374
|
+
"lets-go": "Allons-y !",
|
|
369
375
|
"license-name": "Licence {name}",
|
|
370
376
|
"license-socket": "Licence socket",
|
|
371
377
|
"license-type": "Type de licence",
|
|
@@ -384,6 +390,7 @@
|
|
|
384
390
|
"mac-address": "Adresse MAC",
|
|
385
391
|
"mac-addresses": "Adresses MAC",
|
|
386
392
|
"manage-citrix-pv-drivers-via-windows-update": "Gérer les pilotes Citrix PV via Windows Update",
|
|
393
|
+
"manage-vm-lifecycle-in-xo-5": "Gérer le cycle de vie de la VM dans XO-5",
|
|
387
394
|
"management": "Gestion",
|
|
388
395
|
"management-agent-not-detected": "Agent de gestion non détecté",
|
|
389
396
|
"management-agent-version": "Version de l'agent de gestion",
|
|
@@ -444,6 +451,7 @@
|
|
|
444
451
|
"no-alarms-detected": "Aucune alarme détectée",
|
|
445
452
|
"no-backed-up-vms-detected": "Aucune VM sauvegardée détectée",
|
|
446
453
|
"no-backup-available": "Aucune sauvegarde disponible",
|
|
454
|
+
"no-backup-job-available": "Aucun job de sauvegarde disponible",
|
|
447
455
|
"no-backup-repositories-detected": "Aucun dépôt de sauvegarde détecté",
|
|
448
456
|
"no-backup-run-available": "Aucune exécution de sauvegarde disponible",
|
|
449
457
|
"no-config": "Aucune configuration",
|
|
@@ -458,6 +466,7 @@
|
|
|
458
466
|
"no-pools-detected": "Aucun pool détecté",
|
|
459
467
|
"no-result": "Aucun résultat",
|
|
460
468
|
"no-results": "Aucun résultat",
|
|
469
|
+
"no-schedule-available": "Aucune planification disponible",
|
|
461
470
|
"no-selected-vm-can-be-exported": "Aucune VM sélectionnée ne peut être exportée",
|
|
462
471
|
"no-selected-vm-can-be-migrated": "Aucune VM sélectionnée ne peut être migrée",
|
|
463
472
|
"no-server-detected": "Aucun serveur détecté",
|
|
@@ -495,6 +504,7 @@
|
|
|
495
504
|
"partially-connected": "Partiellement connecté",
|
|
496
505
|
"password": "Mot de passe",
|
|
497
506
|
"password-invalid": "Mot de passe incorrect",
|
|
507
|
+
"patch-name": "Nom du patch",
|
|
498
508
|
"patches": "Patches",
|
|
499
509
|
"patches-up-to-date": "Patches à jour",
|
|
500
510
|
"pause": "Pause",
|
|
@@ -524,6 +534,13 @@
|
|
|
524
534
|
"pools-status.unknown.tooltip": "Serveurs en cours de connexion ou dans un état inconnu",
|
|
525
535
|
"pools-status.unreachable": "Injoignables",
|
|
526
536
|
"pools-status.unreachable.tooltip": "Serveurs configurés mais non joignables",
|
|
537
|
+
"popup-first-connection-default-interface": "Désormais, cette nouvelle version sera votre interface par défaut. Si vous préférez conserver XO 5 comme version par défaut pour le moment, vous pouvez {documentationLink}.",
|
|
538
|
+
"popup-first-connection-early-release": "Veuillez noter qu’il s’agit d’une version préliminaire d’un projet en cours. Vous constaterez que certaines pages familières de XO 5 ne sont pas encore disponibles et que la plupart des fonctionnalités sont actuellement en lecture seule.",
|
|
539
|
+
"popup-first-connection-feedback": "Avant de poursuivre, nous aimerions recueillir vos {feedbackLink} sur l’état actuel de XO 6. Vous pouvez revenir à la version précédente à tout moment en cliquant sur le lien « XO 5 » en haut à droite de n’importe quelle page.",
|
|
540
|
+
"popup-first-connection-feedback-and-impressions": "retours et impressions",
|
|
541
|
+
"popup-first-connection-follow-this-guide": "suivre ce guide",
|
|
542
|
+
"popup-first-connection-introduction": "Nous sommes ravis de vous présenter la première version officielle de Xen Orchestra 6.",
|
|
543
|
+
"popup-first-connection-upcoming-release": "Dans les prochaines versions, nous ajouterons des actions sur tous les objets, la gestion des utilisateurs, des fonctionnalités de sauvegarde et bien plus encore. Nous espérons que vous apprécierez découvrir cette toute nouvelle interface !",
|
|
527
544
|
"power-on-host-for-console": "Allumez votre hôte pour accéder à sa console",
|
|
528
545
|
"power-on-mode": "Mode d'alimentation",
|
|
529
546
|
"power-on-vm-for-console": "Allumez votre VM pour accéder à sa console",
|
|
@@ -578,12 +595,14 @@
|
|
|
578
595
|
"s3-backup-repository": "Dépot de sauvegarde S3",
|
|
579
596
|
"save": "Enregistrer",
|
|
580
597
|
"scan-pifs": "Scan PIFs",
|
|
598
|
+
"scan-pifs-in-xo-5": "@:scan-pifs dans XO-5",
|
|
581
599
|
"schedule": "Planification",
|
|
582
600
|
"schedule-name": "Nom de la planification",
|
|
583
601
|
"scheduler-granularity": "Granularité de la planification",
|
|
584
602
|
"schedules": "Planifications",
|
|
585
603
|
"secure-boot": "Démarrage sécurisé",
|
|
586
604
|
"see-all": "Voir tout",
|
|
605
|
+
"see-details": "Voir les détails",
|
|
587
606
|
"see-less": "Voir moins",
|
|
588
607
|
"see-n-more": "Voir {n} de plus",
|
|
589
608
|
"select-compression": "Sélectionnez une compression",
|
|
@@ -601,6 +620,8 @@
|
|
|
601
620
|
"settings.missing-translations": "Traductions manquantes ou incorrectes ?",
|
|
602
621
|
"shared": "Partagé",
|
|
603
622
|
"shorter-backup-reports": "Rapports de sauvegarde plus courts",
|
|
623
|
+
"show-less": "Voir moins",
|
|
624
|
+
"show-more": "Voir plus",
|
|
604
625
|
"shutdown": "Arrêter",
|
|
605
626
|
"sidebar.search-tree-view": "Rechercher dans l'arborescence",
|
|
606
627
|
"sidebar.vms-treeview": "Arborescence des VMs",
|
|
@@ -656,9 +677,10 @@
|
|
|
656
677
|
"table-actions": "Actions du tableau",
|
|
657
678
|
"tags": "Tags",
|
|
658
679
|
"task": "Tâche",
|
|
680
|
+
"task.ended": "Terminée",
|
|
659
681
|
"task.estimated-end": "Fin estimée",
|
|
660
682
|
"task.progress": "Progression",
|
|
661
|
-
"task.started": "
|
|
683
|
+
"task.started": "Démarrée",
|
|
662
684
|
"tasks": "Tâches",
|
|
663
685
|
"tasks.n-subtasks": "{n} sous-tâche | {n} sous-tâches",
|
|
664
686
|
"tasks.no-tasks": "Aucune tâche",
|
|
@@ -700,6 +722,7 @@
|
|
|
700
722
|
"unlocked": "Débloqué",
|
|
701
723
|
"unreachable-hosts": "Hôtes inaccessibles",
|
|
702
724
|
"unreachable-hosts-reload-page": "C'est fait. Rafraîchir la page",
|
|
725
|
+
"untitled": "Sans titre",
|
|
703
726
|
"untranslated-text-helper": "Par défaut, les textes non traduits seront affichés en anglais.",
|
|
704
727
|
"up-to-date": "À jour",
|
|
705
728
|
"update": "Mettre à jour",
|
|
@@ -754,6 +777,7 @@
|
|
|
754
777
|
"vms-tags": "Tags des VMs",
|
|
755
778
|
"warning": "Avertissement | Avertissements",
|
|
756
779
|
"weblate": "Weblate",
|
|
780
|
+
"welcome-to-xo6": "Bienvenue sur XO 6 !",
|
|
757
781
|
"with-memory": "Avec mémoire",
|
|
758
782
|
"write": "Écriture",
|
|
759
783
|
"xcp-ng": "XCP-ng",
|
|
@@ -763,6 +787,7 @@
|
|
|
763
787
|
"xo-backups": "Sauvegardes XO",
|
|
764
788
|
"xo-lite-under-construction": "XOLite est en construction",
|
|
765
789
|
"xo-replications": "Réplications XO",
|
|
790
|
+
"xo-team": "L'équipe XO",
|
|
766
791
|
"xoa": "XOA",
|
|
767
792
|
"xoa-admin-account": "Compte administrateur de la XOA",
|
|
768
793
|
"xoa-deploy": "Déploiement de la XOA",
|