@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.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +2 -2
- package/src/category/i18n/en.ts +2 -2
- package/src/category/i18n/es.ts +2 -2
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/id.ts +2 -2
- package/src/category/i18n/it.ts +2 -2
- package/src/category/i18n/ja.ts +2 -2
- package/src/category/i18n/ko.ts +2 -2
- package/src/category/i18n/nl.ts +2 -2
- package/src/category/i18n/pl.ts +2 -2
- package/src/category/i18n/pt.ts +2 -2
- package/src/category/i18n/ru.ts +2 -2
- package/src/category/i18n/sv.ts +2 -2
- package/src/category/i18n/tr.ts +2 -2
- package/src/category/i18n/zh.ts +2 -2
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/env.d.ts +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_translation_completeness.test.ts +75 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +17 -17
- package/src/tool/bead-pattern-generator/bibliography.astro +8 -8
- package/src/tool/bead-pattern-generator/i18n/de.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/en.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/es.ts +104 -104
- package/src/tool/bead-pattern-generator/i18n/fr.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/id.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/it.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ja.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ko.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/nl.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/pl.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/pt.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ru.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/sv.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/tr.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/zh.ts +111 -111
- package/src/tool/bead-pattern-generator/seo.astro +19 -19
- package/src/tool/dice-roller/bibliography.astro +8 -8
- package/src/tool/dice-roller/i18n/de.ts +134 -134
- package/src/tool/dice-roller/i18n/en.ts +134 -134
- package/src/tool/dice-roller/i18n/es.ts +125 -125
- package/src/tool/dice-roller/i18n/fr.ts +134 -134
- package/src/tool/dice-roller/i18n/id.ts +134 -134
- package/src/tool/dice-roller/i18n/it.ts +134 -134
- package/src/tool/dice-roller/i18n/ja.ts +134 -134
- package/src/tool/dice-roller/i18n/ko.ts +134 -134
- package/src/tool/dice-roller/i18n/nl.ts +134 -134
- package/src/tool/dice-roller/i18n/pl.ts +134 -134
- package/src/tool/dice-roller/i18n/pt.ts +134 -134
- package/src/tool/dice-roller/i18n/ru.ts +134 -134
- package/src/tool/dice-roller/i18n/sv.ts +134 -134
- package/src/tool/dice-roller/i18n/tr.ts +134 -134
- package/src/tool/dice-roller/i18n/zh.ts +134 -134
- package/src/tool/dice-roller/seo.astro +15 -15
- package/src/tool/excuse-generator/bibliography.astro +8 -8
- package/src/tool/excuse-generator/i18n/de.ts +120 -120
- package/src/tool/excuse-generator/i18n/en.ts +120 -120
- package/src/tool/excuse-generator/i18n/es.ts +118 -118
- package/src/tool/excuse-generator/i18n/fr.ts +120 -120
- package/src/tool/excuse-generator/i18n/id.ts +120 -120
- package/src/tool/excuse-generator/i18n/it.ts +120 -120
- package/src/tool/excuse-generator/i18n/ja.ts +120 -120
- package/src/tool/excuse-generator/i18n/ko.ts +120 -120
- package/src/tool/excuse-generator/i18n/nl.ts +120 -120
- package/src/tool/excuse-generator/i18n/pl.ts +120 -120
- package/src/tool/excuse-generator/i18n/pt.ts +120 -120
- package/src/tool/excuse-generator/i18n/ru.ts +120 -120
- package/src/tool/excuse-generator/i18n/sv.ts +120 -120
- package/src/tool/excuse-generator/i18n/tr.ts +120 -120
- package/src/tool/excuse-generator/i18n/zh.ts +120 -120
- package/src/tool/excuse-generator/seo.astro +15 -15
- package/src/tool/fortune-cookie/bibliography.astro +8 -8
- package/src/tool/fortune-cookie/i18n/de.ts +124 -124
- package/src/tool/fortune-cookie/i18n/en.ts +124 -124
- package/src/tool/fortune-cookie/i18n/es.ts +125 -125
- package/src/tool/fortune-cookie/i18n/fr.ts +124 -124
- package/src/tool/fortune-cookie/i18n/id.ts +124 -124
- package/src/tool/fortune-cookie/i18n/it.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ja.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ko.ts +124 -124
- package/src/tool/fortune-cookie/i18n/nl.ts +124 -124
- package/src/tool/fortune-cookie/i18n/pl.ts +124 -124
- package/src/tool/fortune-cookie/i18n/pt.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ru.ts +124 -124
- package/src/tool/fortune-cookie/i18n/sv.ts +124 -124
- package/src/tool/fortune-cookie/i18n/tr.ts +124 -124
- package/src/tool/fortune-cookie/i18n/zh.ts +124 -124
- package/src/tool/fortune-cookie/seo.astro +15 -15
- package/src/tool/synesthesia-painter/bibliography.astro +8 -8
- package/src/tool/synesthesia-painter/i18n/de.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/en.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/es.ts +110 -110
- package/src/tool/synesthesia-painter/i18n/fr.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/id.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/it.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ja.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ko.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/nl.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/pl.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/pt.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ru.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/sv.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/tr.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/zh.ts +118 -118
- package/src/tool/synesthesia-painter/seo.astro +15 -15
- package/src/tool/zalgo-generator/bibliography.astro +8 -8
- package/src/tool/zalgo-generator/i18n/de.ts +109 -109
- package/src/tool/zalgo-generator/i18n/en.ts +109 -109
- package/src/tool/zalgo-generator/i18n/es.ts +109 -109
- package/src/tool/zalgo-generator/i18n/fr.ts +109 -109
- package/src/tool/zalgo-generator/i18n/id.ts +109 -109
- package/src/tool/zalgo-generator/i18n/it.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ja.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ko.ts +109 -109
- package/src/tool/zalgo-generator/i18n/nl.ts +109 -109
- package/src/tool/zalgo-generator/i18n/pl.ts +109 -109
- package/src/tool/zalgo-generator/i18n/pt.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ru.ts +109 -109
- package/src/tool/zalgo-generator/i18n/sv.ts +109 -109
- package/src/tool/zalgo-generator/i18n/tr.ts +109 -109
- package/src/tool/zalgo-generator/i18n/zh.ts +109 -109
- package/src/tool/zalgo-generator/seo.astro +15 -15
- 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 = 'sans-kurabiyesi-online';
|
|
6
|
-
const title = 'Şans Kurabiyesi';
|
|
7
|
-
const description = 'Günlük kaderinizi kontrol edin ve şanslı numaralarınızı keşfedin. Her gün bir tıklama ile ortaya çıkan bir şans mesajı.';
|
|
8
|
-
|
|
9
|
-
const faq: FortuneCookieLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: 'Günde birden fazla kurabiye açabilir miyim?',
|
|
12
|
-
answer: 'Kader günde sadece bir kez konuşur. Şanslı mesajınızı cihazınıza kaydediyoruz, böylece gün boyunca size rehberlik eder.'
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: 'Mesajlar rastgele mi oluşturuluyor?',
|
|
16
|
-
answer: 'Evet - her gün rastgele bir mesaj seçilir ve yerel olarak kaydedilir. 25 mesajın her birinin seçilme şansı eşittir, bu da zamanla çeşitlilik sağlar.'
|
|
17
|
-
}
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
const howTo: FortuneCookieLocaleContent['howTo'] = [
|
|
21
|
-
{ name: 'Kurabiyeyi kır', text: 'Kurabiyeyi açmak için üzerine art arda tıklayın.' },
|
|
22
|
-
{ name: 'Şansını oku', text: 'İçindeki gizli mesajı ve o günkü şanslı numaralarınızı keşfedin.' }
|
|
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: 'tr',
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export const content: FortuneCookieLocaleContent = {
|
|
59
|
-
slug,
|
|
60
|
-
title,
|
|
61
|
-
description,
|
|
62
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
63
|
-
ui: {
|
|
64
|
-
title: 'Online Şans Kurabiyesi',
|
|
65
|
-
description: 'Günlük dijital falınız.',
|
|
66
|
-
instruction: 'Kaderinizi açmak için kurabiyeye vurun',
|
|
67
|
-
dailyStatus: 'Bugünkü kaderiniz deşifre edildi.',
|
|
68
|
-
shareBtn: 'Bilgeliği Paylaş',
|
|
69
|
-
shareTitle: 'Şans Kurabiyem',
|
|
70
|
-
shareText: 'Kader konuştu: "$TEXT"\nNumaralarım: $NUMS\n\nKaderini burada keşfet:',
|
|
71
|
-
copied: 'Kopyalandı!',
|
|
72
|
-
fortunes: JSON.stringify([
|
|
73
|
-
"Aradığın şans başka bir kurabiyede.",
|
|
74
|
-
"Günleri sayma, günlerini saygın kıl.",
|
|
75
|
-
"Bin millik bir yolculuk tek bir adımla başlar.",
|
|
76
|
-
"Hata, keşfin başlangıcıdır.",
|
|
77
|
-
"Öğrenme kapasiteniz en büyük varlığınızdır.",
|
|
78
|
-
"Gülümse, evren seni izliyor.",
|
|
79
|
-
"Sabır, kökü acı ama meyvesi çok tatlı bir ağaçtır.",
|
|
80
|
-
"Yavaş büyümekten korkma, sadece yerinde saymaktan kork.",
|
|
81
|
-
"Bugün, dün endişelendiğin yarındır.",
|
|
82
|
-
"Mutluluk hazır bir şey değildir. Kendi eylemlerinden gelir.",
|
|
83
|
-
"Rüzgarın yönünü değiştiremiyorsan, yelkenlerini ona göre ayarla.",
|
|
84
|
-
"Şimdi ne ekersen, sonra onu biçersin.",
|
|
85
|
-
"Yaratıcılık, zekanın eğlenmesidir.",
|
|
86
|
-
"Hataları arama, çözümleri ara.",
|
|
87
|
-
"Yüksekliğini belirleyen şey yeteneğin değil, tavrındır.",
|
|
88
|
-
"Başarı, her gün tekrarlanan küçük çabaların toplamıdır.",
|
|
89
|
-
"Yapabileceğine inan, yolun yarısını gitmiş olursun.",
|
|
90
|
-
"Harika işler yapmanın tek yolu, yaptığınız işi sevmektir.",
|
|
91
|
-
"Hayat %10 başınıza gelenler, %90 ise ona nasıl tepki verdiğinizdir.",
|
|
92
|
-
"Dünyada görmek istediğin değişimin kendisi ol.",
|
|
93
|
-
"Geleceği tahmin etmenin en iyi yolu onu icat etmektir.",
|
|
94
|
-
"Sadelik en yüksek gelişmişlik düzeyidir.",
|
|
95
|
-
"Kaderinin efendisi ve ruhunun kaptanı sensin.",
|
|
96
|
-
"Yakında bakış açınızı değiştirecek haberler alacaksınız.",
|
|
97
|
-
"Beklenmedik bir yolculuk size büyük neşeler getirecek."
|
|
98
|
-
]),
|
|
99
|
-
faqTitle: 'FAQ',
|
|
100
|
-
},
|
|
101
|
-
seo: [
|
|
102
|
-
{ type: 'title', text: 'Şans Kurabiyesinin Gizemi', level: 2 },
|
|
103
|
-
{ type: 'paragraph', html: 'Bu ilginç kurabiyelerin nereden geldiğini hiç merak ettiniz mi? Onları Çin yemeğiyle ilişkilendirsek de, kökenleri Japonya ve Amerika Birleşik Devletleri arasında büyüleyici bir yolculuktur. Bugün bildiğimiz şans kurabiyesi büyük olasılıkla Çin\'de değil (ki orada neredeyse hiç bilinmezler), 20. yüzyılın başlarında California\'da icat edilmiştir.' },
|
|
104
|
-
{ type: 'tip', title: 'Falcımız Nasıl Çalışır?', html: 'Her gün bir kurabiye açabilirsiniz. Sistem kaderinizi kaydeder, böylece 24 saat boyunca hatırlarsınız. Şanslı mesaj tarayıcınızda yerel olarak saklanır - tamamen özeldir, hiçbir sunucu dahil olmaz. Yeni bir tahmin için yarın tekrar gelin!' },
|
|
105
|
-
{ type: 'title', text: 'Kehanetlerin Felsefesi', level: 3 },
|
|
106
|
-
{ type: 'paragraph', html: 'İnsanlar her zaman belirsiz zamanlarda rehberlik aramışlardır. Delfi Kahini\'nden I Ching\'e kadar, fal bakma sistemleri tutarlı bir psikolojik işleve hizmet eder: Bize <strong>durup düşünmek</strong> için izin verirler. Bir şans kurabiyesi geleceği tahmin etmez - sizi onun hakkında düşünmeye sevk eder.' },
|
|
107
|
-
{ type: 'list', items: [
|
|
108
|
-
'<strong>Antik Çin:</strong> I Ching (Değişimler Kitabı, M.Ö. ~1000), kararlara rehberlik etmek ve kaderi yorumlamak için heksagramlar kullanıyordu.',
|
|
109
|
-
'<strong>Klasik Yunan:</strong> Delfi Kahini, tanrısal rehberlik olarak yorumlanan gizemli beyanlarla hükümdarları ve vatandaşları kendine çekiyordu.',
|
|
110
|
-
'<strong>Modern Japonya:</strong> Şinto tapınaklarında ağaç dallarına bağlanan Omikuji fal kağıtları, kaderi ritüelle harmanlar.',
|
|
111
|
-
'<strong>20. Yüzyıl ABD:</strong> Şans kurabiyeleri, Çin-Amerikan mutfağının eş anlamlısı haline gelmeden önce Japon-Amerikan topluluklarında ortaya çıktı.'
|
|
112
|
-
]},
|
|
113
|
-
{ type: 'stats', items: [
|
|
114
|
-
{ value: '3 milyar+', label: 'Yıllık üretilen şans kurabiyesi sayısı', icon: 'mdi:cookie' },
|
|
115
|
-
{ value: 'M.Ö. ~1000', label: 'I Ching\'in kökeni', icon: 'mdi:book-open-variant' },
|
|
116
|
-
{ value: '25', label: 'Bu falcıdaki mesaj sayısı', icon: 'mdi:star-shooting' },
|
|
117
|
-
{ value: 'Günde 1', label: 'Her gün tek bir mesaj', 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 = 'sans-kurabiyesi-online';
|
|
6
|
+
const title = 'Şans Kurabiyesi';
|
|
7
|
+
const description = 'Günlük kaderinizi kontrol edin ve şanslı numaralarınızı keşfedin. Her gün bir tıklama ile ortaya çıkan bir şans mesajı.';
|
|
8
|
+
|
|
9
|
+
const faq: FortuneCookieLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Günde birden fazla kurabiye açabilir miyim?',
|
|
12
|
+
answer: 'Kader günde sadece bir kez konuşur. Şanslı mesajınızı cihazınıza kaydediyoruz, böylece gün boyunca size rehberlik eder.'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Mesajlar rastgele mi oluşturuluyor?',
|
|
16
|
+
answer: 'Evet - her gün rastgele bir mesaj seçilir ve yerel olarak kaydedilir. 25 mesajın her birinin seçilme şansı eşittir, bu da zamanla çeşitlilik sağlar.'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const howTo: FortuneCookieLocaleContent['howTo'] = [
|
|
21
|
+
{ name: 'Kurabiyeyi kır', text: 'Kurabiyeyi açmak için üzerine art arda tıklayın.' },
|
|
22
|
+
{ name: 'Şansını oku', text: 'İçindeki gizli mesajı ve o günkü şanslı numaralarınızı keşfedin.' }
|
|
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: 'tr',
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const content: FortuneCookieLocaleContent = {
|
|
59
|
+
slug,
|
|
60
|
+
title,
|
|
61
|
+
description,
|
|
62
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
63
|
+
ui: {
|
|
64
|
+
title: 'Online Şans Kurabiyesi',
|
|
65
|
+
description: 'Günlük dijital falınız.',
|
|
66
|
+
instruction: 'Kaderinizi açmak için kurabiyeye vurun',
|
|
67
|
+
dailyStatus: 'Bugünkü kaderiniz deşifre edildi.',
|
|
68
|
+
shareBtn: 'Bilgeliği Paylaş',
|
|
69
|
+
shareTitle: 'Şans Kurabiyem',
|
|
70
|
+
shareText: 'Kader konuştu: "$TEXT"\nNumaralarım: $NUMS\n\nKaderini burada keşfet:',
|
|
71
|
+
copied: 'Kopyalandı!',
|
|
72
|
+
fortunes: JSON.stringify([
|
|
73
|
+
"Aradığın şans başka bir kurabiyede.",
|
|
74
|
+
"Günleri sayma, günlerini saygın kıl.",
|
|
75
|
+
"Bin millik bir yolculuk tek bir adımla başlar.",
|
|
76
|
+
"Hata, keşfin başlangıcıdır.",
|
|
77
|
+
"Öğrenme kapasiteniz en büyük varlığınızdır.",
|
|
78
|
+
"Gülümse, evren seni izliyor.",
|
|
79
|
+
"Sabır, kökü acı ama meyvesi çok tatlı bir ağaçtır.",
|
|
80
|
+
"Yavaş büyümekten korkma, sadece yerinde saymaktan kork.",
|
|
81
|
+
"Bugün, dün endişelendiğin yarındır.",
|
|
82
|
+
"Mutluluk hazır bir şey değildir. Kendi eylemlerinden gelir.",
|
|
83
|
+
"Rüzgarın yönünü değiştiremiyorsan, yelkenlerini ona göre ayarla.",
|
|
84
|
+
"Şimdi ne ekersen, sonra onu biçersin.",
|
|
85
|
+
"Yaratıcılık, zekanın eğlenmesidir.",
|
|
86
|
+
"Hataları arama, çözümleri ara.",
|
|
87
|
+
"Yüksekliğini belirleyen şey yeteneğin değil, tavrındır.",
|
|
88
|
+
"Başarı, her gün tekrarlanan küçük çabaların toplamıdır.",
|
|
89
|
+
"Yapabileceğine inan, yolun yarısını gitmiş olursun.",
|
|
90
|
+
"Harika işler yapmanın tek yolu, yaptığınız işi sevmektir.",
|
|
91
|
+
"Hayat %10 başınıza gelenler, %90 ise ona nasıl tepki verdiğinizdir.",
|
|
92
|
+
"Dünyada görmek istediğin değişimin kendisi ol.",
|
|
93
|
+
"Geleceği tahmin etmenin en iyi yolu onu icat etmektir.",
|
|
94
|
+
"Sadelik en yüksek gelişmişlik düzeyidir.",
|
|
95
|
+
"Kaderinin efendisi ve ruhunun kaptanı sensin.",
|
|
96
|
+
"Yakında bakış açınızı değiştirecek haberler alacaksınız.",
|
|
97
|
+
"Beklenmedik bir yolculuk size büyük neşeler getirecek."
|
|
98
|
+
]),
|
|
99
|
+
faqTitle: 'FAQ',
|
|
100
|
+
},
|
|
101
|
+
seo: [
|
|
102
|
+
{ type: 'title', text: 'Şans Kurabiyesinin Gizemi', level: 2 },
|
|
103
|
+
{ type: 'paragraph', html: 'Bu ilginç kurabiyelerin nereden geldiğini hiç merak ettiniz mi? Onları Çin yemeğiyle ilişkilendirsek de, kökenleri Japonya ve Amerika Birleşik Devletleri arasında büyüleyici bir yolculuktur. Bugün bildiğimiz şans kurabiyesi büyük olasılıkla Çin\'de değil (ki orada neredeyse hiç bilinmezler), 20. yüzyılın başlarında California\'da icat edilmiştir.' },
|
|
104
|
+
{ type: 'tip', title: 'Falcımız Nasıl Çalışır?', html: 'Her gün bir kurabiye açabilirsiniz. Sistem kaderinizi kaydeder, böylece 24 saat boyunca hatırlarsınız. Şanslı mesaj tarayıcınızda yerel olarak saklanır - tamamen özeldir, hiçbir sunucu dahil olmaz. Yeni bir tahmin için yarın tekrar gelin!' },
|
|
105
|
+
{ type: 'title', text: 'Kehanetlerin Felsefesi', level: 3 },
|
|
106
|
+
{ type: 'paragraph', html: 'İnsanlar her zaman belirsiz zamanlarda rehberlik aramışlardır. Delfi Kahini\'nden I Ching\'e kadar, fal bakma sistemleri tutarlı bir psikolojik işleve hizmet eder: Bize <strong>durup düşünmek</strong> için izin verirler. Bir şans kurabiyesi geleceği tahmin etmez - sizi onun hakkında düşünmeye sevk eder.' },
|
|
107
|
+
{ type: 'list', items: [
|
|
108
|
+
'<strong>Antik Çin:</strong> I Ching (Değişimler Kitabı, M.Ö. ~1000), kararlara rehberlik etmek ve kaderi yorumlamak için heksagramlar kullanıyordu.',
|
|
109
|
+
'<strong>Klasik Yunan:</strong> Delfi Kahini, tanrısal rehberlik olarak yorumlanan gizemli beyanlarla hükümdarları ve vatandaşları kendine çekiyordu.',
|
|
110
|
+
'<strong>Modern Japonya:</strong> Şinto tapınaklarında ağaç dallarına bağlanan Omikuji fal kağıtları, kaderi ritüelle harmanlar.',
|
|
111
|
+
'<strong>20. Yüzyıl ABD:</strong> Şans kurabiyeleri, Çin-Amerikan mutfağının eş anlamlısı haline gelmeden önce Japon-Amerikan topluluklarında ortaya çıktı.'
|
|
112
|
+
]},
|
|
113
|
+
{ type: 'stats', items: [
|
|
114
|
+
{ value: '3 milyar+', label: 'Yıllık üretilen şans kurabiyesi sayısı', icon: 'mdi:cookie' },
|
|
115
|
+
{ value: 'M.Ö. ~1000', label: 'I Ching\'in kökeni', icon: 'mdi:book-open-variant' },
|
|
116
|
+
{ value: '25', label: 'Bu falcıdaki mesaj sayısı', icon: 'mdi:star-shooting' },
|
|
117
|
+
{ value: 'Günde 1', label: 'Her gün tek bir mesaj', 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 = 'fortune-cookie';
|
|
6
|
-
const title = '幸运饼干';
|
|
7
|
-
const description = '查看您的每日运势并发现您的幸运数字。每天一个在线幸运饼干,一键开启您的预言。';
|
|
8
|
-
|
|
9
|
-
const faq: FortuneCookieLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: '我每天可以打开多个饼干吗?',
|
|
12
|
-
answer: '命运每天只开启一次。我们会将您的运势保存在设备上,让它在这一整天中指引您。'
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: '运势是随机生成的吗?',
|
|
16
|
-
answer: '是的-每天都会随机选出一个运势并保存在本地。25 个运势中每一个被选中的概率都是相等的,确保了内容的多样性。'
|
|
17
|
-
}
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
const howTo: FortuneCookieLocaleContent['howTo'] = [
|
|
21
|
-
{ name: '敲碎饼干', text: '多次点击饼干来将其敲开。' },
|
|
22
|
-
{ name: '阅读运势', text: '发现里面隐藏的信息以及您当天的幸运数字。' }
|
|
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: 'zh',
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export const content: FortuneCookieLocaleContent = {
|
|
59
|
-
slug,
|
|
60
|
-
title,
|
|
61
|
-
description,
|
|
62
|
-
faqTitle: '常见问题解答',
|
|
63
|
-
ui: {
|
|
64
|
-
title: '在线幸运饼干',
|
|
65
|
-
description: '您的每日数字神谕。',
|
|
66
|
-
instruction: '点击饼干开启您的命运',
|
|
67
|
-
dailyStatus: '您今天的运势已经揭晓。',
|
|
68
|
-
shareBtn: '分享智慧',
|
|
69
|
-
shareTitle: '我的幸运饼干',
|
|
70
|
-
shareText: '命运之音:"$TEXT"\n我的数字:$NUMS\n\n快来这里发现您的运势:',
|
|
71
|
-
copied: '已复制!',
|
|
72
|
-
fortunes: JSON.stringify([
|
|
73
|
-
"您所寻求的财富就在另一个饼干里。",
|
|
74
|
-
"不要计算日期,要让每一天都变得有意义。",
|
|
75
|
-
"千里之行,始于足下。",
|
|
76
|
-
"错误是发现的前言。",
|
|
77
|
-
"您的学习能力是您最大的财富。",
|
|
78
|
-
"微笑吧,宇宙正在注视着您。",
|
|
79
|
-
"耐心是一棵根苦果甜的树。",
|
|
80
|
-
"不要害怕成长缓慢,只害怕停滞不前。",
|
|
81
|
-
"今天就是您昨天所担心的明天。",
|
|
82
|
-
"幸福不是现成的,它源于您自己的行动。",
|
|
83
|
-
"如果您无法改变风的方向,请调整您的船帆。",
|
|
84
|
-
"您现在种下什么,以后就会收获什么。",
|
|
85
|
-
"创意是智能在寻找乐趣。",
|
|
86
|
-
"不要寻找错误,要寻找解决方案。",
|
|
87
|
-
"决定您高度的是您的态度,而不是您的天赋。",
|
|
88
|
-
"成功是日复一日重复的小小努力的总和。",
|
|
89
|
-
"相信您可以,您就已经成功了一半。",
|
|
90
|
-
"成就伟业的唯一途径是热爱您所做的事。",
|
|
91
|
-
"生活 10% 取决于发生在您身上的事,90% 取决于您如何反应。",
|
|
92
|
-
"成为您想在世界上看到的改变。",
|
|
93
|
-
"预测未来的最好方式就是去创造它。",
|
|
94
|
-
"简单是最终的精致。",
|
|
95
|
-
"您是您命运的主宰,也是您灵魂的统帅。",
|
|
96
|
-
"很快您就会收到改变您观点的新闻。",
|
|
97
|
-
"一次意外的旅行会给您带来巨大的喜悦。"
|
|
98
|
-
]),
|
|
99
|
-
faqTitle: 'FAQ',
|
|
100
|
-
},
|
|
101
|
-
seo: [
|
|
102
|
-
{ type: 'title', text: '幸运饼干之谜', level: 2 },
|
|
103
|
-
{ type: 'paragraph', html: '有没有想过这些奇特的饼干是从哪里来的?虽然我们将它们与中餐联系在一起,但它们的起源实际上是日本和美国之间的一段迷人旅程。我们今天所熟知的幸运饼干很可能是 20 世纪初在加利福尼亚发明的,而不是在中国-在那里它们几乎鲜为人知。' },
|
|
104
|
-
{ type: 'tip', title: '我们的神谕如何运作', html: '每天您可以打开一个饼干。系统会保存您的运势,以便您能在 24 小时内记住它。运势本地存储在您的浏览器中-完全私密,不涉及任何服务器。明天再来看看新的预言吧!' },
|
|
105
|
-
{ type: 'title', text: '神谕的哲学', level: 3 },
|
|
106
|
-
{ type: 'paragraph', html: '人类一直在不确定的时代寻求指引。从德尔斐神谕到易经,占卜系统都起到了一个一致的心理功能:它们允许我们<strong>停下来反思</strong>。幸运饼干并不预言未来-它促使您思考未来。' },
|
|
107
|
-
{ type: 'list', items: [
|
|
108
|
-
'<strong>古代中国:</strong> 易经(Book of Changes, 约公元前 1000 年)使用六爻来指导决策并解释命运。',
|
|
109
|
-
'<strong>古典希腊:</strong> 德尔斐神谕以被解释为神圣指引的神秘教理吸引了统治者和普通公民。',
|
|
110
|
-
'<strong>现代日本:</strong> 日本神社的\"御神签\"系在树枝上,将命运与仪式融合在一起。',
|
|
111
|
-
'<strong>20 世纪美国:</strong> 幸运饼干出现在日裔美国人社区,之后成为美式中餐的代名词。'
|
|
112
|
-
]},
|
|
113
|
-
{ type: 'stats', items: [
|
|
114
|
-
{ value: '30 亿+', label: '每年制造的幸运饼干数量', icon: 'mdi:cookie' },
|
|
115
|
-
{ value: '约公元前 1000 年', label: '易经起源', icon: 'mdi:book-open-variant' },
|
|
116
|
-
{ value: '25', label: '此神谕中的运势数量', icon: 'mdi:star-shooting' },
|
|
117
|
-
{ value: '1次/天', label: '每天一次预言', 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 = 'fortune-cookie';
|
|
6
|
+
const title = '幸运饼干';
|
|
7
|
+
const description = '查看您的每日运势并发现您的幸运数字。每天一个在线幸运饼干,一键开启您的预言。';
|
|
8
|
+
|
|
9
|
+
const faq: FortuneCookieLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: '我每天可以打开多个饼干吗?',
|
|
12
|
+
answer: '命运每天只开启一次。我们会将您的运势保存在设备上,让它在这一整天中指引您。'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '运势是随机生成的吗?',
|
|
16
|
+
answer: '是的-每天都会随机选出一个运势并保存在本地。25 个运势中每一个被选中的概率都是相等的,确保了内容的多样性。'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const howTo: FortuneCookieLocaleContent['howTo'] = [
|
|
21
|
+
{ name: '敲碎饼干', text: '多次点击饼干来将其敲开。' },
|
|
22
|
+
{ name: '阅读运势', text: '发现里面隐藏的信息以及您当天的幸运数字。' }
|
|
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: 'zh',
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const content: FortuneCookieLocaleContent = {
|
|
59
|
+
slug,
|
|
60
|
+
title,
|
|
61
|
+
description,
|
|
62
|
+
faqTitle: '常见问题解答',
|
|
63
|
+
ui: {
|
|
64
|
+
title: '在线幸运饼干',
|
|
65
|
+
description: '您的每日数字神谕。',
|
|
66
|
+
instruction: '点击饼干开启您的命运',
|
|
67
|
+
dailyStatus: '您今天的运势已经揭晓。',
|
|
68
|
+
shareBtn: '分享智慧',
|
|
69
|
+
shareTitle: '我的幸运饼干',
|
|
70
|
+
shareText: '命运之音:"$TEXT"\n我的数字:$NUMS\n\n快来这里发现您的运势:',
|
|
71
|
+
copied: '已复制!',
|
|
72
|
+
fortunes: JSON.stringify([
|
|
73
|
+
"您所寻求的财富就在另一个饼干里。",
|
|
74
|
+
"不要计算日期,要让每一天都变得有意义。",
|
|
75
|
+
"千里之行,始于足下。",
|
|
76
|
+
"错误是发现的前言。",
|
|
77
|
+
"您的学习能力是您最大的财富。",
|
|
78
|
+
"微笑吧,宇宙正在注视着您。",
|
|
79
|
+
"耐心是一棵根苦果甜的树。",
|
|
80
|
+
"不要害怕成长缓慢,只害怕停滞不前。",
|
|
81
|
+
"今天就是您昨天所担心的明天。",
|
|
82
|
+
"幸福不是现成的,它源于您自己的行动。",
|
|
83
|
+
"如果您无法改变风的方向,请调整您的船帆。",
|
|
84
|
+
"您现在种下什么,以后就会收获什么。",
|
|
85
|
+
"创意是智能在寻找乐趣。",
|
|
86
|
+
"不要寻找错误,要寻找解决方案。",
|
|
87
|
+
"决定您高度的是您的态度,而不是您的天赋。",
|
|
88
|
+
"成功是日复一日重复的小小努力的总和。",
|
|
89
|
+
"相信您可以,您就已经成功了一半。",
|
|
90
|
+
"成就伟业的唯一途径是热爱您所做的事。",
|
|
91
|
+
"生活 10% 取决于发生在您身上的事,90% 取决于您如何反应。",
|
|
92
|
+
"成为您想在世界上看到的改变。",
|
|
93
|
+
"预测未来的最好方式就是去创造它。",
|
|
94
|
+
"简单是最终的精致。",
|
|
95
|
+
"您是您命运的主宰,也是您灵魂的统帅。",
|
|
96
|
+
"很快您就会收到改变您观点的新闻。",
|
|
97
|
+
"一次意外的旅行会给您带来巨大的喜悦。"
|
|
98
|
+
]),
|
|
99
|
+
faqTitle: 'FAQ',
|
|
100
|
+
},
|
|
101
|
+
seo: [
|
|
102
|
+
{ type: 'title', text: '幸运饼干之谜', level: 2 },
|
|
103
|
+
{ type: 'paragraph', html: '有没有想过这些奇特的饼干是从哪里来的?虽然我们将它们与中餐联系在一起,但它们的起源实际上是日本和美国之间的一段迷人旅程。我们今天所熟知的幸运饼干很可能是 20 世纪初在加利福尼亚发明的,而不是在中国-在那里它们几乎鲜为人知。' },
|
|
104
|
+
{ type: 'tip', title: '我们的神谕如何运作', html: '每天您可以打开一个饼干。系统会保存您的运势,以便您能在 24 小时内记住它。运势本地存储在您的浏览器中-完全私密,不涉及任何服务器。明天再来看看新的预言吧!' },
|
|
105
|
+
{ type: 'title', text: '神谕的哲学', level: 3 },
|
|
106
|
+
{ type: 'paragraph', html: '人类一直在不确定的时代寻求指引。从德尔斐神谕到易经,占卜系统都起到了一个一致的心理功能:它们允许我们<strong>停下来反思</strong>。幸运饼干并不预言未来-它促使您思考未来。' },
|
|
107
|
+
{ type: 'list', items: [
|
|
108
|
+
'<strong>古代中国:</strong> 易经(Book of Changes, 约公元前 1000 年)使用六爻来指导决策并解释命运。',
|
|
109
|
+
'<strong>古典希腊:</strong> 德尔斐神谕以被解释为神圣指引的神秘教理吸引了统治者和普通公民。',
|
|
110
|
+
'<strong>现代日本:</strong> 日本神社的\"御神签\"系在树枝上,将命运与仪式融合在一起。',
|
|
111
|
+
'<strong>20 世纪美国:</strong> 幸运饼干出现在日裔美国人社区,之后成为美式中餐的代名词。'
|
|
112
|
+
]},
|
|
113
|
+
{ type: 'stats', items: [
|
|
114
|
+
{ value: '30 亿+', label: '每年制造的幸运饼干数量', icon: 'mdi:cookie' },
|
|
115
|
+
{ value: '约公元前 1000 年', label: '易经起源', icon: 'mdi:book-open-variant' },
|
|
116
|
+
{ value: '25', label: '此神谕中的运势数量', icon: 'mdi:star-shooting' },
|
|
117
|
+
{ value: '1次/天', label: '每天一次预言', 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,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { fortuneCookie } from './index';
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await fortuneCookie.i18n[locale]?.();
|
|
12
|
-
if (!content) return null;
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { fortuneCookie } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await fortuneCookie.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { bibliography } from './bibliography';
|
|
4
|
-
|
|
5
|
-
if (!bibliography || bibliography.length === 0) return null;
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<SharedBibliography links={bibliography} />
|
|
1
|
+
---
|
|
2
|
+
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
4
|
+
|
|
5
|
+
if (!bibliography || bibliography.length === 0) return null;
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<SharedBibliography links={bibliography} />
|