@jjlmoya/utils-chrono 1.11.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) 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/gear-train-explorer/i18n/de.ts +1 -1
  7. package/src/tool/gear-train-explorer/i18n/es.ts +1 -1
  8. package/src/tool/gear-train-explorer/i18n/fr.ts +1 -1
  9. package/src/tool/gear-train-explorer/i18n/id.ts +1 -1
  10. package/src/tool/gear-train-explorer/i18n/it.ts +1 -1
  11. package/src/tool/gear-train-explorer/i18n/nl.ts +1 -1
  12. package/src/tool/gear-train-explorer/i18n/pl.ts +1 -1
  13. package/src/tool/gear-train-explorer/i18n/pt.ts +1 -1
  14. package/src/tool/gear-train-explorer/i18n/ru.ts +1 -1
  15. package/src/tool/gear-train-explorer/i18n/sv.ts +1 -1
  16. package/src/tool/gear-train-explorer/i18n/tr.ts +1 -1
  17. package/src/tool/gmt-world-timer/bibliography.astro +11 -0
  18. package/src/tool/gmt-world-timer/bibliography.ts +7 -0
  19. package/src/tool/gmt-world-timer/client.ts +250 -0
  20. package/src/tool/gmt-world-timer/component.astro +13 -0
  21. package/src/tool/gmt-world-timer/components/GmtPanel.astro +18 -0
  22. package/src/tool/gmt-world-timer/entry.ts +34 -0
  23. package/src/tool/gmt-world-timer/gmt-world-timer.css +239 -0
  24. package/src/tool/gmt-world-timer/helpers.ts +28 -0
  25. package/src/tool/gmt-world-timer/i18n/de.ts +72 -0
  26. package/src/tool/gmt-world-timer/i18n/en.ts +72 -0
  27. package/src/tool/gmt-world-timer/i18n/es.ts +72 -0
  28. package/src/tool/gmt-world-timer/i18n/fr.ts +72 -0
  29. package/src/tool/gmt-world-timer/i18n/id.ts +72 -0
  30. package/src/tool/gmt-world-timer/i18n/it.ts +72 -0
  31. package/src/tool/gmt-world-timer/i18n/ja.ts +72 -0
  32. package/src/tool/gmt-world-timer/i18n/ko.ts +72 -0
  33. package/src/tool/gmt-world-timer/i18n/nl.ts +72 -0
  34. package/src/tool/gmt-world-timer/i18n/pl.ts +72 -0
  35. package/src/tool/gmt-world-timer/i18n/pt.ts +72 -0
  36. package/src/tool/gmt-world-timer/i18n/ru.ts +72 -0
  37. package/src/tool/gmt-world-timer/i18n/sv.ts +72 -0
  38. package/src/tool/gmt-world-timer/i18n/tr.ts +72 -0
  39. package/src/tool/gmt-world-timer/i18n/zh.ts +72 -0
  40. package/src/tool/gmt-world-timer/index.ts +11 -0
  41. package/src/tool/gmt-world-timer/seo.astro +11 -0
  42. package/src/tool/perpetual-calendar/bibliography.astro +16 -0
  43. package/src/tool/perpetual-calendar/bibliography.ts +16 -0
  44. package/src/tool/perpetual-calendar/calendar.ts +24 -0
  45. package/src/tool/perpetual-calendar/client.ts +98 -0
  46. package/src/tool/perpetual-calendar/component.astro +17 -0
  47. package/src/tool/perpetual-calendar/components/CalendarPanel.astro +49 -0
  48. package/src/tool/perpetual-calendar/dial.ts +176 -0
  49. package/src/tool/perpetual-calendar/entry.ts +48 -0
  50. package/src/tool/perpetual-calendar/helpers.ts +49 -0
  51. package/src/tool/perpetual-calendar/i18n/de.ts +85 -0
  52. package/src/tool/perpetual-calendar/i18n/en.ts +102 -0
  53. package/src/tool/perpetual-calendar/i18n/es.ts +85 -0
  54. package/src/tool/perpetual-calendar/i18n/fr.ts +85 -0
  55. package/src/tool/perpetual-calendar/i18n/id.ts +85 -0
  56. package/src/tool/perpetual-calendar/i18n/it.ts +85 -0
  57. package/src/tool/perpetual-calendar/i18n/ja.ts +85 -0
  58. package/src/tool/perpetual-calendar/i18n/ko.ts +85 -0
  59. package/src/tool/perpetual-calendar/i18n/nl.ts +85 -0
  60. package/src/tool/perpetual-calendar/i18n/pl.ts +85 -0
  61. package/src/tool/perpetual-calendar/i18n/pt.ts +85 -0
  62. package/src/tool/perpetual-calendar/i18n/ru.ts +85 -0
  63. package/src/tool/perpetual-calendar/i18n/sv.ts +85 -0
  64. package/src/tool/perpetual-calendar/i18n/tr.ts +85 -0
  65. package/src/tool/perpetual-calendar/i18n/zh.ts +85 -0
  66. package/src/tool/perpetual-calendar/index.ts +11 -0
  67. package/src/tool/perpetual-calendar/perpetual-calendar.css +181 -0
  68. package/src/tool/perpetual-calendar/seo.astro +16 -0
  69. package/src/tool/perpetual-calendar/state.ts +26 -0
  70. package/src/tool/tourbillon-visualizer/bibliography.astro +11 -0
  71. package/src/tool/tourbillon-visualizer/bibliography.ts +7 -0
  72. package/src/tool/tourbillon-visualizer/client.ts +122 -0
  73. package/src/tool/tourbillon-visualizer/component.astro +126 -0
  74. package/src/tool/tourbillon-visualizer/components/TourbillonPanel.astro +66 -0
  75. package/src/tool/tourbillon-visualizer/entry.ts +51 -0
  76. package/src/tool/tourbillon-visualizer/helpers.ts +35 -0
  77. package/src/tool/tourbillon-visualizer/i18n/de.ts +96 -0
  78. package/src/tool/tourbillon-visualizer/i18n/en.ts +96 -0
  79. package/src/tool/tourbillon-visualizer/i18n/es.ts +96 -0
  80. package/src/tool/tourbillon-visualizer/i18n/fr.ts +96 -0
  81. package/src/tool/tourbillon-visualizer/i18n/id.ts +96 -0
  82. package/src/tool/tourbillon-visualizer/i18n/it.ts +96 -0
  83. package/src/tool/tourbillon-visualizer/i18n/ja.ts +96 -0
  84. package/src/tool/tourbillon-visualizer/i18n/ko.ts +96 -0
  85. package/src/tool/tourbillon-visualizer/i18n/nl.ts +96 -0
  86. package/src/tool/tourbillon-visualizer/i18n/pl.ts +96 -0
  87. package/src/tool/tourbillon-visualizer/i18n/pt.ts +96 -0
  88. package/src/tool/tourbillon-visualizer/i18n/ru.ts +96 -0
  89. package/src/tool/tourbillon-visualizer/i18n/sv.ts +96 -0
  90. package/src/tool/tourbillon-visualizer/i18n/tr.ts +96 -0
  91. package/src/tool/tourbillon-visualizer/i18n/zh.ts +96 -0
  92. package/src/tool/tourbillon-visualizer/index.ts +11 -0
  93. package/src/tool/tourbillon-visualizer/renderer/base.ts +78 -0
  94. package/src/tool/tourbillon-visualizer/renderer/cage.ts +115 -0
  95. package/src/tool/tourbillon-visualizer/renderer/esc.ts +160 -0
  96. package/src/tool/tourbillon-visualizer/seo.astro +11 -0
  97. package/src/tool/tourbillon-visualizer/state.ts +21 -0
  98. package/src/tool/tourbillon-visualizer/tourbillon.ts +9 -0
  99. package/src/tools.ts +6 -0
