@jjlmoya/utils-audiovisual 1.14.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/entries.ts +32 -0
- package/src/tool/chromaticLens/entry.ts +39 -0
- package/src/tool/chromaticLens/index.ts +2 -41
- package/src/tool/collageMaker/entry.ts +48 -0
- package/src/tool/collageMaker/index.ts +2 -50
- package/src/tool/exifCleaner/entry.ts +53 -0
- package/src/tool/exifCleaner/index.ts +2 -55
- package/src/tool/imageCompressor/entry.ts +56 -0
- package/src/tool/imageCompressor/index.ts +2 -58
- package/src/tool/printQualityCalculator/entry.ts +66 -0
- package/src/tool/printQualityCalculator/index.ts +2 -68
- package/src/tool/privacyBlur/entry.ts +45 -0
- package/src/tool/privacyBlur/index.ts +2 -47
- package/src/tool/subtitleSync/entry.ts +45 -0
- package/src/tool/subtitleSync/index.ts +2 -47
- package/src/tool/timelapseCalculator/entry.ts +48 -0
- package/src/tool/timelapseCalculator/index.ts +2 -50
- package/src/tool/tvDistance/entry.ts +45 -0
- package/src/tool/tvDistance/index.ts +2 -47
- package/src/tool/videoFrameExtractor/entry.ts +49 -0
- package/src/tool/videoFrameExtractor/index.ts +2 -51
- package/src/tools.ts +1 -1
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jjlmoya/utils-audiovisual",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": "./src/index.ts",
|
|
9
|
-
"./data": "./src/data.ts"
|
|
9
|
+
"./data": "./src/data.ts",
|
|
10
|
+
"./entries": "./src/entries.ts"
|
|
10
11
|
},
|
|
11
12
|
"files": [
|
|
12
13
|
"src"
|
package/src/entries.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { chromaticLens } from './tool/chromaticLens/entry';
|
|
2
|
+
export type { ChromaticLensUI, ChromaticLensLocaleContent } from './tool/chromaticLens/entry';
|
|
3
|
+
export { collageMaker } from './tool/collageMaker/entry';
|
|
4
|
+
export type { CollageMakerUI, CollageMakerLocaleContent } from './tool/collageMaker/entry';
|
|
5
|
+
export { exifCleaner } from './tool/exifCleaner/entry';
|
|
6
|
+
export type { ExifCleanerUI, ExifCleanerLocaleContent } from './tool/exifCleaner/entry';
|
|
7
|
+
export { imageCompressor } from './tool/imageCompressor/entry';
|
|
8
|
+
export type { ImageCompressorUI, ImageCompressorLocaleContent } from './tool/imageCompressor/entry';
|
|
9
|
+
export { printQualityCalculator } from './tool/printQualityCalculator/entry';
|
|
10
|
+
export type { PrintQualityCalculatorUI, PrintQualityCalculatorLocaleContent } from './tool/printQualityCalculator/entry';
|
|
11
|
+
export { privacyBlur } from './tool/privacyBlur/entry';
|
|
12
|
+
export type { PrivacyBlurUI, PrivacyBlurLocaleContent } from './tool/privacyBlur/entry';
|
|
13
|
+
export { subtitleSync } from './tool/subtitleSync/entry';
|
|
14
|
+
export type { SubtitleSyncUI, SubtitleSyncLocaleContent } from './tool/subtitleSync/entry';
|
|
15
|
+
export { timelapseCalculator } from './tool/timelapseCalculator/entry';
|
|
16
|
+
export type { TimelapseUI, TimelapseLocaleContent } from './tool/timelapseCalculator/entry';
|
|
17
|
+
export { tvDistance } from './tool/tvDistance/entry';
|
|
18
|
+
export type { TvDistanceUI, TvDistanceLocaleContent } from './tool/tvDistance/entry';
|
|
19
|
+
export { videoFrameExtractor } from './tool/videoFrameExtractor/entry';
|
|
20
|
+
export type { VideoFrameExtractorUI, VideoFrameExtractorLocaleContent } from './tool/videoFrameExtractor/entry';
|
|
21
|
+
export { audiovisualCategory, toolsCategory } from './category';
|
|
22
|
+
import { chromaticLens } from './tool/chromaticLens/entry';
|
|
23
|
+
import { collageMaker } from './tool/collageMaker/entry';
|
|
24
|
+
import { exifCleaner } from './tool/exifCleaner/entry';
|
|
25
|
+
import { imageCompressor } from './tool/imageCompressor/entry';
|
|
26
|
+
import { printQualityCalculator } from './tool/printQualityCalculator/entry';
|
|
27
|
+
import { privacyBlur } from './tool/privacyBlur/entry';
|
|
28
|
+
import { subtitleSync } from './tool/subtitleSync/entry';
|
|
29
|
+
import { timelapseCalculator } from './tool/timelapseCalculator/entry';
|
|
30
|
+
import { tvDistance } from './tool/tvDistance/entry';
|
|
31
|
+
import { videoFrameExtractor } from './tool/videoFrameExtractor/entry';
|
|
32
|
+
export const ALL_ENTRIES = [chromaticLens, collageMaker, exifCleaner, imageCompressor, printQualityCalculator, privacyBlur, subtitleSync, timelapseCalculator, tvDistance, videoFrameExtractor];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface ChromaticLensUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
processingLabel: string;
|
|
7
|
+
paletteTitle: string;
|
|
8
|
+
copyLabel: string;
|
|
9
|
+
copiedLabel: string;
|
|
10
|
+
colorCountLabel: string;
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ChromaticLensLocaleContent = ToolLocaleContent<ChromaticLensUI>;
|
|
15
|
+
|
|
16
|
+
export const chromaticLens: AudiovisualToolEntry<ChromaticLensUI> = {
|
|
17
|
+
id: 'lente-cromatica',
|
|
18
|
+
icons: {
|
|
19
|
+
bg: 'mdi:palette-swatch',
|
|
20
|
+
fg: 'mdi:eye-outline',
|
|
21
|
+
},
|
|
22
|
+
i18n: {
|
|
23
|
+
es: async () => (await import('./i18n/es')).content as unknown as ChromaticLensLocaleContent,
|
|
24
|
+
en: async () => (await import('./i18n/en')).content as unknown as ChromaticLensLocaleContent,
|
|
25
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as ChromaticLensLocaleContent,
|
|
26
|
+
de: async () => (await import('./i18n/de')).content as unknown as ChromaticLensLocaleContent,
|
|
27
|
+
it: async () => (await import('./i18n/it')).content as unknown as ChromaticLensLocaleContent,
|
|
28
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as ChromaticLensLocaleContent,
|
|
29
|
+
id: async () => (await import('./i18n/id')).content as unknown as ChromaticLensLocaleContent,
|
|
30
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as ChromaticLensLocaleContent,
|
|
31
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as ChromaticLensLocaleContent,
|
|
32
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as ChromaticLensLocaleContent,
|
|
33
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as ChromaticLensLocaleContent,
|
|
34
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as ChromaticLensLocaleContent,
|
|
35
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as ChromaticLensLocaleContent,
|
|
36
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as ChromaticLensLocaleContent,
|
|
37
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as ChromaticLensLocaleContent,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -1,44 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface ChromaticLensUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
processingLabel: string;
|
|
7
|
-
paletteTitle: string;
|
|
8
|
-
copyLabel: string;
|
|
9
|
-
copiedLabel: string;
|
|
10
|
-
colorCountLabel: string;
|
|
11
|
-
[key: string]: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type ChromaticLensLocaleContent = ToolLocaleContent<ChromaticLensUI>;
|
|
15
|
-
|
|
16
|
-
export const chromaticLens: AudiovisualToolEntry<ChromaticLensUI> = {
|
|
17
|
-
id: 'lente-cromatica',
|
|
18
|
-
icons: {
|
|
19
|
-
bg: 'mdi:palette-swatch',
|
|
20
|
-
fg: 'mdi:eye-outline',
|
|
21
|
-
},
|
|
22
|
-
i18n: {
|
|
23
|
-
es: async () => (await import('./i18n/es')).content as unknown as ChromaticLensLocaleContent,
|
|
24
|
-
en: async () => (await import('./i18n/en')).content as unknown as ChromaticLensLocaleContent,
|
|
25
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ChromaticLensLocaleContent,
|
|
26
|
-
de: async () => (await import('./i18n/de')).content as unknown as ChromaticLensLocaleContent,
|
|
27
|
-
it: async () => (await import('./i18n/it')).content as unknown as ChromaticLensLocaleContent,
|
|
28
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ChromaticLensLocaleContent,
|
|
29
|
-
id: async () => (await import('./i18n/id')).content as unknown as ChromaticLensLocaleContent,
|
|
30
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ChromaticLensLocaleContent,
|
|
31
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ChromaticLensLocaleContent,
|
|
32
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ChromaticLensLocaleContent,
|
|
33
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ChromaticLensLocaleContent,
|
|
34
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ChromaticLensLocaleContent,
|
|
35
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ChromaticLensLocaleContent,
|
|
36
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ChromaticLensLocaleContent,
|
|
37
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ChromaticLensLocaleContent,
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
import { chromaticLens } from './entry';
|
|
2
|
+
export * from './entry';
|
|
42
3
|
export const CHROMATIC_LENS_TOOL: ToolDefinition = {
|
|
43
4
|
entry: chromaticLens as unknown as AudiovisualToolEntry,
|
|
44
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface CollageMakerUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSub: string;
|
|
6
|
+
dropLink: string;
|
|
7
|
+
imgsLoaded: string;
|
|
8
|
+
layoutLabel: string;
|
|
9
|
+
settingsLabel: string;
|
|
10
|
+
borderLabel: string;
|
|
11
|
+
borderColorLabel: string;
|
|
12
|
+
bgColorLabel: string;
|
|
13
|
+
downloadBtn: string;
|
|
14
|
+
previewTitle: string;
|
|
15
|
+
needsImgs: string;
|
|
16
|
+
errorMin: string;
|
|
17
|
+
errorMax: string;
|
|
18
|
+
errorLoad: string;
|
|
19
|
+
[key: string]: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type CollageMakerLocaleContent = ToolLocaleContent<CollageMakerUI>;
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export const collageMaker: AudiovisualToolEntry<CollageMakerUI> = {
|
|
26
|
+
id: 'creador-collage-fotos',
|
|
27
|
+
icons: {
|
|
28
|
+
bg: 'mdi:collage',
|
|
29
|
+
fg: 'mdi:palette-outline',
|
|
30
|
+
},
|
|
31
|
+
i18n: {
|
|
32
|
+
es: async () => (await import('./i18n/es')).content as unknown as CollageMakerLocaleContent,
|
|
33
|
+
en: async () => (await import('./i18n/en')).content as unknown as CollageMakerLocaleContent,
|
|
34
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as CollageMakerLocaleContent,
|
|
35
|
+
de: async () => (await import('./i18n/de')).content as unknown as CollageMakerLocaleContent,
|
|
36
|
+
it: async () => (await import('./i18n/it')).content as unknown as CollageMakerLocaleContent,
|
|
37
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as CollageMakerLocaleContent,
|
|
38
|
+
id: async () => (await import('./i18n/id')).content as unknown as CollageMakerLocaleContent,
|
|
39
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as CollageMakerLocaleContent,
|
|
40
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as CollageMakerLocaleContent,
|
|
41
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as CollageMakerLocaleContent,
|
|
42
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as CollageMakerLocaleContent,
|
|
43
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as CollageMakerLocaleContent,
|
|
44
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as CollageMakerLocaleContent,
|
|
45
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as CollageMakerLocaleContent,
|
|
46
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as CollageMakerLocaleContent,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
@@ -1,53 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface CollageMakerUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSub: string;
|
|
6
|
-
dropLink: string;
|
|
7
|
-
imgsLoaded: string;
|
|
8
|
-
layoutLabel: string;
|
|
9
|
-
settingsLabel: string;
|
|
10
|
-
borderLabel: string;
|
|
11
|
-
borderColorLabel: string;
|
|
12
|
-
bgColorLabel: string;
|
|
13
|
-
downloadBtn: string;
|
|
14
|
-
previewTitle: string;
|
|
15
|
-
needsImgs: string;
|
|
16
|
-
errorMin: string;
|
|
17
|
-
errorMax: string;
|
|
18
|
-
errorLoad: string;
|
|
19
|
-
[key: string]: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type CollageMakerLocaleContent = ToolLocaleContent<CollageMakerUI>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export const collageMaker: AudiovisualToolEntry<CollageMakerUI> = {
|
|
26
|
-
id: 'creador-collage-fotos',
|
|
27
|
-
icons: {
|
|
28
|
-
bg: 'mdi:collage',
|
|
29
|
-
fg: 'mdi:palette-outline',
|
|
30
|
-
},
|
|
31
|
-
i18n: {
|
|
32
|
-
es: async () => (await import('./i18n/es')).content as unknown as CollageMakerLocaleContent,
|
|
33
|
-
en: async () => (await import('./i18n/en')).content as unknown as CollageMakerLocaleContent,
|
|
34
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as CollageMakerLocaleContent,
|
|
35
|
-
de: async () => (await import('./i18n/de')).content as unknown as CollageMakerLocaleContent,
|
|
36
|
-
it: async () => (await import('./i18n/it')).content as unknown as CollageMakerLocaleContent,
|
|
37
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as CollageMakerLocaleContent,
|
|
38
|
-
id: async () => (await import('./i18n/id')).content as unknown as CollageMakerLocaleContent,
|
|
39
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as CollageMakerLocaleContent,
|
|
40
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as CollageMakerLocaleContent,
|
|
41
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as CollageMakerLocaleContent,
|
|
42
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as CollageMakerLocaleContent,
|
|
43
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as CollageMakerLocaleContent,
|
|
44
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as CollageMakerLocaleContent,
|
|
45
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as CollageMakerLocaleContent,
|
|
46
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as CollageMakerLocaleContent,
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
import { collageMaker } from './entry';
|
|
2
|
+
export * from './entry';
|
|
51
3
|
export const COLLAGE_MAKER_TOOL: ToolDefinition = {
|
|
52
4
|
entry: collageMaker as unknown as AudiovisualToolEntry,
|
|
53
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface ExifCleanerUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
dropLocalInfo: string;
|
|
7
|
+
selectButton: string;
|
|
8
|
+
processingText: string;
|
|
9
|
+
analysisCompleted: string;
|
|
10
|
+
downloadButton: string;
|
|
11
|
+
resetButton: string;
|
|
12
|
+
privacyRiskTitle: string;
|
|
13
|
+
gpsLabel: string;
|
|
14
|
+
gpsDetected: string;
|
|
15
|
+
gpsNotFound: string;
|
|
16
|
+
cameraLabel: string;
|
|
17
|
+
softwareLabel: string;
|
|
18
|
+
dateLabel: string;
|
|
19
|
+
otherTechnicalDetails: string;
|
|
20
|
+
noMetadataFound: string;
|
|
21
|
+
alreadyCleanInfo: string;
|
|
22
|
+
previewLabel: string;
|
|
23
|
+
faqTitle: string;
|
|
24
|
+
bibliographyTitle: string;
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type ExifCleanerLocaleContent = ToolLocaleContent<ExifCleanerUI>;
|
|
29
|
+
|
|
30
|
+
export const exifCleaner: AudiovisualToolEntry<ExifCleanerUI> = {
|
|
31
|
+
id: 'limpiador-exif',
|
|
32
|
+
icons: {
|
|
33
|
+
bg: 'mdi:camera-off',
|
|
34
|
+
fg: 'mdi:shield-check',
|
|
35
|
+
},
|
|
36
|
+
i18n: {
|
|
37
|
+
es: async () => (await import('./i18n/es')).content as unknown as ExifCleanerLocaleContent,
|
|
38
|
+
en: async () => (await import('./i18n/en')).content as unknown as ExifCleanerLocaleContent,
|
|
39
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as ExifCleanerLocaleContent,
|
|
40
|
+
de: async () => (await import('./i18n/de')).content as unknown as ExifCleanerLocaleContent,
|
|
41
|
+
it: async () => (await import('./i18n/it')).content as unknown as ExifCleanerLocaleContent,
|
|
42
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as ExifCleanerLocaleContent,
|
|
43
|
+
id: async () => (await import('./i18n/id')).content as unknown as ExifCleanerLocaleContent,
|
|
44
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as ExifCleanerLocaleContent,
|
|
45
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as ExifCleanerLocaleContent,
|
|
46
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as ExifCleanerLocaleContent,
|
|
47
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as ExifCleanerLocaleContent,
|
|
48
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as ExifCleanerLocaleContent,
|
|
49
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as ExifCleanerLocaleContent,
|
|
50
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as ExifCleanerLocaleContent,
|
|
51
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as ExifCleanerLocaleContent,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
@@ -1,58 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface ExifCleanerUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
dropLocalInfo: string;
|
|
7
|
-
selectButton: string;
|
|
8
|
-
processingText: string;
|
|
9
|
-
analysisCompleted: string;
|
|
10
|
-
downloadButton: string;
|
|
11
|
-
resetButton: string;
|
|
12
|
-
privacyRiskTitle: string;
|
|
13
|
-
gpsLabel: string;
|
|
14
|
-
gpsDetected: string;
|
|
15
|
-
gpsNotFound: string;
|
|
16
|
-
cameraLabel: string;
|
|
17
|
-
softwareLabel: string;
|
|
18
|
-
dateLabel: string;
|
|
19
|
-
otherTechnicalDetails: string;
|
|
20
|
-
noMetadataFound: string;
|
|
21
|
-
alreadyCleanInfo: string;
|
|
22
|
-
previewLabel: string;
|
|
23
|
-
faqTitle: string;
|
|
24
|
-
bibliographyTitle: string;
|
|
25
|
-
[key: string]: string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type ExifCleanerLocaleContent = ToolLocaleContent<ExifCleanerUI>;
|
|
29
|
-
|
|
30
|
-
export const exifCleaner: AudiovisualToolEntry<ExifCleanerUI> = {
|
|
31
|
-
id: 'limpiador-exif',
|
|
32
|
-
icons: {
|
|
33
|
-
bg: 'mdi:camera-off',
|
|
34
|
-
fg: 'mdi:shield-check',
|
|
35
|
-
},
|
|
36
|
-
i18n: {
|
|
37
|
-
es: async () => (await import('./i18n/es')).content as unknown as ExifCleanerLocaleContent,
|
|
38
|
-
en: async () => (await import('./i18n/en')).content as unknown as ExifCleanerLocaleContent,
|
|
39
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ExifCleanerLocaleContent,
|
|
40
|
-
de: async () => (await import('./i18n/de')).content as unknown as ExifCleanerLocaleContent,
|
|
41
|
-
it: async () => (await import('./i18n/it')).content as unknown as ExifCleanerLocaleContent,
|
|
42
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ExifCleanerLocaleContent,
|
|
43
|
-
id: async () => (await import('./i18n/id')).content as unknown as ExifCleanerLocaleContent,
|
|
44
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ExifCleanerLocaleContent,
|
|
45
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ExifCleanerLocaleContent,
|
|
46
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ExifCleanerLocaleContent,
|
|
47
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ExifCleanerLocaleContent,
|
|
48
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ExifCleanerLocaleContent,
|
|
49
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ExifCleanerLocaleContent,
|
|
50
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ExifCleanerLocaleContent,
|
|
51
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ExifCleanerLocaleContent,
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
|
|
1
|
+
import { exifCleaner } from './entry';
|
|
2
|
+
export * from './entry';
|
|
56
3
|
export const EXIF_CLEANER_TOOL: ToolDefinition = {
|
|
57
4
|
entry: exifCleaner as unknown as AudiovisualToolEntry,
|
|
58
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface ImageCompressorUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
settingsTitle: string;
|
|
7
|
+
qualityLabel: string;
|
|
8
|
+
widthLabel: string;
|
|
9
|
+
convertToWebpLabel: string;
|
|
10
|
+
compressionLabel: string;
|
|
11
|
+
compressBtn: string;
|
|
12
|
+
processingLabel: string;
|
|
13
|
+
resultsTitle: string;
|
|
14
|
+
originalSizeLabel: string;
|
|
15
|
+
newSizeLabel: string;
|
|
16
|
+
reductionLabel: string;
|
|
17
|
+
downloadBtn: string;
|
|
18
|
+
addMoreBtn: string;
|
|
19
|
+
browseFilesBtn: string;
|
|
20
|
+
processedFilesTitle: string;
|
|
21
|
+
downloadAllBtn: string;
|
|
22
|
+
adjustThisImage: string;
|
|
23
|
+
downloadTitle: string;
|
|
24
|
+
maxWidthLabel: string;
|
|
25
|
+
closeBtn: string;
|
|
26
|
+
totalSavingsLabel: string;
|
|
27
|
+
noSavings: string;
|
|
28
|
+
[key: string]: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type ImageCompressorLocaleContent = ToolLocaleContent<ImageCompressorUI>;
|
|
32
|
+
|
|
33
|
+
export const imageCompressor: AudiovisualToolEntry<ImageCompressorUI> = {
|
|
34
|
+
id: 'compresor-imagenes',
|
|
35
|
+
icons: {
|
|
36
|
+
bg: 'mdi:image-size-select-small',
|
|
37
|
+
fg: 'mdi:file-image-outline',
|
|
38
|
+
},
|
|
39
|
+
i18n: {
|
|
40
|
+
es: async () => (await import('./i18n/es')).content as unknown as ImageCompressorLocaleContent,
|
|
41
|
+
en: async () => (await import('./i18n/en')).content as unknown as ImageCompressorLocaleContent,
|
|
42
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as ImageCompressorLocaleContent,
|
|
43
|
+
de: async () => (await import('./i18n/de')).content as unknown as ImageCompressorLocaleContent,
|
|
44
|
+
it: async () => (await import('./i18n/it')).content as unknown as ImageCompressorLocaleContent,
|
|
45
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as ImageCompressorLocaleContent,
|
|
46
|
+
id: async () => (await import('./i18n/id')).content as unknown as ImageCompressorLocaleContent,
|
|
47
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as ImageCompressorLocaleContent,
|
|
48
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as ImageCompressorLocaleContent,
|
|
49
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as ImageCompressorLocaleContent,
|
|
50
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as ImageCompressorLocaleContent,
|
|
51
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as ImageCompressorLocaleContent,
|
|
52
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as ImageCompressorLocaleContent,
|
|
53
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as ImageCompressorLocaleContent,
|
|
54
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as ImageCompressorLocaleContent,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
@@ -1,61 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface ImageCompressorUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
settingsTitle: string;
|
|
7
|
-
qualityLabel: string;
|
|
8
|
-
widthLabel: string;
|
|
9
|
-
convertToWebpLabel: string;
|
|
10
|
-
compressionLabel: string;
|
|
11
|
-
compressBtn: string;
|
|
12
|
-
processingLabel: string;
|
|
13
|
-
resultsTitle: string;
|
|
14
|
-
originalSizeLabel: string;
|
|
15
|
-
newSizeLabel: string;
|
|
16
|
-
reductionLabel: string;
|
|
17
|
-
downloadBtn: string;
|
|
18
|
-
addMoreBtn: string;
|
|
19
|
-
browseFilesBtn: string;
|
|
20
|
-
processedFilesTitle: string;
|
|
21
|
-
downloadAllBtn: string;
|
|
22
|
-
adjustThisImage: string;
|
|
23
|
-
downloadTitle: string;
|
|
24
|
-
maxWidthLabel: string;
|
|
25
|
-
closeBtn: string;
|
|
26
|
-
totalSavingsLabel: string;
|
|
27
|
-
noSavings: string;
|
|
28
|
-
[key: string]: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type ImageCompressorLocaleContent = ToolLocaleContent<ImageCompressorUI>;
|
|
32
|
-
|
|
33
|
-
export const imageCompressor: AudiovisualToolEntry<ImageCompressorUI> = {
|
|
34
|
-
id: 'compresor-imagenes',
|
|
35
|
-
icons: {
|
|
36
|
-
bg: 'mdi:image-size-select-small',
|
|
37
|
-
fg: 'mdi:file-image-outline',
|
|
38
|
-
},
|
|
39
|
-
i18n: {
|
|
40
|
-
es: async () => (await import('./i18n/es')).content as unknown as ImageCompressorLocaleContent,
|
|
41
|
-
en: async () => (await import('./i18n/en')).content as unknown as ImageCompressorLocaleContent,
|
|
42
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ImageCompressorLocaleContent,
|
|
43
|
-
de: async () => (await import('./i18n/de')).content as unknown as ImageCompressorLocaleContent,
|
|
44
|
-
it: async () => (await import('./i18n/it')).content as unknown as ImageCompressorLocaleContent,
|
|
45
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ImageCompressorLocaleContent,
|
|
46
|
-
id: async () => (await import('./i18n/id')).content as unknown as ImageCompressorLocaleContent,
|
|
47
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ImageCompressorLocaleContent,
|
|
48
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ImageCompressorLocaleContent,
|
|
49
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ImageCompressorLocaleContent,
|
|
50
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ImageCompressorLocaleContent,
|
|
51
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ImageCompressorLocaleContent,
|
|
52
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ImageCompressorLocaleContent,
|
|
53
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ImageCompressorLocaleContent,
|
|
54
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ImageCompressorLocaleContent,
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
import { imageCompressor } from './entry';
|
|
2
|
+
export * from './entry';
|
|
59
3
|
export const IMAGE_COMPRESSOR_TOOL: ToolDefinition = {
|
|
60
4
|
entry: imageCompressor as unknown as AudiovisualToolEntry,
|
|
61
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface PrintQualityCalculatorUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
resultsTitle: string;
|
|
7
|
+
dpiDensityLabel: string;
|
|
8
|
+
dpiPointsLabel: string;
|
|
9
|
+
maxPrintTitle: string;
|
|
10
|
+
standardFormatsTitle: string;
|
|
11
|
+
formatColumn: string;
|
|
12
|
+
measureColumn: string;
|
|
13
|
+
supportColumn: string;
|
|
14
|
+
qualityExcellent: string;
|
|
15
|
+
qualityGood: string;
|
|
16
|
+
qualityFair: string;
|
|
17
|
+
qualityPoor: string;
|
|
18
|
+
qualityExcellentDesc: string;
|
|
19
|
+
qualityGoodDesc: string;
|
|
20
|
+
qualityFairDesc: string;
|
|
21
|
+
qualityPoorDesc: string;
|
|
22
|
+
unitCm: string;
|
|
23
|
+
unitInches: string;
|
|
24
|
+
dpiScreenLabel: string;
|
|
25
|
+
dpiNewspaperLabel: string;
|
|
26
|
+
dpiPrintLabel: string;
|
|
27
|
+
dpiFineArtLabel: string;
|
|
28
|
+
formatPostal: string;
|
|
29
|
+
formatQuartilla: string;
|
|
30
|
+
formatFolio: string;
|
|
31
|
+
formatDoubleFolio: string;
|
|
32
|
+
formatSmallPoster: string;
|
|
33
|
+
formatLargePoster: string;
|
|
34
|
+
formatPlane: string;
|
|
35
|
+
supportedText: string;
|
|
36
|
+
notSupportedPrefix: string;
|
|
37
|
+
invalidImageError: string;
|
|
38
|
+
[key: string]: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type PrintQualityCalculatorLocaleContent = ToolLocaleContent<PrintQualityCalculatorUI>;
|
|
42
|
+
|
|
43
|
+
export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculatorUI> = {
|
|
44
|
+
id: 'calidad-impresion',
|
|
45
|
+
icons: {
|
|
46
|
+
bg: 'mdi:printer',
|
|
47
|
+
fg: 'mdi:ruler-square',
|
|
48
|
+
},
|
|
49
|
+
i18n: {
|
|
50
|
+
es: async () => (await import('./i18n/es')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
51
|
+
en: async () => (await import('./i18n/en')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
52
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
53
|
+
de: async () => (await import('./i18n/de')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
54
|
+
it: async () => (await import('./i18n/it')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
55
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
56
|
+
id: async () => (await import('./i18n/id')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
57
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
61
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
62
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
63
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
64
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
@@ -1,71 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface PrintQualityCalculatorUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
resultsTitle: string;
|
|
7
|
-
dpiDensityLabel: string;
|
|
8
|
-
dpiPointsLabel: string;
|
|
9
|
-
maxPrintTitle: string;
|
|
10
|
-
standardFormatsTitle: string;
|
|
11
|
-
formatColumn: string;
|
|
12
|
-
measureColumn: string;
|
|
13
|
-
supportColumn: string;
|
|
14
|
-
qualityExcellent: string;
|
|
15
|
-
qualityGood: string;
|
|
16
|
-
qualityFair: string;
|
|
17
|
-
qualityPoor: string;
|
|
18
|
-
qualityExcellentDesc: string;
|
|
19
|
-
qualityGoodDesc: string;
|
|
20
|
-
qualityFairDesc: string;
|
|
21
|
-
qualityPoorDesc: string;
|
|
22
|
-
unitCm: string;
|
|
23
|
-
unitInches: string;
|
|
24
|
-
dpiScreenLabel: string;
|
|
25
|
-
dpiNewspaperLabel: string;
|
|
26
|
-
dpiPrintLabel: string;
|
|
27
|
-
dpiFineArtLabel: string;
|
|
28
|
-
formatPostal: string;
|
|
29
|
-
formatQuartilla: string;
|
|
30
|
-
formatFolio: string;
|
|
31
|
-
formatDoubleFolio: string;
|
|
32
|
-
formatSmallPoster: string;
|
|
33
|
-
formatLargePoster: string;
|
|
34
|
-
formatPlane: string;
|
|
35
|
-
supportedText: string;
|
|
36
|
-
notSupportedPrefix: string;
|
|
37
|
-
invalidImageError: string;
|
|
38
|
-
[key: string]: string;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export type PrintQualityCalculatorLocaleContent = ToolLocaleContent<PrintQualityCalculatorUI>;
|
|
42
|
-
|
|
43
|
-
export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculatorUI> = {
|
|
44
|
-
id: 'calidad-impresion',
|
|
45
|
-
icons: {
|
|
46
|
-
bg: 'mdi:printer',
|
|
47
|
-
fg: 'mdi:ruler-square',
|
|
48
|
-
},
|
|
49
|
-
i18n: {
|
|
50
|
-
es: async () => (await import('./i18n/es')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
51
|
-
en: async () => (await import('./i18n/en')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
52
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
53
|
-
de: async () => (await import('./i18n/de')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
54
|
-
it: async () => (await import('./i18n/it')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
55
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
56
|
-
id: async () => (await import('./i18n/id')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
57
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
61
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
62
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
63
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
64
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
import { printQualityCalculator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
69
3
|
export const PRINT_QUALITY_CALCULATOR_TOOL: ToolDefinition = {
|
|
70
4
|
entry: printQualityCalculator as unknown as AudiovisualToolEntry,
|
|
71
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface PrivacyBlurUI {
|
|
4
|
+
toolPixel: string;
|
|
5
|
+
toolBlur: string;
|
|
6
|
+
toolSolid: string;
|
|
7
|
+
intensityLabel: string;
|
|
8
|
+
undoButton: string;
|
|
9
|
+
downloadButton: string;
|
|
10
|
+
dropTitle: string;
|
|
11
|
+
dropSubtitle: string;
|
|
12
|
+
privacySecureLabel: string;
|
|
13
|
+
offlineLabel: string;
|
|
14
|
+
autoDetectFaces: string;
|
|
15
|
+
loadingModels: string;
|
|
16
|
+
noFacesDetected: string;
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type PrivacyBlurLocaleContent = ToolLocaleContent<PrivacyBlurUI>;
|
|
21
|
+
|
|
22
|
+
export const privacyBlur: AudiovisualToolEntry<PrivacyBlurUI> = {
|
|
23
|
+
id: 'editor-privacidad',
|
|
24
|
+
icons: {
|
|
25
|
+
bg: 'mdi:eye-off',
|
|
26
|
+
fg: 'mdi:blur',
|
|
27
|
+
},
|
|
28
|
+
i18n: {
|
|
29
|
+
es: async () => (await import('./i18n/es')).content as unknown as PrivacyBlurLocaleContent,
|
|
30
|
+
en: async () => (await import('./i18n/en')).content as unknown as PrivacyBlurLocaleContent,
|
|
31
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as PrivacyBlurLocaleContent,
|
|
32
|
+
de: async () => (await import('./i18n/de')).content as unknown as PrivacyBlurLocaleContent,
|
|
33
|
+
it: async () => (await import('./i18n/it')).content as unknown as PrivacyBlurLocaleContent,
|
|
34
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as PrivacyBlurLocaleContent,
|
|
35
|
+
id: async () => (await import('./i18n/id')).content as unknown as PrivacyBlurLocaleContent,
|
|
36
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as PrivacyBlurLocaleContent,
|
|
37
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as PrivacyBlurLocaleContent,
|
|
38
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as PrivacyBlurLocaleContent,
|
|
39
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as PrivacyBlurLocaleContent,
|
|
40
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as PrivacyBlurLocaleContent,
|
|
41
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as PrivacyBlurLocaleContent,
|
|
42
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as PrivacyBlurLocaleContent,
|
|
43
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as PrivacyBlurLocaleContent,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -1,50 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface PrivacyBlurUI {
|
|
4
|
-
toolPixel: string;
|
|
5
|
-
toolBlur: string;
|
|
6
|
-
toolSolid: string;
|
|
7
|
-
intensityLabel: string;
|
|
8
|
-
undoButton: string;
|
|
9
|
-
downloadButton: string;
|
|
10
|
-
dropTitle: string;
|
|
11
|
-
dropSubtitle: string;
|
|
12
|
-
privacySecureLabel: string;
|
|
13
|
-
offlineLabel: string;
|
|
14
|
-
autoDetectFaces: string;
|
|
15
|
-
loadingModels: string;
|
|
16
|
-
noFacesDetected: string;
|
|
17
|
-
[key: string]: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type PrivacyBlurLocaleContent = ToolLocaleContent<PrivacyBlurUI>;
|
|
21
|
-
|
|
22
|
-
export const privacyBlur: AudiovisualToolEntry<PrivacyBlurUI> = {
|
|
23
|
-
id: 'editor-privacidad',
|
|
24
|
-
icons: {
|
|
25
|
-
bg: 'mdi:eye-off',
|
|
26
|
-
fg: 'mdi:blur',
|
|
27
|
-
},
|
|
28
|
-
i18n: {
|
|
29
|
-
es: async () => (await import('./i18n/es')).content as unknown as PrivacyBlurLocaleContent,
|
|
30
|
-
en: async () => (await import('./i18n/en')).content as unknown as PrivacyBlurLocaleContent,
|
|
31
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as PrivacyBlurLocaleContent,
|
|
32
|
-
de: async () => (await import('./i18n/de')).content as unknown as PrivacyBlurLocaleContent,
|
|
33
|
-
it: async () => (await import('./i18n/it')).content as unknown as PrivacyBlurLocaleContent,
|
|
34
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as PrivacyBlurLocaleContent,
|
|
35
|
-
id: async () => (await import('./i18n/id')).content as unknown as PrivacyBlurLocaleContent,
|
|
36
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as PrivacyBlurLocaleContent,
|
|
37
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as PrivacyBlurLocaleContent,
|
|
38
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as PrivacyBlurLocaleContent,
|
|
39
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as PrivacyBlurLocaleContent,
|
|
40
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as PrivacyBlurLocaleContent,
|
|
41
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as PrivacyBlurLocaleContent,
|
|
42
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as PrivacyBlurLocaleContent,
|
|
43
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as PrivacyBlurLocaleContent,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import { privacyBlur } from './entry';
|
|
2
|
+
export * from './entry';
|
|
48
3
|
export const PRIVACY_BLUR_TOOL: ToolDefinition = {
|
|
49
4
|
entry: privacyBlur as unknown as AudiovisualToolEntry,
|
|
50
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface SubtitleSyncUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
adjustTitle: string;
|
|
7
|
+
offsetLabel: string;
|
|
8
|
+
offsetHelp: string;
|
|
9
|
+
linesStat: string;
|
|
10
|
+
firstStat: string;
|
|
11
|
+
lastStat: string;
|
|
12
|
+
originalLabel: string;
|
|
13
|
+
resultLabel: string;
|
|
14
|
+
downloadButton: string;
|
|
15
|
+
previewBadge: string;
|
|
16
|
+
unitSeconds: string;
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type SubtitleSyncLocaleContent = ToolLocaleContent<SubtitleSyncUI>;
|
|
21
|
+
|
|
22
|
+
export const subtitleSync: AudiovisualToolEntry<SubtitleSyncUI> = {
|
|
23
|
+
id: 'sincronizar-subtitulos',
|
|
24
|
+
icons: {
|
|
25
|
+
bg: 'mdi:movie-open-edit-outline',
|
|
26
|
+
fg: 'mdi:clock-time-four-outline',
|
|
27
|
+
},
|
|
28
|
+
i18n: {
|
|
29
|
+
es: async () => (await import('./i18n/es')).content as unknown as SubtitleSyncLocaleContent,
|
|
30
|
+
en: async () => (await import('./i18n/en')).content as unknown as SubtitleSyncLocaleContent,
|
|
31
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as SubtitleSyncLocaleContent,
|
|
32
|
+
de: async () => (await import('./i18n/de')).content as unknown as SubtitleSyncLocaleContent,
|
|
33
|
+
it: async () => (await import('./i18n/it')).content as unknown as SubtitleSyncLocaleContent,
|
|
34
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as SubtitleSyncLocaleContent,
|
|
35
|
+
id: async () => (await import('./i18n/id')).content as unknown as SubtitleSyncLocaleContent,
|
|
36
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as SubtitleSyncLocaleContent,
|
|
37
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as SubtitleSyncLocaleContent,
|
|
38
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as SubtitleSyncLocaleContent,
|
|
39
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as SubtitleSyncLocaleContent,
|
|
40
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as SubtitleSyncLocaleContent,
|
|
41
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as SubtitleSyncLocaleContent,
|
|
42
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as SubtitleSyncLocaleContent,
|
|
43
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as SubtitleSyncLocaleContent,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -1,50 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface SubtitleSyncUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
adjustTitle: string;
|
|
7
|
-
offsetLabel: string;
|
|
8
|
-
offsetHelp: string;
|
|
9
|
-
linesStat: string;
|
|
10
|
-
firstStat: string;
|
|
11
|
-
lastStat: string;
|
|
12
|
-
originalLabel: string;
|
|
13
|
-
resultLabel: string;
|
|
14
|
-
downloadButton: string;
|
|
15
|
-
previewBadge: string;
|
|
16
|
-
unitSeconds: string;
|
|
17
|
-
[key: string]: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type SubtitleSyncLocaleContent = ToolLocaleContent<SubtitleSyncUI>;
|
|
21
|
-
|
|
22
|
-
export const subtitleSync: AudiovisualToolEntry<SubtitleSyncUI> = {
|
|
23
|
-
id: 'sincronizar-subtitulos',
|
|
24
|
-
icons: {
|
|
25
|
-
bg: 'mdi:movie-open-edit-outline',
|
|
26
|
-
fg: 'mdi:clock-time-four-outline',
|
|
27
|
-
},
|
|
28
|
-
i18n: {
|
|
29
|
-
es: async () => (await import('./i18n/es')).content as unknown as SubtitleSyncLocaleContent,
|
|
30
|
-
en: async () => (await import('./i18n/en')).content as unknown as SubtitleSyncLocaleContent,
|
|
31
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as SubtitleSyncLocaleContent,
|
|
32
|
-
de: async () => (await import('./i18n/de')).content as unknown as SubtitleSyncLocaleContent,
|
|
33
|
-
it: async () => (await import('./i18n/it')).content as unknown as SubtitleSyncLocaleContent,
|
|
34
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as SubtitleSyncLocaleContent,
|
|
35
|
-
id: async () => (await import('./i18n/id')).content as unknown as SubtitleSyncLocaleContent,
|
|
36
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as SubtitleSyncLocaleContent,
|
|
37
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as SubtitleSyncLocaleContent,
|
|
38
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as SubtitleSyncLocaleContent,
|
|
39
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as SubtitleSyncLocaleContent,
|
|
40
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as SubtitleSyncLocaleContent,
|
|
41
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as SubtitleSyncLocaleContent,
|
|
42
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as SubtitleSyncLocaleContent,
|
|
43
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as SubtitleSyncLocaleContent,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import { subtitleSync } from './entry';
|
|
2
|
+
export * from './entry';
|
|
48
3
|
export const SUBTITLE_SYNC_TOOL: ToolDefinition = {
|
|
49
4
|
entry: subtitleSync as unknown as AudiovisualToolEntry,
|
|
50
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface TimelapseUI {
|
|
4
|
+
title: string;
|
|
5
|
+
paramsTitle: string;
|
|
6
|
+
eventDuration: string;
|
|
7
|
+
hours: string;
|
|
8
|
+
minutes: string;
|
|
9
|
+
videoDuration: string;
|
|
10
|
+
seconds: string;
|
|
11
|
+
fps: string;
|
|
12
|
+
resultsTitle: string;
|
|
13
|
+
intervalLabel: string;
|
|
14
|
+
secondsUnit: string;
|
|
15
|
+
totalPhotos: string;
|
|
16
|
+
speed: string;
|
|
17
|
+
shutterSpeed: string;
|
|
18
|
+
storage: string;
|
|
19
|
+
rule180Info: string;
|
|
20
|
+
[key: string]: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type TimelapseLocaleContent = ToolLocaleContent<TimelapseUI>;
|
|
24
|
+
|
|
25
|
+
export const timelapseCalculator: AudiovisualToolEntry<TimelapseUI> = {
|
|
26
|
+
id: 'calculadora-timelapse',
|
|
27
|
+
icons: {
|
|
28
|
+
bg: 'mdi:camera-timer',
|
|
29
|
+
fg: 'mdi:clock-fast',
|
|
30
|
+
},
|
|
31
|
+
i18n: {
|
|
32
|
+
es: async () => (await import('./i18n/es')).content as unknown as TimelapseLocaleContent,
|
|
33
|
+
en: async () => (await import('./i18n/en')).content as unknown as TimelapseLocaleContent,
|
|
34
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as TimelapseLocaleContent,
|
|
35
|
+
de: async () => (await import('./i18n/de')).content as unknown as TimelapseLocaleContent,
|
|
36
|
+
it: async () => (await import('./i18n/it')).content as unknown as TimelapseLocaleContent,
|
|
37
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as TimelapseLocaleContent,
|
|
38
|
+
id: async () => (await import('./i18n/id')).content as unknown as TimelapseLocaleContent,
|
|
39
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as TimelapseLocaleContent,
|
|
40
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as TimelapseLocaleContent,
|
|
41
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as TimelapseLocaleContent,
|
|
42
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as TimelapseLocaleContent,
|
|
43
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as TimelapseLocaleContent,
|
|
44
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as TimelapseLocaleContent,
|
|
45
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as TimelapseLocaleContent,
|
|
46
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as TimelapseLocaleContent,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
@@ -1,53 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface TimelapseUI {
|
|
4
|
-
title: string;
|
|
5
|
-
paramsTitle: string;
|
|
6
|
-
eventDuration: string;
|
|
7
|
-
hours: string;
|
|
8
|
-
minutes: string;
|
|
9
|
-
videoDuration: string;
|
|
10
|
-
seconds: string;
|
|
11
|
-
fps: string;
|
|
12
|
-
resultsTitle: string;
|
|
13
|
-
intervalLabel: string;
|
|
14
|
-
secondsUnit: string;
|
|
15
|
-
totalPhotos: string;
|
|
16
|
-
speed: string;
|
|
17
|
-
shutterSpeed: string;
|
|
18
|
-
storage: string;
|
|
19
|
-
rule180Info: string;
|
|
20
|
-
[key: string]: string;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type TimelapseLocaleContent = ToolLocaleContent<TimelapseUI>;
|
|
24
|
-
|
|
25
|
-
export const timelapseCalculator: AudiovisualToolEntry<TimelapseUI> = {
|
|
26
|
-
id: 'calculadora-timelapse',
|
|
27
|
-
icons: {
|
|
28
|
-
bg: 'mdi:camera-timer',
|
|
29
|
-
fg: 'mdi:clock-fast',
|
|
30
|
-
},
|
|
31
|
-
i18n: {
|
|
32
|
-
es: async () => (await import('./i18n/es')).content as unknown as TimelapseLocaleContent,
|
|
33
|
-
en: async () => (await import('./i18n/en')).content as unknown as TimelapseLocaleContent,
|
|
34
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as TimelapseLocaleContent,
|
|
35
|
-
de: async () => (await import('./i18n/de')).content as unknown as TimelapseLocaleContent,
|
|
36
|
-
it: async () => (await import('./i18n/it')).content as unknown as TimelapseLocaleContent,
|
|
37
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as TimelapseLocaleContent,
|
|
38
|
-
id: async () => (await import('./i18n/id')).content as unknown as TimelapseLocaleContent,
|
|
39
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as TimelapseLocaleContent,
|
|
40
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as TimelapseLocaleContent,
|
|
41
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as TimelapseLocaleContent,
|
|
42
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as TimelapseLocaleContent,
|
|
43
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as TimelapseLocaleContent,
|
|
44
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as TimelapseLocaleContent,
|
|
45
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as TimelapseLocaleContent,
|
|
46
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as TimelapseLocaleContent,
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
import { timelapseCalculator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
51
3
|
export const TIMELAPSE_CALCULATOR_TOOL: ToolDefinition = {
|
|
52
4
|
entry: timelapseCalculator as unknown as AudiovisualToolEntry,
|
|
53
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface TvDistanceUI {
|
|
4
|
+
specTitle: string;
|
|
5
|
+
diagonalLabel: string;
|
|
6
|
+
resolutionLabel: string;
|
|
7
|
+
thxRecommendation: string;
|
|
8
|
+
thxDescription: string;
|
|
9
|
+
simulationBadge: string;
|
|
10
|
+
tvWidthLabel: string;
|
|
11
|
+
userLocationLabel: string;
|
|
12
|
+
minLimitLabel: string;
|
|
13
|
+
optimalLimitLabel: string;
|
|
14
|
+
maxLimitLabel: string;
|
|
15
|
+
unitMeters: string;
|
|
16
|
+
unitCm: string;
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type TvDistanceLocaleContent = ToolLocaleContent<TvDistanceUI>;
|
|
21
|
+
|
|
22
|
+
export const tvDistance: AudiovisualToolEntry<TvDistanceUI> = {
|
|
23
|
+
id: 'distancia-tv',
|
|
24
|
+
icons: {
|
|
25
|
+
bg: 'mdi:television',
|
|
26
|
+
fg: 'mdi:ruler',
|
|
27
|
+
},
|
|
28
|
+
i18n: {
|
|
29
|
+
es: async () => (await import('./i18n/es')).content as unknown as TvDistanceLocaleContent,
|
|
30
|
+
en: async () => (await import('./i18n/en')).content as unknown as TvDistanceLocaleContent,
|
|
31
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as TvDistanceLocaleContent,
|
|
32
|
+
de: async () => (await import('./i18n/de')).content as unknown as TvDistanceLocaleContent,
|
|
33
|
+
it: async () => (await import('./i18n/it')).content as unknown as TvDistanceLocaleContent,
|
|
34
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as TvDistanceLocaleContent,
|
|
35
|
+
id: async () => (await import('./i18n/id')).content as unknown as TvDistanceLocaleContent,
|
|
36
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as TvDistanceLocaleContent,
|
|
37
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as TvDistanceLocaleContent,
|
|
38
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as TvDistanceLocaleContent,
|
|
39
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as TvDistanceLocaleContent,
|
|
40
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as TvDistanceLocaleContent,
|
|
41
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as TvDistanceLocaleContent,
|
|
42
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as TvDistanceLocaleContent,
|
|
43
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as TvDistanceLocaleContent,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -1,50 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface TvDistanceUI {
|
|
4
|
-
specTitle: string;
|
|
5
|
-
diagonalLabel: string;
|
|
6
|
-
resolutionLabel: string;
|
|
7
|
-
thxRecommendation: string;
|
|
8
|
-
thxDescription: string;
|
|
9
|
-
simulationBadge: string;
|
|
10
|
-
tvWidthLabel: string;
|
|
11
|
-
userLocationLabel: string;
|
|
12
|
-
minLimitLabel: string;
|
|
13
|
-
optimalLimitLabel: string;
|
|
14
|
-
maxLimitLabel: string;
|
|
15
|
-
unitMeters: string;
|
|
16
|
-
unitCm: string;
|
|
17
|
-
[key: string]: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type TvDistanceLocaleContent = ToolLocaleContent<TvDistanceUI>;
|
|
21
|
-
|
|
22
|
-
export const tvDistance: AudiovisualToolEntry<TvDistanceUI> = {
|
|
23
|
-
id: 'distancia-tv',
|
|
24
|
-
icons: {
|
|
25
|
-
bg: 'mdi:television',
|
|
26
|
-
fg: 'mdi:ruler',
|
|
27
|
-
},
|
|
28
|
-
i18n: {
|
|
29
|
-
es: async () => (await import('./i18n/es')).content as unknown as TvDistanceLocaleContent,
|
|
30
|
-
en: async () => (await import('./i18n/en')).content as unknown as TvDistanceLocaleContent,
|
|
31
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as TvDistanceLocaleContent,
|
|
32
|
-
de: async () => (await import('./i18n/de')).content as unknown as TvDistanceLocaleContent,
|
|
33
|
-
it: async () => (await import('./i18n/it')).content as unknown as TvDistanceLocaleContent,
|
|
34
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as TvDistanceLocaleContent,
|
|
35
|
-
id: async () => (await import('./i18n/id')).content as unknown as TvDistanceLocaleContent,
|
|
36
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as TvDistanceLocaleContent,
|
|
37
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as TvDistanceLocaleContent,
|
|
38
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as TvDistanceLocaleContent,
|
|
39
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as TvDistanceLocaleContent,
|
|
40
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as TvDistanceLocaleContent,
|
|
41
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as TvDistanceLocaleContent,
|
|
42
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as TvDistanceLocaleContent,
|
|
43
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as TvDistanceLocaleContent,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import { tvDistance } from './entry';
|
|
2
|
+
export * from './entry';
|
|
48
3
|
export const TV_DISTANCE_TOOL: ToolDefinition = {
|
|
49
4
|
entry: tvDistance as unknown as AudiovisualToolEntry,
|
|
50
5
|
Component: () => import('./component.astro'),
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface VideoFrameExtractorUI {
|
|
4
|
+
uploadTitle: string;
|
|
5
|
+
uploadFormats: string;
|
|
6
|
+
privacyNote: string;
|
|
7
|
+
playLabel: string;
|
|
8
|
+
pauseLabel: string;
|
|
9
|
+
captureBtn: string;
|
|
10
|
+
prevFrame: string;
|
|
11
|
+
nextFrame: string;
|
|
12
|
+
batchTitle: string;
|
|
13
|
+
batchEvery: string;
|
|
14
|
+
batchStart: string;
|
|
15
|
+
batchProcessing: string;
|
|
16
|
+
galleryTitle: string;
|
|
17
|
+
galleryEmpty: string;
|
|
18
|
+
downloadAll: string;
|
|
19
|
+
downloadHD: string;
|
|
20
|
+
resetBtn: string;
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type VideoFrameExtractorLocaleContent = ToolLocaleContent<VideoFrameExtractorUI>;
|
|
25
|
+
|
|
26
|
+
export const videoFrameExtractor: AudiovisualToolEntry<VideoFrameExtractorUI> = {
|
|
27
|
+
id: 'extractor-fotogramas-video',
|
|
28
|
+
icons: {
|
|
29
|
+
bg: 'mdi:video-vintage',
|
|
30
|
+
fg: 'mdi:camera-plus',
|
|
31
|
+
},
|
|
32
|
+
i18n: {
|
|
33
|
+
es: async () => (await import('./i18n/es')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
34
|
+
en: async () => (await import('./i18n/en')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
35
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
36
|
+
de: async () => (await import('./i18n/de')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
37
|
+
it: async () => (await import('./i18n/it')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
38
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
39
|
+
id: async () => (await import('./i18n/id')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
40
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
41
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
42
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
43
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
44
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
45
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
46
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
47
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
@@ -1,54 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface VideoFrameExtractorUI {
|
|
4
|
-
uploadTitle: string;
|
|
5
|
-
uploadFormats: string;
|
|
6
|
-
privacyNote: string;
|
|
7
|
-
playLabel: string;
|
|
8
|
-
pauseLabel: string;
|
|
9
|
-
captureBtn: string;
|
|
10
|
-
prevFrame: string;
|
|
11
|
-
nextFrame: string;
|
|
12
|
-
batchTitle: string;
|
|
13
|
-
batchEvery: string;
|
|
14
|
-
batchStart: string;
|
|
15
|
-
batchProcessing: string;
|
|
16
|
-
galleryTitle: string;
|
|
17
|
-
galleryEmpty: string;
|
|
18
|
-
downloadAll: string;
|
|
19
|
-
downloadHD: string;
|
|
20
|
-
resetBtn: string;
|
|
21
|
-
[key: string]: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type VideoFrameExtractorLocaleContent = ToolLocaleContent<VideoFrameExtractorUI>;
|
|
25
|
-
|
|
26
|
-
export const videoFrameExtractor: AudiovisualToolEntry<VideoFrameExtractorUI> = {
|
|
27
|
-
id: 'extractor-fotogramas-video',
|
|
28
|
-
icons: {
|
|
29
|
-
bg: 'mdi:video-vintage',
|
|
30
|
-
fg: 'mdi:camera-plus',
|
|
31
|
-
},
|
|
32
|
-
i18n: {
|
|
33
|
-
es: async () => (await import('./i18n/es')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
34
|
-
en: async () => (await import('./i18n/en')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
35
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
36
|
-
de: async () => (await import('./i18n/de')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
37
|
-
it: async () => (await import('./i18n/it')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
38
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
39
|
-
id: async () => (await import('./i18n/id')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
40
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
41
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
42
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
43
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
44
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
45
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
46
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
47
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as VideoFrameExtractorLocaleContent,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
|
|
1
|
+
import { videoFrameExtractor } from './entry';
|
|
2
|
+
export * from './entry';
|
|
52
3
|
export const VIDEO_FRAME_EXTRACTOR_TOOL: ToolDefinition = {
|
|
53
4
|
entry: videoFrameExtractor as unknown as AudiovisualToolEntry,
|
|
54
5
|
Component: () => import('./component.astro'),
|
package/src/tools.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { ALL_ENTRIES } from './entries';
|
|
1
2
|
import type { ToolDefinition } from './types';
|
|
2
3
|
import { TIMELAPSE_CALCULATOR_TOOL } from './tool/timelapseCalculator';
|
|
3
4
|
import { EXIF_CLEANER_TOOL } from './tool/exifCleaner';
|
|
@@ -24,4 +25,3 @@ export const ALL_TOOLS: ToolDefinition[] = [
|
|
|
24
25
|
];
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
export const ALL_ENTRIES = ALL_TOOLS.map(t => t.entry);
|