@jjlmoya/utils-drones 1.15.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 +197 -119
- 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 = '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>[];
|