@jjlmoya/utils-tools 1.1.0 → 1.3.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 -1
- package/src/category/i18n/de.ts +172 -0
- package/src/category/i18n/id.ts +172 -0
- package/src/category/i18n/it.ts +172 -0
- package/src/category/i18n/ja.ts +172 -0
- package/src/category/i18n/ko.ts +172 -0
- package/src/category/i18n/nl.ts +172 -0
- package/src/category/i18n/pl.ts +172 -0
- package/src/category/i18n/pt.ts +172 -0
- package/src/category/i18n/ru.ts +172 -0
- package/src/category/i18n/sv.ts +172 -0
- package/src/category/i18n/tr.ts +172 -0
- package/src/category/i18n/zh.ts +172 -0
- package/src/category/index.ts +13 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +0 -1
- package/src/tool/date-diff-calculator/i18n/de.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/fr.ts +1 -1
- package/src/tool/date-diff-calculator/i18n/id.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/it.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ja.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ko.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/nl.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/pl.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/pt.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/ru.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/sv.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/tr.ts +132 -0
- package/src/tool/date-diff-calculator/i18n/zh.ts +132 -0
- package/src/tool/date-diff-calculator/index.ts +12 -0
- package/src/tool/drive-direct-link/i18n/de.ts +118 -0
- package/src/tool/drive-direct-link/i18n/id.ts +118 -0
- package/src/tool/drive-direct-link/i18n/it.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ja.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ko.ts +118 -0
- package/src/tool/drive-direct-link/i18n/nl.ts +118 -0
- package/src/tool/drive-direct-link/i18n/pl.ts +118 -0
- package/src/tool/drive-direct-link/i18n/pt.ts +118 -0
- package/src/tool/drive-direct-link/i18n/ru.ts +118 -0
- package/src/tool/drive-direct-link/i18n/sv.ts +118 -0
- package/src/tool/drive-direct-link/i18n/tr.ts +118 -0
- package/src/tool/drive-direct-link/i18n/zh.ts +118 -0
- package/src/tool/drive-direct-link/index.ts +12 -0
- package/src/tool/email-list-cleaner/i18n/de.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/es.ts +1 -1
- package/src/tool/email-list-cleaner/i18n/fr.ts +1 -1
- package/src/tool/email-list-cleaner/i18n/id.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/it.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ja.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ko.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/nl.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/pl.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/pt.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/ru.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/sv.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/tr.ts +140 -0
- package/src/tool/email-list-cleaner/i18n/zh.ts +140 -0
- package/src/tool/email-list-cleaner/index.ts +12 -0
- package/src/tool/env-badge-spain/i18n/de.ts +153 -0
- package/src/tool/env-badge-spain/i18n/es.ts +1 -1
- package/src/tool/env-badge-spain/i18n/fr.ts +1 -1
- package/src/tool/env-badge-spain/i18n/id.ts +153 -0
- package/src/tool/env-badge-spain/i18n/it.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ja.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ko.ts +153 -0
- package/src/tool/env-badge-spain/i18n/nl.ts +153 -0
- package/src/tool/env-badge-spain/i18n/pl.ts +153 -0
- package/src/tool/env-badge-spain/i18n/pt.ts +153 -0
- package/src/tool/env-badge-spain/i18n/ru.ts +153 -0
- package/src/tool/env-badge-spain/i18n/sv.ts +153 -0
- package/src/tool/env-badge-spain/i18n/tr.ts +153 -0
- package/src/tool/env-badge-spain/i18n/zh.ts +153 -0
- package/src/tool/env-badge-spain/index.ts +12 -0
- package/src/tool/morse-beacon/i18n/de.ts +157 -0
- package/src/tool/morse-beacon/i18n/es.ts +1 -1
- package/src/tool/morse-beacon/i18n/id.ts +157 -0
- package/src/tool/morse-beacon/i18n/it.ts +157 -0
- package/src/tool/morse-beacon/i18n/ja.ts +157 -0
- package/src/tool/morse-beacon/i18n/ko.ts +157 -0
- package/src/tool/morse-beacon/i18n/nl.ts +157 -0
- package/src/tool/morse-beacon/i18n/pl.ts +157 -0
- package/src/tool/morse-beacon/i18n/pt.ts +157 -0
- package/src/tool/morse-beacon/i18n/ru.ts +157 -0
- package/src/tool/morse-beacon/i18n/sv.ts +157 -0
- package/src/tool/morse-beacon/i18n/tr.ts +157 -0
- package/src/tool/morse-beacon/i18n/zh.ts +157 -0
- package/src/tool/morse-beacon/index.ts +13 -1
- package/src/tool/password-generator/i18n/de.ts +166 -0
- package/src/tool/password-generator/i18n/fr.ts +1 -1
- package/src/tool/password-generator/i18n/id.ts +166 -0
- package/src/tool/password-generator/i18n/it.ts +166 -0
- package/src/tool/password-generator/i18n/ja.ts +166 -0
- package/src/tool/password-generator/i18n/ko.ts +166 -0
- package/src/tool/password-generator/i18n/nl.ts +166 -0
- package/src/tool/password-generator/i18n/pl.ts +166 -0
- package/src/tool/password-generator/i18n/pt.ts +166 -0
- package/src/tool/password-generator/i18n/ru.ts +166 -0
- package/src/tool/password-generator/i18n/sv.ts +166 -0
- package/src/tool/password-generator/i18n/tr.ts +166 -0
- package/src/tool/password-generator/i18n/zh.ts +166 -0
- package/src/tool/password-generator/index.ts +13 -1
- package/src/tool/routes/i18n/de.ts +157 -0
- package/src/tool/routes/i18n/es.ts +1 -1
- package/src/tool/routes/i18n/id.ts +157 -0
- package/src/tool/routes/i18n/it.ts +157 -0
- package/src/tool/routes/i18n/ja.ts +157 -0
- package/src/tool/routes/i18n/ko.ts +157 -0
- package/src/tool/routes/i18n/nl.ts +157 -0
- package/src/tool/routes/i18n/pl.ts +157 -0
- package/src/tool/routes/i18n/pt.ts +157 -0
- package/src/tool/routes/i18n/ru.ts +157 -0
- package/src/tool/routes/i18n/sv.ts +157 -0
- package/src/tool/routes/i18n/tr.ts +157 -0
- package/src/tool/routes/i18n/zh.ts +157 -0
- package/src/tool/routes/index.ts +13 -1
- package/src/tool/rule-of-three/i18n/de.ts +171 -0
- package/src/tool/rule-of-three/i18n/en.ts +1 -1
- package/src/tool/rule-of-three/i18n/id.ts +171 -0
- package/src/tool/rule-of-three/i18n/it.ts +171 -0
- package/src/tool/rule-of-three/i18n/ja.ts +171 -0
- package/src/tool/rule-of-three/i18n/ko.ts +171 -0
- package/src/tool/rule-of-three/i18n/nl.ts +171 -0
- package/src/tool/rule-of-three/i18n/pl.ts +171 -0
- package/src/tool/rule-of-three/i18n/pt.ts +171 -0
- package/src/tool/rule-of-three/i18n/ru.ts +171 -0
- package/src/tool/rule-of-three/i18n/sv.ts +171 -0
- package/src/tool/rule-of-three/i18n/tr.ts +171 -0
- package/src/tool/rule-of-three/i18n/zh.ts +171 -0
- package/src/tool/rule-of-three/index.ts +13 -1
- package/src/tool/seo-content-optimizer/i18n/de.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/id.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/it.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ja.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ko.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/nl.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/pl.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/pt.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/ru.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/sv.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/tr.ts +136 -0
- package/src/tool/seo-content-optimizer/i18n/zh.ts +136 -0
- package/src/tool/seo-content-optimizer/index.ts +12 -0
- package/src/tool/speed-reader/i18n/de.ts +152 -0
- package/src/tool/speed-reader/i18n/es.ts +1 -1
- package/src/tool/speed-reader/i18n/id.ts +152 -0
- package/src/tool/speed-reader/i18n/it.ts +152 -0
- package/src/tool/speed-reader/i18n/ja.ts +152 -0
- package/src/tool/speed-reader/i18n/ko.ts +152 -0
- package/src/tool/speed-reader/i18n/nl.ts +152 -0
- package/src/tool/speed-reader/i18n/pl.ts +152 -0
- package/src/tool/speed-reader/i18n/pt.ts +152 -0
- package/src/tool/speed-reader/i18n/ru.ts +152 -0
- package/src/tool/speed-reader/i18n/sv.ts +152 -0
- package/src/tool/speed-reader/i18n/tr.ts +152 -0
- package/src/tool/speed-reader/i18n/zh.ts +152 -0
- package/src/tool/speed-reader/index.ts +12 -0
- package/src/tool/text-pixel-calculator/i18n/de.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/id.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/it.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ja.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ko.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/nl.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/pl.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/pt.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/ru.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/sv.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/tr.ts +133 -0
- package/src/tool/text-pixel-calculator/i18n/zh.ts +133 -0
- package/src/tool/text-pixel-calculator/index.ts +12 -0
- package/src/tool/whatsapp-link/i18n/de.ts +128 -0
- package/src/tool/whatsapp-link/i18n/es.ts +1 -1
- package/src/tool/whatsapp-link/i18n/id.ts +128 -0
- package/src/tool/whatsapp-link/i18n/it.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ja.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ko.ts +128 -0
- package/src/tool/whatsapp-link/i18n/nl.ts +128 -0
- package/src/tool/whatsapp-link/i18n/pl.ts +128 -0
- package/src/tool/whatsapp-link/i18n/pt.ts +128 -0
- package/src/tool/whatsapp-link/i18n/ru.ts +128 -0
- package/src/tool/whatsapp-link/i18n/sv.ts +128 -0
- package/src/tool/whatsapp-link/i18n/tr.ts +128 -0
- package/src/tool/whatsapp-link/i18n/zh.ts +128 -0
- package/src/tool/whatsapp-link/index.ts +12 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { EnvBadgeSpainUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: 'İspanya\'daki bir Düşük Emisyon Bölgesine (ZBE) etiketsiz bir araçla girersem ne olur?',
|
|
8
|
+
answer: 'İspanya\'nın büyük bir şehrindeki bir ZBE\'ye çevre etiketi olmayan ve özel bir muafiyeti bulunmayan bir araçla girerseniz, ciddi bir ihlalden dolayı genellikle 200 Euro tutarında bir para cezası alırsınız.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Fiziksel DGT çıkartmasını ön camımda sergilemek zorunda mıyım?',
|
|
12
|
+
answer: 'DGT sergilenmesini tavsiye eder, ancak buna uymamanın cezaları her yerel yönetim tarafından belirlenir. Madrid\'de bu zorunluyken, diğer şehirlerde uygulama tamamen otomatik plaka tanıma kameralarına dayanmaktadır.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Dizel aracım 2006\'dan önce tescil edildi ancak teknik belgesinde Euro 4 yazıyor. Etiket alabilir miyim?',
|
|
16
|
+
answer: 'Evet. Trafik yetkililerindeki araç verileri yalnızca tescil tarihini gösteriyorsa, resmi bir bayi aracılığıyla üreticiden bir sertifika talep edebilir ve sınıflandırmanızı düzeltmek için trafik ofisine sunabilirsiniz.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '2025 yılında İspanya\'daki otomobiller için C etiketi (Yeşil) ne anlama geliyor?',
|
|
20
|
+
answer: 'Çoğu ZBE\'de hala serbestçe sürüş yapabilirsiniz, ancak C etiketi sokak otoparkını kısıtlar. ZBE sınırlarının yakınındaki yeraltı veya yetkili otoparkları kullanmanız gerekecektir.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'Araç tipinizi seçin', text: 'Aracınızın otomobil/kamyonet, motosiklet veya ağır vasıta olup olmadığını seçin. Her kategori, İspanyol trafik yönetmeliklerine göre farklı bir sınıflandırma mantığına sahiptir.' },
|
|
26
|
+
{ name: 'Yakıt veya enerji tipini seçin', text: 'Elektrikli, şarj edilebilir hibrit, geleneksel hibrit, gaz, benzin veya dizel seçeneklerinin her biri farklı etiket sonuçlarına yol açar. Şarj edilebilir hibritler için menzil eşiği 40 km\'dir.' },
|
|
27
|
+
{ name: 'Tescil yılını veya Euro standardını girin', text: 'Yanmalı araçlar için belirleyici faktör Euro standardıdır. Teknik belgedeki tescil tarihi, standart hakkında güvenilir bir yaklaşık değer verir.' },
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
31
|
+
'@context': 'https://schema.org',
|
|
32
|
+
'@type': 'FAQPage',
|
|
33
|
+
mainEntity: faqData.map((item) => ({
|
|
34
|
+
'@type': 'Question',
|
|
35
|
+
name: item.question,
|
|
36
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
37
|
+
})),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const howToSchema: WithContext<HowTo> = {
|
|
41
|
+
'@context': 'https://schema.org',
|
|
42
|
+
'@type': 'HowTo',
|
|
43
|
+
name: 'Aracınız için İspanyol DGT çevre etiketi simülasyonu nasıl yapılır?',
|
|
44
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'SoftwareApplication',
|
|
50
|
+
name: 'İspanyol DGT Çevre Etiketi Simülatörü',
|
|
51
|
+
applicationCategory: 'UtilitiesApplication',
|
|
52
|
+
operatingSystem: 'Web',
|
|
53
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
54
|
+
description: 'Aracınızın tipine, yakıtına ve tescil yılına göre hangi İspanyol DGT çevre etiketinin geçerli olduğunu öğrenin. İspanya\'daki Düşük Emisyon Bölgelerine hazırlanmak için ücretsiz araç.',
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const ui: EnvBadgeSpainUI = {
|
|
58
|
+
step1Label: '1. Araç Tipi',
|
|
59
|
+
vehicleCar: 'Otomobil / Kamyonet',
|
|
60
|
+
vehicleMoto: 'Motosiklet',
|
|
61
|
+
vehicleHeavy: 'Kamyon / Otobüs',
|
|
62
|
+
errVehicle: 'Lütfen bir araç tipi seçin',
|
|
63
|
+
|
|
64
|
+
step2Label: '2. Yakıt veya Enerji',
|
|
65
|
+
fuelElectric: '%100 Elektrikli / Yakıt Hücresi',
|
|
66
|
+
fuelPhevHigh: 'Şarj Edilebilir Hibrit (>40 km)',
|
|
67
|
+
fuelPhevLow: 'Şarj Edilebilir Hibrit (<40 km)',
|
|
68
|
+
fuelHybridGas: 'Hibrit (HEV) veya Gaz',
|
|
69
|
+
fuelGasoline: 'Benzin',
|
|
70
|
+
fuelDiesel: 'Dizel',
|
|
71
|
+
errFuel: 'Lütfen bir yakıt veya enerji tipi seçin',
|
|
72
|
+
|
|
73
|
+
step3Label: '3. Euro Standardı veya Tescil Yılı',
|
|
74
|
+
yearPre2000: '2000 öncesi',
|
|
75
|
+
year20002005: '2000 - 2005',
|
|
76
|
+
year20062013: '2006 - 2013',
|
|
77
|
+
yearPost2014: '2014 veya sonrası',
|
|
78
|
+
errYear: 'Lütfen tescil dönemini seçin',
|
|
79
|
+
helpText: 'Şüphe durumunda, teknik belgenizde gösterilen Euro standardı tescil tarihinden önceliklidir.',
|
|
80
|
+
|
|
81
|
+
submitBtn: 'Etiketimi Kontrol Et',
|
|
82
|
+
|
|
83
|
+
resultTitle: 'Atanan Etiket',
|
|
84
|
+
|
|
85
|
+
badge0Label: 'Sıfır Emisyon Etiketi',
|
|
86
|
+
badge0Letter: '0',
|
|
87
|
+
badge0Sub: 'EMİSYON',
|
|
88
|
+
badge0Desc: 'Maksimum verimliliğe sahip araçlar. İspanya\'daki Düşük Emisyon Bölgelerine (ZBE) sınırsız erişim ve geniş vergi muafiyetlerinden yararlanırlar.',
|
|
89
|
+
|
|
90
|
+
badgeEcoLabel: 'ECO Etiketi',
|
|
91
|
+
badgeEcoLetter: 'ECO',
|
|
92
|
+
badgeEcoDesc: 'Hibritler ve gazla çalışan otomobiller gibi düşük emisyonlu araçlar. Çoğu ZBE\'ye erişime izin verir ve düzenlenmiş park bölgelerinde indirim sağlar.',
|
|
93
|
+
|
|
94
|
+
badgeCLabel: 'C Etiketi',
|
|
95
|
+
badgeCLetter: 'C',
|
|
96
|
+
badgeCDesc: 'Yüksek Euro standardına sahip yeni yanmalı araçlar. Serbest dolaşım ancak belirli ZBE alanlarında sokak park kısıtlamalarına tabidir.',
|
|
97
|
+
|
|
98
|
+
badgeBLabel: 'B Etiketi',
|
|
99
|
+
badgeBLetter: 'B',
|
|
100
|
+
badgeBDesc: 'Daha eski yanmalı araçlar. İspanyol şehirlerinde daha büyük erişim ve park kısıtlamalarına tabidir.',
|
|
101
|
+
|
|
102
|
+
badgeALabel: 'Etiket Yok',
|
|
103
|
+
badgeALetter: 'YOK',
|
|
104
|
+
badgeASub: 'ETİKET',
|
|
105
|
+
badgeADesc: 'Etiket alma hakkı olmayan yüksek oranda kirletici araçlar. İspanya genelindeki şehir merkezlerinden ve Düşük Emisyon Bölgelerinden kademeli olarak hariç tutulmaktadırlar.',
|
|
106
|
+
|
|
107
|
+
warningText: 'Sonucu onaylamak için her zaman resmi DGT web sitesinde plakanızı kullanarak doğrulama yapın, özellikle idari tutarsızlık durumunda.',
|
|
108
|
+
resetBtn: 'Yeni Simülasyon',
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export const content: ToolLocaleContent<EnvBadgeSpainUI> = {
|
|
112
|
+
slug: 'ispanya-cevre-etiketi-simulatoru',
|
|
113
|
+
title: 'İspanya Çevre Etiketi Simülatörü',
|
|
114
|
+
description: 'İspanya\'daki Düşük Emisyon Bölgeleri (ZBE) için aracınızın, motosikletinizin veya kamyonetinizin hangi İspanyol DGT çevre etiketine sahip olduğunu ücretsiz öğrenin.',
|
|
115
|
+
ui,
|
|
116
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
117
|
+
faq: faqData,
|
|
118
|
+
howTo: howToData,
|
|
119
|
+
bibliographyTitle: 'Kaynaklar',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{ name: 'İklim Değişikliği ve Trafik Düzenlemeleri Üzerine DGT (İspanyolca)', url: 'https://www.dgt.es/export/sites/web-DGT/.galleries/downloads/muevete-con-seguridad/normas-de-trafico/MOV-gestion-trafico/2023/INSTRUCCION-recomendaciones-ZBE_fe.pdf' },
|
|
122
|
+
{ name: 'İspanyol İklim Değişikliği Yasası ve Düşük Emisyon Bölgeleri (BOE)', url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2021-8447' },
|
|
123
|
+
],
|
|
124
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
125
|
+
seo: [
|
|
126
|
+
{ type: 'title', level: 2, text: 'İspanyol DGT çevre etiketi nedir?' },
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '<strong>İspanyol DGT çevre etiketi</strong> (distintivo ambiental), en az kirletici araçlara öncelikli muamele sağlamak için İspanya\'da tanıtılan bir araç sınıflandırma sistemidir. Esas olarak 50.000\'den fazla nüfuslu İspanyol şehirlerindeki Düşük Emisyon Bölgelerine (ZBE) erişimi kontrol etmek için kullanılır.',
|
|
130
|
+
},
|
|
131
|
+
{ type: 'title', level: 3, text: 'İspanya\'daki etiket türleri ve faydaları' },
|
|
132
|
+
{
|
|
133
|
+
type: 'list',
|
|
134
|
+
items: [
|
|
135
|
+
'<strong>Sıfır Emisyon Etiketi:</strong> Saf elektrikli araçlar, 40 km\'den fazla elektrikli menzile sahip şarj edilebilir hibritler ve hidrojen yakıt hücreleri için. ZBE\'lere sınırsız erişim ve vergi muafiyetleri.',
|
|
136
|
+
'<strong>ECO Etiketi:</strong> Geleneksel hibritler, LPG, CNG ve 40 km\'den az menzilli şarj edilebilir hibritler. Kısıtlı bölgelere geniş erişim ve park indirimleri.',
|
|
137
|
+
'<strong>C Etiketi:</strong> Euro 4 benzinli veya sonrası, Euro 6 dizel. Serbest dolaşım ancak ZBE\'lerin yakınında sokak park kısıtlamaları uygulanır.',
|
|
138
|
+
'<strong>B Etiketi:</strong> Euro 3 benzinli, Euro 4 veya 5 dizel. Artan kısıtlamalar ve ara sıra giriş yasakları.',
|
|
139
|
+
'<strong>Etiketsiz (Kategori A):</strong> 2024\'ten beri İspanyol şehir merkezlerinden kademeli olarak hariç tutulan eski veya daha fazla kirletici araçlar.',
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
{ type: 'title', level: 3, text: 'İspanyol şehirlerindeki Düşük Emisyon Bölgeleri' },
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: 'ZBE uygulaması, belirli nüfus eşiklerinin üzerindeki belediyelerin bunları oluşturmasını gerektiren İspanyol İklim Değişikliği Yasasını takip eder. Kayda değer örnekler, en azından bir B etiketi olmadan girmenin plaka tanıma kameraları aracılığıyla otomatik para cezalarıyla sonuçlanabileceği <em>Madrid 360</em> ve Barcelona\'nın <em>Superilles</em> projeleridir.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'tip',
|
|
149
|
+
title: 'İspanya\'da fiziksel çıkartma nasıl alınır',
|
|
150
|
+
html: 'Simülatör bir etikete hak kazandığınızı onaylarsa, fiziksel çıkartmayı herhangi bir Correos (postane) şubesinden, yetkili servislerden veya trafik ofislerinden yaklaşık 5 Euro karşılığında satın alabilirsiniz. Araç tescil belgelerinizi yanınızda getirin.',
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { EnvBadgeSpainUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: '如果我驾驶没有环保标签的车辆进入西班牙的低排放区 (ZBE) 会怎样?',
|
|
8
|
+
answer: '如果您驾驶没有环保标签且没有特殊豁免的车辆进入西班牙主要城市的低排放区 (ZBE),您将因严重违章收到罚单,金额通常为 200 欧元。',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: '我必须在挡风玻璃上张贴 DGT 实体标签吗?',
|
|
12
|
+
answer: 'DGT(交通总局)建议张贴,但未张贴的罚款由各地方当局制定。在马德里是强制性的,而在其他城市,执法完全依赖于自动车牌识别摄像头。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '我的柴油车在 2006 年之前注册,但技术规格表上显示为 Euro 4。我可以获得标签吗?',
|
|
16
|
+
answer: '可以。如果交通部门持有的车辆数据仅反映注册日期,您可以向制造商通过官方经销商申请证书,并将其提交给交通部门以更正您的分类。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '2025 年西班牙汽车的 C 标签(绿色)意味着什么?',
|
|
20
|
+
answer: '在大多数低排放区 (ZBE) 中,您仍然可以自由驾驶,但 C 标签限制了路边停车。您将被要求使用低排放区周边的地下停车场或授权停车场。',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: '选择车辆类型', text: '选择您的车辆是轿车/面包车、摩托车还是重型车辆。根据西班牙交通法规,每个类别有不同的分类逻辑。' },
|
|
26
|
+
{ name: '选择燃料或能源类型', text: '电力、插电式混合动力、传统混合动力、天然气、汽油或柴油都会导致不同的标签结果。插电式混合动力的续航里程阈值为 40 公里。' },
|
|
27
|
+
{ name: '输入注册年份或 Euro 标准', text: '对于内燃机车辆,Euro 标准是决定性因素。技术规格表上的注册日期可以可靠地近似出相应的标准。' },
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
31
|
+
'@context': 'https://schema.org',
|
|
32
|
+
'@type': 'FAQPage',
|
|
33
|
+
mainEntity: faqData.map((item) => ({
|
|
34
|
+
'@type': 'Question',
|
|
35
|
+
name: item.question,
|
|
36
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
37
|
+
})),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const howToSchema: WithContext<HowTo> = {
|
|
41
|
+
'@context': 'https://schema.org',
|
|
42
|
+
'@type': 'HowTo',
|
|
43
|
+
name: '如何模拟您车辆的西班牙 DGT 环保标签',
|
|
44
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'SoftwareApplication',
|
|
50
|
+
name: '西班牙 DGT 环保标签模拟器',
|
|
51
|
+
applicationCategory: 'UtilitiesApplication',
|
|
52
|
+
operatingSystem: 'Web',
|
|
53
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
54
|
+
description: '根据车辆类型、燃料和注册年份,查询适用于您车辆的西班牙 DGT 环保标签。为西班牙低排放区做准备的免费工具。',
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const ui: EnvBadgeSpainUI = {
|
|
58
|
+
step1Label: '1. 车辆类型',
|
|
59
|
+
vehicleCar: '轿车 / 面包车',
|
|
60
|
+
vehicleMoto: '摩托车',
|
|
61
|
+
vehicleHeavy: '卡车 / 巴士',
|
|
62
|
+
errVehicle: '请选择车辆类型',
|
|
63
|
+
|
|
64
|
+
step2Label: '2. 燃料或能源',
|
|
65
|
+
fuelElectric: '100% 电动 / 燃料电池',
|
|
66
|
+
fuelPhevHigh: '插电式混合动力 (>40 km)',
|
|
67
|
+
fuelPhevLow: '插电式混合动力 (<40 km)',
|
|
68
|
+
fuelHybridGas: '混合动力 (HEV) 或天然气',
|
|
69
|
+
fuelGasoline: '汽油',
|
|
70
|
+
fuelDiesel: '柴油',
|
|
71
|
+
errFuel: '请选择燃料或能源类型',
|
|
72
|
+
|
|
73
|
+
step3Label: '3. Euro 标准或注册年份',
|
|
74
|
+
yearPre2000: '2000 年以前',
|
|
75
|
+
year20002005: '2000 年至 2005 年',
|
|
76
|
+
year20062013: '2006 年至 2013 年',
|
|
77
|
+
yearPost2014: '2014 年或以后',
|
|
78
|
+
errYear: '请选择注册时间',
|
|
79
|
+
helpText: '如有疑问,技术规格表上显示的 Euro 标准优先于注册日期。',
|
|
80
|
+
|
|
81
|
+
submitBtn: '检查我的标签',
|
|
82
|
+
|
|
83
|
+
resultTitle: '分配的标签',
|
|
84
|
+
|
|
85
|
+
badge0Label: '零排放标签',
|
|
86
|
+
badge0Letter: '0',
|
|
87
|
+
badge0Sub: '排放',
|
|
88
|
+
badge0Desc: '最高效率等级的车辆。它们在西班牙低排放区 (ZBE) 享有无限制通行的权利,并拥有广泛的税收减免。',
|
|
89
|
+
|
|
90
|
+
badgeEcoLabel: 'ECO 标签',
|
|
91
|
+
badgeEcoLetter: 'ECO',
|
|
92
|
+
badgeEcoDesc: '低排放车辆,如混合动力和天然气动力汽车。允许进入大多数低排放区,并在管制停车区享有折扣。',
|
|
93
|
+
|
|
94
|
+
badgeCLabel: 'C 标签',
|
|
95
|
+
badgeCLetter: 'C',
|
|
96
|
+
badgeCDesc: '符合高 Euro 标准的近期内燃机车辆。可以自由通行,但在某些低排放区域面临路边停车限制。',
|
|
97
|
+
|
|
98
|
+
badgeBLabel: 'B 标签',
|
|
99
|
+
badgeBLetter: 'B',
|
|
100
|
+
badgeBDesc: '较旧的内燃机车辆。在西班牙城市面临更多的进入和停车限制。',
|
|
101
|
+
|
|
102
|
+
badgeALabel: '无标签',
|
|
103
|
+
badgeALetter: '无',
|
|
104
|
+
badgeASub: '标签',
|
|
105
|
+
badgeADesc: '由于高污染而不符合标签资格的车辆。它们正逐步从西班牙全境的市中心和低排放区中被排除。',
|
|
106
|
+
|
|
107
|
+
warningText: '请务必在 DGT 官方网站上使用您的车牌号进行验证以确认结果,特别是在行政数据不一致的情况下。',
|
|
108
|
+
resetBtn: '重新模拟',
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export const content: ToolLocaleContent<EnvBadgeSpainUI> = {
|
|
112
|
+
slug: 'environmental-badge-simulator-spain',
|
|
113
|
+
title: '西班牙环保标签模拟器',
|
|
114
|
+
description: '免费查询适用于您的轿车、摩托车或面包车的西班牙 DGT 环保标签,以应对西班牙的低排放区 (ZBE)。',
|
|
115
|
+
ui,
|
|
116
|
+
faqTitle: '常见问题',
|
|
117
|
+
faq: faqData,
|
|
118
|
+
howTo: howToData,
|
|
119
|
+
bibliographyTitle: '参考文献',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{ name: 'DGT 气候变化与交通法规(西班牙语)', url: 'https://www.dgt.es/export/sites/web-DGT/.galleries/downloads/muevete-con-seguridad/normas-de-trafico/MOV-gestion-trafico/2023/INSTRUCCION-recomendaciones-ZBE_fe.pdf' },
|
|
122
|
+
{ name: '西班牙气候变化法与低排放区 (BOE)', url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2021-8447' },
|
|
123
|
+
],
|
|
124
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
125
|
+
seo: [
|
|
126
|
+
{ type: 'title', level: 2, text: '什么是西班牙 DGT 环保标签?' },
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '<strong>西班牙 DGT 环保标签</strong> (distintivo ambiental) 是西班牙引入的一种车辆分类系统,旨在对污染最少的车辆给于优待。它主要用于管制拥有超过 5 万居民的西班牙城市的低排放区 (ZBE) 进入权限。',
|
|
130
|
+
},
|
|
131
|
+
{ type: 'title', level: 3, text: '西班牙环保标签类型及其优势' },
|
|
132
|
+
{
|
|
133
|
+
type: 'list',
|
|
134
|
+
items: [
|
|
135
|
+
'<strong>零排放标签:</strong> 适用于纯电动汽车、续航里程超过 40 公里的插电式混合动力汽车以及氢燃料电池汽车。在低排放区无限制通行并免税。',
|
|
136
|
+
'<strong>ECO 标签:</strong> 适用于常规混合动力、液化石油气 (LPG)、天然气 (CNG) 以及续航里程低于 40 公里的插电式混合动力。广泛进入禁区并享有停车折扣。',
|
|
137
|
+
'<strong>C 标签:</strong> 适用于 Euro 4 及以后的汽油车,Euro 6 的柴油车。可以自由通行,但在低排放区附近面临路边停车限制。',
|
|
138
|
+
'<strong>B 标签:</strong> 适用于 Euro 3 汽油车,Euro 4 或 5 柴油车。面临越来越多的限制和偶尔的禁入令。',
|
|
139
|
+
'<strong>无标签(A 类):</strong> 较旧或污染较重的车辆,自 2024 年起逐步从西班牙市中心排除。',
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
{ type: 'title', level: 3, text: '西班牙城市的低排放区' },
|
|
143
|
+
{
|
|
144
|
+
type: 'paragraph',
|
|
145
|
+
html: '低排放区 (ZBE) 的推广遵循西班牙《气候变化法》,该法律要求达到一定人口阈值的市级行政区建立这些区域。著名的例子包括<em>马德里 360 (Madrid 360)</em> 和巴塞罗那的 <em>Superilles</em>,在这些区域,如果没有至少 B 标签,进入可能会导致通过车牌识别摄像头自动开出的罚单。',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'tip',
|
|
149
|
+
title: '如何在西班牙获取实体贴纸',
|
|
150
|
+
html: '如果模拟器确认您符合标签资格,您可以携带车辆注册文件,在任何 Correos(邮局)网点、授权维修店或交通局以约 5 欧元的价格购买实体贴纸。',
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
};
|
|
@@ -11,6 +11,18 @@ export const envBadgeSpain: ToolsToolEntry<EnvBadgeSpainUI> = {
|
|
|
11
11
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
12
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
13
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
14
26
|
},
|
|
15
27
|
};
|
|
16
28
|
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { MorseBeaconUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Was ist das SOS-Notrufsignal im Morsecode?',
|
|
8
|
+
answer: 'Das Signal lautet „... --- ...“ (drei Punkte, drei Striche, drei Punkte). Es wird kontinuierlich ohne Leerzeichen zwischen den Buchstaben übertragen, um einen unmittelbaren Notfall anzuzeigen.',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Warum funktioniert die Taschenlampe in meinem Browser nicht?',
|
|
12
|
+
answer: 'Die Aktivierung der Taschenlampe erfordert Kameraleberechtigungen im Browser. Einige mobile Browser oder ältere Desktop-Versionen unterstützen diese API aus Datenschutzgründen nicht.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Ist das SOS-Bildschirmsignal sichtbar?',
|
|
16
|
+
answer: 'Ja, bei totaler Dunkelheit kann das maximale Leuchten eines weiß blinkenden Bildschirms im Morsecode aus mehreren hundert Metern Entfernung gesehen werden, was es zu einer nützlichen Alternative macht, falls die Taschenlampe ausfällt.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Was ist der internationale Morsecode?',
|
|
20
|
+
answer: 'Es handelt sich um ein Kommunikationssystem, das Sequenzen von kurzen (Punkte) und langen (Striche) Signalen verwendet, um Buchstaben und Zahlen darzustellen, standardisiert von der ITU für Funkkommunikation und optische Signale.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Nachricht schreiben',
|
|
27
|
+
text: 'Geben Sie den Text ein, den Sie übertragen möchten, oder verwenden Sie die vorkonfigurierte „SOS“-Taste für Notfälle.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Geschwindigkeit konfigurieren',
|
|
31
|
+
text: 'Passen Sie die WPM (Wörter pro Minute) an, um das Signal je nach Sichtbarkeit schneller oder langsamer zu machen.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Lichtquelle wählen',
|
|
35
|
+
text: 'Aktivieren Sie das Blinken des Vollbildmodus oder erlauben Sie den Zugriff auf die Kamerataschenlampe für ein stärkeres Signal.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Übertragung starten',
|
|
39
|
+
text: 'Drücken Sie auf „Senden“, damit das System den Text in automatische visuelle Impulse nach dem Morse-Standard umwandelt.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: 'So verwenden Sie die Morsebakke zum Übertragen von Nachrichten',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: 'Morsebakke: Taktischer SOS-Sender',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: 'Verwandeln Sie Ihr Gerät in eine Morse-Sendestation. Nutzen Sie Blitzlicht und Bildschirm als Notlichtsignale und zur taktischen Kommunikation.',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: MorseBeaconUI = {
|
|
71
|
+
labelMessage: 'Zu übertragende Nachricht',
|
|
72
|
+
placeholder: 'Geben Sie hier Ihre Nachricht ein (SOS, HALLO, HILFE)...',
|
|
73
|
+
btnTransmit: 'Senden',
|
|
74
|
+
btnSosLoop: 'SOS Schleife',
|
|
75
|
+
btnStop: 'Stopp',
|
|
76
|
+
labelTorch: 'Blitz/Taschenlampe',
|
|
77
|
+
statusStandby: 'STANDBY',
|
|
78
|
+
statusTransmitting: 'SENDET...',
|
|
79
|
+
statusStopping: 'STOPPT...',
|
|
80
|
+
statusWaiting: 'WARTET',
|
|
81
|
+
statusReady: 'HARDWARE BEREIT',
|
|
82
|
+
statusNoTorch: 'KEIN BLITZ',
|
|
83
|
+
statusNoPermission: 'KEINE RECHTE',
|
|
84
|
+
statusNotSupported: 'NICHT UNTERSTÜTZT',
|
|
85
|
+
statusReqHttps: 'HTTPS ERF.',
|
|
86
|
+
statusSending: 'SENDET:',
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export const content: ToolLocaleContent<MorseBeaconUI> = {
|
|
90
|
+
slug: 'morse-feuer',
|
|
91
|
+
title: 'Morsebakke: Taktischer SOS Sender',
|
|
92
|
+
description: 'Verwandeln Sie Ihr Gerät in eine Morse-Sendestation. Nutzen Sie Blitzlicht und Bildschirm als Notlichtsignale und zur taktischen Kommunikation.',
|
|
93
|
+
ui,
|
|
94
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
95
|
+
faq: faqData,
|
|
96
|
+
howTo: howToData,
|
|
97
|
+
bibliographyTitle: 'Referenzen',
|
|
98
|
+
bibliography: [
|
|
99
|
+
{ name: 'ITU-R M.1677-1 — Internationaler Morsecode', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
|
|
100
|
+
{ name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
|
|
101
|
+
{ name: 'Morsecode — Wikipedia', url: 'https://de.wikipedia.org/wiki/Morsecode' },
|
|
102
|
+
],
|
|
103
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
|
+
seo: [
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Die Sprache des Lichts',
|
|
108
|
+
level: 2,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Dieses Tool verwandelt Ihr Gerät in eine optische Signalbakke, die Nachrichten übertragen kann, die aus Kilometern Entfernung sichtbar sind. Unter Verwendung des internationalen Morsecode-Standards ermöglicht es lautlose oder Notfallkommunikation über Lichtimpulse (Taschenlampe und Bildschirm).',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'comparative',
|
|
116
|
+
columns: 2,
|
|
117
|
+
items: [
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:history',
|
|
120
|
+
title: 'Ein universeller Standard',
|
|
121
|
+
description: 'Dieses 1830 von Samuel Morse entwickelte binäre System aus Punkten und Strichen revolutionierte die Telekommunikation. Seine Einfachheit macht es extrem robust: Es kann über Ton, Funk, Elektrizität oder Licht übertragen werden und bleibt selbst unter starken Störungen lesbar.',
|
|
122
|
+
points: [],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:flash-alert',
|
|
126
|
+
title: 'SOS Notfallmodus',
|
|
127
|
+
description: 'Die Taste „SOS Schleife“ überträgt kontinuierlich die Sequenz ··· --- ···. Dieses Signal ist weltweit als Notruf anerkannt und dank des hohen Kontrasts der LED-Taschenlampe unter bestimmten Bedingungen selbst bei Tageslicht aus großer Entfernung sichtbar.',
|
|
128
|
+
points: [],
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'ITU-R M.1677-1 Standard',
|
|
135
|
+
level: 2,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: 'Dieses Tool hält sich strikt an die <strong>regulatorischen Timings</strong> des internationalen Morsecodes, wie sie von der Internationalen Fernmeldeunion definiert wurden.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'1 Punkt = 1 Zeiteinheit',
|
|
145
|
+
'1 Strich = 3 Zeiteinheiten',
|
|
146
|
+
'Abstand zwischen Elementen = 1 Einheit',
|
|
147
|
+
'Abstand zwischen Buchstaben = 3 Einheiten',
|
|
148
|
+
'Abstand zwischen Wörtern = 7 Einheiten',
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
title: 'Standardgeschwindigkeit',
|
|
154
|
+
html: 'Die Standardgeschwindigkeit beträgt <strong>15 WPM</strong> (Wörter pro Minute), was einem professionellen Übertragungstempo entspricht. Bei 15 WPM gilt: 1 Einheit = 80 ms.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
};
|
|
@@ -87,7 +87,7 @@ const ui: MorseBeaconUI = {
|
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
export const content: ToolLocaleContent<MorseBeaconUI> = {
|
|
90
|
-
slug: '
|
|
90
|
+
slug: 'faro-morse',
|
|
91
91
|
title: 'Baliza Morse: Transmisor Táctico SOS',
|
|
92
92
|
description: 'Convierte tu dispositivo en una estación de transmisión Morse. Utiliza flash y pantalla como señales de luz de emergencia y comunicación táctica.',
|
|
93
93
|
ui,
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { MorseBeaconUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const faqData = [
|
|
6
|
+
{
|
|
7
|
+
question: 'Apa sinyal darurat SOS dalam kode Morse?',
|
|
8
|
+
answer: "Sinyalnya adalah '... --- ...' (tiga titik, tiga garis, tiga titik). Sinyal ini ditransmisikan terus menerus tanpa spasi di antara huruf-huruf untuk menunjukkan keadaan darurat segera.",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
question: 'Mengapa senter tidak berfungsi di browser saya?',
|
|
12
|
+
answer: 'Mengaktifkan senter mengharuskan browser memiliki izin kamera. Beberapa browser seluler atau versi desktop lama tidak mendukung API ini karena alasan privasi.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Apakah sinyal layar SOS terlihat?',
|
|
16
|
+
answer: 'Ya, dalam kondisi gelap gulita, kecerahan maksimum layar putih yang berkedip dalam Morse dapat terlihat dari jarak beberapa ratus meter, menjadikannya alternatif yang berguna jika senter gagal.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Apa itu kode Morse internasional?',
|
|
20
|
+
answer: 'Ini adalah sistem komunikasi yang menggunakan urutan sinyal pendek (titik) dan panjang (garis) untuk mewakili huruf dan angka, yang distandarisasi oleh ITU untuk komunikasi radio dan sinyal optik.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Tulis pesan',
|
|
27
|
+
text: "Masukkan teks yang ingin Anda kirimkan atau gunakan tombol 'SOS' yang telah dikonfigurasi sebelumnya untuk keadaan darurat.",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Konfigurasi kecepatan',
|
|
31
|
+
text: 'Sesuaikan WPM (kata per menit) untuk membuat sinyal lebih cepat atau lebih lambat tergantung pada visibilitas.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Pilih sumber cahaya',
|
|
35
|
+
text: 'Aktifkan kedipan layar penuh atau izinkan akses ke senter kamera untuk sinyal yang lebih kuat.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Mulai transmisi',
|
|
39
|
+
text: 'Tekan Transmisikan agar sistem mengonversi teks menjadi pulsa visual otomatis mengikuti standar Morse.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
44
|
+
'@context': 'https://schema.org',
|
|
45
|
+
'@type': 'FAQPage',
|
|
46
|
+
mainEntity: faqData.map((item) => ({
|
|
47
|
+
'@type': 'Question',
|
|
48
|
+
name: item.question,
|
|
49
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const howToSchema: WithContext<HowTo> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: 'Cara menggunakan suar Morse untuk mentransmisikan pesan',
|
|
57
|
+
step: howToData.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'SoftwareApplication',
|
|
63
|
+
name: 'Suar Morse: Pemancar SOS Taktis',
|
|
64
|
+
applicationCategory: 'UtilitiesApplication',
|
|
65
|
+
operatingSystem: 'Web',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
description: 'Ubah perangkat Anda menjadi stasiun transmisi Morse. Gunakan lampu kilat dan layar sebagai sinyal lampu darurat dan komunikasi taktis.',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const ui: MorseBeaconUI = {
|
|
71
|
+
labelMessage: 'Pesan untuk Ditransmisikan',
|
|
72
|
+
placeholder: 'Ketik pesan Anda di sini (SOS, HELLO, HELP)...',
|
|
73
|
+
btnTransmit: 'Transmisikan',
|
|
74
|
+
btnSosLoop: 'Loop SOS',
|
|
75
|
+
btnStop: 'Berhenti',
|
|
76
|
+
labelTorch: 'Lampu Kilat/Senter',
|
|
77
|
+
statusStandby: 'STANDBY',
|
|
78
|
+
statusTransmitting: 'TRANSMISI',
|
|
79
|
+
statusStopping: 'BERHENTI...',
|
|
80
|
+
statusWaiting: 'MENUNGGU',
|
|
81
|
+
statusReady: 'PERANGKAT SIAP',
|
|
82
|
+
statusNoTorch: 'TANPA SENTER',
|
|
83
|
+
statusNoPermission: 'TANPA IZIN',
|
|
84
|
+
statusNotSupported: 'TIDAK DIDUKUNG',
|
|
85
|
+
statusReqHttps: 'REQ. HTTPS',
|
|
86
|
+
statusSending: 'MENGIRIM:',
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export const content: ToolLocaleContent<MorseBeaconUI> = {
|
|
90
|
+
slug: 'mercusuar-morse',
|
|
91
|
+
title: 'Suar Morse: Pemancar SOS Taktis',
|
|
92
|
+
description: 'Ubah perangkat Anda menjadi stasiun transmisi Morse. Gunakan lampu kilat dan layar sebagai sinyal lampu darurat dan komunikasi taktis.',
|
|
93
|
+
ui,
|
|
94
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
95
|
+
faq: faqData,
|
|
96
|
+
howTo: howToData,
|
|
97
|
+
bibliographyTitle: 'Referensi',
|
|
98
|
+
bibliography: [
|
|
99
|
+
{ name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
|
|
100
|
+
{ name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
|
|
101
|
+
{ name: 'Kode Morse — Wikipedia', url: 'https://id.wikipedia.org/wiki/Kode_Morse' },
|
|
102
|
+
],
|
|
103
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
|
+
seo: [
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Bahasa Cahaya',
|
|
108
|
+
level: 2,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Alat ini mengubah perangkat Anda menjadi suar pemberi sinyal optik yang mampu mentransmisikan pesan yang terlihat dari jarak berkilometer-kilometer. Menggunakan standar Kode Morse internasional, ini memungkinkan komunikasi diam atau darurat melalui pulsa cahaya (senter dan layar).',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'comparative',
|
|
116
|
+
columns: 2,
|
|
117
|
+
items: [
|
|
118
|
+
{
|
|
119
|
+
icon: 'mdi:history',
|
|
120
|
+
title: 'Standar Universal',
|
|
121
|
+
description: 'Dikembangkan pada tahun 1830 oleh Samuel Morse, sistem biner titik dan garis ini merevolusi telekomunikasi. Kesederhanaannya membuatnya sangat tangguh: dapat ditransmisikan melalui suara, radio, listrik, atau cahaya, dan tetap terbaca bahkan di bawah gangguan parah.',
|
|
122
|
+
points: [],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
icon: 'mdi:flash-alert',
|
|
126
|
+
title: 'Mode Darurat SOS',
|
|
127
|
+
description: "Tombol 'Loop SOS' mentransmisikan urutan ··· --- ··· secara terus menerus. Sinyal ini diakui secara universal sebagai panggilan darurat dan, berkat kontras senter LED yang tinggi, terlihat dari jarak jauh bahkan di siang hari dalam kondisi tertentu.",
|
|
128
|
+
points: [],
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'Standar ITU-R M.1677-1',
|
|
135
|
+
level: 2,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: 'Alat ini secara ketat menghormati <strong>pengaturan waktu regulasi</strong> kode Morse internasional seperti yang didefinisikan oleh International Telecommunication Union.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'1 titik = 1 unit waktu',
|
|
145
|
+
'1 garis = 3 unit waktu',
|
|
146
|
+
'Spasi antar elemen = 1 unit',
|
|
147
|
+
'Spasi antar huruf = 3 unit',
|
|
148
|
+
'Spasi antar kata = 7 unit',
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
title: 'Kecepatan standar',
|
|
154
|
+
html: 'Kecepatan default-nya adalah <strong>15 WPM</strong> (kata per menit), yang sesuai dengan kecepatan transmisi profesional. Pada 15 WPM, 1 unit = 80 md.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
};
|