@jjlmoya/utils-audiovisual 1.12.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/index.ts +1 -1
- package/src/pages/[locale]/[slug].astro +3 -4
- package/src/tool/chromaticLens/entry.ts +39 -0
- package/src/tool/chromaticLens/index.ts +5 -48
- package/src/tool/collageMaker/entry.ts +48 -0
- package/src/tool/collageMaker/index.ts +5 -57
- package/src/tool/exifCleaner/entry.ts +53 -0
- package/src/tool/exifCleaner/index.ts +5 -62
- package/src/tool/imageCompressor/entry.ts +56 -0
- package/src/tool/imageCompressor/index.ts +5 -65
- package/src/tool/printQualityCalculator/entry.ts +66 -0
- package/src/tool/printQualityCalculator/index.ts +5 -75
- package/src/tool/privacyBlur/entry.ts +45 -0
- package/src/tool/privacyBlur/index.ts +5 -54
- package/src/tool/subtitleSync/entry.ts +45 -0
- package/src/tool/subtitleSync/index.ts +5 -54
- package/src/tool/timelapseCalculator/entry.ts +48 -0
- package/src/tool/timelapseCalculator/index.ts +5 -57
- package/src/tool/tvDistance/entry.ts +45 -0
- package/src/tool/tvDistance/index.ts +5 -54
- package/src/tool/videoFrameExtractor/entry.ts +49 -0
- package/src/tool/videoFrameExtractor/index.ts +5 -58
- 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];
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { audiovisualCategory } from './category';
|
|
2
2
|
export { audiovisualCategory };
|
|
3
|
-
export
|
|
3
|
+
export const audiovisualCategorySEO = () => import('./category/seo.astro').then((m) => m.default);
|
|
4
4
|
export const templateCategory = audiovisualCategory;
|
|
5
5
|
|
|
6
6
|
export * from './tool/timelapseCalculator';
|
|
@@ -14,7 +14,8 @@ import type { UtilitySEOContent } from "@jjlmoya/utils-shared";
|
|
|
14
14
|
export async function getStaticPaths() {
|
|
15
15
|
const paths = [];
|
|
16
16
|
|
|
17
|
-
for (const { entry, Component } of ALL_TOOLS) {
|
|
17
|
+
for (const { entry, Component: lazyComp } of ALL_TOOLS) {
|
|
18
|
+
const { default: Component } = await lazyComp();
|
|
18
19
|
const localeEntries = Object.entries(entry.i18n) as [
|
|
19
20
|
KnownLocale,
|
|
20
21
|
() => Promise<ToolLocaleContent>,
|
|
@@ -52,8 +53,6 @@ export async function getStaticPaths() {
|
|
|
52
53
|
return paths;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
type ToolComponent = (props: { ui: Record<string, string> }) => unknown;
|
|
56
|
-
|
|
57
56
|
interface NavItem {
|
|
58
57
|
id: string;
|
|
59
58
|
title: string;
|
|
@@ -62,7 +61,7 @@ interface NavItem {
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
interface Props {
|
|
65
|
-
Component:
|
|
64
|
+
Component: unknown;
|
|
66
65
|
locale: KnownLocale;
|
|
67
66
|
content: ToolLocaleContent;
|
|
68
67
|
localeUrls: Partial<Record<KnownLocale, string>>;
|
|
@@ -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,51 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import ChromaticLensSEO from './seo.astro';
|
|
4
|
-
import ChromaticLensBibliography from './bibliography.astro';
|
|
5
|
-
|
|
6
|
-
export interface ChromaticLensUI {
|
|
7
|
-
dropTitle: string;
|
|
8
|
-
dropSubtitle: string;
|
|
9
|
-
processingLabel: string;
|
|
10
|
-
paletteTitle: string;
|
|
11
|
-
copyLabel: string;
|
|
12
|
-
copiedLabel: string;
|
|
13
|
-
colorCountLabel: string;
|
|
14
|
-
[key: string]: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export type ChromaticLensLocaleContent = ToolLocaleContent<ChromaticLensUI>;
|
|
18
|
-
|
|
19
|
-
export const chromaticLens: AudiovisualToolEntry<ChromaticLensUI> = {
|
|
20
|
-
id: 'lente-cromatica',
|
|
21
|
-
icons: {
|
|
22
|
-
bg: 'mdi:palette-swatch',
|
|
23
|
-
fg: 'mdi:eye-outline',
|
|
24
|
-
},
|
|
25
|
-
i18n: {
|
|
26
|
-
es: async () => (await import('./i18n/es')).content as unknown as ChromaticLensLocaleContent,
|
|
27
|
-
en: async () => (await import('./i18n/en')).content as unknown as ChromaticLensLocaleContent,
|
|
28
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ChromaticLensLocaleContent,
|
|
29
|
-
de: async () => (await import('./i18n/de')).content as unknown as ChromaticLensLocaleContent,
|
|
30
|
-
it: async () => (await import('./i18n/it')).content as unknown as ChromaticLensLocaleContent,
|
|
31
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ChromaticLensLocaleContent,
|
|
32
|
-
id: async () => (await import('./i18n/id')).content as unknown as ChromaticLensLocaleContent,
|
|
33
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ChromaticLensLocaleContent,
|
|
34
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ChromaticLensLocaleContent,
|
|
35
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ChromaticLensLocaleContent,
|
|
36
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ChromaticLensLocaleContent,
|
|
37
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ChromaticLensLocaleContent,
|
|
38
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ChromaticLensLocaleContent,
|
|
39
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ChromaticLensLocaleContent,
|
|
40
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ChromaticLensLocaleContent,
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export { ChromaticLens, ChromaticLensSEO, ChromaticLensBibliography };
|
|
45
|
-
|
|
1
|
+
import { chromaticLens } from './entry';
|
|
2
|
+
export * from './entry';
|
|
46
3
|
export const CHROMATIC_LENS_TOOL: ToolDefinition = {
|
|
47
4
|
entry: chromaticLens as unknown as AudiovisualToolEntry,
|
|
48
|
-
Component:
|
|
49
|
-
SEOComponent:
|
|
50
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
51
8
|
};
|
|
@@ -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,60 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import CollageMakerSEO from './seo.astro';
|
|
4
|
-
import CollageMakerBibliography from './bibliography.astro';
|
|
5
|
-
|
|
6
|
-
export interface CollageMakerUI {
|
|
7
|
-
dropTitle: string;
|
|
8
|
-
dropSub: string;
|
|
9
|
-
dropLink: string;
|
|
10
|
-
imgsLoaded: string;
|
|
11
|
-
layoutLabel: string;
|
|
12
|
-
settingsLabel: string;
|
|
13
|
-
borderLabel: string;
|
|
14
|
-
borderColorLabel: string;
|
|
15
|
-
bgColorLabel: string;
|
|
16
|
-
downloadBtn: string;
|
|
17
|
-
previewTitle: string;
|
|
18
|
-
needsImgs: string;
|
|
19
|
-
errorMin: string;
|
|
20
|
-
errorMax: string;
|
|
21
|
-
errorLoad: string;
|
|
22
|
-
[key: string]: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type CollageMakerLocaleContent = ToolLocaleContent<CollageMakerUI>;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export const collageMaker: AudiovisualToolEntry<CollageMakerUI> = {
|
|
29
|
-
id: 'creador-collage-fotos',
|
|
30
|
-
icons: {
|
|
31
|
-
bg: 'mdi:collage',
|
|
32
|
-
fg: 'mdi:palette-outline',
|
|
33
|
-
},
|
|
34
|
-
i18n: {
|
|
35
|
-
es: async () => (await import('./i18n/es')).content as unknown as CollageMakerLocaleContent,
|
|
36
|
-
en: async () => (await import('./i18n/en')).content as unknown as CollageMakerLocaleContent,
|
|
37
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as CollageMakerLocaleContent,
|
|
38
|
-
de: async () => (await import('./i18n/de')).content as unknown as CollageMakerLocaleContent,
|
|
39
|
-
it: async () => (await import('./i18n/it')).content as unknown as CollageMakerLocaleContent,
|
|
40
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as CollageMakerLocaleContent,
|
|
41
|
-
id: async () => (await import('./i18n/id')).content as unknown as CollageMakerLocaleContent,
|
|
42
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as CollageMakerLocaleContent,
|
|
43
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as CollageMakerLocaleContent,
|
|
44
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as CollageMakerLocaleContent,
|
|
45
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as CollageMakerLocaleContent,
|
|
46
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as CollageMakerLocaleContent,
|
|
47
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as CollageMakerLocaleContent,
|
|
48
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as CollageMakerLocaleContent,
|
|
49
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as CollageMakerLocaleContent,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export { CollageMaker, CollageMakerSEO, CollageMakerBibliography };
|
|
54
|
-
|
|
1
|
+
import { collageMaker } from './entry';
|
|
2
|
+
export * from './entry';
|
|
55
3
|
export const COLLAGE_MAKER_TOOL: ToolDefinition = {
|
|
56
4
|
entry: collageMaker as unknown as AudiovisualToolEntry,
|
|
57
|
-
Component:
|
|
58
|
-
SEOComponent:
|
|
59
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
60
8
|
};
|
|
@@ -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,65 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import ExifCleanerSEO from './seo.astro';
|
|
4
|
-
import ExifCleanerBibliography from './bibliography.astro';
|
|
5
|
-
|
|
6
|
-
export interface ExifCleanerUI {
|
|
7
|
-
dropTitle: string;
|
|
8
|
-
dropSubtitle: string;
|
|
9
|
-
dropLocalInfo: string;
|
|
10
|
-
selectButton: string;
|
|
11
|
-
processingText: string;
|
|
12
|
-
analysisCompleted: string;
|
|
13
|
-
downloadButton: string;
|
|
14
|
-
resetButton: string;
|
|
15
|
-
privacyRiskTitle: string;
|
|
16
|
-
gpsLabel: string;
|
|
17
|
-
gpsDetected: string;
|
|
18
|
-
gpsNotFound: string;
|
|
19
|
-
cameraLabel: string;
|
|
20
|
-
softwareLabel: string;
|
|
21
|
-
dateLabel: string;
|
|
22
|
-
otherTechnicalDetails: string;
|
|
23
|
-
noMetadataFound: string;
|
|
24
|
-
alreadyCleanInfo: string;
|
|
25
|
-
previewLabel: string;
|
|
26
|
-
faqTitle: string;
|
|
27
|
-
bibliographyTitle: string;
|
|
28
|
-
[key: string]: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type ExifCleanerLocaleContent = ToolLocaleContent<ExifCleanerUI>;
|
|
32
|
-
|
|
33
|
-
export const exifCleaner: AudiovisualToolEntry<ExifCleanerUI> = {
|
|
34
|
-
id: 'limpiador-exif',
|
|
35
|
-
icons: {
|
|
36
|
-
bg: 'mdi:camera-off',
|
|
37
|
-
fg: 'mdi:shield-check',
|
|
38
|
-
},
|
|
39
|
-
i18n: {
|
|
40
|
-
es: async () => (await import('./i18n/es')).content as unknown as ExifCleanerLocaleContent,
|
|
41
|
-
en: async () => (await import('./i18n/en')).content as unknown as ExifCleanerLocaleContent,
|
|
42
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ExifCleanerLocaleContent,
|
|
43
|
-
de: async () => (await import('./i18n/de')).content as unknown as ExifCleanerLocaleContent,
|
|
44
|
-
it: async () => (await import('./i18n/it')).content as unknown as ExifCleanerLocaleContent,
|
|
45
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ExifCleanerLocaleContent,
|
|
46
|
-
id: async () => (await import('./i18n/id')).content as unknown as ExifCleanerLocaleContent,
|
|
47
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ExifCleanerLocaleContent,
|
|
48
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ExifCleanerLocaleContent,
|
|
49
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ExifCleanerLocaleContent,
|
|
50
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ExifCleanerLocaleContent,
|
|
51
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ExifCleanerLocaleContent,
|
|
52
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ExifCleanerLocaleContent,
|
|
53
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ExifCleanerLocaleContent,
|
|
54
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ExifCleanerLocaleContent,
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export { ExifCleaner, ExifCleanerSEO, ExifCleanerBibliography };
|
|
59
|
-
|
|
1
|
+
import { exifCleaner } from './entry';
|
|
2
|
+
export * from './entry';
|
|
60
3
|
export const EXIF_CLEANER_TOOL: ToolDefinition = {
|
|
61
4
|
entry: exifCleaner as unknown as AudiovisualToolEntry,
|
|
62
|
-
Component:
|
|
63
|
-
SEOComponent:
|
|
64
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
65
8
|
};
|
|
@@ -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,68 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import ImageCompressorSEO from './seo.astro';
|
|
4
|
-
import ImageCompressorBibliography from './bibliography.astro';
|
|
5
|
-
|
|
6
|
-
export interface ImageCompressorUI {
|
|
7
|
-
dropTitle: string;
|
|
8
|
-
dropSubtitle: string;
|
|
9
|
-
settingsTitle: string;
|
|
10
|
-
qualityLabel: string;
|
|
11
|
-
widthLabel: string;
|
|
12
|
-
convertToWebpLabel: string;
|
|
13
|
-
compressionLabel: string;
|
|
14
|
-
compressBtn: string;
|
|
15
|
-
processingLabel: string;
|
|
16
|
-
resultsTitle: string;
|
|
17
|
-
originalSizeLabel: string;
|
|
18
|
-
newSizeLabel: string;
|
|
19
|
-
reductionLabel: string;
|
|
20
|
-
downloadBtn: string;
|
|
21
|
-
addMoreBtn: string;
|
|
22
|
-
browseFilesBtn: string;
|
|
23
|
-
processedFilesTitle: string;
|
|
24
|
-
downloadAllBtn: string;
|
|
25
|
-
adjustThisImage: string;
|
|
26
|
-
downloadTitle: string;
|
|
27
|
-
maxWidthLabel: string;
|
|
28
|
-
closeBtn: string;
|
|
29
|
-
totalSavingsLabel: string;
|
|
30
|
-
noSavings: string;
|
|
31
|
-
[key: string]: string;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type ImageCompressorLocaleContent = ToolLocaleContent<ImageCompressorUI>;
|
|
35
|
-
|
|
36
|
-
export const imageCompressor: AudiovisualToolEntry<ImageCompressorUI> = {
|
|
37
|
-
id: 'compresor-imagenes',
|
|
38
|
-
icons: {
|
|
39
|
-
bg: 'mdi:image-size-select-small',
|
|
40
|
-
fg: 'mdi:file-image-outline',
|
|
41
|
-
},
|
|
42
|
-
i18n: {
|
|
43
|
-
es: async () => (await import('./i18n/es')).content as unknown as ImageCompressorLocaleContent,
|
|
44
|
-
en: async () => (await import('./i18n/en')).content as unknown as ImageCompressorLocaleContent,
|
|
45
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as ImageCompressorLocaleContent,
|
|
46
|
-
de: async () => (await import('./i18n/de')).content as unknown as ImageCompressorLocaleContent,
|
|
47
|
-
it: async () => (await import('./i18n/it')).content as unknown as ImageCompressorLocaleContent,
|
|
48
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as ImageCompressorLocaleContent,
|
|
49
|
-
id: async () => (await import('./i18n/id')).content as unknown as ImageCompressorLocaleContent,
|
|
50
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as ImageCompressorLocaleContent,
|
|
51
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as ImageCompressorLocaleContent,
|
|
52
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as ImageCompressorLocaleContent,
|
|
53
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as ImageCompressorLocaleContent,
|
|
54
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as ImageCompressorLocaleContent,
|
|
55
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as ImageCompressorLocaleContent,
|
|
56
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as ImageCompressorLocaleContent,
|
|
57
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as ImageCompressorLocaleContent,
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export { ImageCompressor, ImageCompressorSEO, ImageCompressorBibliography };
|
|
62
|
-
|
|
1
|
+
import { imageCompressor } from './entry';
|
|
2
|
+
export * from './entry';
|
|
63
3
|
export const IMAGE_COMPRESSOR_TOOL: ToolDefinition = {
|
|
64
4
|
entry: imageCompressor as unknown as AudiovisualToolEntry,
|
|
65
|
-
Component:
|
|
66
|
-
SEOComponent:
|
|
67
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
68
8
|
};
|
|
@@ -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
|
+
};
|