@nocobase/app-template-default 1.0.0-beta.81 → 1.0.0-beta.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.agents/rules/shell.md +2 -0
  2. package/.agents/rules/workspace.md +9 -0
  3. package/.prettierignore +3 -0
  4. package/AGENTS.md +2 -1
  5. package/README.MD +4 -0
  6. package/client/components/attachment-list.tsx +589 -0
  7. package/client/components/back-button.tsx +15 -4
  8. package/client/components/breadcrumbs.tsx +12 -1
  9. package/client/extensions/nocobase-file-component-ui/components/file-list.tsx +68 -71
  10. package/client/extensions/nocobase-file-component-ui/components/file-preview-dialog.tsx +26 -12
  11. package/client/extensions/nocobase-file-component-ui/components/file-preview-field.tsx +6 -6
  12. package/client/extensions/nocobase-file-component-ui/components/file-thumbnail.tsx +3 -3
  13. package/client/extensions/nocobase-file-component-ui/components/file-upload-field.tsx +19 -19
  14. package/client/extensions/nocobase-file-component-ui/components/previewers/file-preview-content.tsx +27 -19
  15. package/client/extensions/nocobase-file-component-ui/components/previewers/office-open-xml-preview.tsx +12 -8
  16. package/client/extensions/nocobase-file-component-ui/index.ts +6 -6
  17. package/client/extensions/nocobase-file-component-ui/lib/message-key.ts +14 -11
  18. package/client/extensions/nocobase-file-component-ui/locales/de-DE.ts +49 -0
  19. package/client/extensions/nocobase-file-component-ui/locales/en-US.ts +47 -0
  20. package/client/extensions/nocobase-file-component-ui/locales/es-ES.ts +48 -0
  21. package/client/extensions/nocobase-file-component-ui/locales/fr-FR.ts +49 -0
  22. package/client/extensions/nocobase-file-component-ui/locales/id-ID.ts +46 -0
  23. package/client/extensions/nocobase-file-component-ui/locales/ja-JP.ts +51 -0
  24. package/client/extensions/nocobase-file-component-ui/locales/pt-BR.ts +49 -0
  25. package/client/extensions/nocobase-file-component-ui/locales/vi-VN.ts +47 -0
  26. package/client/extensions/nocobase-file-component-ui/locales/zh-CN.ts +43 -0
  27. package/client/extensions/nocobase-file-component-ui/locales/zh-TW.ts +43 -0
  28. package/client/extensions/nocobase-file-component-ui/types.ts +3 -1
  29. package/client/locales/en-US.ts +2 -0
  30. package/client/locales/zh-CN.ts +2 -0
  31. package/client/pages/settings/role-form.tsx +5 -1
  32. package/client/routing/route-context.tsx +33 -1
  33. package/eslint.config.js +2 -0
  34. package/package.json +19 -17
  35. package/scripts/check-packages.mjs +46 -0
  36. package/tailwind.config.mjs +3 -9
  37. package/tests/client/list-return-state.test.tsx +202 -0
  38. package/tests/client/role-return.test.tsx +104 -0
  39. package/tests/project/internal-packages.test.ts +98 -0
  40. package/tests/project/tailwind-sources.test.ts +2 -2
  41. package/client/extensions/nocobase-file-component-ui/README.md +0 -13
@@ -1,6 +1,6 @@
1
1
  import { messageKey } from '../../lib/message-key.js';
2
2
  import { useTranslation } from '@nocobase/i18n/client';
3
- import type { FileRecord } from '../../types';
3
+ import type { FileRecord } from '../../types.js';
4
4
  import { useEffect, useRef, useState, type ReactElement } from 'react';
5
5
  import ReactMarkdown from 'react-markdown';
6
6
  import remarkGfm from 'remark-gfm';
@@ -9,12 +9,12 @@ import {
9
9
  resolveOfficeEmbedUrl,
10
10
  resolveOfficeOpenXmlFormat,
11
11
  type FilePreviewKind,
12
- } from '../../lib/file-preview';
12
+ } from '../../lib/file-preview.js';
13
13
  import { Button } from '#components/ui/button';
14
- import { resolveSafeFileUrl } from '../../lib/file-url';
15
- import { FileThumbnail } from '../file-thumbnail';
14
+ import { resolveSafeFileUrl } from '../../lib/file-url.js';
15
+ import { FileThumbnail } from '../file-thumbnail.js';
16
16
 
17
- import { OfficeOpenXmlPreview } from './office-open-xml-preview';
17
+ import { OfficeOpenXmlPreview } from './office-open-xml-preview.js';
18
18
 
19
19
  const OFFICE_PREVIEW_TIMEOUT_MS = 15_000;
20
20
 
