@jjlmoya/utils-home 1.16.0 → 1.17.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.
Files changed (125) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +28 -12
  3. package/src/tests/locale_completeness.test.ts +2 -20
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/dewPointCalculator/bibliography.ts +10 -0
  7. package/src/tool/dewPointCalculator/i18n/de.ts +2 -12
  8. package/src/tool/dewPointCalculator/i18n/en.ts +2 -12
  9. package/src/tool/dewPointCalculator/i18n/es.ts +2 -12
  10. package/src/tool/dewPointCalculator/i18n/fr.ts +2 -12
  11. package/src/tool/dewPointCalculator/i18n/id.ts +2 -12
  12. package/src/tool/dewPointCalculator/i18n/it.ts +2 -12
  13. package/src/tool/dewPointCalculator/i18n/ja.ts +2 -12
  14. package/src/tool/dewPointCalculator/i18n/ko.ts +2 -12
  15. package/src/tool/dewPointCalculator/i18n/nl.ts +2 -12
  16. package/src/tool/dewPointCalculator/i18n/pl.ts +2 -12
  17. package/src/tool/dewPointCalculator/i18n/pt.ts +2 -12
  18. package/src/tool/dewPointCalculator/i18n/ru.ts +2 -12
  19. package/src/tool/dewPointCalculator/i18n/sv.ts +2 -12
  20. package/src/tool/dewPointCalculator/i18n/tr.ts +2 -12
  21. package/src/tool/dewPointCalculator/i18n/zh.ts +2 -12
  22. package/src/tool/dewPointCalculator/seo.astro +2 -1
  23. package/src/tool/heatingComparator/bibliography.ts +14 -0
  24. package/src/tool/heatingComparator/i18n/de.ts +2 -16
  25. package/src/tool/heatingComparator/i18n/en.ts +2 -12
  26. package/src/tool/heatingComparator/i18n/es.ts +2 -16
  27. package/src/tool/heatingComparator/i18n/fr.ts +2 -12
  28. package/src/tool/heatingComparator/i18n/id.ts +2 -16
  29. package/src/tool/heatingComparator/i18n/it.ts +2 -16
  30. package/src/tool/heatingComparator/i18n/ja.ts +296 -310
  31. package/src/tool/heatingComparator/i18n/ko.ts +296 -306
  32. package/src/tool/heatingComparator/i18n/nl.ts +2 -16
  33. package/src/tool/heatingComparator/i18n/pl.ts +2 -16
  34. package/src/tool/heatingComparator/i18n/pt.ts +2 -16
  35. package/src/tool/heatingComparator/i18n/ru.ts +2 -12
  36. package/src/tool/heatingComparator/i18n/sv.ts +2 -16
  37. package/src/tool/heatingComparator/i18n/tr.ts +2 -16
  38. package/src/tool/heatingComparator/i18n/zh.ts +296 -306
  39. package/src/tool/heatingComparator/seo.astro +3 -3
  40. package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
  41. package/src/tool/ledSavingCalculator/i18n/de.ts +2 -12
  42. package/src/tool/ledSavingCalculator/i18n/en.ts +2 -16
  43. package/src/tool/ledSavingCalculator/i18n/es.ts +2 -16
  44. package/src/tool/ledSavingCalculator/i18n/fr.ts +2 -16
  45. package/src/tool/ledSavingCalculator/i18n/id.ts +2 -12
  46. package/src/tool/ledSavingCalculator/i18n/it.ts +2 -12
  47. package/src/tool/ledSavingCalculator/i18n/ja.ts +2 -12
  48. package/src/tool/ledSavingCalculator/i18n/ko.ts +2 -12
  49. package/src/tool/ledSavingCalculator/i18n/nl.ts +2 -12
  50. package/src/tool/ledSavingCalculator/i18n/pl.ts +2 -12
  51. package/src/tool/ledSavingCalculator/i18n/pt.ts +2 -12
  52. package/src/tool/ledSavingCalculator/i18n/ru.ts +2 -12
  53. package/src/tool/ledSavingCalculator/i18n/sv.ts +2 -12
  54. package/src/tool/ledSavingCalculator/i18n/tr.ts +2 -12
  55. package/src/tool/ledSavingCalculator/i18n/zh.ts +2 -12
  56. package/src/tool/ledSavingCalculator/seo.astro +2 -1
  57. package/src/tool/projectorCalculator/bibliography.ts +5 -0
  58. package/src/tool/projectorCalculator/i18n/de.ts +2 -6
  59. package/src/tool/projectorCalculator/i18n/en.ts +2 -7
  60. package/src/tool/projectorCalculator/i18n/es.ts +2 -7
  61. package/src/tool/projectorCalculator/i18n/fr.ts +2 -7
  62. package/src/tool/projectorCalculator/i18n/id.ts +2 -7
  63. package/src/tool/projectorCalculator/i18n/it.ts +2 -6
  64. package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
  65. package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
  66. package/src/tool/projectorCalculator/i18n/nl.ts +2 -6
  67. package/src/tool/projectorCalculator/i18n/pl.ts +2 -6
  68. package/src/tool/projectorCalculator/i18n/pt.ts +2 -6
  69. package/src/tool/projectorCalculator/i18n/ru.ts +2 -6
  70. package/src/tool/projectorCalculator/i18n/sv.ts +2 -6
  71. package/src/tool/projectorCalculator/i18n/tr.ts +2 -6
  72. package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
  73. package/src/tool/projectorCalculator/seo.astro +2 -1
  74. package/src/tool/qrGenerator/bibliography.ts +14 -0
  75. package/src/tool/qrGenerator/i18n/de.ts +192 -202
  76. package/src/tool/qrGenerator/i18n/en.ts +2 -16
  77. package/src/tool/qrGenerator/i18n/es.ts +2 -16
  78. package/src/tool/qrGenerator/i18n/fr.ts +2 -16
  79. package/src/tool/qrGenerator/i18n/id.ts +146 -150
  80. package/src/tool/qrGenerator/i18n/it.ts +169 -173
  81. package/src/tool/qrGenerator/i18n/ja.ts +146 -150
  82. package/src/tool/qrGenerator/i18n/ko.ts +146 -150
  83. package/src/tool/qrGenerator/i18n/nl.ts +146 -150
  84. package/src/tool/qrGenerator/i18n/pl.ts +146 -150
  85. package/src/tool/qrGenerator/i18n/pt.ts +146 -150
  86. package/src/tool/qrGenerator/i18n/ru.ts +146 -150
  87. package/src/tool/qrGenerator/i18n/sv.ts +146 -150
  88. package/src/tool/qrGenerator/i18n/tr.ts +146 -150
  89. package/src/tool/qrGenerator/i18n/zh.ts +146 -150
  90. package/src/tool/qrGenerator/seo.astro +2 -1
  91. package/src/tool/solarCalculator/bibliography.ts +5 -0
  92. package/src/tool/solarCalculator/i18n/de.ts +141 -145
  93. package/src/tool/solarCalculator/i18n/en.ts +2 -7
  94. package/src/tool/solarCalculator/i18n/es.ts +2 -7
  95. package/src/tool/solarCalculator/i18n/fr.ts +2 -7
  96. package/src/tool/solarCalculator/i18n/id.ts +2 -6
  97. package/src/tool/solarCalculator/i18n/it.ts +2 -6
  98. package/src/tool/solarCalculator/i18n/ja.ts +121 -125
  99. package/src/tool/solarCalculator/i18n/ko.ts +116 -120
  100. package/src/tool/solarCalculator/i18n/nl.ts +2 -5
  101. package/src/tool/solarCalculator/i18n/pl.ts +2 -6
  102. package/src/tool/solarCalculator/i18n/pt.ts +2 -6
  103. package/src/tool/solarCalculator/i18n/ru.ts +2 -5
  104. package/src/tool/solarCalculator/i18n/sv.ts +2 -5
  105. package/src/tool/solarCalculator/i18n/tr.ts +2 -5
  106. package/src/tool/solarCalculator/i18n/zh.ts +116 -120
  107. package/src/tool/solarCalculator/seo.astro +2 -1
  108. package/src/tool/tariffComparator/bibliography.ts +7 -0
  109. package/src/tool/tariffComparator/i18n/de.ts +129 -132
  110. package/src/tool/tariffComparator/i18n/en.ts +2 -9
  111. package/src/tool/tariffComparator/i18n/es.ts +2 -9
  112. package/src/tool/tariffComparator/i18n/fr.ts +2 -9
  113. package/src/tool/tariffComparator/i18n/id.ts +2 -5
  114. package/src/tool/tariffComparator/i18n/it.ts +2 -5
  115. package/src/tool/tariffComparator/i18n/ja.ts +129 -132
  116. package/src/tool/tariffComparator/i18n/ko.ts +129 -132
  117. package/src/tool/tariffComparator/i18n/nl.ts +2 -5
  118. package/src/tool/tariffComparator/i18n/pl.ts +2 -5
  119. package/src/tool/tariffComparator/i18n/pt.ts +2 -5
  120. package/src/tool/tariffComparator/i18n/ru.ts +2 -5
  121. package/src/tool/tariffComparator/i18n/sv.ts +2 -5
  122. package/src/tool/tariffComparator/i18n/tr.ts +2 -5
  123. package/src/tool/tariffComparator/i18n/zh.ts +129 -132
  124. package/src/tool/tariffComparator/seo.astro +2 -1
  125. package/src/types.ts +0 -2
