@jjlmoya/utils-home 1.1.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 +62 -0
- package/src/category/i18n/en.ts +24 -0
- package/src/category/i18n/es.ts +24 -0
- package/src/category/i18n/fr.ts +24 -0
- package/src/category/index.ts +12 -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 +11 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +26 -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/dewPointCalculator/bibliography.astro +14 -0
- package/src/tool/dewPointCalculator/component.astro +443 -0
- package/src/tool/dewPointCalculator/i18n/en.ts +183 -0
- package/src/tool/dewPointCalculator/i18n/es.ts +183 -0
- package/src/tool/dewPointCalculator/i18n/fr.ts +183 -0
- package/src/tool/dewPointCalculator/index.ts +34 -0
- package/src/tool/dewPointCalculator/logic.ts +16 -0
- package/src/tool/dewPointCalculator/seo.astro +14 -0
- package/src/tool/dewPointCalculator/ui.ts +13 -0
- package/src/tool/ledSavingCalculator/bibliography.astro +14 -0
- package/src/tool/ledSavingCalculator/component.astro +520 -0
- package/src/tool/ledSavingCalculator/i18n/en.ts +217 -0
- package/src/tool/ledSavingCalculator/i18n/es.ts +217 -0
- package/src/tool/ledSavingCalculator/i18n/fr.ts +217 -0
- package/src/tool/ledSavingCalculator/index.ts +34 -0
- package/src/tool/ledSavingCalculator/logic.ts +31 -0
- package/src/tool/ledSavingCalculator/seo.astro +14 -0
- package/src/tool/ledSavingCalculator/ui.ts +32 -0
- package/src/tool/projectorCalculator/bibliography.astro +14 -0
- package/src/tool/projectorCalculator/component.astro +569 -0
- package/src/tool/projectorCalculator/i18n/en.ts +181 -0
- package/src/tool/projectorCalculator/i18n/es.ts +181 -0
- package/src/tool/projectorCalculator/i18n/fr.ts +181 -0
- package/src/tool/projectorCalculator/index.ts +34 -0
- package/src/tool/projectorCalculator/logic.ts +21 -0
- package/src/tool/projectorCalculator/seo.astro +14 -0
- package/src/tool/projectorCalculator/ui.ts +16 -0
- package/src/tool/qrGenerator/bibliography.astro +14 -0
- package/src/tool/qrGenerator/component.astro +499 -0
- package/src/tool/qrGenerator/i18n/en.ts +233 -0
- package/src/tool/qrGenerator/i18n/es.ts +233 -0
- package/src/tool/qrGenerator/i18n/fr.ts +233 -0
- package/src/tool/qrGenerator/index.ts +34 -0
- package/src/tool/qrGenerator/logic.ts +27 -0
- package/src/tool/qrGenerator/seo.astro +14 -0
- package/src/tool/qrGenerator/ui.ts +23 -0
- package/src/tool/solarCalculator/bibliography.astro +14 -0
- package/src/tool/solarCalculator/component.astro +532 -0
- package/src/tool/solarCalculator/i18n/en.ts +176 -0
- package/src/tool/solarCalculator/i18n/es.ts +176 -0
- package/src/tool/solarCalculator/i18n/fr.ts +176 -0
- package/src/tool/solarCalculator/index.ts +34 -0
- package/src/tool/solarCalculator/logic.ts +31 -0
- package/src/tool/solarCalculator/seo.astro +14 -0
- package/src/tool/solarCalculator/ui.ts +11 -0
- package/src/tool/tariffComparator/bibliography.astro +14 -0
- package/src/tool/tariffComparator/component.astro +595 -0
- package/src/tool/tariffComparator/i18n/en.ts +192 -0
- package/src/tool/tariffComparator/i18n/es.ts +192 -0
- package/src/tool/tariffComparator/i18n/fr.ts +192 -0
- package/src/tool/tariffComparator/index.ts +34 -0
- package/src/tool/tariffComparator/logic.ts +47 -0
- package/src/tool/tariffComparator/seo.astro +14 -0
- package/src/tool/tariffComparator/ui.ts +25 -0
- package/src/tools.ts +9 -0
- package/src/types.ts +72 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { QRGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'qr-generator';
|
|
6
|
+
const title = 'Offline QR Code Generator';
|
|
7
|
+
const description =
|
|
8
|
+
'Generate QR codes for WiFi, URLs and Contacts 100% securely in your browser. Your data never leaves your device.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Do these QR codes expire?',
|
|
13
|
+
answer:
|
|
14
|
+
'No. The codes generated here are static. The information is encoded directly in the image and does not depend on any external link or redirect. They will work forever.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Do you store my data?',
|
|
18
|
+
answer:
|
|
19
|
+
'Absolutely not. The entire process happens in your browser (Client-Side). No data is sent to our servers. It is 100% private and secure.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Does it work on iPhone and Android?',
|
|
23
|
+
answer:
|
|
24
|
+
'Yes. Most modern iOS and Android cameras read QR codes natively and suggest the corresponding action (connect to WiFi, open link, etc.).',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Can I use it without internet?',
|
|
28
|
+
answer:
|
|
29
|
+
'Yes. Once the page is loaded, you can disconnect WiFi or data and the generator will continue working perfectly as it does not depend on external servers.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Choose QR type',
|
|
36
|
+
text: 'Select whether you want a code for a WiFi network, a URL link or a contact (vCard).',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Enter data',
|
|
40
|
+
text: 'Fill in the required fields, such as the network name and password, or the web address.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Generate and check',
|
|
44
|
+
text: 'The code is generated instantly. You can try scanning it directly from the screen.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Download',
|
|
48
|
+
text: 'Save the QR code as an image (.webp) to print or share digitally.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'en',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<QRGeneratorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Frequently Asked Questions',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Bibliography',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{
|
|
94
|
+
name: 'node-qrcode: QR code generator library',
|
|
95
|
+
url: 'https://github.com/soldair/node-qrcode',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'RFC 6350: vCard Format Specification',
|
|
99
|
+
url: 'https://www.rfc-editor.org/rfc/rfc6350',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'ZXing: Barcode Contents — WiFi, vCard and URL',
|
|
103
|
+
url: 'https://github.com/zxing/zxing/wiki/Barcode-Contents',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
howTo: howToData,
|
|
107
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
108
|
+
seo: [
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: 'Why Offline? Privacy First',
|
|
112
|
+
level: 2,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'Most online QR generators send your data to a server. This is a risk, especially for <strong>WiFi passwords</strong> or <strong>personal data</strong>. This tool uses JavaScript to generate the QR code directly on your device. You can even disconnect the internet and it will keep working.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'stats',
|
|
120
|
+
items: [
|
|
121
|
+
{ value: '100%', label: 'Private', icon: 'mdi:shield-lock' },
|
|
122
|
+
{ value: 'Offline', label: 'No Server', icon: 'mdi:wifi-off' },
|
|
123
|
+
{ value: 'WebP', label: 'Direct Download', icon: 'mdi:download' },
|
|
124
|
+
],
|
|
125
|
+
columns: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'diagnostic',
|
|
129
|
+
variant: 'success',
|
|
130
|
+
title: 'Open Source and Transparent',
|
|
131
|
+
icon: 'mdi:github',
|
|
132
|
+
badge: 'Open Source',
|
|
133
|
+
html: '<p>Do not trust it? The code for this tool is 100% open source. You can review how it works or download the project to run it on your own computer without internet.</p>',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Use Cases',
|
|
138
|
+
level: 3,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
items: [
|
|
143
|
+
{
|
|
144
|
+
title: 'WiFi QR',
|
|
145
|
+
description: 'Share your WiFi network with guests without having to dictate the password. They scan and connect automatically.',
|
|
146
|
+
icon: 'mdi:wifi',
|
|
147
|
+
points: ['Natively supported by iOS and Android', 'Supports WPA2, WEP and open networks'],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
title: 'URL QR',
|
|
151
|
+
description: 'Convert any web link into a scannable code. Ideal for printing on physical materials.',
|
|
152
|
+
icon: 'mdi:link',
|
|
153
|
+
points: ['Any valid URL', 'No expiry date'],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
title: 'vCard QR',
|
|
157
|
+
description: 'Digital business card. When scanned, the phone will suggest "Add contact" with all fields pre-filled.',
|
|
158
|
+
icon: 'mdi:card-account-details',
|
|
159
|
+
points: ['Name, phone, email and company', 'Standard vCard 3.0 format'],
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
columns: 3,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Use Case Guide',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: '<strong>For Home (WiFi):</strong> Tired of hunting for the WiFi password note every time friends visit? Generate a QR with your SSID and password. Print it and stick it somewhere visible. Your guests just need to open their camera app, point and done — they connect without typing anything.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'paragraph',
|
|
175
|
+
html: '<strong>For Professionals (vCard):</strong> At networking events, paper business cards are a thing of the past. Generate a QR with your contact details. Carry it on your phone or print it on the back of your badge. When scanned, your new contact can save your name, phone, email and company directly to their address book.',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'glossary',
|
|
179
|
+
items: [
|
|
180
|
+
{
|
|
181
|
+
term: 'QR Code',
|
|
182
|
+
definition: '2D barcode that can store up to 4,296 alphanumeric characters. Modern cameras read it in under a second.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
term: 'vCard',
|
|
186
|
+
definition: 'Standard format for digital contact cards (RFC 6350). Compatible with iOS, Android, Outlook and most contact managers.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
term: 'SSID',
|
|
190
|
+
definition: 'Service Set Identifier. The visible name of a WiFi network that appears when searching for available networks on your device.',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
term: 'WPA2',
|
|
194
|
+
definition: 'Wi-Fi Protected Access 2. The most widely used WiFi security protocol. Uses AES encryption to protect communications.',
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'summary',
|
|
200
|
+
title: 'Keys to Getting the Most from This Tool',
|
|
201
|
+
items: [
|
|
202
|
+
'All data is processed in your browser, never on an external server.',
|
|
203
|
+
'The WiFi QR requires the exact SSID and password (case sensitive).',
|
|
204
|
+
'Generated QR codes are static: if you change your WiFi password, generate a new one.',
|
|
205
|
+
'Download in WebP for maximum quality when printing or sharing.',
|
|
206
|
+
'Try scanning the QR from the screen itself before printing it.',
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
ui: {
|
|
211
|
+
tabWifi: 'WiFi',
|
|
212
|
+
tabUrl: 'URL',
|
|
213
|
+
tabContact: 'Contact',
|
|
214
|
+
labelSsid: 'Network Name (SSID)',
|
|
215
|
+
labelPassword: 'Password',
|
|
216
|
+
labelEncryption: 'Security',
|
|
217
|
+
labelHidden: 'Hidden Network',
|
|
218
|
+
labelUrl: 'Web Address (URL)',
|
|
219
|
+
labelName: 'First Name',
|
|
220
|
+
labelSurname: 'Last Name',
|
|
221
|
+
labelPhone: 'Phone',
|
|
222
|
+
labelEmail: 'Email',
|
|
223
|
+
labelOrg: 'Organisation / Company',
|
|
224
|
+
encWpa: 'WPA/WPA2',
|
|
225
|
+
encWep: 'WEP',
|
|
226
|
+
encNone: 'None',
|
|
227
|
+
downloadBtn: 'Download PNG',
|
|
228
|
+
privacyMsg: 'Generated 100% in your browser. Your data never travels to the Internet.',
|
|
229
|
+
placeholderSsid: 'MyHome_5G',
|
|
230
|
+
placeholderUrl: 'https://example.com',
|
|
231
|
+
placeholderPassword: '••••••••',
|
|
232
|
+
},
|
|
233
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { QRGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generador-qr';
|
|
6
|
+
const title = 'Generador de Códigos QR Offline';
|
|
7
|
+
const description =
|
|
8
|
+
'Genera códigos QR para WiFi, URLs y Contactos de forma 100% segura en tu navegador. Tus datos nunca salen de tu dispositivo.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '¿Caducan estos códigos QR?',
|
|
13
|
+
answer:
|
|
14
|
+
'No. Los códigos generados aquí son estáticos. La información está codificada directamente en la imagen, no depende de ningún enlace externo ni redirección. Funcionarán para siempre.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '¿Guardáis mis datos?',
|
|
18
|
+
answer:
|
|
19
|
+
'Absolutamente no. Todo el proceso ocurre en tu navegador (Client-Side). Ningún dato se envía a nuestros servidores. Es 100% privado y seguro.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '¿Funciona en iPhone y Android?',
|
|
23
|
+
answer:
|
|
24
|
+
'Sí. La mayoría de cámaras modernas de iOS y Android leen códigos QR de forma nativa y sugieren la acción correspondiente (conectar a WiFi, abrir link, etc.).',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '¿Puedo usarlo sin internet?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sí. Una vez cargada la página, puedes desconectar el WiFi o los datos y el generador seguirá funcionando perfectamente ya que no depende de servidores externos.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Elegir tipo de QR',
|
|
36
|
+
text: 'Selecciona si quieres un código para una Red WiFi, un enlace URL o un contacto (vCard).',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Introducir datos',
|
|
40
|
+
text: 'Rellena los campos necesarios, como el nombre de la red y la contraseña, o la dirección web.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Generar y comprobar',
|
|
44
|
+
text: 'El código se genera al instante. Puedes probar a escanearlo directamente desde la pantalla.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Descargar',
|
|
48
|
+
text: 'Guarda el código QR como imagen (.webp) para imprimirlo o compartirlo digitalmente.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'es',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<QRGeneratorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Bibliografía',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{
|
|
94
|
+
name: 'node-qrcode: QR code generator library',
|
|
95
|
+
url: 'https://github.com/soldair/node-qrcode',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'RFC 6350: vCard Format Specification',
|
|
99
|
+
url: 'https://www.rfc-editor.org/rfc/rfc6350',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'ZXing: Barcode Contents — WiFi, vCard y URL',
|
|
103
|
+
url: 'https://github.com/zxing/zxing/wiki/Barcode-Contents',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
howTo: howToData,
|
|
107
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
108
|
+
seo: [
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: '¿Por qué Offline? La Privacidad ante Todo',
|
|
112
|
+
level: 2,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'La mayoría de generadores QR online envían tus datos a un servidor. Esto es un riesgo, especialmente para <strong>claves WiFi</strong> o <strong>datos personales</strong>. Esta herramienta utiliza JavaScript para generar el código QR directamente en tu dispositivo. Puedes incluso desconectar internet y seguirá funcionando.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'stats',
|
|
120
|
+
items: [
|
|
121
|
+
{ value: '100%', label: 'Privado', icon: 'mdi:shield-lock' },
|
|
122
|
+
{ value: 'Offline', label: 'Sin Servidor', icon: 'mdi:wifi-off' },
|
|
123
|
+
{ value: 'WebP', label: 'Descarga Directa', icon: 'mdi:download' },
|
|
124
|
+
],
|
|
125
|
+
columns: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'diagnostic',
|
|
129
|
+
variant: 'success',
|
|
130
|
+
title: 'Código Abierto y Transparente',
|
|
131
|
+
icon: 'mdi:github',
|
|
132
|
+
badge: 'Open Source',
|
|
133
|
+
html: '<p>¿No te fías? El código de esta herramienta es 100% open source. Puedes revisar cómo funciona o descargarlo para ejecutarlo en tu propio ordenador sin internet.</p>',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Casos de Uso',
|
|
138
|
+
level: 3,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
items: [
|
|
143
|
+
{
|
|
144
|
+
title: 'WiFi QR',
|
|
145
|
+
description: 'Comparte tu red WiFi con invitados sin tener que dictar la contraseña. Escanean y se conectan automáticamente.',
|
|
146
|
+
icon: 'mdi:wifi',
|
|
147
|
+
points: ['Compatible con iOS y Android nativamente', 'Soporta WPA2, WEP y redes abiertas'],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
title: 'URL QR',
|
|
151
|
+
description: 'Convierte cualquier enlace web en un código escaneable. Ideal para imprimir en materiales físicos.',
|
|
152
|
+
icon: 'mdi:link',
|
|
153
|
+
points: ['Cualquier URL válida', 'Sin fecha de caducidad'],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
title: 'vCard QR',
|
|
157
|
+
description: 'Tarjeta de visita digital. Al escanear, el teléfono sugerirá "Añadir contacto" con todos los datos rellenos.',
|
|
158
|
+
icon: 'mdi:card-account-details',
|
|
159
|
+
points: ['Nombre, teléfono, email y empresa', 'Formato estándar vCard 3.0'],
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
columns: 3,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Guía de Uso por Caso',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: '<strong>Para tu Hogar (WiFi):</strong> ¿Cansado de buscar el papelito con la clave del WiFi cada vez que vienen amigos? Genera un QR con el SSID y la contraseña. Imprímelo y pégalo en un lugar visible. Tus invitados solo tendrán que abrir la cámara de su móvil, apuntar y listo, se conectarán sin escribir nada.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'paragraph',
|
|
175
|
+
html: '<strong>Para Profesionales (vCard):</strong> En eventos de networking, llevar tarjetas de papel es cosa del pasado. Genera un QR con tus datos de contacto. Puedes llevarlo en tu móvil o imprimirlo en el reverso de tu acreditación. Al escanearlo, tu nuevo contacto podrá guardar tu nombre, teléfono, email y empresa directamente en su agenda.',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'glossary',
|
|
179
|
+
items: [
|
|
180
|
+
{
|
|
181
|
+
term: 'Código QR',
|
|
182
|
+
definition: 'Código de barras 2D que puede almacenar hasta 4.296 caracteres alfanuméricos. Las cámaras modernas lo leen en menos de un segundo.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
term: 'vCard',
|
|
186
|
+
definition: 'Formato estándar para tarjetas de contacto digitales (RFC 6350). Compatible con iOS, Android, Outlook y la mayoría de gestores de contactos.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
term: 'SSID',
|
|
190
|
+
definition: 'Service Set Identifier. El nombre visible de una red WiFi que aparece cuando buscas redes disponibles en tu dispositivo.',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
term: 'WPA2',
|
|
194
|
+
definition: 'Wi-Fi Protected Access 2. El protocolo de seguridad WiFi más extendido. Usa cifrado AES para proteger las comunicaciones.',
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'summary',
|
|
200
|
+
title: 'Claves para Usar bien esta Herramienta',
|
|
201
|
+
items: [
|
|
202
|
+
'Todos los datos se procesan en tu navegador, nunca en un servidor externo.',
|
|
203
|
+
'El QR WiFi requiere que el SSID y la contraseña sean exactos (distingue mayúsculas).',
|
|
204
|
+
'Los QR generados son estáticos: si cambias la contraseña del WiFi, genera uno nuevo.',
|
|
205
|
+
'Descarga el QR en WebP para máxima calidad al imprimirlo o compartirlo.',
|
|
206
|
+
'Prueba a escanear el QR desde la misma pantalla antes de imprimirlo.',
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
ui: {
|
|
211
|
+
tabWifi: 'WiFi',
|
|
212
|
+
tabUrl: 'URL',
|
|
213
|
+
tabContact: 'Contacto',
|
|
214
|
+
labelSsid: 'Nombre de la Red (SSID)',
|
|
215
|
+
labelPassword: 'Contraseña',
|
|
216
|
+
labelEncryption: 'Seguridad',
|
|
217
|
+
labelHidden: 'Red Oculta',
|
|
218
|
+
labelUrl: 'Dirección Web (URL)',
|
|
219
|
+
labelName: 'Nombre',
|
|
220
|
+
labelSurname: 'Apellidos',
|
|
221
|
+
labelPhone: 'Teléfono',
|
|
222
|
+
labelEmail: 'Email',
|
|
223
|
+
labelOrg: 'Organización / Empresa',
|
|
224
|
+
encWpa: 'WPA/WPA2',
|
|
225
|
+
encWep: 'WEP',
|
|
226
|
+
encNone: 'Ninguna',
|
|
227
|
+
downloadBtn: 'Descargar PNG',
|
|
228
|
+
privacyMsg: 'Generado 100% en tu navegador. Tus datos nunca viajan a Internet.',
|
|
229
|
+
placeholderSsid: 'MiCasa_5G',
|
|
230
|
+
placeholderUrl: 'https://ejemplo.com',
|
|
231
|
+
placeholderPassword: '••••••••',
|
|
232
|
+
},
|
|
233
|
+
};
|