@jjlmoya/utils-nautical 1.15.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.
- package/package.json +1 -1
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/es.ts +16 -16
- package/src/category/i18n/fr.ts +16 -16
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/ru.ts +3 -3
- package/src/category/i18n/sv.ts +1 -1
- package/src/category/i18n/tr.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -0
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +1 -31
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/endurance/bibliography.astro +1 -1
- package/src/tool/endurance/bibliography.ts +12 -0
- package/src/tool/endurance/entry.ts +2 -2
- package/src/tool/endurance/i18n/de.ts +1 -13
- package/src/tool/endurance/i18n/en.ts +1 -12
- package/src/tool/endurance/i18n/es.ts +55 -67
- package/src/tool/endurance/i18n/fr.ts +71 -83
- package/src/tool/endurance/i18n/id.ts +1 -13
- package/src/tool/endurance/i18n/it.ts +1 -13
- package/src/tool/endurance/i18n/ja.ts +1 -13
- package/src/tool/endurance/i18n/ko.ts +1 -13
- package/src/tool/endurance/i18n/nl.ts +1 -13
- package/src/tool/endurance/i18n/pl.ts +1 -13
- package/src/tool/endurance/i18n/pt.ts +1 -13
- package/src/tool/endurance/i18n/ru.ts +10 -22
- package/src/tool/endurance/i18n/sv.ts +1 -13
- package/src/tool/endurance/i18n/tr.ts +1 -13
- package/src/tool/endurance/i18n/zh.ts +1 -13
- package/src/tool/endurance/seo.astro +2 -42
- package/src/tool/nauticalConverter/bibliography.astro +1 -1
- package/src/tool/nauticalConverter/bibliography.ts +12 -0
- package/src/tool/nauticalConverter/entry.ts +2 -2
- package/src/tool/nauticalConverter/i18n/de.ts +1 -13
- package/src/tool/nauticalConverter/i18n/en.ts +1 -13
- package/src/tool/nauticalConverter/i18n/es.ts +47 -59
- package/src/tool/nauticalConverter/i18n/fr.ts +54 -66
- package/src/tool/nauticalConverter/i18n/id.ts +1 -13
- package/src/tool/nauticalConverter/i18n/it.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ja.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ko.ts +1 -13
- package/src/tool/nauticalConverter/i18n/nl.ts +1 -13
- package/src/tool/nauticalConverter/i18n/pl.ts +4 -16
- package/src/tool/nauticalConverter/i18n/pt.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ru.ts +9 -21
- package/src/tool/nauticalConverter/i18n/sv.ts +1 -13
- package/src/tool/nauticalConverter/i18n/tr.ts +1 -13
- package/src/tool/nauticalConverter/i18n/zh.ts +4 -16
- package/src/tool/nauticalConverter/seo.astro +2 -39
- package/src/tool/sailArea/bibliography.astro +1 -1
- package/src/tool/sailArea/bibliography.ts +16 -0
- package/src/tool/sailArea/entry.ts +2 -2
- package/src/tool/sailArea/i18n/de.ts +1 -17
- package/src/tool/sailArea/i18n/en.ts +1 -17
- package/src/tool/sailArea/i18n/es.ts +54 -70
- package/src/tool/sailArea/i18n/fr.ts +71 -87
- package/src/tool/sailArea/i18n/id.ts +1 -17
- package/src/tool/sailArea/i18n/it.ts +1 -17
- package/src/tool/sailArea/i18n/ja.ts +1 -17
- package/src/tool/sailArea/i18n/ko.ts +1 -17
- package/src/tool/sailArea/i18n/nl.ts +1 -17
- package/src/tool/sailArea/i18n/pl.ts +1 -17
- package/src/tool/sailArea/i18n/pt.ts +1 -17
- package/src/tool/sailArea/i18n/ru.ts +9 -25
- package/src/tool/sailArea/i18n/sv.ts +1 -17
- package/src/tool/sailArea/i18n/tr.ts +1 -17
- package/src/tool/sailArea/i18n/zh.ts +6 -22
- package/src/tool/sailArea/seo.astro +2 -39
- package/src/tool/speedConverter/bibliography.astro +1 -1
- package/src/tool/speedConverter/bibliography.ts +12 -0
- package/src/tool/speedConverter/entry.ts +2 -2
- package/src/tool/speedConverter/i18n/de.ts +1 -13
- package/src/tool/speedConverter/i18n/en.ts +1 -13
- package/src/tool/speedConverter/i18n/es.ts +59 -71
- package/src/tool/speedConverter/i18n/fr.ts +76 -88
- package/src/tool/speedConverter/i18n/id.ts +1 -13
- package/src/tool/speedConverter/i18n/it.ts +1 -13
- package/src/tool/speedConverter/i18n/ja.ts +1 -13
- package/src/tool/speedConverter/i18n/ko.ts +1 -13
- package/src/tool/speedConverter/i18n/nl.ts +1 -13
- package/src/tool/speedConverter/i18n/pl.ts +1 -13
- package/src/tool/speedConverter/i18n/pt.ts +1 -13
- package/src/tool/speedConverter/i18n/ru.ts +7 -19
- package/src/tool/speedConverter/i18n/sv.ts +1 -13
- package/src/tool/speedConverter/i18n/tr.ts +1 -13
- package/src/tool/speedConverter/i18n/zh.ts +6 -18
- package/src/tool/speedConverter/seo.astro +2 -30
- package/src/tool/tideCalculator/bibliography.astro +1 -1
- package/src/tool/tideCalculator/bibliography.ts +12 -0
- package/src/tool/tideCalculator/entry.ts +2 -2
- package/src/tool/tideCalculator/i18n/de.ts +1 -13
- package/src/tool/tideCalculator/i18n/en.ts +1 -13
- package/src/tool/tideCalculator/i18n/es.ts +40 -52
- package/src/tool/tideCalculator/i18n/fr.ts +44 -56
- package/src/tool/tideCalculator/i18n/id.ts +1 -13
- package/src/tool/tideCalculator/i18n/it.ts +1 -13
- package/src/tool/tideCalculator/i18n/ja.ts +1 -13
- package/src/tool/tideCalculator/i18n/ko.ts +1 -13
- package/src/tool/tideCalculator/i18n/nl.ts +1 -13
- package/src/tool/tideCalculator/i18n/pl.ts +1 -13
- package/src/tool/tideCalculator/i18n/pt.ts +1 -13
- package/src/tool/tideCalculator/i18n/ru.ts +7 -19
- package/src/tool/tideCalculator/i18n/sv.ts +1 -13
- package/src/tool/tideCalculator/i18n/tr.ts +1 -13
- package/src/tool/tideCalculator/i18n/zh.ts +2 -14
- package/src/tool/tideCalculator/seo.astro +2 -48
- package/src/tool/tideCalculator/tide-height-calculator.css +136 -5
- package/src/tool/underKeel/bibliography.astro +1 -1
- package/src/tool/underKeel/bibliography.ts +12 -0
- package/src/tool/underKeel/entry.ts +2 -2
- package/src/tool/underKeel/i18n/de.ts +1 -13
- package/src/tool/underKeel/i18n/en.ts +1 -13
- package/src/tool/underKeel/i18n/es.ts +40 -52
- package/src/tool/underKeel/i18n/fr.ts +46 -58
- package/src/tool/underKeel/i18n/id.ts +2 -14
- package/src/tool/underKeel/i18n/it.ts +2 -14
- package/src/tool/underKeel/i18n/ja.ts +2 -14
- package/src/tool/underKeel/i18n/ko.ts +2 -14
- package/src/tool/underKeel/i18n/nl.ts +2 -14
- package/src/tool/underKeel/i18n/pl.ts +2 -14
- package/src/tool/underKeel/i18n/pt.ts +2 -14
- package/src/tool/underKeel/i18n/ru.ts +7 -19
- package/src/tool/underKeel/i18n/sv.ts +2 -14
- package/src/tool/underKeel/i18n/tr.ts +2 -14
- package/src/tool/underKeel/i18n/zh.ts +2 -14
- package/src/tool/underKeel/seo.astro +2 -33
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Tipe Performa',
|
|
27
28
|
racerLabel: 'Kapal Balap (Racer)',
|
|
28
29
|
exportPdfLabel: 'BUAT LAPORAN TEKNIS',
|
|
29
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
30
|
-
bibliographyTitle: 'Bibliografi',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Tipo di Prestazione',
|
|
27
28
|
racerLabel: 'Racer',
|
|
28
29
|
exportPdfLabel: 'GENERA RAPPORTO TECNICO',
|
|
29
|
-
faqTitle: 'Domande Frequenti',
|
|
30
|
-
bibliographyTitle: 'Bibliografia',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'パフォーマンス型',
|
|
27
28
|
racerLabel: 'レーサー',
|
|
28
29
|
exportPdfLabel: 'テクニカルレポートを生成',
|
|
29
|
-
faqTitle: 'よくある質問',
|
|
30
|
-
bibliographyTitle: '参考文献',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: '성능 유형',
|
|
27
28
|
racerLabel: '레이서',
|
|
28
29
|
exportPdfLabel: '기술 보고서 생성',
|
|
29
|
-
faqTitle: '자주 묻는 질문',
|
|
30
|
-
bibliographyTitle: '참고 문헌',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Prestatie Type',
|
|
27
28
|
racerLabel: 'Racer',
|
|
28
29
|
exportPdfLabel: 'GENEREER TECHNISCH RAPPORT',
|
|
29
|
-
faqTitle: 'Veelgestelde Vragen',
|
|
30
|
-
bibliographyTitle: 'Bibliografie',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Typ osiągów',
|
|
27
28
|
racerLabel: 'Regatowy',
|
|
28
29
|
exportPdfLabel: 'GENERUJ RAPORT TECHNICZNY',
|
|
29
|
-
faqTitle: 'Często Zadawane Pytania',
|
|
30
|
-
bibliographyTitle: 'Bibliografia',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Tipo de Performance',
|
|
27
28
|
racerLabel: 'Regata',
|
|
28
29
|
exportPdfLabel: 'GERAR RELATÓRIO TÉCNICO',
|
|
29
|
-
faqTitle: 'Perguntas Frequentes',
|
|
30
|
-
bibliographyTitle: 'Bibliografia',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Тип характеристик',
|
|
27
28
|
racerLabel: 'Гоночный',
|
|
28
29
|
exportPdfLabel: 'СФОРМИРОВАТЬ ТЕХНИЧЕСКИЙ ОТЧЕТ',
|
|
29
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
30
|
-
bibliographyTitle: 'Библиография',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -41,11 +40,11 @@ const faq: SailAreaLocaleContent['faq'] = [
|
|
|
41
40
|
},
|
|
42
41
|
{
|
|
43
42
|
question: 'Что такое Roach (горб) на парусе?',
|
|
44
|
-
answer: 'Roach
|
|
43
|
+
answer: 'Roach - это выпуклая кривая задней шкаторины грота. Она обеспечивает дополнительную площадь паруса за пределами базового геометрического треугольника, определяемого параметрами P и E. Гоночные лодки имеют агрессивный горб с жесткими латами.',
|
|
45
44
|
},
|
|
46
45
|
{
|
|
47
46
|
question: 'Как измерить реальное водоизмещение моей лодки?',
|
|
48
|
-
answer: 'Самый надежный метод
|
|
47
|
+
answer: 'Самый надежный метод - использовать водоизмещение в полном грузу (со всеми запасами, водой, топливом и экипажем на борту). Порожнее водоизмещение из руководства производителя обычно оптимистично. Используйте фактическое водоизмещение в ваших нормальных условиях плавания.',
|
|
49
48
|
},
|
|
50
49
|
{
|
|
51
50
|
question: 'Где найти размеры I, J, P и E для моей лодки?',
|
|
@@ -68,7 +67,7 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
68
67
|
},
|
|
69
68
|
{
|
|
70
69
|
name: 'Отрегулируйте перекрытие генуи',
|
|
71
|
-
text: 'Переместите ползунок, чтобы указать перекрытие вашей генуи: 100%
|
|
70
|
+
text: 'Переместите ползунок, чтобы указать перекрытие вашей генуи: 100% - это неперекрывающийся стаксель, 130% - стандартная генуя, 155% - генуя с большим перекрытием.',
|
|
72
71
|
},
|
|
73
72
|
{
|
|
74
73
|
name: 'Интерпретируйте коэффициент SA/D',
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -99,11 +83,11 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
99
83
|
},
|
|
100
84
|
{
|
|
101
85
|
type: 'paragraph',
|
|
102
|
-
html: 'Площадь парусов
|
|
86
|
+
html: 'Площадь парусов - это аэродинамический двигатель любого парусного судна. Она определяет, сколько энергии ветра может уловить лодка, и в сочетании с её водоизмещением определяет её морской характер: будет ли это медленный круизер или чуткий гоночный болид. Правильный расчет этого значения - первый шаг к пониманию поведения любого парусника.',
|
|
103
87
|
},
|
|
104
88
|
{
|
|
105
89
|
type: 'paragraph',
|
|
106
|
-
html: 'Плавание под парусом
|
|
90
|
+
html: 'Плавание под парусом - это постоянный танец между силой ветра, давящей на паруса, и сопротивлением воды корпусу. <strong>Коэффициент парусности (SA/D)</strong> объединяет эти отношения в одном числе, которое позволяет сравнивать лодки любой длины и водоизмещения на равных условиях.',
|
|
107
91
|
},
|
|
108
92
|
{
|
|
109
93
|
type: 'stats',
|
|
@@ -121,7 +105,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
121
105
|
},
|
|
122
106
|
{
|
|
123
107
|
type: 'paragraph',
|
|
124
|
-
html: 'Коэффициент <strong>SA/D</strong>
|
|
108
|
+
html: 'Коэффициент <strong>SA/D</strong> - это диагностический инструмент, позволяющий предсказать поведение лодки еще до выхода в море. Низкий коэффициент указывает на прочную и безопасную лодку, но медленную при слабых ветрах; высокий коэффициент обеспечивает скорость и ощущение полета, но требует большего мастерства экипажа при усилении ветра. Ни один из них не лучше другого: все зависит от типа планируемого плавания.',
|
|
125
109
|
},
|
|
126
110
|
{
|
|
127
111
|
type: 'title',
|
|
@@ -186,7 +170,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
186
170
|
},
|
|
187
171
|
{
|
|
188
172
|
type: 'paragraph',
|
|
189
|
-
html: '<strong>Генуя</strong>
|
|
173
|
+
html: '<strong>Генуя</strong> - это самый большой передний парус, шкотовый угол которого расположен позади мачты, "перекрывая" грот. Процент перекрытия указывает, насколько перпендикуляр к передней шкаторине (LP) длиннее расстояния J. Генуя 150% имеет LP, равный 150% от J, обеспечивая гораздо большую площадь паруса, чем простой стаксель.',
|
|
190
174
|
},
|
|
191
175
|
{
|
|
192
176
|
type: 'comparative',
|
|
@@ -226,7 +210,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
226
210
|
},
|
|
227
211
|
{
|
|
228
212
|
type: 'paragraph',
|
|
229
|
-
html: 'Для расчета реальной доступной мощности конструкторы часто используют <strong>относительное водоизмещение (DLR)</strong> в сочетании с SA/D. Оба коэффициента вместе точно описывают, является ли лодка
|
|
213
|
+
html: 'Для расчета реальной доступной мощности конструкторы часто используют <strong>относительное водоизмещение (DLR)</strong> в сочетании с SA/D. Оба коэффициента вместе точно описывают, является ли лодка "морским тягачом" или гоночным болидом.',
|
|
230
214
|
},
|
|
231
215
|
{
|
|
232
216
|
type: 'tip',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Prestandatyp',
|
|
27
28
|
racerLabel: 'Racer',
|
|
28
29
|
exportPdfLabel: 'GENERERA TEKNISK RAPPORT',
|
|
29
|
-
faqTitle: 'Vanliga frågor',
|
|
30
|
-
bibliographyTitle: 'Bibliografi',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: 'Performans Tipi',
|
|
27
28
|
racerLabel: 'Yarış (Racer)',
|
|
28
29
|
exportPdfLabel: 'TEKNİK RAPOR OLUŞTUR',
|
|
29
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
30
|
-
bibliographyTitle: 'Kaynakça',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SailAreaUI, SailAreaLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -26,8 +27,6 @@ const ui: SailAreaUI = {
|
|
|
26
27
|
performanceTypeLabel: '性能类型',
|
|
27
28
|
racerLabel: '竞赛型',
|
|
28
29
|
exportPdfLabel: '生成技术报告',
|
|
29
|
-
faqTitle: '常见问题',
|
|
30
|
-
bibliographyTitle: '参考文献统计',
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
const faq: SailAreaLocaleContent['faq'] = [
|
|
@@ -40,7 +39,7 @@ const faq: SailAreaLocaleContent['faq'] = [
|
|
|
40
39
|
answer: '是的,减轻船只重量会直接提高 SA/D 比例,因为实际排水量减少了。排空淡水和燃油箱可以减少数百公斤的排水量,并显著提升该比例。',
|
|
41
40
|
},
|
|
42
41
|
{
|
|
43
|
-
question: '
|
|
42
|
+
question: '帆上的"Roach"(帆边外扩)是什么?',
|
|
44
43
|
answer: 'Roach 是主帆后缘(曳尾缘)的凸起曲线。它提供了超出由 P 和 E 定义的基础几何三角形之外的额外帆面积。竞赛类船只通常具有 aggressive Roach,并配合硬帆骨。',
|
|
45
44
|
},
|
|
46
45
|
{
|
|
@@ -76,21 +75,6 @@ const howTo: SailAreaLocaleContent['howTo'] = [
|
|
|
76
75
|
},
|
|
77
76
|
];
|
|
78
77
|
|
|
79
|
-
const bibliography: SailAreaLocaleContent['bibliography'] = [
|
|
80
|
-
{
|
|
81
|
-
name: 'Society of Naval Architects and Marine Engineers - SNAME',
|
|
82
|
-
url: 'https://www.sname.org/',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'ORC - Offshore Racing Congress',
|
|
86
|
-
url: 'https://orc.org/',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'Elvstrom Sailmakers - Sail Manual',
|
|
90
|
-
url: 'https://www.elvstromsails.com/',
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
|
|
94
78
|
const seo: SailAreaLocaleContent['seo'] = [
|
|
95
79
|
{
|
|
96
80
|
type: 'title',
|
|
@@ -99,7 +83,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
99
83
|
},
|
|
100
84
|
{
|
|
101
85
|
type: 'paragraph',
|
|
102
|
-
html: '
|
|
86
|
+
html: '帆面积是任何帆船的"气动引擎"。它决定了船只能捕获多少风能,并结合其排水量,定义了其航海特性:是慢速巡航船还是灵敏的竞赛机器。正确计算此值是理解任何帆船行为的第一步。',
|
|
103
87
|
},
|
|
104
88
|
{
|
|
105
89
|
type: 'paragraph',
|
|
@@ -121,7 +105,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
121
105
|
},
|
|
122
106
|
{
|
|
123
107
|
type: 'paragraph',
|
|
124
|
-
html: '<strong>SA/D 比例</strong
|
|
108
|
+
html: '<strong>SA/D 比例</strong>是一种诊断工具,可让您在起航前预测船只行为。低比例表示船只坚固安全,但在轻风中较慢;高比例提供速度和"飞翔"感,但在风力增大时对组员技能要求更高。两者并无优劣之分:完全取决于预期的航行类型。',
|
|
125
109
|
},
|
|
126
110
|
{
|
|
127
111
|
type: 'title',
|
|
@@ -186,7 +170,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
186
170
|
},
|
|
187
171
|
{
|
|
188
172
|
type: 'paragraph',
|
|
189
|
-
html: '<strong>热那亚帆 (Genoa)</strong>
|
|
173
|
+
html: '<strong>热那亚帆 (Genoa)</strong> 是最大的头帆,其后角位于桅杆后方,与主帆"重叠"。重叠百分比表示帆宽垂直线 (LP) 与 J 距离相比长出多少。150% 的热那亚帆具有相当于 J 长度 150% 的 LP,提供比简单的前三角帆大得多的面积。',
|
|
190
174
|
},
|
|
191
175
|
{
|
|
192
176
|
type: 'comparative',
|
|
@@ -226,7 +210,7 @@ const seo: SailAreaLocaleContent['seo'] = [
|
|
|
226
210
|
},
|
|
227
211
|
{
|
|
228
212
|
type: 'paragraph',
|
|
229
|
-
html: '为了计算实际可用功率,造船工程师通常将 <strong>排水量-长度比 (DLR)</strong> 与 SA/D
|
|
213
|
+
html: '为了计算实际可用功率,造船工程师通常将 <strong>排水量-长度比 (DLR)</strong> 与 SA/D 结合使用。这两个比例共同精准描述了一艘船是海上的"拖船"还是"竞速滑行艇"。',
|
|
230
214
|
},
|
|
231
215
|
{
|
|
232
216
|
type: 'tip',
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
import {
|
|
3
|
-
SEOTitle,
|
|
4
|
-
SEOTable,
|
|
5
|
-
SEOTip,
|
|
6
|
-
SEOGlossary,
|
|
7
|
-
SEOArticle,
|
|
8
|
-
SEOStats,
|
|
9
|
-
SEOComparative,
|
|
10
|
-
} from '@jjlmoya/utils-shared';
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
11
3
|
import { sailArea } from './index';
|
|
12
4
|
import type { KnownLocale } from '../../types';
|
|
13
5
|
|
|
@@ -18,35 +10,6 @@ interface Props {
|
|
|
18
10
|
const { locale = 'es' } = Astro.props;
|
|
19
11
|
const content = await sailArea.i18n[locale]?.();
|
|
20
12
|
if (!content) return null;
|
|
21
|
-
|
|
22
|
-
const { seo } = content;
|
|
23
13
|
---
|
|
24
14
|
|
|
25
|
-
<
|
|
26
|
-
{seo.map((section: any) => {
|
|
27
|
-
switch (section.type) {
|
|
28
|
-
case 'title':
|
|
29
|
-
return <SEOTitle title={section.text} level={section.level || 2} />;
|
|
30
|
-
case 'paragraph':
|
|
31
|
-
return <p set:html={section.html} />;
|
|
32
|
-
case 'tip':
|
|
33
|
-
return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
|
|
34
|
-
case 'table':
|
|
35
|
-
return (
|
|
36
|
-
<SEOTable headers={section.headers}>
|
|
37
|
-
{section.rows.map((row: string[]) => (
|
|
38
|
-
<tr>{row.map((cell: string) => <td set:html={cell} />)}</tr>
|
|
39
|
-
))}
|
|
40
|
-
</SEOTable>
|
|
41
|
-
);
|
|
42
|
-
case 'glossary':
|
|
43
|
-
return <SEOGlossary items={section.items} />;
|
|
44
|
-
case 'stats':
|
|
45
|
-
return <SEOStats stats={section.items} columns={section.columns} />;
|
|
46
|
-
case 'comparative':
|
|
47
|
-
return <SEOComparative items={section.items} columns={section.columns} />;
|
|
48
|
-
default:
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
})}
|
|
52
|
-
</SEOArticle>
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -11,4 +11,4 @@ const { locale = 'es' } = Astro.props;
|
|
|
11
11
|
const content = await speedConverter.i18n[locale]?.();
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
{content && <SharedBibliography links={content.bibliography}
|
|
14
|
+
{content && <SharedBibliography links={content.bibliography} />}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'Met Office - The Beaufort Scale',
|
|
6
|
+
url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'IMO - International Maritime Organization',
|
|
10
|
+
url: 'https://www.imo.org/',
|
|
11
|
+
},
|
|
12
|
+
];
|
|
@@ -13,8 +13,6 @@ export interface SpeedConverterUI {
|
|
|
13
13
|
effectLabel: string;
|
|
14
14
|
seaStateLabel: string;
|
|
15
15
|
windEffectLabel: string;
|
|
16
|
-
faqTitle: string;
|
|
17
|
-
bibliographyTitle: string;
|
|
18
16
|
beaufortDataJson: string;
|
|
19
17
|
}
|
|
20
18
|
|
|
@@ -44,3 +42,5 @@ export const speedConverter: NauticalToolEntry<SpeedConverterUI> = {
|
|
|
44
42
|
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
45
43
|
},
|
|
46
44
|
};
|
|
45
|
+
|
|
46
|
+
export { bibliography } from './bibliography';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -34,8 +35,6 @@ const ui: SpeedConverterUI = {
|
|
|
34
35
|
effectLabel: 'Visueller Effekt',
|
|
35
36
|
seaStateLabel: 'Seegang',
|
|
36
37
|
windEffectLabel: 'Effekt an Land',
|
|
37
|
-
faqTitle: 'Häufig gestellte Fragen',
|
|
38
|
-
bibliographyTitle: 'Bibliografie',
|
|
39
38
|
beaufortDataJson: JSON.stringify(beaufortData),
|
|
40
39
|
};
|
|
41
40
|
|
|
@@ -77,17 +76,6 @@ const howTo: SpeedConverterLocaleContent['howTo'] = [
|
|
|
77
76
|
},
|
|
78
77
|
];
|
|
79
78
|
|
|
80
|
-
const bibliography: SpeedConverterLocaleContent['bibliography'] = [
|
|
81
|
-
{
|
|
82
|
-
name: 'Met Office - The Beaufort Scale',
|
|
83
|
-
url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: 'IMO - International Maritime Organization',
|
|
87
|
-
url: 'https://www.imo.org/',
|
|
88
|
-
},
|
|
89
|
-
];
|
|
90
|
-
|
|
91
79
|
const seo: SpeedConverterLocaleContent['seo'] = [
|
|
92
80
|
{
|
|
93
81
|
type: 'title',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
|
|
3
4
|
|
|
@@ -34,8 +35,6 @@ const ui: SpeedConverterUI = {
|
|
|
34
35
|
effectLabel: 'Visual Effect',
|
|
35
36
|
seaStateLabel: 'Sea State',
|
|
36
37
|
windEffectLabel: 'Land Effect',
|
|
37
|
-
faqTitle: 'Frequently Asked Questions',
|
|
38
|
-
bibliographyTitle: 'Bibliography',
|
|
39
38
|
beaufortDataJson: JSON.stringify(beaufortData),
|
|
40
39
|
};
|
|
41
40
|
|
|
@@ -77,17 +76,6 @@ const howTo: SpeedConverterLocaleContent['howTo'] = [
|
|
|
77
76
|
},
|
|
78
77
|
];
|
|
79
78
|
|
|
80
|
-
const bibliography: SpeedConverterLocaleContent['bibliography'] = [
|
|
81
|
-
{
|
|
82
|
-
name: 'Met Office - The Beaufort Scale',
|
|
83
|
-
url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: 'IMO - International Maritime Organization',
|
|
87
|
-
url: 'https://www.imo.org/',
|
|
88
|
-
},
|
|
89
|
-
];
|
|
90
|
-
|
|
91
79
|
const seo: SpeedConverterLocaleContent['seo'] = [
|
|
92
80
|
{
|
|
93
81
|
type: 'title',
|