@jjlmoya/utils-creative 1.26.0 → 1.28.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 (133) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +2 -2
  3. package/src/category/i18n/en.ts +2 -2
  4. package/src/category/i18n/es.ts +2 -2
  5. package/src/category/i18n/fr.ts +2 -2
  6. package/src/category/i18n/id.ts +2 -2
  7. package/src/category/i18n/it.ts +2 -2
  8. package/src/category/i18n/ja.ts +2 -2
  9. package/src/category/i18n/ko.ts +2 -2
  10. package/src/category/i18n/nl.ts +2 -2
  11. package/src/category/i18n/pl.ts +2 -2
  12. package/src/category/i18n/pt.ts +2 -2
  13. package/src/category/i18n/ru.ts +2 -2
  14. package/src/category/i18n/sv.ts +2 -2
  15. package/src/category/i18n/tr.ts +2 -2
  16. package/src/category/i18n/zh.ts +2 -2
  17. package/src/category/seo.astro +1 -1
  18. package/src/components/PreviewNavSidebar.astro +1 -1
  19. package/src/components/PreviewToolbar.astro +1 -1
  20. package/src/env.d.ts +1 -1
  21. package/src/pages/index.astro +1 -1
  22. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  23. package/src/tests/category_seo_quality.test.ts +74 -0
  24. package/src/tests/faq_count.test.ts +1 -1
  25. package/src/tests/mocks/astro_mock.js +1 -1
  26. package/src/tests/no_h1_in_components.test.ts +1 -1
  27. package/src/tests/seo_parity.test.ts +2 -2
  28. package/src/tests/seo_translation_completeness.test.ts +75 -0
  29. package/src/tests/seo_wellformed_export.test.ts +65 -0
  30. package/src/tests/tool_validation.test.ts +17 -17
  31. package/src/tool/bead-pattern-generator/bibliography.astro +8 -8
  32. package/src/tool/bead-pattern-generator/i18n/de.ts +111 -111
  33. package/src/tool/bead-pattern-generator/i18n/en.ts +111 -111
  34. package/src/tool/bead-pattern-generator/i18n/es.ts +104 -104
  35. package/src/tool/bead-pattern-generator/i18n/fr.ts +111 -111
  36. package/src/tool/bead-pattern-generator/i18n/id.ts +111 -111
  37. package/src/tool/bead-pattern-generator/i18n/it.ts +111 -111
  38. package/src/tool/bead-pattern-generator/i18n/ja.ts +111 -111
  39. package/src/tool/bead-pattern-generator/i18n/ko.ts +111 -111
  40. package/src/tool/bead-pattern-generator/i18n/nl.ts +111 -111
  41. package/src/tool/bead-pattern-generator/i18n/pl.ts +111 -111
  42. package/src/tool/bead-pattern-generator/i18n/pt.ts +111 -111
  43. package/src/tool/bead-pattern-generator/i18n/ru.ts +111 -111
  44. package/src/tool/bead-pattern-generator/i18n/sv.ts +111 -111
  45. package/src/tool/bead-pattern-generator/i18n/tr.ts +111 -111
  46. package/src/tool/bead-pattern-generator/i18n/zh.ts +111 -111
  47. package/src/tool/bead-pattern-generator/seo.astro +19 -19
  48. package/src/tool/dice-roller/bibliography.astro +8 -8
  49. package/src/tool/dice-roller/i18n/de.ts +134 -134
  50. package/src/tool/dice-roller/i18n/en.ts +134 -134
  51. package/src/tool/dice-roller/i18n/es.ts +125 -125
  52. package/src/tool/dice-roller/i18n/fr.ts +134 -134
  53. package/src/tool/dice-roller/i18n/id.ts +134 -134
  54. package/src/tool/dice-roller/i18n/it.ts +134 -134
  55. package/src/tool/dice-roller/i18n/ja.ts +134 -134
  56. package/src/tool/dice-roller/i18n/ko.ts +134 -134
  57. package/src/tool/dice-roller/i18n/nl.ts +134 -134
  58. package/src/tool/dice-roller/i18n/pl.ts +134 -134
  59. package/src/tool/dice-roller/i18n/pt.ts +134 -134
  60. package/src/tool/dice-roller/i18n/ru.ts +134 -134
  61. package/src/tool/dice-roller/i18n/sv.ts +134 -134
  62. package/src/tool/dice-roller/i18n/tr.ts +134 -134
  63. package/src/tool/dice-roller/i18n/zh.ts +134 -134
  64. package/src/tool/dice-roller/seo.astro +15 -15
  65. package/src/tool/excuse-generator/bibliography.astro +8 -8
  66. package/src/tool/excuse-generator/i18n/de.ts +120 -120
  67. package/src/tool/excuse-generator/i18n/en.ts +120 -120
  68. package/src/tool/excuse-generator/i18n/es.ts +118 -118
  69. package/src/tool/excuse-generator/i18n/fr.ts +120 -120
  70. package/src/tool/excuse-generator/i18n/id.ts +120 -120
  71. package/src/tool/excuse-generator/i18n/it.ts +120 -120
  72. package/src/tool/excuse-generator/i18n/ja.ts +120 -120
  73. package/src/tool/excuse-generator/i18n/ko.ts +120 -120
  74. package/src/tool/excuse-generator/i18n/nl.ts +120 -120
  75. package/src/tool/excuse-generator/i18n/pl.ts +120 -120
  76. package/src/tool/excuse-generator/i18n/pt.ts +120 -120
  77. package/src/tool/excuse-generator/i18n/ru.ts +120 -120
  78. package/src/tool/excuse-generator/i18n/sv.ts +120 -120
  79. package/src/tool/excuse-generator/i18n/tr.ts +120 -120
  80. package/src/tool/excuse-generator/i18n/zh.ts +120 -120
  81. package/src/tool/excuse-generator/seo.astro +15 -15
  82. package/src/tool/fortune-cookie/bibliography.astro +8 -8
  83. package/src/tool/fortune-cookie/i18n/de.ts +124 -124
  84. package/src/tool/fortune-cookie/i18n/en.ts +124 -124
  85. package/src/tool/fortune-cookie/i18n/es.ts +125 -125
  86. package/src/tool/fortune-cookie/i18n/fr.ts +124 -124
  87. package/src/tool/fortune-cookie/i18n/id.ts +124 -124
  88. package/src/tool/fortune-cookie/i18n/it.ts +124 -124
  89. package/src/tool/fortune-cookie/i18n/ja.ts +124 -124
  90. package/src/tool/fortune-cookie/i18n/ko.ts +124 -124
  91. package/src/tool/fortune-cookie/i18n/nl.ts +124 -124
  92. package/src/tool/fortune-cookie/i18n/pl.ts +124 -124
  93. package/src/tool/fortune-cookie/i18n/pt.ts +124 -124
  94. package/src/tool/fortune-cookie/i18n/ru.ts +124 -124
  95. package/src/tool/fortune-cookie/i18n/sv.ts +124 -124
  96. package/src/tool/fortune-cookie/i18n/tr.ts +124 -124
  97. package/src/tool/fortune-cookie/i18n/zh.ts +124 -124
  98. package/src/tool/fortune-cookie/seo.astro +15 -15
  99. package/src/tool/synesthesia-painter/bibliography.astro +8 -8
  100. package/src/tool/synesthesia-painter/i18n/de.ts +118 -118
  101. package/src/tool/synesthesia-painter/i18n/en.ts +118 -118
  102. package/src/tool/synesthesia-painter/i18n/es.ts +110 -110
  103. package/src/tool/synesthesia-painter/i18n/fr.ts +118 -118
  104. package/src/tool/synesthesia-painter/i18n/id.ts +118 -118
  105. package/src/tool/synesthesia-painter/i18n/it.ts +118 -118
  106. package/src/tool/synesthesia-painter/i18n/ja.ts +118 -118
  107. package/src/tool/synesthesia-painter/i18n/ko.ts +118 -118
  108. package/src/tool/synesthesia-painter/i18n/nl.ts +118 -118
  109. package/src/tool/synesthesia-painter/i18n/pl.ts +118 -118
  110. package/src/tool/synesthesia-painter/i18n/pt.ts +118 -118
  111. package/src/tool/synesthesia-painter/i18n/ru.ts +118 -118
  112. package/src/tool/synesthesia-painter/i18n/sv.ts +118 -118
  113. package/src/tool/synesthesia-painter/i18n/tr.ts +118 -118
  114. package/src/tool/synesthesia-painter/i18n/zh.ts +118 -118
  115. package/src/tool/synesthesia-painter/seo.astro +15 -15
  116. package/src/tool/zalgo-generator/bibliography.astro +8 -8
  117. package/src/tool/zalgo-generator/i18n/de.ts +109 -109
  118. package/src/tool/zalgo-generator/i18n/en.ts +109 -109
  119. package/src/tool/zalgo-generator/i18n/es.ts +109 -109
  120. package/src/tool/zalgo-generator/i18n/fr.ts +109 -109
  121. package/src/tool/zalgo-generator/i18n/id.ts +109 -109
  122. package/src/tool/zalgo-generator/i18n/it.ts +109 -109
  123. package/src/tool/zalgo-generator/i18n/ja.ts +109 -109
  124. package/src/tool/zalgo-generator/i18n/ko.ts +109 -109
  125. package/src/tool/zalgo-generator/i18n/nl.ts +109 -109
  126. package/src/tool/zalgo-generator/i18n/pl.ts +109 -109
  127. package/src/tool/zalgo-generator/i18n/pt.ts +109 -109
  128. package/src/tool/zalgo-generator/i18n/ru.ts +109 -109
  129. package/src/tool/zalgo-generator/i18n/sv.ts +109 -109
  130. package/src/tool/zalgo-generator/i18n/tr.ts +109 -109
  131. package/src/tool/zalgo-generator/i18n/zh.ts +109 -109
  132. package/src/tool/zalgo-generator/seo.astro +15 -15
  133. package/src/types.ts +1 -1
