mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:01:08 +02:00
google-genai >=1.70 changed Part.from_text() from positional to keyword-only argument. The production container installed v1.73.1 and crashed on startup with "Part.from_text() takes 1 positional argument but 2 were given". Fix: Part.from_text(msg.content) → Part.from_text(text=msg.content) Tested live: curl https://llm.mana.how/v1/chat/completions with model=google/gemini-2.5-flash returns correct response. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 line
No EOL
127 KiB
Text
1 line
No EOL
127 KiB
Text
{"version":3,"sources":["../src/index.ts","../src/types.ts","../src/quotes.ts","../src/categories.ts","../src/utils.ts"],"sourcesContent":["// Types\nexport type {\n\tQuote,\n\tTranslatedText,\n\tAuthorBio,\n\tSupportedLanguage,\n\tOriginalLanguage,\n} from './types';\nexport { SUPPORTED_LANGUAGES, ORIGINAL_LANGUAGES } from './types';\nexport type { Category } from './categories';\n\n// Data\nexport { QUOTES, QUOTE_COUNT } from './quotes';\nexport { CATEGORIES, CATEGORY_LABELS, THEME_DECKS } from './categories';\nexport type { ThemeDeckId } from './categories';\n\n// Utilities\nexport {\n\tgetRandomQuote,\n\tgetDailyQuote,\n\tgetQuotesByCategory,\n\tgetRandomQuoteByCategory,\n\tsearchQuotes,\n\tgetQuoteById,\n\tgetQuoteByIndex,\n\tgetAllCategories,\n\tgetCategoryByName,\n\tgetQuoteText,\n\tformatQuote,\n\tformatQuoteWithNumber,\n\tgetTotalCount,\n\tgetQuotesByTag,\n\tgetAllTags,\n\tgetQuotesByAuthor,\n\tgetAllAuthors,\n\tgetQuotesByThemeDeck,\n\tfuzzySearchQuotes,\n\tgetVerifiedQuotes,\n\tgetQuotesByYearRange,\n\tgetQuotesByOriginalLanguage,\n} from './utils';\nexport type { AuthorInfo } from './utils';\n\nexport { getCategoryLabel, isValidCategory } from './categories';\n","import type { Category } from './categories';\n\n/**\n * Supported languages for quote translations\n */\nexport const SUPPORTED_LANGUAGES = ['original', 'de', 'en', 'it', 'fr', 'es'] as const;\nexport type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];\n\n/**\n * Original language of a quote\n */\nexport const ORIGINAL_LANGUAGES = [\n\t'de', // German\n\t'en', // English\n\t'fr', // French\n\t'es', // Spanish\n\t'it', // Italian\n\t'la', // Latin\n\t'el', // Greek (ancient & modern)\n\t'zh', // Chinese\n\t'sa', // Sanskrit\n\t'ar', // Arabic\n\t'fa', // Persian\n\t'ja', // Japanese\n\t'ru', // Russian\n\t'pt', // Portuguese\n\t'nl', // Dutch\n\t'da', // Danish\n\t'hi', // Hindi\n\t'bn', // Bengali\n] as const;\nexport type OriginalLanguage = (typeof ORIGINAL_LANGUAGES)[number];\n\n/**\n * Translated text object\n */\nexport interface TranslatedText {\n\t/** Original language text */\n\toriginal: string;\n\t/** German translation */\n\tde: string;\n\t/** English translation */\n\ten: string;\n\t/** Italian translation */\n\tit: string;\n\t/** French translation */\n\tfr: string;\n\t/** Spanish translation */\n\tes: string;\n}\n\n/**\n * Author biography in multiple languages\n */\nexport interface AuthorBio {\n\tde?: string;\n\ten?: string;\n\tit?: string;\n\tfr?: string;\n\tes?: string;\n}\n\n/**\n * A quote with author, translations, and metadata\n */\nexport interface Quote {\n\t/** Unique identifier (e.g., 'mot-1', 'weis-2') */\n\tid: string;\n\n\t/** Quote text in all supported languages */\n\ttext: TranslatedText;\n\n\t/** Author name */\n\tauthor: string;\n\n\t/** Category for filtering */\n\tcategory: Category;\n\n\t/** Original language of the quote */\n\toriginalLanguage: OriginalLanguage;\n\n\t/** Source: book, speech, interview, letter, etc. */\n\tsource?: string;\n\n\t/** Year the quote was made/published */\n\tyear?: number;\n\n\t/** Additional tags for search/filtering */\n\ttags?: string[];\n\n\t/** URL to author image */\n\timageUrl?: string;\n\n\t/** Short author biography */\n\tauthorBio?: AuthorBio;\n\n\t/** Whether the quote source has been verified */\n\tverified?: boolean;\n}\n\n/**\n * Helper type for creating quotes with partial translations\n * (translations can be added incrementally)\n */\nexport type PartialQuote = Omit<Quote, 'text'> & {\n\ttext: Partial<TranslatedText> & { original: string; de: string };\n};\n","import type { Quote } from './types';\n\n/**\n * German inspirational quotes collection with multilingual support\n */\nexport const QUOTES: Quote[] = [\n\t// ============================================\n\t// MOTIVATION\n\t// ============================================\n\t{\n\t\tid: 'mot-1',\n\t\ttext: {\n\t\t\toriginal: 'The only way to do great work is to love what you do.',\n\t\t\tde: 'Der einzige Weg, großartige Arbeit zu leisten, ist zu lieben, was man tut.',\n\t\t\ten: 'The only way to do great work is to love what you do.',\n\t\t\tit: \"L'unico modo per fare un ottimo lavoro è amare quello che fai.\",\n\t\t\tfr: \"La seule façon de faire du bon travail est d'aimer ce que vous faites.\",\n\t\t\tes: 'La única forma de hacer un gran trabajo es amar lo que haces.',\n\t\t},\n\t\tauthor: 'Steve Jobs',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Stanford Commencement Speech',\n\t\tyear: 2005,\n\t\ttags: ['arbeit', 'leidenschaft', 'erfolg'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Unternehmer (1955-2011), Mitgründer von Apple Inc.',\n\t\t\ten: 'American entrepreneur (1955-2011), co-founder of Apple Inc.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-2',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Success is not final, failure is not fatal: it is the courage to continue that counts.',\n\t\t\tde: 'Erfolg ist nicht endgültig, Misserfolg ist nicht fatal: Was zählt, ist der Mut weiterzumachen.',\n\t\t\ten: 'Success is not final, failure is not fatal: it is the courage to continue that counts.',\n\t\t\tit: 'Il successo non è definitivo, il fallimento non è fatale: ciò che conta è il coraggio di continuare.',\n\t\t\tfr: \"Le succès n'est pas définitif, l'échec n'est pas fatal : c'est le courage de continuer qui compte.\",\n\t\t\tes: 'El éxito no es definitivo, el fracaso no es fatal: lo que cuenta es el coraje de continuar.',\n\t\t},\n\t\tauthor: 'Winston Churchill',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Zugeschrieben',\n\t\tyear: 1941,\n\t\ttags: ['erfolg', 'misserfolg', 'mut', 'durchhaltevermögen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Britischer Staatsmann (1874-1965), Premierminister während des Zweiten Weltkriegs.',\n\t\t\ten: 'British statesman (1874-1965), Prime Minister during World War II.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-3',\n\t\ttext: {\n\t\t\toriginal: 'The future belongs to those who believe in the beauty of their dreams.',\n\t\t\tde: 'Die Zukunft gehört denen, die an die Schönheit ihrer Träume glauben.',\n\t\t\ten: 'The future belongs to those who believe in the beauty of their dreams.',\n\t\t\tit: 'Il futuro appartiene a coloro che credono nella bellezza dei propri sogni.',\n\t\t\tfr: \"L'avenir appartient à ceux qui croient en la beauté de leurs rêves.\",\n\t\t\tes: 'El futuro pertenece a quienes creen en la belleza de sus sueños.',\n\t\t},\n\t\tauthor: 'Eleanor Roosevelt',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1961,\n\t\ttags: ['zukunft', 'träume', 'glaube'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanische Menschenrechtsaktivistin (1884-1962), First Lady der USA.',\n\t\t\ten: 'American human rights activist (1884-1962), First Lady of the United States.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-4',\n\t\ttext: {\n\t\t\toriginal: \"It's never too late to be what you might have been.\",\n\t\t\tde: 'Es ist nie zu spät, das zu werden, was man hätte sein können.',\n\t\t\ten: \"It's never too late to be what you might have been.\",\n\t\t\tit: 'Non è mai troppo tardi per essere ciò che avresti potuto essere.',\n\t\t\tfr: \"Il n'est jamais trop tard pour être ce que vous auriez pu être.\",\n\t\t\tes: 'Nunca es demasiado tarde para ser lo que podrías haber sido.',\n\t\t},\n\t\tauthor: 'George Eliot',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1870,\n\t\ttags: ['veränderung', 'potenzial', 'neuanfang'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Englische Schriftstellerin (1819-1880), bürgerlicher Name Mary Ann Evans.',\n\t\t\ten: 'English novelist (1819-1880), pen name of Mary Ann Evans.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-5',\n\t\ttext: {\n\t\t\toriginal: 'Give every day the chance to become the most beautiful day of your life.',\n\t\t\tde: 'Gib jedem Tag die Chance, der schönste deines Lebens zu werden.',\n\t\t\ten: 'Give every day the chance to become the most beautiful day of your life.',\n\t\t\tit: 'Dai a ogni giorno la possibilità di diventare il più bello della tua vita.',\n\t\t\tfr: 'Donne à chaque jour la chance de devenir le plus beau jour de ta vie.',\n\t\t\tes: 'Dale a cada día la oportunidad de convertirse en el más hermoso de tu vida.',\n\t\t},\n\t\tauthor: 'Mark Twain',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1890,\n\t\ttags: ['tag', 'leben', 'optimismus'],\n\t\tverified: false,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Schriftsteller (1835-1910), bekannt für Tom Sawyer und Huckleberry Finn.',\n\t\t\ten: 'American writer (1835-1910), known for Tom Sawyer and Huckleberry Finn.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-6',\n\t\ttext: {\n\t\t\toriginal: 'Ἀρχὴ ἥμισυ παντός.',\n\t\t\tde: 'Der Anfang ist die Hälfte des Ganzen.',\n\t\t\ten: 'The beginning is half of the whole.',\n\t\t\tit: \"L'inizio è la metà del tutto.\",\n\t\t\tfr: 'Le commencement est la moitié du tout.',\n\t\t\tes: 'El comienzo es la mitad del todo.',\n\t\t},\n\t\tauthor: 'Aristoteles',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Politik',\n\t\tyear: -350,\n\t\ttags: ['anfang', 'handeln', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (384-322 v. Chr.), Universalgelehrter der Antike.',\n\t\t\ten: 'Ancient Greek philosopher (384-322 BC), polymath of antiquity.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-7',\n\t\ttext: {\n\t\t\toriginal: 'Do something today that your future self will thank you for.',\n\t\t\tde: 'Tue heute etwas, wofür dein zukünftiges Ich dir danken wird.',\n\t\t\ten: 'Do something today that your future self will thank you for.',\n\t\t\tit: 'Fai qualcosa oggi di cui il tuo futuro io ti ringrazierà.',\n\t\t\tfr: \"Fais quelque chose aujourd'hui dont ton futur toi te remerciera.\",\n\t\t\tes: 'Haz algo hoy por lo que tu yo futuro te lo agradecerá.',\n\t\t},\n\t\tauthor: 'Sean Patrick Flanery',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tyear: 2012,\n\t\ttags: ['zukunft', 'handeln', 'selbstverbesserung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Schauspieler (*1965), bekannt aus The Boondock Saints.',\n\t\t\ten: 'American actor (*1965), known for The Boondock Saints.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mot-8',\n\t\ttext: {\n\t\t\toriginal: '种一棵树最好的时间是二十年前,其次是现在。',\n\t\t\tde: 'Der beste Zeitpunkt einen Baum zu pflanzen war vor 20 Jahren. Der zweitbeste ist jetzt.',\n\t\t\ten: 'The best time to plant a tree was 20 years ago. The second best time is now.',\n\t\t\tit: 'Il momento migliore per piantare un albero era 20 anni fa. Il secondo momento migliore è adesso.',\n\t\t\tfr: 'Le meilleur moment pour planter un arbre était il y a 20 ans. Le deuxième meilleur moment est maintenant.',\n\t\t\tes: 'El mejor momento para plantar un árbol fue hace 20 años. El segundo mejor momento es ahora.',\n\t\t},\n\t\tauthor: 'Chinesisches Sprichwort',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'zh',\n\t\ttags: ['handeln', 'zeit', 'anfang'],\n\t\tverified: true,\n\t},\n\n\t// ============================================\n\t// WEISHEIT\n\t// ============================================\n\t{\n\t\tid: 'weis-1',\n\t\ttext: {\n\t\t\toriginal: '道可道,非常道。',\n\t\t\tde: 'Der Weg, der sich aussprechen lässt, ist nicht der ewige Weg.',\n\t\t\ten: 'The way that can be spoken of is not the eternal way.',\n\t\t\tit: 'La via che può essere espressa non è la via eterna.',\n\t\t\tfr: \"La voie qui peut être exprimée par la parole n'est pas la Voie éternelle.\",\n\t\t\tes: 'El camino que puede expresarse no es el camino eterno.',\n\t\t},\n\t\tauthor: 'Laozi',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'zh',\n\t\tsource: 'Tao Te King, Kapitel 1',\n\t\tyear: -600,\n\t\ttags: ['weg', 'tao', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Chinesischer Philosoph (6. Jh. v. Chr.), Begründer des Taoismus.',\n\t\t\ten: 'Chinese philosopher (6th century BC), founder of Taoism.',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-2',\n\t\ttext: {\n\t\t\toriginal: 'Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren.',\n\t\t\tde: 'Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren.',\n\t\t\ten: 'He who fights may lose. He who does not fight has already lost.',\n\t\t\tit: 'Chi lotta può perdere. Chi non lotta ha già perso.',\n\t\t\tfr: 'Qui se bat peut perdre. Qui ne se bat pas a déjà perdu.',\n\t\t\tes: 'Quien lucha puede perder. Quien no lucha ya ha perdido.',\n\t\t},\n\t\tauthor: 'Bertolt Brecht',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'de',\n\t\tsource: 'Die Mutter',\n\t\tyear: 1932,\n\t\ttags: ['kampf', 'mut', 'handeln'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dramatiker und Lyriker (1898-1956), Begründer des epischen Theaters.',\n\t\t\ten: 'German playwright and poet (1898-1956), founder of epic theatre.',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-3',\n\t\ttext: {\n\t\t\toriginal: \"On ne voit bien qu'avec le cœur. L'essentiel est invisible pour les yeux.\",\n\t\t\tde: 'Man sieht nur mit dem Herzen gut. Das Wesentliche ist für die Augen unsichtbar.',\n\t\t\ten: 'One sees clearly only with the heart. The essential is invisible to the eyes.',\n\t\t\tit: \"Si vede bene solo con il cuore. L'essenziale è invisibile agli occhi.\",\n\t\t\tfr: \"On ne voit bien qu'avec le cœur. L'essentiel est invisible pour les yeux.\",\n\t\t\tes: 'Solo se ve bien con el corazón. Lo esencial es invisible a los ojos.',\n\t\t},\n\t\tauthor: 'Antoine de Saint-Exupéry',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'fr',\n\t\tsource: 'Der kleine Prinz (Le Petit Prince)',\n\t\tyear: 1943,\n\t\ttags: ['herz', 'sehen', 'wesentlich'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französischer Schriftsteller und Pilot (1900-1944), Autor von \"Der kleine Prinz\".',\n\t\t\ten: 'French writer and aviator (1900-1944), author of \"The Little Prince\".',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-4',\n\t\ttext: {\n\t\t\toriginal: 'Non quia difficilia sunt non audemus, sed quia non audemus difficilia sunt.',\n\t\t\tde: 'Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.',\n\t\t\ten: 'It is not because things are difficult that we do not dare, but because we do not dare that things are difficult.',\n\t\t\tit: 'Non è perché le cose sono difficili che non osiamo, ma perché non osiamo che sono difficili.',\n\t\t\tfr: \"Ce n'est pas parce que les choses sont difficiles que nous n'osons pas, c'est parce que nous n'osons pas qu'elles sont difficiles.\",\n\t\t\tes: 'No es porque las cosas sean difíciles que no nos atrevemos, sino porque no nos atrevemos que son difíciles.',\n\t\t},\n\t\tauthor: 'Seneca',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Epistulae morales ad Lucilium, Brief 104',\n\t\tyear: 65,\n\t\ttags: ['mut', 'wagnis', 'schwierigkeit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Philosoph und Staatsmann (ca. 4 v. Chr. - 65 n. Chr.).',\n\t\t\ten: 'Roman philosopher and statesman (c. 4 BC - 65 AD).',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-5',\n\t\ttext: {\n\t\t\toriginal: 'Scientia potentia est.',\n\t\t\tde: 'Wissen ist Macht.',\n\t\t\ten: 'Knowledge is power.',\n\t\t\tit: 'La conoscenza è potere.',\n\t\t\tfr: 'Le savoir est le pouvoir.',\n\t\t\tes: 'El conocimiento es poder.',\n\t\t},\n\t\tauthor: 'Francis Bacon',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Meditationes Sacrae',\n\t\tyear: 1597,\n\t\ttags: ['wissen', 'macht', 'bildung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Englischer Philosoph und Staatsmann (1561-1626), Begründer des Empirismus.',\n\t\t\ten: 'English philosopher and statesman (1561-1626), founder of empiricism.',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-6',\n\t\ttext: {\n\t\t\toriginal: 'ἓν οἶδα ὅτι οὐδὲν οἶδα.',\n\t\t\tde: 'Ich weiß, dass ich nichts weiß.',\n\t\t\ten: 'I know that I know nothing.',\n\t\t\tit: 'So di non sapere.',\n\t\t\tfr: 'Je sais que je ne sais rien.',\n\t\t\tes: 'Solo sé que no sé nada.',\n\t\t},\n\t\tauthor: 'Sokrates',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Überliefert durch Platon, Apologie des Sokrates',\n\t\tyear: -399,\n\t\ttags: ['wissen', 'demut', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (469-399 v. Chr.), Begründer der abendländischen Philosophie.',\n\t\t\ten: 'Greek philosopher (469-399 BC), founder of Western philosophy.',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-7',\n\t\ttext: {\n\t\t\toriginal: 'τὰ πάντα ῥεῖ.',\n\t\t\tde: 'Alles fließt.',\n\t\t\ten: 'Everything flows.',\n\t\t\tit: 'Tutto scorre.',\n\t\t\tfr: 'Tout coule.',\n\t\t\tes: 'Todo fluye.',\n\t\t},\n\t\tauthor: 'Heraklit',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Fragmente',\n\t\tyear: -500,\n\t\ttags: ['veränderung', 'leben', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph aus Ephesos (ca. 535-475 v. Chr.).',\n\t\t\ten: 'Greek philosopher from Ephesus (c. 535-475 BC).',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-8',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.',\n\t\t\tde: 'Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.',\n\t\t\ten: 'Act only according to that maxim by which you can at the same time will that it should become a universal law.',\n\t\t\tit: 'Agisci solo secondo quella massima che puoi al contempo volere che diventi una legge universale.',\n\t\t\tfr: \"Agis seulement selon la maxime grâce à laquelle tu peux vouloir en même temps qu'elle devienne une loi universelle.\",\n\t\t\tes: 'Obra solo según aquella máxima por la cual puedas querer que al mismo tiempo se convierta en ley universal.',\n\t\t},\n\t\tauthor: 'Immanuel Kant',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'de',\n\t\tsource: 'Grundlegung zur Metaphysik der Sitten',\n\t\tyear: 1785,\n\t\ttags: ['ethik', 'moral', 'philosophie', 'kategorischer imperativ'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Philosoph der Aufklärung (1724-1804).',\n\t\t\ten: 'German philosopher of the Enlightenment (1724-1804).',\n\t\t},\n\t},\n\t{\n\t\tid: 'weis-9',\n\t\ttext: {\n\t\t\toriginal: '己所不欲,勿施於人。',\n\t\t\tde: 'Was du nicht willst, dass man dir tu, das füg auch keinem anderen zu.',\n\t\t\ten: 'Do not do to others what you do not want done to yourself.',\n\t\t\tit: 'Non fare agli altri ciò che non vorresti fosse fatto a te.',\n\t\t\tfr: \"Ne fais pas aux autres ce que tu ne voudrais pas qu'on te fasse.\",\n\t\t\tes: 'No hagas a otros lo que no quieras que te hagan a ti.',\n\t\t},\n\t\tauthor: 'Konfuzius',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'zh',\n\t\tsource: 'Analekten (Lunyu), Kapitel 15',\n\t\tyear: -500,\n\t\ttags: ['ethik', 'goldene regel', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Chinesischer Philosoph (551-479 v. Chr.), Begründer des Konfuzianismus.',\n\t\t\ten: 'Chinese philosopher (551-479 BC), founder of Confucianism.',\n\t\t},\n\t},\n\n\t// ============================================\n\t// LIEBE\n\t// ============================================\n\t{\n\t\tid: 'liebe-1',\n\t\ttext: {\n\t\t\toriginal: 'Where there is love there is life.',\n\t\t\tde: 'Wo Liebe ist, da ist auch Leben.',\n\t\t\ten: 'Where there is love there is life.',\n\t\t\tit: \"Dove c'è amore c'è vita.\",\n\t\t\tfr: \"Là où il y a de l'amour, il y a de la vie.\",\n\t\t\tes: 'Donde hay amor hay vida.',\n\t\t},\n\t\tauthor: 'Mahatma Gandhi',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1925,\n\t\ttags: ['liebe', 'leben'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Indischer Unabhängigkeitskämpfer und geistiger Führer (1869-1948).',\n\t\t\ten: 'Indian independence activist and spiritual leader (1869-1948).',\n\t\t},\n\t},\n\t{\n\t\tid: 'liebe-2',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Die Liebe allein versteht das Geheimnis, andere zu beschenken und dabei selbst reich zu werden.',\n\t\t\tde: 'Die Liebe allein versteht das Geheimnis, andere zu beschenken und dabei selbst reich zu werden.',\n\t\t\ten: 'Love alone understands the secret of giving to others and becoming rich oneself.',\n\t\t\tit: \"Solo l'amore comprende il segreto di donare agli altri e arricchirsi.\",\n\t\t\tfr: \"Seul l'amour comprend le secret d'offrir aux autres et de s'enrichir soi-même.\",\n\t\t\tes: 'Solo el amor entiende el secreto de dar a los demás y enriquecerse uno mismo.',\n\t\t},\n\t\tauthor: 'Clemens Brentano',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1810,\n\t\ttags: ['liebe', 'geben', 'reichtum'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter der Romantik (1778-1842).',\n\t\t\ten: 'German poet of the Romantic era (1778-1842).',\n\t\t},\n\t},\n\t{\n\t\tid: 'liebe-3',\n\t\ttext: {\n\t\t\toriginal: \"Il n'y a qu'un bonheur dans la vie, c'est d'aimer et d'être aimé.\",\n\t\t\tde: 'Es gibt nur ein Glück in diesem Leben: zu lieben und geliebt zu werden.',\n\t\t\ten: 'There is only one happiness in this life: to love and be loved.',\n\t\t\tit: \"C'è solo una felicità nella vita: amare ed essere amati.\",\n\t\t\tfr: \"Il n'y a qu'un bonheur dans la vie, c'est d'aimer et d'être aimé.\",\n\t\t\tes: 'Solo hay una felicidad en la vida: amar y ser amado.',\n\t\t},\n\t\tauthor: 'George Sand',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'fr',\n\t\tsource: 'Brief an Lina Calamatta',\n\t\tyear: 1862,\n\t\ttags: ['liebe', 'glück'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französische Schriftstellerin der Romantik (1804-1876), bürgerlicher Name Amantine Aurore Dupin.',\n\t\t\ten: 'French Romantic era novelist (1804-1876), born Amantine Aurore Dupin.',\n\t\t},\n\t},\n\t{\n\t\tid: 'liebe-4',\n\t\ttext: {\n\t\t\toriginal: 'Liebe ist das einzige, was wächst, wenn wir es verschwenden.',\n\t\t\tde: 'Liebe ist das einzige, was wächst, wenn wir es verschwenden.',\n\t\t\ten: 'Love is the only thing that grows when we waste it.',\n\t\t\tit: \"L'amore è l'unica cosa che cresce quando la sprechiamo.\",\n\t\t\tfr: \"L'amour est la seule chose qui grandit quand on la gaspille.\",\n\t\t\tes: 'El amor es lo único que crece cuando lo derrochamos.',\n\t\t},\n\t\tauthor: 'Ricarda Huch',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1920,\n\t\ttags: ['liebe', 'wachstum'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsche Dichterin, Philosophin und Historikerin (1864-1947).',\n\t\t\ten: 'German poet, philosopher, and historian (1864-1947).',\n\t\t},\n\t},\n\t{\n\t\tid: 'liebe-5',\n\t\ttext: {\n\t\t\toriginal: \"La plus grande chose du monde, c'est de savoir être à soi.\",\n\t\t\tde: 'Die größte Sache der Welt ist es, zu wissen, wie man sich selbst gehört.',\n\t\t\ten: 'The greatest thing in the world is to know how to belong to oneself.',\n\t\t\tit: 'La cosa più grande del mondo è sapere come appartenere a se stessi.',\n\t\t\tfr: \"La plus grande chose du monde, c'est de savoir être à soi.\",\n\t\t\tes: 'La cosa más grande del mundo es saber cómo pertenecerse a uno mismo.',\n\t\t},\n\t\tauthor: 'Michel de Montaigne',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'fr',\n\t\tsource: 'Essais, Buch I, Kapitel 39',\n\t\tyear: 1580,\n\t\ttags: ['selbstliebe', 'identität'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französischer Philosoph und Begründer der Essayistik (1533-1592).',\n\t\t\ten: 'French philosopher and founder of the essay form (1533-1592).',\n\t\t},\n\t},\n\t{\n\t\tid: 'liebe-6',\n\t\ttext: {\n\t\t\toriginal: \"Amare non è guardarsi l'un l'altro, ma guardare insieme nella stessa direzione.\",\n\t\t\tde: 'Lieben, das heißt nicht, einander anschauen, sondern gemeinsam in die gleiche Richtung blicken.',\n\t\t\ten: 'Love does not consist in gazing at each other, but in looking outward together in the same direction.',\n\t\t\tit: \"Amare non è guardarsi l'un l'altro, ma guardare insieme nella stessa direzione.\",\n\t\t\tfr: \"Aimer, ce n'est pas se regarder l'un l'autre, c'est regarder ensemble dans la même direction.\",\n\t\t\tes: 'Amar no es mirarse el uno al otro, sino mirar juntos en la misma dirección.',\n\t\t},\n\t\tauthor: 'Antoine de Saint-Exupéry',\n\t\tcategory: 'liebe',\n\t\toriginalLanguage: 'fr',\n\t\tsource: 'Terre des hommes',\n\t\tyear: 1939,\n\t\ttags: ['liebe', 'partnerschaft', 'gemeinsam'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französischer Schriftsteller und Pilot (1900-1944).',\n\t\t\ten: 'French writer and aviator (1900-1944).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// LEBEN\n\t// ============================================\n\t{\n\t\tid: 'leben-1',\n\t\ttext: {\n\t\t\toriginal: 'Life is like riding a bicycle. To keep your balance, you must keep moving.',\n\t\t\tde: 'Das Leben ist wie Fahrrad fahren. Um die Balance zu halten, musst du in Bewegung bleiben.',\n\t\t\ten: 'Life is like riding a bicycle. To keep your balance, you must keep moving.',\n\t\t\tit: \"La vita è come andare in bicicletta. Per mantenere l'equilibrio devi muoverti.\",\n\t\t\tfr: \"La vie, c'est comme une bicyclette. Il faut avancer pour ne pas perdre l'équilibre.\",\n\t\t\tes: 'La vida es como andar en bicicleta. Para mantener el equilibrio, debes seguir moviéndote.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Brief an seinen Sohn Eduard',\n\t\tyear: 1930,\n\t\ttags: ['leben', 'balance', 'bewegung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-amerikanischer Physiker (1879-1955), Nobelpreisträger.',\n\t\t\ten: 'German-American physicist (1879-1955), Nobel laureate.',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-2',\n\t\ttext: {\n\t\t\toriginal: \"Life is what happens when you're busy making other plans.\",\n\t\t\tde: 'Leben ist das, was passiert, während du damit beschäftigt bist, andere Pläne zu machen.',\n\t\t\ten: \"Life is what happens when you're busy making other plans.\",\n\t\t\tit: 'La vita è quello che ti succede mentre sei impegnato a fare altri progetti.',\n\t\t\tfr: \"La vie est ce qui arrive pendant que vous êtes occupé à faire d'autres projets.\",\n\t\t\tes: 'La vida es lo que pasa mientras estás ocupado haciendo otros planes.',\n\t\t},\n\t\tauthor: 'John Lennon',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Beautiful Boy (Darling Boy)',\n\t\tyear: 1980,\n\t\ttags: ['leben', 'pläne', 'gegenwart'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Britischer Musiker (1940-1980), Mitbegründer der Beatles.',\n\t\t\ten: 'British musician (1940-1980), co-founder of the Beatles.',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-3',\n\t\ttext: {\n\t\t\toriginal: 'Das Leben ist zu kurz für später.',\n\t\t\tde: 'Das Leben ist zu kurz für später.',\n\t\t\ten: 'Life is too short for later.',\n\t\t\tit: 'La vita è troppo breve per il dopo.',\n\t\t\tfr: 'La vie est trop courte pour plus tard.',\n\t\t\tes: 'La vida es demasiado corta para después.',\n\t\t},\n\t\tauthor: 'Alexandra Reinwarth',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'de',\n\t\tsource: 'Buchtitel',\n\t\tyear: 2017,\n\t\ttags: ['leben', 'zeit', 'gegenwart'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsche Autorin und Journalistin (*1972).',\n\t\t\ten: 'German author and journalist (*1972).',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-4',\n\t\ttext: {\n\t\t\toriginal: 'Ὡς ἐσχάτην ἑκάστην ἡμέραν βίου διεξάγειν.',\n\t\t\tde: 'Lebe jeden Tag, als wäre es dein letzter.',\n\t\t\ten: 'Live every day as if it were your last.',\n\t\t\tit: \"Vivi ogni giorno come se fosse l'ultimo.\",\n\t\t\tfr: \"Vis chaque jour comme si c'était le dernier.\",\n\t\t\tes: 'Vive cada día como si fuera el último.',\n\t\t},\n\t\tauthor: 'Marcus Aurelius',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Selbstbetrachtungen (Τὰ εἰς ἑαυτόν), Buch VII',\n\t\tyear: 175,\n\t\ttags: ['leben', 'tag', 'gegenwart', 'stoizismus'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Kaiser (121-180 n. Chr.) und stoischer Philosoph.',\n\t\t\ten: 'Roman Emperor (121-180 AD) and Stoic philosopher.',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-5',\n\t\ttext: {\n\t\t\toriginal: 'Livet er ikke et problem, der skal løses, men en virkelighed, der skal opleves.',\n\t\t\tde: 'Das Leben ist kein Problem, das gelöst werden muss, sondern eine Wirklichkeit, die erfahren werden will.',\n\t\t\ten: 'Life is not a problem to be solved, but a reality to be experienced.',\n\t\t\tit: 'La vita non è un problema da risolvere, ma una realtà da vivere.',\n\t\t\tfr: \"La vie n'est pas un problème à résoudre, mais une réalité à vivre.\",\n\t\t\tes: 'La vida no es un problema a resolver, sino una realidad a experimentar.',\n\t\t},\n\t\tauthor: 'Søren Kierkegaard',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'da',\n\t\tyear: 1843,\n\t\ttags: ['leben', 'erfahrung', 'philosophie', 'existenzialismus'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Dänischer Philosoph (1813-1855), Begründer des Existentialismus.',\n\t\t\ten: 'Danish philosopher (1813-1855), founder of existentialism.',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-6',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Wer sein Leben so einrichtet, dass er niemals auf die Nase fallen kann, der kann nur auf dem Bauch kriechen.',\n\t\t\tde: 'Wer sein Leben so einrichtet, dass er niemals auf die Nase fallen kann, der kann nur auf dem Bauch kriechen.',\n\t\t\ten: 'He who arranges his life so that he can never fall on his face can only crawl on his belly.',\n\t\t\tit: 'Chi organizza la sua vita in modo da non cadere mai sul naso può solo strisciare sulla pancia.',\n\t\t\tfr: 'Celui qui organise sa vie de façon à ne jamais tomber sur le nez ne peut que ramper sur le ventre.',\n\t\t\tes: 'Quien organiza su vida para nunca caer de cara solo puede arrastrarse sobre el vientre.',\n\t\t},\n\t\tauthor: 'Heinz Riesenhuber',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1990,\n\t\ttags: ['leben', 'risiko', 'mut'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Politiker (CDU, *1935), ehemaliger Bundesminister für Forschung.',\n\t\t\ten: 'German politician (CDU, *1935), former Federal Minister of Research.',\n\t\t},\n\t},\n\t{\n\t\tid: 'leben-7',\n\t\ttext: {\n\t\t\toriginal: 'Carpe diem, quam minimum credula postero.',\n\t\t\tde: 'Genieße den Tag und vertraue möglichst wenig auf den folgenden.',\n\t\t\ten: 'Seize the day, putting as little trust as possible in the future.',\n\t\t\tit: 'Cogli il giorno, confidando il meno possibile nel domani.',\n\t\t\tfr: 'Cueille le jour présent sans te soucier du lendemain.',\n\t\t\tes: 'Aprovecha el día, confiando lo menos posible en el mañana.',\n\t\t},\n\t\tauthor: 'Horaz',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Oden, Buch I, Ode 11',\n\t\tyear: -23,\n\t\ttags: ['leben', 'gegenwart', 'carpe diem'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Dichter (65-8 v. Chr.).',\n\t\t\ten: 'Roman poet (65-8 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// ERFOLG\n\t// ============================================\n\t{\n\t\tid: 'erfolg-1',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Coming together is a beginning, staying together is progress, and working together is success.',\n\t\t\tde: 'Zusammenkommen ist ein Beginn, Zusammenbleiben ist ein Fortschritt, Zusammenarbeiten ist ein Erfolg.',\n\t\t\ten: 'Coming together is a beginning, staying together is progress, and working together is success.',\n\t\t\tit: 'Riunirsi è un inizio, restare insieme è un progresso, lavorare insieme è un successo.',\n\t\t\tfr: 'Se réunir est un début, rester ensemble est un progrès, travailler ensemble est un succès.',\n\t\t\tes: 'Reunirse es un comienzo, mantenerse juntos es un progreso, trabajar juntos es un éxito.',\n\t\t},\n\t\tauthor: 'Henry Ford',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1920,\n\t\ttags: ['erfolg', 'teamwork', 'zusammenarbeit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Industrieller (1863-1947), Gründer der Ford Motor Company.',\n\t\t\ten: 'American industrialist (1863-1947), founder of Ford Motor Company.',\n\t\t},\n\t},\n\t{\n\t\tid: 'erfolg-2',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'The price of success is hard work, dedication to the job at hand, and the determination that whether we win or lose, we have applied the best of ourselves to the task at hand.',\n\t\t\tde: 'Der Preis des Erfolges ist Hingabe, harte Arbeit und unablässiger Einsatz für das, was man erreichen will.',\n\t\t\ten: 'The price of success is hard work, dedication to the job at hand, and the determination that whether we win or lose, we have applied the best of ourselves.',\n\t\t\tit: 'Il prezzo del successo è il duro lavoro, la dedizione al compito da svolgere e la determinazione.',\n\t\t\tfr: 'Le prix du succès est le travail acharné, le dévouement au travail à accomplir et la détermination.',\n\t\t\tes: 'El precio del éxito es el trabajo duro, la dedicación a la tarea en cuestión y la determinación.',\n\t\t},\n\t\tauthor: 'Vince Lombardi',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1960,\n\t\ttags: ['erfolg', 'arbeit', 'hingabe'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Football-Trainer (1913-1970), Legende der NFL.',\n\t\t\ten: 'American football coach (1913-1970), NFL legend.',\n\t\t},\n\t},\n\t{\n\t\tid: 'erfolg-3',\n\t\ttext: {\n\t\t\toriginal: \"I have not failed. I've just found 10,000 ways that won't work.\",\n\t\t\tde: 'Ich habe nicht versagt. Ich habe nur 10.000 Wege gefunden, die nicht funktionieren.',\n\t\t\ten: \"I have not failed. I've just found 10,000 ways that won't work.\",\n\t\t\tit: 'Non ho fallito. Ho solo trovato 10.000 modi che non funzionano.',\n\t\t\tfr: \"Je n'ai pas échoué. J'ai juste trouvé 10 000 façons qui ne fonctionnent pas.\",\n\t\t\tes: 'No he fracasado. Solo he encontrado 10.000 formas que no funcionan.',\n\t\t},\n\t\tauthor: 'Thomas Edison',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1878,\n\t\ttags: ['erfolg', 'scheitern', 'ausdauer', 'innovation'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Erfinder und Unternehmer (1847-1931).',\n\t\t\ten: 'American inventor and businessman (1847-1931).',\n\t\t},\n\t},\n\t{\n\t\tid: 'erfolg-4',\n\t\ttext: {\n\t\t\toriginal: 'Erfolg hat drei Buchstaben: TUN.',\n\t\t\tde: 'Erfolg hat drei Buchstaben: TUN.',\n\t\t\ten: 'Success has three letters: DO.',\n\t\t\tit: 'Il successo ha tre lettere: FARE.',\n\t\t\tfr: 'Le succès a trois lettres : AGIR.',\n\t\t\tes: 'El éxito tiene tres letras: HAZ.',\n\t\t},\n\t\tauthor: 'Johann Wolfgang von Goethe',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1810,\n\t\ttags: ['erfolg', 'handeln'],\n\t\tverified: false,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter und Naturforscher (1749-1832).',\n\t\t\ten: 'German poet and naturalist (1749-1832).',\n\t\t},\n\t},\n\t{\n\t\tid: 'erfolg-5',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Es ist nicht genug, zu wissen, man muss auch anwenden; es ist nicht genug, zu wollen, man muss auch tun.',\n\t\t\tde: 'Es ist nicht genug, zu wissen, man muss auch anwenden; es ist nicht genug, zu wollen, man muss auch tun.',\n\t\t\ten: 'It is not enough to know, one must also apply; it is not enough to want, one must also do.',\n\t\t\tit: 'Non basta sapere, bisogna anche applicare; non basta volere, bisogna anche fare.',\n\t\t\tfr: 'Il ne suffit pas de savoir, il faut aussi appliquer ; il ne suffit pas de vouloir, il faut aussi agir.',\n\t\t\tes: 'No basta saber, se debe también aplicar; no basta querer, se debe también hacer.',\n\t\t},\n\t\tauthor: 'Johann Wolfgang von Goethe',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'de',\n\t\tsource: 'Wilhelm Meisters Wanderjahre',\n\t\tyear: 1821,\n\t\ttags: ['erfolg', 'handeln', 'wissen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter und Naturforscher (1749-1832).',\n\t\t\ten: 'German poet and naturalist (1749-1832).',\n\t\t},\n\t},\n\t{\n\t\tid: 'erfolg-6',\n\t\ttext: {\n\t\t\toriginal: 'The only place where success comes before work is in the dictionary.',\n\t\t\tde: 'Der einzige Ort, an dem Erfolg vor der Arbeit kommt, ist im Wörterbuch.',\n\t\t\ten: 'The only place where success comes before work is in the dictionary.',\n\t\t\tit: \"L'unico posto dove il successo viene prima del lavoro è nel dizionario.\",\n\t\t\tfr: 'Le seul endroit où le succès vient avant le travail est dans le dictionnaire.',\n\t\t\tes: 'El único lugar donde el éxito viene antes que el trabajo es en el diccionario.',\n\t\t},\n\t\tauthor: 'Vidal Sassoon',\n\t\tcategory: 'erfolg',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1970,\n\t\ttags: ['erfolg', 'arbeit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Britischer Friseur und Unternehmer (1928-2012).',\n\t\t\ten: 'British hairdresser and businessman (1928-2012).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// GLÜCK\n\t// ============================================\n\t{\n\t\tid: 'glueck-1',\n\t\ttext: {\n\t\t\toriginal: 'Das Glück ist das einzige, das sich verdoppelt, wenn man es teilt.',\n\t\t\tde: 'Glück ist das Einzige, das sich verdoppelt, wenn man es teilt.',\n\t\t\ten: 'Happiness is the only thing that doubles when you share it.',\n\t\t\tit: \"La felicità è l'unica cosa che raddoppia quando la condividi.\",\n\t\t\tfr: 'Le bonheur est la seule chose qui double quand on le partage.',\n\t\t\tes: 'La felicidad es lo único que se duplica cuando se comparte.',\n\t\t},\n\t\tauthor: 'Albert Schweitzer',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1950,\n\t\ttags: ['glück', 'teilen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-französischer Arzt, Theologe und Friedensnobelpreisträger (1875-1965).',\n\t\t\ten: 'German-French physician, theologian, and Nobel Peace Prize laureate (1875-1965).',\n\t\t},\n\t},\n\t{\n\t\tid: 'glueck-2',\n\t\ttext: {\n\t\t\toriginal: 'सुखं न लभ्यते सुखेन।',\n\t\t\tde: 'Es gibt keinen Weg zum Glück. Glücklich sein ist der Weg.',\n\t\t\ten: 'There is no path to happiness. Happiness is the path.',\n\t\t\tit: 'Non esiste un percorso verso la felicità. La felicità è il percorso.',\n\t\t\tfr: \"Il n'y a pas de chemin vers le bonheur. Le bonheur est le chemin.\",\n\t\t\tes: 'No hay un camino hacia la felicidad. La felicidad es el camino.',\n\t\t},\n\t\tauthor: 'Buddha',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'sa',\n\t\tyear: -500,\n\t\ttags: ['glück', 'weg', 'leben', 'buddhismus'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Begründer des Buddhismus (ca. 563-483 v. Chr.).',\n\t\t\ten: 'Founder of Buddhism (c. 563-483 BC).',\n\t\t},\n\t},\n\t{\n\t\tid: 'glueck-3',\n\t\ttext: {\n\t\t\toriginal: 'It is not happy people who are thankful. It is thankful people who are happy.',\n\t\t\tde: 'Nicht die Glücklichen sind dankbar. Es sind die Dankbaren, die glücklich sind.',\n\t\t\ten: 'It is not happy people who are thankful. It is thankful people who are happy.',\n\t\t\tit: 'Non sono le persone felici ad essere grate. Sono le persone grate ad essere felici.',\n\t\t\tfr: 'Ce ne sont pas les gens heureux qui sont reconnaissants. Ce sont les gens reconnaissants qui sont heureux.',\n\t\t\tes: 'No son las personas felices las que son agradecidas. Son las personas agradecidas las que son felices.',\n\t\t},\n\t\tauthor: 'Francis Bacon',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1600,\n\t\ttags: ['glück', 'dankbarkeit'],\n\t\tverified: false,\n\t\tauthorBio: {\n\t\t\tde: 'Englischer Philosoph und Staatsmann (1561-1626).',\n\t\t\ten: 'English philosopher and statesman (1561-1626).',\n\t\t},\n\t},\n\t{\n\t\tid: 'glueck-4',\n\t\ttext: {\n\t\t\toriginal: 'Sammenligning er enden på lykke og begyndelsen på utilfredshed.',\n\t\t\tde: 'Das Vergleichen ist das Ende des Glücks und der Anfang der Unzufriedenheit.',\n\t\t\ten: 'Comparison is the end of happiness and the beginning of discontent.',\n\t\t\tit: \"Il confronto è la fine della felicità e l'inizio dell'insoddisfazione.\",\n\t\t\tfr: \"La comparaison est la fin du bonheur et le début de l'insatisfaction.\",\n\t\t\tes: 'La comparación es el fin de la felicidad y el comienzo de la insatisfacción.',\n\t\t},\n\t\tauthor: 'Søren Kierkegaard',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'da',\n\t\tyear: 1847,\n\t\ttags: ['glück', 'vergleich', 'zufriedenheit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Dänischer Philosoph (1813-1855).',\n\t\t\ten: 'Danish philosopher (1813-1855).',\n\t\t},\n\t},\n\t{\n\t\tid: 'glueck-5',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Glück entsteht oft durch Aufmerksamkeit in kleinen Dingen, Unglück oft durch Vernachlässigung kleiner Dinge.',\n\t\t\tde: 'Glück entsteht oft durch Aufmerksamkeit in kleinen Dingen, Unglück oft durch Vernachlässigung kleiner Dinge.',\n\t\t\ten: 'Happiness often comes from attention to small things, unhappiness often from neglecting small things.',\n\t\t\tit: \"La felicità nasce spesso dall'attenzione alle piccole cose, l'infelicità spesso dalla trascuratezza delle piccole cose.\",\n\t\t\tfr: \"Le bonheur vient souvent de l'attention aux petites choses, le malheur souvent de la négligence des petites choses.\",\n\t\t\tes: 'La felicidad a menudo proviene de la atención a las pequeñas cosas, la infelicidad a menudo del descuido de las pequeñas cosas.',\n\t\t},\n\t\tauthor: 'Wilhelm Busch',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1875,\n\t\ttags: ['glück', 'aufmerksamkeit', 'details'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter, Zeichner und Maler (1832-1908).',\n\t\t\ten: 'German poet, illustrator, and painter (1832-1908).',\n\t\t},\n\t},\n\t{\n\t\tid: 'glueck-6',\n\t\ttext: {\n\t\t\toriginal: 'Εὐδαιμονία ἐστὶν ἐνέργεια ψυχῆς κατ᾽ ἀρετὴν τελείαν.',\n\t\t\tde: 'Glückseligkeit ist eine Tätigkeit der Seele gemäß vollkommener Tugend.',\n\t\t\ten: 'Happiness is an activity of the soul in accordance with complete virtue.',\n\t\t\tit: \"La felicità è un'attività dell'anima in accordo con la virtù perfetta.\",\n\t\t\tfr: \"Le bonheur est une activité de l'âme conforme à la vertu parfaite.\",\n\t\t\tes: 'La felicidad es una actividad del alma de acuerdo con la virtud perfecta.',\n\t\t},\n\t\tauthor: 'Aristoteles',\n\t\tcategory: 'glueck',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Nikomachische Ethik, Buch I',\n\t\tyear: -340,\n\t\ttags: ['glück', 'tugend', 'seele', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (384-322 v. Chr.).',\n\t\t\ten: 'Greek philosopher (384-322 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// FREUNDSCHAFT\n\t// ============================================\n\t{\n\t\tid: 'freund-1',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'A friend is one that knows you as you are, understands where you have been, accepts what you have become, and still, gently allows you to grow.',\n\t\t\tde: 'Ein Freund ist jemand, der dich kennt wie du bist, versteht wo du warst, akzeptiert was aus dir geworden ist, und dir dennoch erlaubt zu wachsen.',\n\t\t\ten: 'A friend is one that knows you as you are, understands where you have been, accepts what you have become, and still, gently allows you to grow.',\n\t\t\tit: 'Un amico è qualcuno che ti conosce per quello che sei, capisce dove sei stato, accetta ciò che sei diventato, e ti permette ancora di crescere.',\n\t\t\tfr: \"Un ami est quelqu'un qui te connaît tel que tu es, comprend où tu as été, accepte ce que tu es devenu, et te permet encore de grandir.\",\n\t\t\tes: 'Un amigo es alguien que te conoce como eres, entiende dónde has estado, acepta en lo que te has convertido, y aún así te permite crecer.',\n\t\t},\n\t\tauthor: 'William Shakespeare',\n\t\tcategory: 'freundschaft',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1600,\n\t\ttags: ['freundschaft', 'wachstum', 'akzeptanz'],\n\t\tverified: false,\n\t\tauthorBio: {\n\t\t\tde: 'Englischer Dramatiker und Dichter (1564-1616).',\n\t\t\ten: 'English playwright and poet (1564-1616).',\n\t\t},\n\t},\n\t{\n\t\tid: 'freund-2',\n\t\ttext: {\n\t\t\toriginal: 'Φιλία ψυχὴ δύο σώμασιν ἐνοικοῦσα.',\n\t\t\tde: 'Freundschaft ist eine Seele in zwei Körpern.',\n\t\t\ten: 'Friendship is one soul dwelling in two bodies.',\n\t\t\tit: \"L'amicizia è un'anima che abita in due corpi.\",\n\t\t\tfr: \"L'amitié est une âme habitant deux corps.\",\n\t\t\tes: 'La amistad es un alma que habita en dos cuerpos.',\n\t\t},\n\t\tauthor: 'Aristoteles',\n\t\tcategory: 'freundschaft',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Überliefert durch Diogenes Laertios',\n\t\tyear: -340,\n\t\ttags: ['freundschaft', 'seele', 'verbindung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (384-322 v. Chr.).',\n\t\t\ten: 'Greek philosopher (384-322 BC).',\n\t\t},\n\t},\n\t{\n\t\tid: 'freund-3',\n\t\ttext: {\n\t\t\toriginal: 'A friend is a person with whom I may be sincere. Before him I may think aloud.',\n\t\t\tde: 'Ein Freund ist ein Mensch, vor dem ich aufrichtig sein kann. Vor ihm kann ich laut denken.',\n\t\t\ten: 'A friend is a person with whom I may be sincere. Before him I may think aloud.',\n\t\t\tit: 'Un amico è una persona con cui posso essere sincero. Davanti a lui posso pensare ad alta voce.',\n\t\t\tfr: 'Un ami est une personne avec qui je peux être sincère. Devant lui, je peux penser tout haut.',\n\t\t\tes: 'Un amigo es una persona con quien puedo ser sincero. Ante él puedo pensar en voz alta.',\n\t\t},\n\t\tauthor: 'Ralph Waldo Emerson',\n\t\tcategory: 'freundschaft',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Essays: First Series - Friendship',\n\t\tyear: 1841,\n\t\ttags: ['freundschaft', 'ehrlichkeit', 'vertrauen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Philosoph und Schriftsteller (1803-1882).',\n\t\t\ten: 'American philosopher and writer (1803-1882).',\n\t\t},\n\t},\n\t{\n\t\tid: 'freund-4',\n\t\ttext: {\n\t\t\toriginal: 'ἡ φιλία τῶν ἀναγκαιοτάτων εἰς τὸν βίον.',\n\t\t\tde: 'Die Freundschaft gehört zum Notwendigsten in unserem Leben.',\n\t\t\ten: 'Friendship is one of the most necessary things in life.',\n\t\t\tit: \"L'amicizia è una delle cose più necessarie nella vita.\",\n\t\t\tfr: \"L'amitié est l'une des choses les plus nécessaires dans la vie.\",\n\t\t\tes: 'La amistad es una de las cosas más necesarias en la vida.',\n\t\t},\n\t\tauthor: 'Aristoteles',\n\t\tcategory: 'freundschaft',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Nikomachische Ethik, Buch VIII',\n\t\tyear: -340,\n\t\ttags: ['freundschaft', 'leben', 'notwendigkeit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (384-322 v. Chr.).',\n\t\t\ten: 'Greek philosopher (384-322 BC).',\n\t\t},\n\t},\n\t{\n\t\tid: 'freund-5',\n\t\ttext: {\n\t\t\toriginal: 'Amicus certus in re incerta cernitur.',\n\t\t\tde: 'Den wahren Freund erkennt man in der Not.',\n\t\t\ten: 'A true friend is recognized in uncertain times.',\n\t\t\tit: 'Un vero amico si riconosce nei momenti difficili.',\n\t\t\tfr: \"C'est dans l'adversité qu'on reconnaît ses vrais amis.\",\n\t\t\tes: 'En la adversidad se conoce al verdadero amigo.',\n\t\t},\n\t\tauthor: 'Cicero',\n\t\tcategory: 'freundschaft',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'De amicitia',\n\t\tyear: -44,\n\t\ttags: ['freundschaft', 'not', 'treue'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Staatsmann, Redner und Philosoph (106-43 v. Chr.).',\n\t\t\ten: 'Roman statesman, orator, and philosopher (106-43 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// MUT\n\t// ============================================\n\t{\n\t\tid: 'mut-1',\n\t\ttext: {\n\t\t\toriginal: 'Θάρσος μὲν ἔργου ἀρχή, τύχη δὲ τέλους κυρία.',\n\t\t\tde: 'Mut steht am Anfang des Handelns, Glück am Ende.',\n\t\t\ten: 'Courage stands at the beginning of action, fortune at the end.',\n\t\t\tit: \"Il coraggio sta all'inizio dell'azione, la fortuna alla fine.\",\n\t\t\tfr: \"Le courage est au début de l'action, la chance à la fin.\",\n\t\t\tes: 'El coraje está al comienzo de la acción, la suerte al final.',\n\t\t},\n\t\tauthor: 'Demokrit',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Fragmente',\n\t\tyear: -400,\n\t\ttags: ['mut', 'handeln', 'glück'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph (ca. 460-370 v. Chr.), Begründer der Atomistik.',\n\t\t\ten: 'Greek philosopher (c. 460-370 BC), founder of atomism.',\n\t\t},\n\t},\n\t{\n\t\tid: 'mut-2',\n\t\ttext: {\n\t\t\toriginal: 'Wer wagt, gewinnt.',\n\t\t\tde: 'Wer wagt, gewinnt.',\n\t\t\ten: 'Who dares, wins.',\n\t\t\tit: 'Chi osa, vince.',\n\t\t\tfr: 'Qui ose, gagne.',\n\t\t\tes: 'Quien se atreve, gana.',\n\t\t},\n\t\tauthor: 'Deutsches Sprichwort',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'de',\n\t\ttags: ['mut', 'wagnis', 'erfolg'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'mut-3',\n\t\ttext: {\n\t\t\toriginal: 'Courage is resistance to fear, mastery of fear, not absence of fear.',\n\t\t\tde: 'Mut ist Widerstand gegen die Angst, Beherrschung der Angst – nicht Abwesenheit von Angst.',\n\t\t\ten: 'Courage is resistance to fear, mastery of fear, not absence of fear.',\n\t\t\tit: 'Il coraggio è resistenza alla paura, dominio della paura, non assenza di paura.',\n\t\t\tfr: \"Le courage est la résistance à la peur, la maîtrise de la peur, pas l'absence de peur.\",\n\t\t\tes: 'El coraje es resistencia al miedo, dominio del miedo, no ausencia de miedo.',\n\t\t},\n\t\tauthor: 'Mark Twain',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'en',\n\t\tsource: \"Pudd'nhead Wilson\",\n\t\tyear: 1894,\n\t\ttags: ['mut', 'angst', 'beherrschung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Schriftsteller (1835-1910).',\n\t\t\ten: 'American writer (1835-1910).',\n\t\t},\n\t},\n\t{\n\t\tid: 'mut-4',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Courage is not the absence of fear, but rather the judgment that something else is more important than fear.',\n\t\t\tde: 'Mut ist nicht die Abwesenheit von Angst, sondern die Erkenntnis, dass etwas anderes wichtiger ist als Angst.',\n\t\t\ten: 'Courage is not the absence of fear, but rather the judgment that something else is more important than fear.',\n\t\t\tit: \"Il coraggio non è l'assenza di paura, ma piuttosto il giudizio che qualcos'altro è più importante della paura.\",\n\t\t\tfr: \"Le courage n'est pas l'absence de peur, mais plutôt le jugement que quelque chose d'autre est plus important que la peur.\",\n\t\t\tes: 'El coraje no es la ausencia de miedo, sino más bien el juicio de que algo más es más importante que el miedo.',\n\t\t},\n\t\tauthor: 'Ambrose Redmoon',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'No Peaceful Warriors!',\n\t\tyear: 1991,\n\t\ttags: ['mut', 'angst', 'prioritäten'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Schriftsteller und Rockband-Manager (1933-1996).',\n\t\t\ten: 'American writer and rock band manager (1933-1996).',\n\t\t},\n\t},\n\t{\n\t\tid: 'mut-5',\n\t\ttext: {\n\t\t\toriginal: 'In the middle of difficulty lies opportunity.',\n\t\t\tde: 'Inmitten der Schwierigkeit liegt die Möglichkeit.',\n\t\t\ten: 'In the middle of difficulty lies opportunity.',\n\t\t\tit: \"Nel mezzo della difficoltà giace l'opportunità.\",\n\t\t\tfr: \"Au milieu de la difficulté se trouve l'opportunité.\",\n\t\t\tes: 'En medio de la dificultad yace la oportunidad.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1939,\n\t\ttags: ['mut', 'schwierigkeit', 'chance'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-amerikanischer Physiker (1879-1955).',\n\t\t\ten: 'German-American physicist (1879-1955).',\n\t\t},\n\t},\n\t{\n\t\tid: 'mut-6',\n\t\ttext: {\n\t\t\toriginal: 'Audentes fortuna iuvat.',\n\t\t\tde: 'Das Glück begünstigt die Mutigen.',\n\t\t\ten: 'Fortune favors the bold.',\n\t\t\tit: 'La fortuna aiuta gli audaci.',\n\t\t\tfr: 'La fortune sourit aux audacieux.',\n\t\t\tes: 'La fortuna favorece a los audaces.',\n\t\t},\n\t\tauthor: 'Vergil',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Aeneis, Buch X',\n\t\tyear: -19,\n\t\ttags: ['mut', 'glück', 'wagnis'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Dichter (70-19 v. Chr.).',\n\t\t\ten: 'Roman poet (70-19 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// HOFFNUNG\n\t// ============================================\n\t{\n\t\tid: 'hoff-1',\n\t\ttext: {\n\t\t\toriginal: 'আশা একটি পাখি যা অন্ধকার রাতেও গান করে।',\n\t\t\tde: 'Hoffnung ist ein Vogel, der singt, wenn die Nacht noch dunkel ist.',\n\t\t\ten: 'Hope is a bird that sings when the night is still dark.',\n\t\t\tit: 'La speranza è un uccello che canta quando la notte è ancora buia.',\n\t\t\tfr: \"L'espoir est un oiseau qui chante quand la nuit est encore sombre.\",\n\t\t\tes: 'La esperanza es un pájaro que canta cuando la noche aún está oscura.',\n\t\t},\n\t\tauthor: 'Rabindranath Tagore',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'bn',\n\t\tyear: 1910,\n\t\ttags: ['hoffnung', 'dunkelheit', 'licht'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Indischer Dichter (1861-1941), Nobelpreisträger für Literatur 1913.',\n\t\t\ten: 'Indian poet (1861-1941), Nobel laureate in Literature 1913.',\n\t\t},\n\t},\n\t{\n\t\tid: 'hoff-2',\n\t\ttext: {\n\t\t\toriginal: 'Nach dem Regen scheint die Sonne.',\n\t\t\tde: 'Nach jedem Sturm scheint auch wieder die Sonne.',\n\t\t\ten: 'After every storm, the sun shines again.',\n\t\t\tit: 'Dopo ogni tempesta, il sole torna a splendere.',\n\t\t\tfr: 'Après chaque tempête, le soleil brille à nouveau.',\n\t\t\tes: 'Después de cada tormenta, el sol vuelve a brillar.',\n\t\t},\n\t\tauthor: 'Deutsches Sprichwort',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'de',\n\t\ttags: ['hoffnung', 'sturm', 'sonne'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'hoff-3',\n\t\ttext: {\n\t\t\toriginal: 'Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen.',\n\t\t\tde: 'Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen.',\n\t\t\ten: 'Even from the stones placed in your path, you can build something beautiful.',\n\t\t\tit: 'Anche dalle pietre che ti mettono sulla strada, puoi costruire qualcosa di bello.',\n\t\t\tfr: 'Même des pierres placées sur ton chemin, tu peux construire quelque chose de beau.',\n\t\t\tes: 'Incluso de las piedras que te ponen en el camino, puedes construir algo hermoso.',\n\t\t},\n\t\tauthor: 'Johann Wolfgang von Goethe',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1810,\n\t\ttags: ['hoffnung', 'hindernisse', 'kreativität'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter und Naturforscher (1749-1832).',\n\t\t\ten: 'German poet and naturalist (1749-1832).',\n\t\t},\n\t},\n\t{\n\t\tid: 'hoff-4',\n\t\ttext: {\n\t\t\toriginal: 'Hope is being able to see that there is light despite all of the darkness.',\n\t\t\tde: 'Hoffnung bedeutet, das Licht zu sehen, obwohl alles dunkel ist.',\n\t\t\ten: 'Hope is being able to see that there is light despite all of the darkness.',\n\t\t\tit: \"La speranza è essere in grado di vedere che c'è luce nonostante tutta l'oscurità.\",\n\t\t\tfr: \"L'espoir, c'est être capable de voir qu'il y a de la lumière malgré toute l'obscurité.\",\n\t\t\tes: 'La esperanza es ser capaz de ver que hay luz a pesar de toda la oscuridad.',\n\t\t},\n\t\tauthor: 'Desmond Tutu',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1984,\n\t\ttags: ['hoffnung', 'licht', 'dunkelheit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Südafrikanischer Erzbischof und Friedensnobelpreisträger (1931-2021).',\n\t\t\ten: 'South African archbishop and Nobel Peace Prize laureate (1931-2021).',\n\t\t},\n\t},\n\t{\n\t\tid: 'hoff-5',\n\t\ttext: {\n\t\t\toriginal: 'Dum spiro, spero.',\n\t\t\tde: 'Solange ich atme, hoffe ich.',\n\t\t\ten: 'While I breathe, I hope.',\n\t\t\tit: 'Finché respiro, spero.',\n\t\t\tfr: \"Tant que je respire, j'espère.\",\n\t\t\tes: 'Mientras respiro, espero.',\n\t\t},\n\t\tauthor: 'Cicero',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Epistulae ad Atticum',\n\t\tyear: -43,\n\t\ttags: ['hoffnung', 'leben', 'ausdauer'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Römischer Staatsmann und Philosoph (106-43 v. Chr.).',\n\t\t\ten: 'Roman statesman and philosopher (106-43 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// NATUR\n\t// ============================================\n\t{\n\t\tid: 'natur-1',\n\t\ttext: {\n\t\t\toriginal: 'Die Natur ist das einzige Buch, das auf allen Blättern großen Gehalt bietet.',\n\t\t\tde: 'Die Natur ist das einzige Buch, das auf allen Blättern großen Gehalt bietet.',\n\t\t\ten: 'Nature is the only book that offers great content on every page.',\n\t\t\tit: \"La natura è l'unico libro che offre un grande contenuto in ogni pagina.\",\n\t\t\tfr: 'La nature est le seul livre qui offre un grand contenu à chaque page.',\n\t\t\tes: 'La naturaleza es el único libro que ofrece un gran contenido en cada página.',\n\t\t},\n\t\tauthor: 'Johann Wolfgang von Goethe',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'de',\n\t\tyear: 1820,\n\t\ttags: ['natur', 'buch', 'weisheit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter und Naturforscher (1749-1832).',\n\t\t\ten: 'German poet and naturalist (1749-1832).',\n\t\t},\n\t},\n\t{\n\t\tid: 'natur-2',\n\t\ttext: {\n\t\t\toriginal: 'Look deep into nature, and then you will understand everything better.',\n\t\t\tde: 'Schau tief in die Natur, und dann wirst du alles besser verstehen.',\n\t\t\ten: 'Look deep into nature, and then you will understand everything better.',\n\t\t\tit: 'Guarda in profondità nella natura, e poi capirai tutto meglio.',\n\t\t\tfr: 'Regarde profondément dans la nature, et alors tu comprendras tout mieux.',\n\t\t\tes: 'Mira profundamente en la naturaleza, y entonces entenderás todo mejor.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1930,\n\t\ttags: ['natur', 'verstehen', 'weisheit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-amerikanischer Physiker (1879-1955).',\n\t\t\ten: 'German-American physicist (1879-1955).',\n\t\t},\n\t},\n\t{\n\t\tid: 'natur-3',\n\t\ttext: {\n\t\t\toriginal: 'Natura non facit saltus.',\n\t\t\tde: 'Die Natur macht keine Sprünge.',\n\t\t\ten: 'Nature does not make jumps.',\n\t\t\tit: 'La natura non fa salti.',\n\t\t\tfr: 'La nature ne fait pas de sauts.',\n\t\t\tes: 'La naturaleza no da saltos.',\n\t\t},\n\t\tauthor: 'Carl von Linné',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'la',\n\t\tsource: 'Philosophia Botanica',\n\t\tyear: 1751,\n\t\ttags: ['natur', 'evolution', 'kontinuität'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Schwedischer Naturforscher (1707-1778), Begründer der modernen Taxonomie.',\n\t\t\ten: 'Swedish naturalist (1707-1778), founder of modern taxonomy.',\n\t\t},\n\t},\n\t{\n\t\tid: 'natur-4',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Forget not that the earth delights to feel your bare feet and the winds long to play with your hair.',\n\t\t\tde: 'Vergiss nicht, dass die Erde sich freut, deine nackten Füße zu fühlen, und die Winde sich danach sehnen, mit deinem Haar zu spielen.',\n\t\t\ten: 'Forget not that the earth delights to feel your bare feet and the winds long to play with your hair.',\n\t\t\tit: 'Non dimenticare che la terra si rallegra di sentire i tuoi piedi nudi e i venti desiderano giocare con i tuoi capelli.',\n\t\t\tfr: \"N'oublie pas que la terre se réjouit de sentir tes pieds nus et que les vents aspirent à jouer avec tes cheveux.\",\n\t\t\tes: 'No olvides que la tierra se deleita en sentir tus pies descalzos y los vientos anhelan jugar con tu cabello.',\n\t\t},\n\t\tauthor: 'Khalil Gibran',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'The Prophet',\n\t\tyear: 1923,\n\t\ttags: ['natur', 'freiheit', 'verbindung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Libanesisch-amerikanischer Dichter und Philosoph (1883-1931).',\n\t\t\ten: 'Lebanese-American poet and philosopher (1883-1931).',\n\t\t},\n\t},\n\t{\n\t\tid: 'natur-5',\n\t\ttext: {\n\t\t\toriginal: 'In every walk with nature, one receives far more than he seeks.',\n\t\t\tde: 'Bei jedem Spaziergang mit der Natur erhält man weit mehr, als man sucht.',\n\t\t\ten: 'In every walk with nature, one receives far more than he seeks.',\n\t\t\tit: 'In ogni passeggiata con la natura, si riceve molto più di quanto si cerca.',\n\t\t\tfr: \"Dans chaque promenade avec la nature, on reçoit bien plus que ce qu'on cherche.\",\n\t\t\tes: 'En cada paseo con la naturaleza, uno recibe mucho más de lo que busca.',\n\t\t},\n\t\tauthor: 'John Muir',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'en',\n\t\tyear: 1890,\n\t\ttags: ['natur', 'spaziergang', 'geschenk'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Schottisch-amerikanischer Naturforscher und Umweltschützer (1838-1914).',\n\t\t\ten: 'Scottish-American naturalist and conservationist (1838-1914).',\n\t\t},\n\t},\n\t{\n\t\tid: 'natur-6',\n\t\ttext: {\n\t\t\toriginal: 'Φύσις κρύπτεσθαι φιλεῖ.',\n\t\t\tde: 'Die Natur liebt es, sich zu verbergen.',\n\t\t\ten: 'Nature loves to hide.',\n\t\t\tit: 'La natura ama nascondersi.',\n\t\t\tfr: 'La nature aime se cacher.',\n\t\t\tes: 'La naturaleza ama ocultarse.',\n\t\t},\n\t\tauthor: 'Heraklit',\n\t\tcategory: 'natur',\n\t\toriginalLanguage: 'el',\n\t\tsource: 'Fragment 123',\n\t\tyear: -500,\n\t\ttags: ['natur', 'geheimnis', 'philosophie'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Griechischer Philosoph aus Ephesos (ca. 535-475 v. Chr.).',\n\t\t\ten: 'Greek philosopher from Ephesus (c. 535-475 BC).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// HUMOR\n\t// ============================================\n\t{\n\t\tid: 'humor-1',\n\t\ttext: {\n\t\t\toriginal: 'Be yourself; everyone else is already taken.',\n\t\t\tde: 'Sei du selbst; alle anderen sind bereits vergeben.',\n\t\t\ten: 'Be yourself; everyone else is already taken.',\n\t\t\tit: 'Sii te stesso; tutti gli altri sono già occupati.',\n\t\t\tfr: 'Sois toi-même ; tous les autres sont déjà pris.',\n\t\t\tes: 'Sé tú mismo; todos los demás ya están ocupados.',\n\t\t},\n\t\tauthor: 'Oscar Wilde',\n\t\tcategory: 'humor',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['humor', 'identität', 'selbst'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Irischer Schriftsteller und Dramatiker (1854-1900).',\n\t\t\ten: 'Irish writer and playwright (1854-1900).',\n\t\t},\n\t},\n\t{\n\t\tid: 'humor-2',\n\t\ttext: {\n\t\t\toriginal: \"I have not failed. I've just found 10,000 ways that won't work.\",\n\t\t\tde: 'Ich habe nicht versagt. Ich habe nur 10.000 Wege gefunden, die nicht funktionieren.',\n\t\t\ten: \"I have not failed. I've just found 10,000 ways that won't work.\",\n\t\t\tit: 'Non ho fallito. Ho solo trovato 10.000 modi che non funzionano.',\n\t\t\tfr: \"Je n'ai pas échoué. J'ai juste trouvé 10 000 façons qui ne fonctionnent pas.\",\n\t\t\tes: 'No he fracasado. Solo he encontrado 10.000 formas que no funcionan.',\n\t\t},\n\t\tauthor: 'Thomas Edison',\n\t\tcategory: 'humor',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['humor', 'ausdauer', 'erfindung'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Erfinder und Unternehmer (1847-1931).',\n\t\t\ten: 'American inventor and businessman (1847-1931).',\n\t\t},\n\t},\n\t{\n\t\tid: 'humor-3',\n\t\ttext: {\n\t\t\toriginal: 'I can resist everything except temptation.',\n\t\t\tde: 'Ich kann allem widerstehen, nur nicht der Versuchung.',\n\t\t\ten: 'I can resist everything except temptation.',\n\t\t\tit: 'Posso resistere a tutto tranne che alla tentazione.',\n\t\t\tfr: 'Je peux résister à tout, sauf à la tentation.',\n\t\t\tes: 'Puedo resistir todo, excepto la tentación.',\n\t\t},\n\t\tauthor: 'Oscar Wilde',\n\t\tcategory: 'humor',\n\t\toriginalLanguage: 'en',\n\t\tsource: \"Lady Windermere's Fan\",\n\t\tyear: 1892,\n\t\ttags: ['humor', 'versuchung', 'ironie'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'humor-4',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.',\n\t\t\tde: 'Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.',\n\t\t\ten: \"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.\",\n\t\t\tit: \"Due cose sono infinite: l'universo e la stupidità umana; e non sono sicuro dell'universo.\",\n\t\t\tfr: \"Deux choses sont infinies : l'univers et la bêtise humaine ; et je ne suis pas sûr de l'univers.\",\n\t\t\tes: 'Dos cosas son infinitas: el universo y la estupidez humana; y no estoy seguro del universo.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'humor',\n\t\toriginalLanguage: 'de',\n\t\ttags: ['humor', 'intelligenz', 'universum'],\n\t\tverified: false,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-schweizerisch-amerikanischer Physiker (1879-1955), Nobelpreisträger.',\n\t\t\ten: 'German-Swiss-American physicist (1879-1955), Nobel laureate.',\n\t\t},\n\t},\n\t{\n\t\tid: 'humor-5',\n\t\ttext: {\n\t\t\toriginal: 'In der Kürze liegt die Würze.',\n\t\t\tde: 'In der Kürze liegt die Würze.',\n\t\t\ten: 'Brevity is the soul of wit.',\n\t\t\tit: \"La brevità è l'anima dell'arguzia.\",\n\t\t\tfr: \"La brièveté est l'âme de l'esprit.\",\n\t\t\tes: 'La brevedad es el alma del ingenio.',\n\t\t},\n\t\tauthor: 'William Shakespeare',\n\t\tcategory: 'humor',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Hamlet',\n\t\tyear: 1601,\n\t\ttags: ['humor', 'kürze', 'sprache'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Englischer Dramatiker und Dichter (1564-1616).',\n\t\t\ten: 'English playwright and poet (1564-1616).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// WISSENSCHAFT\n\t// ============================================\n\t{\n\t\tid: 'wiss-1',\n\t\ttext: {\n\t\t\toriginal: 'Imagination is more important than knowledge.',\n\t\t\tde: 'Vorstellungskraft ist wichtiger als Wissen.',\n\t\t\ten: 'Imagination is more important than knowledge.',\n\t\t\tit: \"L'immaginazione è più importante della conoscenza.\",\n\t\t\tfr: \"L'imagination est plus importante que le savoir.\",\n\t\t\tes: 'La imaginación es más importante que el conocimiento.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'wissenschaft',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Interview, Saturday Evening Post',\n\t\tyear: 1929,\n\t\ttags: ['wissenschaft', 'phantasie', 'wissen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutsch-schweizerisch-amerikanischer Physiker (1879-1955), Nobelpreisträger.',\n\t\t\ten: 'German-Swiss-American physicist (1879-1955), Nobel laureate.',\n\t\t},\n\t},\n\t{\n\t\tid: 'wiss-2',\n\t\ttext: {\n\t\t\toriginal: 'Nothing in life is to be feared, it is only to be understood.',\n\t\t\tde: 'Nichts im Leben muss gefürchtet werden, es muss nur verstanden werden.',\n\t\t\ten: 'Nothing in life is to be feared, it is only to be understood.',\n\t\t\tit: \"Nulla nella vita va temuto, dev'essere soltanto compreso.\",\n\t\t\tfr: \"Dans la vie, rien n'est à craindre, tout est à comprendre.\",\n\t\t\tes: 'Nada en la vida debe ser temido, solamente comprendido.',\n\t\t},\n\t\tauthor: 'Marie Curie',\n\t\tcategory: 'wissenschaft',\n\t\toriginalLanguage: 'fr',\n\t\ttags: ['wissenschaft', 'mut', 'verständnis'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Polnisch-französische Physikerin und Chemikerin (1867-1934), zweifache Nobelpreisträgerin.',\n\t\t\ten: 'Polish-French physicist and chemist (1867-1934), two-time Nobel laureate.',\n\t\t},\n\t},\n\t{\n\t\tid: 'wiss-3',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t'The important thing is not to stop questioning. Curiosity has its own reason for existing.',\n\t\t\tde: 'Das Wichtigste ist, nicht aufzuhören zu fragen. Neugier hat ihre eigene Daseinsberechtigung.',\n\t\t\ten: 'The important thing is not to stop questioning. Curiosity has its own reason for existing.',\n\t\t\tit: 'La cosa importante è non smettere di fare domande. La curiosità ha la sua ragione di esistere.',\n\t\t\tfr: \"L'important est de ne pas cesser de questionner. La curiosité a sa propre raison d'exister.\",\n\t\t\tes: 'Lo importante es no dejar de hacerse preguntas. La curiosidad tiene su propia razón de existir.',\n\t\t},\n\t\tauthor: 'Albert Einstein',\n\t\tcategory: 'wissenschaft',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'LIFE Magazine',\n\t\tyear: 1955,\n\t\ttags: ['wissenschaft', 'neugier', 'fragen'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'wiss-4',\n\t\ttext: {\n\t\t\toriginal: 'Somewhere, something incredible is waiting to be known.',\n\t\t\tde: 'Irgendwo wartet etwas Unglaubliches darauf, entdeckt zu werden.',\n\t\t\ten: 'Somewhere, something incredible is waiting to be known.',\n\t\t\tit: 'Da qualche parte, qualcosa di incredibile attende di essere scoperto.',\n\t\t\tfr: \"Quelque part, quelque chose d'incroyable attend d'être découvert.\",\n\t\t\tes: 'En algún lugar, algo increíble está esperando ser descubierto.',\n\t\t},\n\t\tauthor: 'Carl Sagan',\n\t\tcategory: 'wissenschaft',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['wissenschaft', 'entdeckung', 'kosmos'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Astrophysiker und Wissenschaftskommunikator (1934-1996).',\n\t\t\ten: 'American astrophysicist and science communicator (1934-1996).',\n\t\t},\n\t},\n\t{\n\t\tid: 'wiss-5',\n\t\ttext: {\n\t\t\toriginal: 'One, remember to look up at the stars and not down at your feet.',\n\t\t\tde: 'Erstens: Denkt daran, zu den Sternen aufzublicken und nicht auf eure Füße.',\n\t\t\ten: 'One, remember to look up at the stars and not down at your feet.',\n\t\t\tit: 'Primo: ricordatevi di guardare le stelle e non i vostri piedi.',\n\t\t\tfr: \"Premièrement, n'oubliez pas de regarder les étoiles et non vos pieds.\",\n\t\t\tes: 'Primero: recuerden mirar las estrellas y no sus pies.',\n\t\t},\n\t\tauthor: 'Stephen Hawking',\n\t\tcategory: 'wissenschaft',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['wissenschaft', 'sterne', 'perspektive'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Britischer Physiker und Kosmologe (1942-2018).',\n\t\t\ten: 'British physicist and cosmologist (1942-2018).',\n\t\t},\n\t},\n\n\t// ============================================\n\t// KUNST\n\t// ============================================\n\t{\n\t\tid: 'kunst-1',\n\t\ttext: {\n\t\t\toriginal: 'Every child is an artist. The problem is how to remain an artist once we grow up.',\n\t\t\tde: 'Jedes Kind ist ein Künstler. Das Problem ist, ein Künstler zu bleiben, wenn man erwachsen wird.',\n\t\t\ten: 'Every child is an artist. The problem is how to remain an artist once we grow up.',\n\t\t\tit: 'Ogni bambino è un artista. Il problema è come rimanere un artista quando si cresce.',\n\t\t\tfr: 'Chaque enfant est un artiste. Le problème est de rester un artiste en grandissant.',\n\t\t\tes: 'Todo niño es un artista. El problema es cómo seguir siendo artista cuando se crece.',\n\t\t},\n\t\tauthor: 'Pablo Picasso',\n\t\tcategory: 'kunst',\n\t\toriginalLanguage: 'es',\n\t\ttags: ['kunst', 'kreativität', 'kindheit'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Spanischer Maler und Bildhauer (1881-1973), Mitbegründer des Kubismus.',\n\t\t\ten: 'Spanish painter and sculptor (1881-1973), co-founder of Cubism.',\n\t\t},\n\t},\n\t{\n\t\tid: 'kunst-2',\n\t\ttext: {\n\t\t\toriginal: 'Art is not what you see, but what you make others see.',\n\t\t\tde: 'Kunst ist nicht das, was du siehst, sondern das, was du andere sehen lässt.',\n\t\t\ten: 'Art is not what you see, but what you make others see.',\n\t\t\tit: \"L'arte non è ciò che vedi, ma ciò che fai vedere agli altri.\",\n\t\t\tfr: \"L'art, ce n'est pas ce que vous voyez, mais ce que vous faites voir aux autres.\",\n\t\t\tes: 'El arte no es lo que ves, sino lo que haces ver a los demás.',\n\t\t},\n\t\tauthor: 'Edgar Degas',\n\t\tcategory: 'kunst',\n\t\toriginalLanguage: 'fr',\n\t\ttags: ['kunst', 'wahrnehmung', 'perspektive'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französischer Maler und Bildhauer (1834-1917), Impressionist.',\n\t\t\ten: 'French painter and sculptor (1834-1917), Impressionist.',\n\t\t},\n\t},\n\t{\n\t\tid: 'kunst-3',\n\t\ttext: {\n\t\t\toriginal: 'Die Kunst ist eine Vermittlerin des Unaussprechlichen.',\n\t\t\tde: 'Die Kunst ist eine Vermittlerin des Unaussprechlichen.',\n\t\t\ten: 'Art is a mediator of the inexpressible.',\n\t\t\tit: \"L'arte è una mediatrice dell'inesprimibile.\",\n\t\t\tfr: \"L'art est un médiateur de l'inexprimable.\",\n\t\t\tes: 'El arte es un mediador de lo inexpresable.',\n\t\t},\n\t\tauthor: 'Johann Wolfgang von Goethe',\n\t\tcategory: 'kunst',\n\t\toriginalLanguage: 'de',\n\t\tsource: 'Maximen und Reflexionen',\n\t\ttags: ['kunst', 'sprache', 'ausdruck'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Deutscher Dichter und Naturforscher (1749-1832).',\n\t\t\ten: 'German poet and naturalist (1749-1832).',\n\t\t},\n\t},\n\t{\n\t\tid: 'kunst-4',\n\t\ttext: {\n\t\t\toriginal: 'I dream my painting and I paint my dream.',\n\t\t\tde: 'Ich träume mein Gemälde und male meinen Traum.',\n\t\t\ten: 'I dream my painting and I paint my dream.',\n\t\t\tit: 'Sogno il mio dipinto e dipingo il mio sogno.',\n\t\t\tfr: 'Je rêve ma peinture et je peins mon rêve.',\n\t\t\tes: 'Sueño mi pintura y pinto mi sueño.',\n\t\t},\n\t\tauthor: 'Vincent van Gogh',\n\t\tcategory: 'kunst',\n\t\toriginalLanguage: 'nl',\n\t\ttags: ['kunst', 'traum', 'malerei'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Niederländischer Maler (1853-1890), Wegbereiter der modernen Kunst.',\n\t\t\ten: 'Dutch painter (1853-1890), pioneer of modern art.',\n\t\t},\n\t},\n\t{\n\t\tid: 'kunst-5',\n\t\ttext: {\n\t\t\toriginal: 'Creativity takes courage.',\n\t\t\tde: 'Kreativität erfordert Mut.',\n\t\t\ten: 'Creativity takes courage.',\n\t\t\tit: 'La creatività richiede coraggio.',\n\t\t\tfr: 'La créativité demande du courage.',\n\t\t\tes: 'La creatividad requiere coraje.',\n\t\t},\n\t\tauthor: 'Henri Matisse',\n\t\tcategory: 'kunst',\n\t\toriginalLanguage: 'fr',\n\t\ttags: ['kunst', 'mut', 'kreativität'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Französischer Maler (1869-1954), Wegbereiter des Fauvismus.',\n\t\t\ten: 'French painter (1869-1954), pioneer of Fauvism.',\n\t\t},\n\t},\n\n\t// ============================================\n\t// ZEITGENÖSSISCH (across categories)\n\t// ============================================\n\t{\n\t\tid: 'zeit-1',\n\t\ttext: {\n\t\t\toriginal: \"Your time is limited, so don't waste it living someone else's life.\",\n\t\t\tde: 'Deine Zeit ist begrenzt, also verschwende sie nicht damit, das Leben eines anderen zu leben.',\n\t\t\ten: \"Your time is limited, so don't waste it living someone else's life.\",\n\t\t\tit: 'Il tuo tempo è limitato, quindi non sprecarlo vivendo la vita di qualcun altro.',\n\t\t\tfr: \"Votre temps est limité, ne le gaspillez pas en vivant la vie de quelqu'un d'autre.\",\n\t\t\tes: 'Tu tiempo es limitado, no lo desperdicies viviendo la vida de otra persona.',\n\t\t},\n\t\tauthor: 'Steve Jobs',\n\t\tcategory: 'leben',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Stanford Commencement Speech',\n\t\tyear: 2005,\n\t\ttags: ['leben', 'zeit', 'authentizität'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'zeit-2',\n\t\ttext: {\n\t\t\toriginal:\n\t\t\t\t\"I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.\",\n\t\t\tde: 'Ich habe gelernt, dass Menschen vergessen, was du gesagt hast, vergessen, was du getan hast, aber nie vergessen, wie du sie fühlen ließest.',\n\t\t\ten: \"I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.\",\n\t\t\tit: 'Ho imparato che le persone dimenticheranno ciò che hai detto, ciò che hai fatto, ma non dimenticheranno mai come le hai fatte sentire.',\n\t\t\tfr: \"J'ai appris que les gens oublieront ce que vous avez dit, ce que vous avez fait, mais jamais ce que vous leur avez fait ressentir.\",\n\t\t\tes: 'He aprendido que la gente olvidará lo que dijiste, lo que hiciste, pero nunca olvidará cómo les hiciste sentir.',\n\t\t},\n\t\tauthor: 'Maya Angelou',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['weisheit', 'empathie', 'gefühl'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanische Schriftstellerin und Bürgerrechtsaktivistin (1928-2014).',\n\t\t\ten: 'American writer and civil rights activist (1928-2014).',\n\t\t},\n\t},\n\t{\n\t\tid: 'zeit-3',\n\t\ttext: {\n\t\t\toriginal: 'Education is the most powerful weapon which you can use to change the world.',\n\t\t\tde: 'Bildung ist die mächtigste Waffe, die du nutzen kannst, um die Welt zu verändern.',\n\t\t\ten: 'Education is the most powerful weapon which you can use to change the world.',\n\t\t\tit: \"L'istruzione è l'arma più potente che puoi usare per cambiare il mondo.\",\n\t\t\tfr: \"L'éducation est l'arme la plus puissante qu'on puisse utiliser pour changer le monde.\",\n\t\t\tes: 'La educación es el arma más poderosa que puedes usar para cambiar el mundo.',\n\t\t},\n\t\tauthor: 'Nelson Mandela',\n\t\tcategory: 'weisheit',\n\t\toriginalLanguage: 'en',\n\t\tyear: 2003,\n\t\ttags: ['bildung', 'veränderung', 'welt'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'Südafrikanischer Freiheitskämpfer und Staatspräsident (1918-2013), Nobelpreisträger.',\n\t\t\ten: 'South African freedom fighter and president (1918-2013), Nobel laureate.',\n\t\t},\n\t},\n\t{\n\t\tid: 'zeit-4',\n\t\ttext: {\n\t\t\toriginal: 'Stay hungry, stay foolish.',\n\t\t\tde: 'Bleibt hungrig, bleibt verrückt.',\n\t\t\ten: 'Stay hungry, stay foolish.',\n\t\t\tit: 'Siate affamati, siate folli.',\n\t\t\tfr: 'Restez affamés, restez fous.',\n\t\t\tes: 'Sigan hambrientos, sigan alocados.',\n\t\t},\n\t\tauthor: 'Steve Jobs',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\tsource: 'Stanford Commencement Speech',\n\t\tyear: 2005,\n\t\ttags: ['motivation', 'neugier', 'leidenschaft'],\n\t\tverified: true,\n\t},\n\t{\n\t\tid: 'zeit-5',\n\t\ttext: {\n\t\t\toriginal: 'No one can make you feel inferior without your consent.',\n\t\t\tde: 'Niemand kann dir ohne dein Einverständnis das Gefühl geben, minderwertig zu sein.',\n\t\t\ten: 'No one can make you feel inferior without your consent.',\n\t\t\tit: 'Nessuno può farti sentire inferiore senza il tuo consenso.',\n\t\t\tfr: 'Personne ne peut vous faire sentir inférieur sans votre consentement.',\n\t\t\tes: 'Nadie puede hacerte sentir inferior sin tu consentimiento.',\n\t\t},\n\t\tauthor: 'Eleanor Roosevelt',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['mut', 'selbstwert', 'stärke'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanische Menschenrechtsaktivistin und First Lady (1884-1962).',\n\t\t\ten: 'American human rights activist and First Lady (1884-1962).',\n\t\t},\n\t},\n\t{\n\t\tid: 'zeit-6',\n\t\ttext: {\n\t\t\toriginal: 'It is during our darkest moments that we must focus to see the light.',\n\t\t\tde: 'In unseren dunkelsten Momenten müssen wir uns darauf konzentrieren, das Licht zu sehen.',\n\t\t\ten: 'It is during our darkest moments that we must focus to see the light.',\n\t\t\tit: 'È nei nostri momenti più bui che dobbiamo concentrarci per vedere la luce.',\n\t\t\tfr: \"C'est dans nos moments les plus sombres que nous devons nous concentrer pour voir la lumière.\",\n\t\t\tes: 'Es en nuestros momentos más oscuros que debemos concentrarnos para ver la luz.',\n\t\t},\n\t\tauthor: 'Aristoteles',\n\t\tcategory: 'hoffnung',\n\t\toriginalLanguage: 'el',\n\t\ttags: ['hoffnung', 'stärke', 'licht'],\n\t\tverified: false,\n\t},\n\t{\n\t\tid: 'zeit-7',\n\t\ttext: {\n\t\t\toriginal: 'The only impossible journey is the one you never begin.',\n\t\t\tde: 'Die einzige unmögliche Reise ist die, die du nie beginnst.',\n\t\t\ten: 'The only impossible journey is the one you never begin.',\n\t\t\tit: \"L'unico viaggio impossibile è quello che non inizi mai.\",\n\t\t\tfr: 'Le seul voyage impossible est celui que vous ne commencez jamais.',\n\t\t\tes: 'El único viaje imposible es el que nunca comienzas.',\n\t\t},\n\t\tauthor: 'Tony Robbins',\n\t\tcategory: 'motivation',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['motivation', 'anfang', 'reise'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanischer Motivationsredner und Autor (*1960).',\n\t\t\ten: 'American motivational speaker and author (b. 1960).',\n\t\t},\n\t},\n\t{\n\t\tid: 'zeit-8',\n\t\ttext: {\n\t\t\toriginal: 'Think like a queen. A queen is not afraid to fail.',\n\t\t\tde: 'Denke wie eine Königin. Eine Königin hat keine Angst zu scheitern.',\n\t\t\ten: 'Think like a queen. A queen is not afraid to fail.',\n\t\t\tit: 'Pensa come una regina. Una regina non ha paura di fallire.',\n\t\t\tfr: \"Pense comme une reine. Une reine n'a pas peur d'échouer.\",\n\t\t\tes: 'Piensa como una reina. Una reina no tiene miedo de fracasar.',\n\t\t},\n\t\tauthor: 'Oprah Winfrey',\n\t\tcategory: 'mut',\n\t\toriginalLanguage: 'en',\n\t\ttags: ['mut', 'selbstvertrauen', 'frauen'],\n\t\tverified: true,\n\t\tauthorBio: {\n\t\t\tde: 'US-amerikanische Talkshow-Moderatorin und Unternehmerin (*1954).',\n\t\t\ten: 'American talk show host and entrepreneur (b. 1954).',\n\t\t},\n\t},\n];\n\n/**\n * Total number of quotes\n */\nexport const QUOTE_COUNT = QUOTES.length;\n","/**\n * Quote categories\n */\nexport const CATEGORIES = [\n\t'motivation',\n\t'weisheit',\n\t'liebe',\n\t'leben',\n\t'erfolg',\n\t'glueck',\n\t'freundschaft',\n\t'mut',\n\t'hoffnung',\n\t'natur',\n\t'humor',\n\t'wissenschaft',\n\t'kunst',\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\n/**\n * German labels for categories\n */\nexport const CATEGORY_LABELS: Record<Category, string> = {\n\tmotivation: 'Motivation',\n\tweisheit: 'Weisheit',\n\tliebe: 'Liebe',\n\tleben: 'Leben',\n\terfolg: 'Erfolg',\n\tglueck: 'Glück',\n\tfreundschaft: 'Freundschaft',\n\tmut: 'Mut',\n\thoffnung: 'Hoffnung',\n\tnatur: 'Natur',\n\thumor: 'Humor',\n\twissenschaft: 'Wissenschaft',\n\tkunst: 'Kunst',\n};\n\n/** Curated theme decks — cross-category collections around a topic. */\nexport const THEME_DECKS = [\n\t{\n\t\tid: 'stoizismus',\n\t\tlabel: 'Stoizismus',\n\t\tdescription: 'Gelassenheit und innere Stärke',\n\t\tauthors: ['Marcus Aurelius', 'Seneca', 'Epiktet'],\n\t},\n\t{\n\t\tid: 'feminismus',\n\t\tlabel: 'Feminismus',\n\t\tdescription: 'Gleichberechtigung und Selbstbestimmung',\n\t\tauthors: ['Simone de Beauvoir', 'Virginia Woolf', 'Maya Angelou', 'Marie Curie', 'Frida Kahlo'],\n\t},\n\t{\n\t\tid: 'unternehmertum',\n\t\tlabel: 'Unternehmertum',\n\t\tdescription: 'Innovation und Durchhaltevermögen',\n\t\tauthors: ['Steve Jobs', 'Henry Ford', 'Thomas Edison', 'Walt Disney'],\n\t},\n\t{\n\t\tid: 'philosophie',\n\t\tlabel: 'Philosophie',\n\t\tdescription: 'Die großen Fragen des Lebens',\n\t\tauthors: [\n\t\t\t'Sokrates',\n\t\t\t'Platon',\n\t\t\t'Aristoteles',\n\t\t\t'Immanuel Kant',\n\t\t\t'Friedrich Nietzsche',\n\t\t\t'Konfuzius',\n\t\t\t'Laozi',\n\t\t],\n\t},\n\t{\n\t\tid: 'literatur',\n\t\tlabel: 'Literatur',\n\t\tdescription: 'Worte der großen Dichter und Schriftsteller',\n\t\tauthors: [\n\t\t\t'Johann Wolfgang von Goethe',\n\t\t\t'Oscar Wilde',\n\t\t\t'Mark Twain',\n\t\t\t'William Shakespeare',\n\t\t\t'Rainer Maria Rilke',\n\t\t],\n\t},\n] as const;\n\nexport type ThemeDeckId = (typeof THEME_DECKS)[number]['id'];\n\n/**\n * Get label for a category\n */\nexport function getCategoryLabel(category: Category): string {\n\treturn CATEGORY_LABELS[category];\n}\n\n/**\n * Check if a string is a valid category\n */\nexport function isValidCategory(value: string): value is Category {\n\treturn CATEGORIES.includes(value as Category);\n}\n","import { QUOTES } from './quotes';\nimport {\n\tCATEGORIES,\n\tCATEGORY_LABELS,\n\tTHEME_DECKS,\n\ttype Category,\n\ttype ThemeDeckId,\n} from './categories';\nimport type { Quote, SupportedLanguage } from './types';\n\n/**\n * Get a random quote\n */\nexport function getRandomQuote(): Quote {\n\tconst index = Math.floor(Math.random() * QUOTES.length);\n\treturn QUOTES[index];\n}\n\n/**\n * Get deterministic daily quote based on date\n */\nexport function getDailyQuote(date: Date = new Date()): Quote {\n\tconst dateStr = date.toISOString().split('T')[0];\n\tconst hash = hashString(dateStr);\n\tconst index = Math.abs(hash) % QUOTES.length;\n\treturn QUOTES[index];\n}\n\n// ─── Pre-built category index (built once, O(1) per lookup) ──\n\nlet _categoryIndex: Map<Category, Quote[]> | null = null;\n\nfunction getCategoryIndex(): Map<Category, Quote[]> {\n\tif (!_categoryIndex) {\n\t\t_categoryIndex = new Map();\n\t\tfor (const cat of CATEGORIES) _categoryIndex.set(cat, []);\n\t\tfor (const q of QUOTES) _categoryIndex.get(q.category)?.push(q);\n\t}\n\treturn _categoryIndex;\n}\n\n/**\n * Get quotes by category (uses pre-built index for O(1) lookups).\n */\nexport function getQuotesByCategory(category: Category): Quote[] {\n\treturn getCategoryIndex().get(category) ?? [];\n}\n\n/**\n * Get a random quote from a specific category\n */\nexport function getRandomQuoteByCategory(category: Category): Quote | null {\n\tconst quotes = getQuotesByCategory(category);\n\tif (quotes.length === 0) return null;\n\tconst index = Math.floor(Math.random() * quotes.length);\n\treturn quotes[index];\n}\n\n/**\n * Search quotes by text or author (searches in specified language, defaults to German)\n */\nexport function searchQuotes(searchText: string, language: SupportedLanguage = 'de'): Quote[] {\n\tconst lowerSearch = searchText.toLowerCase();\n\treturn QUOTES.filter((q) => {\n\t\tconst text = language === 'original' ? q.text.original : q.text[language];\n\t\treturn text.toLowerCase().includes(lowerSearch) || q.author.toLowerCase().includes(lowerSearch);\n\t});\n}\n\n/**\n * Get a quote by ID\n */\nexport function getQuoteById(id: string): Quote | undefined {\n\treturn QUOTES.find((q) => q.id === id);\n}\n\n/**\n * Get quote by index (1-based)\n */\nexport function getQuoteByIndex(index: number): Quote | null {\n\tif (index < 1 || index > QUOTES.length) return null;\n\treturn QUOTES[index - 1];\n}\n\n/**\n * Get all categories with counts\n */\nexport function getAllCategories(): { category: Category; label: string; count: number }[] {\n\treturn CATEGORIES.map((category) => ({\n\t\tcategory,\n\t\tlabel: CATEGORY_LABELS[category],\n\t\tcount: QUOTES.filter((q) => q.category === category).length,\n\t}));\n}\n\n/**\n * Find category by name (partial match)\n */\nexport function getCategoryByName(name: string): Category | null {\n\tconst lowerName = name.toLowerCase();\n\n\t// Exact match first\n\tif (CATEGORIES.includes(lowerName as Category)) {\n\t\treturn lowerName as Category;\n\t}\n\n\t// Partial match\n\tfor (const category of CATEGORIES) {\n\t\tif (\n\t\t\tcategory.startsWith(lowerName) ||\n\t\t\tCATEGORY_LABELS[category].toLowerCase().startsWith(lowerName)\n\t\t) {\n\t\t\treturn category;\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Get quote text in a specific language\n */\nexport function getQuoteText(quote: Quote, language: SupportedLanguage = 'de'): string {\n\tif (language === 'original') {\n\t\treturn quote.text.original;\n\t}\n\treturn quote.text[language];\n}\n\n/**\n * Format a quote for display\n */\nexport function formatQuote(quote: Quote, language: SupportedLanguage = 'de'): string {\n\tconst text = getQuoteText(quote, language);\n\tconst categoryLabel = CATEGORY_LABELS[quote.category];\n\treturn `\"${text}\"\\n\\n— *${quote.author}*\\n\\n[${categoryLabel}]`;\n}\n\n/**\n * Format a quote with number\n */\nexport function formatQuoteWithNumber(\n\tquote: Quote,\n\tnumber: number,\n\tlanguage: SupportedLanguage = 'de'\n): string {\n\tconst text = getQuoteText(quote, language);\n\tconst categoryLabel = CATEGORY_LABELS[quote.category];\n\treturn `**#${number}**\\n\"${text}\"\\n\\n— *${quote.author}* [${categoryLabel}]`;\n}\n\n/**\n * Get total quote count\n */\nexport function getTotalCount(): number {\n\treturn QUOTES.length;\n}\n\n/**\n * Get quotes by tag\n */\nexport function getQuotesByTag(tag: string): Quote[] {\n\tconst lowerTag = tag.toLowerCase();\n\treturn QUOTES.filter((q) => q.tags?.some((t) => t.toLowerCase() === lowerTag));\n}\n\n/**\n * Get all unique tags\n */\nexport function getAllTags(): string[] {\n\tconst tags = new Set<string>();\n\tQUOTES.forEach((q) => q.tags?.forEach((t) => tags.add(t)));\n\treturn Array.from(tags).sort();\n}\n\n// ─── Pre-built author index ──────────────────────────────────\n\nlet _authorIndex: Map<string, Quote[]> | null = null;\n\nfunction getAuthorIndex(): Map<string, Quote[]> {\n\tif (!_authorIndex) {\n\t\t_authorIndex = new Map();\n\t\tfor (const q of QUOTES) {\n\t\t\tconst key = q.author.toLowerCase();\n\t\t\tlet arr = _authorIndex.get(key);\n\t\t\tif (!arr) {\n\t\t\t\tarr = [];\n\t\t\t\t_authorIndex.set(key, arr);\n\t\t\t}\n\t\t\tarr.push(q);\n\t\t}\n\t}\n\treturn _authorIndex;\n}\n\n/**\n * Get quotes by author (substring match on name).\n */\nexport function getQuotesByAuthor(author: string): Quote[] {\n\tconst lowerAuthor = author.toLowerCase();\n\t// Exact match via index first\n\tconst exact = getAuthorIndex().get(lowerAuthor);\n\tif (exact) return exact;\n\t// Fall back to substring match across all authors\n\tconst results: Quote[] = [];\n\tfor (const [key, quotes] of getAuthorIndex()) {\n\t\tif (key.includes(lowerAuthor)) results.push(...quotes);\n\t}\n\treturn results;\n}\n\n/** Author summary for browse pages. */\nexport interface AuthorInfo {\n\tname: string;\n\tquoteCount: number;\n\tcategories: string[];\n\tbio?: { de?: string; en?: string; it?: string; fr?: string; es?: string };\n}\n\n/**\n * Get all unique authors with their quote counts, categories, and bios.\n * Sorted by quote count descending, then name ascending.\n */\nexport function getAllAuthors(): AuthorInfo[] {\n\tconst map = new Map<string, AuthorInfo>();\n\tfor (const q of QUOTES) {\n\t\tlet info = map.get(q.author);\n\t\tif (!info) {\n\t\t\tinfo = { name: q.author, quoteCount: 0, categories: [], bio: q.authorBio };\n\t\t\tmap.set(q.author, info);\n\t\t}\n\t\tinfo.quoteCount++;\n\t\tif (!info.categories.includes(q.category)) {\n\t\t\tinfo.categories.push(q.category);\n\t\t}\n\t\t// Prefer the bio entry that has content\n\t\tif (!info.bio && q.authorBio) info.bio = q.authorBio;\n\t}\n\treturn Array.from(map.values()).sort(\n\t\t(a, b) => b.quoteCount - a.quoteCount || a.name.localeCompare(b.name)\n\t);\n}\n\n/**\n * Get verified quotes only\n */\nexport function getVerifiedQuotes(): Quote[] {\n\treturn QUOTES.filter((q) => q.verified === true);\n}\n\n/**\n * Get quotes by year range\n */\nexport function getQuotesByYearRange(startYear: number, endYear: number): Quote[] {\n\treturn QUOTES.filter((q) => q.year !== undefined && q.year >= startYear && q.year <= endYear);\n}\n\n/**\n * Get quotes by original language\n */\nexport function getQuotesByOriginalLanguage(language: string): Quote[] {\n\treturn QUOTES.filter((q) => q.originalLanguage === language);\n}\n\n/**\n * Get quotes for a curated theme deck.\n */\nexport function getQuotesByThemeDeck(deckId: ThemeDeckId): Quote[] {\n\tconst deck = THEME_DECKS.find((d) => d.id === deckId);\n\tif (!deck) return [];\n\tconst authorSet = new Set(deck.authors.map((a) => a.toLowerCase()));\n\treturn QUOTES.filter((q) => authorSet.has(q.author.toLowerCase()));\n}\n\n/**\n * Fuzzy search — matches even with typos using bigram similarity.\n * Falls back to simple substring match for short queries.\n */\nexport function fuzzySearchQuotes(\n\tquery: string,\n\tlanguage: SupportedLanguage = 'de',\n\tthreshold = 0.3\n): Quote[] {\n\tconst normalizedQuery = query.toLowerCase().trim();\n\tif (!normalizedQuery) return [];\n\n\t// For very short queries (1-2 chars), use exact substring\n\tif (normalizedQuery.length <= 2) return searchQuotes(query, language);\n\n\tconst queryBigrams = toBigrams(normalizedQuery);\n\n\treturn QUOTES.filter((q) => {\n\t\tconst text = language === 'original' ? q.text.original : q.text[language];\n\t\tconst haystack = `${text} ${q.author}`.toLowerCase();\n\n\t\t// Fast path: exact substring match\n\t\tif (haystack.includes(normalizedQuery)) return true;\n\n\t\t// Check individual words for fuzzy match\n\t\tconst queryWords = normalizedQuery.split(/\\s+/);\n\t\treturn queryWords.every((word) => {\n\t\t\tif (haystack.includes(word)) return true;\n\t\t\tif (word.length <= 2) return false;\n\t\t\tconst wordBigrams = toBigrams(word);\n\t\t\t// Check if any word in the haystack has high bigram similarity\n\t\t\treturn haystack.split(/\\s+/).some((hw) => {\n\t\t\t\tif (hw.length <= 2) return false;\n\t\t\t\treturn bigramSimilarity(wordBigrams, toBigrams(hw)) >= threshold;\n\t\t\t});\n\t\t});\n\t});\n}\n\nfunction toBigrams(s: string): Set<string> {\n\tconst bigrams = new Set<string>();\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.add(s.slice(i, i + 2));\n\t}\n\treturn bigrams;\n}\n\nfunction bigramSimilarity(a: Set<string>, b: Set<string>): number {\n\tlet intersection = 0;\n\tfor (const bigram of a) {\n\t\tif (b.has(bigram)) intersection++;\n\t}\n\treturn (2 * intersection) / (a.size + b.size);\n}\n\n// Helper function\nfunction hashString(str: string): number {\n\tlet hash = 0;\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str.charCodeAt(i);\n\t\thash = (hash << 5) - hash + char;\n\t\thash = hash & hash;\n\t}\n\treturn hash;\n}\n"],"mappings":"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","names":[]} |