🎉 happy birthday LibreChat (#1768)

* happy birthday LibreChat

* Refactor endpoint condition in Landing component

* Update birthday message in Eng.tsx

* fix(/config): avoid nesting ternaries

* refactor(/config): check birthday

---------

Co-authored-by: Danny Avila <messagedaniel@protonmail.com>
This commit is contained in:
Marco Beretta 2024-02-11 15:10:12 +01:00 committed by GitHub
parent 14b61fc861
commit a91042b6b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 169 additions and 43 deletions

View file

@ -26,6 +26,8 @@ DOMAIN_SERVER=http://localhost:3080
NO_INDEX=true
SHOW_BIRTHDAY_ICON=true
#===============#
# Debug Logging #
#===============#

View file

@ -7,6 +7,11 @@ const emailLoginEnabled =
process.env.ALLOW_EMAIL_LOGIN === undefined || isEnabled(process.env.ALLOW_EMAIL_LOGIN);
router.get('/', async function (req, res) {
const isBirthday = () => {
const today = new Date();
return today.getMonth() === 1 && today.getDate() === 11;
};
try {
const payload = {
appTitle: process.env.APP_TITLE || 'LibreChat',
@ -33,6 +38,10 @@ router.get('/', async function (req, res) {
!!process.env.EMAIL_PASSWORD &&
!!process.env.EMAIL_FROM,
checkBalance: isEnabled(process.env.CHECK_BALANCE),
showBirthdayIcon:
isBirthday() ||
isEnabled(process.env.SHOW_BIRTHDAY_ICON) ||
process.env.SHOW_BIRTHDAY_ICON === '',
};
if (typeof process.env.CUSTOM_FOOTER === 'string') {

View file

@ -1,14 +1,17 @@
import type { ReactNode } from 'react';
import { useGetEndpointsQuery } from 'librechat-data-provider/react-query';
import { useGetEndpointsQuery, useGetStartupConfig } from 'librechat-data-provider/react-query';
import { EModelEndpoint } from 'librechat-data-provider';
import { icons } from './Menus/Endpoints/Icons';
import { useChatContext } from '~/Providers';
import { getEndpointField } from '~/utils';
import { useLocalize } from '~/hooks';
import { BirthdayIcon } from '~/components/svg';
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '~/components/ui/';
export default function Landing({ Header }: { Header?: ReactNode }) {
const { conversation } = useChatContext();
const { data: endpointsConfig } = useGetEndpointsQuery();
const { data: startupConfig } = useGetStartupConfig();
const localize = useLocalize();
let { endpoint } = conversation ?? {};
@ -27,10 +30,12 @@ export default function Landing({ Header }: { Header?: ReactNode }) {
const Icon = icons[iconKey];
return (
<TooltipProvider delayDuration={50}>
<Tooltip>
<div className="relative h-full">
<div className="absolute left-0 right-0">{Header && Header}</div>
<div className="flex h-full flex-col items-center justify-center">
<div className="mb-3 h-[72px] w-[72px]">
<div className="relative mb-3 h-[72px] w-[72px]">
<div className="gizmo-shadow-stroke relative flex h-full items-center justify-center rounded-full bg-white text-black">
{endpoint &&
Icon &&
@ -41,6 +46,14 @@ export default function Landing({ Header }: { Header?: ReactNode }) {
endpoint: endpoint,
iconURL: iconURL,
})}
<TooltipTrigger>
{(startupConfig?.showBirthdayIcon ?? false) && (
<BirthdayIcon className="absolute bottom-12 right-5" />
)}
</TooltipTrigger>
<TooltipContent side="top" sideOffset={85} className="left-[-20%]">
{localize('com_ui_happy_birthday')}
</TooltipContent>
</div>
</div>
<div className="mb-5 text-2xl font-medium dark:text-white">
@ -48,5 +61,7 @@ export default function Landing({ Header }: { Header?: ReactNode }) {
</div>
</div>
</div>
</Tooltip>
</TooltipProvider>
);
}

View file

@ -0,0 +1,64 @@
import React from 'react';
import { cn } from '~/utils/';
export default function BirthdayIcon({ className = '' }) {
return (
<svg
version="1.1"
viewBox="0 0 233.33 290"
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
className={cn('h-14 w-14', className)}
>
<defs>
<linearGradient
id="linearGradient1842"
x1="163.92"
x2="173.66"
y1="22.212"
y2="-6.5784"
gradientTransform="translate(.10391 .050143)"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#640a62" offset="0" />
<stop stopColor="#852283" offset=".49917" />
<stop stopColor="#640a62" offset="1" />
</linearGradient>
</defs>
<g>
<path
transform="matrix(.43416 .90084 -.89966 .4366 0 0)"
d="m259.29-126.03a232.2 237.56 0 0 1-17.412 231.34l-193.32-131.59z"
fill="url(#linearGradient1842)"
/>
<path
transform="matrix(.6967 .051926 -.051926 .6967 35.578 23.196)"
d="m50.818 31.415c-1.4654 2.4749-10.838 2.4195-12.997 4.3204-2.1584 1.9009-3.288 11.206-5.9282 12.347-2.6402 1.1409-10.191-4.4132-13.054-4.1441-2.8636 0.26917-9.2466 7.133-12.053 6.5041-2.8066-0.62889-5.6503-9.5602-8.1252-11.026-2.4749-1.4654-11.673 0.33572-13.574-1.8227s1.0482-11.056-0.0927-13.696c-1.1409-2.6402-9.6412-6.5898-9.9104-9.4533-0.26917-2.8636 7.3463-8.328 7.9752-11.135 0.62889-2.8066-3.9265-10.998-2.4612-13.473 1.4654-2.4749 10.838-2.4195 12.997-4.3204 2.1584-1.9009 3.288-11.206 5.9282-12.347 2.6402-1.1409 10.191 4.4132 13.054 4.1441 2.8636-0.26917 9.2466-7.133 12.053-6.5041 2.8066 0.62889 5.6503 9.5602 8.1252 11.026s11.673-0.33572 13.574 1.8227c1.9009 2.1584-1.0482 11.056 0.0927 13.696 1.1409 2.6402 9.6412 6.5898 9.9104 9.4533 0.26917 2.8635-7.3463 8.328-7.9752 11.135-0.62889 2.8066 3.9265 10.998 2.4612 13.473z"
fill="#ff9d78"
stroke="#f29472"
strokeWidth="4.7877"
/>
<circle cx="170.36" cy="215.76" r="12.903" fill="#cfffff" />
<path
d="m220.77 174.77c-88.526 101.03-191.21 85.731-209.5 82.142-2.2101-2e-5 -2.6686 0.42426-3.437 2.0021l-1.7042 7.5028c0.056197 2.3603 0.37544 2.6428 1.9121 3.5409 18.396 3.3746 130.27 19.488 223.46-86.881 0.64011-1.5095 0.46653-3.1324-0.59137-4.7337l-5.1558-3.6482c-1.586-0.8743-3.9524-0.94332-4.9837 0.0751z"
color="#000000"
fill="#ff9d78"
stroke="#f29472"
strokeLinejoin="round"
strokeWidth="2.8913"
/>
<g fill="#cfffff">
<circle cx="72.684" cy="99.47" r="12.903" />
<circle cx="99.144" cy="172.32" r="12.903" />
<circle cx="59.617" cy="214.78" r="12.903" />
<circle cx="135.4" cy="118.42" r="12.903" />
<path
transform="rotate(38.66)"
d="m254.21-1.9608a12.903 12.903 0 0 1-6.4852 11.194 12.903 12.903 0 0 1-12.937-0.0582 12.903 12.903 0 0 1-6.3843-11.252l12.903 0.1161z"
/>
<path d="m29.476 158.16a12.903 12.903 0 0 0-3.6562 0.5293l-3.3691 23.189a12.903 12.903 0 0 0 7.0254 2.0879 12.903 12.903 0 0 0 12.904-12.904 12.903 12.903 0 0 0-12.904-12.902z" />
</g>
</g>
</svg>
);
}

View file

@ -45,3 +45,4 @@ export { default as UserIcon } from './UserIcon';
export { default as NewChatIcon } from './NewChatIcon';
export { default as ExperimentIcon } from './ExperimentIcon';
export { default as GoogleIconChat } from './GoogleIconChat';
export { default as BirthdayIcon } from './BirthdayIcon';

View file

@ -3,6 +3,7 @@
export default {
com_ui_balance: 'الرصيد',
com_ui_examples: 'أمثلة',
com_ui_happy_birthday: 'إنه عيد ميلادي الأول!',
com_ui_new_chat: 'دردشة جديدة',
com_ui_example_quantum_computing: 'شرح الحوسبة الكمومية ببساطة',
com_ui_example_10_year_old_b_day: 'هل لديك أفكار إبداعية لعيد ميلاد طفل عمره 10 سنوات؟',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Exemplos',
com_ui_new_chat: 'Novo Chat',
com_ui_happy_birthday: 'É meu primeiro aniversário!',
com_ui_example_quantum_computing: 'Explique a computação quântica em termos simples',
com_ui_example_10_year_old_b_day:
'Tem alguma ideia criativa para o aniversário de uma criança de 10 anos?',

View file

@ -3,11 +3,14 @@
export default {
com_ui_examples: 'Beispiele',
com_ui_new_chat: 'Neuer Chat',
com_ui_happy_birthday: 'Es ist mein erster Geburtstag!',
com_ui_example_quantum_computing: 'Erkläre Quantencomputing in einfachen Worten',
com_ui_example_10_year_old_b_day: 'Hast du eine kreative Idee für den Geburtstag eines 10-Jährigen?',
com_ui_example_10_year_old_b_day:
'Hast du eine kreative Idee für den Geburtstag eines 10-Jährigen?',
com_ui_example_http_in_js: 'Wie stelle ich eine HTTP-Anfrage in Javascript?',
com_ui_capabilities: 'Funktionen',
com_ui_capability_remember: 'Erinnert sich daran, was der Benutzer zu einem früheren Zeitpunkt in der Konversation gesagt hat',
com_ui_capability_remember:
'Erinnert sich daran, was der Benutzer zu einem früheren Zeitpunkt in der Konversation gesagt hat',
com_ui_capability_correction: 'Ermöglicht es dem Benutzer, nachträgliche Korrekturen vorzunehmen',
com_ui_capability_decline_requests: 'Ermöglicht es, unangemessene Anfragen abzulehnen',
com_ui_limitations: 'Beschränkungen',
@ -29,13 +32,15 @@ export default {
com_ui_showing: 'Zeigen',
com_ui_of: 'von',
com_ui_entries: 'Einträge',
com_ui_pay_per_call: 'Alle KI-Chats an einem Ort. Bezahle pro API-Abruf nutzungsbasiert und nicht pro Monat',
com_ui_pay_per_call:
'Alle KI-Chats an einem Ort. Bezahle pro API-Abruf nutzungsbasiert und nicht pro Monat',
com_ui_new_footer: 'Alle KI-Chats an einem Ort.',
com_ui_enter: 'Eingabe',
com_ui_submit: 'Abschicken',
com_ui_upload_success: 'Erfolgreich hochgeladene Datei',
com_ui_upload_error: 'Beim Hochladen deiner Datei ist ein Fehler aufgetreten',
com_ui_upload_invalid: 'Ungültige Datei zum Hochladen. Muss ein Bild sein, das nicht größer als 2 MB ist',
com_ui_upload_invalid:
'Ungültige Datei zum Hochladen. Muss ein Bild sein, das nicht größer als 2 MB ist',
com_ui_cancel: 'Abbrechen',
com_ui_save: 'Speichern',
com_ui_save_submit: 'Speichern & Absenden',
@ -122,9 +127,9 @@ export default {
com_endpoint_bing_jailbreak: 'Jailbreak',
com_endpoint_bing_context_placeholder:
'Bing kann bis zu 7k Token für \'context\' verwenden, auf die es in der Konversation Bezug nehmen kann. Der genaue Grenzwert ist nicht bekannt, aber mehr als 7k Token können zu Fehlern führen.',
com_endpoint_bing_system_message_placeholder:
com_endpoint_bing_system_message_placeholder:
'WARNUNG: Der Missbrauch dieser Funktion kann dazu führen, dass Ihnen die Nutzung von Bing untersagt wird! Klicken Sie auf \'Systemnachricht\', um vollständige Anweisungen und die Standardnachricht zu erhalten, d.h. die als sicher geltende Voreinstellung \'Sydney\'.',
com_endpoint_system_message: 'System Nachricht',
com_endpoint_system_message: 'System Nachricht',
com_endpoint_message: 'Nachricht an',
com_endpoint_message_not_appendable: 'Bearbeite deine Nachricht oder generiere sie neu.',
com_endpoint_default_blank: 'Standard: leer',
@ -145,7 +150,8 @@ com_endpoint_system_message: 'System Nachricht',
com_endpoint_google_maxoutputtokens:
' Maximale Anzahl von Token, die in der Antwort erzeugt werden können. Gib einen niedrigeren Wert für kürzere Antworten und einen höheren Wert für längere Antworten an.',
com_endpoint_google_custom_name_placeholder: 'Setze einen benutzerdefinierten Namen für Google',
com_endpoint_prompt_prefix_placeholder: 'Setze benutzerdefinierte Anweisungen oder Kontext. Ignoriert, wenn leer.',
com_endpoint_prompt_prefix_placeholder:
'Setze benutzerdefinierte Anweisungen oder Kontext. Ignoriert, wenn leer.',
com_endpoint_custom_name: 'Benutzerdefinierter Name',
com_endpoint_prompt_prefix: 'Benutzerdefinierte Anweisungen',
com_endpoint_temperature: 'Temperatur (Kreativität)',
@ -190,13 +196,18 @@ com_endpoint_system_message: 'System Nachricht',
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder:
'Setzt benutzerdefinierte Anweisungen, die in die System Nachricht aufgenommen werden. Standardmäßig: keine',
com_endpoint_import: 'Importieren',
com_endpoint_set_custom_name: 'Lege einen benutzerdefinierten Namen fest, für den Fall, dass du diese Vorgabe finden kannst',
com_endpoint_set_custom_name:
'Lege einen benutzerdefinierten Namen fest, für den Fall, dass du diese Vorgabe finden kannst',
com_endpoint_preset_delete_confirm: 'Bist du sicher, dass du diese Vorgabe löschen willst?',
com_endpoint_preset_clear_all_confirm: "Bist du sicher, dass du alle deine Voreinstellungen löschen willst?",
com_endpoint_preset_clear_all_confirm:
'Bist du sicher, dass du alle deine Voreinstellungen löschen willst?',
com_endpoint_preset_import: 'Voreinstellung importiert!',
com_endpoint_preset_import_error: 'Beim Import deiner Voreinstellung ist ein Fehler aufgetreten. Bitte versuche es erneut.',
com_endpoint_preset_save_error: 'Es ist ein Fehler beim Speichern deiner Voreinstellung aufgetreten. Bitte versuche es noch einmal.',
com_endpoint_preset_delete_error: 'Beim Löschen deiner Voreinstellung ist ein Fehler aufgetreten. Bitte versuche es noch einmal.',
com_endpoint_preset_import_error:
'Beim Import deiner Voreinstellung ist ein Fehler aufgetreten. Bitte versuche es erneut.',
com_endpoint_preset_save_error:
'Es ist ein Fehler beim Speichern deiner Voreinstellung aufgetreten. Bitte versuche es noch einmal.',
com_endpoint_preset_delete_error:
'Beim Löschen deiner Voreinstellung ist ein Fehler aufgetreten. Bitte versuche es noch einmal.',
com_endpoint_preset_default_removed: 'ist nicht mehr die Standardeinstellung.',
com_endpoint_preset_default_item: 'Standard:',
com_endpoint_preset_default_none: 'Keine Standardeinstellung aktiv.',
@ -222,7 +233,8 @@ com_endpoint_system_message: 'System Nachricht',
com_endpoint_presets_clear_warning:
'Bist du sicher, dass du alle Voreinstellungen löschen willst? Dies ist nicht umkehrbar.',
com_endpoint_not_implemented: 'Nicht implementiert',
com_endpoint_no_presets: 'Es gibt noch keine Voreinstellungen, verwende die Schaltfläche "Einstellungen", um eine Vorlage zu erstellen.',
com_endpoint_no_presets:
'Es gibt noch keine Voreinstellungen, verwende die Schaltfläche "Einstellungen", um eine Vorlage zu erstellen.',
com_endpoint_not_available: 'Kein Endpunkt verfügbar',
com_endpoint_view_options: 'Ansichtsoptionen',
com_endpoint_save_convo_as_preset: 'Konversation als Voreinstellung speichern',
@ -244,18 +256,23 @@ com_endpoint_system_message: 'System Nachricht',
com_endpoint_config_google_service_key: 'Google Service Account Key',
com_endpoint_config_google_cloud_platform: '(von Google Cloud Platform)',
com_endpoint_config_google_api_key: 'Google API Key',
com_endpoint_config_google_gemini_api: "(Gemini API)",
com_endpoint_config_google_api_info: 'Um deinen Generative Language API-Schlüssel (für Gemini) zu erhalten,',
com_endpoint_config_google_gemini_api: '(Gemini API)',
com_endpoint_config_google_api_info:
'Um deinen Generative Language API-Schlüssel (für Gemini) zu erhalten,',
com_endpoint_config_key_import_json_key: 'Importiere Service Account JSON Key.',
com_endpoint_config_key_import_json_key_success: 'Erfolgreich importierter Service Account JSON Key',
com_endpoint_config_key_import_json_key_success:
'Erfolgreich importierter Service Account JSON Key',
com_endpoint_config_key_import_json_key_invalid:
'Ungültiger Service Account JSON Key, Hast du die richtige Datei importiert?',
com_endpoint_config_key_get_edge_key: 'Um dein Access Token für Bing zu erhalten, melde dich an bei',
com_endpoint_config_key_get_edge_key:
'Um dein Access Token für Bing zu erhalten, melde dich an bei',
com_endpoint_config_key_get_edge_key_dev_tool:
'Verwende Dev-Tools oder eine Erweiterung, während du auf der Website angemeldet bist, um den Inhalt des _U-Cookies zu kopieren. Wenn dies fehlschlägt, befolge die folgenden Anweisungen',
com_endpoint_config_key_edge_instructions: 'Anweisungen',
com_endpoint_config_key_edge_full_key_string: 'um die vollständigen Cookie-Strings zu übermitteln.',
com_endpoint_config_key_chatgpt: 'Um dein Zugangstoken für ChatGPT \'Gratis Version\' zu erhalten, melde dich bei',
com_endpoint_config_key_edge_full_key_string:
'um die vollständigen Cookie-Strings zu übermitteln.',
com_endpoint_config_key_chatgpt:
'Um dein Zugangstoken für ChatGPT \'Gratis Version\' zu erhalten, melde dich bei',
com_endpoint_config_key_chatgpt_then_visit: 'danach besuche',
com_endpoint_config_key_chatgpt_copy_token: 'Kopiere das Zugangstoken.',
com_endpoint_config_key_google_need_to: 'Du musst',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Examples',
com_ui_new_chat: 'New Chat',
com_ui_happy_birthday: 'It\'s my 1st birthday!',
com_ui_example_quantum_computing: 'Explain quantum computing in simple terms',
com_ui_example_10_year_old_b_day: 'Got any creative ideas for a 10 year old\'s birthday?',
com_ui_example_http_in_js: 'How do I make an HTTP request in Javascript?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Ejemplos',
com_ui_new_chat: 'Nuevo Chat',
com_ui_happy_birthday: '¡Es mi primer cumpleaños!',
com_ui_example_quantum_computing: 'Explicar la computación cuántica en términos simples',
com_ui_example_10_year_old_b_day:
'¿Tienes alguna idea creativa para el cumpleaños de un niño de 10 años?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Exemples',
com_ui_new_chat: 'Nouvelle conversation',
com_ui_happy_birthday: 'C\'est mon premier anniversaire !',
com_ui_example_quantum_computing: 'Expliquer l\'informatique quantique en termes simples',
com_ui_example_10_year_old_b_day:
'Tu as des idées créatives pour l\'anniversaire d\'un enfant de 10 ans ?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Contoh',
com_ui_new_chat: 'Chat Baru',
com_ui_happy_birthday: 'Ini ulang tahun pertamaku!',
com_ui_example_quantum_computing: 'Jelaskan komputasi kuantum dengan istilah yang sederhana',
com_ui_example_10_year_old_b_day: 'Ada ide kreatif untuk ulang tahun anak 10 tahun?',
com_ui_example_http_in_js: 'Bagaimana cara membuat permintaan HTTP dalam Javascript?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: 'Esempi',
com_ui_new_chat: 'Nuova Chat',
com_ui_happy_birthday: 'È il mio primo compleanno!',
com_ui_example_quantum_computing: 'Spiega l\'informatica quantistica in termini semplici',
com_ui_example_10_year_old_b_day:
'Hai qualche idea creativa per il compleanno di un bambino di 10 anni?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: '例',
com_ui_new_chat: '新規チャット',
com_ui_happy_birthday: '初めての誕生日です!',
com_ui_example_quantum_computing: '量子コンピュータを簡潔に説明してください',
com_ui_example_10_year_old_b_day: '10歳の誕生日で行うクリエイティブなアイデアはありますか',
com_ui_example_http_in_js: 'JavascriptでHTTPリクエストを作成するにはどうすればよいですか',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: '예시',
com_ui_new_chat: '새 채팅',
com_ui_happy_birthday: '내 첫 생일이야!',
com_ui_example_quantum_computing: '양자 컴퓨팅을 간단하게 설명해줄래?',
com_ui_example_10_year_old_b_day: '10살 아이 생일 파티를 위한 참신한 아이디어 있을까?',
com_ui_example_http_in_js: '자바스크립트에서 HTTP 요청을 어떻게 만드나요?',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: 'Voorbeelden',
com_ui_new_chat: 'Nieuwe chat',
com_ui_happy_birthday: 'Het is mijn eerste verjaardag!',
com_ui_example_quantum_computing: 'Leg quantumcomputing in eenvoudige termen uit',
com_ui_example_10_year_old_b_day: 'Heb je creatieve ideeën voor de verjaardag van een 10-jarige?',
com_ui_example_http_in_js: 'Hoe maak ik een HTTP-aanvraag in Javascript?',

View file

@ -1,8 +1,9 @@
// Polskie frazy
// Polish phrases
export default {
com_ui_examples: 'Przykłady',
com_ui_new_chat: 'Nowy czat',
com_ui_happy_birthday: 'To moje pierwsze urodziny!',
com_ui_example_quantum_computing: 'Wyjaśnij obliczenia kwantowe w prostych słowach',
com_ui_example_10_year_old_b_day: 'Masz jakieś kreatywne pomysły na dziesiąte urodziny?',
com_ui_example_http_in_js: 'Jak wykonać żądanie HTTP w JavaScript?',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: 'Примеры',
com_ui_new_chat: 'Создать чат',
com_ui_happy_birthday: 'Это мой первый день рождения!',
com_ui_example_quantum_computing: 'Объясни квантовые вычисления простыми словами',
com_ui_example_10_year_old_b_day:
'У тебя есть креативные идеи для дня рождения 10-летнего ребенка?',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: 'Exempel', // Examples
com_ui_new_chat: 'Ny chatt', // New chat
com_ui_happy_birthday: 'Det är min första födelsedag!', // It's my first birthday!
com_ui_example_quantum_computing: 'Förklara kvantberäkning på enkla termer', // Explain quantum computing in simple terms
com_ui_example_10_year_old_b_day: 'Har du några kreativa idéer till ett 10-årings födelsedag?', // Got any creative ideas for a 10 year old's birthday?
com_ui_example_http_in_js: 'Hur gör jag en HTTP-förfrågan i Javascript?', // How do I make an HTTP request in Javascript?

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: 'Örnekler',
com_ui_new_chat: 'Yeni Sohbet',
com_ui_happy_birthday: 'Bu benim ilk doğum günüm!',
com_ui_example_quantum_computing: 'Kuantum bilgisayarını basit terimlerle açıkla',
com_ui_example_10_year_old_b_day:
'10 yaşındaki bir çocuğun doğum günü için yaratıcı fikirlerin var mı?',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: 'Ví dụ',
com_ui_new_chat: 'Trò chuyện mới',
com_ui_happy_birthday: 'Đây là sinh nhật đầu tiên của tôi!',
com_ui_example_quantum_computing: 'Giải thích máy tính lượng tử theo cách đơn giản',
com_ui_example_10_year_old_b_day:
'Có ý tưởng sáng tạo nào cho sinh nhật của một đứa trẻ 10 tuổi không?',

View file

@ -5,6 +5,7 @@
export default {
com_ui_examples: '示例',
com_ui_new_chat: '创建新对话',
com_ui_happy_birthday: '这是我的第一个生日!',
com_ui_example_quantum_computing: '如何给7岁小孩讲解量子计算',
com_ui_example_10_year_old_b_day: '如何举办生日宴才能耳目一新?',
com_ui_example_http_in_js: '如何在Python中实现HTTP请求',

View file

@ -3,6 +3,7 @@
export default {
com_ui_examples: '範例',
com_ui_new_chat: '新對話',
com_ui_happy_birthday: '這是我的第一個生日!',
com_ui_example_quantum_computing: '用簡單的方式解釋量子計算',
com_ui_example_10_year_old_b_day: '有沒有創意十足的十歲生日派對點子?',
com_ui_example_http_in_js: '如何在 JavaScript 中發起 HTTP 請求?',

View file

@ -203,6 +203,7 @@ export type TStartupConfig = {
socialLoginEnabled: boolean;
emailEnabled: boolean;
checkBalance: boolean;
showBirthdayIcon: boolean;
customFooter?: string;
};