chore(intl): split messages data
This commit is contained in:
@@ -117,8 +117,9 @@
|
||||
},
|
||||
"scripts": {
|
||||
"benchmarks": "./tools/run-benchmarks.js 'src/**/*.bench.js'",
|
||||
"build": "NODE_ENV=production gulp build",
|
||||
"dev": "gulp build server",
|
||||
"build": "npm run build-indexes && NODE_ENV=production gulp build",
|
||||
"build-indexes": "./tools/generate-index src/common/intl/locales",
|
||||
"dev": "npm run build-indexes && gulp build server",
|
||||
"dev-test": "ava --watch",
|
||||
"lint": "standard",
|
||||
"posttest": "npm run lint",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// import _ from 'messages' TODO: fix tooltip
|
||||
// import _ from 'intl' TODO: fix tooltip
|
||||
import ActionButton from 'action-button'
|
||||
import map from 'lodash/map'
|
||||
import React from 'react'
|
||||
|
||||
@@ -5,7 +5,7 @@ import map from 'lodash/map'
|
||||
import pick from 'lodash/pick'
|
||||
import React from 'react'
|
||||
|
||||
import _ from './messages'
|
||||
import _ from './intl'
|
||||
import Component from './base-component'
|
||||
import logError from './log-error'
|
||||
import Icon from './icon'
|
||||
|
||||
81
src/common/intl/index.js
Normal file
81
src/common/intl/index.js
Normal file
@@ -0,0 +1,81 @@
|
||||
|
||||
import isFunction from 'lodash/isFunction'
|
||||
import isString from 'lodash/isString'
|
||||
import moment from 'moment'
|
||||
import React, {
|
||||
Component,
|
||||
PropTypes
|
||||
} from 'react'
|
||||
import {
|
||||
connect
|
||||
} from 'react-redux'
|
||||
import {
|
||||
FormattedMessage,
|
||||
IntlProvider as IntlProvider_
|
||||
} from 'react-intl'
|
||||
|
||||
import messages from './messages'
|
||||
import locales from './locales'
|
||||
|
||||
// ===================================================================
|
||||
|
||||
// Params:
|
||||
//
|
||||
// - props (optional): properties to add to the FormattedMessage
|
||||
// - messageId: identifier of the message to format/translate
|
||||
// - values (optional): values to pass to the message
|
||||
// - render (optional): a function receiving the React nodes of the
|
||||
// translated message and returning the React node to render
|
||||
const getMessage = (props, messageId, values, render) => {
|
||||
if (isString(props)) {
|
||||
render = values
|
||||
values = messageId
|
||||
messageId = props
|
||||
props = undefined
|
||||
}
|
||||
|
||||
const message = messages[messageId]
|
||||
if (process.env.NODE_ENV !== 'production' && !message) {
|
||||
throw new Error(`no message defined for ${messageId}`)
|
||||
}
|
||||
|
||||
if (isFunction(values)) {
|
||||
render = values
|
||||
values = undefined
|
||||
}
|
||||
|
||||
return <FormattedMessage {...props} {...message} values={values}>
|
||||
{render}
|
||||
</FormattedMessage>
|
||||
}
|
||||
|
||||
export { getMessage as default }
|
||||
|
||||
@connect(({ lang }) => ({ lang }))
|
||||
export class IntlProvider extends Component {
|
||||
static propTypes = {
|
||||
children: PropTypes.node.isRequired,
|
||||
lang: PropTypes.string.isRequired
|
||||
};
|
||||
|
||||
render () {
|
||||
const { lang, children } = this.props
|
||||
return <IntlProvider_
|
||||
locale={lang}
|
||||
messages={locales[lang]}
|
||||
>
|
||||
{children}
|
||||
</IntlProvider_>
|
||||
}
|
||||
}
|
||||
|
||||
@connect(({ lang }) => ({ lang }))
|
||||
export class FormattedDuration extends Component {
|
||||
render () {
|
||||
const {
|
||||
duration,
|
||||
lang
|
||||
} = this.props
|
||||
return <span>{moment.duration(duration).locale(lang).humanize()}</span>
|
||||
}
|
||||
}
|
||||
1
src/common/intl/locales/.gitignore
vendored
Normal file
1
src/common/intl/locales/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/index.js
|
||||
417
src/common/intl/locales/fr.js
Normal file
417
src/common/intl/locales/fr.js
Normal file
@@ -0,0 +1,417 @@
|
||||
// See http://momentjs.com/docs/#/use-it/browserify/
|
||||
import 'moment/locale/fr'
|
||||
|
||||
import reactIntlData from 'react-intl/locale-data/fr'
|
||||
import { addLocaleData } from 'react-intl'
|
||||
addLocaleData(reactIntlData)
|
||||
|
||||
// ===================================================================
|
||||
|
||||
export default {
|
||||
ok: 'OK',
|
||||
cancel: 'Annuler',
|
||||
editableLongClickPlaceholder: 'Clic long pour éditer',
|
||||
editableClickPlaceholder: 'Cliquer pour éditer',
|
||||
// ----- General Menu -----
|
||||
dashboardPage: 'Tableau de bord',
|
||||
overviewDashboardPage: 'Vue d\'ensemble',
|
||||
overviewVisualizationDashboardPage: 'Visualisations',
|
||||
overviewStatsDashboardPage: 'Statistiques',
|
||||
overviewHealthDashboardPage: 'État de santé',
|
||||
selfServicePage: 'Self service',
|
||||
selfServiceDashboardPage: 'Tableau de bord',
|
||||
settingsServersPage: 'Serveurs',
|
||||
settingsUsersPage: 'Utilisateurs',
|
||||
settingsGroupsPage: 'Groupes',
|
||||
settingsAclsPage: 'ACLs',
|
||||
settingsPluginsPage: 'Extensions',
|
||||
selfServiceAdminPage: 'Administration',
|
||||
backupPage: 'Sauvegarde',
|
||||
backupOverviewPage: 'Vue d\'ensemble',
|
||||
backupNewPage: 'Créer',
|
||||
backupRemotesPage: 'Emplacement',
|
||||
backupRestorePage: 'Restaurer',
|
||||
updatePage: 'Mises à jour',
|
||||
settingsPage: 'Paramètres',
|
||||
aboutPage: 'À propos',
|
||||
newMenu: 'Nouveau',
|
||||
newVmPage: 'VM',
|
||||
newServerPage: 'Serveur',
|
||||
newSrPage: 'Stockage',
|
||||
newImport: 'Importer',
|
||||
// ----- Home view -----
|
||||
homeDisplayedVms: '{displayed}x {vmIcon} (sur {total})',
|
||||
homeSelectedVms: '{selected}x {vmIcon} sélectionnée{selected, plural, zero {} one {} other {s}} (sur {total})',
|
||||
homeMigrateTo: 'Migrer sur…',
|
||||
// ----- General Stuff -----
|
||||
homePage: 'Accueil',
|
||||
usernameLabel: 'Nom :',
|
||||
passwordLabel: 'Mot de passe :',
|
||||
signInButton: 'Connexion',
|
||||
signOut: 'Déconnexion',
|
||||
add: 'Ajouter',
|
||||
remove: 'Supprimer',
|
||||
schedule: 'Plan',
|
||||
newVmBackup: 'Nouvelle sauvegarde de VM',
|
||||
editVmBackup: 'Edition d\'un job de backup',
|
||||
backup: 'Sauvegarde',
|
||||
rollingSnapshot: 'Sauvegarde continue',
|
||||
deltaBackup: 'Sauvegarde différentielle',
|
||||
disasterRecovery: 'Reprise après panne',
|
||||
continuousReplication: 'Réplication continue',
|
||||
preview: 'Aperçu',
|
||||
item: 'Objet',
|
||||
noSelectedValue: 'Pas de valeur sélectionnée',
|
||||
selectSubjects: 'Select. utilisateurs et/ou groupe(s)',
|
||||
selectHosts: 'Selectionner Hôte(s)…',
|
||||
selectNetworks: 'Selectionner Network(s)…',
|
||||
selectPifs: 'Sélectionner PIF(s)…',
|
||||
selectHostsVms: 'Selectionner objet(s)…',
|
||||
selectPools: 'Selectionner Pool(s)…',
|
||||
selectRemotes: 'Selectionner Remote(s)…',
|
||||
selectSrs: 'Selectionner Stockages(s)…',
|
||||
selectVms: 'Selectionner VM(s)…',
|
||||
selectVmTemplates: 'Selectionner patrons de VM…',
|
||||
selectTags: 'Selectionner tag(s)…',
|
||||
selectVdis: 'Selectionner disque(s)…',
|
||||
fillRequiredInformations: 'Remplir les champs requis.',
|
||||
fillOptionalInformations: 'Remplir informations (optionnel)',
|
||||
selectTableReset: 'Réinitialiser',
|
||||
schedulingMonth: 'Mois',
|
||||
schedulingEveryMonth: 'Tous les mois',
|
||||
schedulingEachSelectedMonth: 'Chaque mois sélectionné',
|
||||
schedulingMonthDay: 'Jour du mois',
|
||||
schedulingEveryMonthDay: 'Tous les jours',
|
||||
schedulingEachSelectedMonthDay: 'Chaque jour sélectionné',
|
||||
schedulingWeekDay: 'Jour de la semaine',
|
||||
schedulingEveryWeekDay: 'Tous les jours',
|
||||
schedulingEachSelectedWeekDay: 'Chaque jour sélectionné',
|
||||
schedulingHour: 'Heure',
|
||||
schedulingEveryHour: 'Toutes les heures',
|
||||
schedulingEveryNHour: 'Toutes les N heures',
|
||||
schedulingEachSelectedHour: 'Chaque heure sélectionnée',
|
||||
schedulingMinute: 'Minute',
|
||||
schedulingEveryMinute: 'Toutes les minutes',
|
||||
schedulingEveryNMinute: 'Toutes les N minutes',
|
||||
schedulingEachSelectedMinute: 'Chaque minute sélectionnée',
|
||||
schedulingReset: 'Reset',
|
||||
unknownSchedule: 'Inconnu',
|
||||
job: 'Job',
|
||||
jobTag: 'Tag',
|
||||
jobScheduling: 'Plan d\'exécution',
|
||||
jobState: 'Etat',
|
||||
runJob: 'Execution d\'un job',
|
||||
runJobVerbose: 'Une exécution a été lancée. Voir l\'overview pour plus de détails.',
|
||||
jobStarted: 'Démarré',
|
||||
jobFinished: 'Terminé',
|
||||
saveBackupJob: 'Sauvegarder',
|
||||
deleteJob: 'Supprimer Job',
|
||||
deleteJobQuestion: 'Etes-vous sûr de vouloir supprimer ce job ?',
|
||||
noScheduledJobs: 'Aucun job programmé.',
|
||||
newBackupSelection: 'Sélectionner votre type de sauvegarde :',
|
||||
autoloadPlugin: 'Charger au démarrage du serveur',
|
||||
savePluginConfiguration: 'Sauvegarder config.',
|
||||
deletePluginConfiguration: 'Supprimer config.',
|
||||
pluginError: 'Erreur plugin',
|
||||
unknownPluginError: 'Erreur inconnue',
|
||||
purgePluginConfiguration: 'Suppression de la config. du plugin',
|
||||
purgePluginConfigurationQuestion: 'Etes-vous sûr de vouloir supprimer la configuration de ce plugin ?',
|
||||
editPluginConfiguration: 'Editer',
|
||||
cancelPluginEdition: 'Annuler',
|
||||
pluginConfigurationSuccess: 'Configuration du plugin',
|
||||
pluginConfigurationChanges: 'La configuration du plugin a été sauvegardée !',
|
||||
startVmLabel: 'Démarrer',
|
||||
recoveryModeLabel: 'Démarrer en mode sans échec',
|
||||
suspendVmLabel: 'Suspendre',
|
||||
stopVmLabel: 'Arrêter',
|
||||
forceShutdownVmLabel: 'Forcer l\'arrêt',
|
||||
rebootVmLabel: 'Redémarrer',
|
||||
forceRebootVmLabel: 'Forcer le redémarrage',
|
||||
deleteVmLabel: 'Supprimer',
|
||||
migrateVmLabel: 'Migrer',
|
||||
snapshotVmLabel: 'Prendre un instantané',
|
||||
exportVmLabel: 'Exporter',
|
||||
copyVmLabel: 'Copier',
|
||||
cloneVmLabel: 'Cloner',
|
||||
convertToTemplateLabel: 'Convertir en modèle',
|
||||
// ----- host tab names -----
|
||||
storageTabName: 'Stockage',
|
||||
patchesTabName: 'Patches',
|
||||
// ----- host advanced tab -----
|
||||
hardwareHostSettingsLabel: 'Matériel',
|
||||
hostAddress: 'Adresse',
|
||||
hostStatus: 'Statut',
|
||||
hostBuildNumber: 'Numéro de build',
|
||||
hostIscsiName: 'Nom iSCSI',
|
||||
hostXenServerVersion: 'Version',
|
||||
hostStatusEnabled: 'Activé',
|
||||
hostStatusDisabled: 'Désactivé',
|
||||
hostPowerOnMode: 'Mode d\'allumage',
|
||||
powerOnDisabled: 'Désactivé',
|
||||
hostStartedSince: 'Système',
|
||||
hostStackStartedSince: 'XAPI',
|
||||
hostCpusModel: 'Modèle de processeur',
|
||||
hostCpusNumber: 'Cœur (socket)',
|
||||
hostManufacturerinfo: 'Informations constructeur',
|
||||
hostBiosinfo: 'Informations BIOS',
|
||||
licenseHostSettingsLabel: 'Licence',
|
||||
hostLicenseType: 'Type de licence',
|
||||
hostLicenseSocket: 'Nombre de socket',
|
||||
hostLicenseExpiry: 'Expiration',
|
||||
// ----- VM stat tab -----
|
||||
statLoad: 'Charge système',
|
||||
// ----- VM tab names -----
|
||||
vmConsoleLabel: 'Console',
|
||||
generalTabName: 'Général',
|
||||
statsTabName: 'Stats',
|
||||
consoleTabName: 'Console',
|
||||
snapshotsTabName: 'Instantanés',
|
||||
logsTabName: 'Journaux',
|
||||
advancedTabName: 'Avancé',
|
||||
networkTabName: 'Réseau',
|
||||
disksTabName: 'Disque{disks, plural, zero {} one {} other {s}}',
|
||||
powerStateHalted: 'arrêtée',
|
||||
powerStateRunning: 'en marche',
|
||||
started: 'Démarrée {ago}',
|
||||
noToolsDetected: 'Pas d\'outils Xen détectés',
|
||||
noIpv4Record: 'Aucune IPv4',
|
||||
noIpRecord: 'Aucune IP',
|
||||
virtualizationMode: 'Mode de virtualisation',
|
||||
// ----- VM stat tab -----
|
||||
statsCpu: 'Utilisation processeur',
|
||||
statsMemory: 'Utilisation mémoire',
|
||||
statsNetwork: 'Débit réseau',
|
||||
statDisk: 'Débit disque',
|
||||
statLastTenMinutes: 'Il y a 10 minutes',
|
||||
statLastTwoHours: 'Il y a 2 heures',
|
||||
statLastWeek: 'La semaine dernière',
|
||||
statLastYear: 'L\'année dernière',
|
||||
// ----- VM console tab -----
|
||||
copyToClipboardLabel: 'Copier',
|
||||
ctrlAltDelButtonLabel: 'Ctrl+Alt+Suppr',
|
||||
tipLabel: 'Conseil :',
|
||||
tipConsoleLabel: 'Les agencements de clavier hors États-Unis ont des problèmes avec la console: passez le votre en "US".',
|
||||
// ----- VM disk tab -----
|
||||
vdiAttachDeviceButton: 'Brancher un disque',
|
||||
vbdCreateDeviceButton: 'Nouveau disque',
|
||||
vdiBootOrder: 'Ordre de démarrage',
|
||||
vdiNameLabel: 'Nom',
|
||||
vdiNameDescription: 'Déscription',
|
||||
vdiTags: 'Tags',
|
||||
vdiSize: 'Taille',
|
||||
vdiSr: 'Stockage',
|
||||
vdbBootableStatus: 'Démarrable ?',
|
||||
vdbBootable: 'Démarrable',
|
||||
vdbNotBootable: 'Non démarrable',
|
||||
vdbStatus: 'Statut',
|
||||
vbdStatusConnected: 'Connecté',
|
||||
vbdStatusDisconnected: 'Déconnecté',
|
||||
vbdNoVbd: 'Pas de disque',
|
||||
// ----- VM network tab -----
|
||||
vifCreateDeviceButton: 'Nouvelle interface',
|
||||
vifNoInterface: 'Aucune interface',
|
||||
vifDeviceLabel: 'Interface',
|
||||
vifMacLabel: 'Adresse physique',
|
||||
vifMtuLabel: 'MTU',
|
||||
vifNetworkLabel: 'Réseau',
|
||||
vifStatusLabel: 'Statut',
|
||||
vifStatusConnected: 'Connecté',
|
||||
vifStatusDisconnected: 'Déconnecté',
|
||||
// ----- VM snapshot tab -----
|
||||
noSnapshot: 'Aucun instantané',
|
||||
snapshotCreateButton: 'Nouvel instantané',
|
||||
tipCreateSnapshotLabel: 'Cliquez sur le bouton pour en créer un !',
|
||||
snapshotDate: 'Date de l\'instantané',
|
||||
snapshotName: 'Nom',
|
||||
snapshotAction: 'Action',
|
||||
// ----- VM log tab -----
|
||||
logRemoveAll: 'Supprimer tous les journaux',
|
||||
noLogs: 'Aucun journal pour l\'instant',
|
||||
logDate: 'Date du journal',
|
||||
logName: 'Nom',
|
||||
logContent: 'Contenu',
|
||||
logAction: 'Action',
|
||||
// ----- VM advanced tab -----
|
||||
uuid: 'Identifiant unique',
|
||||
miscLabel: 'Divers',
|
||||
xenSettingsLabel: 'Paramètres Xen',
|
||||
guestOsLabel: 'Système d\'exploitatation',
|
||||
paraVirtualizedMode: 'Paravirtualisation (PV)',
|
||||
hardwareVirtualizedMode: 'Virtualisation matérielle (HVM)',
|
||||
xenToolsStatus: 'État des outils Xen',
|
||||
xenToolsStatusValue: `{status, select,
|
||||
unknown {Inconnu}
|
||||
up-to-date {À jour}
|
||||
out-of-date {Obsolètes}
|
||||
not-installed {Pas installés}
|
||||
}`,
|
||||
osName: 'Nom du système d\'exploitation',
|
||||
cpuWeightLabel: 'Poids CPU',
|
||||
defaultCpuWeight: 'Par défaut',
|
||||
osKernel: 'Noyau du système d\'exploitation',
|
||||
autoPowerOn: 'Démarrage automatique',
|
||||
ha: 'Haute disponibilité',
|
||||
originalTemplate: 'Modèle d\'origine',
|
||||
unknownOsName: 'Inconnu',
|
||||
unknownOsKernel: 'Inconnu',
|
||||
vmLimitsLabel: 'Limites',
|
||||
vmCpuLimitsLabel: 'Limites processeur',
|
||||
vmMemoryLimitsLabel: 'Limites mémoire',
|
||||
unknownOriginalTemplate: 'Inconnu',
|
||||
// ----- VM placholders -----
|
||||
vmHomeNamePlaceholder: 'Clic long pour ajouter un nom',
|
||||
vmHomeDescriptionPlaceholder: 'Clic long pour ajouter une description',
|
||||
vmViewNamePlaceholder: 'Cliquer pour ajouter un nom',
|
||||
vmViewDescriptionPlaceholder: 'Cliquer pour ajouter une description',
|
||||
|
||||
// ----- Dashboard -----
|
||||
poolPanel: 'Pool{pools, plural, zero {} one {} other {s}}',
|
||||
hostPanel: 'Hôte{hosts, plural, zero {} one {} other {s}}',
|
||||
vmPanel: 'VM{vms, plural, zero {} one {} other {s}}',
|
||||
memoryStatePanel: 'Utilisation mémoire',
|
||||
cpuStatePanel: 'Attribution CPU',
|
||||
srUsageStatePanel: 'Utilisation du stockage',
|
||||
vmStatePanel: 'État des VMs',
|
||||
srStatePanel: 'État du stockage',
|
||||
taskStatePanel: 'Tâches en cours',
|
||||
usersStatePanel: 'Utilisateurs',
|
||||
ofUsage: 'sur',
|
||||
noSrs: 'Aucun stockage',
|
||||
srName: 'Nom',
|
||||
srPool: 'Pool',
|
||||
srHost: 'Hôte',
|
||||
srFormat: 'Type',
|
||||
srSize: 'Taille',
|
||||
srUsage: 'Utilisation',
|
||||
srTopUsageStatePanel: 'Top 5 d\'utilisation des stockages (en %)',
|
||||
// --- Stats board --
|
||||
weekHeatmapNoData: 'Pas de données.',
|
||||
statsDashboardGenericErrorTitle: 'Erreur stats',
|
||||
statsDashboardGenericErrorMessage: 'Pas de stats disponibles pour :',
|
||||
noSelectedMetric: 'Pas de métrique sélectionnée',
|
||||
statsDashboardSelectObjects: 'Valider',
|
||||
metricsLoading: 'Chargement…',
|
||||
// ----- Health -----
|
||||
orphanedVdis: 'Disques orphelins',
|
||||
orphanedVms: 'VM orphelines',
|
||||
noOrphanedObject: 'Pas d\'orphelin',
|
||||
vmNameLabel: 'Nom',
|
||||
vmNameDescription: 'Description',
|
||||
vmContainer: 'Présent sur',
|
||||
alarmMessage: 'Alarmes',
|
||||
noAlarms: 'Aucune alarme',
|
||||
alarmDate: 'Date',
|
||||
alarmContent: 'Contenu',
|
||||
alarmObject: 'Concernant',
|
||||
alarmPool: 'Pool',
|
||||
alarmRemoveAll: 'Supprimer toutes les alarmes',
|
||||
// ----- New VM -----
|
||||
newVmCreateNewVmOn: 'Créer une nouvelle VM sur {pool}',
|
||||
newVmInfoPanel: 'Informations',
|
||||
newVmNameLabel: 'Nom',
|
||||
newVmTemplateLabel: 'Modèle',
|
||||
newVmDescriptionLabel: 'Description',
|
||||
newVmPerfPanel: 'Performances',
|
||||
newVmVcpusLabel: 'vCPUs',
|
||||
newVmRamLabel: 'RAM',
|
||||
newVmInstallSettingsPanel: 'Paramètres d\'installation',
|
||||
newVmIsoDvdLabel: 'ISO/DVD',
|
||||
newVmNetworkLabel: 'Network',
|
||||
newVmPvArgsLabel: 'PV Args',
|
||||
newVmPxeLabel: 'PXE',
|
||||
newVmInterfacesPanel: 'Interfaces',
|
||||
newVmMacLabel: 'MAC',
|
||||
newVmAddInterface: 'Ajouter une interface',
|
||||
newVmDisksPanel: 'Disques',
|
||||
newVmSrLabel: 'SR',
|
||||
newVmBootableLabel: 'Amorçable',
|
||||
newVmSizeLabel: 'Taille',
|
||||
newVmAddDisk: 'Ajouter un disque',
|
||||
newVmSummaryPanel: 'Résumé',
|
||||
newVmCreate: 'Créer',
|
||||
newVmReset: 'Effacer',
|
||||
newVmSelectTemplate: 'Sélectionner un template',
|
||||
newVmSshKey: 'Clé SSH',
|
||||
newVmCustomConfig: 'Configuration personnalisée',
|
||||
newVmBootAfterCreate: 'Démarrer la VM après sa création',
|
||||
newVmMacPlaceholder: 'Auto-généré si vide',
|
||||
newVmCpuWeightLabel: 'Poids CPU',
|
||||
newVmCpuWeightQuarter: 'Quart (1/4)',
|
||||
newVmCpuWeightHalf: 'Moitié (1/2)',
|
||||
newVmCpuWeightNormal: 'Normal',
|
||||
newVmCpuWeightDouble: 'Double (x2)',
|
||||
|
||||
// ---- VM import ---
|
||||
importVmsList: 'Glissez des backups ici ou cliquez pour sélectionner des backups à envoyer. Accepte seulement les fichiers .xva.',
|
||||
noSelectedVms: 'Pas de VMs sélectionnées.',
|
||||
vmImportToPool: 'Sur le Pool:',
|
||||
vmImportToSr: 'Sur le SR:',
|
||||
vmsToImport: 'VMs à importer',
|
||||
importVmsCleanList: 'Reset',
|
||||
vmImportSuccess: 'Import de VM réussi',
|
||||
vmImportFailed: 'Import de VM échoué',
|
||||
startVmImport: 'Lancement de l\'import…',
|
||||
startVmExport: 'Lancement de l\'export…',
|
||||
// ----- Modals -----
|
||||
startVmsModalTitle: 'Démarrer {vms, plural, one {la} other {les}} VM{vms, plural, one {} other {s}}',
|
||||
startVmsModalMessage: 'Voulez-vous vraiment démarrer {vms} VM{vms, plural, one {} other {s}} ?',
|
||||
stopVmsModalTitle: 'Arrêter {vms, plural, one {la} other {les}} VM{vms, plural, one {} other {s}}',
|
||||
stopVmsModalMessage: 'Voulez-vous vraiment arrêter {vms} VM{vms, plural, one {} other {s}} ?',
|
||||
restartVmsModalTitle: 'Redémarrer {vms, plural, one {la} other {les}} VM{vms, plural, one {} other {s}}',
|
||||
restartVmsModalMessage: 'Voulez-vous vraiment redémarrer {vms} VM{vms, plural, one {} other {s}} ?',
|
||||
migrateVmModalTitle: 'Migrer la VM',
|
||||
migrateVmModalBody: 'Voulez-vous vraiment migrer cette VM sur {hostName} ?',
|
||||
migrateVmAdvancedModalSelectHost: 'Sélectionnez un hôte de destination:',
|
||||
migrateVmAdvancedModalSelectNetwork: 'Sélectionnez un réseau pour la migration:',
|
||||
migrateVmAdvancedModalSelectSrs: 'Pour chaque VDI, sélectionnez un SR:',
|
||||
migrateVmAdvancedModalSelectNetworks: 'Pour chaque VIF, sélectionnez un réseau:',
|
||||
migrateVmAdvancedModalName: 'Nom',
|
||||
migrateVmAdvancedModalSr: 'SR',
|
||||
migrateVmAdvancedModalVif: 'VIF',
|
||||
migrateVmAdvancedModalNetwork: 'Réseau',
|
||||
migrateVmAdvancedModalNoRemapping: 'Migration intra-pool : le re-mappage n\'est pas requis',
|
||||
// ------ Self ------
|
||||
resourceSets: 'Ensemble de ressources',
|
||||
resourceSetName: 'Nom de l\'ensemble de ressources',
|
||||
resourceSetCreation: 'Création and édition',
|
||||
saveResourceSet: 'Sauvegarder',
|
||||
resetResourceSet: 'Effacer',
|
||||
editResourceSet: 'Editer',
|
||||
deleteResourceSet: 'Supprimer',
|
||||
deleteResourceSetWarning: 'Suppression d\'un ensemble de ressources.',
|
||||
deleteResourceSetQuestion: 'Etes-vous sûr de vouloir supprimer cet ensemble ?',
|
||||
resourceSetMissingObjects: 'Objets manquants :',
|
||||
resourceSetVcpus: 'vCPUs',
|
||||
resourceSetMemory: 'Mémoire',
|
||||
resourceSetStorage: 'Stockage',
|
||||
unknownResourceSetValue: 'Inconnu',
|
||||
availableHosts: 'Hôtes disponibles',
|
||||
excludedHosts: 'Hôtes exclus',
|
||||
noHostsAvailable: 'Pas d\'hôtes disponibles.',
|
||||
availableHostsDescription: 'Les VMs crées par cet ensemble de ressources doivent tourner sur les hôtes suivants.',
|
||||
maxCpus: 'Nombre max de CPUs',
|
||||
maxRam: 'Maximum RAM (GiB)',
|
||||
maxDiskSpace: 'Maximum d\'espace disque',
|
||||
totalResource: 'Total :',
|
||||
remainingResource: 'Restants :',
|
||||
usedResource: 'Utilisés :',
|
||||
noResourceSetLimits: 'Pas de limites.',
|
||||
// ----- Copy VM -----
|
||||
copyVm: 'Copier la VM',
|
||||
copyVmConfirm: 'Voulez-vous vraiment copier cette VM sur {SR} ?',
|
||||
copyVmName: 'Nom',
|
||||
copyVmNamePlaceholder: 'Si vide : nom de la VM copiée',
|
||||
copyVmSelectSr: 'Sélectionnez un SR',
|
||||
copyVmCompress: 'Utiliser la compression',
|
||||
// ----- Network -----
|
||||
networkCreate: 'Créer un réseau',
|
||||
deleteNetwork: 'Supprimer le réseau',
|
||||
deleteNetworkConfirm: 'Etes-vous sûr de vouloir supprimer ce réseau ?',
|
||||
// ----- PIF -----
|
||||
connectPif: 'Connecter la PIF',
|
||||
connectPifConfirm: 'Etes-vous sûr de vouloir connecter cette PIF ?',
|
||||
disconnectPif: 'Déconnecter la PIF',
|
||||
disconnectPifConfirm: 'Etes-vous sûr de vouloir déconnecter cette PIF ?',
|
||||
deletePif: 'Supprimer la PIF',
|
||||
deletePifConfirm: 'Etes-vous sûr de vouloir supprimer cette PIF ?'
|
||||
}
|
||||
783
src/common/intl/messages.js
Normal file
783
src/common/intl/messages.js
Normal file
@@ -0,0 +1,783 @@
|
||||
// This file is coded in ES5 and CommonJS to be compatible with
|
||||
// `create-locale`.
|
||||
|
||||
var forEach = require('lodash/forEach')
|
||||
var isString = require('lodash/isString')
|
||||
|
||||
var messages = {
|
||||
ok: 'OK',
|
||||
cancel: 'Cancel',
|
||||
editableLongClickPlaceholder: 'Long click to edit',
|
||||
editableClickPlaceholder: 'Click to edit',
|
||||
|
||||
// ----- Titles -----
|
||||
homePage: 'Home',
|
||||
dashboardPage: 'Dashboard',
|
||||
overviewDashboardPage: 'Overview',
|
||||
overviewVisualizationDashboardPage: 'Visualizations',
|
||||
overviewStatsDashboardPage: 'Statistics',
|
||||
overviewHealthDashboardPage: 'Health',
|
||||
selfServicePage: 'Self service',
|
||||
selfServiceDashboardPage: 'Dashboard',
|
||||
selfServiceAdminPage: 'Administration',
|
||||
backupPage: 'Backup',
|
||||
jobsPage: 'Jobs',
|
||||
updatePage: 'Updates',
|
||||
settingsPage: 'Settings',
|
||||
settingsServersPage: 'Servers',
|
||||
settingsUsersPage: 'Users',
|
||||
settingsGroupsPage: 'Groups',
|
||||
settingsAclsPage: 'ACLs',
|
||||
settingsPluginsPage: 'Plugins',
|
||||
aboutPage: 'About',
|
||||
newMenu: 'New',
|
||||
taskMenu: 'Tasks',
|
||||
newVmPage: 'VM',
|
||||
newSrPage: 'Storage',
|
||||
newServerPage: 'Server',
|
||||
newImport: 'Import',
|
||||
backupOverviewPage: 'Overview',
|
||||
backupNewPage: 'New',
|
||||
backupRemotesPage: 'Remotes',
|
||||
backupRestorePage: 'Restore',
|
||||
schedule: 'Schedule',
|
||||
newVmBackup: 'New VM backup',
|
||||
editVmBackup: 'Edit VM backup',
|
||||
backup: 'Backup',
|
||||
rollingSnapshot: 'Rolling Snapshot',
|
||||
deltaBackup: 'Delta Backup',
|
||||
disasterRecovery: 'Disaster Recovery',
|
||||
continuousReplication: 'Continuous Replication',
|
||||
jobsOverviewPage: 'Overview',
|
||||
jobsNewPage: 'New',
|
||||
jobsSchedulingPage: 'Scheduling',
|
||||
customJob: 'Custom Job',
|
||||
|
||||
// ----- Languages -----
|
||||
enLang: 'EN',
|
||||
frLang: 'FR',
|
||||
|
||||
// ----- Sign in/out -----
|
||||
usernameLabel: 'Username:',
|
||||
passwordLabel: 'Password:',
|
||||
signInButton: 'Sign in',
|
||||
signOut: 'Sign out',
|
||||
|
||||
// ----- Home view ------
|
||||
homeFetchingData: 'Fetching data…',
|
||||
homeWelcome: 'Welcome on Xen Orchestra!',
|
||||
homeWelcomeText: 'Add your XenServer hosts or pools',
|
||||
homeHelp: 'Want some help?',
|
||||
homeAddServer: 'Add server',
|
||||
homeOnlineDoc: 'Online Doc',
|
||||
homeProSupport: 'Pro Support',
|
||||
homeNoVms: 'There are no VMs!',
|
||||
homeNoVmsOr: 'Or…',
|
||||
homeImportVm: 'Import VM',
|
||||
homeImportVmMessage: 'Import an existing VM in xva format',
|
||||
homeRestoreBackup: 'Restore a backup',
|
||||
homeRestoreBackupMessage: 'Restore a backup from a remote store',
|
||||
homeNewVmMessage: 'This will create a new VM',
|
||||
homeFilters: 'Filters',
|
||||
homeTypePool: 'Pool',
|
||||
homeTypeHost: 'Host',
|
||||
homeTypeVm: 'VM',
|
||||
homeTypeSr: 'SR',
|
||||
homeTypeVdi: 'VDI',
|
||||
homeSort: 'Sort',
|
||||
homeAllPools: 'Pools',
|
||||
homeAllHosts: 'Hosts',
|
||||
homeAllTags: 'Tags',
|
||||
homeNewVm: 'New VM',
|
||||
homeFilterRunningHosts: 'Running hosts',
|
||||
homeFilterDisabledHosts: 'Disabled hosts',
|
||||
homeFilterRunningVms: 'Running VMs',
|
||||
homeFilterNonRunningVms: 'Non running VMs',
|
||||
homeFilterPendingVms: 'Pending VMs',
|
||||
homeFilterHvmGuests: 'HVM guests',
|
||||
homeFilterTags: 'Tags',
|
||||
homeSortBy: 'Sort by',
|
||||
homeSortByName: 'Name',
|
||||
homeSortByPowerstate: 'Power state',
|
||||
homeSortByRAM: 'RAM',
|
||||
homeSortByvCPUs: 'vCPUs',
|
||||
homeDisplayedVms: '{displayed, number}x {vmIcon} (on {total, number})',
|
||||
homeSelectedVms: '{selected, number}x {vmIcon} selected (on {total, number})',
|
||||
homeMore: 'More',
|
||||
homeMigrateTo: 'Migrate to…',
|
||||
|
||||
// ----- Forms -----
|
||||
add: 'Add',
|
||||
remove: 'Remove',
|
||||
preview: 'Aperçu',
|
||||
item: 'Item',
|
||||
noSelectedValue: 'No selected value',
|
||||
selectSubjects: 'Choose user(s) and/or group(s)',
|
||||
selectObjects: 'Select Object(s)…',
|
||||
selectRole: 'Choose a role',
|
||||
selectHosts: 'Select Host(s)…',
|
||||
selectHostsVms: 'Select object(s)…',
|
||||
selectNetworks: 'Select Network(s)…',
|
||||
selectPifs: 'Select PIF(s)…',
|
||||
selectPools: 'Select Pool(s)…',
|
||||
selectRemotes: 'Select Remote(s)…',
|
||||
selectSrs: 'Select SR(s)…',
|
||||
selectVms: 'Select VM(s)…',
|
||||
selectVmTemplates: 'Select VM template(s)…',
|
||||
selectTags: 'Select tag(s)…',
|
||||
selectVdis: 'Select disk(s)…',
|
||||
fillRequiredInformations: 'Fill required informations.',
|
||||
fillOptionalInformations: 'Fill informations (optional)',
|
||||
selectTableReset: 'Reset',
|
||||
|
||||
// --- Dates/Scheduler ---
|
||||
|
||||
schedulingMonth: 'Month',
|
||||
schedulingEveryMonth: 'Every month',
|
||||
schedulingEachSelectedMonth: 'Each selected month',
|
||||
schedulingMonthDay: 'Day of the month',
|
||||
schedulingEveryMonthDay: 'Every day',
|
||||
schedulingEachSelectedMonthDay: 'Each selected day',
|
||||
schedulingWeekDay: 'Day of the week',
|
||||
schedulingEveryWeekDay: 'Every day',
|
||||
schedulingEachSelectedWeekDay: 'Each selected day',
|
||||
schedulingHour: 'Hour',
|
||||
schedulingEveryHour: 'Every hour',
|
||||
schedulingEveryNHour: 'Every N hour',
|
||||
schedulingEachSelectedHour: 'Each selected hour',
|
||||
schedulingMinute: 'Minute',
|
||||
schedulingEveryMinute: 'Every minute',
|
||||
schedulingEveryNMinute: 'Every N minute',
|
||||
schedulingEachSelectedMinute: 'Each selected minute',
|
||||
schedulingReset: 'Reset',
|
||||
unknownSchedule: 'Unknown',
|
||||
job: 'Job',
|
||||
jobId: 'Job ID',
|
||||
jobName: 'Name',
|
||||
jobStart: 'Start',
|
||||
jobEnd: 'End',
|
||||
jobDuration: 'Duration',
|
||||
jobStatus: 'Status',
|
||||
jobAction: 'Action',
|
||||
jobTag: 'Tag',
|
||||
jobScheduling: 'Scheduling',
|
||||
jobState: 'State',
|
||||
runJob: 'Run job',
|
||||
runJobVerbose: 'One shot running started. See overview for logs.',
|
||||
jobStarted: 'Started',
|
||||
jobFinished: 'Finished',
|
||||
saveBackupJob: 'Save',
|
||||
deleteBackupSchedule: 'Remove backup job',
|
||||
deleteBackupScheduleQuestion: 'Are you sure you want to delete this backup job?',
|
||||
scheduleEnableAfterCreation: 'Enable immediately after creation',
|
||||
scheduleEditMessage: 'You are editing Schedule {name} ({id}). Saving will override previous schedule state.',
|
||||
jobEditMessage: 'You are editing job {name} ({id}). Saving will override previous job state.',
|
||||
noScheduledJobs: 'No scheduled jobs.',
|
||||
noJobs: 'No jobs found.',
|
||||
noSchedules: 'No schedules found',
|
||||
jobActionPlaceHolder: 'Select a xo-server API command',
|
||||
|
||||
// ------ New backup -----
|
||||
newBackupSelection: 'Select your backup type:',
|
||||
|
||||
// ------ New Remote -----
|
||||
remoteList: 'Remote stores for backup',
|
||||
newRemote: 'New File System Remote',
|
||||
remoteTypeLocal: 'Local',
|
||||
remoteTypeNfs: 'NFS',
|
||||
remoteTypeSmb: 'SMB',
|
||||
remoteType: 'Type',
|
||||
|
||||
// ------ New Storage -----
|
||||
newSrGeneral: 'General',
|
||||
newSrTypeSelection: 'Select Strorage Type:',
|
||||
newSrSettings: 'Settings',
|
||||
newSrUsage: 'Storage Usage',
|
||||
newSrSummary: 'Summary',
|
||||
newSrHost: 'Host',
|
||||
newSrType: 'Type',
|
||||
newSrName: 'Name',
|
||||
newSrDescription: 'Description',
|
||||
newSrServer: 'Server',
|
||||
newSrPath: 'Path',
|
||||
newSrIqn: 'IQN',
|
||||
newSrLun: 'LUN',
|
||||
newSrAuth: 'with auth.',
|
||||
newSrUsername: 'User Name',
|
||||
newSrPassword: 'Password',
|
||||
newSrDevice: 'Device',
|
||||
newSrInUse: 'in use',
|
||||
newSrSize: 'Size',
|
||||
newSrCreate: 'Create',
|
||||
|
||||
// ----- Acls, Users, Groups ------
|
||||
subjectName: 'Users/Groups',
|
||||
objectName: 'Object',
|
||||
roleName: 'Role',
|
||||
newGroupName: 'New Group Name',
|
||||
createGroup: 'Create Group',
|
||||
createGroupButton: 'Create',
|
||||
deleteGroup: 'Delete Group',
|
||||
deleteGroupConfirm: 'Are you sure you want to delete this group?',
|
||||
deleteUSer: 'Delete User',
|
||||
removeUserFromGroup: 'Remove user from Group',
|
||||
deleteUserConfirm: 'Are you sure you want to delete this user?',
|
||||
unknownUser: 'unknown user',
|
||||
noGroupFound: 'No group found',
|
||||
groupNameColumn: 'Name',
|
||||
groupUsersColumn: 'Users',
|
||||
addUserToGroupColumn: 'Add User',
|
||||
userNameColumn: 'Email',
|
||||
userPermissionColumn: 'Permissions',
|
||||
userPasswordColumn: 'Password',
|
||||
userName: 'Email',
|
||||
userPassword: 'Password',
|
||||
createUserButton: 'Create',
|
||||
noUserFound: 'No user found',
|
||||
userLabel: 'User',
|
||||
adminLabel: 'Admin',
|
||||
noUserInGroup: 'No user in group',
|
||||
countUsers: '{users} user{users, plural, one {} other {s}}',
|
||||
selectPermission: 'Select Permission',
|
||||
|
||||
// ----- Plugins ------
|
||||
autoloadPlugin: 'Auto-load at server start',
|
||||
savePluginConfiguration: 'Save configuration',
|
||||
deletePluginConfiguration: 'Delete configuration',
|
||||
pluginError: 'Plugin error',
|
||||
unknownPluginError: 'Unknown error',
|
||||
purgePluginConfiguration: 'Purge plugin configuration',
|
||||
purgePluginConfigurationQuestion: 'Are you sure you want to purge this configuration ?',
|
||||
editPluginConfiguration: 'Edit',
|
||||
cancelPluginEdition: 'Cancel',
|
||||
pluginConfigurationSuccess: 'Plugin configuration',
|
||||
pluginConfigurationChanges: 'Plugin configuration successfully saved!',
|
||||
|
||||
// ----- VM actions ------
|
||||
startVmLabel: 'Start',
|
||||
recoveryModeLabel: 'Recovery start',
|
||||
suspendVmLabel: 'Suspend',
|
||||
stopVmLabel: 'Stop',
|
||||
forceShutdownVmLabel: 'Force shutdown',
|
||||
rebootVmLabel: 'Reboot',
|
||||
forceRebootVmLabel: 'Force reboot',
|
||||
deleteVmLabel: 'Delete',
|
||||
migrateVmLabel: 'Migrate',
|
||||
snapshotVmLabel: 'Snapshot',
|
||||
exportVmLabel: 'Export',
|
||||
resumeVmLabel: 'Resume',
|
||||
copyVmLabel: 'Copy',
|
||||
cloneVmLabel: 'Clone',
|
||||
fastCloneVmLabel: 'Fast clone',
|
||||
convertVmToTemplateLabel: 'Convert to template',
|
||||
vmConsoleLabel: 'Console',
|
||||
|
||||
// ----- SR tabs -----
|
||||
// ----- SR actions -----
|
||||
srRescan: 'Rescan all disks',
|
||||
srReconnectAll: 'Connect to all hosts',
|
||||
srDisconnectAll: 'Disconnect to all hosts',
|
||||
srForget: 'Forget this SR',
|
||||
srRemoveButton: 'Remove this SR',
|
||||
srNoVdis: 'No VDIs in this storage',
|
||||
// ----- Pool tabs -----
|
||||
hostsTabName: 'Hosts',
|
||||
// ----- Pool advanced tab -----
|
||||
poolHaStatus: 'High Availability',
|
||||
poolHaEnabled: 'Enabled',
|
||||
poolHaDisabled: 'Disabled',
|
||||
// ----- Pool host tab -----
|
||||
hostNameLabel: 'Name',
|
||||
hostDescription: 'Description',
|
||||
hostMemory: 'Memory',
|
||||
noHost: 'No hosts',
|
||||
// ----- Pool network tab -----
|
||||
poolNetworkNameLabel: 'Name',
|
||||
poolNetworkDescription: 'Description',
|
||||
poolNetworkPif: 'PIFs',
|
||||
poolNoNetwork: 'No networks',
|
||||
poolNetworkMTU: 'MTU',
|
||||
poolNetworkPifAttached: 'Connected',
|
||||
poolNetworkPifDetached: 'Disconnected',
|
||||
// ----- Pool actions ------
|
||||
addSrLabel: 'Add SR',
|
||||
addVmLabel: 'Add VM',
|
||||
addHostLabel: 'Add Host',
|
||||
disconnectServer: 'Disconnect',
|
||||
|
||||
// ----- Host actions ------
|
||||
startHostLabel: 'Start',
|
||||
stopHostLabel: 'Stop',
|
||||
enableHostLabel: 'Enable',
|
||||
disableHostLabel: 'Disable',
|
||||
restartHostAgent: 'Restart toolstack',
|
||||
forceRebootHostLabel: 'Force reboot',
|
||||
rebootHostLabel: 'Reboot',
|
||||
emergencyModeLabel: 'Emergency mode',
|
||||
// ----- Host tabs -----
|
||||
storageTabName: 'Storage',
|
||||
patchesTabName: 'Patches',
|
||||
// ----- host stat tab -----
|
||||
statLoad: 'Load average',
|
||||
// ----- host advanced tab -----
|
||||
hardwareHostSettingsLabel: 'Hardware',
|
||||
hostAddress: 'Address',
|
||||
hostStatus: 'Status',
|
||||
hostBuildNumber: 'Build number',
|
||||
hostIscsiName: 'iSCSI name',
|
||||
hostXenServerVersion: 'Version',
|
||||
hostStatusEnabled: 'Enabled',
|
||||
hostStatusDisabled: 'Disabled',
|
||||
hostPowerOnMode: 'Power on mode',
|
||||
hostStartedSince: 'Host uptime',
|
||||
hostStackStartedSince: 'Toolstack uptime',
|
||||
hostCpusModel: 'CPU model',
|
||||
hostCpusNumber: 'Core (socket)',
|
||||
hostManufacturerinfo: 'Manufacturer info',
|
||||
hostBiosinfo: 'BIOS info',
|
||||
licenseHostSettingsLabel: 'Licence',
|
||||
hostLicenseType: 'Type',
|
||||
hostLicenseSocket: 'Socket',
|
||||
hostLicenseExpiry: 'Expiry',
|
||||
// ----- Host net tabs -----
|
||||
networkCreateButton: 'Add a network',
|
||||
pifDeviceLabel: 'Device',
|
||||
pifNetworkLabel: 'Network',
|
||||
pifVlanLabel: 'VLAN',
|
||||
pifAddressLabel: 'Address',
|
||||
pifMacLabel: 'MAC',
|
||||
pifMtuLabel: 'MTU',
|
||||
pifStatusLabel: 'Status',
|
||||
pifStatusConnected: 'Connected',
|
||||
pifStatusDisconnected: 'Disconnected',
|
||||
pifNoInterface: 'No physical interface detected',
|
||||
// ----- Host storage tabs -----
|
||||
addSrDeviceButton: 'Add a storage',
|
||||
srNameLabel: 'Name',
|
||||
srType: 'Type',
|
||||
pdbStatus: 'Status',
|
||||
pbdStatusConnected: 'Connected',
|
||||
pbdStatusDisconnected: 'Disconnected',
|
||||
srShared: 'Shared',
|
||||
srNotShared: 'Not shared',
|
||||
pbdNoSr: 'No storage detected',
|
||||
// ----- Host patch tabs -----
|
||||
patchNameLabel: 'Name',
|
||||
patchUpdateButton: 'Install all patches',
|
||||
patchDescription: 'Description',
|
||||
patchApplied: 'Release date',
|
||||
patchSize: 'Size',
|
||||
patchStatus: 'Status',
|
||||
patchStatusApplied: 'Applied',
|
||||
patchStatusNotApplied: 'Missing patches',
|
||||
patchNothing: 'No patch detected',
|
||||
patchReleaseDate: 'Release date',
|
||||
patchGuidance: 'Guidance',
|
||||
patchAction: 'Action',
|
||||
hostInstalledPatches: 'Downloaded patches',
|
||||
hostMissingPatches: 'Missing patches',
|
||||
hostUpToDate: 'Host up-to-date!',
|
||||
|
||||
// ----- VM tabs -----
|
||||
generalTabName: 'General',
|
||||
statsTabName: 'Stats',
|
||||
consoleTabName: 'Console',
|
||||
snapshotsTabName: 'Snapshots',
|
||||
logsTabName: 'Logs',
|
||||
advancedTabName: 'Advanced',
|
||||
networkTabName: 'Network',
|
||||
disksTabName: 'Disk{disks, plural, one {} other {s}}',
|
||||
|
||||
powerStateHalted: 'halted',
|
||||
powerStateRunning: 'running',
|
||||
powerStateSuspended: 'suspended',
|
||||
|
||||
// ----- VM home -----
|
||||
vmStatus: 'No Xen tools detected',
|
||||
vmName: 'No IPv4 record',
|
||||
vmDescription: 'No IP record',
|
||||
vmSettings: 'Started {ago}',
|
||||
vmCurrentStatus: 'Current status:',
|
||||
vmNotRunning: 'Not running',
|
||||
|
||||
// ----- VM general tab -----
|
||||
noToolsDetected: 'No Xen tools detected',
|
||||
noIpv4Record: 'No IPv4 record',
|
||||
noIpRecord: 'No IP record',
|
||||
started: 'Started {ago}',
|
||||
paraVirtualizedMode: 'Paravirtualization (PV)',
|
||||
hardwareVirtualizedMode: 'Hardware virtualization (HVM)',
|
||||
|
||||
// ----- VM stat tab -----
|
||||
statsCpu: 'CPU usage',
|
||||
statsMemory: 'Memory usage',
|
||||
statsNetwork: 'Network throughput',
|
||||
statDisk: 'Disk throughput',
|
||||
statLastTenMinutes: 'Last 10 minutes',
|
||||
statLastTwoHours: 'Last 2 hours',
|
||||
statLastWeek: 'Last week',
|
||||
statLastYear: 'Last year',
|
||||
|
||||
// ----- VM console tab -----
|
||||
copyToClipboardLabel: 'Copy',
|
||||
ctrlAltDelButtonLabel: 'Ctrl+Alt+Del',
|
||||
tipLabel: 'Tip:',
|
||||
tipConsoleLabel: 'non-US keyboard could have issues with console: switch your own layout to US.',
|
||||
|
||||
// ----- VM disk tab -----
|
||||
vdiAction: 'Action',
|
||||
vdiAttachDeviceButton: 'Attach disk',
|
||||
vbdCreateDeviceButton: 'New disk',
|
||||
vdiBootOrder: 'Boot order',
|
||||
vdiNameLabel: 'Name',
|
||||
vdiNameDescription: 'Description',
|
||||
vdiTags: 'Tags',
|
||||
vdiSize: 'Size',
|
||||
vdiSr: 'SR',
|
||||
vdbBootableStatus: 'Boot flag',
|
||||
vdbStatus: 'Status',
|
||||
vbdStatusConnected: 'Connected',
|
||||
vbdStatusDisconnected: 'Disconnected',
|
||||
vbdNoVbd: 'No disks',
|
||||
|
||||
// ----- VM network tab -----
|
||||
vifCreateDeviceButton: 'New device',
|
||||
vifNoInterface: 'No interface',
|
||||
vifDeviceLabel: 'Device',
|
||||
vifMacLabel: 'MAC address',
|
||||
vifMtuLabel: 'MTU',
|
||||
vifNetworkLabel: 'Network',
|
||||
vifStatusLabel: 'Status',
|
||||
vifStatusConnected: 'Connected',
|
||||
vifStatusDisconnected: 'Disconnected',
|
||||
vifIpAddresses: 'IP addresses',
|
||||
|
||||
// ----- VM snapshot tab -----
|
||||
noSnapshots: 'No snapshots',
|
||||
snapshotCreateButton: 'New snapshot',
|
||||
tipCreateSnapshotLabel: 'Just click on the snapshot button to create one!',
|
||||
snapshotDate: 'Creation date',
|
||||
snapshotName: 'Name',
|
||||
snapshotAction: 'Action',
|
||||
|
||||
// ----- VM log tab -----
|
||||
logRemoveAll: 'Remove all logs',
|
||||
noLogs: 'No logs so far',
|
||||
logDate: 'Creation date',
|
||||
logName: 'Name',
|
||||
logContent: 'Content',
|
||||
logAction: 'Action',
|
||||
|
||||
// ----- VM advanced tab -----
|
||||
vmRemoveButton: 'Remove',
|
||||
vmConvertButton: 'Convert',
|
||||
xenSettingsLabel: 'Xen settings',
|
||||
guestOsLabel: 'Guest OS',
|
||||
miscLabel: 'Misc',
|
||||
uuid: 'UUID',
|
||||
virtualizationMode: 'Virtualization mode',
|
||||
cpuWeightLabel: 'CPU weight',
|
||||
defaultCpuWeight: 'Default',
|
||||
pvArgsLabel: 'PV args',
|
||||
xenToolsStatus: 'Xen tools status',
|
||||
xenToolsStatusValue: '{status}',
|
||||
description: 'status can be `not-installed`, `unknown`, `out-of-date` & `up-to-date`',
|
||||
osName: 'OS name',
|
||||
osKernel: 'OS kernel',
|
||||
autoPowerOn: 'Auto power on',
|
||||
ha: 'HA',
|
||||
originalTemplate: 'Original template',
|
||||
unknownOsName: 'Unknown',
|
||||
unknownOsKernel: 'Unknown',
|
||||
unknownOriginalTemplate: 'Unknown',
|
||||
vmLimitsLabel: 'VM limits',
|
||||
vmCpuLimitsLabel: 'CPU limits',
|
||||
vmMemoryLimitsLabel: 'Memory limits (min/max)',
|
||||
vmMaxVcpus: 'vCPUs max:',
|
||||
vmMaxRam: 'Memory max:',
|
||||
|
||||
// ----- VM placeholders -----
|
||||
|
||||
vmHomeNamePlaceholder: 'Long click to add a name',
|
||||
vmHomeDescriptionPlaceholder: 'Long click to add a description',
|
||||
vmViewNamePlaceholder: 'Click to add a name',
|
||||
vmViewDescriptionPlaceholder: 'Click to add a description',
|
||||
|
||||
// ----- Dashboard -----
|
||||
poolPanel: 'Pool{pools, plural, one {} other {s}}',
|
||||
hostPanel: 'Host{hosts, plural, one {} other {s}}',
|
||||
vmPanel: 'VM{vms, plural, one {} other {s}}',
|
||||
memoryStatePanel: 'RAM Usage',
|
||||
cpuStatePanel: 'CPUs Usage',
|
||||
vmStatePanel: 'VMs Power state',
|
||||
taskStatePanel: 'Pending tasks',
|
||||
usersStatePanel: 'Users',
|
||||
srStatePanel: 'Storage state',
|
||||
ofUsage: 'of',
|
||||
noSrs: 'No storage',
|
||||
srName: 'Name',
|
||||
srPool: 'Pool',
|
||||
srHost: 'Host',
|
||||
srFormat: 'Type',
|
||||
srSize: 'Size',
|
||||
srUsage: 'Usage',
|
||||
srUsed: 'used',
|
||||
srFree: 'free',
|
||||
srUsageStatePanel: 'Storage Usage',
|
||||
srTopUsageStatePanel: 'Top 5 SR Usage (in %)',
|
||||
|
||||
// --- Stats board --
|
||||
weekHeatmapData: '{value} {date, date, medium}',
|
||||
weekHeatmapNoData: 'No data.',
|
||||
statsDashboardGenericErrorTitle: 'Stats error',
|
||||
statsDashboardGenericErrorMessage: 'There is no stats available for:',
|
||||
noSelectedMetric: 'No selected metric',
|
||||
statsDashboardSelectObjects: 'Select',
|
||||
metricsLoading: 'Loading…',
|
||||
|
||||
// ----- Visualizations -----
|
||||
comingSoon: 'Coming soon!',
|
||||
|
||||
// ----- Health -----
|
||||
orphanedVdis: 'Orphaned VDIs',
|
||||
orphanedVms: 'Orphaned VMs',
|
||||
noOrphanedObject: 'No orphans',
|
||||
removeAllOrphanedObject: 'Remove all orphaned VDIs',
|
||||
vmNameLabel: 'Name',
|
||||
vmNameDescription: 'Description',
|
||||
vmContainer: 'Resident on',
|
||||
alarmMessage: 'Alarms',
|
||||
noAlarms: 'No alarms',
|
||||
alarmDate: 'Date',
|
||||
alarmContent: 'Content',
|
||||
alarmObject: 'Issue on',
|
||||
alarmPool: 'Pool',
|
||||
alarmRemoveAll: 'Remove all alarms',
|
||||
|
||||
// ----- New VM -----
|
||||
newVmCreateNewVmOn: 'Create a new VM on {pool}',
|
||||
newVmInfoPanel: 'Infos',
|
||||
newVmNameLabel: 'Name',
|
||||
newVmTemplateLabel: 'Template',
|
||||
newVmDescriptionLabel: 'Description',
|
||||
newVmPerfPanel: 'Performances',
|
||||
newVmVcpusLabel: 'vCPUs',
|
||||
newVmRamLabel: 'RAM',
|
||||
newVmInstallSettingsPanel: 'Install settings',
|
||||
newVmIsoDvdLabel: 'ISO/DVD',
|
||||
newVmNetworkLabel: 'Network',
|
||||
newVmPvArgsLabel: 'PV Args',
|
||||
newVmPxeLabel: 'PXE',
|
||||
newVmInterfacesPanel: 'Interfaces',
|
||||
newVmMacLabel: 'MAC',
|
||||
newVmAddInterface: 'Add interface',
|
||||
newVmDisksPanel: 'Disks',
|
||||
newVmSrLabel: 'SR',
|
||||
newVmBootableLabel: 'Bootable',
|
||||
newVmSizeLabel: 'Size',
|
||||
newVmAddDisk: 'Add disk',
|
||||
newVmSummaryPanel: 'Summary',
|
||||
newVmCreate: 'Create',
|
||||
newVmReset: 'Reset',
|
||||
newVmSelectTemplate: 'Select template',
|
||||
newVmSshKey: 'SSH key',
|
||||
newVmConfigDrive: 'Config drive',
|
||||
newVmCustomConfig: 'Custom config',
|
||||
newVmBootAfterCreate: 'Boot VM after creation',
|
||||
newVmMacPlaceholder: 'Auto-generated if empty',
|
||||
newVmCpuWeightLabel: 'CPU weight',
|
||||
newVmCpuWeightQuarter: 'Quarter (1/4)',
|
||||
newVmCpuWeightHalf: 'Half (1/2)',
|
||||
newVmCpuWeightNormal: 'Normal',
|
||||
newVmCpuWeightDouble: 'Double (x2)',
|
||||
newVmCloudConfig: 'Cloud config',
|
||||
|
||||
// ----- Self -----
|
||||
resourceSets: 'Resource sets',
|
||||
resourceSetName: 'Resource set name',
|
||||
resourceSetCreation: 'Creation and edition',
|
||||
saveResourceSet: 'Save',
|
||||
resetResourceSet: 'Reset',
|
||||
editResourceSet: 'Edit',
|
||||
deleteResourceSet: 'Delete',
|
||||
deleteResourceSetWarning: 'Delete resource set',
|
||||
deleteResourceSetQuestion: 'Are you sure you want to delete this resource set?',
|
||||
resourceSetMissingObjects: 'Missing objects:',
|
||||
resourceSetVcpus: 'vCPUs',
|
||||
resourceSetMemory: 'Memory',
|
||||
resourceSetStorage: 'Storage',
|
||||
unknownResourceSetValue: 'Unknown',
|
||||
availableHosts: 'Available hosts',
|
||||
excludedHosts: 'Excluded hosts',
|
||||
noHostsAvailable: 'No hosts available.',
|
||||
availableHostsDescription: 'VMs created from this resource set shall run on the following hosts.',
|
||||
maxCpus: 'Maximum CPUs',
|
||||
maxRam: 'Maximum RAM (GiB)',
|
||||
maxDiskSpace: 'Maximum disk space',
|
||||
noResourceSetLimits: 'No limits.',
|
||||
totalResource: 'Total:',
|
||||
remainingResource: 'Remaining:',
|
||||
usedResource: 'Used:',
|
||||
|
||||
// ---- VM import ---
|
||||
importVmsList: 'Try dropping some backups here, or click to select backups to upload. Accept only .xva files.',
|
||||
noSelectedVms: 'No selected VMs.',
|
||||
vmImportToPool: 'To Pool:',
|
||||
vmImportToSr: 'To SR:',
|
||||
vmsToImport: 'VMs to import',
|
||||
importVmsCleanList: 'Reset',
|
||||
vmImportSuccess: 'VM import success',
|
||||
vmImportFailed: 'VM import failed',
|
||||
startVmImport: 'Import starting…',
|
||||
startVmExport: 'Export starting…',
|
||||
|
||||
// ---- Tasks ---
|
||||
noTasks: 'No pending tasks',
|
||||
xsTasks: 'Currently, there isn\'t any pending XenServer tasks',
|
||||
|
||||
// ---- Backup views ---
|
||||
delta: 'delta',
|
||||
restoreBackups: 'Restore Backups',
|
||||
noRemotes: 'No remotes',
|
||||
remoteEnabled: 'enabled',
|
||||
remoteError: 'error',
|
||||
noBackup: 'No backups available',
|
||||
|
||||
// ----- Modals -----
|
||||
startVmsModalTitle: 'Start VM{vms, plural, one {} other {s}}',
|
||||
startVmsModalMessage: 'Are you sure you want to start {vms} VM{vms, plural, one {} other {s}}?',
|
||||
stopVmsModalTitle: 'Stop VM{vms, plural, one {} other {s}}',
|
||||
stopVmsModalMessage: 'Are you sure you want to stop {vms} VM{vms, plural, one {} other {s}}?',
|
||||
restartVmsModalTitle: 'Restart VM{vms, plural, one {} other {s}}',
|
||||
restartVmsModalMessage: 'Are you sure you want to restart {vms} VM{vms, plural, one {} other {s}}?',
|
||||
snapshotVmsModalTitle: 'Snapshot VM{vms, plural, one {} other {s}}',
|
||||
snapshotVmsModalMessage: 'Are you sure you want to snapshot {vms} VM{vms, plural, one {} other {s}}?',
|
||||
deleteVmModalTitle: 'Delete VM',
|
||||
deleteVmsModalTitle: 'Delete VM{vms, plural, one {} other {s}}',
|
||||
deleteVmModalMessage: 'Are you sure you want to delete this VM? ALL VM DISKS WILL BE REMOVED',
|
||||
deleteVmsModalMessage: 'Are you sure you want to delete {vms} VM{vms, plural, one {} other {s}}? ALL VM DISKS WILL BE REMOVED',
|
||||
migrateVmModalTitle: 'Migrate VM',
|
||||
migrateVmModalBody: 'Are you sure you want to migrate this VM to {hostName}?',
|
||||
migrateVmAdvancedModalSelectHost: 'Select a destination host:',
|
||||
migrateVmAdvancedModalSelectNetwork: 'Select a migration network:',
|
||||
migrateVmAdvancedModalSelectSrs: 'For each VDI, select an SR:',
|
||||
migrateVmAdvancedModalSelectNetworks: 'For each VIF, select a network:',
|
||||
migrateVmAdvancedModalName: 'Name',
|
||||
migrateVmAdvancedModalSr: 'SR',
|
||||
migrateVmAdvancedModalVif: 'VIF',
|
||||
migrateVmAdvancedModalNetwork: 'Network',
|
||||
importBackupModalTitle: 'Import a {name} Backup',
|
||||
importBackupModalStart: 'Start VM after restore',
|
||||
importBackupModalSelectBackup: 'Select your backup…',
|
||||
removeAllOrphanedModalWarning: 'Are you sure you want to remove all orphaned VDIs?',
|
||||
removeAllLogsModalTitle: 'Remove all logs',
|
||||
removeAllLogsModalWarning: 'Are you sure you want to remove all logs?',
|
||||
definitiveMessageModal: 'This operation is definitive.',
|
||||
existingSrModalTitle: 'Previous SR Usage',
|
||||
existingSrModalText: 'This path has been previously used as a Storage by a XenServer host. All data will be lost if you choose to continue the SR creation.',
|
||||
existingLunModalTitle: 'Previous LUN Usage',
|
||||
existingLunModalText: 'This LUN has been previously used as a Storage by a XenServer host. All data will be lost if you choose to continue the SR creation.',
|
||||
alreadyRegisteredModal: 'Replace current registration?',
|
||||
alreadyRegisteredModalText: 'Your XO appliance is already registered to {email}, do you want to forget and replace this registration ?',
|
||||
trialReadyModal: 'Ready for trial?',
|
||||
trialReadyModalText: 'During the trial period, XOA need to have a working internet connection. This limitation does not apply for our paid plans!',
|
||||
|
||||
// ----- Servers -----
|
||||
serverHost: 'Host',
|
||||
serverUsername: 'Username',
|
||||
serverPassword: 'Password',
|
||||
serverAction: 'Action',
|
||||
serverReadOnly: 'Read Only',
|
||||
|
||||
// ----- Copy VM -----
|
||||
copyVm: 'Copy VM',
|
||||
copyVmConfirm: 'Are you sure you want to copy this VM to {SR}?',
|
||||
copyVmName: 'Name',
|
||||
copyVmNamePlaceholder: 'If empty: name of the copied VM',
|
||||
copyVmSelectSr: 'Select SR',
|
||||
copyVmCompress: 'Use compression',
|
||||
|
||||
// ----- Network -----
|
||||
newNetworkCreate: 'Create network',
|
||||
newNetworkInterface: 'Interface',
|
||||
newNetworkName: 'Name',
|
||||
newNetworkDescription: 'Description',
|
||||
newNetworkVlan: 'VLAN',
|
||||
newNetworkDefaultVlan: 'No VLAN if empty',
|
||||
newNetworkMtu: 'MTU',
|
||||
newNetworkDefaultMtu: 'Default: 1500',
|
||||
deleteNetwork: 'Delete network',
|
||||
deleteNetworkConfirm: 'Are you sure you want to delete this network?',
|
||||
|
||||
// ----- About View -----
|
||||
xenOrchestra: 'Xen Orchestra',
|
||||
xenOrchestraServer: 'server',
|
||||
xenOrchestraWeb: 'web client',
|
||||
noProSupport: 'No pro support provided!',
|
||||
noProductionUse: 'Use in production at your own risks',
|
||||
downloadXoa: 'You can download our turnkey appliance at',
|
||||
bugTracker: 'Bug Tracker',
|
||||
bugTrackerText: 'Issues? Report it!',
|
||||
community: 'Community',
|
||||
communityText: 'Join our community forum!',
|
||||
freeTrial: 'Free Trial for Premium Edition!',
|
||||
freeTrialNow: 'Request your trial now!',
|
||||
issues: 'Any issue?',
|
||||
issuesText: 'Problem? Contact us!',
|
||||
documentation: 'Documentation',
|
||||
documentationText: 'Read our official doc',
|
||||
proSupportIncluded: 'Pro support included',
|
||||
xoAccount: 'Acces your XO Account',
|
||||
openTicket: 'Report a problem',
|
||||
openTicketText: 'Problem? Open a ticket !',
|
||||
|
||||
// ----- Upgrade Panel -----
|
||||
upgradeNeeded: 'Upgrade needed',
|
||||
upgradeNow: 'Upgrade now!',
|
||||
or: 'Or',
|
||||
tryIt: 'Try it for free!',
|
||||
availableIn: 'This feature is available starting from {plan} Edition',
|
||||
|
||||
// ----- Updates View -----
|
||||
registration: 'Registration',
|
||||
trial: 'Trial',
|
||||
settings: 'Settings',
|
||||
update: 'Update',
|
||||
upgrade: 'Upgrade',
|
||||
noUpdaterCommunity: 'No updater available for Community Edition',
|
||||
noUpdaterSubscribe: 'Please consider subscribe and try it with all features for free during 15 days on',
|
||||
noUpdaterWarning: 'Manual update could break your current installation due to dependencies issues, do it with caution',
|
||||
currentVersion: 'Current version:',
|
||||
register: 'Register',
|
||||
trialRegistration: 'Please, take time to register in order to enjoy your trial.',
|
||||
trialStartButton: 'Start trial',
|
||||
trialAvailableUntil: 'You can use a trial version until {date, date, medium}. Upgrade your appliance to get it.',
|
||||
trialConsumed: 'Your trial has been ended. Contact us or downgrade to Free version',
|
||||
trialLocked: 'Your xoa-updater service appears to be down. Your XOA cannot run fully without reaching this service.',
|
||||
|
||||
// ----- OS Disclaimer -----
|
||||
disclaimerTitle: 'Xen Orchestra from the sources',
|
||||
disclaimerText1: 'You are using XO from the sources! That\'s great for a personal/non-profit usage.',
|
||||
disclaimerText2: 'If you are a company, it\'s better to use it with our appliance + pro support included:',
|
||||
disclaimerText3: 'This version is not bundled with any support nor updates. Use it with caution for critical tasks.',
|
||||
|
||||
// ----- PIF -----
|
||||
connectPif: 'Connect PIF',
|
||||
connectPifConfirm: 'Are you sure you want to connect this PIF?',
|
||||
disconnectPif: 'Disconnect PIF',
|
||||
disconnectPifConfirm: 'Are you sure you want to disconnect this PIF?',
|
||||
deletePif: 'Delete PIF',
|
||||
deletePifConfirm: 'Are you sure you want to delete this PIF?'
|
||||
}
|
||||
forEach(messages, function (message, id) {
|
||||
if (isString(message)) {
|
||||
messages[id] = {
|
||||
id,
|
||||
defaultMessage: message
|
||||
}
|
||||
} else if (!message.id) {
|
||||
message.id = id
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = messages
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React, { Component, cloneElement } from 'react'
|
||||
import map from 'lodash/map'
|
||||
import filter from 'lodash/filter'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import map from 'lodash/map'
|
||||
|
||||
import AbstractInput from './abstract-input'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React, { Component, cloneElement } from 'react'
|
||||
import forEach from 'lodash/forEach'
|
||||
import includes from 'lodash/includes'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import isArray from 'lodash/isArray'
|
||||
import isString from 'lodash/isString'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Component from 'base-component'
|
||||
import React from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import forEach from 'lodash/forEach'
|
||||
import includes from 'lodash/includes'
|
||||
import join from 'lodash/join'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Component from 'base-component'
|
||||
import React from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import assign from 'lodash/assign'
|
||||
import classNames from 'classnames'
|
||||
import filter from 'lodash/filter'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import React from 'react'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import classNames from 'classnames'
|
||||
import every from 'lodash/every'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import forEach from 'lodash/forEach'
|
||||
import map from 'lodash/map'
|
||||
import moment from 'moment'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { Component } from 'react'
|
||||
|
||||
import _, { messages } from '../../messages'
|
||||
import _, { messages } from '../../intl'
|
||||
import SingleLineRow from '../../single-line-row'
|
||||
import Upgrade from 'xoa-upgrade'
|
||||
import { Col } from '../../grid'
|
||||
|
||||
@@ -3,7 +3,7 @@ import { injectIntl } from 'react-intl'
|
||||
import { createSelector } from 'selectors'
|
||||
|
||||
import SingleLineRow from '../../single-line-row'
|
||||
import _, { messages } from '../../messages'
|
||||
import _, { messages } from '../../intl'
|
||||
import { SelectPif } from '../../select-objects'
|
||||
import { Col } from '../../grid'
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import Xo from 'xo-lib'
|
||||
import { createBackoff } from 'jsonrpc-websocket-client'
|
||||
import { resolve } from 'url'
|
||||
|
||||
import _ from '../messages'
|
||||
import _ from '../intl'
|
||||
import logError from '../log-error'
|
||||
import { confirm } from '../modal'
|
||||
import { error, info } from '../notification'
|
||||
|
||||
@@ -3,7 +3,7 @@ import find from 'lodash/find'
|
||||
import map from 'lodash/map'
|
||||
import React, { Component } from 'react'
|
||||
|
||||
import _ from '../../messages'
|
||||
import _ from '../../intl'
|
||||
import SingleLineRow from '../../single-line-row'
|
||||
import { Col } from '../../grid'
|
||||
import {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Link from 'react-router/lib/Link'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import Copiable from 'copiable'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Page from '../page'
|
||||
import React from 'react'
|
||||
|
||||
@@ -6,7 +6,7 @@ import React from 'react'
|
||||
import Upgrade from 'xoa-upgrade'
|
||||
import Scheduler, { SchedulePreview } from 'scheduling'
|
||||
import Wizard, { Section } from 'wizard'
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import map from 'lodash/map'
|
||||
import { Container } from 'grid'
|
||||
import { injectIntl } from 'react-intl'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import ActionToggle from 'action-toggle'
|
||||
import filter from 'lodash/filter'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import find from 'lodash/find'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Icon from 'icon'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Page from '../page'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ChartistGraph from 'react-chartist'
|
||||
import forEach from 'lodash/forEach'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -3,7 +3,7 @@ import Component from 'base-component'
|
||||
import Icon from 'icon'
|
||||
import React from 'react'
|
||||
import XoWeekHeatmap from 'xo-week-heatmap'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import forEach from 'lodash/forEach'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React from 'react'
|
||||
import { Container, Row, Col } from 'grid'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import Ellipsis, { EllipsisContainer } from 'ellipsis'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as ComplexMatcher from 'complex-matcher'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ceil from 'lodash/ceil'
|
||||
import CenterPanel from 'center-panel'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import Ellipsis, { EllipsisContainer } from 'ellipsis'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import assign from 'lodash/assign'
|
||||
import HostActionBar from './action-bar'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import React from 'react'
|
||||
import TabButton from 'tab-button'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import CopyToClipboard from 'react-copy-to-clipboard'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import Icon from 'icon'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Component from 'base-component'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import React from 'react'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import SortedTable from 'sorted-table'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import Icon from 'icon'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
import React from 'react'
|
||||
|
||||
@@ -3,7 +3,7 @@ import cookies from 'cookies-js'
|
||||
import React from 'react'
|
||||
import { blockXoaAccess } from 'xoa-updater'
|
||||
import { connectStore, routes } from 'utils'
|
||||
import { _, IntlProvider } from 'messages'
|
||||
import { _, IntlProvider } from 'intl'
|
||||
import { Notification } from 'notification'
|
||||
// import {
|
||||
// keyHandler
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Page from '../page'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import delay from 'lodash/delay'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import ActionToggle from 'action-toggle'
|
||||
import filter from 'lodash/filter'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import find from 'lodash/find'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -2,7 +2,7 @@ import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Icon from 'icon'
|
||||
import React, { Component } from 'react'
|
||||
import _, { FormattedDuration } from 'messages'
|
||||
import _, { FormattedDuration } from 'intl'
|
||||
import ceil from 'lodash/ceil'
|
||||
import classnames from 'classnames'
|
||||
import forEach from 'lodash/forEach'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import classNames from 'classnames'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import { Button } from 'react-bootstrap-4/lib'
|
||||
import { injectIntl } from 'react-intl'
|
||||
import ActionButton from 'action-button'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import filter from 'lodash/filter'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import assign from 'lodash/assign'
|
||||
import Icon from 'icon'
|
||||
import PoolActionBar from './action-bar'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import React from 'react'
|
||||
import { Container, Row, Col } from 'grid'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React from 'react'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRow from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React from 'react'
|
||||
import { Container, Row, Col } from 'grid'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React from 'react'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import ActionButton from 'action-button'
|
||||
import Icon from 'icon'
|
||||
import React, { Component } from 'react'
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import differenceBy from 'lodash/differenceBy'
|
||||
import filter from 'lodash/filter'
|
||||
import forEach from 'lodash/forEach'
|
||||
|
||||
@@ -4,7 +4,7 @@ import Collapse from 'collapse'
|
||||
import Icon from 'icon'
|
||||
import Upgrade from 'xoa-upgrade'
|
||||
import React, { Component } from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import map from 'lodash/map'
|
||||
import renderXoItem from 'render-xo-item'
|
||||
import { Container, Row, Col } from 'grid'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { Component } from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import forEach from 'lodash/forEach'
|
||||
import keyBy from 'lodash/keyBy'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Page from '../page'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Component from 'base-component'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import Component from 'base-component'
|
||||
import includes from 'lodash/includes'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import Page from '../page'
|
||||
import React from 'react'
|
||||
|
||||
@@ -3,7 +3,7 @@ import ActionToggle from 'action-toggle'
|
||||
import GenericInput from 'json-schema-input'
|
||||
import Icon from 'icon'
|
||||
import React, { Component } from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import map from 'lodash/map'
|
||||
import { addSubscriptions } from 'utils'
|
||||
import { lastly } from 'promise-toolbox'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import filter from 'lodash/filter'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as Editable from 'editable'
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import React, {
|
||||
Component
|
||||
} from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import assign from 'lodash/assign'
|
||||
import Icon from 'icon'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import React from 'react'
|
||||
import TabButton from 'tab-button'
|
||||
|
||||
@@ -2,7 +2,7 @@ import ActionRow from 'action-row-button'
|
||||
import Icon from 'icon'
|
||||
import React from 'react'
|
||||
import SortedTable from 'sorted-table'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import { Container, Row, Col } from 'grid'
|
||||
import { Text } from 'editable'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Icon from 'icon'
|
||||
import map from 'lodash/map'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import React from 'react'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRow from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import CenterPanel from 'center-panel'
|
||||
import Icon from 'icon'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -4,7 +4,7 @@ import Dropzone from 'react-dropzone'
|
||||
import * as FormGrid from 'form-grid'
|
||||
import Icon from 'icon'
|
||||
import React from 'react'
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import filter from 'lodash/filter'
|
||||
import map from 'lodash/map'
|
||||
import Upgrade from 'xoa-upgrade'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import assign from 'lodash/assign'
|
||||
import forEach from 'lodash/forEach'
|
||||
import Icon from 'icon'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import Icon from 'icon'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Component from 'base-component'
|
||||
import CopyToClipboard from 'react-copy-to-clipboard'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Component from 'base-component'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import Copiable from 'copiable'
|
||||
import Icon from 'icon'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import map from 'lodash/map'
|
||||
import React, { Component } from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionRowButton from 'action-row-button'
|
||||
import Icon from 'icon'
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _, { messages } from 'messages'
|
||||
import _, { messages } from 'intl'
|
||||
import Component from 'base-component'
|
||||
import Icon from 'icon'
|
||||
import React from 'react'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ from 'messages'
|
||||
import _ from 'intl'
|
||||
import ActionButton from 'action-button'
|
||||
import ansiUp from 'ansi_up'
|
||||
import assign from 'lodash/assign'
|
||||
|
||||
84
tools/generate-index
Executable file
84
tools/generate-index
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var join = require('path').join
|
||||
var readdir = require('fs').readdirSync
|
||||
var stat = require('fs').statSync
|
||||
var writeFile = require('fs').writeFileSync
|
||||
|
||||
// ===================================================================
|
||||
|
||||
function bind (fn, thisArg) {
|
||||
return function () {
|
||||
return fn.apply(thisArg, arguments)
|
||||
}
|
||||
}
|
||||
|
||||
function camelCase (str) {
|
||||
return str.toLowerCase().replace(/[^a-z0-9]+([a-z0-9])/g, function (_, str) {
|
||||
return str.toUpperCase()
|
||||
})
|
||||
}
|
||||
|
||||
function removeSuffix (str, sfx) {
|
||||
var strLength = str.length
|
||||
var sfxLength = sfx.length
|
||||
|
||||
var pos = strLength - sfxLength
|
||||
if (pos < 0 || str.indexOf(sfx, pos) !== pos) {
|
||||
return false
|
||||
}
|
||||
|
||||
return str.slice(0, pos)
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
|
||||
function handleEntry (entry, dir) {
|
||||
var stats = stat(join(dir, entry))
|
||||
var base
|
||||
if (stats.isDirectory()) {
|
||||
base = entry
|
||||
} else if (!(
|
||||
stats.isFile() && (
|
||||
(base = removeSuffix(entry, '.coffee')) ||
|
||||
(base = removeSuffix(entry, '.js'))
|
||||
)
|
||||
)) {
|
||||
return
|
||||
}
|
||||
|
||||
var identifier = camelCase(base)
|
||||
this(
|
||||
'import ' + identifier + " from './" + base + "'",
|
||||
'defaults.' + identifier + ' = ' + identifier,
|
||||
'export * as ' + identifier + " from './" + base + "'",
|
||||
''
|
||||
)
|
||||
}
|
||||
|
||||
function generateIndex (dir) {
|
||||
var content = [
|
||||
'//',
|
||||
'// This file has been generated by /tools/generate-index',
|
||||
'//',
|
||||
'// It is automatically re-generated each time a build is started.',
|
||||
'//',
|
||||
'',
|
||||
'const defaults = {}',
|
||||
'export default defaults',
|
||||
''
|
||||
]
|
||||
var write = bind(content.push, content)
|
||||
|
||||
readdir(dir).map(function (entry) {
|
||||
if (entry === 'index.js') {
|
||||
return
|
||||
}
|
||||
|
||||
handleEntry.call(write, entry, dir)
|
||||
})
|
||||
|
||||
writeFile(dir + '/index.js', content.join('\n'))
|
||||
}
|
||||
|
||||
process.argv.slice(2).map(generateIndex)
|
||||
Reference in New Issue
Block a user