@@ -1,180 +1,176 @@
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 = 'projector-throw-calculator';
6
- const title = '프로젝터 투사거리 계산기 — 화면 크기 및 위치';
7
- const description =
8
- '원하는 화면 크기와 프로젝터의 투사비(Throw Ratio)에 따른 정확한 설치 거리를 계산해 보세요. 실시간 시뮬레이션 기능을 제공합니다.';
9
-
10
- const faqData = [
11
- {
12
- question: '투사비(Throw Ratio)란 무엇인가요?',
13
- answer:
14
- '특정 거리에서 화면이 얼마나 커지는지를 결정하는 숫자입니다. 투사 거리를 화면 가로 폭으로 나눈 값입니다. 투사비가 1.5라면 1.5m 거리에서 가로 1m 크기의 화면이 만들어집니다.',
15
- },
16
- {
17
- question: '100인치 화면을 만들려면 거리가 얼마나 필요한가요?',
18
- answer:
19
- '프로젝터의 투사비에 따라 다릅니다. 표준 투사비 1.5:1 기준으로는 약 3.3m가 필요합니다. 단초점(Short Throw) 프로젝터라면 1m 미만에서도 가능합니다.',
20
- },
21
- {
22
- question: '16:9와 4:3의 차이는 무엇인가요?',
23
- answer:
24
- '16:9는 영화나 최신 드라마 감상에 적합한 와이드 포맷입니다. 4:3은 프레젠테이션이나 옛날 영상에 주로 쓰이는 포맷입니다. 적절한 포맷을 선택해야 불필요한 블랙바를 줄일 수 있습니다.',
25
- },
26
- {
27
- question: '프로젝터 설치 높이가 중요한가요?',
28
- answer:
29
- '매우 중요합니다. 프로젝터에는 렌즈 시프트나 키스톤 보정 기능이 있습니다. 왜곡을 방지하려면 화면의 상단 또는 하단 끝부분에 맞춰 중앙에 설치하는 것이 가장 좋습니다.',
30
- },
31
- ];
32
-
33
- const howToData = [
34
- {
35
- name: '투사비 확인',
36
- text: '프로젝터 본체나 매뉴얼에서 1.2:1 또는 1.5-1.8:1 같은 숫자를 찾습니다.',
37
- },
38
- {
39
- name: '화면 크기 설정',
40
- text: '원하는 대각선 인치 수 또는 벽면의 가로 길이를 입력합니다.',
41
- },
42
- {
43
- name: '화면 비율 선택',
44
- text: '영화는 16:9, 발표용은 4:3, 시네마스코프는 21:9를 선택하세요.',
45
- },
46
- {
47
- name: '설치 거리 확인',
48
- text: '계산기가 프로젝터 브래킷을 고정할 정확한 위치(거리)를 알려줍니다.',
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,
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'projector-throw-calculator';
7
+ const title = '프로젝터 투사거리 계산기 — 화면 크기 및 위치';
8
+ const description =
9
+ '원하는 화면 크기와 프로젝터의 투사비(Throw Ratio)에 따른 정확한 설치 거리를 계산해 보세요. 실시간 시뮬레이션 기능을 제공합니다.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: '투사비(Throw Ratio)란 무엇인가요?',
14
+ answer:
15
+ '특정 거리에서 화면이 얼마나 커지는지를 결정하는 숫자입니다. 투사 거리를 화면 가로 폭으로 나눈 값입니다. 투사비가 1.5라면 1.5m 거리에서 가로 1m 크기의 화면이 만들어집니다.',
16
+ },
17
+ {
18
+ question: '100인치 화면을 만들려면 거리가 얼마나 필요한가요?',
19
+ answer:
20
+ '프로젝터의 투사비에 따라 다릅니다. 표준 투사비 1.5:1 기준으로는 약 3.3m가 필요합니다. 단초점(Short Throw) 프로젝터라면 1m 미만에서도 가능합니다.',
21
+ },
22
+ {
23
+ question: '16:9와 4:3의 차이는 무엇인가요?',
24
+ answer:
25
+ '16:9는 영화나 최신 드라마 감상에 적합한 와이드 포맷입니다. 4:3은 프레젠테이션이나 옛날 영상에 주로 쓰이는 포맷입니다. 적절한 포맷을 선택해야 불필요한 블랙바를 줄일 수 있습니다.',
26
+ },
27
+ {
28
+ question: '프로젝터 설치 높이가 중요한가요?',
29
+ answer:
30
+ '매우 중요합니다. 프로젝터에는 렌즈 시프트나 키스톤 보정 기능이 있습니다. 왜곡을 방지하려면 화면의 상단 또는 하단 끝부분에 맞춰 중앙에 설치하는 것이 가장 좋습니다.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: '투사비 확인',
37
+ text: '프로젝터 본체나 매뉴얼에서 1.2:1 또는 1.5-1.8:1 같은 숫자를 찾습니다.',
38
+ },
39
+ {
40
+ name: '화면 크기 설정',
41
+ text: '원하는 대각선 인치 수 또는 벽면의 가로 길이를 입력합니다.',
42
+ },
43
+ {
44
+ name: '화면 비율 선택',
45
+ text: '영화는 16:9, 발표용은 4:3, 시네마스코프는 21:9를 선택하세요.',
46
+ },
47
+ {
48
+ name: '설치 거리 확인',
49
+ text: '계산기가 프로젝터 브래킷을 고정할 정확한 위치(거리)를 알려줍니다.',
50
+ },
51
+ ];
52
+
53
+ const faqSchema: WithContext<FAQPage> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'FAQPage',
56
+ mainEntity: faqData.map((item) => ({
57
+ '@type': 'Question',
58
+ name: item.question,
59
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
60
+ })),
61
+ };
62
+
63
+ const howToSchema: WithContext<HowTo> = {
64
+ '@context': 'https://schema.org',
65
+ '@type': 'HowTo',
66
+ name: title,
67
+ description,
68
+ step: howToData.map((step) => ({
69
+ '@type': 'HowToStep',
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
83
+ inLanguage: 'ko',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
87
+ slug,
88
+ title,
66
89
  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: 'KRW' },
82
- inLanguage: 'ko',
83
- };
84
-
85
- export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
- slug,
87
- title,
88
- description,
89
- faqTitle: '자주 묻는 질문',
90
- faq: faqData,
91
- bibliographyTitle: '참고 자료',
92
- bibliography: [
93
- { name: 'Projector Central — 투사거리 계산기', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
94
- { name: 'Epson 투사 시뮬레이터', url: 'https://epson.com/' },
95
- ],
96
- howTo: howToData,
97
- schemas: [faqSchema, howToSchema, appSchema],
98
- seo: [
99
- {
100
- type: 'title',
101
- text: '프로젝션 설계의 정석',
102
- level: 2,
103
- },
104
- {
105
- type: 'paragraph',
106
- html: '눈짐작으로 프로젝터를 설치하면 화질을 망칠 수 있습니다. 너무 가까우면 화면이 작고, 너무 멀면 밝기가 떨어집니다. 핵심은 <strong>투사비(Throw Ratio)</strong>를 정확히 파악하는 것입니다.',
107
- },
108
- {
109
- type: 'stats',
110
- items: [
111
- { value: 'TR × W', label: '투사거리 공식', icon: 'mdi:projector' },
112
- { value: '< 0.4', label: '초단초점', icon: 'mdi:arrow-collapse-horizontal' },
113
- { value: '> 2.0', label: '장초점', icon: 'mdi:arrow-expand-horizontal' },
114
- ],
115
- columns: 3,
116
- },
117
- {
118
- type: 'comparative',
119
- items: [
120
- {
121
- title: '투사비란?',
122
- description: '거리와 화면 폭의 비율입니다. 투사비 1.5는 화면 폭 1m당 1.5m의 거리가 필요함을 뜻합니다.',
123
- icon: 'mdi:ruler',
124
- points: ['TR < 1: 단초점, 좁은 방에 최적', 'TR 1–2: 거실용 표준 규격', 'TR > 2: 대강당용 장초점'],
125
- },
126
- {
127
- title: '화면 비율(포맷)',
128
- description: '이미지의 가로세로 비율입니다. 잘못 쓰면 블랙바가 생기고 화면 활용도가 떨어집니다.',
129
- icon: 'mdi:aspect-ratio',
130
- points: ['16:9: HD/4K 영화 TV 표준', '21:9: 극장용 와이드 포맷', '4:3: 프레젠테이션용'],
131
- },
132
- ],
133
- columns: 2,
134
- },
135
- {
136
- type: 'title',
137
- text: '전문가 설치 팁',
138
- level: 3,
139
- },
140
- {
141
- type: 'paragraph',
142
- html: '<strong>렌즈 시프트 vs 키스톤:</strong> 렌즈 시프트 기능이 있다면 디지털 키스톤 대신 무조건 렌즈 시프트를 쓰세요. 키스톤은 해상도를 깎아먹습니다.',
143
- },
144
- {
145
- type: 'diagnostic',
146
- variant: 'warning',
147
- title: '주변광과 스크린 게인',
148
- icon: 'mdi:lightbulb-on',
149
- badge: '전문가 조언',
150
- html: '<p>어둡지 않은 환경에서는 고휘도(Gain > 1.0) 스크린을 써서 명암비 저하를 방지하세요.</p>',
151
- },
152
- {
153
- type: 'summary',
154
- title: '설치 체크리스트',
155
- items: [
156
- '설치 전에 내 프로젝터의 투사비를 반드시 메모하세요.',
157
- '벽면 가용 공간에 맞는 최대 화면 크기를 확인하세요.',
158
- '렌즈 중심이 화면 중앙과 수직이 되게 설치하세요.',
159
- '디지털 보정보다는 가급적 물리적 위치 조정을 우선하세요.',
160
- '스크린에 직접 닿는 빛이 없는지 확인하세요.',
161
- ],
162
- },
163
- ],
164
- ui: {
165
- configTitle: '설치 설정',
166
- configSubtitle: '스크린 및 프로젝터 정보 입력',
167
- labelDiagonal: '스크린 인치(대각선)',
168
- labelDiagonalUnit: '인치 (")',
169
- labelFormat: '화면 비율',
170
- labelThrowRatio: '투사비 (Throw Ratio)',
171
- throwRatioHint: '매뉴얼 참조(예: 1.50은 가로 1m당 1.5m 거리 필요)',
172
- ratio169Sub: 'TV / HD',
173
- ratio219Sub: '영화',
174
- ratio43Sub: '문서',
175
- labelWidth: '화면 가로 길이',
176
- labelHeight: '화면 세로 길이',
177
- labelDistance: '필요 설치 거리',
178
- simulationBadge: '실시간 예측치',
179
- },
180
- };
90
+ faq: faqData,
91
+ bibliography,
92
+ howTo: howToData,
93
+ schemas: [faqSchema, howToSchema, appSchema],
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: '프로젝션 설계의 정석',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'paragraph',
102
+ html: '눈짐작으로 프로젝터를 설치하면 화질을 망칠 수 있습니다. 너무 가까우면 화면이 작고, 너무 멀면 밝기가 떨어집니다. 핵심은 <strong>투사비(Throw Ratio)</strong>를 정확히 파악하는 것입니다.',
103
+ },
104
+ {
105
+ type: 'stats',
106
+ items: [
107
+ { value: 'TR × W', label: '투사거리 공식', icon: 'mdi:projector' },
108
+ { value: '< 0.4', label: '초단초점', icon: 'mdi:arrow-collapse-horizontal' },
109
+ { value: '> 2.0', label: '장초점', icon: 'mdi:arrow-expand-horizontal' },
110
+ ],
111
+ columns: 3,
112
+ },
113
+ {
114
+ type: 'comparative',
115
+ items: [
116
+ {
117
+ title: '투사비란?',
118
+ description: '거리와 화면 폭의 비율입니다. 투사비 1.5는 화면 폭 1m당 1.5m의 거리가 필요함을 뜻합니다.',
119
+ icon: 'mdi:ruler',
120
+ points: ['TR < 1: 단초점, 좁은 방에 최적', 'TR 1–2: 거실용 표준 규격', 'TR > 2: 대강당용 장초점'],
121
+ },
122
+ {
123
+ title: '화면 비율(포맷)',
124
+ description: '이미지의 가로세로 비율입니다. 잘못 쓰면 블랙바가 생기고 화면 활용도가 떨어집니다.',
125
+ icon: 'mdi:aspect-ratio',
126
+ points: ['16:9: HD/4K 영화 및 TV 표준', '21:9: 극장용 와이드 포맷', '4:3: 프레젠테이션용'],
127
+ },
128
+ ],
129
+ columns: 2,
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: '전문가 설치 팁',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'paragraph',
138
+ html: '<strong>렌즈 시프트 vs 키스톤:</strong> 렌즈 시프트 기능이 있다면 디지털 키스톤 대신 무조건 렌즈 시프트를 쓰세요. 키스톤은 해상도를 깎아먹습니다.',
139
+ },
140
+ {
141
+ type: 'diagnostic',
142
+ variant: 'warning',
143
+ title: '주변광과 스크린 게인',
144
+ icon: 'mdi:lightbulb-on',
145
+ badge: '전문가 조언',
146
+ html: '<p>어둡지 않은 환경에서는 고휘도(Gain > 1.0) 스크린을 써서 명암비 저하를 방지하세요.</p>',
147
+ },
148
+ {
149
+ type: 'summary',
150
+ title: '설치 체크리스트',
151
+ items: [
152
+ '설치 전에 내 프로젝터의 투사비를 반드시 메모하세요.',
153
+ '벽면 가용 공간에 맞는 최대 화면 크기를 확인하세요.',
154
+ '렌즈 중심이 화면 중앙과 수직이 되게 설치하세요.',
155
+ '디지털 보정보다는 가급적 물리적 위치 조정을 우선하세요.',
156
+ '스크린에 직접 닿는 빛이 없는지 확인하세요.',
157
+ ],
158
+ },
159
+ ],
160
+ ui: {
161
+ configTitle: '설치 설정',
162
+ configSubtitle: '스크린 및 프로젝터 정보 입력',
163
+ labelDiagonal: '스크린 인치(대각선)',
164
+ labelDiagonalUnit: '인치 (")',
165
+ labelFormat: '화면 비율',
166
+ labelThrowRatio: '투사비 (Throw Ratio)',
167
+ throwRatioHint: '매뉴얼 참조(예: 1.50은 가로 1m당 1.5m 거리 필요)',
168
+ ratio169Sub: 'TV / HD',
169
+ ratio219Sub: '영화',
170
+ ratio43Sub: '문서',
171
+ labelWidth: '화면 가로 길이',
172
+ labelHeight: '화면 세로 길이',
173
+ labelDistance: '필요 설치 거리',
174
+ simulationBadge: '실시간 예측치',
175
+ },
176
+ };
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'projector-afstand-calculator';
6
7
  const title = 'Projector Afstand Calculator — Throw Ratio';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Veelgestelde Vragen',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Referenties',
