@jjlmoya/utils-chrono 1.11.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.
Files changed (88) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +6 -0
  3. package/src/entries.ts +10 -1
  4. package/src/tests/locale_completeness.test.ts +1 -1
  5. package/src/tests/tool_validation.test.ts +1 -1
  6. package/src/tool/gmt-world-timer/bibliography.astro +11 -0
  7. package/src/tool/gmt-world-timer/bibliography.ts +7 -0
  8. package/src/tool/gmt-world-timer/client.ts +250 -0
  9. package/src/tool/gmt-world-timer/component.astro +13 -0
  10. package/src/tool/gmt-world-timer/components/GmtPanel.astro +18 -0
  11. package/src/tool/gmt-world-timer/entry.ts +34 -0
  12. package/src/tool/gmt-world-timer/gmt-world-timer.css +239 -0
  13. package/src/tool/gmt-world-timer/helpers.ts +28 -0
  14. package/src/tool/gmt-world-timer/i18n/de.ts +72 -0
  15. package/src/tool/gmt-world-timer/i18n/en.ts +72 -0
  16. package/src/tool/gmt-world-timer/i18n/es.ts +72 -0
  17. package/src/tool/gmt-world-timer/i18n/fr.ts +72 -0
  18. package/src/tool/gmt-world-timer/i18n/id.ts +72 -0
  19. package/src/tool/gmt-world-timer/i18n/it.ts +72 -0
  20. package/src/tool/gmt-world-timer/i18n/ja.ts +72 -0
  21. package/src/tool/gmt-world-timer/i18n/ko.ts +72 -0
  22. package/src/tool/gmt-world-timer/i18n/nl.ts +72 -0
  23. package/src/tool/gmt-world-timer/i18n/pl.ts +72 -0
  24. package/src/tool/gmt-world-timer/i18n/pt.ts +72 -0
  25. package/src/tool/gmt-world-timer/i18n/ru.ts +72 -0
  26. package/src/tool/gmt-world-timer/i18n/sv.ts +72 -0
  27. package/src/tool/gmt-world-timer/i18n/tr.ts +72 -0
  28. package/src/tool/gmt-world-timer/i18n/zh.ts +72 -0
  29. package/src/tool/gmt-world-timer/index.ts +11 -0
  30. package/src/tool/gmt-world-timer/seo.astro +11 -0
  31. package/src/tool/perpetual-calendar/bibliography.astro +16 -0
  32. package/src/tool/perpetual-calendar/bibliography.ts +16 -0
  33. package/src/tool/perpetual-calendar/calendar.ts +24 -0
  34. package/src/tool/perpetual-calendar/client.ts +98 -0
  35. package/src/tool/perpetual-calendar/component.astro +17 -0
  36. package/src/tool/perpetual-calendar/components/CalendarPanel.astro +49 -0
  37. package/src/tool/perpetual-calendar/dial.ts +176 -0
  38. package/src/tool/perpetual-calendar/entry.ts +48 -0
  39. package/src/tool/perpetual-calendar/helpers.ts +49 -0
  40. package/src/tool/perpetual-calendar/i18n/de.ts +85 -0
  41. package/src/tool/perpetual-calendar/i18n/en.ts +102 -0
  42. package/src/tool/perpetual-calendar/i18n/es.ts +85 -0
  43. package/src/tool/perpetual-calendar/i18n/fr.ts +85 -0
  44. package/src/tool/perpetual-calendar/i18n/id.ts +85 -0
  45. package/src/tool/perpetual-calendar/i18n/it.ts +85 -0
  46. package/src/tool/perpetual-calendar/i18n/ja.ts +85 -0
  47. package/src/tool/perpetual-calendar/i18n/ko.ts +85 -0
  48. package/src/tool/perpetual-calendar/i18n/nl.ts +85 -0
  49. package/src/tool/perpetual-calendar/i18n/pl.ts +85 -0
  50. package/src/tool/perpetual-calendar/i18n/pt.ts +85 -0
  51. package/src/tool/perpetual-calendar/i18n/ru.ts +85 -0
  52. package/src/tool/perpetual-calendar/i18n/sv.ts +85 -0
  53. package/src/tool/perpetual-calendar/i18n/tr.ts +85 -0
  54. package/src/tool/perpetual-calendar/i18n/zh.ts +85 -0
  55. package/src/tool/perpetual-calendar/index.ts +11 -0
  56. package/src/tool/perpetual-calendar/perpetual-calendar.css +181 -0
  57. package/src/tool/perpetual-calendar/seo.astro +16 -0
  58. package/src/tool/perpetual-calendar/state.ts +26 -0
  59. package/src/tool/tourbillon-visualizer/bibliography.astro +11 -0
  60. package/src/tool/tourbillon-visualizer/bibliography.ts +7 -0
  61. package/src/tool/tourbillon-visualizer/client.ts +122 -0
  62. package/src/tool/tourbillon-visualizer/component.astro +126 -0
  63. package/src/tool/tourbillon-visualizer/components/TourbillonPanel.astro +66 -0
  64. package/src/tool/tourbillon-visualizer/entry.ts +51 -0
  65. package/src/tool/tourbillon-visualizer/helpers.ts +35 -0
  66. package/src/tool/tourbillon-visualizer/i18n/de.ts +96 -0
  67. package/src/tool/tourbillon-visualizer/i18n/en.ts +96 -0
  68. package/src/tool/tourbillon-visualizer/i18n/es.ts +96 -0
  69. package/src/tool/tourbillon-visualizer/i18n/fr.ts +96 -0
  70. package/src/tool/tourbillon-visualizer/i18n/id.ts +96 -0
  71. package/src/tool/tourbillon-visualizer/i18n/it.ts +96 -0
  72. package/src/tool/tourbillon-visualizer/i18n/ja.ts +96 -0
  73. package/src/tool/tourbillon-visualizer/i18n/ko.ts +96 -0
  74. package/src/tool/tourbillon-visualizer/i18n/nl.ts +96 -0
  75. package/src/tool/tourbillon-visualizer/i18n/pl.ts +96 -0
  76. package/src/tool/tourbillon-visualizer/i18n/pt.ts +96 -0
  77. package/src/tool/tourbillon-visualizer/i18n/ru.ts +96 -0
  78. package/src/tool/tourbillon-visualizer/i18n/sv.ts +96 -0
  79. package/src/tool/tourbillon-visualizer/i18n/tr.ts +96 -0
  80. package/src/tool/tourbillon-visualizer/i18n/zh.ts +96 -0
  81. package/src/tool/tourbillon-visualizer/index.ts +11 -0
  82. package/src/tool/tourbillon-visualizer/renderer/base.ts +78 -0
  83. package/src/tool/tourbillon-visualizer/renderer/cage.ts +115 -0
  84. package/src/tool/tourbillon-visualizer/renderer/esc.ts +160 -0
  85. package/src/tool/tourbillon-visualizer/seo.astro +11 -0
  86. package/src/tool/tourbillon-visualizer/state.ts +21 -0
  87. package/src/tool/tourbillon-visualizer/tourbillon.ts +9 -0
  88. package/src/tools.ts +6 -0
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'Czym jest wieczny kalendarz w zegarku?',
9
+ answer: 'Wieczny kalendarz to mechaniczna komplikacja zegarkowa, która automatycznie wyświetla prawidłową datę, dzień, miesiąc i fazę księżyca, uwzględniając miesiące o różnej długości i lata przestępne. Jest zaprogramowany tak, aby był dokładny do roku 2100 (następnego roku stulecia niepodzielnego przez 400).',
10
+ },
11
+ {
12
+ question: 'Skąd wieczny kalendarz zna lata przestępne?',
13
+ answer: 'Program mechaniczny wykorzystuje 48-miesięczne koło zębate (4 lata) ze specjalnie zaprojektowaną krzywką uwzględniającą 29 lutego. Mechanizm wie, że lata podzielne przez 100 nie są przestępne, chyba że są również podzielne przez 400. Większość wiecznych kalendarzy jest dokładna do 2100 roku, kiedy to będzie wymagana jednodniowa korekta.',
14
+ },
15
+ {
16
+ question: 'Jaka jest różnica między kalendarzem wiecznym a rocznym?',
17
+ answer: 'Kalendarz roczny wymaga ręcznej korekty raz w roku (pod koniec lutego), podczas gdy wieczny kalendarz automatycznie obsługuje lata przestępne i działa poprawnie przez dziesięciolecia. Kalendarze wieczne są mechanicznie znacznie bardziej złożone.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Przesuń datę do przodu',
24
+ text: 'Użyj przycisków D (dzień), M (miesiąc) i R (rok), aby przesunąć kalendarz do przodu. Obserwuj ruch wskazówki daty i zmianę okna miesiąca.',
25
+ },
26
+ {
27
+ name: 'Obserwuj przejścia lat przestępnych',
28
+ text: 'Przejdź przez luty roku przestępnego (np. 2024), aby zobaczyć skok z 29 na 1 marca. Spróbuj z rokiem nieprzestępnym, aby zobaczyć skok z 28 na 1 marca.',
29
+ },
30
+ {
31
+ name: 'Użyj automatycznego odtwarzania',
32
+ text: 'Naciśnij play, aby kalendarz automatycznie się przesuwał. To ujawnia pełny cykl długości miesięcy i progresję faz księżyca.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Symulator Wiecznego Kalendarza: Interaktywna Komplikacja Zegarkowa';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'wieczny-kalendarz',
40
+ title,
41
+ description: 'Poznaj mechaniczny geniusz komplikacji wiecznego kalendarza. Wizualizuj datę, dzień, miesiąc, cykl lat przestępnych i fazę księżyca na animowanej tarczy.',
42
+ ui: {
43
+ title: 'Symulator Wiecznego Kalendarza',
44
+ dateLabel: 'Data',
45
+ dayLabel: 'Dzień',
46
+ monthLabel: 'Miesiąc',
47
+ yearLabel: 'Rok',
48
+ leapYearLabel: 'Przestępny',
49
+ moonPhaseLabel: 'Faza Księżyca',
50
+ weekdayLabel: 'Dzień Tyg.',
51
+ advanceDay: 'Dzień Naprzód',
52
+ advanceMonth: 'Miesiąc Naprzód',
53
+ advanceYear: 'Rok Naprzód',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Dziś',
56
+ dayNames: 'Niedziela,Poniedziałek,Wtorek,Środa,Czwartek,Piątek,Sobota',
57
+ monthNames: 'Styczeń,Luty,Marzec,Kwiecień,Maj,Czerwiec,Lipiec,Sierpień,Wrzesień,Październik,Listopad,Grudzień',
58
+ tipTitle: 'Wskazówka',
59
+ tipContent: 'Większość zegarków z wiecznym kalendarzem używa 48-miesięcznego koła programowego z wycięciami o zmiennej długości. Luty ma najkrótsze wycięcie (28 dni w latach zwykłych, 29 w przestępnych), podczas gdy miesiące 30- i 31-dniowe mają progressively dłuższe wycięcia.',
60
+ step1: 'Przesuwaj się dzień po dniu przez luty, aby zobaczyć, jak mechanizm radzi sobie z przejściami między miesiącami.',
61
+ step2: 'Obserwuj wskaźnik fazy księżyca postępujący przez swój 29,5-dniowy cykl.',
62
+ step3: 'Porównaj lutowe przejścia w latach przestępnych i zwykłych, aby zrozumieć 4-letni cykl.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Symulator Wiecznego Kalendarza: Interaktywna Komplikacja', level: 2 },
66
+ { type: 'paragraph', html: '<strong>Wieczny kalendarz</strong> to jedna z najbardziej prestiżowych komplikacji w haute horlogerie. Ten interaktywny symulator wizualizuje, jak mechaniczny wieczny kalendarz śledzi datę, dzień, miesiąc, rok przestępny i fazę księżyca — bez ręcznej korekty przez dziesięciolecia. Poznaj 48-miesięczny program przekładni, zobacz jak działają lutowe przejścia i zrozum logikę kalendarza gregoriańskiego wbudowaną w te arcydzieła mikromechaniki.' },
67
+ { type: 'title', text: 'Jak działa wieczny kalendarz', level: 3 },
68
+ { type: 'paragraph', html: 'Mechaniczny wieczny kalendarz używa <strong>koła programowego</strong> z wycięciami o różnej głębokości reprezentującymi miesiące o różnej długości. Czujnik opada w każde wycięcie; głębsze wycięcie sygnalizuje krótki miesiąc (28-29 dni), uruchamiając mechanizm do przeskoczenia na 1. dzień następnego miesiąca po odpowiedniej liczbie dni. <strong>48-miesięczne koło zębate</strong> obsługuje 4-letni cykl lat przestępnych, z dodatkowym wycięciem na 29 lutego. Program wie, że lata stulecia (np. 2100) pomijają rok przestępny, chyba że są podzielne przez 400.' },
69
+ { type: 'title', text: 'Porównanie: Wieczny vs Roczny Kalendarz', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Cecha', 'Kalendarz Roczny', 'Wieczny Kalendarz'], rows: [
72
+ ['Wymaga korekty', 'Raz w roku (1 Mar)', 'Raz na stulecie (2100)'],
73
+ ['Obsługa przestępnych', 'Ręczna', 'Automatyczna (krzywka 4 l)'],
74
+ ['Rozpoznawanie miesięcy', '30 vs 31 dni', 'Pełne 28/29/30/31'],
75
+ ['Złożoność', 'Umiarkowana (~50 części)', 'Bardzo wysoka (~200+ części)'],
76
+ ['Zakres cen', '3 000-15 000 €', '20 000-500 000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Interaktywny Symulator Kalendarza', icon: 'mdi:calendar-month', badge: 'ZEGARMISTRZOSTWO', html: 'To narzędzie symuluje mechanizm kalendarzowy zegarka z wiecznym kalendarzem. Animowana tarcza pokazuje wskazówkę daty, okno miesiąca, sub-tarczę dnia, fazę księżyca i wskaźnik roku przestępnego. Użyj kontrolek, aby przemieszczać się po dniach, miesiącach lub latach i obserwować mechaniczną logikę w akcji.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'O que é um calendário perpétuo em um relógio?',
9
+ answer: 'Um calendário perpétuo é uma complicação relojoeira mecânica que exibe automaticamente a data, dia, mês e fase lunar corretos, levando em conta meses de diferentes durações e anos bissextos. É programado para ser preciso até o ano 2100 (o próximo ano secular não divisível por 400).',
10
+ },
11
+ {
12
+ question: 'Como um calendário perpétuo sabe os anos bissextos?',
13
+ answer: 'O programa mecânico usa uma engrenagem de 48 meses (4 anos) com um came especialmente projetado que contabiliza o dia 29 de fevereiro. O mecanismo sabe que anos divisíveis por 100 não são bissextos a menos que também sejam divisíveis por 400. A maioria dos calendários perpétuos são precisos até 2100, quando exigirão uma correção de um dia.',
14
+ },
15
+ {
16
+ question: 'Qual a diferença entre um calendário perpétuo e um anual?',
17
+ answer: 'Um calendário anual requer uma correção manual por ano (no final de fevereiro), enquanto um calendário perpétuo lida automaticamente com anos bissextos e continua correto por décadas. Calendários perpétuos são mecanicamente muito mais complexos.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Avance a data',
24
+ text: 'Use os botões D (dia), M (mês) e A (ano) para avançar o calendário. Observe o ponteiro da data se mover e a janela do mês mudar.',
25
+ },
26
+ {
27
+ name: 'Observe as transições de ano bissexto',
28
+ text: 'Avançe através de fevereiro de um ano bissexto (ex. 2024) para ver o salto do 29 para 1 de março. Tente com um ano não bissexto para ver o salto do 28 para 1 de março.',
29
+ },
30
+ {
31
+ name: 'Use a reprodução automática',
32
+ text: 'Pressione play para o calendário avançar automaticamente. Isso revela o ciclo completo das durações dos meses e a progressão da fase lunar.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Simulador de Calendário Perpétuo: Complicação de Relógio Interativa';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'calendario-perpetuo-portugues',
40
+ title,
41
+ description: 'Explore o gênio mecânico de uma complicação de calendário perpétuo. Visualize data, dia, mês, ciclo de ano bissexto e fase lunar com um mostrador animado.',
42
+ ui: {
43
+ title: 'Simulador de Calendário Perpétuo',
44
+ dateLabel: 'Data',
45
+ dayLabel: 'Dia',
46
+ monthLabel: 'Mês',
47
+ yearLabel: 'Ano',
48
+ leapYearLabel: 'Bissexto',
49
+ moonPhaseLabel: 'Fase Lunar',
50
+ weekdayLabel: 'Dia Semana',
51
+ advanceDay: 'Avançar Dia',
52
+ advanceMonth: 'Avançar Mês',
53
+ advanceYear: 'Avançar Ano',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Hoje',
56
+ dayNames: 'Domingo,Segunda-feira,Terça-feira,Quarta-feira,Quinta-feira,Sexta-feira,Sábado',
57
+ monthNames: 'Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro',
58
+ tipTitle: 'Dica',
59
+ tipContent: 'A maioria dos relógios de calendário perpétuo usa uma roda de programa de 48 meses com entalhes de comprimento variável. Fevereiro tem o entalhe mais curto (28 dias em anos comuns, 29 em bissextos), enquanto meses de 30 e 31 dias têm entalhes progressivamente mais longos.',
60
+ step1: 'Avançe dia após dia além de fevereiro para ver como o mecanismo lida com transições de fim de mês.',
61
+ step2: 'Observe o indicador de fase lunar progredir através de seu ciclo de 29,5 dias.',
62
+ step3: 'Compare as transições de fevereiro entre anos bissextos e comuns para entender o ciclo de 4 anos.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Simulador de Calendário Perpétuo: Complicação Interativa', level: 2 },
66
+ { type: 'paragraph', html: 'O <strong>calendário perpétuo</strong> é uma das complicações mais prestigiadas da alta relojoaria. Este simulador interativo visualiza como um calendário perpétuo mecânico rastreia data, dia, mês, ano bissexto e fase lunar — sem correção manual por décadas. Explore o programa de engrenagem de 48 meses, veja como funcionam as transições de fevereiro e entenda a lógica do calendário gregoriano incorporada nessas obras-primas da micromecânica.' },
67
+ { type: 'title', text: 'Como funciona um calendário perpétuo', level: 3 },
68
+ { type: 'paragraph', html: 'Um calendário perpétuo mecânico usa uma <strong>roda de programa</strong> com entalhes de diferentes profundidades representando meses de diferentes durações. Uma alavanca de sensoriamento cai em cada entalhe; um entalhe mais profundo sinaliza um mês curto (28-29 dias), acionando o mecanismo para avançar ao 1º do mês seguinte após o número correto de dias. Uma <strong>engrenagem de 48 meses</strong> lida com o ciclo de 4 anos bissextos, com um entalhe extra para 29 de fevereiro. O programa sabe que anos centenários (ex. 2100) pulam o ano bissexto a menos que sejam divisíveis por 400.' },
69
+ { type: 'title', text: 'Comparação: Calendário Perpétuo vs Anual', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Característica', 'Calendário Anual', 'Calendário Perpétuo'], rows: [
72
+ ['Requer ajuste', 'Uma vez por ano (1 Mar)', 'Uma vez por século (2100)'],
73
+ ['Gestão de bissextos', 'Manual', 'Automática (came 4 anos)'],
74
+ ['Reconhecimento de meses', '30 vs 31 dias', 'Completo 28/29/30/31'],
75
+ ['Complexidade', 'Moderada (~50 peças)', 'Muito alta (~200+ peças)'],
76
+ ['Faixa de preço', '€3.000-15.000', '€20.000-500.000+'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Simulador de Calendário Interativo', icon: 'mdi:calendar-month', badge: 'RELOJOARIA', html: 'Esta ferramenta simula o mecanismo de calendário de um relógio de calendário perpétuo. O mostrador animado mostra o ponteiro da data, a janela do mês, o subdial do dia, a fase lunar e o indicador de ano bissexto. Use os controles para avançar por dias, meses ou anos e observe a lógica mecânica em ação.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'Что такое вечный календарь в часах?',
9
+ answer: 'Вечный календарь — это механическая часовая complication, которая автоматически отображает правильную дату, день недели, месяц и фазу луны, учитывая месяцы разной длины и високосные годы. Он запрограммирован быть точным до 2100 года (следующего столетнего года, не делящегося на 400).',
10
+ },
11
+ {
12
+ question: 'Как вечный календарь узнает високосные годы?',
13
+ answer: 'Механическая программа использует 48-месячную шестерню (4 года) со специально разработанным кулачком, который учитывает 29 февраля. Механизм знает, что годы, делящиеся на 100, не являются високосными, если только они не делятся также на 400. Большинство вечных календарей точны до 2100 года, после чего потребуется коррекция на один день.',
14
+ },
15
+ {
16
+ question: 'В чем разница между вечным и годовым календарем?',
17
+ answer: 'Годовой календарь требует ручной коррекции раз в год (в конце февраля), в то время как вечный календарь автоматически обрабатывает високосные годы и продолжает работать правильно десятилетиями. Вечные календари механически значительно сложнее.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Перемещайте дату вперед',
24
+ text: 'Используйте кнопки Д (день), М (месяц) и Г (год), чтобы продвигать календарь вперед. Наблюдайте за движением стрелки даты и сменой окна месяца.',
25
+ },
26
+ {
27
+ name: 'Наблюдайте переходы високосного года',
28
+ text: 'Пройдите через февраль високосного года (например, 2024), чтобы увидеть переход с 29 на 1 марта. Попробуйте невисокосный год, чтобы увидеть переход с 28 на 1 марта.',
29
+ },
30
+ {
31
+ name: 'Используйте автовоспроизведение',
32
+ text: 'Нажмите play, чтобы календарь продвигался автоматически. Это покажет полный цикл длин месяцев и прогрессию фаз луны.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Симулятор вечного календаря: интерактивная часовая complication';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'vechnyy-kalendar',
40
+ title,
41
+ description: 'Исследуйте механический гений complication вечного календаря. Визуализируйте дату, день, месяц, цикл високосных годов и фазу луны на анимированном циферблате.',
42
+ ui: {
43
+ title: 'Симулятор вечного календаря',
44
+ dateLabel: 'Дата',
45
+ dayLabel: 'День',
46
+ monthLabel: 'Месяц',
47
+ yearLabel: 'Год',
48
+ leapYearLabel: 'Високосный',
49
+ moonPhaseLabel: 'Фаза луны',
50
+ weekdayLabel: 'День недели',
51
+ advanceDay: 'День вперед',
52
+ advanceMonth: 'Месяц вперед',
53
+ advanceYear: 'Год вперед',
54
+ autoPlay: 'Авто',
55
+ resetBtn: 'Сегодня',
56
+ dayNames: 'Воскресенье,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота',
57
+ monthNames: 'Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь',
58
+ tipTitle: 'Совет',
59
+ tipContent: 'Большинство часов с вечным календарем используют 48-месячное программное колесо с выемками разной длины. Февраль имеет самую короткую выемку (28 дней в обычные годы, 29 в високосные), в то время как 30- и 31-дневные месяцы имеют progressively более длинные выемки.',
60
+ step1: 'Перемещайтесь день за днем через февраль, чтобы увидеть, как механизм обрабатывает переходы между месяцами.',
61
+ step2: 'Наблюдайте за индикатором фазы луны, проходящим через свой 29,5-дневный цикл.',
62
+ step3: 'Сравните февральские переходы в високосные и обычные годы, чтобы понять 4-летний цикл.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Симулятор вечного календаря: интерактивная complication', level: 2 },
66
+ { type: 'paragraph', html: '<strong>Вечный календарь</strong> — одна из самых престижных complications в haute horlogerie. Этот интерактивный симулятор визуализирует, как механический вечный календарь отслеживает дату, день, месяц, високосный год и фазу луны — без ручной коррекции десятилетиями. Исследуйте 48-месячную зубчатую программу, увидьте, как работают февральские переходы, и поймите логику григорианского календаря, встроенную в эти шедевры микромеханики.' },
67
+ { type: 'title', text: 'Как работает вечный календарь', level: 3 },
68
+ { type: 'paragraph', html: 'Механический вечный календарь использует <strong>программное колесо</strong> с выемками разной глубины, представляющими месяцы разной длины. Чувствительный рычаг падает в каждую выемку; более глубокая выемка сигнализирует о коротком месяце (28-29 дней), запуская механизм для перехода на 1-е число следующего месяца после правильного количества дней. <strong>48-месячная шестерня</strong> обрабатывает 4-летний цикл високосных годов с дополнительной выемкой для 29 февраля. Программа знает, что столетние годы (например, 2100) пропускают високосный год, если только они не делятся на 400.' },
69
+ { type: 'title', text: 'Сравнение: Вечный vs Годовой календарь', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Характеристика', 'Годовой календарь', 'Вечный календарь'], rows: [
72
+ ['Требует коррекции', 'Раз в год (1 марта)', 'Раз в столетие (2100)'],
73
+ ['Високосные годы', 'Вручную', 'Автоматически (4-летний кулачок)'],
74
+ ['Распознавание месяцев', '30 vs 31 день', 'Полное 28/29/30/31'],
75
+ ['Сложность', 'Умеренная (~50 деталей)', 'Очень высокая (~200+ деталей)'],
76
+ ['Ценовой диапазон', '3 000-15 000 €', '20 000-500 000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Интерактивный симулятор календаря', icon: 'mdi:calendar-month', badge: 'ЧАСОВОЕ ДЕЛО', html: 'Этот инструмент симулирует календарный механизм часов с вечным календарем. Анимированный циферблат показывает стрелку даты, окно месяца, субциферблат дня недели, фазу луны и индикатор високосного года. Используйте элементы управления для перемещения по дням, месяцам или годам и наблюдайте механическую логику в действии.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'Vad är en evighetskalender i en klocka?',
9
+ answer: 'En evighetskalender är en mekanisk klockkomplikation som automatiskt visar rätt datum, dag, månad och månfas, med hänsyn till månader av olika längd och skottår. Den är programmerad att vara korrekt fram till år 2100 (nästa sekelår som inte är delbart med 400).',
10
+ },
11
+ {
12
+ question: 'Hur vet en evighetskalender vilka år som är skottår?',
13
+ answer: 'Det mekaniska programmet använder ett 48-månaders hjul (4 år) med en specialdesignad kam som tar hänsyn till 29 februari. Mekanismen vet att år som är delbara med 100 inte är skottår om de inte också är delbara med 400. De flesta evighetskalendrar är korrekta fram till 2100, då en endagskorrigering kommer att behövas.',
14
+ },
15
+ {
16
+ question: 'Vad är skillnaden mellan en evighetskalender och en årskalender?',
17
+ answer: 'En årskalender kräver en manuell korrigering per år (i slutet av februari), medan en evighetskalender automatiskt hanterar skottår och fortsätter korrekt i decennier. Evighetskalendrar är mekaniskt betydligt mer komplexa.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'För fram datumet',
24
+ text: 'Använd knapparna D (dag), M (månad) och Å (år) för att föra fram kalendern. Se datumvisaren röra sig och månadsfönstret ändras.',
25
+ },
26
+ {
27
+ name: 'Observera skottårsövergångar',
28
+ text: 'Gå igenom februari ett skottår (t.ex. 2024) för att se hoppet från 29 till 1 mars. Prova ett icke-skottår för att se hoppet från 28 till 1 mars.',
29
+ },
30
+ {
31
+ name: 'Använd automatisk uppspelning',
32
+ text: 'Tryck på play för att kalendern automatiskt ska gå framåt. Detta visar hela cykeln av månadslängder och månfasens progression.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Evighetskalender Simulator: Interaktiv Klockkomplikation';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'evighetskalender',
40
+ title,
41
+ description: 'Utforska det mekaniska geniet hos en evighetskalenderkomplikation. Visualisera datum, dag, månad, skottårscykel och månfas med en animerad urtavla.',
42
+ ui: {
43
+ title: 'Evighetskalender Simulator',
44
+ dateLabel: 'Datum',
45
+ dayLabel: 'Dag',
46
+ monthLabel: 'Månad',
47
+ yearLabel: 'År',
48
+ leapYearLabel: 'Skottår',
49
+ moonPhaseLabel: 'Månfas',
50
+ weekdayLabel: 'Veckodag',
51
+ advanceDay: 'Dag Framåt',
52
+ advanceMonth: 'Månad Framåt',
53
+ advanceYear: 'År Framåt',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Idag',
56
+ dayNames: 'Söndag,Måndag,Tisdag,Onsdag,Torsdag,Fredag,Lördag',
57
+ monthNames: 'Januari,Februari,Mars,April,Maj,Juni,Juli,Augusti,September,Oktober,November,December',
58
+ tipTitle: 'Tips',
59
+ tipContent: 'De flesta evighetskalenderklockor använder ett 48-månaders programhjul med skåror av varierande längd. Februari har den kortaste skåran (28 dagar i normalår, 29 i skottår), medan 30- och 31-dagars månader har progressivt längre skåror.',
60
+ step1: 'Gå dag för dag förbi februari för att se hur mekanismen hanterar månadsövergångar.',
61
+ step2: 'Se månfasindikatorn fortskrida genom sin 29,5-dagars cykel.',
62
+ step3: 'Jämför februariövergångar mellan skottår och normalår för att förstå 4-årscykeln.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Evighetskalender Simulator: Interaktiv Komplikation', level: 2 },
66
+ { type: 'paragraph', html: '<strong>Evighetskalendern</strong> är en av de mest prestigefyllda komplikationerna inom haute horlogerie. Denna interaktiva simulator visualiserar hur en mekanisk evighetskalender håller reda på datum, dag, månad, skottår och månfas — utan manuell korrigering i decennier. Utforska 48-månaders växelprogrammet, se hur februariövergångar fungerar och förstå den gregorianska kalenderlogiken inbyggd i dessa mästerverk av mikromekanik.' },
67
+ { type: 'title', text: 'Hur en evighetskalender fungerar', level: 3 },
68
+ { type: 'paragraph', html: 'En mekanisk evighetskalender använder ett <strong>programhjul</strong> med skåror av olika djup som representerar månader av olika längd. En känselarm faller i varje skåra; en djupare skåra signalerar en kort månad (28-29 dagar) och utlöser mekanismen att hoppa till 1:a i nästa månad efter rätt antal dagar. Ett <strong>48-månaders hjul</strong> hanterar den 4-åriga skottårscykeln, med en extra skåra för 29 februari. Programmet vet att sekelår (t.ex. 2100) hoppar över skottåret om de inte är delbara med 400.' },
69
+ { type: 'title', text: 'Jämförelse: Evighetskalender vs Årskalender', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Egenskap', 'Årskalender', 'Evighetskalender'], rows: [
72
+ ['Kräver justering', 'En gång per år (1 Mar)', 'En gång per sekel (2100)'],
73
+ ['Skottårshantering', 'Manuell', 'Automatisk (4-årskam)'],
74
+ ['Månadsigenkänning', '30 vs 31 dagar', 'Full 28/29/30/31'],
75
+ ['Komplexitet', 'Måttlig (~50 delar)', 'Mycket hög (~200+ delar)'],
76
+ ['Prisintervall', '3 000-15 000 €', '20 000-500 000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Interaktiv Kalender Simulator', icon: 'mdi:calendar-month', badge: 'URMAKERI', html: 'Detta verktyg simulerar kalendermekanismen hos en evighetskalenderklocka. Den animerade urtavlan visar datumvisaren, månadsfönstret, dagsubdialen, månfasen och skottårsindikatorn. Använd kontrollerna för att bläddra genom dagar, månader eller år och observera den mekaniska logiken i aktion.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'Saatte ebedi takvim nedir?',
9
+ answer: 'Ebedi takvim, farklı uzunluktaki ayları ve artık yılları otomatik olarak hesaba katarak doğru tarih, gün, ay ve ay evresini gösteren mekanik bir saat komplikasyonudur. 2100 yılına (400\'e bölünemeyen bir sonraki yüzyıl yılı) kadar doğru olacak şekilde programlanmıştır.',
10
+ },
11
+ {
12
+ question: 'Ebedi takvim artık yılları nasıl bilir?',
13
+ answer: 'Mekanik program, 29 Şubat\'ı hesaba katan özel tasarlanmış bir kam ile 48 aylık (4 yıl) bir dişli kullanır. Mekanizma, 100\'e bölünebilen yılların, 400\'e de bölünmedikçe artık yıl olmadığını bilir. Çoğu ebedi takvim, bir günlük düzeltme gerektirecek olan 2100 yılına kadar doğrudur.',
14
+ },
15
+ {
16
+ question: 'Ebedi takvim ile yıllık takvim arasındaki fark nedir?',
17
+ answer: 'Yıllık takvim yılda bir kez manuel düzeltme gerektirir (Şubat sonunda), oysa ebedi takvim artık yılları otomatik olarak işler ve onlarca yıl boyunca doğru şekilde devam eder. Ebedi takvimler mekanik olarak önemli ölçüde daha karmaşıktır.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Tarihi ilerletin',
24
+ text: 'Takvimi ilerletmek için G (gün), A (ay) ve Y (yıl) düğmelerini kullanın. Tarih kolunun hareketini ve ay penceresinin değişimini izleyin.',
25
+ },
26
+ {
27
+ name: 'Artık yıl geçişlerini gözlemleyin',
28
+ text: '29\'dan 1 Mart\'a atlamayı görmek için bir artık yılın (ör. 2024) Şubat ayını geçin. 28\'den 1 Mart\'a atlamayı görmek için artık olmayan bir yılı deneyin.',
29
+ },
30
+ {
31
+ name: 'Otomatik oynatmayı kullanın',
32
+ text: 'Takvimin otomatik olarak ilerlemesi için play\'e basın. Bu, ay uzunluklarının tam döngüsünü ve ay evresi ilerlemesini ortaya çıkarır.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Ebedi Takvim Simülatörü: Etkileşimli Saat Komplikasyonu';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'ebedi-takvim',
40
+ title,
41
+ description: 'Ebedi takvim saat komplikasyonunun mekanik dehasını keşfedin. Animasyonlu bir kadranla tarih, gün, ay, artık yıl döngüsü ve ay evresini görselleştirin.',
42
+ ui: {
43
+ title: 'Ebedi Takvim Simülatörü',
44
+ dateLabel: 'Tarih',
45
+ dayLabel: 'Gün',
46
+ monthLabel: 'Ay',
47
+ yearLabel: 'Yıl',
48
+ leapYearLabel: 'Artık Yıl',
49
+ moonPhaseLabel: 'Ay Evresi',
50
+ weekdayLabel: 'Hafta Günü',
51
+ advanceDay: 'Gün İlerlet',
52
+ advanceMonth: 'Ay İlerlet',
53
+ advanceYear: 'Yıl İlerlet',
54
+ autoPlay: 'Otomatik',
55
+ resetBtn: 'Bugün',
56
+ dayNames: 'Pazar,Pazartesi,Salı,Çarşamba,Perşembe,Cuma,Cumartesi',
57
+ monthNames: 'Ocak,Şubat,Mart,Nisan,Mayıs,Haziran,Temmuz,Ağustos,Eylül,Ekim,Kasım,Aralık',
58
+ tipTitle: 'İpucu',
59
+ tipContent: 'Çoğu ebedi takvim saati, değişken uzunlukta çentiklere sahip 48 aylık bir program çarkı kullanır. Şubat en kısa çentiğe sahiptir (normal yıllarda 28 gün, artık yıllarda 29), 30 ve 31 günlük aylar ise giderek daha uzun çentiklere sahiptir.',
60
+ step1: 'Mekanizmanın ay sonu geçişlerini nasıl yönettiğini görmek için Şubat ayını gün gün geçin.',
61
+ step2: 'Ay evresi göstergesinin 29,5 günlük döngüsü boyunca ilerlemesini izleyin.',
62
+ step3: '4 yıllık döngüyü anlamak için artık yıl ve normal yıl Şubat geçişlerini karşılaştırın.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Ebedi Takvim Simülatörü: Etkileşimli Komplikasyon', level: 2 },
66
+ { type: 'paragraph', html: '<strong>Ebedi takvim</strong>, haute horlogerie\'nin en prestijli komplikasyonlarından biridir. Bu etkileşimli simülatör, mekanik bir ebedi takvimin tarih, gün, ay, artık yıl ve ay evresini nasıl takip ettiğini görselleştirir — onlarca yıl boyunca manuel düzeltme gerektirmez. 48 aylık dişli programını keşfedin, Şubat geçişlerinin nasıl çalıştığını görün ve bu mikromekanik başyapıtlarına yerleştirilmiş Gregoryen takvim mantığını anlayın.' },
67
+ { type: 'title', text: 'Ebedi takvim nasıl çalışır', level: 3 },
68
+ { type: 'paragraph', html: 'Mekanik bir ebedi takvim, farklı uzunluktaki ayları temsil eden farklı derinliklerde çentiklere sahip bir <strong>program çarkı</strong> kullanır. Bir algılama kolu her çentiğe düşer; daha derin bir çentik kısa bir ayı (28-29 gün) işaret eder ve doğru gün sayısından sonra mekanizmayı bir sonraki ayın 1\'ine atlaması için tetikler. Bir <strong>48 aylık dişli</strong>, 29 Şubat için ek bir çentik ile 4 yıllık artık yıl döngüsünü yönetir. Program, yüzyıl yıllarının (ör. 2100) 400\'e bölünmedikçe artık yılı atladığını bilir.' },
69
+ { type: 'title', text: 'Karşılaştırma: Ebedi vs Yıllık Takvim', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Özellik', 'Yıllık Takvim', 'Ebedi Takvim'], rows: [
72
+ ['Düzeltme gerektirir', 'Yılda bir kez (1 Mart)', 'Yüzyılda bir kez (2100)'],
73
+ ['Artık yıl yönetimi', 'Manuel', 'Otomatik (4 yıllık kam)'],
74
+ ['Ay tanıma', '30 vs 31 gün', 'Tam 28/29/30/31'],
75
+ ['Karmaşıklık', 'Orta (~50 parça)', 'Çok yüksek (~200+ parça)'],
76
+ ['Fiyat aralığı', '€3.000-15.000', '€20.000-500.000+'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Etkileşimli Takvim Simülatörü', icon: 'mdi:calendar-month', badge: 'SAATÇİLİK', html: 'Bu araç, ebedi takvimli bir saatin takvim mekanizmasını simüle eder. Animasyonlu kadran, tarih kolunu, ay penceresini, gün alt kadranını, ay evresini ve artık yıl göstergesini gösterir. Günler, aylar veya yıllar boyunca ilerlemek için kontrolleri kullanın ve mekanik mantığı izleyin.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,85 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { PerpetualCalendarUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: '什么是手表的万年历?',
9
+ answer: '万年历是一种机械式手表复杂功能,可自动显示正确的日期、星期、月份和月相,同时考虑不同长度的月份和闰年。它被编程为精确到2100年(下一个不能被400整除的世纪年)。',
10
+ },
11
+ {
12
+ question: '万年历如何知道闰年?',
13
+ answer: '机械程序使用带有特殊设计凸轮的48个月(4年)齿轮,该凸轮考虑到2月29日。该机制知道能被100整除的年份不是闰年,除非它们也能被400整除。大多数万年历精确到2100年,届时将需要一天的修正。',
14
+ },
15
+ {
16
+ question: '万年历和年历有什么区别?',
17
+ answer: '年历每年需要一次手动校正(2月底),而万年历自动处理闰年并持续正确运行数十年。万年历在机械上要复杂得多。',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: '前进日期',
24
+ text: '使用D(日)、M(月)和Y(年)按钮向前推进日历。观察日期指针移动和月份窗口变化。',
25
+ },
26
+ {
27
+ name: '观察闰年过渡',
28
+ text: '在闰年(例如2024年)的2月中前进,查看从29日跳转到3月1日。尝试非闰年查看从28日跳转到3月1日。',
29
+ },
30
+ {
31
+ name: '使用自动播放',
32
+ text: '按播放键让日历自动前进。这将显示完整的月份长度周期和月相进展。',
33
+ },
34
+ ];
35
+
36
+ const title = '万年历模拟器:交互式手表复杂功能';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'perpetual-calendar',
40
+ title,
41
+ description: '探索万年历手表复杂功能的机械天才。通过动画表盘可视化日期、星期、月份、闰年周期和月相。',
42
+ ui: {
43
+ title: '万年历模拟器',
44
+ dateLabel: '日期',
45
+ dayLabel: '日',
46
+ monthLabel: '月',
47
+ yearLabel: '年',
48
+ leapYearLabel: '闰年',
49
+ moonPhaseLabel: '月相',
50
+ weekdayLabel: '星期',
51
+ advanceDay: '前进一天',
52
+ advanceMonth: '前进一月',
53
+ advanceYear: '前进一年',
54
+ autoPlay: '自动',
55
+ resetBtn: '今天',
56
+ dayNames: '星期日,星期一,星期二,星期三,星期四,星期五,星期六',
57
+ monthNames: '一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月',
58
+ tipTitle: '小贴士',
59
+ tipContent: '大多数万年历手表使用带有可变长度凹口的48个月程序轮。二月的凹口最短(平年28天,闰年29天),而30天和31天的月份拥有逐渐变长的凹口。',
60
+ step1: '一天天经过二月,观察机制如何处理月末过渡。',
61
+ step2: '观察月相指示器经过其29.5天周期的进展。',
62
+ step3: '比较闰年和平年的二月过渡,以理解4年周期。',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: '万年历模拟器:交互式复杂功能', level: 2 },
66
+ { type: 'paragraph', html: '<strong>万年历</strong>是高级制表中最负盛名的复杂功能之一。此交互式模拟器可视化机械万年历如何跟踪日期、星期、月份、闰年和月相——数十年无需手动校正。探索48个月齿轮程序,查看二月过渡如何工作,并理解融入这些微机械杰作中的格里高利历逻辑。' },
67
+ { type: 'title', text: '万年历的工作原理', level: 3 },
68
+ { type: 'paragraph', html: '机械万年历使用带有不同深度凹口的<strong>程序轮</strong>来表示不同长度的月份。感应杆落入每个凹口;较深的凹口表示短月(28-29天),触发机制在正确的天数后跳转到下个月的第1天。<strong>48个月齿轮</strong>处理4年的闰年周期,为2月29日设有一个额外凹口。程序知道世纪年(例如2100年)除非能被400整除,否则跳过闰年。' },
69
+ { type: 'title', text: '比较:万年历 vs 年历', level: 3 },
70
+ {
71
+ type: 'table', headers: ['特点', '年历', '万年历'], rows: [
72
+ ['需要调整', '每年一次(3月1日)', '每世纪一次(2100年)'],
73
+ ['闰年处理', '手动', '自动(4年凸轮)'],
74
+ ['月份识别', '30日 vs 31日', '完整28/29/30/31'],
75
+ ['复杂度', '中等(约50个零件)', '非常高(200+个零件)'],
76
+ ['价格范围', '€3,000-15,000', '€20,000-500,000+'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: '交互式日历模拟器', icon: 'mdi:calendar-month', badge: '钟表学', html: '此工具模拟万年历手表的日历机制。动画表盘显示日期指针、月份窗口、日子表盘、月相和闰年指示器。使用控制前进日、月或年,观察机械逻辑的运行。' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,11 @@
1
+ import type { ToolDefinition } from '../../types';
2
+ import { perpetualCalendar } from './entry';
3
+
4
+ export * from './entry';
5
+
6
+ export const PERPETUAL_CALENDAR_TOOL: ToolDefinition = {
7
+ entry: perpetualCalendar,
8
+ Component: () => import('./component.astro'),
9
+ SEOComponent: () => import('./seo.astro'),
10
+ BibliographyComponent: () => import('./bibliography.astro'),
11
+ };