mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
I18n: Translate phrases for new Browse Dashboards (#70654)
* Mark strings in folder manager nav for translation * Mark strings in folder actions for translation * Mark strings in new folder modal for translation * Mark strings in delete modal for translation * Mark strings in move modal for translation * Fix interpunction in translations * Run i18n:extract * Fix Manage Permissions drawer test * Redundnt useMemo * Updated extracted translations after resolving conflicts --------- Co-authored-by: Roxana Turc <anamaria-roxana.turc@grafana.com>
This commit is contained in:
parent
82f788b7a2
commit
d36b70dec6
@ -3,6 +3,7 @@ import React, { useState } from 'react';
|
|||||||
import { Space } from '@grafana/experimental';
|
import { Space } from '@grafana/experimental';
|
||||||
import { ConfirmModal } from '@grafana/ui';
|
import { ConfirmModal } from '@grafana/ui';
|
||||||
import { P } from '@grafana/ui/src/unstable';
|
import { P } from '@grafana/ui/src/unstable';
|
||||||
|
import { Trans, t } from 'app/core/internationalization';
|
||||||
|
|
||||||
import { DashboardTreeSelection } from '../../types';
|
import { DashboardTreeSelection } from '../../types';
|
||||||
|
|
||||||
@ -32,16 +33,24 @@ export const DeleteModal = ({ onConfirm, onDismiss, selectedItems, ...props }: P
|
|||||||
<ConfirmModal
|
<ConfirmModal
|
||||||
body={
|
body={
|
||||||
<>
|
<>
|
||||||
<P>This action will delete the following content:</P>
|
<P>
|
||||||
|
<Trans i18nKey="browse-dashboards.action.delete-modal-text">
|
||||||
|
This action will delete the following content:
|
||||||
|
</Trans>
|
||||||
|
</P>
|
||||||
<DescendantCount selectedItems={selectedItems} />
|
<DescendantCount selectedItems={selectedItems} />
|
||||||
<Space v={2} />
|
<Space v={2} />
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
confirmationText="Delete"
|
confirmationText="Delete"
|
||||||
confirmText={isDeleting ? 'Deleting...' : 'Delete'}
|
confirmText={
|
||||||
|
isDeleting
|
||||||
|
? t('browse-dashboards.action.deleting', 'Deleting...')
|
||||||
|
: t('browse-dashboards.action.delete-button', 'Delete')
|
||||||
|
}
|
||||||
onDismiss={onDismiss}
|
onDismiss={onDismiss}
|
||||||
onConfirm={onDelete}
|
onConfirm={onDelete}
|
||||||
title="Delete"
|
title={t('browse-dashboards.action.delete-modal-title', 'Delete')}
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -7,6 +7,7 @@ import { P } from '@grafana/ui/src/unstable';
|
|||||||
import { NestedFolderPicker } from 'app/core/components/NestedFolderPicker/NestedFolderPicker';
|
import { NestedFolderPicker } from 'app/core/components/NestedFolderPicker/NestedFolderPicker';
|
||||||
import { FolderChange, ROOT_FOLDER } from 'app/core/components/NestedFolderPicker/types';
|
import { FolderChange, ROOT_FOLDER } from 'app/core/components/NestedFolderPicker/types';
|
||||||
import { FolderPicker } from 'app/core/components/Select/FolderPicker';
|
import { FolderPicker } from 'app/core/components/Select/FolderPicker';
|
||||||
|
import { t, Trans } from 'app/core/internationalization';
|
||||||
|
|
||||||
import { DashboardTreeSelection } from '../../types';
|
import { DashboardTreeSelection } from '../../types';
|
||||||
|
|
||||||
@ -42,16 +43,23 @@ export const MoveModal = ({ onConfirm, onDismiss, selectedItems, ...props }: Pro
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal title="Move" onDismiss={onDismiss} {...props}>
|
<Modal title={t('browse-dashboards.action.move-modal-title', 'Move')} onDismiss={onDismiss} {...props}>
|
||||||
{selectedFolders.length > 0 && <Alert severity="info" title="Moving this item may change its permissions." />}
|
{selectedFolders.length > 0 && (
|
||||||
|
<Alert
|
||||||
|
severity="info"
|
||||||
|
title={t('browse-dashboards.action.move-modal-alert', 'Moving this item may change its permissions.')}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
<P>This action will move the following content:</P>
|
<P>
|
||||||
|
<Trans i18nKey="browse-dashboards.action.move-modal-text">This action will move the following content:</Trans>
|
||||||
|
</P>
|
||||||
|
|
||||||
<DescendantCount selectedItems={selectedItems} />
|
<DescendantCount selectedItems={selectedItems} />
|
||||||
|
|
||||||
<Space v={3} />
|
<Space v={3} />
|
||||||
|
|
||||||
<Field label="Folder name">
|
<Field label={t('browse-dashboards.action.move-modal-field-label', 'Folder name')}>
|
||||||
{config.featureToggles.nestedFolderPicker ? (
|
{config.featureToggles.nestedFolderPicker ? (
|
||||||
<NestedFolderPicker value={moveTarget} onChange={handleFolderChange} />
|
<NestedFolderPicker value={moveTarget} onChange={handleFolderChange} />
|
||||||
) : (
|
) : (
|
||||||
@ -61,10 +69,12 @@ export const MoveModal = ({ onConfirm, onDismiss, selectedItems, ...props }: Pro
|
|||||||
|
|
||||||
<Modal.ButtonRow>
|
<Modal.ButtonRow>
|
||||||
<Button onClick={onDismiss} variant="secondary" fill="outline">
|
<Button onClick={onDismiss} variant="secondary" fill="outline">
|
||||||
Cancel
|
<Trans i18nKey="browse-dashboards.action.cancel-button">Cancel</Trans>
|
||||||
</Button>
|
</Button>
|
||||||
<Button disabled={moveTarget === undefined || isMoving} onClick={onMove} variant="primary">
|
<Button disabled={moveTarget === undefined || isMoving} onClick={onMove} variant="primary">
|
||||||
{isMoving ? 'Moving...' : 'Move'}
|
{isMoving
|
||||||
|
? t('browse-dashboards.action.moving', 'Moving...')
|
||||||
|
: t('browse-dashboards.action.move-button', 'Move')}
|
||||||
</Button>
|
</Button>
|
||||||
</Modal.ButtonRow>
|
</Modal.ButtonRow>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -94,7 +94,7 @@ describe('browse-dashboards FolderActionsButton', () => {
|
|||||||
|
|
||||||
await userEvent.click(screen.getByRole('button', { name: 'Folder actions' }));
|
await userEvent.click(screen.getByRole('button', { name: 'Folder actions' }));
|
||||||
await userEvent.click(screen.getByRole('menuitem', { name: 'Manage permissions' }));
|
await userEvent.click(screen.getByRole('menuitem', { name: 'Manage permissions' }));
|
||||||
expect(screen.getByRole('dialog', { name: 'Drawer title Permissions' })).toBeInTheDocument();
|
expect(screen.getByRole('dialog', { name: 'Drawer title Manage permissions' })).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('clicking the "Move" option opens the move modal', async () => {
|
it('clicking the "Move" option opens the move modal', async () => {
|
||||||
|
@ -112,7 +112,7 @@ export function FolderActionsButton({ folder }: Props) {
|
|||||||
</Dropdown>
|
</Dropdown>
|
||||||
{showPermissionsDrawer && (
|
{showPermissionsDrawer && (
|
||||||
<Drawer
|
<Drawer
|
||||||
title="Permissions"
|
title={t('browse-dashboards.action.manage-permissions-button', 'Manage permissions')}
|
||||||
subtitle={folder.title}
|
subtitle={folder.title}
|
||||||
scrollableContent
|
scrollableContent
|
||||||
onClose={() => setShowPermissionsDrawer(false)}
|
onClose={() => setShowPermissionsDrawer(false)}
|
||||||
|
@ -17,6 +17,10 @@ interface FormModel {
|
|||||||
const initialFormModel: FormModel = { folderName: '' };
|
const initialFormModel: FormModel = { folderName: '' };
|
||||||
|
|
||||||
export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
||||||
|
const translatedFolderNameRequiredPhrase = t(
|
||||||
|
'browse-dashboards.action.new-folder-name-required-phrase',
|
||||||
|
'Folder name is required.'
|
||||||
|
);
|
||||||
const validateFolderName = async (folderName: string) => {
|
const validateFolderName = async (folderName: string) => {
|
||||||
try {
|
try {
|
||||||
await validationSrv.validateNewFolderName(folderName);
|
await validationSrv.validateNewFolderName(folderName);
|
||||||
@ -44,7 +48,7 @@ export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
|||||||
<Input
|
<Input
|
||||||
id="folder-name-input"
|
id="folder-name-input"
|
||||||
{...register('folderName', {
|
{...register('folderName', {
|
||||||
required: 'Folder name is required.',
|
required: translatedFolderNameRequiredPhrase,
|
||||||
validate: async (v) => await validateFolderName(v),
|
validate: async (v) => await validateFolderName(v),
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { NavModel, NavModelItem } from '@grafana/data';
|
import { NavModel, NavModelItem } from '@grafana/data';
|
||||||
import { config } from '@grafana/runtime';
|
import { config } from '@grafana/runtime';
|
||||||
|
import { getNavSubTitle } from 'app/core/components/AppChrome/MegaMenu/navBarItem-translations';
|
||||||
import { t } from 'app/core/internationalization';
|
import { t } from 'app/core/internationalization';
|
||||||
import { contextSrv } from 'app/core/services/context_srv';
|
import { contextSrv } from 'app/core/services/context_srv';
|
||||||
import { AccessControlAction, FolderDTO } from 'app/types';
|
import { AccessControlAction, FolderDTO } from 'app/types';
|
||||||
@ -16,7 +17,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
const model: NavModelItem = {
|
const model: NavModelItem = {
|
||||||
icon: 'folder',
|
icon: 'folder',
|
||||||
id: FOLDER_ID,
|
id: FOLDER_ID,
|
||||||
subTitle: t('state.nav-models.manage-folder-subtitle', 'Manage folder dashboards and permissions'),
|
subTitle: getNavSubTitle('manage-folder'),
|
||||||
url: folder.url,
|
url: folder.url,
|
||||||
text: folder.title,
|
text: folder.title,
|
||||||
children: [
|
children: [
|
||||||
@ -24,7 +25,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
active: false,
|
active: false,
|
||||||
icon: 'apps',
|
icon: 'apps',
|
||||||
id: getDashboardsTabID(folder.uid),
|
id: getDashboardsTabID(folder.uid),
|
||||||
text: t('state.nav-model.dashboards', 'Dashboards'),
|
text: t('browse-dashboards.manage-folder-nav.dashboards', 'Dashboards'),
|
||||||
url: folder.url,
|
url: folder.url,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -40,7 +41,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
active: false,
|
active: false,
|
||||||
icon: 'library-panel',
|
icon: 'library-panel',
|
||||||
id: getLibraryPanelsTabID(folder.uid),
|
id: getLibraryPanelsTabID(folder.uid),
|
||||||
text: t('state.nav-model.panels', 'Panels'),
|
text: t('browse-dashboards.manage-folder-nav.panels', 'Panels'),
|
||||||
url: `${folder.url}/library-panels`,
|
url: `${folder.url}/library-panels`,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -49,7 +50,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
active: false,
|
active: false,
|
||||||
icon: 'bell',
|
icon: 'bell',
|
||||||
id: getAlertingTabID(folder.uid),
|
id: getAlertingTabID(folder.uid),
|
||||||
text: t('state.nav-models.alert-rules', 'Alert rules'),
|
text: t('browse-dashboards.manage-folder-nav.alert-rules', 'Alert rules'),
|
||||||
url: `${folder.url}/alerting`,
|
url: `${folder.url}/alerting`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -60,7 +61,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
active: false,
|
active: false,
|
||||||
icon: 'lock',
|
icon: 'lock',
|
||||||
id: getPermissionsTabID(folder.uid),
|
id: getPermissionsTabID(folder.uid),
|
||||||
text: 'Permissions',
|
text: t('browse-dashboards.manage-folder-nav.permissions', 'Permissions'),
|
||||||
url: `${folder.url}/permissions`,
|
url: `${folder.url}/permissions`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -70,7 +71,7 @@ export function buildNavModel(folder: FolderDTO, parents = folder.parents): NavM
|
|||||||
active: false,
|
active: false,
|
||||||
icon: 'cog',
|
icon: 'cog',
|
||||||
id: getSettingsTabID(folder.uid),
|
id: getSettingsTabID(folder.uid),
|
||||||
text: 'Settings',
|
text: t('browse-dashboards.manage-folder-nav.settings', 'Settings'),
|
||||||
url: `${folder.url}/settings`,
|
url: `${folder.url}/settings`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "",
|
||||||
"delete-button": "",
|
"delete-button": "",
|
||||||
"move-button": ""
|
"delete-modal-text": "",
|
||||||
|
"delete-modal-title": "",
|
||||||
|
"deleting": "",
|
||||||
|
"manage-permissions-button": "",
|
||||||
|
"move-button": "",
|
||||||
|
"move-modal-alert": "",
|
||||||
|
"move-modal-field-label": "",
|
||||||
|
"move-modal-text": "",
|
||||||
|
"move-modal-title": "",
|
||||||
|
"moving": "",
|
||||||
|
"new-folder-name-required-phrase": ""
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "",
|
"name-column": "",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "",
|
"manage-permissions": "",
|
||||||
"move": ""
|
"move": ""
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "",
|
||||||
|
"dashboards": "",
|
||||||
|
"panels": "",
|
||||||
|
"permissions": "",
|
||||||
|
"settings": ""
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "",
|
"cancel-label": "",
|
||||||
"create-label": "",
|
"create-label": "",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "Einstellungen"
|
"title": "Einstellungen"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "",
|
|
||||||
"panels": ""
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "",
|
|
||||||
"manage-folder-subtitle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "Wird geladen ...",
|
"loading": "Wird geladen ...",
|
||||||
"no-tags": "Keine Tags gefunden",
|
"no-tags": "Keine Tags gefunden",
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "Cancel",
|
||||||
"delete-button": "Delete",
|
"delete-button": "Delete",
|
||||||
"move-button": "Move"
|
"delete-modal-text": "This action will delete the following content:",
|
||||||
|
"delete-modal-title": "Delete",
|
||||||
|
"deleting": "Deleting...",
|
||||||
|
"manage-permissions-button": "Manage permissions",
|
||||||
|
"move-button": "Move",
|
||||||
|
"move-modal-alert": "Moving this item may change its permissions.",
|
||||||
|
"move-modal-field-label": "Folder name",
|
||||||
|
"move-modal-text": "This action will move the following content:",
|
||||||
|
"move-modal-title": "Move",
|
||||||
|
"moving": "Moving...",
|
||||||
|
"new-folder-name-required-phrase": "Folder name is required."
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "Name",
|
"name-column": "Name",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "Manage permissions",
|
"manage-permissions": "Manage permissions",
|
||||||
"move": "Move"
|
"move": "Move"
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "Alert rules",
|
||||||
|
"dashboards": "Dashboards",
|
||||||
|
"panels": "Panels",
|
||||||
|
"permissions": "Permissions",
|
||||||
|
"settings": "Settings"
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "Cancel",
|
"cancel-label": "Cancel",
|
||||||
"create-label": "Create",
|
"create-label": "Create",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "Preferences"
|
"title": "Preferences"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "Dashboards",
|
|
||||||
"panels": "Panels"
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "Alert rules",
|
|
||||||
"manage-folder-subtitle": "Manage folder dashboards and permissions"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "Loading...",
|
"loading": "Loading...",
|
||||||
"no-tags": "No tags found",
|
"no-tags": "No tags found",
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "",
|
||||||
"delete-button": "",
|
"delete-button": "",
|
||||||
"move-button": ""
|
"delete-modal-text": "",
|
||||||
|
"delete-modal-title": "",
|
||||||
|
"deleting": "",
|
||||||
|
"manage-permissions-button": "",
|
||||||
|
"move-button": "",
|
||||||
|
"move-modal-alert": "",
|
||||||
|
"move-modal-field-label": "",
|
||||||
|
"move-modal-text": "",
|
||||||
|
"move-modal-title": "",
|
||||||
|
"moving": "",
|
||||||
|
"new-folder-name-required-phrase": ""
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "",
|
"name-column": "",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "",
|
"manage-permissions": "",
|
||||||
"move": ""
|
"move": ""
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "",
|
||||||
|
"dashboards": "",
|
||||||
|
"panels": "",
|
||||||
|
"permissions": "",
|
||||||
|
"settings": ""
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "",
|
"cancel-label": "",
|
||||||
"create-label": "",
|
"create-label": "",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "Preferencias"
|
"title": "Preferencias"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "",
|
|
||||||
"panels": ""
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "",
|
|
||||||
"manage-folder-subtitle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "Cargando...",
|
"loading": "Cargando...",
|
||||||
"no-tags": "No se ha encontrado ninguna etiqueta",
|
"no-tags": "No se ha encontrado ninguna etiqueta",
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "",
|
||||||
"delete-button": "",
|
"delete-button": "",
|
||||||
"move-button": ""
|
"delete-modal-text": "",
|
||||||
|
"delete-modal-title": "",
|
||||||
|
"deleting": "",
|
||||||
|
"manage-permissions-button": "",
|
||||||
|
"move-button": "",
|
||||||
|
"move-modal-alert": "",
|
||||||
|
"move-modal-field-label": "",
|
||||||
|
"move-modal-text": "",
|
||||||
|
"move-modal-title": "",
|
||||||
|
"moving": "",
|
||||||
|
"new-folder-name-required-phrase": ""
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "",
|
"name-column": "",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "",
|
"manage-permissions": "",
|
||||||
"move": ""
|
"move": ""
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "",
|
||||||
|
"dashboards": "",
|
||||||
|
"panels": "",
|
||||||
|
"permissions": "",
|
||||||
|
"settings": ""
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "",
|
"cancel-label": "",
|
||||||
"create-label": "",
|
"create-label": "",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "Préférences"
|
"title": "Préférences"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "",
|
|
||||||
"panels": ""
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "",
|
|
||||||
"manage-folder-subtitle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "Chargement en cours...",
|
"loading": "Chargement en cours...",
|
||||||
"no-tags": "Aucune étiquette trouvée",
|
"no-tags": "Aucune étiquette trouvée",
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "Cäʼnčęľ",
|
||||||
"delete-button": "Đęľęŧę",
|
"delete-button": "Đęľęŧę",
|
||||||
"move-button": "Mővę"
|
"delete-modal-text": "Ŧĥįş äčŧįőʼn ŵįľľ đęľęŧę ŧĥę ƒőľľőŵįʼnģ čőʼnŧęʼnŧ:",
|
||||||
|
"delete-modal-title": "Đęľęŧę",
|
||||||
|
"deleting": "Đęľęŧįʼnģ...",
|
||||||
|
"manage-permissions-button": "Mäʼnäģę pęřmįşşįőʼnş",
|
||||||
|
"move-button": "Mővę",
|
||||||
|
"move-modal-alert": "Mővįʼnģ ŧĥįş įŧęm mäy čĥäʼnģę įŧş pęřmįşşįőʼnş.",
|
||||||
|
"move-modal-field-label": "Főľđęř ʼnämę",
|
||||||
|
"move-modal-text": "Ŧĥįş äčŧįőʼn ŵįľľ mővę ŧĥę ƒőľľőŵįʼnģ čőʼnŧęʼnŧ:",
|
||||||
|
"move-modal-title": "Mővę",
|
||||||
|
"moving": "Mővįʼnģ...",
|
||||||
|
"new-folder-name-required-phrase": "Főľđęř ʼnämę įş řęqūįřęđ."
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "Ńämę",
|
"name-column": "Ńämę",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "Mäʼnäģę pęřmįşşįőʼnş",
|
"manage-permissions": "Mäʼnäģę pęřmįşşįőʼnş",
|
||||||
"move": "Mővę"
|
"move": "Mővę"
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "Åľęřŧ řūľęş",
|
||||||
|
"dashboards": "Đäşĥþőäřđş",
|
||||||
|
"panels": "Päʼnęľş",
|
||||||
|
"permissions": "Pęřmįşşįőʼnş",
|
||||||
|
"settings": "Ŝęŧŧįʼnģş"
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "Cäʼnčęľ",
|
"cancel-label": "Cäʼnčęľ",
|
||||||
"create-label": "Cřęäŧę",
|
"create-label": "Cřęäŧę",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "Přęƒęřęʼnčęş"
|
"title": "Přęƒęřęʼnčęş"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "Đäşĥþőäřđş",
|
|
||||||
"panels": "Päʼnęľş"
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "Åľęřŧ řūľęş",
|
|
||||||
"manage-folder-subtitle": "Mäʼnäģę ƒőľđęř đäşĥþőäřđş äʼnđ pęřmįşşįőʼnş"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "Ŀőäđįʼnģ...",
|
"loading": "Ŀőäđįʼnģ...",
|
||||||
"no-tags": "Ńő ŧäģş ƒőūʼnđ",
|
"no-tags": "Ńő ŧäģş ƒőūʼnđ",
|
||||||
|
@ -25,8 +25,19 @@
|
|||||||
},
|
},
|
||||||
"browse-dashboards": {
|
"browse-dashboards": {
|
||||||
"action": {
|
"action": {
|
||||||
|
"cancel-button": "",
|
||||||
"delete-button": "",
|
"delete-button": "",
|
||||||
"move-button": ""
|
"delete-modal-text": "",
|
||||||
|
"delete-modal-title": "",
|
||||||
|
"deleting": "",
|
||||||
|
"manage-permissions-button": "",
|
||||||
|
"move-button": "",
|
||||||
|
"move-modal-alert": "",
|
||||||
|
"move-modal-field-label": "",
|
||||||
|
"move-modal-text": "",
|
||||||
|
"move-modal-title": "",
|
||||||
|
"moving": "",
|
||||||
|
"new-folder-name-required-phrase": ""
|
||||||
},
|
},
|
||||||
"dashboards-tree": {
|
"dashboards-tree": {
|
||||||
"name-column": "",
|
"name-column": "",
|
||||||
@ -38,6 +49,13 @@
|
|||||||
"manage-permissions": "",
|
"manage-permissions": "",
|
||||||
"move": ""
|
"move": ""
|
||||||
},
|
},
|
||||||
|
"manage-folder-nav": {
|
||||||
|
"alert-rules": "",
|
||||||
|
"dashboards": "",
|
||||||
|
"panels": "",
|
||||||
|
"permissions": "",
|
||||||
|
"settings": ""
|
||||||
|
},
|
||||||
"new-folder-form": {
|
"new-folder-form": {
|
||||||
"cancel-label": "",
|
"cancel-label": "",
|
||||||
"create-label": "",
|
"create-label": "",
|
||||||
@ -630,16 +648,6 @@
|
|||||||
},
|
},
|
||||||
"title": "首选项"
|
"title": "首选项"
|
||||||
},
|
},
|
||||||
"state": {
|
|
||||||
"nav-model": {
|
|
||||||
"dashboards": "",
|
|
||||||
"panels": ""
|
|
||||||
},
|
|
||||||
"nav-models": {
|
|
||||||
"alert-rules": "",
|
|
||||||
"manage-folder-subtitle": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tag-filter": {
|
"tag-filter": {
|
||||||
"loading": "加载中...",
|
"loading": "加载中...",
|
||||||
"no-tags": "未找到标签",
|
"no-tags": "未找到标签",
|
||||||
|
Loading…
Reference in New Issue
Block a user