92
- bibliography: [
93
- { name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
94
- { name: 'Epson Projectie Gids', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-odleglosci-projektora';
6
7
  const title = 'Kalkulator Odległości Projektora — Rzut i Ekran';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Często Zadawane Pytania',
90
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: 'Epson — Instrukcje Projekcji', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-distancia-projetor';
6
7
  const title = 'Calculadora de Distância do Projetor — Tiro e Ecrã';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Perguntas Frequentes',
90
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: 'Guia de Distância Epson', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-rasstoyaniya-proektora';
6
7
  const title = 'Калькулятор расстояния проектора — Проекция и Экран';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Часто Задаваемые Вопросы',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Библиография',
92
- bibliography: [
93
- { name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
94
- { name: 'Epson — Гид по проекции', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'projektor-avstands-kalkylator';
6
7
  const title = 'Projektor Avståndskalkylator — Kastförhållande och Skärm';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Vanliga Frågor',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Referenser',
92
- bibliography: [
93
- { name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
94
- { name: 'Epson — Guide för Projektionsavstånd', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProjectorCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'projektsiyon-mesafe-hesaplama';
6
7
  const title = 'Projeksiyon Mesafe Hesaplayıcı — Atım Oranı';
@@ -86,13 +87,8 @@ export const content: ToolLocaleContent<ProjectorCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Sıkça Sorulan Sorular',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Kaynakça',
92
- bibliography: [
93
- { name: 'Projector Central — Throw Distance Calculator', url: 'https://www.projectorcentral.com/projection-calculator-pro.cfm' },
94
- { name: 'Epson Kurulum Rehberi', url: 'https://epson.com/' },
95
- ],
91
+ bibliography,
96
92
  howTo: howToData,
97
93
  schemas: [faqSchema, howToSchema, appSchema],
98
94
  seo: [