@jjlmoya/utils-audiovisual 1.2.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 +60 -0
- package/src/category/i18n/en.ts +198 -0
- package/src/category/i18n/es.ts +198 -0
- package/src/category/i18n/fr.ts +198 -0
- package/src/category/index.ts +17 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +4 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +32 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/chromaticLens/bibliography.astro +17 -0
- package/src/tool/chromaticLens/component.astro +178 -0
- package/src/tool/chromaticLens/i18n/en.ts +246 -0
- package/src/tool/chromaticLens/i18n/es.ts +244 -0
- package/src/tool/chromaticLens/i18n/fr.ts +244 -0
- package/src/tool/chromaticLens/index.ts +43 -0
- package/src/tool/chromaticLens/logic.ts +87 -0
- package/src/tool/chromaticLens/seo.astro +15 -0
- package/src/tool/chromaticLens/style.css +308 -0
- package/src/tool/chromaticLens/ui.ts +109 -0
- package/src/tool/collageMaker/bibliography.astro +17 -0
- package/src/tool/collageMaker/component.astro +302 -0
- package/src/tool/collageMaker/i18n/en.ts +233 -0
- package/src/tool/collageMaker/i18n/es.ts +231 -0
- package/src/tool/collageMaker/i18n/fr.ts +231 -0
- package/src/tool/collageMaker/index.ts +51 -0
- package/src/tool/collageMaker/logic.ts +134 -0
- package/src/tool/collageMaker/seo.astro +15 -0
- package/src/tool/collageMaker/style.css +386 -0
- package/src/tool/exifCleaner/bibliography.astro +18 -0
- package/src/tool/exifCleaner/component.astro +162 -0
- package/src/tool/exifCleaner/i18n/en.ts +277 -0
- package/src/tool/exifCleaner/i18n/es.ts +277 -0
- package/src/tool/exifCleaner/i18n/fr.ts +277 -0
- package/src/tool/exifCleaner/index.ts +57 -0
- package/src/tool/exifCleaner/logic.ts +135 -0
- package/src/tool/exifCleaner/seo.astro +18 -0
- package/src/tool/exifCleaner/style.css +289 -0
- package/src/tool/exifCleaner/ui.ts +117 -0
- package/src/tool/imageCompressor/bibliography.astro +17 -0
- package/src/tool/imageCompressor/component.astro +262 -0
- package/src/tool/imageCompressor/i18n/en.ts +232 -0
- package/src/tool/imageCompressor/i18n/es.ts +230 -0
- package/src/tool/imageCompressor/i18n/fr.ts +230 -0
- package/src/tool/imageCompressor/index.ts +50 -0
- package/src/tool/imageCompressor/logic.ts +79 -0
- package/src/tool/imageCompressor/seo.astro +15 -0
- package/src/tool/imageCompressor/style.css +503 -0
- package/src/tool/printQualityCalculator/bibliography.astro +18 -0
- package/src/tool/printQualityCalculator/component.astro +318 -0
- package/src/tool/printQualityCalculator/i18n/en.ts +247 -0
- package/src/tool/printQualityCalculator/i18n/es.ts +245 -0
- package/src/tool/printQualityCalculator/i18n/fr.ts +245 -0
- package/src/tool/printQualityCalculator/index.ts +56 -0
- package/src/tool/printQualityCalculator/logic.ts +53 -0
- package/src/tool/printQualityCalculator/seo.astro +18 -0
- package/src/tool/printQualityCalculator/style.css +491 -0
- package/src/tool/printQualityCalculator/ui.ts +122 -0
- package/src/tool/privacyBlur/bibliography.astro +17 -0
- package/src/tool/privacyBlur/component.astro +230 -0
- package/src/tool/privacyBlur/i18n/en.ts +238 -0
- package/src/tool/privacyBlur/i18n/es.ts +236 -0
- package/src/tool/privacyBlur/i18n/fr.ts +236 -0
- package/src/tool/privacyBlur/index.ts +49 -0
- package/src/tool/privacyBlur/logic.ts +249 -0
- package/src/tool/privacyBlur/seo.astro +15 -0
- package/src/tool/privacyBlur/style.css +332 -0
- package/src/tool/privacyBlur/ui.ts +124 -0
- package/src/tool/subtitleSync/bibliography.astro +17 -0
- package/src/tool/subtitleSync/component.astro +187 -0
- package/src/tool/subtitleSync/i18n/en.ts +241 -0
- package/src/tool/subtitleSync/i18n/es.ts +241 -0
- package/src/tool/subtitleSync/i18n/fr.ts +241 -0
- package/src/tool/subtitleSync/index.ts +49 -0
- package/src/tool/subtitleSync/logic.ts +91 -0
- package/src/tool/subtitleSync/seo.astro +15 -0
- package/src/tool/subtitleSync/style.css +325 -0
- package/src/tool/subtitleSync/ui.ts +152 -0
- package/src/tool/timelapseCalculator/bibliography.astro +15 -0
- package/src/tool/timelapseCalculator/component.astro +148 -0
- package/src/tool/timelapseCalculator/i18n/en.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/es.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +52 -0
- package/src/tool/timelapseCalculator/logic.ts +46 -0
- package/src/tool/timelapseCalculator/seo.astro +18 -0
- package/src/tool/timelapseCalculator/style.css +285 -0
- package/src/tool/tvDistance/bibliography.astro +17 -0
- package/src/tool/tvDistance/component.astro +178 -0
- package/src/tool/tvDistance/i18n/en.ts +223 -0
- package/src/tool/tvDistance/i18n/es.ts +223 -0
- package/src/tool/tvDistance/i18n/fr.ts +223 -0
- package/src/tool/tvDistance/index.ts +49 -0
- package/src/tool/tvDistance/logic.ts +47 -0
- package/src/tool/tvDistance/seo.astro +15 -0
- package/src/tool/tvDistance/style.css +435 -0
- package/src/tool/tvDistance/ui.ts +66 -0
- package/src/tool/videoFrameExtractor/bibliography.astro +17 -0
- package/src/tool/videoFrameExtractor/component.astro +285 -0
- package/src/tool/videoFrameExtractor/i18n/en.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/es.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/fr.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +53 -0
- package/src/tool/videoFrameExtractor/logic.ts +49 -0
- package/src/tool/videoFrameExtractor/seo.astro +15 -0
- package/src/tool/videoFrameExtractor/style.css +426 -0
- package/src/tool/videoFrameExtractor/ui.ts +179 -0
- package/src/tools.ts +25 -0
- package/src/types.ts +72 -0
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jjlmoya/utils-audiovisual",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
|
+
"types": "./src/index.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./src/index.ts",
|
|
9
|
+
"./data": "./src/data.ts"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"src"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"dev": "astro dev",
|
|
19
|
+
"start": "astro dev",
|
|
20
|
+
"build": "astro build",
|
|
21
|
+
"preview": "astro preview",
|
|
22
|
+
"astro": "astro",
|
|
23
|
+
"lint": "eslint src/ --max-warnings 0 && stylelint \"src/**/*.{css,astro}\"",
|
|
24
|
+
"check": "astro check",
|
|
25
|
+
"type-check": "astro check",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"preversion": "npm run lint && npm run test",
|
|
28
|
+
"postversion": "git push && git push --tags",
|
|
29
|
+
"patch": "npm version patch",
|
|
30
|
+
"minor": "npm version minor",
|
|
31
|
+
"major": "npm version major"
|
|
32
|
+
},
|
|
33
|
+
"lint-staged": {
|
|
34
|
+
"*.{ts,tsx,astro}": [
|
|
35
|
+
"eslint --fix"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@iconify-json/mdi": "^1.2.3",
|
|
40
|
+
"@jjlmoya/utils-shared": "1.0.2",
|
|
41
|
+
"astro": "^6.1.2",
|
|
42
|
+
"astro-icon": "^1.1.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@astrojs/check": "^0.9.8",
|
|
46
|
+
"eslint": "^9.39.4",
|
|
47
|
+
"eslint-plugin-astro": "^1.6.0",
|
|
48
|
+
"eslint-plugin-no-comments": "^1.1.10",
|
|
49
|
+
"husky": "^9.1.7",
|
|
50
|
+
"lint-staged": "^16.4.0",
|
|
51
|
+
"postcss-html": "^1.8.1",
|
|
52
|
+
"schema-dts": "^1.1.2",
|
|
53
|
+
"stylelint": "^17.6.0",
|
|
54
|
+
"stylelint-config-standard": "^40.0.0",
|
|
55
|
+
"stylelint-declaration-strict-value": "^1.11.1",
|
|
56
|
+
"typescript": "^5.4.0",
|
|
57
|
+
"typescript-eslint": "^8.58.0",
|
|
58
|
+
"vitest": "^4.1.2"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'audiovisual-photography-tools-professional-calculators',
|
|
5
|
+
title: 'Audiovisual and Photography Tools',
|
|
6
|
+
description: 'Professional tools and calculators for filmmakers, photographers, and digital audiovisual content creators.',
|
|
7
|
+
seo: [
|
|
8
|
+
{
|
|
9
|
+
type: 'summary',
|
|
10
|
+
title: 'Professional Audiovisual Tools',
|
|
11
|
+
items: [
|
|
12
|
+
'Smart calculators for timelapses, effects, and composition.',
|
|
13
|
+
'Privacy tools to clean EXIF metadata.',
|
|
14
|
+
'Subtitle synchronization and timing editing.',
|
|
15
|
+
'Resolution analysis, print quality, and optimal viewing distance.'
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'title',
|
|
20
|
+
text: 'Professional Toolbox for Audiovisual Production',
|
|
21
|
+
level: 2,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'paragraph',
|
|
25
|
+
html: 'Our comprehensive suite of utilities solves the most common technical challenges in every stage of audiovisual production. From precise interval calculations for cinematic timelapses to privacy protection through EXIF metadata cleaning in your multimedia files.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'stats',
|
|
29
|
+
items: [
|
|
30
|
+
{
|
|
31
|
+
value: '12+',
|
|
32
|
+
label: 'Specialized tools',
|
|
33
|
+
icon: 'mdi:cog'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: '100%',
|
|
37
|
+
label: 'Precise calculations',
|
|
38
|
+
icon: 'mdi:chart-line'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
value: '0%',
|
|
42
|
+
label: 'Data stored on server',
|
|
43
|
+
icon: 'mdi:shield-check'
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
columns: 3
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'title',
|
|
50
|
+
text: 'Tool Categories',
|
|
51
|
+
level: 3,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'comparative',
|
|
55
|
+
items: [
|
|
56
|
+
{
|
|
57
|
+
title: 'Timelapse and Cinematic',
|
|
58
|
+
description: 'Calculate intervals, total duration, and frame rates for your cinematic shots.',
|
|
59
|
+
icon: 'mdi:film',
|
|
60
|
+
points: [
|
|
61
|
+
'Required frame calculation',
|
|
62
|
+
'Duration in seconds/minutes',
|
|
63
|
+
'Variable playback speed'
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: 'Privacy and Metadata',
|
|
68
|
+
description: 'Protect your privacy by removing EXIF data and sensitive metadata from your files.',
|
|
69
|
+
icon: 'mdi:lock',
|
|
70
|
+
points: [
|
|
71
|
+
'EXIF data analysis',
|
|
72
|
+
'Location metadata cleaning',
|
|
73
|
+
'Device information removal'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
title: 'Subtitle Editing',
|
|
78
|
+
description: 'Synchronize, adjust, and edit subtitles with millisecond precision.',
|
|
79
|
+
icon: 'mdi:text',
|
|
80
|
+
points: [
|
|
81
|
+
'Real-time synchronization',
|
|
82
|
+
'In/out time editing',
|
|
83
|
+
'Global delay adjustment'
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: 'Image Analysis',
|
|
88
|
+
description: 'Calculate technical parameters for resolution, printing, and viewing distance.',
|
|
89
|
+
icon: 'mdi:image',
|
|
90
|
+
points: [
|
|
91
|
+
'DPI and resolution calculation',
|
|
92
|
+
'Recommended viewing distance',
|
|
93
|
+
'Print quality analysis'
|
|
94
|
+
],
|
|
95
|
+
highlight: true
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
columns: 2
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Why Choose Our Tools',
|
|
103
|
+
level: 3,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'proscons',
|
|
107
|
+
items: [
|
|
108
|
+
{
|
|
109
|
+
pro: '100% browser-based processing - your data is never uploaded to servers',
|
|
110
|
+
con: 'Requires a modern browser with JavaScript support'
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
pro: 'Mathematical precision in all audiovisual calculations',
|
|
114
|
+
con: 'Very specific cases may require manual validation'
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
pro: 'Intuitive interface designed for industry professionals',
|
|
118
|
+
con: 'Best experience on desktop/tablet screens'
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
pro: 'Completely free tools with no usage limits',
|
|
122
|
+
con: 'No dedicated premium support (community available)'
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
proTitle: 'Advantages',
|
|
126
|
+
conTitle: 'Considerations'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Quick Start Guide',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'list',
|
|
135
|
+
items: [
|
|
136
|
+
'Select the tool you need based on your project type',
|
|
137
|
+
'Enter technical parameters (frames, resolution, times, etc.)',
|
|
138
|
+
'Get instant calculations and precise results',
|
|
139
|
+
'Export or apply results to your workflow',
|
|
140
|
+
'Repeat the process for multiple projects without limits'
|
|
141
|
+
],
|
|
142
|
+
icon: 'mdi:arrow-right'
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: 'Pro Tip',
|
|
147
|
+
html: 'For work with multiple clips or sequences, we recommend saving your key parameters (camera resolution, usual frame rate, subtitle language) in a document. This way you can quickly access them without needing to recalculate every time.'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'glossary',
|
|
151
|
+
items: [
|
|
152
|
+
{
|
|
153
|
+
term: 'EXIF',
|
|
154
|
+
definition: 'File format that stores metadata in digital images (date, camera, GPS location, etc.). It can be a privacy risk.'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
term: 'FPS (Frames Per Second)',
|
|
158
|
+
definition: 'Number of frames played each second. Common values: 24 fps (cinema), 25 fps (PAL), 30 fps (NTSC), 60 fps (fluid video).'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
term: 'DPI (Dots Per Inch)',
|
|
162
|
+
definition: 'Resolution measure in printing. Higher DPI = better quality. For professional photography, a minimum of 300 DPI is recommended.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Timelapse',
|
|
166
|
+
definition: 'Cinematographic technique that speeds up time by capturing frames at regular intervals to create a fast-motion effect.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Subtitle Synchronization',
|
|
170
|
+
definition: 'Process of aligning the start/end time of subtitles with movie or series audio and video.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Metadata',
|
|
174
|
+
definition: 'Hidden information in media files describing content (author, creation date, device used, location, etc.).'
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'diagnostic',
|
|
180
|
+
variant: 'info',
|
|
181
|
+
title: 'How to Choose the Right Tool',
|
|
182
|
+
icon: 'mdi:help-circle',
|
|
183
|
+
badge: 'Selection Guide',
|
|
184
|
+
html: '<strong>Creating a timelapse?</strong> -> Use the timelapse calculator.<br><strong>Need to protect privacy?</strong> -> Metadata cleaning tool.<br><strong>Working with subtitles?</strong> -> Subtitle sync and editor.<br><strong>Need to optimize image?</strong> -> Resolution and viewing distance calculator.'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'card',
|
|
188
|
+
title: 'Key Functionality',
|
|
189
|
+
html: 'All our tools work <strong>100% locally</strong> in your browser. This means maximum privacy, instant speed, and offline access (after initial load).'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'message',
|
|
193
|
+
title: 'Privacy Protection',
|
|
194
|
+
ariaLabel: 'Information about privacy and data storage',
|
|
195
|
+
html: 'We do not store, process, or share your audiovisual data. All calculations and metadata cleaning occur exclusively on your device. You have full control of your content.'
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'audiovisual',
|
|
5
|
+
title: 'Audiovisual y Fotografía',
|
|
6
|
+
description: 'Herramientas profesionales y calculadoras para cineastas, fotógrafos y creadores de contenido audiovisual digital.',
|
|
7
|
+
seo: [
|
|
8
|
+
{
|
|
9
|
+
type: 'summary',
|
|
10
|
+
title: 'Herramientas Audiovisuales Profesionales',
|
|
11
|
+
items: [
|
|
12
|
+
'Calculadoras inteligentes para timelapses, efectos y composición.',
|
|
13
|
+
'Herramientas de privacidad para limpiar metadatos EXIF.',
|
|
14
|
+
'Síncronización de subtítulos y edición de tiempos.',
|
|
15
|
+
'Análisis de resolución, calidad de impresión y distancia de visionado óptima.'
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'title',
|
|
20
|
+
text: 'Toolbox Profesional para Producción Audiovisual',
|
|
21
|
+
level: 2,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'paragraph',
|
|
25
|
+
html: 'Nuestra suite integral de utilidades resuelve los desafíos técnicos más comunes en cada etapa de la producción audiovisual. Desde cálculos precisos de intervalos para timelapses cinematográficos hasta la protección de privacidad mediante limpieza de metadatos EXIF en tus archivos multimedia.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'stats',
|
|
29
|
+
items: [
|
|
30
|
+
{
|
|
31
|
+
value: '12+',
|
|
32
|
+
label: 'Herramientas especializadas',
|
|
33
|
+
icon: 'mdi:cog'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: '100%',
|
|
37
|
+
label: 'Cálculos precisos',
|
|
38
|
+
icon: 'mdi:chart-line'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
value: '0%',
|
|
42
|
+
label: 'Datos almacenados en servidor',
|
|
43
|
+
icon: 'mdi:shield-check'
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
columns: 3
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'title',
|
|
50
|
+
text: 'Categorías de Herramientas',
|
|
51
|
+
level: 3,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'comparative',
|
|
55
|
+
items: [
|
|
56
|
+
{
|
|
57
|
+
title: 'Timelapse y Cinemática',
|
|
58
|
+
description: 'Calcula intervalos, duración total y velocidad de fotogramas para tus tomas cinematográficas.',
|
|
59
|
+
icon: 'mdi:film',
|
|
60
|
+
points: [
|
|
61
|
+
'Cálculo de fotogramas necesarios',
|
|
62
|
+
'Duración en segundos/minutos',
|
|
63
|
+
'Velocidad de reproducción variable'
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: 'Privacidad y Metadatos',
|
|
68
|
+
description: 'Protege tu privacidad eliminando datos EXIF y metadatos sensibles de tus archivos.',
|
|
69
|
+
icon: 'mdi:lock',
|
|
70
|
+
points: [
|
|
71
|
+
'Análisis de datos EXIF',
|
|
72
|
+
'Limpieza de metadatos de ubicación',
|
|
73
|
+
'Eliminación de información de dispositivo'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
title: 'Edición de Subtítulos',
|
|
78
|
+
description: 'Sincroniza, ajusta y edita subtítulos con precisión de milisegundos.',
|
|
79
|
+
icon: 'mdi:text',
|
|
80
|
+
points: [
|
|
81
|
+
'Sincronización en tiempo real',
|
|
82
|
+
'Edición de tiempos de entrada/salida',
|
|
83
|
+
'Ajuste global de retrasos'
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: 'Análisis de Imagen',
|
|
88
|
+
description: 'Calcula parámetros técnicos de resolución, impresión y distancia de visionado.',
|
|
89
|
+
icon: 'mdi:image',
|
|
90
|
+
points: [
|
|
91
|
+
'Cálculo de DPI y resolución',
|
|
92
|
+
'Distancia de visionado recomendada',
|
|
93
|
+
'Análisis de calidad de impresión'
|
|
94
|
+
],
|
|
95
|
+
highlight: true
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
columns: 2
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Por Qué Elegir Nuestras Herramientas',
|
|
103
|
+
level: 3,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'proscons',
|
|
107
|
+
items: [
|
|
108
|
+
{
|
|
109
|
+
pro: 'Procesamiento 100% en el navegador - tus datos nunca se suben a servidores',
|
|
110
|
+
con: 'Requiere navegador moderno con soporte JavaScript'
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
pro: 'Precisión matemática en todos los cálculos audiovisuales',
|
|
114
|
+
con: 'Para casos muy específicos pueden requerir validación manual'
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
pro: 'Interfaz intuitiva diseñada para profesionales del sector',
|
|
118
|
+
con: 'Mejor experiencia en pantallas de escritorio/tablet'
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
pro: 'Herramientas completamente gratuitas sin límites de uso',
|
|
122
|
+
con: 'Sin soporte premium dedicado (comunidad disponible)'
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
proTitle: 'Ventajas',
|
|
126
|
+
conTitle: 'Consideraciones'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Guía Rápida de Uso',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'list',
|
|
135
|
+
items: [
|
|
136
|
+
'Selecciona la herramienta que necesitas según tu tipo de proyecto',
|
|
137
|
+
'Introduce los parámetros técnicos (fotogramas, resolución, tiempos, etc.)',
|
|
138
|
+
'Obtén cálculos instantáneos y resultados precisos',
|
|
139
|
+
'Exporta o aplica los resultados a tu flujo de trabajo',
|
|
140
|
+
'Repite el proceso para múltiples proyectos sin límites'
|
|
141
|
+
],
|
|
142
|
+
icon: 'mdi:arrow-right'
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: 'Consejo del Profesional',
|
|
147
|
+
html: 'Para trabajos con múltiples clips o secuencias, te recomendamos guardar tus parámetros clave (resolución de cámara, frame rate habitual, idioma de subtítulos) en un documento. Así podrás acceder rápidamente a ellos sin necesidad de recalcular cada vez.'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'glossary',
|
|
151
|
+
items: [
|
|
152
|
+
{
|
|
153
|
+
term: 'EXIF',
|
|
154
|
+
definition: 'Formato de archivo que almacena metadatos en imágenes digitales (fecha, cámara, ubicación GPS, etc.). Puede ser un riesgo de privacidad.'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
term: 'FPS (Fotogramas por Segundo)',
|
|
158
|
+
definition: 'Número de fotogramas que se reproducen cada segundo. Valores comunes: 24 fps (cine), 25 fps (PAL), 30 fps (NTSC), 60 fps (video fluido).'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
term: 'DPI (Puntos por Pulgada)',
|
|
162
|
+
definition: 'Medida de resolución en impresión. Mayor DPI = mejor calidad. Para fotografía profesional se recomienda mínimo 300 DPI.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Timelapse',
|
|
166
|
+
definition: 'Técnica cinematográfica que acelera el tiempo capturando fotogramas a intervalos regulares para crear efecto de movimiento rápido.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Sincronización de Subtítulos',
|
|
170
|
+
definition: 'Proceso de alinear el tiempo de aparición/desaparición de subtítulos con el audio y vídeo de una película o serie.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Metadatos',
|
|
174
|
+
definition: 'Información oculta en archivos de medios que describe el contenido (autor, fecha de creación, dispositivo usado, ubicación, etc.).'
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'diagnostic',
|
|
180
|
+
variant: 'info',
|
|
181
|
+
title: 'Cómo Elegir la Herramienta Correcta',
|
|
182
|
+
icon: 'mdi:help-circle',
|
|
183
|
+
badge: 'Guía de Selección',
|
|
184
|
+
html: '<strong>¿Estás creando un timelapse?</strong> → Usa la calculadora de timelapse.<br><strong>¿Necesitas proteger tu privacidad?</strong> → Herramienta de limpieza de metadatos.<br><strong>¿Trabajas con subtítulos?</strong> → Sincronizador y editor de subtítulos.<br><strong>¿Necesitas optimizar imagen?</strong> → Calculadora de resolución y distancia de visionado.'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'card',
|
|
188
|
+
title: 'Funcionalidad Clave',
|
|
189
|
+
html: 'Todas nuestras herramientas funcionan <strong>100% localmente</strong> en tu navegador. Esto significa máxima privacidad, velocidad instantánea y acceso sin conexión (tras la carga inicial).'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'message',
|
|
193
|
+
title: 'Protección de Privacidad',
|
|
194
|
+
ariaLabel: 'Información sobre privacidad y almacenamiento de datos',
|
|
195
|
+
html: 'No almacenamos, procesamos ni compartimos tus datos audiovisuales. Todos los cálculos y limpiezas de metadatos ocurren exclusivamente en tu dispositivo. Tú tienes el control total de tu contenido.'
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'outils-audiovisuels-photographie-calculatrices-professionnelles',
|
|
5
|
+
title: 'Outils Audiovisuels et Photographie',
|
|
6
|
+
description: 'Outils et calculatrices professionnels pour cinéastes, photographes et créateurs de contenu audiovisuel numérique.',
|
|
7
|
+
seo: [
|
|
8
|
+
{
|
|
9
|
+
type: 'summary',
|
|
10
|
+
title: 'Outils Audiovisuels Professionnels',
|
|
11
|
+
items: [
|
|
12
|
+
'Calculatrices intelligentes pour timelapses, effets et composition.',
|
|
13
|
+
'Outils de confidentialité pour nettoyer les métadonnées EXIF.',
|
|
14
|
+
'Synchronisation de sous-titres et édition des temps.',
|
|
15
|
+
'Analyse de résolution, qualité d\'impression et distance de visionnage optimale.'
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'title',
|
|
20
|
+
text: 'Boîte à Outils Professionnelle pour la Production Audiovisuelle',
|
|
21
|
+
level: 2,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'paragraph',
|
|
25
|
+
html: 'Notre suite complète d\'utilitaires résout les défis techniques les plus courants à chaque étape de la production audiovisuelle. Des calculs d\'intervalles précis pour les timelapses cinématographiques à la protection de la vie privée par le nettoyage des métadonnées EXIF dans vos fichiers multimédias.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'stats',
|
|
29
|
+
items: [
|
|
30
|
+
{
|
|
31
|
+
value: '12+',
|
|
32
|
+
label: 'Outils spécialisés',
|
|
33
|
+
icon: 'mdi:cog'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: '100%',
|
|
37
|
+
label: 'Calculs précis',
|
|
38
|
+
icon: 'mdi:chart-line'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
value: '0%',
|
|
42
|
+
label: 'Données stockées sur serveur',
|
|
43
|
+
icon: 'mdi:shield-check'
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
columns: 3
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'title',
|
|
50
|
+
text: 'Catégories d\'Outils',
|
|
51
|
+
level: 3,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'comparative',
|
|
55
|
+
items: [
|
|
56
|
+
{
|
|
57
|
+
title: 'Timelapse et Cinématographie',
|
|
58
|
+
description: 'Calculez les intervalles, la durée totale et les fréquences d\'images pour vos prises de vue cinématographiques.',
|
|
59
|
+
icon: 'mdi:film',
|
|
60
|
+
points: [
|
|
61
|
+
'Calcul des images nécessaires',
|
|
62
|
+
'Durée en secondes/minutes',
|
|
63
|
+
'Vitesse de lecture variable'
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: 'Confidentialité et Métadonnées',
|
|
68
|
+
description: 'Protégez votre vie privée en supprimant les données EXIF et les métadonnées sensibles de vos fichiers.',
|
|
69
|
+
icon: 'mdi:lock',
|
|
70
|
+
points: [
|
|
71
|
+
'Analyse des données EXIF',
|
|
72
|
+
'Nettoyage des métadonnées de localisation',
|
|
73
|
+
'Suppression des informations sur l\'appareil'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
title: 'Édition de Sous-titres',
|
|
78
|
+
description: 'Synchronisez, ajustez et éditez les sous-titres avec une précision à la milliseconde.',
|
|
79
|
+
icon: 'mdi:text',
|
|
80
|
+
points: [
|
|
81
|
+
'Synchronisation en temps réel',
|
|
82
|
+
'Édition des temps d\'entrée/sortie',
|
|
83
|
+
'Réglage global des retards'
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: 'Analyse d\'Image',
|
|
88
|
+
description: 'Calculez les paramètres techniques de résolution, d\'impression et de distance de visionnage.',
|
|
89
|
+
icon: 'mdi:image',
|
|
90
|
+
points: [
|
|
91
|
+
'Calcul du DPI et de la résolution',
|
|
92
|
+
'Distance de visionnage recommandée',
|
|
93
|
+
'Analyse de la qualité d\'impression'
|
|
94
|
+
],
|
|
95
|
+
highlight: true
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
columns: 2
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Pourquoi Choisir Nos Outils',
|
|
103
|
+
level: 3,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'proscons',
|
|
107
|
+
items: [
|
|
108
|
+
{
|
|
109
|
+
pro: 'Traitement 100 % par navigateur - vos données ne sont jamais téléversées sur des serveurs',
|
|
110
|
+
con: 'Nécessite un navigateur moderne avec support JavaScript'
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
pro: 'Précision mathématique dans tous les calculs audiovisuels',
|
|
114
|
+
con: 'Des cas très spécifiques peuvent nécessiter une validation manuelle'
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
pro: 'Interface intuitive conçue pour les professionnels du secteur',
|
|
118
|
+
con: 'Meilleure expérience sur les écrans de bureau/tablette'
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
pro: 'Outils totalement gratuits sans limites d\'utilisation',
|
|
122
|
+
con: 'Pas de support premium dédié (communauté disponible)'
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
proTitle: 'Avantages',
|
|
126
|
+
conTitle: 'Considérations'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Guide de Démarrage Rapide',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'list',
|
|
135
|
+
items: [
|
|
136
|
+
'Sélectionnez l\'outil dont vous avez besoin selon votre type de projet',
|
|
137
|
+
'Saisissez les paramètres techniques (images, résolution, temps, etc.)',
|
|
138
|
+
'Obtenez des calculs instantanés et des résultats précis',
|
|
139
|
+
'Exportez ou appliquez les résultats à votre flux de travail',
|
|
140
|
+
'Répétez le processus pour plusieurs projets sans limites'
|
|
141
|
+
],
|
|
142
|
+
icon: 'mdi:arrow-right'
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: 'Conseil de Pro',
|
|
147
|
+
html: 'Pour les travaux avec plusieurs clips ou séquences, nous vous recommandons de sauvegarder vos paramètres clés (résolution de caméra, fréquence d\'images habituelle, langue des sous-titres) dans un document. Vous pourrez ainsi y accéder rapidement sans avoir à recalculer à chaque fois.'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'glossary',
|
|
151
|
+
items: [
|
|
152
|
+
{
|
|
153
|
+
term: 'EXIF',
|
|
154
|
+
definition: 'Format de fichier qui stocke des métadonnées dans les images numériques (date, appareil, localisation GPS, etc.). Cela peut poser un risque de confidentialité.'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
term: 'FPS (Images par seconde)',
|
|
158
|
+
definition: 'Nombre d\'images lues chaque seconde. Valeurs communes : 24 fps (cinéma), 25 fps (PAL), 30 fps (NTSC), 60 fps (vidéo fluide).'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
term: 'DPI (Points par pouce)',
|
|
162
|
+
definition: 'Mesure de résolution en impression. Plus le DPI est élevé, meilleure est la qualité. Pour la photographie professionnelle, un minimum de 300 DPI est recommandé.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Timelapse',
|
|
166
|
+
definition: 'Technique cinématographique qui accélère le temps en capturant des images à intervalles réguliers pour créer un effet de mouvement rapide.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Synchronisation des Sous-titres',
|
|
170
|
+
definition: 'Processus d\'alignement du temps d\'apparition/disparition des sous-titres avec l\'audio et la vidéo d\'un film أو d\'une série.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Métadonnées',
|
|
174
|
+
definition: 'Informations cachées dans les fichiers multimédias décrivant le contenu (auteur, date de création, appareil utilisé, emplacement, etc.).'
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'diagnostic',
|
|
180
|
+
variant: 'info',
|
|
181
|
+
title: 'Comment Choisir le Bon Outil',
|
|
182
|
+
icon: 'mdi:help-circle',
|
|
183
|
+
badge: 'Guide de Sélection',
|
|
184
|
+
html: '<strong>Créer un timelapse ?</strong> -> Utilisez la calculatrice de timelapse.<br><strong>Besoin de protéger votre confidentialité ?</strong> -> Outil de nettoyage des métadonnées.<br><strong>Travailler avec des sous-titres ?</strong> -> Synchroniseur et éditeur de sous-titres.<br><strong>Besoin d\'optimiser l\'image ?</strong> -> Calculatrice de résolution et de distance de visionnage.'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'card',
|
|
188
|
+
title: 'Fonctionnalité Clé',
|
|
189
|
+
html: 'Tous nos outils fonctionnent <strong>100 % localement</strong> dans votre navigateur. Cela signifie une confidentialité maximale, une vitesse instantanée et un accès hors ligne (après le chargement initial).'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'message',
|
|
193
|
+
title: 'Protection de la Confidentialité',
|
|
194
|
+
ariaLabel: 'Informations sur la confidentialité et le stockage des données',
|
|
195
|
+
html: 'Nous ne stockons, ne traitons ni ne partageons vos données audiovisuelles. Tous les calculs et nettoyages de métadonnées s\'effectuent exclusivement sur votre appareil. Vous avez le contrôle total de votre contenu.'
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AudiovisualCategoryEntry, AudiovisualToolEntry } from '../types';
|
|
2
|
+
import { timelapseCalculator } from '../tool/timelapseCalculator/index';
|
|
3
|
+
import { exifCleaner } from '../tool/exifCleaner/index';
|
|
4
|
+
|
|
5
|
+
export const audiovisualCategory: AudiovisualCategoryEntry = {
|
|
6
|
+
icon: 'mdi:camera-iris',
|
|
7
|
+
tools: [
|
|
8
|
+
timelapseCalculator as AudiovisualToolEntry,
|
|
9
|
+
exifCleaner as AudiovisualToolEntry,
|
|
10
|
+
],
|
|
11
|
+
i18n: {
|
|
12
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
13
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
14
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { audiovisualCategory } from './index';
|
|
4
|
+
import type { KnownLocale } from '../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await audiovisualCategory.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
15
|
+
|