@@ -1,124 +1,124 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { FortuneCookieLocaleContent } from '../index';
3
- import { bibliography } from '../bibliography';
4
-
5
- const slug = 'ciasteczko-z-wrozba-online';
6
- const title = 'Ciasteczko z Wróżbą';
7
- const description = 'Sprawdź swoje dzienne przeznaczenie i odkryj swoje szczęśliwe liczby. Jedna wróżba dziennie, ujawniona jednym kliknięciem.';
8
-
9
- const faq: FortuneCookieLocaleContent['faq'] = [
10
- {
11
- question: 'Czy mogę otworzyć więcej niż jedno ciasteczko dziennie?',
12
- answer: 'Przeznaczenie przemawia tylko raz dziennie. Zapisujemy Twoją wróżbę na urządzeniu, aby prowadziła Cię przez cały dzień.'
13
- },
14
- {
15
- question: 'Czy wróżby są generowane losowo?',
16
- answer: 'Tak - każdego dnia wybierana jest losowa wróżba i zapisywana lokalnie. Każda z 25 wróżb ma taką samą szansę na bycie wybraną, co zapewnia różnorodność w czasie.'
17
- }
18
- ];
19
-
20
- const howTo: FortuneCookieLocaleContent['howTo'] = [
21
- { name: 'Przełam ciasteczko', text: 'Klikaj wielokrotnie w ciasteczko, aby je otworzyć.' },
22
- { name: 'Odczytaj wróżbę', text: 'Odkryj ukrytą w środku wiadomość oraz swoje szczęśliwe liczby na dziś.' }
23
- ];
24
-
25
- const faqSchema: WithContext<FAQPage> = {
26
- '@context': 'https://schema.org',
27
- '@type': 'FAQPage',
28
- mainEntity: faq.map((item) => ({
29
- '@type': 'Question',
30
- name: item.question,
31
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
32
- })),
33
- };
34
-
35
- const howToSchema: WithContext<HowTo> = {
36
- '@context': 'https://schema.org',
37
- '@type': 'HowTo',
38
- name: title,
39
- description,
40
- step: howTo.map((step) => ({
41
- '@type': 'HowToStep',
42
- name: step.name,
43
- text: step.text,
44
- })),
45
- };
46
-
47
- const appSchema: WithContext<SoftwareApplication> = {
48
- '@context': 'https://schema.org',
49
- '@type': 'SoftwareApplication',
50
- name: title,
51
- description,
52
- applicationCategory: 'UtilitiesApplication',
53
- operatingSystem: 'Web',
54
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
55
- inLanguage: 'pl',
56
- };
57
-
58
- export const content: FortuneCookieLocaleContent = {
59
- slug,
60
- title,
61
- description,
62
- faqTitle: 'Najczęściej Zadawane Pytania',
63
- ui: {
64
- title: 'Ciasteczko z Wróżbą Online',
65
- description: 'Twoja codzienna cyfrowa wyrocznia.',
66
- instruction: 'Uderz w ciasteczko, aby otworzyć swoje przeznaczenie',
67
- dailyStatus: 'Twoje przeznaczenie zostało dziś ujawnione.',
68
- shareBtn: 'Podziel się mądrością',
69
- shareTitle: 'Moje Ciasteczko z Wróżbą',
70
- shareText: 'Przeznaczenie przemówiło: "$TEXT"\nMoje liczby: $NUMS\n\nOdkryj swoją wróżbę tutaj:',
71
- copied: 'Skopiowano!',
72
- fortunes: JSON.stringify([
73
- "Szczęście, którego szukasz, jest w innym ciasteczku.",
74
- "Nie licz dni, spraw, by dni się liczyły.",
75
- "Podróż tysiąca mil zaczyna się od jednego kroku.",
76
- "Błąd jest wstępem do odkrycia.",
77
- "Twoja zdolność do uczenia się jest Twoim największym atutem.",
78
- "Uśmiechnij się, wszechświat na Ciebie patrzy.",
79
- "Cierpliwość to drzewo o gorzkim korzeniu, ale bardzo słodkich owocach.",
80
- "Nie bój się rosnąć powoli, bój się jedynie stania w miejscu.",
81
- "Dzisiaj jest jutro, o które martwiłeś się wczoraj.",
82
- "Szczęście nie jest czymś gotowym. Pochodzi z Twoich własnych działań.",
83
- "Jeśli nie możesz zmienić kierunku wiatru, dostosuj żagle.",
84
- "To, co zasiejesz teraz, zbierzesz później.",
85
- "Kreatywność to inteligencja, która dobrze się bawi.",
86
- "Nie szukaj błędów, szukaj rozwiązań.",
87
- "Twoje nastawienie, a nie Twoje uzdolnienia, określi Twoją wysokość.",
88
- "Sukces to suma małych wysiłków powtarzanych dzień po dniu.",
89
- "Uwierz, że możesz, a będziesz w połowie drogi.",
90
- "Jedynym sposobem na wykonywanie świetnej pracy jest kochanie tego, co się robi.",
91
- "Życie to w 10% to, co Ci się przydarza, a w 90% to, jak na to reagujesz.",
92
- "Bądź zmianą, którą chcesz widzieć w świecie.",
93
- "Najlepszym sposobem na przewidzenie przyszłości jest jej wynalezienie.",
94
- "Prostota jest szczytem wyrafinowania.",
95
- "Jesteś panem swojego losu i kapitanem swojej duszy.",
96
- "Wkrótce otrzymasz wieści, które zmienią Twoją perspektywę.",
97
- "Nieoczekiwana podróż przyniesie Ci wielkie radości."
98
- ]),
99
- faqTitle: 'FAQ',
100
- },
101
- seo: [
102
- { type: 'title', text: 'Tajemnica ciasteczka z wróżbą', level: 2 },
103
- { type: 'paragraph', html: 'Zastanawiałeś się kiedyś, skąd wzięły się te osobliwe ciasteczka? Chociaż kojarzymy je z chińskim jedzeniem, ich pochodzenie to fascynująca podróż między Japonią a Stanami Zjednoczonymi. Ciasteczko z wróżbą, jakie znamy dzisiaj, zostało prawdopodobnie wynalezione w Kalifornii na początku XX wieku, a nie w Chinach - gdzie są praktycznie nieznane.' },
104
- { type: 'tip', title: 'Jak działa nasza Wyrocznia', html: 'Każdego dnia możesz otworzyć jedno ciasteczko. System zapisuje Twoje przeznaczenie, abyś mógł o nim pamiętać przez 24 godziny. Wróżba jest przechowywana lokalnie w Twojej przeglądarce - całkowicie prywatnie, bez udziału serwera. Wróć jutro po nową przepowiednię!' },
105
- { type: 'title', text: 'Filozofia Wyroczni', level: 3 },
106
- { type: 'paragraph', html: 'Ludzie zawsze szukali wskazówek w niepewnych czasach. Od Wyroczni Delfickiej po I Czing, systemy wróżbiarskie pełnią stałą funkcję psychologiczną: dają nam przyzwolenie na <strong>chwilę zatrzymania i refleksji</strong>. Ciasteczko z wróżbą nie przewiduje przyszłości - skłania Cię do myślenia o niej.' },
107
- { type: 'list', items: [
108
- '<strong>Starożytne Chiny:</strong> I Czing (Księga Przemian, ok. 1000 r. p.n.e.) wykorzystywał heksagramy do kierowania decyzjami i interpretowania losu.',
109
- '<strong>Klasyczna Grecja:</strong> Wyrocznia Delficka przyciągała zarówno władców, jak i obywateli swoimi tajemniczymi wypowiedziami, interpretowanymi jako boskie wskazówki.',
110
- '<strong>Współczesna Japonia:</strong> Bileciki z wróżbą Omikuji w chramach shintoistycznych, przywiązywane do gałęzi drzew, łączą los z rytuałem.',
111
- '<strong>Stany Zjednoczone XX wieku:</strong> Ciasteczka z wróżbą pojawiły się w społecznościach japońsko-amerykańskich, zanim stały się synonimem kuchni chińsko-amerykańskiej.'
112
- ]},
113
- { type: 'stats', items: [
114
- { value: '3 mld+', label: 'Ciasteczek produkowanych rocznie', icon: 'mdi:cookie' },
115
- { value: 'ok. 1000 p.n.e.', label: 'Pochodzenie I Czing', icon: 'mdi:book-open-variant' },
116
- { value: '25', label: 'Wróżb w tej wyroczni', icon: 'mdi:star-shooting' },
117
- { value: '1/dzień', label: 'Jedno przeznaczenie na dobę', icon: 'mdi:calendar-today' }
118
- ], columns: 4 },
119
- ],
120
- faq,
121
- bibliography,
122
- howTo,
123
- schemas: [faqSchema as any, howToSchema as any, appSchema],
124
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { FortuneCookieLocaleContent } from '../index';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'ciasteczko-z-wrozba-online';
6
+ const title = 'Ciasteczko z Wróżbą';
7
+ const description = 'Sprawdź swoje dzienne przeznaczenie i odkryj swoje szczęśliwe liczby. Jedna wróżba dziennie, ujawniona jednym kliknięciem.';
8
+
9
+ const faq: FortuneCookieLocaleContent['faq'] = [
10
+ {
11
+ question: 'Czy mogę otworzyć więcej niż jedno ciasteczko dziennie?',
12
+ answer: 'Przeznaczenie przemawia tylko raz dziennie. Zapisujemy Twoją wróżbę na urządzeniu, aby prowadziła Cię przez cały dzień.'
13
+ },
14
+ {
15
+ question: 'Czy wróżby są generowane losowo?',
16
+ answer: 'Tak - każdego dnia wybierana jest losowa wróżba i zapisywana lokalnie. Każda z 25 wróżb ma taką samą szansę na bycie wybraną, co zapewnia różnorodność w czasie.'
17
+ }
18
+ ];
19
+
20
+ const howTo: FortuneCookieLocaleContent['howTo'] = [
21
+ { name: 'Przełam ciasteczko', text: 'Klikaj wielokrotnie w ciasteczko, aby je otworzyć.' },
22
+ { name: 'Odczytaj wróżbę', text: 'Odkryj ukrytą w środku wiadomość oraz swoje szczęśliwe liczby na dziś.' }
23
+ ];
24
+
25
+ const faqSchema: WithContext<FAQPage> = {
26
+ '@context': 'https://schema.org',
27
+ '@type': 'FAQPage',
28
+ mainEntity: faq.map((item) => ({
29
+ '@type': 'Question',
30
+ name: item.question,
31
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
32
+ })),
33
+ };
34
+
35
+ const howToSchema: WithContext<HowTo> = {
36
+ '@context': 'https://schema.org',
37
+ '@type': 'HowTo',
38
+ name: title,
39
+ description,
40
+ step: howTo.map((step) => ({
41
+ '@type': 'HowToStep',
42
+ name: step.name,
43
+ text: step.text,
44
+ })),
45
+ };
46
+
47
+ const appSchema: WithContext<SoftwareApplication> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'SoftwareApplication',
50
+ name: title,
51
+ description,
52
+ applicationCategory: 'UtilitiesApplication',
53
+ operatingSystem: 'Web',
54
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
55
+ inLanguage: 'pl',
56
+ };
57
+
58
+ export const content: FortuneCookieLocaleContent = {
59
+ slug,
60
+ title,
61
+ description,
62
+ faqTitle: 'Najczęściej Zadawane Pytania',
63
+ ui: {
64
+ title: 'Ciasteczko z Wróżbą Online',
65
+ description: 'Twoja codzienna cyfrowa wyrocznia.',
66
+ instruction: 'Uderz w ciasteczko, aby otworzyć swoje przeznaczenie',
67
+ dailyStatus: 'Twoje przeznaczenie zostało dziś ujawnione.',
68
+ shareBtn: 'Podziel się mądrością',
69
+ shareTitle: 'Moje Ciasteczko z Wróżbą',
70
+ shareText: 'Przeznaczenie przemówiło: "$TEXT"\nMoje liczby: $NUMS\n\nOdkryj swoją wróżbę tutaj:',
71
+ copied: 'Skopiowano!',
72
+ fortunes: JSON.stringify([
73
+ "Szczęście, którego szukasz, jest w innym ciasteczku.",
74
+ "Nie licz dni, spraw, by dni się liczyły.",
75
+ "Podróż tysiąca mil zaczyna się od jednego kroku.",
76
+ "Błąd jest wstępem do odkrycia.",
77
+ "Twoja zdolność do uczenia się jest Twoim największym atutem.",
78
+ "Uśmiechnij się, wszechświat na Ciebie patrzy.",
79
+ "Cierpliwość to drzewo o gorzkim korzeniu, ale bardzo słodkich owocach.",
80
+ "Nie bój się rosnąć powoli, bój się jedynie stania w miejscu.",
81
+ "Dzisiaj jest jutro, o które martwiłeś się wczoraj.",
82
+ "Szczęście nie jest czymś gotowym. Pochodzi z Twoich własnych działań.",
83
+ "Jeśli nie możesz zmienić kierunku wiatru, dostosuj żagle.",
84
+ "To, co zasiejesz teraz, zbierzesz później.",
85
+ "Kreatywność to inteligencja, która dobrze się bawi.",
86
+ "Nie szukaj błędów, szukaj rozwiązań.",
87
+ "Twoje nastawienie, a nie Twoje uzdolnienia, określi Twoją wysokość.",
88
+ "Sukces to suma małych wysiłków powtarzanych dzień po dniu.",
89
+ "Uwierz, że możesz, a będziesz w połowie drogi.",
90
+ "Jedynym sposobem na wykonywanie świetnej pracy jest kochanie tego, co się robi.",
91
+ "Życie to w 10% to, co Ci się przydarza, a w 90% to, jak na to reagujesz.",
92
+ "Bądź zmianą, którą chcesz widzieć w świecie.",
93
+ "Najlepszym sposobem na przewidzenie przyszłości jest jej wynalezienie.",
94
+ "Prostota jest szczytem wyrafinowania.",
95
+ "Jesteś panem swojego losu i kapitanem swojej duszy.",
96
+ "Wkrótce otrzymasz wieści, które zmienią Twoją perspektywę.",
97
+ "Nieoczekiwana podróż przyniesie Ci wielkie radości."
98
+ ]),
99
+ faqTitle: 'FAQ',
100
+ },
101
+ seo: [
102
+ { type: 'title', text: 'Tajemnica ciasteczka z wróżbą', level: 2 },
103
+ { type: 'paragraph', html: 'Zastanawiałeś się kiedyś, skąd wzięły się te osobliwe ciasteczka? Chociaż kojarzymy je z chińskim jedzeniem, ich pochodzenie to fascynująca podróż między Japonią a Stanami Zjednoczonymi. Ciasteczko z wróżbą, jakie znamy dzisiaj, zostało prawdopodobnie wynalezione w Kalifornii na początku XX wieku, a nie w Chinach - gdzie są praktycznie nieznane.' },
104
+ { type: 'tip', title: 'Jak działa nasza Wyrocznia', html: 'Każdego dnia możesz otworzyć jedno ciasteczko. System zapisuje Twoje przeznaczenie, abyś mógł o nim pamiętać przez 24 godziny. Wróżba jest przechowywana lokalnie w Twojej przeglądarce - całkowicie prywatnie, bez udziału serwera. Wróć jutro po nową przepowiednię!' },
105
+ { type: 'title', text: 'Filozofia Wyroczni', level: 3 },
106
+ { type: 'paragraph', html: 'Ludzie zawsze szukali wskazówek w niepewnych czasach. Od Wyroczni Delfickiej po I Czing, systemy wróżbiarskie pełnią stałą funkcję psychologiczną: dają nam przyzwolenie na <strong>chwilę zatrzymania i refleksji</strong>. Ciasteczko z wróżbą nie przewiduje przyszłości - skłania Cię do myślenia o niej.' },
107
+ { type: 'list', items: [
108
+ '<strong>Starożytne Chiny:</strong> I Czing (Księga Przemian, ok. 1000 r. p.n.e.) wykorzystywał heksagramy do kierowania decyzjami i interpretowania losu.',
109
+ '<strong>Klasyczna Grecja:</strong> Wyrocznia Delficka przyciągała zarówno władców, jak i obywateli swoimi tajemniczymi wypowiedziami, interpretowanymi jako boskie wskazówki.',
110
+ '<strong>Współczesna Japonia:</strong> Bileciki z wróżbą Omikuji w chramach shintoistycznych, przywiązywane do gałęzi drzew, łączą los z rytuałem.',
111
+ '<strong>Stany Zjednoczone XX wieku:</strong> Ciasteczka z wróżbą pojawiły się w społecznościach japońsko-amerykańskich, zanim stały się synonimem kuchni chińsko-amerykańskiej.'
112
+ ]},
113
+ { type: 'stats', items: [
114
+ { value: '3 mld+', label: 'Ciasteczek produkowanych rocznie', icon: 'mdi:cookie' },
115
+ { value: 'ok. 1000 p.n.e.', label: 'Pochodzenie I Czing', icon: 'mdi:book-open-variant' },
116
+ { value: '25', label: 'Wróżb w tej wyroczni', icon: 'mdi:star-shooting' },
117
+ { value: '1/dzień', label: 'Jedno przeznaczenie na dobę', icon: 'mdi:calendar-today' }
118
+ ], columns: 4 },
119
+ ],
120
+ faq,
121
+ bibliography,
122
+ howTo,
123
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
124
+ };
@@ -1,124 +1,124 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { FortuneCookieLocaleContent } from '../index';
3
- import { bibliography } from '../bibliography';
4
-
5
- const slug = 'biscoito-da-sorte-online';
6
- const title = 'Biscoito da Sorte';
7
- const description = 'Verifique o seu destino diário e descubra os seus números da sorte. Um biscoito por dia, revelado com um clique.';
8
-
9
- const faq: FortuneCookieLocaleContent['faq'] = [
10
- {
11
- question: 'Posso abrir mais do que um biscoito por dia?',
12
- answer: 'O destino fala apenas uma vez por dia. Guardamos a sua sorte no dispositivo para que o guie ao longo do dia.'
13
- },
14
- {
15
- question: 'As frases são geradas aleatoriamente?',
16
- answer: 'Sim - uma sorte aleatória é selecionada a cada dia e guardada localmente. Cada uma das 25 frases tem a mesma probabilidade de ser escolhida, garantindo variedade ao longo do tempo.'
17
- }
18
- ];
19
-
20
- const howTo: FortuneCookieLocaleContent['howTo'] = [
21
- { name: 'Partir o biscoito', text: 'Clique repetidamente no biscoito para o abrir.' },
22
- { name: 'Ler a sua sorte', text: 'Descubra a mensagem oculta no interior e os seus números da sorte para o dia.' }
23
- ];
24
-
25
- const faqSchema: WithContext<FAQPage> = {
26
- '@context': 'https://schema.org',
27
- '@type': 'FAQPage',
28
- mainEntity: faq.map((item) => ({
29
- '@type': 'Question',
30
- name: item.question,
31
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
32
- })),
33
- };
34
-
35
- const howToSchema: WithContext<HowTo> = {
36
- '@context': 'https://schema.org',
37
- '@type': 'HowTo',
38
- name: title,
39
- description,
40
- step: howTo.map((step) => ({
41
- '@type': 'HowToStep',
42
- name: step.name,
43
- text: step.text,
44
- })),
45
- };
46
-
47
- const appSchema: WithContext<SoftwareApplication> = {
48
- '@context': 'https://schema.org',
49
- '@type': 'SoftwareApplication',
50
- name: title,
51
- description,
52
- applicationCategory: 'UtilitiesApplication',
53
- operatingSystem: 'Web',
54
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
55
- inLanguage: 'pt',
56
- };
57
-
58
- export const content: FortuneCookieLocaleContent = {
59
- slug,
60
- title,
61
- description,
62
- faqTitle: 'Perguntas Frequentes',
63
- ui: {
64
- title: 'Biscoito da Sorte Online',
65
- description: 'O seu oráculo digital diário.',
66
- instruction: 'Bata no biscoito para abrir o seu destino',
67
- dailyStatus: 'O seu destino foi revelado para hoje.',
68
- shareBtn: 'Partilhar Sabedoria',
69
- shareTitle: 'O Meu Biscoito da Sorte',
70
- shareText: 'O destino falou: "$TEXT"\nOs meus números: $NUMS\n\nDescubra a sua sorte aqui:',
71
- copied: 'Copiado!',
72
- fortunes: JSON.stringify([
73
- "A sorte que procura está noutro biscoito.",
74
- "Não conte os dias, faça os dias valerem a pena.",
75
- "Uma viagem de mil milhas começa com um único passo.",
76
- "O erro é o preâmbulo da descoberta.",
77
- "A sua capacidade de aprender é o seu maior trunfo.",
78
- "Sorria, o universo está a olhar para si.",
79
- "A paciência é uma árvore com uma raiz amarga, mas frutos muito doces.",
80
- "Não tenha medo de crescer lentamente, tenha medo apenas de ficar parado.",
81
- "Hoje é o amanhã com que se preocupou ontem.",
82
- "A felicidade não é algo pronto. Ela vem das suas próprias ações.",
83
- "Se não puder mudar a direção do vento, ajuste as suas velas.",
84
- "O que plantar agora, colherá mais tarde.",
85
- "Criatividade é a inteligência a divertir-se.",
86
- "Não procure erros, procure soluções.",
87
- "A sua atitude, não a sua aptidão, determinará a sua altitude.",
88
- "O sucesso é a soma de pequenos esforços repetidos dia após dia.",
89
- "Acredite que consegue e estará a meio caminho.",
90
- "A única maneira de fazer um excelente trabalho é amar o que faz.",
91
- "A vida é 10% o que lhe acontece e 90% como reage a isso.",
92
- "Seja a mudança que quer ver no mundo.",
93
- "A melhor maneira de prever o futuro é inventá-lo.",
94
- "Simplicidade é a sofisticação máxima.",
95
- "É o mestre do seu destino e o capitão da sua alma.",
96
- "Em breve receberá notícias que mudarão a sua perspetiva.",
97
- "Uma viagem inesperada trar-lhe-á grandes alegrias."
98
- ]),
99
- faqTitle: 'FAQ',
100
- },
101
- seo: [
102
- { type: 'title', text: 'O Mistério do Biscoito da Sorte', level: 2 },
103
- { type: 'paragraph', html: 'Já se perguntou de onde vêm estes curiosos biscoitos? Embora os associemos à comida chinesa, a sua origem é uma viagem fascinante entre o Japão e os Estados Unidos. O biscoito da sorte como o conhecemos hoje foi provavelmente inventado na Califórnia do início do século XX, não na China - onde são praticamente desconhecidos.' },
104
- { type: 'tip', title: 'Como Funciona o Nosso Oráculo', html: 'Cada dia pode abrir um biscoito. O sistema guarda o seu destino para que se lembre dele durante 24 horas. A sorte é guardada localmente no seu navegador - completamente privada, sem servidores envolvidos. Volte amanhã para uma nova previsão!' },
105
- { type: 'title', text: 'A Filosofia dos Oráculos', level: 3 },
106
- { type: 'paragraph', html: 'Os seres humanos sempre procuraram orientação em tempos de incerteza. Do Oráculo de Delfos ao I Ching, os sistemas de adivinhação cumprem uma função psicológica consistente: dão-nos permissão para <strong>parar e refletir</strong>. Um biscoito da sorte não prevê o futuro - incentiva-o a pensar sobre ele.' },
107
- { type: 'list', items: [
108
- '<strong>China Antiga:</strong> O I Ching (Livro das Mutações, ~1000 a.C.) utilizava hexagramas para guiar decisões e interpretar o destino.',
109
- '<strong>Grécia Clássica:</strong> O Oráculo de Delfos atraía governantes e cidadãos com pronunciamentos crípticos interpretados como orientação divina.',
110
- '<strong>Japão Moderno:</strong> As tiras da sorte Omikuji nos santuários xintoístas, atadas a ramos de árvores, misturam o fado com o ritual.',
111
- '<strong>EUA Século XX:</strong> Os biscoitos da sorte surgiram nas comunidades nipo-americanas antes de se tornarem sinónimo da gastronomia sino-americana.'
112
- ]},
113
- { type: 'stats', items: [
114
- { value: '3 mil milhões+', label: 'Biscoitos da sorte feitos anualmente', icon: 'mdi:cookie' },
115
- { value: '~1000 a.C.', label: 'Origem do I Ching', icon: 'mdi:book-open-variant' },
116
- { value: '25', label: 'Frases neste oráculo', icon: 'mdi:star-shooting' },
117
- { value: '1/dia', label: 'Um destino por dia', icon: 'mdi:calendar-today' }
118
- ], columns: 4 },
119
- ],
120
- faq,
121
- bibliography,
122
- howTo,
123
- schemas: [faqSchema as any, howToSchema as any, appSchema],
124
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { FortuneCookieLocaleContent } from '../index';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'biscoito-da-sorte-online';
6
+ const title = 'Biscoito da Sorte';
7
+ const description = 'Verifique o seu destino diário e descubra os seus números da sorte. Um biscoito por dia, revelado com um clique.';
8
+
9
+ const faq: FortuneCookieLocaleContent['faq'] = [
10
+ {
11
+ question: 'Posso abrir mais do que um biscoito por dia?',
12
+ answer: 'O destino fala apenas uma vez por dia. Guardamos a sua sorte no dispositivo para que o guie ao longo do dia.'
13
+ },
14
+ {
15
+ question: 'As frases são geradas aleatoriamente?',
16
+ answer: 'Sim - uma sorte aleatória é selecionada a cada dia e guardada localmente. Cada uma das 25 frases tem a mesma probabilidade de ser escolhida, garantindo variedade ao longo do tempo.'
17
+ }
18
+ ];
19
+
20
+ const howTo: FortuneCookieLocaleContent['howTo'] = [
21
+ { name: 'Partir o biscoito', text: 'Clique repetidamente no biscoito para o abrir.' },
22
+ { name: 'Ler a sua sorte', text: 'Descubra a mensagem oculta no interior e os seus números da sorte para o dia.' }
23
+ ];
24
+
25
+ const faqSchema: WithContext<FAQPage> = {
26
+ '@context': 'https://schema.org',
27
+ '@type': 'FAQPage',
28
+ mainEntity: faq.map((item) => ({
29
+ '@type': 'Question',
30
+ name: item.question,
31
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
32
+ })),
33
+ };
34
+
35
+ const howToSchema: WithContext<HowTo> = {
36
+ '@context': 'https://schema.org',
37
+ '@type': 'HowTo',
38
+ name: title,
39
+ description,
40
+ step: howTo.map((step) => ({
41
+ '@type': 'HowToStep',
42
+ name: step.name,
43
+ text: step.text,
44
+ })),
45
+ };
46
+
47
+ const appSchema: WithContext<SoftwareApplication> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'SoftwareApplication',
50
+ name: title,
51
+ description,
52
+ applicationCategory: 'UtilitiesApplication',
53
+ operatingSystem: 'Web',
54
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
55
+ inLanguage: 'pt',
56
+ };
57
+
58
+ export const content: FortuneCookieLocaleContent = {
59
+ slug,
60
+ title,
61
+ description,
62
+ faqTitle: 'Perguntas Frequentes',
63
+ ui: {
64
+ title: 'Biscoito da Sorte Online',
65
+ description: 'O seu oráculo digital diário.',
66
+ instruction: 'Bata no biscoito para abrir o seu destino',
67
+ dailyStatus: 'O seu destino foi revelado para hoje.',
68
+ shareBtn: 'Partilhar Sabedoria',
69
+ shareTitle: 'O Meu Biscoito da Sorte',
70
+ shareText: 'O destino falou: "$TEXT"\nOs meus números: $NUMS\n\nDescubra a sua sorte aqui:',
71
+ copied: 'Copiado!',
72
+ fortunes: JSON.stringify([
73
+ "A sorte que procura está noutro biscoito.",
74
+ "Não conte os dias, faça os dias valerem a pena.",
75
+ "Uma viagem de mil milhas começa com um único passo.",
76
+ "O erro é o preâmbulo da descoberta.",
77
+ "A sua capacidade de aprender é o seu maior trunfo.",
78
+ "Sorria, o universo está a olhar para si.",
79
+ "A paciência é uma árvore com uma raiz amarga, mas frutos muito doces.",
80
+ "Não tenha medo de crescer lentamente, tenha medo apenas de ficar parado.",
81
+ "Hoje é o amanhã com que se preocupou ontem.",
82
+ "A felicidade não é algo pronto. Ela vem das suas próprias ações.",
83
+ "Se não puder mudar a direção do vento, ajuste as suas velas.",
84
+ "O que plantar agora, colherá mais tarde.",
85
+ "Criatividade é a inteligência a divertir-se.",
86
+ "Não procure erros, procure soluções.",
87
+ "A sua atitude, não a sua aptidão, determinará a sua altitude.",
88
+ "O sucesso é a soma de pequenos esforços repetidos dia após dia.",
89
+ "Acredite que consegue e estará a meio caminho.",
90
+ "A única maneira de fazer um excelente trabalho é amar o que faz.",
91
+ "A vida é 10% o que lhe acontece e 90% como reage a isso.",
92
+ "Seja a mudança que quer ver no mundo.",
93
+ "A melhor maneira de prever o futuro é inventá-lo.",
94
+ "Simplicidade é a sofisticação máxima.",
95
+ "É o mestre do seu destino e o capitão da sua alma.",
96
+ "Em breve receberá notícias que mudarão a sua perspetiva.",
97
+ "Uma viagem inesperada trar-lhe-á grandes alegrias."
98
+ ]),
99
+ faqTitle: 'FAQ',
100
+ },
101
+ seo: [
102
+ { type: 'title', text: 'O Mistério do Biscoito da Sorte', level: 2 },
103
+ { type: 'paragraph', html: 'Já se perguntou de onde vêm estes curiosos biscoitos? Embora os associemos à comida chinesa, a sua origem é uma viagem fascinante entre o Japão e os Estados Unidos. O biscoito da sorte como o conhecemos hoje foi provavelmente inventado na Califórnia do início do século XX, não na China - onde são praticamente desconhecidos.' },
104
+ { type: 'tip', title: 'Como Funciona o Nosso Oráculo', html: 'Cada dia pode abrir um biscoito. O sistema guarda o seu destino para que se lembre dele durante 24 horas. A sorte é guardada localmente no seu navegador - completamente privada, sem servidores envolvidos. Volte amanhã para uma nova previsão!' },
105
+ { type: 'title', text: 'A Filosofia dos Oráculos', level: 3 },
106
+ { type: 'paragraph', html: 'Os seres humanos sempre procuraram orientação em tempos de incerteza. Do Oráculo de Delfos ao I Ching, os sistemas de adivinhação cumprem uma função psicológica consistente: dão-nos permissão para <strong>parar e refletir</strong>. Um biscoito da sorte não prevê o futuro - incentiva-o a pensar sobre ele.' },
107
+ { type: 'list', items: [
108
+ '<strong>China Antiga:</strong> O I Ching (Livro das Mutações, ~1000 a.C.) utilizava hexagramas para guiar decisões e interpretar o destino.',
109
+ '<strong>Grécia Clássica:</strong> O Oráculo de Delfos atraía governantes e cidadãos com pronunciamentos crípticos interpretados como orientação divina.',
110
+ '<strong>Japão Moderno:</strong> As tiras da sorte Omikuji nos santuários xintoístas, atadas a ramos de árvores, misturam o fado com o ritual.',
111
+ '<strong>EUA Século XX:</strong> Os biscoitos da sorte surgiram nas comunidades nipo-americanas antes de se tornarem sinónimo da gastronomia sino-americana.'
112
+ ]},
113
+ { type: 'stats', items: [
114
+ { value: '3 mil milhões+', label: 'Biscoitos da sorte feitos anualmente', icon: 'mdi:cookie' },
115
+ { value: '~1000 a.C.', label: 'Origem do I Ching', icon: 'mdi:book-open-variant' },
116
+ { value: '25', label: 'Frases neste oráculo', icon: 'mdi:star-shooting' },
117
+ { value: '1/dia', label: 'Um destino por dia', icon: 'mdi:calendar-today' }
118
+ ], columns: 4 },
119
+ ],
120
+ faq,
121
+ bibliography,
122
+ howTo,
123
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
124
+ };