@@ -0,0 +1,48 @@
1
+ import type { ChronoToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ export type PerpetualCalendarUI = {
4
+ title: string;
5
+ dateLabel: string;
6
+ dayLabel: string;
7
+ monthLabel: string;
8
+ yearLabel: string;
9
+ leapYearLabel: string;
10
+ moonPhaseLabel: string;
11
+ weekdayLabel: string;
12
+ advanceDay: string;
13
+ advanceMonth: string;
14
+ advanceYear: string;
15
+ autoPlay: string;
16
+ resetBtn: string;
17
+ dayNames: string;
18
+ monthNames: string;
19
+ tipTitle: string;
20
+ tipContent: string;
21
+ step1: string;
22
+ step2: string;
23
+ step3: string;
24
+ };
25
+
26
+ export type PerpetualCalendarLocaleContent = ToolLocaleContent<PerpetualCalendarUI>;
27
+
28
+ export const perpetualCalendar: ChronoToolEntry<PerpetualCalendarUI> = {
29
+ id: 'perpetual-calendar',
30
+ icons: { bg: 'mdi:calendar-text', fg: 'mdi:calendar-month' },
31
+ i18n: {
32
+ de: () => import('./i18n/de').then((m) => m.content),
33
+ en: () => import('./i18n/en').then((m) => m.content),
34
+ es: () => import('./i18n/es').then((m) => m.content),
35
+ fr: () => import('./i18n/fr').then((m) => m.content),
36
+ id: () => import('./i18n/id').then((m) => m.content),
37
+ it: () => import('./i18n/it').then((m) => m.content),
38
+ ja: () => import('./i18n/ja').then((m) => m.content),
39
+ ko: () => import('./i18n/ko').then((m) => m.content),
40
+ nl: () => import('./i18n/nl').then((m) => m.content),
41
+ pl: () => import('./i18n/pl').then((m) => m.content),
42
+ pt: () => import('./i18n/pt').then((m) => m.content),
43
+ ru: () => import('./i18n/ru').then((m) => m.content),
44
+ sv: () => import('./i18n/sv').then((m) => m.content),
45
+ tr: () => import('./i18n/tr').then((m) => m.content),
46
+ zh: () => import('./i18n/zh').then((m) => m.content),
47
+ },
48
+ };
@@ -0,0 +1,49 @@
1
+ import type { WithContext, Thing } from 'schema-dts';
2
+ import type { FAQItem, HowToStep } from '../../types';
3
+
4
+ function buildFAQ(faq: FAQItem[]): WithContext<Thing> {
5
+ return {
6
+ '@context': 'https://schema.org',
7
+ '@type': 'FAQPage',
8
+ 'mainEntity': faq.map((f) => ({
9
+ '@type': 'Question',
10
+ 'name': f.question,
11
+ 'acceptedAnswer': {
12
+ '@type': 'Answer',
13
+ 'text': f.answer,
14
+ },
15
+ })),
16
+ } as unknown as WithContext<Thing>;
17
+ }
18
+
19
+ function buildApp(title: string): WithContext<Thing> {
20
+ return {
21
+ '@context': 'https://schema.org',
22
+ '@type': 'SoftwareApplication',
23
+ 'name': title,
24
+ 'operatingSystem': 'All',
25
+ 'applicationCategory': 'UtilitiesApplication',
26
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
27
+ } as unknown as WithContext<Thing>;
28
+ }
29
+
30
+ function buildHowTo(title: string, howTo: HowToStep[]): WithContext<Thing> {
31
+ return {
32
+ '@context': 'https://schema.org',
33
+ '@type': 'HowTo',
34
+ 'name': title,
35
+ 'step': howTo.map((h) => ({
36
+ '@type': 'HowToStep',
37
+ 'name': h.name,
38
+ 'text': h.text,
39
+ })),
40
+ } as unknown as WithContext<Thing>;
41
+ }
42
+
43
+ export function buildSchemas(
44
+ title: string,
45
+ faq: FAQItem[],
46
+ howTo: HowToStep[]
47
+ ): WithContext<Thing>[] {
48
+ return [buildFAQ(faq), buildApp(title), buildHowTo(title, howTo)];
49
+ }
@@ -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: 'Was ist ein ewiger Kalender in einer Uhr?',
9
+ answer: 'Ein ewiger Kalender ist eine mechanische Uhrenkomplikation, die automatisch das korrekte Datum, den Wochentag, den Monat und die Mondphase anzeigt und dabei unterschiedliche Monatslängen und Schaltjahre berücksichtigt. Er ist bis zum Jahr 2100 programmiert (dem nächsten Jahrhundertjahr, das nicht durch 400 teilbar ist).',
10
+ },
11
+ {
12
+ question: 'Wie erkennt ein ewiger Kalender Schaltjahre?',
13
+ answer: 'Das mechanische Programm verwendet ein 48-Monats-Getriebe (4 Jahre) mit einer speziell geformten Kurvenscheibe, die den Schalttag am 29. Februar berücksichtigt. Der Mechanismus weiß, dass durch 100 teilbare Jahre keine Schaltjahre sind, es sei denn, sie sind auch durch 400 teilbar. Die meisten ewigen Kalender sind bis 2100 genau und benötigen dann eine Eintageskorrektur.',
14
+ },
15
+ {
16
+ question: 'Was ist der Unterschied zwischen einem ewigen und einem Jahreskalender?',
17
+ answer: 'Ein Jahreskalender benötigt eine manuelle Korrektur pro Jahr (Ende Februar), während ein ewiger Kalender Schaltjahre automatisch behandelt und jahrzehntelang korrekt läuft. Ewige Kalender sind mechanisch deutlich komplexer.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Datum vorwärts bewegen',
24
+ text: 'Verwenden Sie die Tasten D (Tag), M (Monat) und Y (Jahr), um den Kalender vorwärzubewegen. Beobachten Sie, wie sich der Datumszeiger bewegt und sich das Monatsfenster ändert.',
25
+ },
26
+ {
27
+ name: 'Schaltjahresübergänge beobachten',
28
+ text: 'Bewegen Sie sich durch den Februar eines Schaltjahres (z.B. 2024), um den Sprung vom 29. auf den 1. März zu sehen. Versuchen Sie es mit einem Nicht-Schaltjahr, um den Sprung vom 28. auf den 1. März zu beobachten.',
29
+ },
30
+ {
31
+ name: 'Automatischen Ablauf nutzen',
32
+ text: 'Drücken Sie auf Play, um den Kalender automatisch vorlaufen zu lassen. So sehen Sie den gesamten Zyklus der Monatslängen und den Fortschritt der Mondphase.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Ewiger Kalender Simulator: Interaktive Uhrenkomplikation';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'ewigerkalender',
40
+ title,
41
+ description: 'Entdecken Sie das mechanische Genie einer ewigen Kalender-Uhrenkomplikation. Visualisieren Sie Datum, Wochentag, Monat, Schaltjahrzyklus und Mondphase mit einem animierten Zifferblatt.',
42
+ ui: {
43
+ title: 'Ewiger Kalender Simulator',
44
+ dateLabel: 'Datum',
45
+ dayLabel: 'Tag',
46
+ monthLabel: 'Monat',
47
+ yearLabel: 'Jahr',
48
+ leapYearLabel: 'Schaltjahr',
49
+ moonPhaseLabel: 'Mondphase',
50
+ weekdayLabel: 'Wochentag',
51
+ advanceDay: 'Tag vor',
52
+ advanceMonth: 'Monat vor',
53
+ advanceYear: 'Jahr vor',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Heute',
56
+ dayNames: 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag',
57
+ monthNames: 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember',
58
+ tipTitle: 'Tipp',
59
+ tipContent: 'Die meisten ewigen Kalenderuhren verwenden ein 48-Monats-Programmräderwerk mit Kerben unterschiedlicher Länge. Der Februar hat die kürzeste Kerbe (28 Tage in Normaljahren, 29 in Schaltjahren), während 30- und 31-Tage-Monate progressiv längere Kerben haben.',
60
+ step1: 'Bewegen Sie sich Tag für Tag durch den Februar, um zu sehen, wie der Mechanismus Monatsübergänge bewältigt.',
61
+ step2: 'Verfolgen Sie den Fortschritt der Mondphasenanziege durch ihren 29,5-Tage-Zyklus.',
62
+ step3: 'Vergleichen Sie die Februar-Übergänge von Schaltjahren und Normaljahren, um den 4-Jahres-Zyklus zu verstehen.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Ewiger Kalender Simulator: Interaktive Uhrenkomplikation', level: 2 },
66
+ { type: 'paragraph', html: 'Der <strong>ewige Kalender</strong> ist eine der prestigeträchtigsten Komplikationen der Haute Horlogerie. Dieser interaktive Simulator visualisiert, wie ein mechanischer ewiger Kalender Datum, Wochentag, Monat, Schaltjahr und Mondphase verfolgt — jahrzehntelang ohne manuelle Korrektur. Erkunden Sie das 48-Monats-Getriebeprogramm, sehen Sie wie Februar-Übergänge funktionieren und verstehen Sie die in diesen Meisterwerken der Mikromechanik integrierte gregorianische Kalenderlogik.' },
67
+ { type: 'title', text: 'Wie ein ewiger Kalender funktioniert', level: 3 },
68
+ { type: 'paragraph', html: 'Ein mechanischer ewiger Kalender verwendet ein <strong>Programmräderwerk</strong> mit Kerben unterschiedlicher Tiefe, die die verschiedenen Monatslängen repräsentieren. Ein Abtasthebel fällt in jede Kerbe; eine tiefere Kerbe signalisiert einen kurzen Monat (28-29 Tage) und löst den Mechanismus aus, nach der korrekten Anzahl von Tagen auf den 1. des nächsten Monats vorzuspringen. Ein <strong>48-Monats-Getriebe</strong> bewältigt den 4-Jahres-Schaltjahrzyklus mit einer zusätzlichen Kerbe für den 29. Februar. Das Programm weiß, dass Jahrhundertjahre (z.B. 2100) das Schaltjahr auslassen, es sei denn, sie sind durch 400 teilbar.' },
69
+ { type: 'title', text: 'Vergleich: Ewiger vs. Jahreskalender', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Merkmal', 'Jahreskalender', 'Ewiger Kalender'], rows: [
72
+ ['Erfordert Korrektur', 'Einmal pro Jahr (1. März)', 'Einmal pro Jahrhundert (2100)'],
73
+ ['Schaltjahrhandhabung', 'Manuell', 'Automatisch (4-Jahres-Nocken)'],
74
+ ['Monatserkennung', '30 vs 31 Tage', 'Vollständig 28/29/30/31'],
75
+ ['Komplexität', 'Mäßig (~50 Teile)', 'Sehr hoch (~200+ Teile)'],
76
+ ['Preisspanne', '3.000-15.000 €', '20.000-500.000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Interaktiver Kalender Simulator', icon: 'mdi:calendar-month', badge: 'UHRMACHEREI', html: 'Dieses Tool simuliert den Kalendermechanismus einer ewigen Kalenderuhr. Das animierte Zifferblatt zeigt den Datumszeiger, das Monatsfenster, den Wochentag-Subdial, die Mondphase und den Schaltjahresindikator. Nutzen Sie die Steuerung, um durch Tage, Monate oder Jahre zu blättern und die mechanische Logik in Aktion zu beobachten.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };
@@ -0,0 +1,102 @@
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: 'What is a perpetual calendar watch?',
9
+ answer: 'A perpetual calendar is a mechanical watch complication that displays the correct date, day, month, and moon phase automatically, accounting for months of different lengths and leap years. It is programmed to be accurate until the year 2100 (the next century year not divisible by 400).',
10
+ },
11
+ {
12
+ question: 'How does a perpetual calendar know leap years?',
13
+ answer: 'The mechanical program uses a 48-month gear (4 years) with a specially designed cam that accounts for the February 29th leap day. The mechanism knows that years divisible by 100 are not leap years unless also divisible by 400. Most perpetual calendars are accurate until 2100, which will require a one-day correction.',
14
+ },
15
+ {
16
+ question: 'What is the difference between a perpetual and an annual calendar?',
17
+ answer: 'An annual calendar requires one manual correction per year (at the end of February), while a perpetual calendar automatically handles leap years and continues correctly for decades or centuries. Perpetual calendars are significantly more complex mechanically.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Advance the date',
24
+ text: 'Use the D (day), M (month), and Y (year) buttons to advance the calendar forward. Watch the date hand sweep and the month window change.',
25
+ },
26
+ {
27
+ name: 'Observe leap year transitions',
28
+ text: 'Advance through February of a leap year (e.g., 2024) to see the date jump from 29 to March 1. Try a non-leap year to see it skip from 28 to March 1.',
29
+ },
30
+ {
31
+ name: 'Use auto-play',
32
+ text: 'Press play to watch the calendar automatically advance. This reveals the full cycle of month lengths and the moon phase progression.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Perpetual Calendar Simulator: Interactive Watch Complication';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'perpetual-calendar',
40
+ title,
41
+ description: 'Explore the mechanical genius of a perpetual calendar watch complication. Visualize date, day, month, leap year cycle, and moon phase with an animated dial.',
42
+ ui: {
43
+ title: 'Perpetual Calendar Simulator',
44
+ dateLabel: 'Date',
45
+ dayLabel: 'Day',
46
+ monthLabel: 'Month',
47
+ yearLabel: 'Year',
48
+ leapYearLabel: 'Leap Year',
49
+ moonPhaseLabel: 'Moon Phase',
50
+ weekdayLabel: 'Weekday',
51
+ advanceDay: 'Advance Day',
52
+ advanceMonth: 'Advance Month',
53
+ advanceYear: 'Advance Year',
54
+ autoPlay: 'Auto Play',
55
+ resetBtn: 'Today',
56
+ dayNames: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday',
57
+ monthNames: 'January,February,March,April,May,June,July,August,September,October,November,December',
58
+ tipTitle: 'Tip',
59
+ tipContent: 'Most perpetual calendar watches use a 48-month program wheel with notches of varying lengths. February has the shortest notch (28 days in common years, 29 in leap years), while 30-day and 31-day months have progressively longer notches.',
60
+ step1: 'Advance day by day past February to see how the mechanism handles month-end transitions.',
61
+ step2: 'Watch the moon phase indicator progress through its 29.5-day cycle.',
62
+ step3: 'Compare leap year vs. common year February transitions to understand the 4-year cycle.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Perpetual Calendar Simulator: Interactive Watch Complication', level: 2 },
66
+ { type: 'paragraph', html: 'The <strong>perpetual calendar</strong> is one of the most prestigious complications in haute horlogerie. This interactive simulator visualizes how a mechanical perpetual calendar tracks date, day, month, leap year, and moon phase — all without manual correction for decades. Explore the 48-month gear program, see how February transitions work, and understand the gregorian calendar logic built into these masterpieces of micro-mechanics.' },
67
+ { type: 'title', text: 'How a Perpetual Calendar Works', level: 3 },
68
+ { type: 'paragraph', html: 'A mechanical perpetual calendar uses a <strong>program wheel</strong> with notches of different depths representing months of different lengths. A sensing lever drops into each notch; a deeper notch signals a short month (28-29 days), triggering the mechanism to advance to the 1st of the next month after the correct number of days. A <strong>48-month gear</strong> handles the 4-year leap year cycle, with an extra notch for February 29th. The program knows that century years (e.g., 2100) skip leap year unless divisible by 400.' },
69
+ { type: 'title', text: 'Calendar Logic Reference', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Month', 'Days', 'Notch Depth', 'Leap Year Action'], rows: [
72
+ ['January', '31', 'Deep', 'Normal'],
73
+ ['February', '28 / 29', 'Shallowest', 'Extra day every 4 years'],
74
+ ['March', '31', 'Deep', 'Normal'],
75
+ ['April', '30', 'Medium', 'Normal'],
76
+ ['May', '31', 'Deep', 'Normal'],
77
+ ['June', '30', 'Medium', 'Normal'],
78
+ ['July', '31', 'Deep', 'Normal'],
79
+ ['August', '31', 'Deep', 'Normal'],
80
+ ['September', '30', 'Medium', 'Normal'],
81
+ ['October', '31', 'Deep', 'Normal'],
82
+ ['November', '30', 'Medium', 'Normal'],
83
+ ['December', '31', 'Deep', 'Normal'],
84
+ ]
85
+ },
86
+ { type: 'title', text: 'Perpetual vs Annual Calendar', level: 3 },
87
+ {
88
+ type: 'table', headers: ['Feature', 'Annual Calendar', 'Perpetual Calendar'], rows: [
89
+ ['Requires adjustment', 'Once per year (Mar 1)', 'Once per century (2100)'],
90
+ ['Leap year handling', 'Manual', 'Automatic (4-year cam)'],
91
+ ['Month recognition', '30 vs 31 days', 'Full 28/29/30/31'],
92
+ ['Complexity', 'Moderate (~50 parts)', 'Very high (~200+ parts)'],
93
+ ['Price range', '$3,000 - $15,000', '$20,000 - $500,000+'],
94
+ ]
95
+ },
96
+ { type: 'diagnostic', variant: 'info', title: 'Interactive Calendar Simulator', icon: 'mdi:calendar-month', badge: 'HOROLOGY', html: 'This tool simulates the calendar mechanism of a perpetual calendar watch. The animated dial shows the date hand, month window, day subdial, moon phase, and leap year indicator. Use the controls to advance through days, months, or years and observe the mechanical logic in action.' },
97
+ ],
98
+ faq,
99
+ bibliography,
100
+ howTo,
101
+ schemas: buildSchemas(title, faq, howTo),
102
+ };
@@ -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: '¿Qué es un calendario perpetuo en un reloj?',
9
+ answer: 'Un calendario perpetuo es una complicación de reloj mecánica que muestra automáticamente la fecha, el día, el mes y la fase lunar correctos, teniendo en cuenta los meses de diferente duración y los años bisiestos. Está programado para ser preciso hasta el año 2100 (el próximo año secular no divisible por 400).',
10
+ },
11
+ {
12
+ question: '¿Cómo sabe un calendario perpetuo los años bisiestos?',
13
+ answer: 'El programa mecánico utiliza un engranaje de 48 meses (4 años) con una leva diseñada especialmente que contabiliza el día bisiesto del 29 de febrero. El mecanismo sabe que los años divisibles por 100 no son bisiestos a menos que también sean divisibles por 400. La mayoría de los calendarios perpetuos son precisos hasta 2100, cuando requerirán una corrección de un día.',
14
+ },
15
+ {
16
+ question: '¿Cuál es la diferencia entre un calendario perpetuo y un calendario anual?',
17
+ answer: 'Un calendario anual requiere una corrección manual al año (al final de febrero), mientras que un calendario perpetuo maneja automáticamente los años bisiestos y funciona correctamente durante décadas. Los calendarios perpetuos son significativamente más complejos mecánicamente.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Avance la fecha',
24
+ text: 'Use los botones D (día), M (mes) y Y (año) para avanzar el calendario. Observe cómo se mueve la aguja de fecha y cambia la ventana del mes.',
25
+ },
26
+ {
27
+ name: 'Observe las transiciones de año bisiesto',
28
+ text: 'Avance a través de febrero de un año bisiesto (ej. 2024) para ver el salto del 29 al 1 de marzo. Pruebe con un año no bisiesto para ver el salto del 28 al 1 de marzo.',
29
+ },
30
+ {
31
+ name: 'Use la reproducción automática',
32
+ text: 'Presione play para que el calendario avance automáticamente. Esto revela el ciclo completo de duraciones de meses y la progresión de la fase lunar.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Simulador de Calendario Perpetuo: Complicación de Reloj Interactiva';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'calendario-perpetuo',
40
+ title,
41
+ description: 'Explore el genio mecánico de una complicación de calendario perpetuo. Visualice fecha, día, mes, ciclo de año bisiesto y fase lunar con una esfera animada.',
42
+ ui: {
43
+ title: 'Simulador de Calendario Perpetuo',
44
+ dateLabel: 'Fecha',
45
+ dayLabel: 'Día',
46
+ monthLabel: 'Mes',
47
+ yearLabel: 'Año',
48
+ leapYearLabel: 'Bisiesto',
49
+ moonPhaseLabel: 'Fase Lunar',
50
+ weekdayLabel: 'Día Semana',
51
+ advanceDay: 'Avanzar Día',
52
+ advanceMonth: 'Avanzar Mes',
53
+ advanceYear: 'Avanzar Año',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Hoy',
56
+ dayNames: 'Domingo,Lunes,Martes,Miércoles,Jueves,Viernes,Sábado',
57
+ monthNames: 'Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre',
58
+ tipTitle: 'Consejo',
59
+ tipContent: 'La mayoría de los relojes de calendario perpetuo usan una rueda de programa de 48 meses con muescas de longitud variable. Febrero tiene la muesca más corta (28 días en años comunes, 29 en bisiestos), mientras que los meses de 30 y 31 días tienen muescas progresivamente más largas.',
60
+ step1: 'Avance día a día pasado febrero para ver cómo el mecanismo maneja las transiciones de fin de mes.',
61
+ step2: 'Observe el indicador de fase lunar progresar a través de su ciclo de 29.5 días.',
62
+ step3: 'Compare las transiciones de febrero en años bisiestos vs. comunes para entender el ciclo de 4 años.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Simulador de Calendario Perpetuo: Complicación Interactiva', level: 2 },
66
+ { type: 'paragraph', html: 'El <strong>calendario perpetuo</strong> es una de las complicaciones más prestigiosas de la alta relojería. Este simulador interactivo visualiza cómo un calendario perpetuo mecánico rastrea fecha, día, mes, año bisiesto y fase lunar — todo sin corrección manual durante décadas. Explore el programa de engranaje de 48 meses, vea cómo funcionan las transiciones de febrero y entienda la lógica del calendario gregoriano incorporada en estas obras maestras de la micromecánica.' },
67
+ { type: 'title', text: 'Cómo funciona un calendario perpetuo', level: 3 },
68
+ { type: 'paragraph', html: 'Un calendario perpetuo mecánico utiliza una <strong>rueda de programa</strong> con muescas de diferentes profundidades que representan los meses de distintas duraciones. Un brazo sensor cae en cada muesca; una muesca más profunda señala un mes corto (28-29 días), activando el mecanismo para avanzar al 1 del mes siguiente después del número correcto de días. Un <strong>engranaje de 48 meses</strong> maneja el ciclo de 4 años bisiestos, con una muesca extra para el 29 de febrero. El programa sabe que los años centenarios (ej. 2100) omiten el año bisiesto a menos que sean divisibles por 400.' },
69
+ { type: 'title', text: 'Comparación: Calendario Perpetuo vs Anual', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Característica', 'Calendario Anual', 'Calendario Perpetuo'], rows: [
72
+ ['Requiere ajuste', 'Una vez al año (1 Mar)', 'Una vez por siglo (2100)'],
73
+ ['Manejo de bisiestos', 'Manual', 'Automático (leva 4 años)'],
74
+ ['Reconocimiento de mes', '30 vs 31 días', 'Completo 28/29/30/31'],
75
+ ['Complejidad', 'Moderada (~50 piezas)', 'Muy alta (~200+ piezas)'],
76
+ ['Rango de precio', '3.000-15.000 €', '20.000-500.000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Simulador de Calendario Interactivo', icon: 'mdi:calendar-month', badge: 'RELOJERÍA', html: 'Esta herramienta simula el mecanismo de calendario de un reloj de calendario perpetuo. La esfera animada muestra la aguja de fecha, la ventana de mes, el subdial de día, la fase lunar y el indicador de año bisiesto. Use los controles para avanzar por días, meses o años y observe la lógica mecánica en acción.' },
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: 'Qu\'est-ce qu\'un calendrier perpétuel dans une montre?',
9
+ answer: 'Un calendrier perpétuel est une complication horlogère mécanique qui affiche automatiquement la date, le jour, le mois et la phase de lune corrects, en tenant compte des mois de différentes longueurs et des années bissextiles. Il est programmé pour être précis jusqu\'en 2100 (la prochaine année séculaire non divisible par 400).',
10
+ },
11
+ {
12
+ question: 'Comment un calendrier perpétuel connaît-il les années bissextiles?',
13
+ answer: 'Le programme mécanique utilise un engrenage de 48 mois (4 ans) avec une came spécialement conçue qui tient compte du 29 février. Le mécanisme sait que les années divisibles par 100 ne sont pas bissextiles sauf si elles sont également divisibles par 400. La plupart des calendriers perpétuels sont précis jusqu\'en 2100, date à laquelle une correction d\'un jour sera nécessaire.',
14
+ },
15
+ {
16
+ question: 'Quelle est la différence entre un calendrier perpétuel et un calendrier annuel?',
17
+ answer: 'Un calendrier annuel nécessite une correction manuelle par an (fin février), tandis qu\'un calendrier perpétuel gère automatiquement les années bissextiles et continue correctement pendant des décennies. Les calendriers perpétuels sont mécaniquement bien plus complexes.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Avancez la date',
24
+ text: 'Utilisez les boutons J (jour), M (mois) et A (année) pour faire avancer le calendrier. Regardez l\'aiguille de date se déplacer et la fenêtre du mois changer.',
25
+ },
26
+ {
27
+ name: 'Observez les transitions d\'année bissextile',
28
+ text: 'Avancez à travers février d\'une année bissextile (ex. 2024) pour voir le saut du 29 au 1er mars. Essayez une année non bissextile pour voir le saut du 28 au 1er mars.',
29
+ },
30
+ {
31
+ name: 'Utilisez la lecture automatique',
32
+ text: 'Appuyez sur lecture pour faire avancer le calendrier automatiquement. Cela révèle le cycle complet des longueurs de mois et la progression de la phase lunaire.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Simulateur de Calendrier Perpétuel: Complication Horlogère Interactive';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'calendrier-perpetuel',
40
+ title,
41
+ description: 'Explorez le génie mécanique d\'une complication de calendrier perpétuel. Visualisez la date, le jour, le mois, le cycle des années bissextiles et la phase lunaire avec un cadran animé.',
42
+ ui: {
43
+ title: 'Simulateur de Calendrier Perpétuel',
44
+ dateLabel: 'Date',
45
+ dayLabel: 'Jour',
46
+ monthLabel: 'Mois',
47
+ yearLabel: 'Année',
48
+ leapYearLabel: 'Bissextile',
49
+ moonPhaseLabel: 'Phase Lune',
50
+ weekdayLabel: 'Semaine',
51
+ advanceDay: 'Avancer Jour',
52
+ advanceMonth: 'Avancer Mois',
53
+ advanceYear: 'Avancer Année',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Aujourd\'hui',
56
+ dayNames: 'Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi',
57
+ monthNames: 'Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre',
58
+ tipTitle: 'Astuce',
59
+ tipContent: 'La plupart des montres à calendrier perpétuel utilisent une roue de programme de 48 mois avec des encoches de longueur variable. Février a l\'encoche la plus courte (28 jours en années communes, 29 en bissextiles), tandis que les mois de 30 et 31 jours ont des encoches progressivement plus longues.',
60
+ step1: 'Avancez jour après jour passé février pour voir comment le mécanisme gère les transitions de fin de mois.',
61
+ step2: 'Regardez l\'indicateur de phase lunaire progresser à travers son cycle de 29,5 jours.',
62
+ step3: 'Comparez les transitions de février entre années bissextiles et communes pour comprendre le cycle de 4 ans.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Simulateur de Calendrier Perpétuel: Complication Interactif', level: 2 },
66
+ { type: 'paragraph', html: 'Le <strong>calendrier perpétuel</strong> est l\'une des complications les plus prestigieuses de la haute horlogerie. Ce simulateur interactif visualise comment un calendrier perpétuel mécanique suit la date, le jour, le mois, l\'année bissextile et la phase lunaire — sans correction manuelle pendant des décennies. Explorez le programme d\'engrenage de 48 mois, voyez comment fonctionnent les transitions de février et comprenez la logique du calendrier grégorien intégrée dans ces chefs-d\'œuvre de micromécanique.' },
67
+ { type: 'title', text: 'Comment fonctionne un calendrier perpétuel', level: 3 },
68
+ { type: 'paragraph', html: 'Un calendrier perpétuel mécanique utilise une <strong>roue de programme</strong> avec des encoches de différentes profondeurs représentant les mois de différentes longueurs. Un levier de détection tombe dans chaque encoche; une encoche plus profonde signale un mois court (28-29 jours), déclenchant le mécanisme pour avancer au 1er du mois suivant après le nombre correct de jours. Un <strong>engrenage de 48 mois</strong> gère le cycle de 4 ans des années bissextiles, avec une encoche supplémentaire pour le 29 février. Le programme sait que les années séculaires (ex. 2100) sautent l\'année bissextile sauf si elles sont divisibles par 400.' },
69
+ { type: 'title', text: 'Comparaison: Calendrier Perpétuel vs Annuel', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Caractéristique', 'Calendrier Annuel', 'Calendrier Perpétuel'], rows: [
72
+ ['Nécessite ajustement', 'Une fois par an (1 Mars)', 'Une fois par siècle (2100)'],
73
+ ['Gestion des bissextiles', 'Manuelle', 'Automatique (came 4 ans)'],
74
+ ['Reconnaissance des mois', '30 vs 31 jours', 'Complet 28/29/30/31'],
75
+ ['Complexité', 'Modérée (~50 pièces)', 'Très élevée (~200+ pièces)'],
76
+ ['Fourchette de prix', '3 000-15 000 €', '20 000-500 000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Simulateur de Calendrier Interactif', icon: 'mdi:calendar-month', badge: 'HORLOGERIE', html: 'Cet outil simule le mécanisme calendaire d\'une montre à calendrier perpétuel. Le cadran animé montre l\'aiguille de date, la fenêtre de mois, le sous-cadran du jour, la phase lunaire et l\'indicateur d\'année bissextile. Utilisez les commandes pour avancer par jours, mois ou années et observez la logique mécanique en action.' },
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: 'Apa itu kalender abadi pada jam tangan?',
9
+ answer: 'Kalender abadi adalah komplikasi jam tangan mekanis yang secara otomatis menampilkan tanggal, hari, bulan, dan fase bulan yang benar, dengan memperhitungkan bulan dengan panjang berbeda dan tahun kabisat. Ia diprogram untuk akurat hingga tahun 2100 (tahun abad berikutnya yang tidak habis dibagi 400).',
10
+ },
11
+ {
12
+ question: 'Bagaimana kalender abadi mengetahui tahun kabisat?',
13
+ answer: 'Program mekanis menggunakan roda gigi 48 bulan (4 tahun) dengan kam yang dirancang khusus yang memperhitungkan 29 Februari. Mekanismenya tahu bahwa tahun yang habis dibagi 100 bukanlah tahun kabisat kecuali juga habis dibagi 400. Kebanyakan kalender abadi akurat hingga 2100, saat koreksi satu hari akan diperlukan.',
14
+ },
15
+ {
16
+ question: 'Apa perbedaan antara kalender abadi dan kalender tahunan?',
17
+ answer: 'Kalender tahunan memerlukan koreksi manual setahun sekali (akhir Februari), sedangkan kalender abadi secara otomatis menangani tahun kabisat dan terus berjalan benar selama puluhan tahun. Kalender abadi secara mekanis jauh lebih kompleks.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Majuukan tanggal',
24
+ text: 'Gunakan tombol T (tanggal), B (bulan), dan T (tahun) untuk memajukan kalender. Amati jarum tanggal bergerak dan jendela bulan berubah.',
25
+ },
26
+ {
27
+ name: 'Amati transisi tahun kabisat',
28
+ text: 'Maju melalui Februari tahun kabisat (mis. 2024) untuk melihat lompatan dari 29 ke 1 Maret. Coba tahun non-kabisat untuk melihat lompatan dari 28 ke 1 Maret.',
29
+ },
30
+ {
31
+ name: 'Gunakan putar otomatis',
32
+ text: 'Tekan play untuk memajukan kalender secara otomatis. Ini mengungkapkan siklus lengkap panjang bulan dan progresi fase bulan.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Simulator Kalender Abadi: Komplikasi Jam Tangan Interaktif';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'kalender-abadi',
40
+ title,
41
+ description: 'Jelajahi kejeniusan mekanis komplikasi kalender abadi. Visualisasikan tanggal, hari, bulan, siklus tahun kabisat, dan fase bulan dengan dial animasi.',
42
+ ui: {
43
+ title: 'Simulator Kalender Abadi',
44
+ dateLabel: 'Tanggal',
45
+ dayLabel: 'Hari',
46
+ monthLabel: 'Bulan',
47
+ yearLabel: 'Tahun',
48
+ leapYearLabel: 'Kabisat',
49
+ moonPhaseLabel: 'Fase Bulan',
50
+ weekdayLabel: 'Hari',
51
+ advanceDay: 'Maju Hari',
52
+ advanceMonth: 'Maju Bulan',
53
+ advanceYear: 'Maju Tahun',
54
+ autoPlay: 'Otomatis',
55
+ resetBtn: 'Hari Ini',
56
+ dayNames: 'Minggu,Senin,Selasa,Rabu,Kamis,Jumat,Sabtu',
57
+ monthNames: 'Januari,Februari,Maret,April,Mei,Juni,Juli,Agustus,September,Oktober,November,Desember',
58
+ tipTitle: 'Tip',
59
+ tipContent: 'Kebanyakan jam tangan kalender abadi menggunakan roda program 48 bulan dengan lekukan panjang variabel. Februari memiliki lekukan terpendek (28 hari di tahun biasa, 29 di tahun kabisat), sementara bulan 30 dan 31 hari memiliki lekukan yang semakin panjang.',
60
+ step1: 'Maju hari demi hari melewati Februari untuk melihat bagaimana mekanisme menangani transisi akhir bulan.',
61
+ step2: 'Amati indikator fase bulan berkembang melalui siklus 29,5 harinya.',
62
+ step3: 'Bandingkan transisi Februari antara tahun kabisat dan biasa untuk memahami siklus 4 tahun.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Simulator Kalender Abadi: Komplikasi Interaktif', level: 2 },
66
+ { type: 'paragraph', html: '<strong>Kalender abadi</strong> adalah salah satu komplikasi paling prestisius dalam haute horlogerie. Simulator interaktif ini memvisualisasikan bagaimana kalender abadi mekanis melacak tanggal, hari, bulan, tahun kabisat, dan fase bulan — tanpa koreksi manual selama puluhan tahun. Jelajahi program roda gigi 48 bulan, lihat bagaimana transisi Februari bekerja, dan pahami logika kalender Gregorian yang tertanam dalam mahakarya mikromekanik ini.' },
67
+ { type: 'title', text: 'Cara kerja kalender abadi', level: 3 },
68
+ { type: 'paragraph', html: 'Kalender abadi mekanis menggunakan <strong>roda program</strong> dengan lekukan kedalaman berbeda yang mewakili bulan dengan panjang berbeda. Lengan sensor jatuh ke setiap lekukan; lekukan yang lebih dalam menandakan bulan pendek (28-29 hari), memicu mekanisme untuk melompat ke tanggal 1 bulan berikutnya setelah jumlah hari yang benar. <strong>Roda gigi 48 bulan</strong> menangani siklus 4 tahun kabisat, dengan lekukan tambahan untuk 29 Februari. Program tahu bahwa tahun abad (mis. 2100) melewatkan tahun kabisat kecuali habis dibagi 400.' },
69
+ { type: 'title', text: 'Perbandingan: Kalender Abadi vs Tahunan', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Fitur', 'Kalender Tahunan', 'Kalender Abadi'], rows: [
72
+ ['Perlu penyesuaian', 'Setahun sekali (1 Mar)', 'Seabad sekali (2100)'],
73
+ ['Penanganan kabisat', 'Manual', 'Otomatis (kam 4 tahun)'],
74
+ ['Pengenalan bulan', '30 vs 31 hari', 'Penuh 28/29/30/31'],
75
+ ['Kompleksitas', 'Sedang (~50 bagian)', 'Sangat tinggi (~200+ bagian)'],
76
+ ['Kisaran harga', '€3.000-15.000', '€20.000-500.000+'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Simulator Kalender Interaktif', icon: 'mdi:calendar-month', badge: 'HOROLOGI', html: 'Alat ini mensimulasikan mekanisme kalender dari jam tangan kalender abadi. Dial animasi menunjukkan jarum tanggal, jendela bulan, subdial hari, fase bulan, dan indikator tahun kabisat. Gunakan kontrol untuk maju melalui hari, bulan, atau tahun dan amati logika mekanis dalam aksi.' },
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: 'Che cos\'è un calendario perpetuo in un orologio?',
9
+ answer: 'Un calendario perpetuo è una complicazione orologiera meccanica che mostra automaticamente la data, il giorno, il mese e la fase lunare corretti, tenendo conto dei mesi di diversa lunghezza e degli anni bisestili. È programmato per essere preciso fino all\'anno 2100 (il prossimo anno secolare non divisibile per 400).',
10
+ },
11
+ {
12
+ question: 'Come fa un calendario perpetuo a conoscere gli anni bisestili?',
13
+ answer: 'Il programma meccanico utilizza un ingranaggio di 48 mesi (4 anni) con una camma appositamente progettata che tiene conto del 29 febbraio. Il meccanismo sa che gli anni divisibili per 100 non sono bisestili a meno che non siano anche divisibili per 400. La maggior parte dei calendari perpetui sono precisi fino al 2100, quando richiederanno una correzione di un giorno.',
14
+ },
15
+ {
16
+ question: 'Qual è la differenza tra un calendario perpetuo e un calendario annuale?',
17
+ answer: 'Un calendario annuale richiede una correzione manuale all\'anno (alla fine di febbraio), mentre un calendario perpetuo gestisce automaticamente gli anni bisestili e continua correttamente per decenni. I calendari perpetui sono meccanicamente molto più complessi.',
18
+ },
19
+ ];
20
+
21
+ const howTo = [
22
+ {
23
+ name: 'Avanzare la data',
24
+ text: 'Usa i pulsanti G (giorno), M (mese) e A (anno) per avanzare il calendario. Osserva la lancetta della data muoversi e la finestra del mese cambiare.',
25
+ },
26
+ {
27
+ name: 'Osservare le transizioni bisestili',
28
+ text: 'Avanza attraverso febbraio di un anno bisestile (es. 2024) per vedere il salto dal 29 al 1 marzo. Prova con un anno non bisestile per vedere il salto dal 28 al 1 marzo.',
29
+ },
30
+ {
31
+ name: 'Usare la riproduzione automatica',
32
+ text: 'Premi play per far avanzare automaticamente il calendario. Questo rivela l\'intero ciclo delle lunghezze dei mesi e la progressione della fase lunare.',
33
+ },
34
+ ];
35
+
36
+ const title = 'Simulatore di Calendario Perpetuo: Complicazione Orologiera Interattiva';
37
+
38
+ export const content: ToolLocaleContent<PerpetualCalendarUI> = {
39
+ slug: 'calendario-perpetuo-italiano',
40
+ title,
41
+ description: 'Esplora il genio meccanico di una complicazione calendario perpetuo. Visualizza data, giorno, mese, ciclo degli anni bisestili e fase lunare con un quadrante animato.',
42
+ ui: {
43
+ title: 'Simulatore di Calendario Perpetuo',
44
+ dateLabel: 'Data',
45
+ dayLabel: 'Giorno',
46
+ monthLabel: 'Mese',
47
+ yearLabel: 'Anno',
48
+ leapYearLabel: 'Bisestile',
49
+ moonPhaseLabel: 'Fase Lunare',
50
+ weekdayLabel: 'Settimana',
51
+ advanceDay: 'Avanti Giorno',
52
+ advanceMonth: 'Avanti Mese',
53
+ advanceYear: 'Avanti Anno',
54
+ autoPlay: 'Auto',
55
+ resetBtn: 'Oggi',
56
+ dayNames: 'Domenica,Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato',
57
+ monthNames: 'Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre',
58
+ tipTitle: 'Consiglio',
59
+ tipContent: 'La maggior parte degli orologi con calendario perpetuo utilizza una ruota programma di 48 mesi con tacche di lunghezza variabile. Febbraio ha la tacca più corta (28 giorni negli anni comuni, 29 nei bisestili), mentre i mesi di 30 e 31 giorni hanno tacche progressivamente più lunghe.',
60
+ step1: 'Avanza giorno per giorno oltre febbraio per vedere come il meccanismo gestisce le transizioni di fine mese.',
61
+ step2: 'Osserva l\'indicatore di fase lunare progredire attraverso il suo ciclo di 29,5 giorni.',
62
+ step3: 'Confronta le transizioni di febbraio tra anni bisestili e comuni per comprendere il ciclo di 4 anni.',
63
+ },
64
+ seo: [
65
+ { type: 'title', text: 'Simulatore di Calendario Perpetuo: Complicazione Interattiva', level: 2 },
66
+ { type: 'paragraph', html: 'Il <strong>calendario perpetuo</strong> è una delle complicazioni più prestigiose dell\'alta orologeria. Questo simulatore interattivo visualizza come un calendario perpetuo meccanico tiene traccia di data, giorno, mese, anno bisestile e fase lunare — senza correzione manuale per decenni. Esplora il programma ad ingranaggio di 48 mesi, vedi come funzionano le transizioni di febbraio e comprendi la logica del calendario gregoriano incorporata in questi capolavori di micromeccanica.' },
67
+ { type: 'title', text: 'Come funziona un calendario perpetuo', level: 3 },
68
+ { type: 'paragraph', html: 'Un calendario perpetuo meccanico utilizza una <strong>ruota programma</strong> con tacche di diverse profondità che rappresentano i mesi di diversa lunghezza. Un leva sensore cade in ogni tacca; una tacca più profonda segnala un mese corto (28-29 giorni), attivando il meccanismo per avanzare al 1 del mese successivo dopo il numero corretto di giorni. Un <strong>ingranaggio di 48 mesi</strong> gestisce il ciclo di 4 anni bisestili, con una tacca extra per il 29 febbraio. Il programma sa che gli anni secolari (es. 2100) saltano l\'anno bisestile a meno che non siano divisibili per 400.' },
69
+ { type: 'title', text: 'Confronto: Calendario Perpetuo vs Annuale', level: 3 },
70
+ {
71
+ type: 'table', headers: ['Caratteristica', 'Calendario Annuale', 'Calendario Perpetuo'], rows: [
72
+ ['Richiede regolazione', 'Una volta all\'anno (1 Mar)', 'Una volta per secolo (2100)'],
73
+ ['Gestione bisestili', 'Manuale', 'Automatica (camma 4 anni)'],
74
+ ['Riconoscimento mesi', '30 vs 31 giorni', 'Completo 28/29/30/31'],
75
+ ['Complessità', 'Moderata (~50 pezzi)', 'Molto alta (~200+ pezzi)'],
76
+ ['Fascia di prezzo', '3.000-15.000 €', '20.000-500.000+ €'],
77
+ ]
78
+ },
79
+ { type: 'diagnostic', variant: 'info', title: 'Simulatore di Calendario Interattivo', icon: 'mdi:calendar-month', badge: 'OROLOGERIA', html: 'Questo strumento simula il meccanismo calendario di un orologio a calendario perpetuo. Il quadrante animato mostra la lancetta della data, la finestra del mese, il subdial del giorno, la fase lunare e l\'indicatore dell\'anno bisestile. Usa i controlli per avanzare attraverso giorni, mesi o anni e osserva la logica meccanica in azione.' },
80
+ ],
81
+ faq,
82
+ bibliography,
83
+ howTo,
84
+ schemas: buildSchemas(title, faq, howTo),
85
+ };