I18n: Migrate to I18next (#55845)

* Switch from lingui from i18next

* Change lingui messages to i18next messages

* Change lingui messages to i18next messages (grafana-ui)

* Init i18n for tests
This commit is contained in:
Josh Hunt
2022-10-06 16:34:04 +01:00
committed by GitHub
parent c1d6df4eb7
commit 5361efc225
58 changed files with 2557 additions and 4364 deletions

View File

@@ -1,10 +1,10 @@
import { t, Trans } from '@lingui/macro';
import React, { useCallback, useEffect, useState } from 'react';
import { useAsync, useDebounce } from 'react-use';
import { isFetchError } from '@grafana/runtime';
import { Button, Field, Input, Modal } from '@grafana/ui';
import { FolderPicker } from 'app/core/components/Select/FolderPicker';
import { t, Trans } from 'app/core/internationalization';
import { PanelModel } from '../../../dashboard/state';
import { getLibraryPanelByName } from '../../state/api';
@@ -53,13 +53,9 @@ export const AddLibraryPanelContents = ({ panel, initialFolderId, onDismiss }: A
return (
<>
<Field
label={t({ id: 'library-panel.add-modal.name', message: 'Library panel name' })}
label={t('library-panel.add-modal.name', 'Library panel name')}
invalid={invalidInput}
error={
invalidInput
? t({ id: 'library-panel.add-modal.error', message: 'Library panel with this name already exists' })
: ''
}
error={invalidInput ? t('library-panel.add-modal.error', 'Library panel with this name already exists') : ''}
>
<Input
id="share-panel-library-panel-name-input"
@@ -69,11 +65,11 @@ export const AddLibraryPanelContents = ({ panel, initialFolderId, onDismiss }: A
/>
</Field>
<Field
label={t({ id: 'library-panel.add-modal.folder', message: 'Save in folder' })}
description={t({
id: 'library-panel.add-modal.folder-description',
message: 'Library panel permissions are derived from the folder permissions',
})}
label={t('library-panel.add-modal.folder', 'Save in folder')}
description={t(
'library-panel.add-modal.folder-description',
'Library panel permissions are derived from the folder permissions'
)}
>
<FolderPicker
onChange={({ id }) => setFolderId(id)}
@@ -84,10 +80,10 @@ export const AddLibraryPanelContents = ({ panel, initialFolderId, onDismiss }: A
<Modal.ButtonRow>
<Button variant="secondary" onClick={onDismiss} fill="outline">
<Trans id="library-panel.add-modal.cancel">Cancel</Trans>
<Trans i18nKey="library-panel.add-modal.cancel">Cancel</Trans>
</Button>
<Button onClick={onCreate} disabled={invalidInput}>
<Trans id="library-panel.add-modal.create">Create library panel</Trans>
<Trans i18nKey="library-panel.add-modal.create">Create library panel</Trans>
</Button>
</Modal.ButtonRow>
</>

View File

@@ -1,9 +1,9 @@
import { t } from '@lingui/macro';
import { useEffect } from 'react';
import useAsyncFn from 'react-use/lib/useAsyncFn';
import { isFetchError } from '@grafana/runtime';
import { notifyApp } from 'app/core/actions';
import { t } from 'app/core/internationalization';
import { PanelModel } from 'app/features/dashboard/state';
import { useDispatch } from 'app/types';
@@ -30,21 +30,18 @@ export const usePanelSave = () => {
useEffect(() => {
if (state.error) {
const errorMsg = state.error.message;
dispatch(
notifyApp(
createPanelLibraryErrorNotification(
t({ id: 'library-panels.save.error', message: `Error saving library panel: "${errorMsg}"` })
t('library-panels.save.error', 'Error saving library panel: "{{errorMsg}}"', { errorMsg })
)
)
);
}
if (state.value) {
dispatch(
notifyApp(
createPanelLibrarySuccessNotification(
t({ id: 'library-panels.save.success', message: 'Library panel saved' })
)
)
notifyApp(createPanelLibrarySuccessNotification(t('library-panels.save.success', 'Library panel saved')))
);
}
}, [dispatch, state]);