@jjlmoya/utils-drones 1.14.0 → 1.16.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/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/pages/[locale]/[slug].astro +30 -14
- package/src/tests/locale_completeness.test.ts +4 -22
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/antenna-length-calculator/bibliography.astro +3 -11
- package/src/tool/antenna-length-calculator/bibliography.ts +6 -0
- package/src/tool/antenna-length-calculator/i18n/de.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/en.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/es.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/fr.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/id.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/it.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/ja.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/ko.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/nl.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/pl.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/pt.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/ru.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/sv.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/tr.ts +2 -8
- package/src/tool/antenna-length-calculator/i18n/zh.ts +2 -8
- package/src/tool/antenna-length-calculator/seo.astro +2 -26
- package/src/tool/drone-flight-time/bibliography.astro +3 -11
- package/src/tool/drone-flight-time/bibliography.ts +7 -0
- package/src/tool/drone-flight-time/i18n/de.ts +2 -9
- package/src/tool/drone-flight-time/i18n/en.ts +2 -9
- package/src/tool/drone-flight-time/i18n/es.ts +2 -9
- package/src/tool/drone-flight-time/i18n/fr.ts +2 -9
- package/src/tool/drone-flight-time/i18n/id.ts +2 -9
- package/src/tool/drone-flight-time/i18n/it.ts +2 -9
- package/src/tool/drone-flight-time/i18n/ja.ts +2 -9
- package/src/tool/drone-flight-time/i18n/ko.ts +2 -9
- package/src/tool/drone-flight-time/i18n/nl.ts +2 -9
- package/src/tool/drone-flight-time/i18n/pl.ts +2 -9
- package/src/tool/drone-flight-time/i18n/pt.ts +2 -9
- package/src/tool/drone-flight-time/i18n/ru.ts +2 -9
- package/src/tool/drone-flight-time/i18n/sv.ts +2 -9
- package/src/tool/drone-flight-time/i18n/tr.ts +2 -9
- package/src/tool/drone-flight-time/i18n/zh.ts +2 -9
- package/src/tool/drone-flight-time/seo.astro +2 -18
- package/src/tool/drone-power-analyzer/bibliography.astro +6 -0
- package/src/tool/drone-power-analyzer/bibliography.ts +7 -0
- package/src/tool/drone-power-analyzer/component.astro +210 -0
- package/src/tool/drone-power-analyzer/components/FlightProfile.astro +37 -0
- package/src/tool/drone-power-analyzer/components/MotorConfig.astro +46 -0
- package/src/tool/drone-power-analyzer/components/PowerGauge.astro +48 -0
- package/src/tool/drone-power-analyzer/components/WeightConfig.astro +49 -0
- package/src/tool/drone-power-analyzer/drone-power-analyzer.css +535 -0
- package/src/tool/drone-power-analyzer/entry.ts +29 -0
- package/src/tool/drone-power-analyzer/i18n/de.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/en.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/es.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/fr.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/id.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/it.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/ja.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/ko.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/nl.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/pl.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/pt.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/ru.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/sv.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/tr.ts +203 -0
- package/src/tool/drone-power-analyzer/i18n/zh.ts +203 -0
- package/src/tool/drone-power-analyzer/index.ts +8 -0
- package/src/tool/drone-power-analyzer/seo.astro +15 -0
- package/src/tool/gps-coordinates-converter/bibliography.astro +3 -11
- package/src/tool/gps-coordinates-converter/bibliography.ts +12 -0
- package/src/tool/gps-coordinates-converter/components/GpsMap.astro +3 -2
- package/src/tool/gps-coordinates-converter/gps-coordinates-converter.css +196 -188
- package/src/tool/gps-coordinates-converter/i18n/de.ts +35 -36
- package/src/tool/gps-coordinates-converter/i18n/en.ts +4 -14
- package/src/tool/gps-coordinates-converter/i18n/es.ts +4 -14
- package/src/tool/gps-coordinates-converter/i18n/fr.ts +4 -14
- package/src/tool/gps-coordinates-converter/i18n/id.ts +36 -37
- package/src/tool/gps-coordinates-converter/i18n/it.ts +35 -36
- package/src/tool/gps-coordinates-converter/i18n/ja.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/ko.ts +20 -21
- package/src/tool/gps-coordinates-converter/i18n/nl.ts +33 -36
- package/src/tool/gps-coordinates-converter/i18n/pl.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/pt.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/ru.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/sv.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/tr.ts +19 -20
- package/src/tool/gps-coordinates-converter/i18n/zh.ts +20 -21
- package/src/tool/gps-coordinates-converter/seo.astro +2 -26
- package/src/tools.ts +3 -0
- package/src/types.ts +1 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'gps-coordinates-converter';
|
|
5
6
|
const title = 'ArduPilot 및 INAV 웨이포인트용 GPS 좌표 변환기';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: '자주 묻는 질문',
|
|
86
|
-
bibliographyTitle: '참고 문헌',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: '십진수 (DD)',
|
|
88
|
+
degreesGMS: '도분초 (DMS)',
|
|
89
|
+
useLocation: '내 위치 사용',
|
|
90
|
+
lat: '위도',
|
|
91
|
+
lng: '경도',
|
|
92
|
+
latGMS: '위도 (DMS)',
|
|
93
|
+
lngGMS: '경도 (DMS)',
|
|
94
|
+
gmsTraditional: 'DMS 전통 방식',
|
|
95
|
+
nauticalDM: '도 및 소수점 분 (해상)',
|
|
96
|
+
googleMapsFormat: 'Google 지도 형식',
|
|
97
|
+
mapVisualization: '지도 시각화',
|
|
98
|
+
mapHint: '지도를 클릭하여 좌표를 직접 캡처하세요.',
|
|
95
99
|
copy: '복사',
|
|
96
|
-
copied: '
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: '형식을 인식할 수 없습니다. 입력을 확인해 주세요.',
|
|
103
|
-
},
|
|
100
|
+
copied: '복사됨!',
|
|
101
|
+
recentHistory: '최근 기록',
|
|
102
|
+
clear: '지우기',
|
|
103
|
+
noHistory: '최근 변환 기록이 없습니다.',
|
|
104
|
+
load: '불러오기',
|
|
105
|
+
delete: '삭제',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'ArduPilot GPS 연동 기초', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: '십진 도 대 DMS (위키백과)', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: '형식 확인',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'gps-coordinaten-converter';
|
|
5
6
|
const title = 'GPS Coordinaten Converter voor ArduPilot en INAV Waypoints';
|
|
@@ -7,20 +8,20 @@ const description = 'Converteer GPS-coördinaten tussen Decimale Graden (DD), Gr
|
|
|
7
8
|
|
|
8
9
|
const faqItems = [
|
|
9
10
|
{
|
|
10
|
-
question: '
|
|
11
|
-
answer: `DD (
|
|
11
|
+
question: 'Wat is het verschil tussen DD en DMS?',
|
|
12
|
+
answer: `DD (Decimale Graden) gebruikt één getal met decimalen (bijv. 51.50). DMS (Graden, Minuten, Seconden) verdeelt de graad in sexagesimale fracties (bijv. 51° 30' 0").`,
|
|
12
13
|
},
|
|
13
14
|
{
|
|
14
|
-
question: '
|
|
15
|
-
answer: 'In
|
|
15
|
+
question: 'Waarom worden negatieve coördinaten gebruikt?',
|
|
16
|
+
answer: 'In het decimale systeem (DD) worden breedtegraden ten zuiden van de evenaar en lengtegraden ten westen van Greenwich aangegeven met een minteken om wiskundige berekeningen te vergemakkelijken.',
|
|
16
17
|
},
|
|
17
18
|
{
|
|
18
|
-
question: '
|
|
19
|
-
answer: '
|
|
19
|
+
question: 'Hoeveel precisie verlies ik bij het converteren?',
|
|
20
|
+
answer: 'Onze tool gebruikt dubbele precisie drijvende komma. Met 6 decimalen in DD is de precisie ongeveer 11 centimeter, wat meer dan genoeg is voor drones en civiele navigatie.',
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
|
-
question: '
|
|
23
|
-
answer: '
|
|
23
|
+
question: 'Werkt deze tool offline?',
|
|
24
|
+
answer: 'Ja, zodra de pagina is geladen, is alle conversielogica lokaal (client-side). Alleen de kaart heeft een verbinding nodig om nieuwe tegels te downloaden.',
|
|
24
25
|
},
|
|
25
26
|
];
|
|
26
27
|
|
|
@@ -43,26 +44,26 @@ const schemas: GpsCoordinatesConverterLocaleContent['schemas'] = [
|
|
|
43
44
|
{
|
|
44
45
|
'@type': 'HowToStep',
|
|
45
46
|
position: 1,
|
|
46
|
-
name: '
|
|
47
|
-
text: '
|
|
47
|
+
name: 'Voer coördinaten in',
|
|
48
|
+
text: 'Voer uw coördinaten in in het formaat Decimale Graden (DD) of Graden, Minuten, Seconden (DMS).',
|
|
48
49
|
},
|
|
49
50
|
{
|
|
50
51
|
'@type': 'HowToStep',
|
|
51
52
|
position: 2,
|
|
52
|
-
name: '
|
|
53
|
-
text: '
|
|
53
|
+
name: 'Controleer conversie',
|
|
54
|
+
text: 'De tool toont direct de geconverteerde coördinaten in alle ondersteunde formaten.',
|
|
54
55
|
},
|
|
55
56
|
{
|
|
56
57
|
'@type': 'HowToStep',
|
|
57
58
|
position: 3,
|
|
58
|
-
name: '
|
|
59
|
-
text: '
|
|
59
|
+
name: 'Verifieer op kaart',
|
|
60
|
+
text: 'Controleer de kaartvisualisatie om er zeker van te zijn dat de coördinaten naar de juiste locatie wijzen.',
|
|
60
61
|
},
|
|
61
62
|
{
|
|
62
63
|
'@type': 'HowToStep',
|
|
63
64
|
position: 4,
|
|
64
|
-
name: '
|
|
65
|
-
text: '
|
|
65
|
+
name: 'Kopieer resultaat',
|
|
66
|
+
text: 'Kopieer de geconverteerde coördinaten naar uw klembord voor gebruik in navigatiesystemen of missieplanning.',
|
|
66
67
|
},
|
|
67
68
|
],
|
|
68
69
|
} as WithContext<HowTo>,
|
|
@@ -82,25 +83,24 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Veelgestelde Vragen',
|
|
86
|
-
bibliographyTitle: 'Referentiehandleidingen',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Decimaal (DD)',
|
|
88
|
+
degreesGMS: 'Graden (DMS)',
|
|
89
|
+
useLocation: 'Gebruik mijn locatie',
|
|
90
|
+
lat: 'Breedtegraad',
|
|
91
|
+
lng: 'Lengtegraad',
|
|
92
|
+
latGMS: 'Breedtegraad (DMS)',
|
|
93
|
+
lngGMS: 'Lengtegraad (DMS)',
|
|
94
|
+
gmsTraditional: 'Traditionele DMS',
|
|
95
|
+
nauticalDM: 'Graden & Dec. Min. (Nautisch)',
|
|
96
|
+
googleMapsFormat: 'Google Maps Formaat',
|
|
95
97
|
copy: 'Kopiëren',
|
|
96
98
|
copied: 'Gekopieerd!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Formaat niet herkend. Controleer uw invoer.',
|
|
103
|
-
},
|
|
99
|
+
recentHistory: 'Recente Geschiedenis',
|
|
100
|
+
clear: 'Wissen',
|
|
101
|
+
noHistory: 'Geen recente conversies.',
|
|
102
|
+
load: 'Laden',
|
|
103
|
+
delete: 'Verwijderen',
|
|
104
104
|
},
|
|
105
105
|
seo: [
|
|
106
106
|
{
|
|
@@ -196,10 +196,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
196
|
},
|
|
197
197
|
],
|
|
198
198
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'Ardupilot Documentatie en Integratie Informatie.', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Naslag over Decimalen en Graden (Wikipedia).', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
199
|
+
bibliography,
|
|
203
200
|
howTo: [
|
|
204
201
|
{
|
|
205
202
|
name: 'Onderken Formaat',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'konwerter-wspolrzednych-gps';
|
|
5
6
|
const title = 'Konwerter Wspolrzednych GPS Nawigacji po Punktach Trasy';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Często Zadawane Pytania',
|
|
86
|
-
bibliographyTitle: 'Materiały Źródłowe',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Dziesiętne (DD)',
|
|
88
|
+
degreesGMS: 'Stopnie (DMS)',
|
|
89
|
+
useLocation: 'Użyj mojej lokalizacji',
|
|
90
|
+
lat: 'Szerokość',
|
|
91
|
+
lng: 'Długość',
|
|
92
|
+
latGMS: 'Szerokość (DMS)',
|
|
93
|
+
lngGMS: 'Długość (DMS)',
|
|
94
|
+
gmsTraditional: 'Tradycyjne DMS',
|
|
95
|
+
nauticalDM: 'Stopnie & dzies. min. (Nautyczne)',
|
|
96
|
+
googleMapsFormat: 'Format Google Maps',
|
|
97
|
+
mapVisualization: 'Wizualizacja na Mapie',
|
|
98
|
+
mapHint: 'Kliknij na mapę, aby bezpośrednio pobrać współrzędne.',
|
|
95
99
|
copy: 'Kopiuj',
|
|
96
100
|
copied: 'Skopiowano!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Format nierozpoznany. Sprawdź, czy wprowadzono poprawne dane.',
|
|
103
|
-
},
|
|
101
|
+
recentHistory: 'Ostatnia Historia',
|
|
102
|
+
clear: 'Wyczyść',
|
|
103
|
+
noHistory: 'Brak ostatnich konwersji.',
|
|
104
|
+
load: 'Wczytaj',
|
|
105
|
+
delete: 'Usuń',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'Ardupilot – Oficjalny przewodnik Dokumentujący o Integracjach Lotu Autonomousnych .', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Encyklopedyczne objaśnienie notatek wymiaru Współrzędnej u Wikipedia o formie DD', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: 'Rzetelnie zweryfikuj posiadany Format jako Źródło',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'conversor-de-coordenadas-gps';
|
|
5
6
|
const title = 'Conversor de Coordenadas GPS para Navegacao em Waypoints';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Perguntas Frequentes',
|
|
86
|
-
bibliographyTitle: 'Referências Bibliográficas',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Decimal (DD)',
|
|
88
|
+
degreesGMS: 'Graus (DMS)',
|
|
89
|
+
useLocation: 'Usar minha localização',
|
|
90
|
+
lat: 'Latitude',
|
|
91
|
+
lng: 'Longitude',
|
|
92
|
+
latGMS: 'Latitude (DMS)',
|
|
93
|
+
lngGMS: 'Longitude (DMS)',
|
|
94
|
+
gmsTraditional: 'DMS Tradicional',
|
|
95
|
+
nauticalDM: 'Graus & Min. Dec. (Náutico)',
|
|
96
|
+
googleMapsFormat: 'Formato Google Maps',
|
|
97
|
+
mapVisualization: 'Visualização no Mapa',
|
|
98
|
+
mapHint: 'Clique no mapa para capturar as coordenadas diretamente.',
|
|
95
99
|
copy: 'Copiar',
|
|
96
100
|
copied: 'Copiado!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Formato não reconhecido. Por favor, verifique a sua entrada.',
|
|
103
|
-
},
|
|
101
|
+
recentHistory: 'Histórico Recente',
|
|
102
|
+
clear: 'Limpar',
|
|
103
|
+
noHistory: 'Nenhuma conversão recente.',
|
|
104
|
+
load: 'Carregar',
|
|
105
|
+
delete: 'Excluir',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'O Portal Do Mundo Autómato Ardupilot nas referências a Manuseamento E Informações .', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Documento Completo De Natureza Histórica E Cientifica Na wikipedia ( DD / Conversões E Graus Base Terra )', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: 'Observe Os seus dados e descubra a classe da Linguagem .',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'konverter-gps-koordinat';
|
|
5
6
|
const title = 'Конвертер GPS координат для путевых точек Ardupilot и INAV';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
86
|
-
bibliographyTitle: 'Библиографические ссылки',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Десятичный (DD)',
|
|
88
|
+
degreesGMS: 'Градусы (DMS)',
|
|
89
|
+
useLocation: 'Использовать мое местоположение',
|
|
90
|
+
lat: 'Широта',
|
|
91
|
+
lng: 'Долгота',
|
|
92
|
+
latGMS: 'Широта (DMS)',
|
|
93
|
+
lngGMS: 'Долгота (DMS)',
|
|
94
|
+
gmsTraditional: 'Традиционный DMS',
|
|
95
|
+
nauticalDM: 'Градусы и дес. минуты (Морской)',
|
|
96
|
+
googleMapsFormat: 'Формат Google Maps',
|
|
97
|
+
mapVisualization: 'Визуализация на карте',
|
|
98
|
+
mapHint: 'Нажмите на карту, чтобы получить координаты напрямую.',
|
|
95
99
|
copy: 'Копировать',
|
|
96
100
|
copied: 'Скопировано!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Формат не распознан. Пожалуйста, проверьте ввод.',
|
|
103
|
-
},
|
|
101
|
+
recentHistory: 'Недавняя история',
|
|
102
|
+
clear: 'Очистить',
|
|
103
|
+
noHistory: 'Нет недавних преобразований.',
|
|
104
|
+
load: 'Загрузить',
|
|
105
|
+
delete: 'Удалить',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'Интеграция GPS в ArduPilot', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Десятичные градусы (Википедия)', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: 'Определите текущий формат',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'gps-koordinat-omvandlare';
|
|
5
6
|
const title = 'GPS Koordinat Omvandlare for ArduPilot och INAV Waypoints';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Vanliga Frågor',
|
|
86
|
-
bibliographyTitle: 'Referenser',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Decimal (DD)',
|
|
88
|
+
degreesGMS: 'Grader (DMS)',
|
|
89
|
+
useLocation: 'Använd min plats',
|
|
90
|
+
lat: 'Latitud',
|
|
91
|
+
lng: 'Longitud',
|
|
92
|
+
latGMS: 'Latitud (DMS)',
|
|
93
|
+
lngGMS: 'Longitud (DMS)',
|
|
94
|
+
gmsTraditional: 'Traditionell DMS',
|
|
95
|
+
nauticalDM: 'Grader & Min. (Nautisk)',
|
|
96
|
+
googleMapsFormat: 'Google Maps Format',
|
|
97
|
+
mapVisualization: 'Kartvisualisering',
|
|
98
|
+
mapHint: 'Klicka på kartan för att hämta koordinater direkt.',
|
|
95
99
|
copy: 'Kopiera',
|
|
96
100
|
copied: 'Kopierad!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Formatet känns inte igen. Kontrollera din inmatning.',
|
|
103
|
-
},
|
|
101
|
+
recentHistory: 'Senaste historik',
|
|
102
|
+
clear: 'Rensa',
|
|
103
|
+
noHistory: 'Inga senaste konverteringar.',
|
|
104
|
+
load: 'Ladda',
|
|
105
|
+
delete: 'Ta bort',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'ArduPilot Officiell GPS handbok.', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Förstå decimala värden. DD wikipedia.', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: 'Börja Med Att Bestämma Indata Formatet.',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'gps-koordinat-donusturucu';
|
|
5
6
|
const title = 'ArduPilot ve INAV Icin GPS Koordinat Donusturucu';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
86
|
-
bibliographyTitle: 'Referans Kılavuzları',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: 'Ondalık (DD)',
|
|
88
|
+
degreesGMS: 'Derece (DMS)',
|
|
89
|
+
useLocation: 'Konumumu Kullan',
|
|
90
|
+
lat: 'Enlem',
|
|
91
|
+
lng: 'Boylam',
|
|
92
|
+
latGMS: 'Enlem (DMS)',
|
|
93
|
+
lngGMS: 'Boylam (DMS)',
|
|
94
|
+
gmsTraditional: 'Geleneksel DMS',
|
|
95
|
+
nauticalDM: 'Derece & Ond. Dak. (Denizcilik)',
|
|
96
|
+
googleMapsFormat: 'Google Haritalar Formatı',
|
|
97
|
+
mapVisualization: 'Harita Görselleştirme',
|
|
98
|
+
mapHint: 'Koordinatları doğrudan yakalamak için haritaya tıklayın.',
|
|
95
99
|
copy: 'Kopyala',
|
|
96
100
|
copied: 'Kopyalandı!',
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: 'Format tanınamadı. Lütfen girişinizi kontrol edin.',
|
|
103
|
-
},
|
|
101
|
+
recentHistory: 'Son Geçmiş',
|
|
102
|
+
clear: 'Temizle',
|
|
103
|
+
noHistory: 'Yakın zamanda dönüşüm yok.',
|
|
104
|
+
load: 'Yükle',
|
|
105
|
+
delete: 'Sil',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: 'ArduPilot GPS Entagrasyon Belgesi', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: 'Ondalık Yüzdeler (Decimal Degrees) ve Dönüşüm (Wikipedia)', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: 'Formatı Tanımlayın',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GpsCoordinatesConverterLocaleContent } from '../index';
|
|
2
2
|
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
3
4
|
|
|
4
5
|
const slug = 'gps-coordinates-converter';
|
|
5
6
|
const title = 'Ardupilot及INAV航点模式用GPS坐标转换器';
|
|
@@ -82,25 +83,26 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: '常见问题解答',
|
|
86
|
-
bibliographyTitle: '参考文献与指南',
|
|
87
86
|
ui: {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
decimalDD: '十进制 (DD)',
|
|
88
|
+
degreesGMS: '度分秒 (DMS)',
|
|
89
|
+
useLocation: '使用我的位置',
|
|
90
|
+
lat: '纬度',
|
|
91
|
+
lng: '经度',
|
|
92
|
+
latGMS: '纬度 (DMS)',
|
|
93
|
+
lngGMS: '经度 (DMS)',
|
|
94
|
+
gmsTraditional: '传统度分秒',
|
|
95
|
+
nauticalDM: '度 & 分 (航海)',
|
|
96
|
+
googleMapsFormat: 'Google 地图格式',
|
|
97
|
+
mapVisualization: '地图可视化',
|
|
98
|
+
mapHint: '点击地图直接捕捉坐标。',
|
|
95
99
|
copy: '复制',
|
|
96
|
-
copied: '
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
invalidFormat: '输入格式无法识别。请仔细检查您的输入。',
|
|
103
|
-
},
|
|
100
|
+
copied: '已复制!',
|
|
101
|
+
recentHistory: '最近历史',
|
|
102
|
+
clear: '清除',
|
|
103
|
+
noHistory: '没有最近的转换。',
|
|
104
|
+
load: '加载',
|
|
105
|
+
delete: '删除',
|
|
104
106
|
},
|
|
105
107
|
seo: [
|
|
106
108
|
{
|
|
@@ -196,10 +198,7 @@ export const content: GpsCoordinatesConverterLocaleContent = {
|
|
|
196
198
|
},
|
|
197
199
|
],
|
|
198
200
|
faq: faqItems,
|
|
199
|
-
bibliography
|
|
200
|
-
{ name: '官方权威基石:ArduPilot 全体系与定位模组的基础构筑知识库及导入准则。', url: 'https://ardupilot.org/copter/docs/common-positioning-landing-page.html' },
|
|
201
|
-
{ name: '知识宝库扩充: 十进制算法 与 经纬制图(维基百科源学术资料)。', url: 'https://en.wikipedia.org/wiki/Decimal_degrees' },
|
|
202
|
-
],
|
|
201
|
+
bibliography,
|
|
203
202
|
howTo: [
|
|
204
203
|
{
|
|
205
204
|
name: '甄别与判定手上信息的归路归属',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
import {
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
3
|
import { gpsCoordinatesConverter } from './index';
|
|
4
4
|
import type { KnownLocale } from '../../types';
|
|
5
5
|
|
|
@@ -12,28 +12,4 @@ const content = await gpsCoordinatesConverter.i18n[locale]?.();
|
|
|
12
12
|
if (!content) return null;
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
<
|
|
16
|
-
{content.seo.map((section: any) => {
|
|
17
|
-
if (section.type === 'title') {
|
|
18
|
-
return <SEOTitle title={section.text} level={section.level || 2} />;
|
|
19
|
-
}
|
|
20
|
-
if (section.type === 'paragraph') {
|
|
21
|
-
return <p set:html={section.html} />;
|
|
22
|
-
}
|
|
23
|
-
if (section.type === 'list') {
|
|
24
|
-
return <SEOList items={section.items} />;
|
|
25
|
-
}
|
|
26
|
-
if (section.type === 'table') {
|
|
27
|
-
return (
|
|
28
|
-
<SEOTable headers={section.headers}>
|
|
29
|
-
{section.rows.map((row: string[]) => (
|
|
30
|
-
<tr>
|
|
31
|
-
{row.map((cell: string) => <td set:html={cell} />)}
|
|
32
|
-
</tr>
|
|
33
|
-
))}
|
|
34
|
-
</SEOTable>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
return null;
|
|
38
|
-
})}
|
|
39
|
-
</SEOArticle>
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
package/src/tools.ts
CHANGED
|
@@ -2,17 +2,20 @@ export { ALL_ENTRIES } from './entries';
|
|
|
2
2
|
import { DRONE_FLIGHT_TIME_TOOL } from './tool/drone-flight-time/index';
|
|
3
3
|
import { ANTENNA_LENGTH_CALCULATOR_TOOL } from './tool/antenna-length-calculator/index';
|
|
4
4
|
import { GPS_COORDINATES_CONVERTER_TOOL } from './tool/gps-coordinates-converter/index';
|
|
5
|
+
import { DRONE_POWER_ANALYZER_TOOL } from './tool/drone-power-analyzer/index';
|
|
5
6
|
import type { ToolDefinition } from './types';
|
|
6
7
|
|
|
7
8
|
export const ALL_TOOLS: ToolDefinition[] = [
|
|
8
9
|
DRONE_FLIGHT_TIME_TOOL,
|
|
9
10
|
ANTENNA_LENGTH_CALCULATOR_TOOL,
|
|
10
11
|
GPS_COORDINATES_CONVERTER_TOOL,
|
|
12
|
+
DRONE_POWER_ANALYZER_TOOL,
|
|
11
13
|
];
|
|
12
14
|
|
|
13
15
|
export {
|
|
14
16
|
DRONE_FLIGHT_TIME_TOOL,
|
|
15
17
|
ANTENNA_LENGTH_CALCULATOR_TOOL,
|
|
16
18
|
GPS_COORDINATES_CONVERTER_TOOL,
|
|
19
|
+
DRONE_POWER_ANALYZER_TOOL,
|
|
17
20
|
};
|
|
18
21
|
|
package/src/types.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type { SEOSection };
|
|
|
5
5
|
|
|
6
6
|
export type KnownLocale =
|
|
7
7
|
| 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi'
|
|
8
|
-
| 'fr' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
8
|
+
| 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
9
9
|
| 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
|
|
10
10
|
|
|
11
11
|
export interface FAQItem {
|
|
@@ -29,9 +29,7 @@ export interface ToolLocaleContent<TUI extends Record<string, string> = Record<s
|
|
|
29
29
|
description: string;
|
|
30
30
|
ui: TUI;
|
|
31
31
|
seo: SEOSection[];
|
|
32
|
-
faqTitle?: string;
|
|
33
32
|
faq: FAQItem[];
|
|
34
|
-
bibliographyTitle?: string;
|
|
35
33
|
bibliography: BibliographyEntry[];
|
|
36
34
|
howTo: HowToStep[];
|
|
37
35
|
schemas: WithContext<Thing>[];
|