@jjlmoya/utils-home 1.6.0 → 1.8.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 +61 -60
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_language_code_format.test.ts +27 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/dewPointCalculator/i18n/de.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/en.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/es.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/fr.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/id.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/it.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ja.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ko.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/nl.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/pl.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/pt.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ru.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/sv.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/tr.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/zh.ts +178 -0
- package/src/tool/dewPointCalculator/index.ts +16 -6
- package/src/tool/heatingComparator/i18n/de.ts +340 -0
- package/src/tool/heatingComparator/i18n/id.ts +324 -0
- package/src/tool/heatingComparator/i18n/it.ts +336 -0
- package/src/tool/heatingComparator/i18n/ja.ts +311 -0
- package/src/tool/heatingComparator/i18n/ko.ts +307 -0
- package/src/tool/heatingComparator/i18n/nl.ts +336 -0
- package/src/tool/heatingComparator/i18n/pl.ts +311 -0
- package/src/tool/heatingComparator/i18n/pt.ts +336 -0
- package/src/tool/heatingComparator/i18n/ru.ts +307 -0
- package/src/tool/heatingComparator/i18n/sv.ts +311 -0
- package/src/tool/heatingComparator/i18n/tr.ts +324 -0
- package/src/tool/heatingComparator/i18n/zh.ts +307 -0
- package/src/tool/heatingComparator/index.ts +13 -1
- package/src/tool/ledSavingCalculator/i18n/de.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/fr.ts +1 -1
- package/src/tool/ledSavingCalculator/i18n/id.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/it.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ja.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ko.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/nl.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/pl.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/pt.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ru.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/sv.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/tr.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/zh.ts +208 -0
- package/src/tool/ledSavingCalculator/index.ts +16 -7
- package/src/tool/projectorCalculator/i18n/de.ts +180 -0
- package/src/tool/projectorCalculator/i18n/fr.ts +1 -1
- package/src/tool/projectorCalculator/i18n/id.ts +181 -0
- package/src/tool/projectorCalculator/i18n/it.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ja.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ko.ts +180 -0
- package/src/tool/projectorCalculator/i18n/nl.ts +180 -0
- package/src/tool/projectorCalculator/i18n/pl.ts +180 -0
- package/src/tool/projectorCalculator/i18n/pt.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ru.ts +180 -0
- package/src/tool/projectorCalculator/i18n/sv.ts +180 -0
- package/src/tool/projectorCalculator/i18n/tr.ts +180 -0
- package/src/tool/projectorCalculator/i18n/zh.ts +180 -0
- package/src/tool/projectorCalculator/index.ts +15 -6
- package/src/tool/qrGenerator/i18n/de.ts +203 -0
- package/src/tool/qrGenerator/i18n/id.ts +151 -0
- package/src/tool/qrGenerator/i18n/it.ts +174 -0
- package/src/tool/qrGenerator/i18n/ja.ts +151 -0
- package/src/tool/qrGenerator/i18n/ko.ts +151 -0
- package/src/tool/qrGenerator/i18n/nl.ts +151 -0
- package/src/tool/qrGenerator/i18n/pl.ts +151 -0
- package/src/tool/qrGenerator/i18n/pt.ts +151 -0
- package/src/tool/qrGenerator/i18n/ru.ts +151 -0
- package/src/tool/qrGenerator/i18n/sv.ts +151 -0
- package/src/tool/qrGenerator/i18n/tr.ts +151 -0
- package/src/tool/qrGenerator/i18n/zh.ts +151 -0
- package/src/tool/qrGenerator/index.ts +17 -9
- package/src/tool/solarCalculator/i18n/de.ts +146 -0
- package/src/tool/solarCalculator/i18n/id.ts +126 -0
- package/src/tool/solarCalculator/i18n/it.ts +126 -0
- package/src/tool/solarCalculator/i18n/ja.ts +126 -0
- package/src/tool/solarCalculator/i18n/ko.ts +121 -0
- package/src/tool/solarCalculator/i18n/nl.ts +120 -0
- package/src/tool/solarCalculator/i18n/pl.ts +121 -0
- package/src/tool/solarCalculator/i18n/pt.ts +126 -0
- package/src/tool/solarCalculator/i18n/ru.ts +110 -0
- package/src/tool/solarCalculator/i18n/sv.ts +110 -0
- package/src/tool/solarCalculator/i18n/tr.ts +120 -0
- package/src/tool/solarCalculator/i18n/zh.ts +121 -0
- package/src/tool/solarCalculator/index.ts +17 -9
- package/src/tool/tariffComparator/i18n/de.ts +133 -0
- package/src/tool/tariffComparator/i18n/id.ts +133 -0
- package/src/tool/tariffComparator/i18n/it.ts +133 -0
- package/src/tool/tariffComparator/i18n/ja.ts +133 -0
- package/src/tool/tariffComparator/i18n/ko.ts +133 -0
- package/src/tool/tariffComparator/i18n/nl.ts +133 -0
- package/src/tool/tariffComparator/i18n/pl.ts +133 -0
- package/src/tool/tariffComparator/i18n/pt.ts +133 -0
- package/src/tool/tariffComparator/i18n/ru.ts +106 -0
- package/src/tool/tariffComparator/i18n/sv.ts +111 -0
- package/src/tool/tariffComparator/i18n/tr.ts +133 -0
- package/src/tool/tariffComparator/i18n/zh.ts +133 -0
- package/src/tool/tariffComparator/index.ts +16 -7
- package/src/types.ts +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ProjectorCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'projektor-abstand-rechner';
|
|
6
|
+
const title = 'Projektor Abstandsrechner — Verhältnis & Leinwand';
|
|
7
|
+
const description =
|
|
8
|
+
'Berechnen Sie den exakten Abstand für die Installation Ihres Projektors basierend auf der Leinwandgröße und dem Projektionsverhältnis (Throw Ratio).';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Was ist das Throw Ratio (Projektionsverhältnis)?',
|
|
13
|
+
answer:
|
|
14
|
+
'Es definiert, wie groß das Bild in einem bestimmten Abstand wird. Es wird berechnet, indem man den Projektionsabstand durch die Bildbreite teilt. Ein Verhältnis von 1,5 bedeutet, dass Sie bei einem Abstand von 1,5 m ein 1 m breites Bild erhalten.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Welchen Abstand benötige ich für ein 100-Zoll-Bild?',
|
|
18
|
+
answer:
|
|
19
|
+
'Das hängt vom Throw Ratio Ihres Beamers ab. Bei einem Standardverhältnis von 1,5:1 benötigen Sie etwa 3,3 m. Mit einem Kurzdistanz-Projektor (Short Throw) erreichen Sie das schon bei unter 1 m.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Was ist der Unterschied zwischen 16:9 und 4:3?',
|
|
23
|
+
answer:
|
|
24
|
+
'16:9 ist das Breitbildformat für moderne Filme und Serien. 4:3 ist das klassische Format für Präsentationen. Die Wahl des richtigen Formats verhindert störende schwarze Balken.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Ist die Montagehöhe des Projektors wichtig?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ja. Projektoren haben einen vertikalen Versatz (Offset) oder eine Trapezkorrektur (Keystone). Idealerweise wird er mittig zur Ober- oder Unterkante der Leinwand installiert, um Verzerrungen zu vermeiden.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Throw Ratio ermitteln',
|
|
36
|
+
text: 'Suchen Sie auf dem Karton oder im Handbuch nach Werten wie 1,2:1 oder 1,5-1,8:1.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Bildgröße festlegen',
|
|
40
|
+
text: 'Geben Sie die gewünschte Diagonale in Zoll oder die verfügbare Breite an Ihrer Wand ein.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Format wählen',
|
|
44
|
+
text: 'Wählen Sie 16:9 für Filme, 4:3 für Präsentationen oder 21:9 für Cinemascope.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Abstand ablesen',
|
|
48
|
+
text: 'Der Rechner zeigt Ihnen den exakten Abstand für die Montage Ihres Projektors an.',
|
|
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: 'de',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Quellen',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{ name: 'Projector Central — Abstandsrechner', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
|
|
94
|
+
{ name: 'Epson — Installationsanleitungen', url: 'https://epson.com/' },
|
|
95
|
+
],
|
|
96
|
+
howTo: howToData,
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: 'Die Geometrie der Projektion verstehen',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: 'Die Installation eines Projektors nach Augenmaß kann das Erlebnis ruinieren. Zu nah und das Bild ist winzig; zu weit weg und es mangelt an Helligkeit. Der Schlüssel ist das <strong>Throw Ratio</strong>, das exakt das Verhältnis zwischen Abstand und Bildgröße definiert.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'stats',
|
|
110
|
+
items: [
|
|
111
|
+
{ value: 'TR × B', label: 'Abstandsformel', icon: 'mdi:projector' },
|
|
112
|
+
{ value: '< 0,4', label: 'Ultra Kurzdistanz', icon: 'mdi:arrow-collapse-horizontal' },
|
|
113
|
+
{ value: '> 2,0', label: 'Langdistanz', icon: 'mdi:arrow-expand-horizontal' },
|
|
114
|
+
],
|
|
115
|
+
columns: 3,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'comparative',
|
|
119
|
+
items: [
|
|
120
|
+
{
|
|
121
|
+
title: 'Was ist das Throw Ratio?',
|
|
122
|
+
description: 'Es ist das Verhältnis zwischen Projektionsabstand und Bildbreite. Ein TR von 1,5 bedeutet 1,5 m Abstand pro Meter Bildbreite.',
|
|
123
|
+
icon: 'mdi:ruler',
|
|
124
|
+
points: ['TR < 1: Kurzdistanz, ideal für kleine Räume', 'TR 1–2: Standard für Wohnzimmer', 'TR > 2: Langdistanz für Hörsäle'],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Seitenverhältnis (Format)',
|
|
128
|
+
description: 'Das Format bestimmt die Proportionen. Ein falsches Format führt zu schwarzen Balken und verringert die wahrgenommene Helligkeit.',
|
|
129
|
+
icon: 'mdi:aspect-ratio',
|
|
130
|
+
points: ['16:9: HD/4K Standard für Heimkino', '21:9: Cinemascope für Filmfans', '4:3: Klassisch für Büro & Präsentationen'],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
columns: 2,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Professionelle Installation',
|
|
138
|
+
level: 3,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'paragraph',
|
|
142
|
+
html: '<strong>Lens Shift vs. Keystone:</strong> Falls Ihr Beamer Lens Shift besitzt, nutzen Sie diesen immer vor der digitalen Trapezkorrektur (Keystone). Keystone reduziert die effektive Auflösung. Eine korrekte Montage macht Korrekturen meist überflüssig.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'diagnostic',
|
|
146
|
+
variant: 'warning',
|
|
147
|
+
title: 'Umgebungslicht und Leinwandgewinn',
|
|
148
|
+
icon: 'mdi:lightbulb-on',
|
|
149
|
+
badge: 'Profi-Tipp',
|
|
150
|
+
html: '<p>In hellen Räumen sollten Sie eine Leinwand mit höherem Gewinn (Gain > 1,0) wählen, um den Kontrastverlust auszugleichen. In dunklen Kinosälen ist ein Gain von 1,0 ideal.</p>',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'summary',
|
|
154
|
+
title: 'Checkliste für die Montage',
|
|
155
|
+
items: [
|
|
156
|
+
'Throw Ratio vor der Standortwahl prüfen.',
|
|
157
|
+
'Maximale Bildgröße an der Wand ausmessen.',
|
|
158
|
+
'Beamer mittig zur Leinwand ausrichten.',
|
|
159
|
+
'Digitalen Keystone vermeiden: Physische Position optimieren.',
|
|
160
|
+
'Direkte Lichtquellen auf der Leinwand vermeiden.',
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
ui: {
|
|
165
|
+
configTitle: 'Konfiguration',
|
|
166
|
+
configSubtitle: 'Leinwand & Projektor definieren',
|
|
167
|
+
labelDiagonal: 'Bilddiagonale',
|
|
168
|
+
labelDiagonalUnit: 'Zoll (")',
|
|
169
|
+
labelFormat: 'Bildformat',
|
|
170
|
+
labelThrowRatio: 'Projektionsverhältnis (Throw Ratio)',
|
|
171
|
+
throwRatioHint: 'Beispiel: 1.50 bedeutet, dass Sie für 1 m Breite 1,5 m Abstand benötigen.',
|
|
172
|
+
ratio169Sub: 'TV / HD',
|
|
173
|
+
ratio219Sub: 'Cino',
|
|
174
|
+
ratio43Sub: 'Retro',
|
|
175
|
+
labelWidth: 'Bildbreite',
|
|
176
|
+
labelHeight: 'Bildhöhe',
|
|
177
|
+
labelDistance: 'Benötigter Abstand',
|
|
178
|
+
simulationBadge: 'Echtzeit-Simulation',
|
|
179
|
+
},
|
|
180
|
+
};
|
|
@@ -119,7 +119,7 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
|
|
|
119
119
|
type: 'comparative',
|
|
120
120
|
items: [
|
|
121
121
|
{
|
|
122
|
-
title: "Qu
|
|
122
|
+
title: "Qu est ce que le Throw Ratio ?",
|
|
123
123
|
description: "Le rapport entre la distance de projection et la largeur de l'image. Un TR de 1.5 signifie qu'il faut 1.5m de distance par mètre de largeur d'écran.",
|
|
124
124
|
icon: 'mdi:ruler',
|
|
125
125
|
points: ['TR < 1 : Short Throw, idéal pour les petits espaces', 'TR 1–2 : Standard pour salons et salles de réunion', "TR > 2 : Long Throw, pour les grands auditoriums"],
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ProjectorCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'kalkulator-jarak-proyektor';
|
|
6
|
+
const title = 'Kalkulator Jarak Proyektor — Tembakan dan Layar';
|
|
7
|
+
const description =
|
|
8
|
+
'Hitung jarak tepat untuk memasang proyektor Anda berdasarkan ukuran layar yang diinginkan dan Throw Ratio. Alat visual dengan simulasi real-time.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Apa itu Throw Ratio atau rasio tembakan?',
|
|
13
|
+
answer:
|
|
14
|
+
'Ini adalah angka yang menentukan seberapa besar gambar pada jarak tertentu. Dihitung dengan membagi jarak proyeksi dengan lebar layar. Rasio 1.5 berarti jika Anda memproyeksikan dari 1.5m, Anda akan mendapatkan lebar gambar 1m.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Berapa jarak yang saya butuhkan untuk layar 100 inci?',
|
|
18
|
+
answer:
|
|
19
|
+
'Tergantung pada Throw Ratio proyektor Anda. Dengan rasio standar 1.5:1, Anda membutuhkan sekitar 3.3m. Dengan proyektor tembakan pendek (Short Throw), Anda bisa mencapainya dalam jarak kurang dari 1m.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Apa perbedaan antara 16:9 dan 4:3?',
|
|
23
|
+
answer:
|
|
24
|
+
'16:9 adalah format layar lebar untuk film dan serial modern. 4:3 adalah format klasik untuk presentasi. Memilih yang benar akan menghindari bilah hitam yang berlebihan.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Apakah tinggi pemasangan proyektor berpengaruh?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ya. Proyektor memiliki offset vertikal atau koreksi keystone. Idealnya dipasang terpusat terhadap tepi atas atau bawah layar untuk menghindari distorsi.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Lihat Throw Ratio',
|
|
36
|
+
text: 'Cari di kotak atau manual proyektor Anda untuk angka seperti 1.2:1 atau 1.5-1.8:1.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Tentukan ukuran layar',
|
|
40
|
+
text: 'Masukkan jumlah inci diagonal yang ingin Anda capai atau lebar yang tersedia di dinding Anda.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Pilih format',
|
|
44
|
+
text: 'Pilih 16:9 untuk menonton film dan serial, 4:3 untuk presentasi, atau 21:9 untuk cinemascope.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Dapatkan jaraknya',
|
|
48
|
+
text: 'Kalkulator akan memberi Anda jarak tepat untuk memasang braket proyektor.',
|
|
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: 'IDR' },
|
|
82
|
+
inLanguage: 'id',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Pertanyaan Umum',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Daftar Pustaka',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{ name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
|
|
94
|
+
{ name: 'Epson — Panduan Jarak Proyeksi', url: 'https://epson.com/' },
|
|
95
|
+
{ name: 'BenQ — Pusat Pengetahuan', url: 'https://www.benq.com/en-us/knowledge-center/' },
|
|
96
|
+
],
|
|
97
|
+
howTo: howToData,
|
|
98
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
99
|
+
seo: [
|
|
100
|
+
{
|
|
101
|
+
type: 'title',
|
|
102
|
+
text: 'Kuasai Geometri Proyeksi',
|
|
103
|
+
level: 2,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html: 'Memasang proyektor hanya dengan perkiraan bisa merusak pengalaman menonton. Terlalu dekat dan gambar akan kecil; terlalu jauh dan Anda akan kehilangan kecerahan. Kuncinya ada pada <strong>Throw Ratio</strong>, angka yang menentukan hubungan antara jarak dan ukuran gambar secara tepat.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'stats',
|
|
111
|
+
items: [
|
|
112
|
+
{ value: 'TR × W', label: 'Formula Jarak', icon: 'mdi:projector' },
|
|
113
|
+
{ value: '< 0.4', label: 'Ultra Short Throw', icon: 'mdi:arrow-collapse-horizontal' },
|
|
114
|
+
{ value: '> 2.0', label: 'Long Throw', icon: 'mdi:arrow-expand-horizontal' },
|
|
115
|
+
],
|
|
116
|
+
columns: 3,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'comparative',
|
|
120
|
+
items: [
|
|
121
|
+
{
|
|
122
|
+
title: 'Apa itu Throw Ratio?',
|
|
123
|
+
description: 'Ini adalah hubungan antara jarak proyeksi dan lebar gambar. TR 1.5 berarti Anda butuh jarak 1.5m untuk setiap meter lebar layar.',
|
|
124
|
+
icon: 'mdi:ruler',
|
|
125
|
+
points: ['TR < 1: Short Throw, ideal untuk ruang sempit', 'TR 1–2: Standar untuk ruang tamu', 'TR > 2: Long Throw, untuk auditorium besar'],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
title: 'Format dan Rasio Aspek',
|
|
129
|
+
description: 'Format menentukan proporsi gambar. Menggunakan format yang salah akan menghasilkan bilah hitam yang membuang bagian layar.',
|
|
130
|
+
icon: 'mdi:aspect-ratio',
|
|
131
|
+
points: ['16:9: standar HD/4K untuk bioskop rumah', '21:9: format cinemascope untuk film', '4:3: untuk presentasi kantoran'],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
columns: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'title',
|
|
138
|
+
text: 'Pemasangan Profesional',
|
|
139
|
+
level: 3,
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'paragraph',
|
|
143
|
+
html: '<strong>Lens Shift vs Keystone:</strong> Jika proyektor Anda memiliki fitur Lens Shift, selalu gunakan itu daripada Keystone digital. Keystone memotong piksel dan mengurangi resolusi efektif.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'diagnostic',
|
|
147
|
+
variant: 'warning',
|
|
148
|
+
title: 'Cahaya Sekitar dan Gain Layar',
|
|
149
|
+
icon: 'mdi:lightbulb-on',
|
|
150
|
+
badge: 'Pro Tip',
|
|
151
|
+
html: '<p>Di ruangan dengan cahaya sekitar, pertimbangkan layar high-gain (>1.0) untuk mengompensasi hilangnya kontras.</p>',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'summary',
|
|
155
|
+
title: 'Daftar Periksa Pemasangan',
|
|
156
|
+
items: [
|
|
157
|
+
'Catat Throw Ratio proyektor sebelum memilih lokasi.',
|
|
158
|
+
'Verifikasi ukuran gambar maksimum berdasarkan ruang dinding yang tersedia.',
|
|
159
|
+
'Pasang proyektor secara terpusat secara vertikal terhadap layar.',
|
|
160
|
+
'Hindari digital Keystone: gunakan Lens Shift atau sesuaikan posisi fisik.',
|
|
161
|
+
'Pastikan tidak ada sumber cahaya langsung yang mengarah ke layar.',
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
ui: {
|
|
166
|
+
configTitle: 'Konfigurasi',
|
|
167
|
+
configSubtitle: 'Tentukan layar dan proyektor Anda',
|
|
168
|
+
labelDiagonal: 'Diagonal Layar',
|
|
169
|
+
labelDiagonalUnit: 'Inci (")',
|
|
170
|
+
labelFormat: 'Format (Rasio Aspek)',
|
|
171
|
+
labelThrowRatio: 'Rasio Tembakan (Throw Ratio)',
|
|
172
|
+
throwRatioHint: 'Lihat manual proyektor Anda. Contoh: 1.50 berarti untuk lebar 1m, Anda butuh jarak 1.5m.',
|
|
173
|
+
ratio169Sub: 'TV / HD',
|
|
174
|
+
ratio219Sub: 'Bioskop',
|
|
175
|
+
ratio43Sub: 'Dokumen',
|
|
176
|
+
labelWidth: 'Lebar Layar',
|
|
177
|
+
labelHeight: 'Tinggi Layar',
|
|
178
|
+
labelDistance: 'Jarak yang Diperlukan',
|
|
179
|
+
simulationBadge: 'Simulasi Real-Time',
|
|
180
|
+
},
|
|
181
|
+
};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ProjectorCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'calcolatore-distanza-proiettore';
|
|
6
|
+
const title = 'Calcolatore Distanza Proiettore — Tiro e Schermo';
|
|
7
|
+
const description =
|
|
8
|
+
'Calcola la distanza esatta per installare il tuo proiettore in base alla dimensione dello schermo desiderata e al Throw Ratio.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Cos\'è il Throw Ratio (rapporto di tiro)?',
|
|
13
|
+
answer:
|
|
14
|
+
'È un numero che definisce quanto sarà grande l\'immagine a una distanza specifica. Si calcola dividendo la distanza di proiezione per la larghezza dell\'immagine. Un rapporto di 1.5 significa che se proietti da 1.5m, avrai 1m di larghezza immagine.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'A che distanza devo mettere il proiettore per 100 pollici?',
|
|
18
|
+
answer:
|
|
19
|
+
'Dipende dal Throw Ratio del proiettore. Con un rapporto standard di 1.5:1 servirebbero circa 3.3m. Con un proiettore a tiro corto (Short Throw) potresti riuscirci a meno di 1m.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Che differenza c\'è tra 16:9 e 4:3?',
|
|
23
|
+
answer:
|
|
24
|
+
'16:9 è il formato panoramico per film e serie moderni. 4:3 è il formato classico per presentazioni. Scegliere quello corretto evita fastidiose bande nere.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'L\'altezza di installazione è importante?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sì. I proiettori hanno un offset verticale o correzione keystone. L\'ideale è installarlo centrato rispetto al bordo superiore o inferiore dello schermo per evitare deformazioni.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Consultare il Throw Ratio',
|
|
36
|
+
text: 'Cerca sul manuale o sulla scatola un valore come 1.2:1 o 1.5-1.8:1.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Definire la dimensione',
|
|
40
|
+
text: 'Inserisci i pollici della diagonale o la larghezza disponibile sulla parete.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Scegliere il formato',
|
|
44
|
+
text: 'Seleziona 16:9 per i film, 4:3 per le presentazioni o 21:9 per il cinema.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Ottenere la distanza',
|
|
48
|
+
text: 'Il calcolatore ti darà la distanza esatta per installare il supporto.',
|
|
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: 'it',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Domande Frequenti',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Bibliografia',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{ name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
|
|
94
|
+
{ name: 'Guida alla Proiezione Epson', url: 'https://epson.com/' },
|
|
95
|
+
],
|
|
96
|
+
howTo: howToData,
|
|
97
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
|
+
seo: [
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: 'Domina la Geometria di Proiezione',
|
|
102
|
+
level: 2,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html: 'Installare un proiettore "a occhio" può rovinare l\'esperienza. Troppo vicino e l\'immagine è piccola; troppo lontano e perderai luminosità. La chiave è il <strong>Throw Ratio</strong>, un numero che definisce la relazione tra distanza e dimensione immagine.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'stats',
|
|
110
|
+
items: [
|
|
111
|
+
{ value: 'TR × W', label: 'Formula Distanza', icon: 'mdi:projector' },
|
|
112
|
+
{ value: '< 0.4', label: 'Ultra Short Throw', icon: 'mdi:arrow-collapse-horizontal' },
|
|
113
|
+
{ value: '> 2.0', label: 'Long Throw', icon: 'mdi:arrow-expand-horizontal' },
|
|
114
|
+
],
|
|
115
|
+
columns: 3,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'comparative',
|
|
119
|
+
items: [
|
|
120
|
+
{
|
|
121
|
+
title: 'Cos\'è il Throw Ratio?',
|
|
122
|
+
description: 'È il rapporto tra distanza di proiezione e larghezza immagine. Un TR di 1.5 significa che serve 1.5m di distanza per ogni metro di larghezza schermo.',
|
|
123
|
+
icon: 'mdi:ruler',
|
|
124
|
+
points: ['TR < 1: Short Throw, per spazi piccoli', 'TR 1–2: Standard per soggiorni', 'TR > 2: Long Throw, per auditorium'],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Formato e Aspect Ratio',
|
|
128
|
+
description: 'Il formato determina le proporzioni. Usare quello errato genera barre nere e spreca luminosità.',
|
|
129
|
+
icon: 'mdi:aspect-ratio',
|
|
130
|
+
points: ['16:9: standard HD/4K per home cinema', '21:9: formato panoramico cinematografico', '4:3: per presentazioni da ufficio'],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
columns: 2,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Installazione Professionale',
|
|
138
|
+
level: 3,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'paragraph',
|
|
142
|
+
html: '<strong>Lens Shift vs Keystone:</strong> Se il proiettore ha il Lens Shift, usalo sempre al posto del Keystone digitale. Il Keystone riduce la risoluzione effettiva.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'diagnostic',
|
|
146
|
+
variant: 'warning',
|
|
147
|
+
title: 'Luce Ambiente e Guadagno Schermo',
|
|
148
|
+
icon: 'mdi:lightbulb-on',
|
|
149
|
+
badge: 'Pro Tip',
|
|
150
|
+
html: '<p>In stanze luminose, usa uno schermo ad alto guadagno (>1.0) per compensare la perdita di contrasto.</p>',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'summary',
|
|
154
|
+
title: 'Checklist di Installazione',
|
|
155
|
+
items: [
|
|
156
|
+
'Verifica il Throw Ratio prima di posizionare il supporto.',
|
|
157
|
+
'Controlla lo spazio disponibile sulla parete.',
|
|
158
|
+
'Centra il proiettore rispetto allo schermo.',
|
|
159
|
+
'Evita il Keystone: meglio la posizione fisica corretta.',
|
|
160
|
+
'Elimina sorgenti luminose che puntano direttamente sullo schermo.',
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
ui: {
|
|
165
|
+
configTitle: 'Configurazione',
|
|
166
|
+
configSubtitle: 'Definisci schermo e proiettore',
|
|
167
|
+
labelDiagonal: 'Diagonale Schermo',
|
|
168
|
+
labelDiagonalUnit: 'Pollici (")',
|
|
169
|
+
labelFormat: 'Formato',
|
|
170
|
+
labelThrowRatio: 'Rapporto di Tiro (Throw Ratio)',
|
|
171
|
+
throwRatioHint: 'Esempio: 1.50 significa che per 1m di larghezza servono 1.5m di distanza.',
|
|
172
|
+
ratio169Sub: 'TV / HD',
|
|
173
|
+
ratio219Sub: 'Cinema',
|
|
174
|
+
ratio43Sub: 'Documenti',
|
|
175
|
+
labelWidth: 'Larghezza Schermo',
|
|
176
|
+
labelHeight: 'Altezza Schermo',
|
|
177
|
+
labelDistance: 'Distanza Richiesta',
|
|
178
|
+
simulationBadge: 'Simulazione Real-Time',
|
|
179
|
+
},
|
|
180
|
+
};
|