@jjlmoya/utils-nautical 1.18.0 → 1.20.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 +2 -2
- package/src/category/index.ts +2 -1
- package/src/entries.ts +5 -1
- package/src/index.ts +9 -7
- package/src/tests/diacritics_density.test.ts +1 -1
- package/src/tests/inverted_punctuation.test.ts +1 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/script_density.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +60 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tests/translation_copy.test.ts +124 -0
- package/src/tool/anchorScope/anchorScope.css +507 -0
- package/src/tool/anchorScope/bibliography.astro +6 -0
- package/src/tool/anchorScope/bibliography.ts +14 -0
- package/src/tool/anchorScope/component.astro +219 -0
- package/src/tool/anchorScope/constants.ts +51 -0
- package/src/tool/anchorScope/controller.ts +251 -0
- package/src/tool/anchorScope/dom-views.ts +106 -0
- package/src/tool/anchorScope/entry.ts +31 -0
- package/src/tool/anchorScope/evaluator.ts +61 -0
- package/src/tool/anchorScope/i18n/de.ts +228 -0
- package/src/tool/anchorScope/i18n/en.ts +223 -0
- package/src/tool/anchorScope/i18n/es.ts +223 -0
- package/src/tool/anchorScope/i18n/fr.ts +221 -0
- package/src/tool/anchorScope/i18n/id.ts +221 -0
- package/src/tool/anchorScope/i18n/it.ts +221 -0
- package/src/tool/anchorScope/i18n/ja.ts +221 -0
- package/src/tool/anchorScope/i18n/ko.ts +221 -0
- package/src/tool/anchorScope/i18n/nl.ts +221 -0
- package/src/tool/anchorScope/i18n/pl.ts +221 -0
- package/src/tool/anchorScope/i18n/pt.ts +221 -0
- package/src/tool/anchorScope/i18n/ru.ts +221 -0
- package/src/tool/anchorScope/i18n/sv.ts +221 -0
- package/src/tool/anchorScope/i18n/tr.ts +221 -0
- package/src/tool/anchorScope/i18n/zh.ts +221 -0
- package/src/tool/anchorScope/index.ts +10 -0
- package/src/tool/anchorScope/logic.test.ts +100 -0
- package/src/tool/anchorScope/logic.ts +84 -0
- package/src/tool/anchorScope/presets.ts +12 -0
- package/src/tool/anchorScope/seo.astro +14 -0
- package/src/tool/anchorScope/storage.ts +25 -0
- package/src/tool/anchorScope/types.ts +33 -0
- package/src/tool/anchorScope/ui.ts +63 -0
- package/src/tool/endurance/index.ts +2 -1
- package/src/tool/speedConverter/i18n/ru.ts +57 -0
- package/src/tool/speedConverter/i18n/tr.ts +20 -0
- package/src/tool/tideCalculator/i18n/es.ts +1 -1
- package/src/tool/tideCalculator/i18n/fr.ts +8 -0
- package/src/tool/underKeel/i18n/de.ts +4 -0
- package/src/tool/underKeel/i18n/es.ts +1 -1
- package/src/tool/underKeel/i18n/id.ts +4 -0
- package/src/tool/underKeel/i18n/it.ts +16 -0
- package/src/tool/underKeel/i18n/ja.ts +8 -0
- package/src/tool/underKeel/i18n/ko.ts +8 -0
- package/src/tool/underKeel/i18n/nl.ts +16 -0
- package/src/tool/underKeel/i18n/pl.ts +16 -0
- package/src/tool/underKeel/i18n/pt.ts +16 -0
- package/src/tool/underKeel/i18n/ru.ts +16 -0
- package/src/tool/underKeel/i18n/sv.ts +16 -0
- package/src/tool/underKeel/i18n/tr.ts +8 -0
- package/src/tool/underKeel/i18n/zh.ts +8 -0
- package/src/tools.ts +3 -0
- package/src/types.ts +3 -1
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { AnchorScopeLocaleContent } from '../entry';
|
|
4
|
+
import type { AnchorScopeUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'calcolatore-lunghezza-catena-ancoraggio';
|
|
7
|
+
const title = 'Calcolatore Lunghezza Catena e Raggio di Ruota';
|
|
8
|
+
const description =
|
|
9
|
+
'Calcola la lunghezza ottimale di catena e cima di ancoraggio, il rapporto di calumo e il raggio di ruota per un ancoraggio sicuro in base al fondale e alla marea.';
|
|
10
|
+
|
|
11
|
+
const ui: AnchorScopeUI = {
|
|
12
|
+
parametersTitle: 'Parametri',
|
|
13
|
+
waterDepthLabel: 'Profondità Fondale',
|
|
14
|
+
bowHeightLabel: 'Bordo Libero di Prua',
|
|
15
|
+
tideRangeLabel: 'Escursione di Marea',
|
|
16
|
+
boatLengthLabel: 'Lunghezza Barca (LOA)',
|
|
17
|
+
rodeTypeLabel: 'Linea di Ancoraggio',
|
|
18
|
+
windConditionLabel: 'Vento e Previsioni',
|
|
19
|
+
seabedTypeLabel: 'Tipo di Fondale',
|
|
20
|
+
presetProtected: 'Cala Protetta',
|
|
21
|
+
presetOpen: 'Costa Aperta',
|
|
22
|
+
presetStorm: 'Avviso Burrasca',
|
|
23
|
+
seabedTag: 'Coefficiente Tenuta Fondale',
|
|
24
|
+
catenaryTag: 'Ammortizzazione Catenaria',
|
|
25
|
+
unitM: 'm',
|
|
26
|
+
unitFt: 'ft',
|
|
27
|
+
unitMeters: 'Metrico (m)',
|
|
28
|
+
unitFeet: 'Imperiale (ft)',
|
|
29
|
+
allChainOption: 'Tutta Catena (Catenaria Pesante)',
|
|
30
|
+
ropeChainOption: 'Mista Cima e Catena',
|
|
31
|
+
allRopeOption: 'Tutta Cima Tessile',
|
|
32
|
+
calmWindOption: 'Calma / Bava di Vento (< 15 nodi)',
|
|
33
|
+
moderateWindOption: 'Brezza Moderata (15 - 25 nodi)',
|
|
34
|
+
strongWindOption: 'Vento Forte / Burrasca (25 - 35 nodi)',
|
|
35
|
+
stormWindOption: 'Tempesta (> 35 nodi)',
|
|
36
|
+
sandOption: 'Sabbia (Tenuta Ottimale)',
|
|
37
|
+
mudOption: 'Fango / Limo (Buona Tenuta)',
|
|
38
|
+
clayOption: 'Argilla Compatta (Eccellente)',
|
|
39
|
+
gravelOption: 'Ghiaia / Ciottoli (Moderata)',
|
|
40
|
+
rockOption: 'Roccia (Rischio Incastro)',
|
|
41
|
+
weedOption: 'Posidonia / Alghe (Scarsa)',
|
|
42
|
+
resultsTitle: 'Analisi Ancoraggio e Dimensioni',
|
|
43
|
+
scopeRatioLabel: 'Rapporto di Calumo (Scope)',
|
|
44
|
+
totalDepthLabel: 'Altezza Verticale Totale',
|
|
45
|
+
recommendedRodeLabel: 'Catena Consigliata da Calare',
|
|
46
|
+
horizontalDistanceLabel: 'Distanza Orizzontale',
|
|
47
|
+
swingRadiusLabel: 'Raggio di Ruota Stimato',
|
|
48
|
+
minSafeRodeLabel: 'Minimo con Calma',
|
|
49
|
+
heavyWeatherRodeLabel: 'Calumo per Maltempo',
|
|
50
|
+
statusOptimalTitle: 'Ancoraggio Sicuro e Stabile',
|
|
51
|
+
statusOptimalDesc: 'La lunghezza assicura una catenaria ammortizzante e tiro orizzontale sul fuso dell ancora.',
|
|
52
|
+
statusCautionTitle: 'Calumo Accettabile: Monitorare Meteo',
|
|
53
|
+
statusCautionDesc: 'Adeguato per brezza moderata. Filare più catena se il vento o il moto ondoso aumentano.',
|
|
54
|
+
statusDangerTitle: 'Calumo Insufficiente: Rischio Spedo',
|
|
55
|
+
statusDangerDesc: 'Rapporto critico. L ancora subisce trazione verso l alto con alto rischio di spedare.',
|
|
56
|
+
adviceSand: 'La sabbia consente un ottima presa. Dare marcia indietro per fare testa con l ancora.',
|
|
57
|
+
adviceMud: 'Il fango tenero richiede una marra ampia e più catena per raggiungere il compatto.',
|
|
58
|
+
adviceClay: 'L argilla garantisce tenuta formidabile ma richiede punte affilate per penetrare.',
|
|
59
|
+
adviceGravel: 'La ghiaia cede sotto sforzo dinamico. Aumentare la catena di almeno il 25 per cento.',
|
|
60
|
+
adviceRock: 'Alto rischio di incaglio. Usare sempre una grippia con gavitello per spedare.',
|
|
61
|
+
adviceWeed: 'Le alghe impediscono la penetrazione delle unghie. Verificare la tenuta con il motore.',
|
|
62
|
+
catenaryAllChain: 'Il peso della catena forma una curva che assorbe i colpi d onda e mantiene il tiro piatto.',
|
|
63
|
+
catenaryRopeChain: 'Una linea mista richiede almeno un rapporto 7 a 1 per compensare il minor peso.',
|
|
64
|
+
catenaryAllRope: 'La cima esige 8 a 1 o 10 a 1 per evitare di sollevare il fuso sotto raffica.',
|
|
65
|
+
resetButton: 'Reimposta Parametri',
|
|
66
|
+
visualProfileTitle: 'Profilo Catenaria',
|
|
67
|
+
waterlineLabel: 'Galleggiamento',
|
|
68
|
+
seabedLabel: 'Fondale Marino',
|
|
69
|
+
anchorLabel: 'Ancora',
|
|
70
|
+
catenaryCurveLabel: 'Arco Catenaria',
|
|
71
|
+
swingCircleLabel: 'Raggio di Ruota',
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const faq: AnchorScopeLocaleContent['faq'] = [
|
|
75
|
+
{
|
|
76
|
+
question: 'Che cos è il rapporto di calumo nello stazionamento all ancora?',
|
|
77
|
+
answer: 'È il rapporto matematico tra la lunghezza totale di linea filata in acqua e l altezza verticale dal fondo alla puleggia di prua.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
question: 'Perché sommare il bordo libero e la marea alla profondità?',
|
|
81
|
+
answer: 'L ecoscandaglio misura solo l acqua sotto la chiglia. Il bordo libero di prua e l escursione di marea aumentano notevolmente la quota verticale.',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
question: 'Qual è la differenza di calumo tra catena e cima?',
|
|
85
|
+
answer: 'La catena pesante crea catenaria e ammette rapporti 4:1 o 5:1. La cima elastica e leggera esige 7:1 o 10:1 per non sollevare l ancora.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
question: 'Come si calcola il raggio di ruota all ancora?',
|
|
89
|
+
answer: 'Si calcola la distanza orizzontale con il teorema di Pitagora, sommando la lunghezza della barca e un margine di sicurezza di 3 o 5 metri.',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
question: 'In che modo il fondale influenza la sicurezza?',
|
|
93
|
+
answer: 'Sabbia e argilla garantiscono il massimo grip. Fondali di roccia o posidonia richiedono maggiore prudenza e attenzione.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
question: 'A cosa serve una bozza tessile con grillo da catena?',
|
|
97
|
+
answer: 'Scarica il verricello salpa-ancore dagli strappi violenti dell onda e riduce le vibrazioni rumorose nello scafo.',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
const howTo: AnchorScopeLocaleContent['howTo'] = [
|
|
102
|
+
{
|
|
103
|
+
name: 'Misurare la quota e il bordo libero',
|
|
104
|
+
text: 'Rilevate la profondità dell acqua e sommate l altezza del musone di prua dal pelo dell acqua.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'Aggiungere l escursione di marea',
|
|
108
|
+
text: 'Consultate le tavole di marea per aggiungere il colmo di alta marea previsto durante la sosta.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'Selezionare linea e condizioni meteo',
|
|
112
|
+
text: 'Scegliete il tipo di calumo e la forza del vento per determinare il coefficiente corretto.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'Filare la catena e fare testa con motore',
|
|
116
|
+
text: 'Filate la lunghezza raccomandata e date marcia indietro per incattivare l ancora nel fondale.',
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
const seo: AnchorScopeLocaleContent['seo'] = [
|
|
121
|
+
{
|
|
122
|
+
type: 'title',
|
|
123
|
+
text: 'Calcolo Calumo e Raggio di Ruota per Ancoraggio',
|
|
124
|
+
level: 2,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'paragraph',
|
|
128
|
+
html: 'Un ancoraggio sicuro è la garanzia primaria per la salvaguardia dell equipaggio e dell imbarcazione. Un calumo insufficiente è la causa principale di spedo notturno e abbordaggi in rada. Il calcolo accurato del <strong>rapporto di calumo</strong> assicura tenuta granitica.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Determinazione dell Altezza Verticale Totale',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'<strong>Profondità al Fondale:</strong> Battente d acqua rilevato alla sonda più il pescaggio.',
|
|
139
|
+
'<strong>Bordo Libero di Prua:</strong> Distanza tra la superficie marina e il punto di tiro sul musone.',
|
|
140
|
+
'<strong>Escursione di Marea:</strong> Massimo incremento d acqua registrato all alta marea.',
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: 'Tabella dei Rapporti di Calumo Consigliati',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['Tipo di Linea', 'Tempo Calmo (<15 nodi)', 'Brezza Tesa (15-25 nodi)', 'Maltempo (>30 nodi)'],
|
|
151
|
+
rows: [
|
|
152
|
+
['<strong>Tutta Catena</strong>', 'Rapporto 4:1', 'Rapporto 5:1', 'Rapporto 7:1'],
|
|
153
|
+
['<strong>Mista Cima-Catena</strong>', 'Rapporto 5:1', 'Rapporto 7:1', 'Rapporto 8:1 a 10:1'],
|
|
154
|
+
['<strong>Tutta Cima Tessile</strong>', 'Rapporto 7:1', 'Rapporto 8:1', 'Rapporto 10:1 a 12:1'],
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'tip',
|
|
159
|
+
title: 'Salvaguardia del Verricello',
|
|
160
|
+
html: 'Non lasciare mai la catena in tiro sul barbotin del verricello. Usare sempre una bozza ammortizzante fissata alla bitta d ormeggio di prua.',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: 'Controlla le previsioni e lo stato reale del mare prima della partenza.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: 'Verifica il margine di profondità e lascia una riserva di sicurezza.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'paragraph',
|
|
172
|
+
html: 'Annota i valori usati per poter ripetere il calcolo in seguito.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Confronta più scenari quando cambiano vento o corrente.',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'paragraph',
|
|
180
|
+
html: 'Il calcolo aiuta a preparare la rotta, ma non sostituisce la vigilanza a bordo.',
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
const schemas: AnchorScopeLocaleContent['schemas'] = [
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'SoftwareApplication',
|
|
188
|
+
name: title,
|
|
189
|
+
description,
|
|
190
|
+
applicationCategory: 'UtilityApplication',
|
|
191
|
+
operatingSystem: 'Web',
|
|
192
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
193
|
+
} as WithContext<SoftwareApplication>,
|
|
194
|
+
{
|
|
195
|
+
'@context': 'https://schema.org',
|
|
196
|
+
'@type': 'FAQPage',
|
|
197
|
+
mainEntity: faq.map((item) => ({
|
|
198
|
+
'@type': 'Question',
|
|
199
|
+
name: item.question,
|
|
200
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
201
|
+
})),
|
|
202
|
+
} as WithContext<FAQPage>,
|
|
203
|
+
{
|
|
204
|
+
'@context': 'https://schema.org',
|
|
205
|
+
'@type': 'HowTo',
|
|
206
|
+
name: `Istruzioni: ${title}`,
|
|
207
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
208
|
+
} as WithContext<HowTo>,
|
|
209
|
+
];
|
|
210
|
+
|
|
211
|
+
export const content: AnchorScopeLocaleContent = {
|
|
212
|
+
slug,
|
|
213
|
+
title,
|
|
214
|
+
description,
|
|
215
|
+
ui,
|
|
216
|
+
seo,
|
|
217
|
+
faq,
|
|
218
|
+
bibliography,
|
|
219
|
+
howTo,
|
|
220
|
+
schemas,
|
|
221
|
+
};
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { AnchorScopeLocaleContent } from '../entry';
|
|
4
|
+
import type { AnchorScopeUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'anchor-scope-calculator';
|
|
7
|
+
const title = 'アンカーチェーン長および振れ回り半径計算機';
|
|
8
|
+
const description =
|
|
9
|
+
'水深、船首乾舷、潮位差、海底の地質に基づいて、安全な停泊に必要なアンカーチェーンの長さ、スコープ比、および振れ回り半径を計算します。';
|
|
10
|
+
|
|
11
|
+
const ui: AnchorScopeUI = {
|
|
12
|
+
parametersTitle: 'パラメータ設定',
|
|
13
|
+
waterDepthLabel: '海図水深',
|
|
14
|
+
bowHeightLabel: '船首乾舷高',
|
|
15
|
+
tideRangeLabel: '潮位上昇幅',
|
|
16
|
+
boatLengthLabel: '船体全長 (LOA)',
|
|
17
|
+
rodeTypeLabel: 'アンカーロープ種別',
|
|
18
|
+
windConditionLabel: '風速および気象予報',
|
|
19
|
+
seabedTypeLabel: '海底の底質',
|
|
20
|
+
presetProtected: '静穏な入江',
|
|
21
|
+
presetOpen: '開けた沿岸',
|
|
22
|
+
presetStorm: '荒天暴風警報',
|
|
23
|
+
seabedTag: '底質把駐力係数',
|
|
24
|
+
catenaryTag: 'カテナリー曲線減衰',
|
|
25
|
+
unitM: 'm',
|
|
26
|
+
unitFt: 'ft',
|
|
27
|
+
unitMeters: 'メートル (m)',
|
|
28
|
+
unitFeet: 'フィート (ft)',
|
|
29
|
+
allChainOption: 'オールチェーン (重カテナリー)',
|
|
30
|
+
ropeChainOption: 'ロープおよびチェーン複合',
|
|
31
|
+
allRopeOption: 'オールナイロンロープ',
|
|
32
|
+
calmWindOption: '穏やか / 微風 (< 15 kt)',
|
|
33
|
+
moderateWindOption: '順風 (15 - 25 kt)',
|
|
34
|
+
strongWindOption: '強風 / 荒天 (25 - 35 kt)',
|
|
35
|
+
stormWindOption: '暴風雨 (> 35 kt)',
|
|
36
|
+
sandOption: '砂地 (最適な把駐力)',
|
|
37
|
+
mudOption: '泥 / 軟泥 (良好な把駐力)',
|
|
38
|
+
clayOption: '硬質粘土 (極めて良好)',
|
|
39
|
+
gravelOption: '小石 / 砂利 (普通)',
|
|
40
|
+
rockOption: '岩礁 (根掛かりリスク)',
|
|
41
|
+
weedOption: '海草 / 藻場 (把駐力弱)',
|
|
42
|
+
resultsTitle: '停泊分析および寸法',
|
|
43
|
+
scopeRatioLabel: '有効スコープ比',
|
|
44
|
+
totalDepthLabel: '合計垂直高',
|
|
45
|
+
recommendedRodeLabel: '推奨繰出チェーン長',
|
|
46
|
+
horizontalDistanceLabel: '水平到達距離',
|
|
47
|
+
swingRadiusLabel: '推定振れ回り半径',
|
|
48
|
+
minSafeRodeLabel: '平穏時最小限',
|
|
49
|
+
heavyWeatherRodeLabel: '荒天時繰出長',
|
|
50
|
+
statusOptimalTitle: '安全かつ強固な停泊状態',
|
|
51
|
+
statusOptimalDesc: '算出された長さにより十分なカテナリー曲線とアンカーシャンクへの水平牽引力が確保されます。',
|
|
52
|
+
statusCautionTitle: '適正範囲: 風向風速の変化に警戒',
|
|
53
|
+
statusCautionDesc: '中程度の風には十分ですが、波浪やうねりが高まる場合はチェーンを延長してください。',
|
|
54
|
+
statusDangerTitle: '繰出長不足: 走錨の危険あり',
|
|
55
|
+
statusDangerDesc: '危険なスコープ比です。アンカーが上方へ引っ張られ底から抜ける恐れがあります。',
|
|
56
|
+
adviceSand: '砂地は爪が深く食い込みます。アスターンで後進をかけ確実にアンカーを効かせてください。',
|
|
57
|
+
adviceMud: '柔らかい泥地では幅広のフルークとより長いチェーンで硬い層まで到達させる必要があります。',
|
|
58
|
+
adviceClay: '硬質粘土は強力に保持しますが、貫通には鋭利なアンカーチップが必要です。',
|
|
59
|
+
adviceGravel: '小石混じりの海底は波の衝撃で滑りやすいため、チェーン長を最低25パーセント増やしてください。',
|
|
60
|
+
adviceRock: '岩の隙間に挟まる危険があります。回収用のアンカーブイを必ずセットしてください。',
|
|
61
|
+
adviceWeed: '密集した海草はアンカーの貫通を妨げます。エンジン後進で把駐力を慎重に確認してください。',
|
|
62
|
+
catenaryAllChain: 'チェーンの重量がカテナリー曲線を形成し、波の衝撃を吸収して水平牽引を維持します。',
|
|
63
|
+
catenaryRopeChain: '複合ロープは重量不足を補うため最低7対1のスコープ比が必要です。',
|
|
64
|
+
catenaryAllRope: '軽量なロープはアンカーを引き起こさないよう8対1以上の繰り出しが必要です。',
|
|
65
|
+
resetButton: '初期値にリセット',
|
|
66
|
+
visualProfileTitle: 'カテナリー曲線プロファイル',
|
|
67
|
+
waterlineLabel: '喫水線',
|
|
68
|
+
seabedLabel: '海底面',
|
|
69
|
+
anchorLabel: 'アンカー',
|
|
70
|
+
catenaryCurveLabel: 'チェーン懸垂線',
|
|
71
|
+
swingCircleLabel: '振れ回り円',
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const faq: AnchorScopeLocaleContent['faq'] = [
|
|
75
|
+
{
|
|
76
|
+
question: 'アンカリングにおけるスコープ比とは何ですか?',
|
|
77
|
+
answer: '海中に繰り出したアンカーチェーンやロープの全長と、海底から船首バウローラーまでの合計垂直距離との比率です。',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
question: 'なぜ水深に船首乾舷と潮位差を加算する必要があるのですか?',
|
|
81
|
+
answer: '魚探はキール下の深さのみを表示します。乾舷の高さと満潮時の潮位上昇が加わることで実質垂直距離が大幅に増加します。',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
question: 'チェーンとロープで必要なスコープ比はどう違いますか?',
|
|
85
|
+
answer: '重いチェーンは自重で垂れ下がるため4:1から5:1で済みますが、軽いロープは直線的になるため7:1から10:1が必要です。',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
question: '錨泊時の振れ回り半径はどのように計算しますか?',
|
|
89
|
+
answer: 'ピタゴラスの定理によりチェーンの水平距離を算出し、そこに船体全長および3から5メートルの安全マージンを加算します。',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
question: '海底の底質は把駐力にどのような影響を与えますか?',
|
|
93
|
+
answer: '砂地や粘土は最も強固な把駐力を発揮します。海草や岩場ではチェーンを長く伸ばすか別の錨地を選択してください。',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
question: 'チェーンスナバーロープの役割は何ですか?',
|
|
97
|
+
answer: 'ウインドラスへの衝撃荷重を吸収し、停泊中の金属擦れ音や振動を緩和する役割を果たします。',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
const howTo: AnchorScopeLocaleContent['howTo'] = [
|
|
102
|
+
{
|
|
103
|
+
name: '海図水深と船首乾舷の測定',
|
|
104
|
+
text: '錨地の水深を確認し、水面から船首バウローラーまでの高さを加算します。',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: '予想される潮位上昇の加算',
|
|
108
|
+
text: '潮汐表を確認し、停泊中に予想される最高潮位の上昇幅を加えます。',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'ロープ種別と予報風速の選択',
|
|
112
|
+
text: 'オールチェーンか複合ロープかを選択し、予報風速に応じた安全係数を設定します。',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'チェーンの繰出とアンカーの効かせ',
|
|
116
|
+
text: '計算された長さを繰り出し、エンジンを微速後進に入れてアンカーを海底にしっかり効かせます。',
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
const seo: AnchorScopeLocaleContent['seo'] = [
|
|
121
|
+
{
|
|
122
|
+
type: 'title',
|
|
123
|
+
text: '安全なアンカリング計算: チェーン長と振れ回り半径',
|
|
124
|
+
level: 2,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'paragraph',
|
|
128
|
+
html: '正しいアンカリングは船舶と乗員の安全を確保するための基本です。繰り出し長さの不足は走錨や錨地での衝突事故の最大の原因となります。適切な<strong>スコープ比</strong>を計算することで、夜間や強風下でも安全に錨泊できます。',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: '合計垂直高さの構成要素',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'<strong>錨地水深:</strong> 測深器の水深に船体の喫水を加えた値。',
|
|
139
|
+
'<strong>船首乾舷高:</strong> 水面からバウローラーまでの垂直距離。',
|
|
140
|
+
'<strong>満潮時の潮位差:</strong> 滞在中の満潮による水面上昇幅。',
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: '推奨スコープ比の基準表',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['索具の構成', '平穏時 (<15 kt)', '順風 (15-25 kt)', '荒天時 (>30 kt)'],
|
|
151
|
+
rows: [
|
|
152
|
+
['<strong>オールチェーン</strong>', '比率 4:1', '比率 5:1', '比率 7:1'],
|
|
153
|
+
['<strong>ロープ・チェーン複合</strong>', '比率 5:1', '比率 7:1', '比率 8:1 から 10:1'],
|
|
154
|
+
['<strong>オールナイロンロープ</strong>', '比率 7:1', '比率 8:1', '比率 10:1 から 12:1'],
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'tip',
|
|
159
|
+
title: 'ウインドラスの保護対策',
|
|
160
|
+
html: 'アンカーの荷重をウインドラスのジプシーに直接掛けたまま放置しないでください。必ずクリートに係止したスナバーロープを使用してください。',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: '出航前に予報と実際の海況を確認してください。',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: '必要な水深に安全な余裕を残して計画します。',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'paragraph',
|
|
172
|
+
html: '入力値を記録すると、後で同じ計算を再現できます。',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: '風や潮流が変わる場合は複数の条件を比較します。',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'paragraph',
|
|
180
|
+
html: 'この計算は計画を助けますが、船上での見張りに代わるものではありません。',
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
const schemas: AnchorScopeLocaleContent['schemas'] = [
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'SoftwareApplication',
|
|
188
|
+
name: title,
|
|
189
|
+
description,
|
|
190
|
+
applicationCategory: 'UtilityApplication',
|
|
191
|
+
operatingSystem: 'Web',
|
|
192
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
193
|
+
} as WithContext<SoftwareApplication>,
|
|
194
|
+
{
|
|
195
|
+
'@context': 'https://schema.org',
|
|
196
|
+
'@type': 'FAQPage',
|
|
197
|
+
mainEntity: faq.map((item) => ({
|
|
198
|
+
'@type': 'Question',
|
|
199
|
+
name: item.question,
|
|
200
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
201
|
+
})),
|
|
202
|
+
} as WithContext<FAQPage>,
|
|
203
|
+
{
|
|
204
|
+
'@context': 'https://schema.org',
|
|
205
|
+
'@type': 'HowTo',
|
|
206
|
+
name: `使用方法: ${title}`,
|
|
207
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
208
|
+
} as WithContext<HowTo>,
|
|
209
|
+
];
|
|
210
|
+
|
|
211
|
+
export const content: AnchorScopeLocaleContent = {
|
|
212
|
+
slug,
|
|
213
|
+
title,
|
|
214
|
+
description,
|
|
215
|
+
ui,
|
|
216
|
+
seo,
|
|
217
|
+
faq,
|
|
218
|
+
bibliography,
|
|
219
|
+
howTo,
|
|
220
|
+
schemas,
|
|
221
|
+
};
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { AnchorScopeLocaleContent } from '../entry';
|
|
4
|
+
import type { AnchorScopeUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'anchor-scope-calculator';
|
|
7
|
+
const title = '닻줄 길이 및 선회 반경 계산기';
|
|
8
|
+
const description =
|
|
9
|
+
'수심, 선수 건현, 조석 간만의 차 및 해저 지질을 기반으로 안전한 묘박에 필요한 최적의 닻줄 길이, 스코프 비율 및 선회 반경을 계산합니다.';
|
|
10
|
+
|
|
11
|
+
const ui: AnchorScopeUI = {
|
|
12
|
+
parametersTitle: '파라미터 설정',
|
|
13
|
+
waterDepthLabel: '해도 수심',
|
|
14
|
+
bowHeightLabel: '선수 건현 높이',
|
|
15
|
+
tideRangeLabel: '조위 상승폭',
|
|
16
|
+
boatLengthLabel: '선체 전장 (LOA)',
|
|
17
|
+
rodeTypeLabel: '닻줄 종류',
|
|
18
|
+
windConditionLabel: '풍속 및 기상 예보',
|
|
19
|
+
seabedTypeLabel: '해저 저질',
|
|
20
|
+
presetProtected: '평온한 만',
|
|
21
|
+
presetOpen: '개방된 연안',
|
|
22
|
+
presetStorm: '폭풍 경보',
|
|
23
|
+
seabedTag: '저질 파지력 계수',
|
|
24
|
+
catenaryTag: '현수선 완충 효과',
|
|
25
|
+
unitM: 'm',
|
|
26
|
+
unitFt: 'ft',
|
|
27
|
+
unitMeters: '미터 (m)',
|
|
28
|
+
unitFeet: '피트 (ft)',
|
|
29
|
+
allChainOption: '전체 체인 (중현수선)',
|
|
30
|
+
ropeChainOption: '로프 및 체인 혼합',
|
|
31
|
+
allRopeOption: '전체 나일론 로프',
|
|
32
|
+
calmWindOption: '평온 / 미풍 (< 15 kt)',
|
|
33
|
+
moderateWindOption: '온화한 바람 (15 - 25 kt)',
|
|
34
|
+
strongWindOption: '강풍 / 풍랑 (25 - 35 kt)',
|
|
35
|
+
stormWindOption: '거친 폭풍 (> 35 kt)',
|
|
36
|
+
sandOption: '모래 (최적 파지력)',
|
|
37
|
+
mudOption: '진흙 / 펄 (우수한 파지력)',
|
|
38
|
+
clayOption: '단단한 점토 (매우 우수)',
|
|
39
|
+
gravelOption: '자갈 / 조약돌 (보통)',
|
|
40
|
+
rockOption: '암초 (걸림 위험)',
|
|
41
|
+
weedOption: '해조류 (파지력 낮음)',
|
|
42
|
+
resultsTitle: '묘박 분석 및 제원',
|
|
43
|
+
scopeRatioLabel: '유효 스코프 비율',
|
|
44
|
+
totalDepthLabel: '총 수직 높이',
|
|
45
|
+
recommendedRodeLabel: '권장 닻줄 방출 길이',
|
|
46
|
+
horizontalDistanceLabel: '수평 도달 거리',
|
|
47
|
+
swingRadiusLabel: '추정 선회 반경',
|
|
48
|
+
minSafeRodeLabel: '평온 시 최소 길이',
|
|
49
|
+
heavyWeatherRodeLabel: '악천후 방출 길이',
|
|
50
|
+
statusOptimalTitle: '안전하고 안정적인 정박',
|
|
51
|
+
statusOptimalDesc: '계산된 길이는 완충 현수선과 닻 자루에 대한 수평 인장력을 완벽하게 보장합니다.',
|
|
52
|
+
statusCautionTitle: '적정 범위: 기상 변화 주시',
|
|
53
|
+
statusCautionDesc: '온화한 기상에 적합합니다. 파도나 바람이 거세지면 체인을 추가로 내어주십시오.',
|
|
54
|
+
statusDangerTitle: '방출 길이 부족: 주묘 위험',
|
|
55
|
+
statusDangerDesc: '위험한 스코프 비율입니다. 닻이 위로 들려 해저에서 빠질 수 있습니다.',
|
|
56
|
+
adviceSand: '모래는 닻의 발톱이 깊게 박힙니다. 후진 엔진으로 닻을 단단히 세팅하십시오.',
|
|
57
|
+
adviceMud: '부드러운 펄에서는 넓은 면적의 플루크와 더 긴 체인으로 단단한 층에 도달해야 합니다.',
|
|
58
|
+
adviceClay: '점토는 파지력이 강하지만 관통을 위해 날카로운 닻날이 요구됩니다.',
|
|
59
|
+
adviceGravel: '자갈 바닥은 충격에 미끄러지기 쉬우므로 체인 길이를 최소 25퍼센트 늘리십시오.',
|
|
60
|
+
adviceRock: '암초에 걸릴 위험이 큽니다. 회수를 위해 반드시 부표줄을 연결하십시오.',
|
|
61
|
+
adviceWeed: '울창한 해조류는 닻이 박히는 것을 방해합니다. 후진으로 파지력을 세밀하게 점검하십시오.',
|
|
62
|
+
catenaryAllChain: '체인의 자체 무게가 현수선을 형성하여 충격을 흡수하고 수평 당김을 유지합니다.',
|
|
63
|
+
catenaryRopeChain: '혼합 로프는 부족한 중량을 보완하기 위해 최소 7대 1의 비율이 필요합니다.',
|
|
64
|
+
catenaryAllRope: '가벼운 로프는 닻자루가 들리지 않도록 8대 1 이상의 스코프를 유지하십시오.',
|
|
65
|
+
resetButton: '초기화',
|
|
66
|
+
visualProfileTitle: '현수선 프로파일',
|
|
67
|
+
waterlineLabel: '흘수선',
|
|
68
|
+
seabedLabel: '해저면',
|
|
69
|
+
anchorLabel: '닻',
|
|
70
|
+
catenaryCurveLabel: '체인 현수선',
|
|
71
|
+
swingCircleLabel: '선회원',
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const faq: AnchorScopeLocaleContent['faq'] = [
|
|
75
|
+
{
|
|
76
|
+
question: '묘박 시 스코프 비율이란 무엇인가요?',
|
|
77
|
+
answer: '해저면에서 선수 롤러까지의 총 수직 높이와 바다에 방출한 닻줄 전체 길이 간의 수학적 비율입니다.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
question: '수심에 선수 건현과 조위를 더해야 하는 이유는?',
|
|
81
|
+
answer: '수심계는 선저 아래의 깊이만 측정합니다. 선수 롤러 높이와 만조 수위가 더해져 실제 수직 거리가 대폭 증가합니다.',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
question: '체인과 로프의 스코프 비율 차이는?',
|
|
85
|
+
answer: '무거운 체인은 현수선 곡선을 형성하여 4:1~5:1로 충분하지만, 가벼운 로프는 7:1~10:1이 요구됩니다.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
question: '선회 반경은 어떻게 계산하나요?',
|
|
89
|
+
answer: '피타고라스 정리로 수평 거리를 구한 후 선체 전장과 3~5미터의 안전 여유를 더해 산출합니다.',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
question: '해저 저질이 파지력에 미치는 영향은?',
|
|
93
|
+
answer: '모래와 점토가 가장 견고한 파지력을 제공합니다. 해조류나 자갈밭에서는 닻줄을 더 길게 내어야 합니다.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
question: '스너버 로프의 기능은 무엇인가요?',
|
|
97
|
+
answer: '양묘기에 가해지는 파도의 충격 하중을 흡수하고 체인의 덜컹거림 소음을 제거합니다.',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
const howTo: AnchorScopeLocaleContent['howTo'] = [
|
|
102
|
+
{
|
|
103
|
+
name: '해도 수심 및 선수 높이 측정',
|
|
104
|
+
text: '정박지의 수심을 확인하고 수면에서 선수 롤러까지의 높이를 더합니다.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: '조위 상승폭 반영',
|
|
108
|
+
text: '조석표를 확인하여 정박 시간 동안의 최고 만조 수위 상승분을 추가합니다.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: '닻줄 종류 및 예상 풍속 선택',
|
|
112
|
+
text: '올체인 또는 혼합 여부를 선택하고 기상 예보에 맞춰 안전 계수를 조정합니다.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: '닻줄 방출 및 닻 세팅',
|
|
116
|
+
text: '계산된 길이만큼 닻줄을 내어준 뒤 엔진 후진으로 닻을 단단히 고정시킵니다.',
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
const seo: AnchorScopeLocaleContent['seo'] = [
|
|
121
|
+
{
|
|
122
|
+
type: 'title',
|
|
123
|
+
text: '안전한 묘박 계산: 닻줄 길이와 선회 반경',
|
|
124
|
+
level: 2,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'paragraph',
|
|
128
|
+
html: '올바른 묘박은 선박과 승조원의 안전을 보장하는 핵심 기술입니다. 부족한 닻줄 길이는 주묘 및 야간 충돌 사고의 주원인입니다. 정확한 <strong>스코프 비율</strong>을 유지함으로써 강풍 속에서도 안전하게 묘박할 수 있습니다.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: '총 수직 높이의 계산 요소',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'<strong>정박지 수심:</strong> 음향 측심기 수심에 선박의 흘수를 더한 값.',
|
|
139
|
+
'<strong>선수 건현 높이:</strong> 수면에서 선수 롤러까지의 수직 거리.',
|
|
140
|
+
'<strong>최대 조위 상승폭:</strong> 만조 시 증가하는 해수면 높이.',
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: '권장 스코프 비율 기준표',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['닻줄 구성', '평온한 날씨 (<15 kt)', '온화한 바람 (15-25 kt)', '거친 폭풍 (>30 kt)'],
|
|
151
|
+
rows: [
|
|
152
|
+
['<strong>전체 체인</strong>', '4:1 비율', '5:1 비율', '7:1 비율'],
|
|
153
|
+
['<strong>로프-체인 혼합</strong>', '5:1 비율', '7:1 비율', '8:1 ~ 10:1 비율'],
|
|
154
|
+
['<strong>전체 나일론 로프</strong>', '7:1 비율', '8:1 비율', '10:1 ~ 12:1 비율'],
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'tip',
|
|
159
|
+
title: '양묘기 보호 수칙',
|
|
160
|
+
html: '닻줄의 하중을 양묘기 지프시에 직접 걸어두지 마십시오. 항상 볼라드에 고정된 스너버 로프를 체결하십시오.',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: '출항 전에 예보와 실제 해상 상태를 함께 확인하세요.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: '필요 수심에 안전 여유를 두고 항로를 계획하세요.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'paragraph',
|
|
172
|
+
html: '입력값을 기록하면 다음에도 같은 계산을 재현할 수 있습니다.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: '바람이나 조류가 바뀌면 여러 조건을 비교하세요.',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'paragraph',
|
|
180
|
+
html: '계산은 계획을 돕지만 선상 관찰을 대신하지 않습니다.',
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
const schemas: AnchorScopeLocaleContent['schemas'] = [
|
|
185
|
+
{
|
|
186
|
+
'@context': 'https://schema.org',
|
|
187
|
+
'@type': 'SoftwareApplication',
|
|
188
|
+
name: title,
|
|
189
|
+
description,
|
|
190
|
+
applicationCategory: 'UtilityApplication',
|
|
191
|
+
operatingSystem: 'Web',
|
|
192
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
193
|
+
} as WithContext<SoftwareApplication>,
|
|
194
|
+
{
|
|
195
|
+
'@context': 'https://schema.org',
|
|
196
|
+
'@type': 'FAQPage',
|
|
197
|
+
mainEntity: faq.map((item) => ({
|
|
198
|
+
'@type': 'Question',
|
|
199
|
+
name: item.question,
|
|
200
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
201
|
+
})),
|
|
202
|
+
} as WithContext<FAQPage>,
|
|
203
|
+
{
|
|
204
|
+
'@context': 'https://schema.org',
|
|
205
|
+
'@type': 'HowTo',
|
|
206
|
+
name: `사용 설명서: ${title}`,
|
|
207
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
208
|
+
} as WithContext<HowTo>,
|
|
209
|
+
];
|
|
210
|
+
|
|
211
|
+
export const content: AnchorScopeLocaleContent = {
|
|
212
|
+
slug,
|
|
213
|
+
title,
|
|
214
|
+
description,
|
|
215
|
+
ui,
|
|
216
|
+
seo,
|
|
217
|
+
faq,
|
|
218
|
+
bibliography,
|
|
219
|
+
howTo,
|
|
220
|
+
schemas,
|
|
221
|
+
};
|