'use client'; import { useMemo } from 'react'; import { useLocale } from './LocaleProvider'; import { ts } from '@/lib/i18n'; import { getFullMoonsForYear, FULL_MOON_NAMES } from '@/lib/lunar'; const MOON_DESCRIPTIONS: Record> = { 1: { en: { cultural: "Named by Native Americans for the howling wolves of winter. In Celtic tradition, it's the Quiet Moon. Hindu cultures associate it with Paush Purnima, a time of spiritual reflection.", effects: "Winter full moons appear higher and brighter in the sky. Tidal ranges increase, and nocturnal animals become more active during cold clear nights.", ritual: "A time for setting intentions for the new year, meditation by moonlight, and journaling about personal goals." }, fr: { cultural: "Nommée par les Amérindiens pour les loups hurlants de l'hiver. Chez les Celtes, c'est la Lune Tranquille. Les cultures hindoues l'associent à Paush Purnima.", effects: "Les pleines lunes d'hiver apparaissent plus hautes et brillantes. Les marées augmentent et les animaux nocturnes sont plus actifs.", ritual: "Moment idéal pour fixer ses intentions, méditer au clair de lune et réfléchir à ses objectifs personnels." } }, 2: { en: { cultural: "Named for heavy February snowfall. Also called the Hunger Moon by some tribes, as food was scarce. In Chinese tradition, it's associated with the Lantern Festival.", effects: "Snow reflects moonlight, creating exceptionally bright nights. Ocean tides remain strong, and migration patterns begin shifting.", ritual: "Time for purification rituals, releasing old habits, and preparing for the coming spring renewal." }, fr: { cultural: "Nommée pour les chutes de neige de février. Appelée aussi Lune de la Faim. En Chine, elle est associée à la Fête des Lanternes.", effects: "La neige reflète la lumière lunaire, créant des nuits exceptionnellement brillantes. Les marées restent fortes.", ritual: "Temps de purification, abandon des vieilles habitudes et préparation au renouveau printanier." } }, 3: { en: { cultural: "Named after earthworms emerging as soil thaws. Also known as the Sap Moon (maple sap flows) and the Crow Moon (crows signal spring).", effects: "Spring equinox tides combine with the full moon for dramatic coastal changes. Birds begin migration, influenced by moonlit navigation.", ritual: "A time for spring cleaning, both physical and spiritual. Plant seeds of intention and embrace new beginnings." }, fr: { cultural: "Nommée d'après les vers de terre qui émergent au dégel. Aussi appelée Lune de la Sève et Lune du Corbeau.", effects: "Les marées d'équinoxe combinées à la pleine lune créent des changements côtiers spectaculaires.", ritual: "Temps du nettoyage de printemps, physique et spirituel. Plantez des graines d'intentions." } }, 4: { en: { cultural: "Named for pink wildflowers (phlox) blooming in spring. In Japan, it coincides with hanami (cherry blossom viewing) celebrations.", effects: "Warming waters respond to spring tides. Coral spawning events worldwide are synchronized with this full moon.", ritual: "Celebrate growth and beauty. Create art by moonlight, spend time in nature, and practice gratitude." }, fr: { cultural: "Nommée pour les fleurs sauvages roses (phlox). Au Japon, elle coïncide avec le hanami (observation des cerisiers en fleurs).", effects: "Les eaux se réchauffent et les marées de printemps stimulent la ponte des coraux dans le monde entier.", ritual: "Célébrez la croissance et la beauté. Créez de l'art au clair de lune et pratiquez la gratitude." } }, 5: { en: { cultural: "Named for abundant spring flowers. Vesak, the most sacred Buddhist festival celebrating Buddha's birth, falls on this full moon.", effects: "Maximum biodiversity activity. Nocturnal pollination peaks, fireflies appear, and many marine species spawn.", ritual: "Honor abundance and connection to nature. Create flower offerings, dance under the moon, and express creativity." }, fr: { cultural: "Nommée pour les fleurs printanières abondantes. Vesak, fête bouddhiste de la naissance de Bouddha, tombe durant cette pleine lune.", effects: "Activité maximale de biodiversité. Pollinisation nocturne à son pic, apparition des lucioles.", ritual: "Honorez l'abondance. Créez des offrandes florales, dansez sous la lune et exprimez votre créativité." } }, 6: { en: { cultural: "Named for strawberry harvest season. In Europe, it's the Rose Moon or Mead Moon. Hindu Vat Purnima celebrates marital devotion.", effects: "Summer solstice proximity creates unique low-hanging amber moons. Turtles use moonlight for beach nesting navigation.", ritual: "Celebrate love and relationships. Make strawberry mead, gather with loved ones, and honor summer's arrival." }, fr: { cultural: "Nommée pour la saison des fraises. En Europe, c'est la Lune Rose. Le Vat Purnima hindou célèbre la dévotion conjugale.", effects: "Proximité du solstice d'été créant des lunes ambrées basses. Les tortues utilisent la lumière lunaire pour nicher.", ritual: "Célébrez l'amour. Préparez de l'hydromel aux fraises et honorez l'arrivée de l'été." } }, 7: { en: { cultural: "Named for bucks growing new antlers. Also the Thunder Moon for summer storms. In Hindu tradition, Guru Purnima honors spiritual teachers.", effects: "Warm summer waters amplify tidal effects. Dolphins and whales show increased activity during full moon nights.", ritual: "Express gratitude to mentors and teachers. Reflect on personal growth and strength gained during the year." }, fr: { cultural: "Nommée pour les cerfs qui développent de nouveaux bois. Aussi la Lune du Tonnerre. Guru Purnima honore les maîtres spirituels.", effects: "Les eaux chaudes d'été amplifient les marées. Dauphins et baleines sont plus actifs les nuits de pleine lune.", ritual: "Exprimez votre gratitude envers vos mentors. Réfléchissez à votre croissance personnelle." } }, 8: { en: { cultural: "Named for Great Lakes sturgeon fishing season. Also the Green Corn Moon. In Sri Lanka, Nikini Poya commemorates the first Buddhist council.", effects: "Late summer full moons create spectacular reflections on calm waters. Fish feeding patterns peak at night.", ritual: "Celebrate harvest abundance. Prepare seasonal foods, give thanks, and share your bounty with others." }, fr: { cultural: "Nommée pour la saison de pêche à l'esturgeon. Aussi la Lune du Maïs Vert. Au Sri Lanka, Nikini Poya commémore le premier concile bouddhiste.", effects: "Les pleines lunes de fin d'été créent des reflets spectaculaires sur les eaux calmes.", ritual: "Célébrez l'abondance de la récolte. Préparez des repas de saison et partagez avec les autres." } }, 9: { en: { cultural: "Named because it rises near sunset during harvest, providing extra light for farmers. The most famous full moon in many cultures worldwide.", effects: "Appears unusually large and orange near the horizon. Strongest combined gravitational pull with autumn equinox tides.", ritual: "The quintessential moon for harvest celebrations, Thanksgiving traditions, and honoring the Earth's abundance." }, fr: { cultural: "Nommée car elle se lève près du coucher du soleil pendant la moisson, offrant de la lumière aux agriculteurs. La pleine lune la plus célèbre.", effects: "Paraît exceptionnellement grande et orange près de l'horizon. Force gravitationnelle maximale avec les marées d'équinoxe.", ritual: "La lune par excellence pour les célébrations de récolte et pour honorer l'abondance de la Terre." } }, 10: { en: { cultural: "Named because hunters tracked prey by autumn moonlight. In Chinese culture, this full moon period includes the Double Ninth Festival.", effects: "Crisp autumn air provides exceptional clarity for moongazing. Migratory birds use the full moon for nocturnal navigation.", ritual: "Plan for the winter ahead. Focus on determination, strategy, and gathering resources — physical and spiritual." }, fr: { cultural: "Nommée car les chasseurs traquaient leur proie au clair de lune. En Chine, cette période inclut la Fête du Double Neuf.", effects: "L'air frais d'automne offre une clarté exceptionnelle. Les oiseaux migrateurs utilisent la pleine lune pour naviguer.", ritual: "Planifiez pour l'hiver. Concentrez-vous sur la détermination et la collecte de ressources." } }, 11: { en: { cultural: "Named for beaver trapping season before winter. Also the Frost Moon. In Hindu tradition, Kartik Purnima involves ceremonial lamp floating.", effects: "Longer nights make this moon visible for up to 15 hours. Cold waters produce stronger tidal forces.", ritual: "Time for building foundations, creating warmth and community, and preparing for the introspective winter months." }, fr: { cultural: "Nommée pour la saison de piégeage des castors. Aussi la Lune du Gel. Kartik Purnima hindou implique des lampes flottantes.", effects: "Les longues nuits rendent cette lune visible jusqu'à 15 heures. Les eaux froides créent des marées plus fortes.", ritual: "Temps de construire des fondations, créer de la chaleur et se préparer à l'hiver introspectif." } }, 12: { en: { cultural: "Named for cold December nights. Also the Long Night Moon (longest nights of the year). In Buddhism, Bodhi Day (enlightenment) often falls near this moon.", effects: "Highest position in the sky of any full moon. Winter ice reflects moonlight, creating shimmering landscapes.", ritual: "Time for deep reflection, letting go of the past year, and meditating on inner light during the longest nights." }, fr: { cultural: "Nommée pour les nuits froides de décembre. Aussi la Lune de la Longue Nuit. Le Jour de Bodhi bouddhiste tombe souvent près de cette lune.", effects: "Position la plus haute dans le ciel. La glace hivernale reflète la lumière, créant des paysages scintillants.", ritual: "Temps de réflexion profonde, lâcher prise sur l'année passée et méditer sur la lumière intérieure." } }, }; export default function FullMoonDescriptions() { const { locale } = useLocale(); const year = new Date().getFullYear(); const fullMoons = useMemo(() => getFullMoonsForYear(year), [year]); const lang = (locale === 'fr') ? 'fr' : 'en'; return (

{ts('fullmoons_title', locale)}

{ts('fullmoons_subtitle', locale)}

{fullMoons.map((moon, i) => { const name = FULL_MOON_NAMES[moon.month]?.[locale as keyof typeof FULL_MOON_NAMES[1]] || FULL_MOON_NAMES[moon.month]?.en; const desc = MOON_DESCRIPTIONS[moon.month]?.[lang] || MOON_DESCRIPTIONS[moon.month]?.['en']; const monthName = moon.date.toLocaleDateString(locale, { month: 'long' }); return (
🌕

{name}

{monthName} {year}

{moon.date.toLocaleDateString(locale, { day: 'numeric', month: 'short' })} —{' '} {moon.date.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' })}

{desc && (

🌍 {ts('culture_native', locale)}

{desc.cultural}

🌊 {ts('effects_title', locale)}

{desc.effects}

🧘 Ritual

{desc.ritual}

)}
); })}
); }