@@ -30,7 +30,7 @@ export interface FilePreviewContentProps {
30
30
  export function FilePreviewContent(
31
31
  inputProps: FilePreviewContentProps,
32
32
  ): ReactElement {
33
- const { t } = useTranslation('@nocobase/app-plugin-file');
33
+ const { t } = useTranslation();
34
34
  const { file, kind, url, text, error, onDownload } = inputProps;
35
35
 
36
36
  const format =
@@ -67,7 +67,9 @@ export function FilePreviewContent(
67
67
  <DownloadFallback file={file} onDownload={onDownload} />
68
68
  ) : (
69
69
  <div role='status'>
70
- {t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
70
+ {t('fileUi.files.loadingPreview', {
71
+ defaultValue: 'Loading preview...',
72
+ })}
71
73
  </div>
72
74
  );
73
75
  switch (kind) {
@@ -87,7 +89,9 @@ export function FilePreviewContent(
87
89
  return (
88
90
  <pre className='max-h-[70vh] overflow-auto whitespace-pre-wrap rounded-md bg-muted p-3 text-sm'>
89
91
  {text ??
90
- t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
92
+ t('fileUi.files.loadingPreview', {
93
+ defaultValue: 'Loading preview...',
94
+ })}
91
95
  </pre>
92
96
  );
93
97
  default:
@@ -96,13 +100,15 @@ export function FilePreviewContent(
96
100
  }
97
101
 
98
102
  function MarkdownPreview(inputProps: { readonly text?: string }): ReactElement {
99
- const { t } = useTranslation('@nocobase/app-plugin-file');
103
+ const { t } = useTranslation();
100
104
  const { text } = inputProps;
101
105
 
102
106
  if (text === undefined)
103
107
  return (
104
108
  <div role='status'>
105
- {t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
109
+ {t('fileUi.files.loadingPreview', {
110
+ defaultValue: 'Loading preview...',
111
+ })}
106
112
  </div>
107
113
  );
108
114
  return (
@@ -129,7 +135,7 @@ function ImagePreview(inputProps: {
129
135
  readonly url: string;
130
136
  readonly onDownload?: () => void;
131
137
  }): ReactElement {
132
- const { t } = useTranslation('@nocobase/app-plugin-file');
138
+ const { t } = useTranslation();
133
139
  const { file, url, onDownload } = inputProps;
134
140
 
135
141
  // The browser decodes the image itself, so its error event is the only signal
@@ -140,7 +146,7 @@ function ImagePreview(inputProps: {
140
146
  return (
141
147
  <DownloadFallback
142
148
  file={file}
143
- message={t('files.imageFailed', {
149
+ message={t('fileUi.files.imageFailed', {
144
150
  defaultValue:
145
151
  'This image could not be displayed. It may be corrupted or in an unsupported format.',
146
152
  })}
@@ -164,7 +170,7 @@ function OfficePreview(inputProps: {
164
170
  readonly error?: string;
165
171
  readonly onDownload?: () => void;
166
172
  }): ReactElement {
167
- const { t } = useTranslation('@nocobase/app-plugin-file');
173
+ const { t } = useTranslation();
168
174
  const { file, url, error, onDownload } = inputProps;
169
175
 
170
176
  const [failed, setFailed] = useState(false);
@@ -189,7 +195,9 @@ function OfficePreview(inputProps: {
189
195
  if (!url && !error)
190
196
  return (
191
197
  <div role='status'>
192
- {t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
198
+ {t('fileUi.files.loadingPreview', {
199
+ defaultValue: 'Loading preview...',
200
+ })}
193
201
  </div>
194
202
  );
195
203
  if (!embedUrl || failed) {
@@ -199,10 +207,10 @@ function OfficePreview(inputProps: {
199
207
  message={
200
208
  (error ? t(messageKey(error), { defaultValue: error }) : undefined) ??
201
209
  (failed
202
- ? t('files.officeFailed', {
210
+ ? t('fileUi.files.officeFailed', {
203
211
  defaultValue: 'Office Online could not load this file.',
204
212
  })
205
- : t('files.officeUrl', {
213
+ : t('fileUi.files.officeUrl', {
206
214
  defaultValue:
207
215
  'Office Online requires an internet-accessible absolute file URL.',
208
216
  }))
@@ -228,10 +236,10 @@ function DownloadFallback(inputProps: {
228
236
  readonly thumbnailIconOnly?: boolean;
229
237
  readonly onDownload?: () => void;
230
238
  }): ReactElement {
231
- const { t } = useTranslation('@nocobase/app-plugin-file');
239
+ const { t } = useTranslation();
232
240
  const {
233
241
  file,
234
- message = t('files.previewUnavailable', {
242
+ message = t('fileUi.files.previewUnavailable', {
235
243
  defaultValue: 'Preview is unavailable for this file type.',
236
244
  }),
237
245
  thumbnailIconOnly = false,
@@ -247,7 +255,7 @@ function DownloadFallback(inputProps: {
247
255
  <p>{message}</p>
248
256
  {onDownload ? (
249
257
  <Button type='button' onClick={onDownload}>
250
- {t('files.downloadFile', { defaultValue: 'Download file' })}
258
+ {t('fileUi.files.downloadFile', { defaultValue: 'Download file' })}
251
259
  </Button>
252
260
  ) : null}
253
261
  </div>
@@ -31,7 +31,7 @@ export function OfficeOpenXmlPreview({
31
31
  error,
32
32
  onDownload,
33
33
  }: OfficeOpenXmlPreviewProps): ReactElement {
34
- const { t } = useTranslation('@nocobase/app-plugin-file');
34
+ const { t } = useTranslation();
35
35
  const hostRef = useRef<HTMLDivElement>(null);
36
36
  const [loaded, setLoaded] = useState(false);
37
37
  const [viewerError, setViewerError] = useState<string>();
@@ -53,7 +53,7 @@ export function OfficeOpenXmlPreview({
53
53
  setViewerError(
54
54
  cause instanceof OfficeOpenXmlPreviewError
55
55
  ? cause.message
56
- : t('files.ooxmlLoadFailed', {
56
+ : t('fileUi.files.ooxmlLoadFailed', {
57
57
  defaultValue: 'Unable to render this Office Open XML file.',
58
58
  }),
59
59
  );
@@ -61,7 +61,7 @@ export function OfficeOpenXmlPreview({
61
61
  const timeout = window.setTimeout(() => {
62
62
  reportViewerError(
63
63
  new OfficeOpenXmlPreviewError(
64
- t('files.ooxmlLoadTimedOut', {
64
+ t('fileUi.files.ooxmlLoadTimedOut', {
65
65
  defaultValue: `The preview did not finish loading within ${OFFICE_OPEN_XML_PREVIEW_TIMEOUT_MS / 60_000} minutes.`,
66
66
  minutes: OFFICE_OPEN_XML_PREVIEW_TIMEOUT_MS / 60_000,
67
67
  }),
@@ -110,7 +110,9 @@ export function OfficeOpenXmlPreview({
110
110
  if (!url) {
111
111
  return (
112
112
  <div role='status'>
113
- {t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
113
+ {t('fileUi.files.loadingPreview', {
114
+ defaultValue: 'Loading preview...',
115
+ })}
114
116
  </div>
115
117
  );
116
118
  }
@@ -122,7 +124,9 @@ export function OfficeOpenXmlPreview({
122
124
  role='status'
123
125
  className='absolute inset-0 z-10 flex items-center justify-center bg-background'
124
126
  >
125
- {t('files.loadingPreview', { defaultValue: 'Loading preview...' })}
127
+ {t('fileUi.files.loadingPreview', {
128
+ defaultValue: 'Loading preview...',
129
+ })}
126
130
  </div>
127
131
  ) : null}
128
132
  <div
@@ -148,7 +152,7 @@ async function fetchOfficeOpenXml(
148
152
  });
149
153
  if (!response.ok) {
150
154
  throw new OfficeOpenXmlPreviewError(
151
- t('files.previewRequestFailed', {
155
+ t('fileUi.files.previewRequestFailed', {
152
156
  defaultValue: `Preview request failed (${response.status}).`,
153
157
  status: response.status,
154
158
  }),
@@ -209,7 +213,7 @@ function OfficeOpenXmlDownloadFallback({
209
213
  readonly message: string;
210
214
  readonly onDownload?: () => void;
211
215
  }): ReactElement {
212
- const { t } = useTranslation('@nocobase/app-plugin-file');
216
+ const { t } = useTranslation();
213
217
  return (
214
218
  <div className='flex flex-col items-center gap-3 py-8'>
215
219
  <div className='h-24 w-24'>
@@ -218,7 +222,7 @@ function OfficeOpenXmlDownloadFallback({
218
222
  <p role='alert'>{message}</p>
219
223
  {onDownload ? (
220
224
  <Button type='button' onClick={onDownload}>
221
- {t('files.downloadFile', { defaultValue: 'Download file' })}
225
+ {t('fileUi.files.downloadFile', { defaultValue: 'Download file' })}
222
226
  </Button>
223
227
  ) : null}
224
228
  </div>
@@ -1,8 +1,8 @@
1
- export { FileList } from './components/file-list';
2
- export { FilePreviewDialog } from './components/file-preview-dialog';
3
- export { FilePreviewField } from './components/file-preview-field';
4
- export { FileThumbnail } from './components/file-thumbnail';
5
- export { FileUploadField } from './components/file-upload-field';
6
- export type * from './types';
1
+ export { FileList } from './components/file-list.js';
2
+ export { FilePreviewDialog } from './components/file-preview-dialog.js';
3
+ export { FilePreviewField } from './components/file-preview-field.js';
4
+ export { FileThumbnail } from './components/file-thumbnail.js';
5
+ export { FileUploadField } from './components/file-upload-field.js';
6
+ export type * from './types.js';
7
7
  export { clientFileRepositoryManagerToken } from '@nocobase/app-plugin-file/client';
8
8
  export type { ClientFileRepository } from '@nocobase/app-plugin-file/client';
@@ -1,16 +1,19 @@
1
1
  // Built-in errors remain readable when passed between Registry components.
2
2
  const messageKeys = new Map<string, string>([
3
- ['File upload failed.', 'uploadFailed'],
4
- ['The maximum number of files has been reached.', 'fileLimitReached'],
5
- ['File exceeds the maximum size.', 'fileTooLarge'],
6
- ['File type is not allowed.', 'fileTypeNotAllowed'],
7
- ['File removal failed.', 'removalFailed'],
8
- ['File URL is not allowed.', 'urlNotAllowed'],
9
- ['File download failed.', 'downloadFailed'],
10
- ['File URL is missing or not allowed.', 'invalidUrl'],
11
- ['Unable to load the PDF preview.', 'pdfPreviewFailed'],
12
- ['The file URL returned HTML or XML instead of a PDF.', 'pdfPreviewMarkup'],
13
- ['Unable to load the file preview.', 'previewFailed'],
3
+ ['File upload failed.', 'fileUi.uploadFailed'],
4
+ ['The maximum number of files has been reached.', 'fileUi.fileLimitReached'],
5
+ ['File exceeds the maximum size.', 'fileUi.fileTooLarge'],
6
+ ['File type is not allowed.', 'fileUi.fileTypeNotAllowed'],
7
+ ['File removal failed.', 'fileUi.removalFailed'],
8
+ ['File URL is not allowed.', 'fileUi.urlNotAllowed'],
9
+ ['File download failed.', 'fileUi.downloadFailed'],
10
+ ['File URL is missing or not allowed.', 'fileUi.invalidUrl'],
11
+ ['Unable to load the PDF preview.', 'fileUi.pdfPreviewFailed'],
12
+ [
13
+ 'The file URL returned HTML or XML instead of a PDF.',
14
+ 'fileUi.pdfPreviewMarkup',
15
+ ],
16
+ ['Unable to load the file preview.', 'fileUi.previewFailed'],
14
17
  ]);
15
18
 
16
19
  export function messageKey(message: string): string {
@@ -0,0 +1,49 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed':
4
+ 'Diese Office Open XML-Datei kann nicht gerendert werden.',
5
+ 'files.ooxmlLoadTimedOut':
6
+ 'Die Vorschau wurde nicht innerhalb von {{minutes}} Minuten vollständig geladen.',
7
+ 'files.previewRequestFailed':
8
+ 'Vorschauanforderung fehlgeschlagen ({{status}}).',
9
+ uploadFailed: 'Datei-Upload fehlgeschlagen.',
10
+ fileLimitReached: 'Die maximale Anzahl an Dateien wurde erreicht.',
11
+ fileTooLarge: 'Datei überschreitet die maximale Größe.',
12
+ fileTypeNotAllowed: 'Dateityp ist nicht zulässig.',
13
+ removalFailed: 'Das Entfernen der Datei ist fehlgeschlagen.',
14
+ urlNotAllowed: 'Datei URL ist nicht zulässig.',
15
+ downloadFailed: 'Datei-Download fehlgeschlagen.',
16
+ invalidUrl: 'Datei URL fehlt oder ist nicht zulässig.',
17
+ pdfPreviewFailed: 'Die PDF-Vorschau kann nicht geladen werden.',
18
+ pdfPreviewMarkup: 'Die Datei URL gab HTML oder XML statt einer PDF zurück.',
19
+ previewFailed: 'Die Dateivorschau konnte nicht geladen werden.',
20
+ 'files.empty': 'Keine Akten.',
21
+ 'files.preview': 'Vorschau',
22
+ 'files.download': 'Herunterladen',
23
+ 'files.remove': 'Entfernen',
24
+ 'files.chooseMany': 'Dateien auswählen',
25
+ 'files.chooseOne': 'Datei auswählen',
26
+ 'files.retry': 'Erneut versuchen',
27
+ 'files.done': 'Erledigt',
28
+ 'files.uploading': 'Hochladen',
29
+ 'files.failed': 'Fehlgeschlagen',
30
+ 'files.pending': 'Ausstehend',
31
+ 'files.previous': 'Vorherige Datei',
32
+ 'files.next': 'Nächste Datei',
33
+ 'files.loadingPreview': 'Vorschau wird geladen...',
34
+ 'files.downloadFile': 'Datei herunterladen',
35
+ 'files.previewUnavailable':
36
+ 'Die Vorschau ist für diesen Dateityp nicht verfügbar.',
37
+ 'files.imageFailed':
38
+ 'Dieses Bild konnte nicht angezeigt werden. Möglicherweise ist es beschädigt oder liegt in einem nicht unterstützten Format vor.',
39
+ 'files.officeFailed': 'Office Online konnte diese Datei nicht laden.',
40
+ 'files.officeUrl':
41
+ 'Office Online erfordert eine über das Internet zugängliche absolute Datei URL.',
42
+ 'files.cancelFile': 'Abbrechen {{filename}}',
43
+ 'files.status.uploading': 'Hochladen',
44
+ 'files.status.pending': 'Ausstehend',
45
+ 'files.status.error': 'Fehlgeschlagen',
46
+ };
47
+
48
+ const resource: FileUiResource = { fileUi: messages };
49
+ export default resource;
@@ -0,0 +1,47 @@
1
+ import type { LocaleResource } from '@nocobase/i18n';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed': 'Unable to render this Office Open XML file.',
4
+ 'files.ooxmlLoadTimedOut':
5
+ 'The preview did not finish loading within {{minutes}} minutes.',
6
+ 'files.previewRequestFailed': 'Preview request failed ({{status}}).',
7
+ uploadFailed: 'File upload failed.',
8
+ fileLimitReached: 'The maximum number of files has been reached.',
9
+ fileTooLarge: 'File exceeds the maximum size.',
10
+ fileTypeNotAllowed: 'File type is not allowed.',
11
+ removalFailed: 'File removal failed.',
12
+ urlNotAllowed: 'File URL is not allowed.',
13
+ downloadFailed: 'File download failed.',
14
+ invalidUrl: 'File URL is missing or not allowed.',
15
+ pdfPreviewFailed: 'Unable to load the PDF preview.',
16
+ pdfPreviewMarkup: 'The file URL returned HTML or XML instead of a PDF.',
17
+ previewFailed: 'Unable to load the file preview.',
18
+ 'files.empty': 'No files.',
19
+ 'files.preview': 'Preview',
20
+ 'files.download': 'Download',
21
+ 'files.remove': 'Remove',
22
+ 'files.chooseMany': 'Choose files',
23
+ 'files.chooseOne': 'Choose file',
24
+ 'files.retry': 'Retry',
25
+ 'files.done': 'Done',
26
+ 'files.uploading': 'Uploading',
27
+ 'files.failed': 'Failed',
28
+ 'files.pending': 'Pending',
29
+ 'files.previous': 'Previous file',
30
+ 'files.next': 'Next file',
31
+ 'files.loadingPreview': 'Loading preview...',
32
+ 'files.downloadFile': 'Download file',
33
+ 'files.previewUnavailable': 'Preview is unavailable for this file type.',
34
+ 'files.imageFailed':
35
+ 'This image could not be displayed. It may be corrupted or in an unsupported format.',
36
+ 'files.officeFailed': 'Office Online could not load this file.',
37
+ 'files.officeUrl':
38
+ 'Office Online requires an internet-accessible absolute file URL.',
39
+ 'files.cancelFile': 'Cancel {{filename}}',
40
+ 'files.status.uploading': 'Uploading',
41
+ 'files.status.pending': 'Pending',
42
+ 'files.status.error': 'Failed',
43
+ };
44
+
45
+ const resource: { fileUi: typeof messages } = { fileUi: messages };
46
+ export type FileUiResource = LocaleResource<typeof resource>;
47
+ export default resource;
@@ -0,0 +1,48 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed': 'No se puede procesar este archivo Office Open XML.',
4
+ 'files.ooxmlLoadTimedOut':
5
+ 'La ​​vista previa no terminó de cargarse en {{minutes}} minutos.',
6
+ 'files.previewRequestFailed':
7
+ 'La solicitud de vista previa falló ({{status}}).',
8
+ uploadFailed: 'Falló la carga del archivo.',
9
+ fileLimitReached: 'Se alcanzó el número máximo de archivos.',
10
+ fileTooLarge: 'El archivo excede el tamaño máximo.',
11
+ fileTypeNotAllowed: 'El tipo de archivo no está permitido.',
12
+ removalFailed: 'Falló la eliminación del archivo.',
13
+ urlNotAllowed: 'El archivo URL no está permitido.',
14
+ downloadFailed: 'Falló la descarga del archivo.',
15
+ invalidUrl: 'Falta el archivo URL o no está permitido.',
16
+ pdfPreviewFailed: 'No se puede cargar la vista previa del PDF.',
17
+ pdfPreviewMarkup: 'El archivo URL devolvió HTML o XML en lugar de un PDF.',
18
+ previewFailed: 'No se puede cargar la vista previa del archivo.',
19
+ 'files.empty': 'Sin archivos.',
20
+ 'files.preview': 'Vista previa',
21
+ 'files.download': 'Descargar',
22
+ 'files.remove': 'Quitar',
23
+ 'files.chooseMany': 'Elegir archivos',
24
+ 'files.chooseOne': 'Elegir archivo',
25
+ 'files.retry': 'Reintentar',
26
+ 'files.done': 'Hecho',
27
+ 'files.uploading': 'Subiendo',
28
+ 'files.failed': 'Falló',
29
+ 'files.pending': 'Pendiente',
30
+ 'files.previous': 'Archivo anterior',
31
+ 'files.next': 'Siguiente archivo',
32
+ 'files.loadingPreview': 'Cargando vista previa...',
33
+ 'files.downloadFile': 'Descargar archivo',
34
+ 'files.previewUnavailable':
35
+ 'La vista previa no está disponible para este tipo de archivo.',
36
+ 'files.imageFailed':
37
+ 'Esta imagen no se pudo mostrar. Puede que esté dañado o tenga un formato no compatible.',
38
+ 'files.officeFailed': 'Office Online no pudo cargar este archivo.',
39
+ 'files.officeUrl':
40
+ 'Office Online requiere un archivo absoluto accesible desde Internet URL.',
41
+ 'files.cancelFile': 'Cancelar {{filename}}',
42
+ 'files.status.uploading': 'Subiendo',
43
+ 'files.status.pending': 'Pendiente',
44
+ 'files.status.error': 'Falló',
45
+ };
46
+
47
+ const resource: FileUiResource = { fileUi: messages };
48
+ export default resource;
@@ -0,0 +1,49 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed':
4
+ 'Impossible de restituer ce fichier Office Open XML.',
5
+ 'files.ooxmlLoadTimedOut':
6
+ "Le chargement de l'aperçu n'a pas été terminé dans les minutes {{minutes}}.",
7
+ 'files.previewRequestFailed': "La demande d'aperçu a échoué ({{status}}).",
8
+ uploadFailed: 'Le téléchargement du fichier a échoué.',
9
+ fileLimitReached: 'Le nombre maximum de fichiers a été atteint.',
10
+ fileTooLarge: 'Le fichier dépasse la taille maximale.',
11
+ fileTypeNotAllowed: "Le type de fichier n'est pas autorisé.",
12
+ removalFailed: 'La ​​suppression du fichier a échoué.',
13
+ urlNotAllowed: "Le fichier URL n'est pas autorisé.",
14
+ downloadFailed: 'Le téléchargement du fichier a échoué.',
15
+ invalidUrl: "Le fichier URL est manquant ou n'est pas autorisé.",
16
+ pdfPreviewFailed: "Impossible de charger l'aperçu PDF.",
17
+ pdfPreviewMarkup:
18
+ "Le fichier URL renvoie du HTML ou du XML au lieu d'un PDF.",
19
+ previewFailed: "Impossible de charger l'aperçu du fichier.",
20
+ 'files.empty': 'Aucun dossier.',
21
+ 'files.preview': 'Aperçu',
22
+ 'files.download': 'Télécharger',
23
+ 'files.remove': 'Supprimer',
24
+ 'files.chooseMany': 'Choisir les fichiers',
25
+ 'files.chooseOne': 'Choisir un fichier',
26
+ 'files.retry': 'Réessayer',
27
+ 'files.done': 'Terminé',
28
+ 'files.uploading': 'Téléchargement',
29
+ 'files.failed': 'Échec',
30
+ 'files.pending': 'En attente',
31
+ 'files.previous': 'Fichier précédent',
32
+ 'files.next': 'Fichier suivant',
33
+ 'files.loadingPreview': "Chargement de l'aperçu...",
34
+ 'files.downloadFile': 'Télécharger le fichier',
35
+ 'files.previewUnavailable':
36
+ "L'aperçu n'est pas disponible pour ce type de fichier.",
37
+ 'files.imageFailed':
38
+ "Cette image n'a pas pu être affichée. Il est peut-être corrompu ou dans un format non pris en charge.",
39
+ 'files.officeFailed': "Office Online n'a pas pu charger ce fichier.",
40
+ 'files.officeUrl':
41
+ 'Office Online nécessite un fichier absolu URL accessible sur Internet.',
42
+ 'files.cancelFile': 'Annuler {{filename}}',
43
+ 'files.status.uploading': 'Téléchargement',
44
+ 'files.status.pending': 'En attente',
45
+ 'files.status.error': 'Échec',
46
+ };
47
+
48
+ const resource: FileUiResource = { fileUi: messages };
49
+ export default resource;
@@ -0,0 +1,46 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed': 'Tidak dapat merender file Office Open XML ini.',
4
+ 'files.ooxmlLoadTimedOut':
5
+ 'Pratinjau tidak selesai dimuat dalam waktu {{minutes}} menit.',
6
+ 'files.previewRequestFailed': 'Permintaan pratinjau gagal ({{status}}).',
7
+ uploadFailed: 'Pengunggahan file gagal.',
8
+ fileLimitReached: 'Jumlah maksimum file telah tercapai.',
9
+ fileTooLarge: 'File melebihi ukuran maksimum.',
10
+ fileTypeNotAllowed: 'Jenis file tidak diperbolehkan.',
11
+ removalFailed: 'Penghapusan file gagal.',
12
+ urlNotAllowed: 'File URL tidak diperbolehkan.',
13
+ downloadFailed: 'Pengunduhan file gagal.',
14
+ invalidUrl: 'File URL hilang atau tidak diizinkan.',
15
+ pdfPreviewFailed: 'Tidak dapat memuat pratinjau PDF.',
16
+ pdfPreviewMarkup: 'File URL mengembalikan HTML atau XML, bukan PDF.',
17
+ previewFailed: 'Tidak dapat memuat pratinjau file.',
18
+ 'files.empty': 'Tidak ada file.',
19
+ 'files.preview': 'Pratinjau',
20
+ 'files.download': 'Unduh',
21
+ 'files.remove': 'Hapus',
22
+ 'files.chooseMany': 'Pilih file',
23
+ 'files.chooseOne': 'Pilih berkas',
24
+ 'files.retry': 'Coba lagi',
25
+ 'files.done': 'Selesai',
26
+ 'files.uploading': 'Mengunggah',
27
+ 'files.failed': 'Gagal',
28
+ 'files.pending': 'Tertunda',
29
+ 'files.previous': 'Berkas sebelumnya',
30
+ 'files.next': 'Berkas selanjutnya',
31
+ 'files.loadingPreview': 'Memuat pratinjau...',
32
+ 'files.downloadFile': 'Unduh berkas',
33
+ 'files.previewUnavailable': 'Pratinjau tidak tersedia untuk jenis file ini.',
34
+ 'files.imageFailed':
35
+ 'Gambar ini tidak dapat ditampilkan. Mungkin rusak atau dalam format yang tidak didukung.',
36
+ 'files.officeFailed': 'Office Online tidak dapat memuat file ini.',
37
+ 'files.officeUrl':
38
+ 'Office Online memerlukan file absolut URL yang dapat diakses internet.',
39
+ 'files.cancelFile': 'Batalkan {{filename}}',
40
+ 'files.status.uploading': 'Mengunggah',
41
+ 'files.status.pending': 'Tertunda',
42
+ 'files.status.error': 'Gagal',
43
+ };
44
+
45
+ const resource: FileUiResource = { fileUi: messages };
46
+ export default resource;
@@ -0,0 +1,51 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed':
4
+ 'この Office Open XML ファイルをレンダリングできません。',
5
+ 'files.ooxmlLoadTimedOut':
6
+ 'プレビューのロードが {{minutes}} 分以内に完了しませんでした。',
7
+ 'files.previewRequestFailed':
8
+ 'プレビューリクエストが失敗しました({{status}})。',
9
+ uploadFailed: 'ファイルのアップロードに失敗しました。',
10
+ fileLimitReached: 'ファイル数が上限に達しました。',
11
+ fileTooLarge: 'ファイルが最大サイズを超えています。',
12
+ fileTypeNotAllowed: 'ファイルタイプは許可されていません。',
13
+ removalFailed: 'ファイルの削除に失敗しました。',
14
+ urlNotAllowed: 'ファイル URL は許可されません。',
15
+ downloadFailed: 'ファイルのダウンロードに失敗しました。',
16
+ invalidUrl: 'ファイル URL が見つからないか、許可されていません。',
17
+ pdfPreviewFailed: 'PDF プレビューを読み込めません。',
18
+ pdfPreviewMarkup:
19
+ 'ファイル URL は PDF ではなく HTML または XML を返しました。',
20
+ previewFailed: 'ファイルプレビューを読み込めません。',
21
+ 'files.empty': 'ファイルがありません。',
22
+ 'files.preview': 'プレビュー',
23
+ 'files.download': 'ダウンロード',
24
+ 'files.remove': '削除',
25
+ 'files.chooseMany': 'ファイルを選択してください',
26
+ 'files.chooseOne': 'ファイルを選択してください',
27
+ 'files.retry': '再試行',
28
+ 'files.done': '完了',
29
+ 'files.uploading': 'アップロード中',
30
+ 'files.failed': '失敗しました',
31
+ 'files.pending': '保留中',
32
+ 'files.previous': '前のファイル',
33
+ 'files.next': '次のファイル',
34
+ 'files.loadingPreview': 'プレビューを読み込んでいます...',
35
+ 'files.downloadFile': 'ダウンロードファイル',
36
+ 'files.previewUnavailable':
37
+ 'このファイル形式ではプレビューを利用できません。',
38
+ 'files.imageFailed':
39
+ 'この画像は表示できませんでした。破損しているか、サポートされていない形式である可能性があります。',
40
+ 'files.officeFailed':
41
+ 'Office Online はこのファイルを読み込むことができませんでした。',
42
+ 'files.officeUrl':
43
+ 'Office Online には、インターネットからアクセスできる絶対ファイル URL が必要です。',
44
+ 'files.cancelFile': 'キャンセル {{filename}}',
45
+ 'files.status.uploading': 'アップロード中',
46
+ 'files.status.pending': '保留中',
47
+ 'files.status.error': '失敗しました',
48
+ };
49
+
50
+ const resource: FileUiResource = { fileUi: messages };
51
+ export default resource;
@@ -0,0 +1,49 @@
1
+ import type { FileUiResource } from './en-US.js';
2
+ const messages = {
3
+ 'files.ooxmlLoadFailed':
4
+ 'Não é possível renderizar este arquivo Office Open XML.',
5
+ 'files.ooxmlLoadTimedOut':
6
+ 'A visualização não terminou de carregar em {{minutes}} minutos.',
7
+ 'files.previewRequestFailed':
8
+ 'Falha na solicitação de visualização ({{status}}).',
9
+ uploadFailed: 'Falha no upload do arquivo.',
10
+ fileLimitReached: 'O número máximo de arquivos foi atingido.',
11
+ fileTooLarge: 'O arquivo excede o tamanho máximo.',
12
+ fileTypeNotAllowed: 'O tipo de arquivo não é permitido.',
13
+ removalFailed: 'Falha na remoção do arquivo.',
14
+ urlNotAllowed: 'O arquivo URL não é permitido.',
15
+ downloadFailed: 'Falha no download do arquivo.',
16
+ invalidUrl: 'O arquivo URL está ausente ou não é permitido.',
17
+ pdfPreviewFailed: 'Não é possível carregar a visualização do PDF.',
18
+ pdfPreviewMarkup: 'O arquivo URL retornou HTML ou XML em vez de PDF.',
19
+ previewFailed: 'Não foi possível carregar a visualização do arquivo.',
20
+ 'files.empty': 'Nenhum arquivo.',
21
+ 'files.preview': 'Visualização',
22
+ 'files.download': 'Baixar',
23
+ 'files.remove': 'Remover',
24
+ 'files.chooseMany': 'Escolha arquivos',
25
+ 'files.chooseOne': 'Escolha o arquivo',
26
+ 'files.retry': 'Tentar novamente',
27
+ 'files.done': 'Concluído',
28
+ 'files.uploading': 'Carregando',
29
+ 'files.failed': 'Falha',
30
+ 'files.pending': 'Pendente',
31
+ 'files.previous': 'Arquivo anterior',
32
+ 'files.next': 'Próximo arquivo',
33
+ 'files.loadingPreview': 'Carregando visualização...',
34
+ 'files.downloadFile': 'Baixar arquivo',
35
+ 'files.previewUnavailable':
36
+ 'A visualização não está disponível para este tipo de arquivo.',
37
+ 'files.imageFailed':
38
+ 'Esta imagem não pôde ser exibida. Ele pode estar corrompido ou em um formato não compatível.',
39
+ 'files.officeFailed': 'O Office Online não pôde carregar este arquivo.',
40
+ 'files.officeUrl':
41
+ 'O Office Online requer um arquivo absoluto URL acessível pela Internet.',
42
+ 'files.cancelFile': 'Cancelar {{filename}}',
43
+ 'files.status.uploading': 'Carregando',
44
+ 'files.status.pending': 'Pendente',
45
+ 'files.status.error': 'Falha',
46
+ };
47
+
48
+ const resource: FileUiResource = { fileUi: messages };
49
+ export default resource;