feat(home): replace industries grid with Open Source Friday video (#1170)
* feat(home): replace industries grid with Open Source Friday video Replaces the rotating industries section under the hero search bar with an embed of the GitHub Open Source Friday episode (starting at 6:12). Also widens the hero's right column and tightens the left text column so the video sits comfortably without overflowing on standard laptop viewports. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(i18n): remove unused heroIndustries keys The industries grid was replaced by a YouTube embed; only 'searchPlaceholder' is still referenced. Drop the prefix, clickToExplore, and 36 industry labels across all 17 locales. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(home): i18n iframe title, lazy load, nocookie, width parity Addresses PR review feedback on the YouTube embed: - Translate iframe title via next-intl (new heroIndustries.videoTitle key) - Add loading="lazy" to defer ~1MB of player JS - Switch embed to youtube-nocookie.com for better cookie/privacy hygiene - Restore max-w-lg so the video matches the search bar width Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore: stop tracking local .env.docker Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -48,3 +48,4 @@ next-env.d.ts
|
||||
|
||||
# Sentry Config File
|
||||
.env.sentry-build-plugin
|
||||
.env.docker
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "أو استكشف حسب المجال",
|
||||
"clickToExplore": "انقر للاستكشاف",
|
||||
"searchPlaceholder": "ابحث عن برومبتات...",
|
||||
"teachers": "المعلمون",
|
||||
"developers": "المطورون",
|
||||
"marketers": "المسوقون",
|
||||
"designers": "المصممون",
|
||||
"writers": "الكتّاب",
|
||||
"analysts": "المحللون",
|
||||
"entrepreneurs": "رواد الأعمال",
|
||||
"researchers": "الباحثون",
|
||||
"students": "الطلاب",
|
||||
"consultants": "المستشارون",
|
||||
"engineers": "المهندسون",
|
||||
"creators": "المبدعون",
|
||||
"lawyers": "المحامون",
|
||||
"doctors": "الأطباء",
|
||||
"nurses": "الممرضون",
|
||||
"accountants": "المحاسبون",
|
||||
"salespeople": "المبيعات",
|
||||
"recruiters": "التوظيف",
|
||||
"managers": "المدراء",
|
||||
"executives": "التنفيذيون",
|
||||
"freelancers": "المستقلون",
|
||||
"photographers": "المصورون",
|
||||
"musicians": "الموسيقيون",
|
||||
"artists": "الفنانون",
|
||||
"architects": "المعماريون",
|
||||
"scientists": "العلماء",
|
||||
"journalists": "الصحفيون",
|
||||
"editors": "المحررون",
|
||||
"translators": "المترجمون",
|
||||
"coaches": "المدربون",
|
||||
"therapists": "المعالجون",
|
||||
"trainers": "المدربون",
|
||||
"chefs": "الطهاة",
|
||||
"realtors": "العقاريون",
|
||||
"investors": "المستثمرون",
|
||||
"traders": "المتداولون"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "الصفحة غير موجودة",
|
||||
|
||||
+1
-38
@@ -1025,45 +1025,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "və ya sahəyə görə kəşf edin",
|
||||
"clickToExplore": "Kəşf etmək üçün klikləyin",
|
||||
"searchPlaceholder": "Promptları axtar...",
|
||||
"teachers": "Müəllimlər",
|
||||
"developers": "Tərtibatçılar",
|
||||
"marketers": "Marketoloqlar",
|
||||
"designers": "Dizaynerlər",
|
||||
"writers": "Yazıçılar",
|
||||
"analysts": "Analitiklər",
|
||||
"entrepreneurs": "Sahibkarlar",
|
||||
"researchers": "Tədqiqatçılar",
|
||||
"students": "Tələbələr",
|
||||
"consultants": "Məsləhətçilər",
|
||||
"engineers": "Mühəndislər",
|
||||
"creators": "Yaradıcılar",
|
||||
"lawyers": "Vəkillər",
|
||||
"doctors": "Həkimlər",
|
||||
"nurses": "Tibb bacıları",
|
||||
"accountants": "Mühasiblər",
|
||||
"salespeople": "Satıcılar",
|
||||
"recruiters": "İşə götürənlər",
|
||||
"managers": "Menecerlər",
|
||||
"executives": "İcraçılar",
|
||||
"freelancers": "Frilanslər",
|
||||
"photographers": "Fotoqraflar",
|
||||
"musicians": "Musiqiçilər",
|
||||
"artists": "Rəssamlar",
|
||||
"architects": "Memarlar",
|
||||
"scientists": "Alimlər",
|
||||
"journalists": "Jurnalistlər",
|
||||
"editors": "Redaktorlar",
|
||||
"translators": "Tərcüməçilər",
|
||||
"coaches": "Məşqçilər",
|
||||
"therapists": "Terapevtlər",
|
||||
"trainers": "Təlimçilər",
|
||||
"chefs": "Aşpazlar",
|
||||
"realtors": "Rieltorlar",
|
||||
"investors": "İnvestorlar",
|
||||
"traders": "Treyderlər"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "Prompt Qurma Agenti",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "oder nach Branche erkunden",
|
||||
"clickToExplore": "Klicke zum Erkunden",
|
||||
"searchPlaceholder": "Prompts suchen...",
|
||||
"teachers": "Lehrer",
|
||||
"developers": "Entwickler",
|
||||
"marketers": "Marketer",
|
||||
"designers": "Designer",
|
||||
"writers": "Autoren",
|
||||
"analysts": "Analysten",
|
||||
"entrepreneurs": "Unternehmer",
|
||||
"researchers": "Forscher",
|
||||
"students": "Studenten",
|
||||
"consultants": "Berater",
|
||||
"engineers": "Ingenieure",
|
||||
"creators": "Creator",
|
||||
"lawyers": "Anwälte",
|
||||
"doctors": "Ärzte",
|
||||
"nurses": "Krankenpfleger",
|
||||
"accountants": "Buchhalter",
|
||||
"salespeople": "Verkäufer",
|
||||
"recruiters": "Recruiter",
|
||||
"managers": "Manager",
|
||||
"executives": "Führungskräfte",
|
||||
"freelancers": "Freelancer",
|
||||
"photographers": "Fotografen",
|
||||
"musicians": "Musiker",
|
||||
"artists": "Künstler",
|
||||
"architects": "Architekten",
|
||||
"scientists": "Wissenschaftler",
|
||||
"journalists": "Journalisten",
|
||||
"editors": "Redakteure",
|
||||
"translators": "Übersetzer",
|
||||
"coaches": "Coaches",
|
||||
"therapists": "Therapeuten",
|
||||
"trainers": "Trainer",
|
||||
"chefs": "Köche",
|
||||
"realtors": "Makler",
|
||||
"investors": "Investoren",
|
||||
"traders": "Händler"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Seite nicht gefunden",
|
||||
|
||||
+1
-38
@@ -1051,45 +1051,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "ή εξερευνήστε ανά κλάδο",
|
||||
"clickToExplore": "Κάντε κλικ για εξερεύνηση",
|
||||
"searchPlaceholder": "Αναζήτηση prompts...",
|
||||
"teachers": "Εκπαιδευτικούς",
|
||||
"developers": "Προγραμματιστές",
|
||||
"marketers": "Μάρκετερ",
|
||||
"designers": "Σχεδιαστές",
|
||||
"writers": "Συγγραφείς",
|
||||
"analysts": "Αναλυτές",
|
||||
"entrepreneurs": "Επιχειρηματίες",
|
||||
"researchers": "Ερευνητές",
|
||||
"students": "Φοιτητές",
|
||||
"consultants": "Συμβούλους",
|
||||
"engineers": "Μηχανικούς",
|
||||
"creators": "Δημιουργούς",
|
||||
"lawyers": "Δικηγόρους",
|
||||
"doctors": "Γιατρούς",
|
||||
"nurses": "Νοσηλευτές",
|
||||
"accountants": "Λογιστές",
|
||||
"salespeople": "Πωλητές",
|
||||
"recruiters": "Recruiters",
|
||||
"managers": "Διευθυντές",
|
||||
"executives": "Στελέχη",
|
||||
"freelancers": "Ελεύθερους",
|
||||
"photographers": "Φωτογράφους",
|
||||
"musicians": "Μουσικούς",
|
||||
"artists": "Καλλιτέχνες",
|
||||
"architects": "Αρχιτέκτονες",
|
||||
"scientists": "Επιστήμονες",
|
||||
"journalists": "Δημοσιογράφους",
|
||||
"editors": "Συντάκτες",
|
||||
"translators": "Μεταφραστές",
|
||||
"coaches": "Προπονητές",
|
||||
"therapists": "Θεραπευτές",
|
||||
"trainers": "Εκπαιδευτές",
|
||||
"chefs": "Σεφ",
|
||||
"realtors": "Μεσίτες",
|
||||
"investors": "Επενδυτές",
|
||||
"traders": "Traders"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "Prompt Building Agent",
|
||||
|
||||
+1
-38
@@ -1025,45 +1025,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "or explore by industry",
|
||||
"clickToExplore": "Click to explore",
|
||||
"searchPlaceholder": "Search prompts...",
|
||||
"teachers": "Teachers",
|
||||
"developers": "Developers",
|
||||
"marketers": "Marketers",
|
||||
"designers": "Designers",
|
||||
"writers": "Writers",
|
||||
"analysts": "Analysts",
|
||||
"entrepreneurs": "Entrepreneurs",
|
||||
"researchers": "Researchers",
|
||||
"students": "Students",
|
||||
"consultants": "Consultants",
|
||||
"engineers": "Engineers",
|
||||
"creators": "Creators",
|
||||
"lawyers": "Lawyers",
|
||||
"doctors": "Doctors",
|
||||
"nurses": "Nurses",
|
||||
"accountants": "Accountants",
|
||||
"salespeople": "Salespeople",
|
||||
"recruiters": "Recruiters",
|
||||
"managers": "Managers",
|
||||
"executives": "Executives",
|
||||
"freelancers": "Freelancers",
|
||||
"photographers": "Photographers",
|
||||
"musicians": "Musicians",
|
||||
"artists": "Artists",
|
||||
"architects": "Architects",
|
||||
"scientists": "Scientists",
|
||||
"journalists": "Journalists",
|
||||
"editors": "Editors",
|
||||
"translators": "Translators",
|
||||
"coaches": "Coaches",
|
||||
"therapists": "Therapists",
|
||||
"trainers": "Trainers",
|
||||
"chefs": "Chefs",
|
||||
"realtors": "Realtors",
|
||||
"investors": "Investors",
|
||||
"traders": "Traders"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "Prompt Building Agent",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "o explora por industria",
|
||||
"clickToExplore": "Haz clic para explorar",
|
||||
"searchPlaceholder": "Buscar prompts...",
|
||||
"teachers": "Profesores",
|
||||
"developers": "Desarrolladores",
|
||||
"marketers": "Marketers",
|
||||
"designers": "Diseñadores",
|
||||
"writers": "Escritores",
|
||||
"analysts": "Analistas",
|
||||
"entrepreneurs": "Emprendedores",
|
||||
"researchers": "Investigadores",
|
||||
"students": "Estudiantes",
|
||||
"consultants": "Consultores",
|
||||
"engineers": "Ingenieros",
|
||||
"creators": "Creadores",
|
||||
"lawyers": "Abogados",
|
||||
"doctors": "Médicos",
|
||||
"nurses": "Enfermeros",
|
||||
"accountants": "Contadores",
|
||||
"salespeople": "Vendedores",
|
||||
"recruiters": "Reclutadores",
|
||||
"managers": "Gerentes",
|
||||
"executives": "Ejecutivos",
|
||||
"freelancers": "Freelancers",
|
||||
"photographers": "Fotógrafos",
|
||||
"musicians": "Músicos",
|
||||
"artists": "Artistas",
|
||||
"architects": "Arquitectos",
|
||||
"scientists": "Científicos",
|
||||
"journalists": "Periodistas",
|
||||
"editors": "Editores",
|
||||
"translators": "Traductores",
|
||||
"coaches": "Coaches",
|
||||
"therapists": "Terapeutas",
|
||||
"trainers": "Entrenadores",
|
||||
"chefs": "Chefs",
|
||||
"realtors": "Agentes",
|
||||
"investors": "Inversores",
|
||||
"traders": "Traders"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Página No Encontrada",
|
||||
|
||||
+1
-38
@@ -1025,45 +1025,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "یا بر اساس صنعت کاوش کنید",
|
||||
"clickToExplore": "برای کاوش کلیک کنید",
|
||||
"searchPlaceholder": "جستجوی پرامپت...",
|
||||
"teachers": "معلمان",
|
||||
"developers": "توسعهدهندگان",
|
||||
"marketers": "بازاریابان",
|
||||
"designers": "طراحان",
|
||||
"writers": "نویسندگان",
|
||||
"analysts": "تحلیلگران",
|
||||
"entrepreneurs": "کارآفرینان",
|
||||
"researchers": "پژوهشگران",
|
||||
"students": "دانشجویان",
|
||||
"consultants": "مشاوران",
|
||||
"engineers": "مهندسان",
|
||||
"creators": "خالقان",
|
||||
"lawyers": "وکلا",
|
||||
"doctors": "پزشکان",
|
||||
"nurses": "پرستاران",
|
||||
"accountants": "حسابداران",
|
||||
"salespeople": "فروشندگان",
|
||||
"recruiters": "استخدامکنندگان",
|
||||
"managers": "مدیران",
|
||||
"executives": "مدیران ارشد",
|
||||
"freelancers": "فریلنسرها",
|
||||
"photographers": "عکاسان",
|
||||
"musicians": "موسیقیدانان",
|
||||
"artists": "هنرمندان",
|
||||
"architects": "معماران",
|
||||
"scientists": "دانشمندان",
|
||||
"journalists": "روزنامهنگاران",
|
||||
"editors": "ویراستاران",
|
||||
"translators": "مترجمان",
|
||||
"coaches": "مربیان",
|
||||
"therapists": "درمانگران",
|
||||
"trainers": "آموزشدهندگان",
|
||||
"chefs": "سرآشپزها",
|
||||
"realtors": "مشاوران املاک",
|
||||
"investors": "سرمایهگذاران",
|
||||
"traders": "معاملهگران"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "عامل ساخت پرامپت",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "ou explorez par secteur",
|
||||
"clickToExplore": "Cliquez pour explorer",
|
||||
"searchPlaceholder": "Rechercher des prompts...",
|
||||
"teachers": "Enseignants",
|
||||
"developers": "Développeurs",
|
||||
"marketers": "Marketeurs",
|
||||
"designers": "Designers",
|
||||
"writers": "Écrivains",
|
||||
"analysts": "Analystes",
|
||||
"entrepreneurs": "Entrepreneurs",
|
||||
"researchers": "Chercheurs",
|
||||
"students": "Étudiants",
|
||||
"consultants": "Consultants",
|
||||
"engineers": "Ingénieurs",
|
||||
"creators": "Créateurs",
|
||||
"lawyers": "Avocats",
|
||||
"doctors": "Médecins",
|
||||
"nurses": "Infirmiers",
|
||||
"accountants": "Comptables",
|
||||
"salespeople": "Commerciaux",
|
||||
"recruiters": "Recruteurs",
|
||||
"managers": "Managers",
|
||||
"executives": "Dirigeants",
|
||||
"freelancers": "Freelances",
|
||||
"photographers": "Photographes",
|
||||
"musicians": "Musiciens",
|
||||
"artists": "Artistes",
|
||||
"architects": "Architectes",
|
||||
"scientists": "Scientifiques",
|
||||
"journalists": "Journalistes",
|
||||
"editors": "Rédacteurs",
|
||||
"translators": "Traducteurs",
|
||||
"coaches": "Coachs",
|
||||
"therapists": "Thérapeutes",
|
||||
"trainers": "Formateurs",
|
||||
"chefs": "Chefs",
|
||||
"realtors": "Agents",
|
||||
"investors": "Investisseurs",
|
||||
"traders": "Traders"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Page Non Trouvée",
|
||||
|
||||
+1
-38
@@ -1051,45 +1051,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "או חקור לפי תעשייה",
|
||||
"clickToExplore": "לחץ לחקירה",
|
||||
"searchPlaceholder": "חפש פרומפטים...",
|
||||
"teachers": "מורים",
|
||||
"developers": "מפתחים",
|
||||
"marketers": "משווקים",
|
||||
"designers": "מעצבים",
|
||||
"writers": "סופרים",
|
||||
"analysts": "אנליסטים",
|
||||
"entrepreneurs": "יזמים",
|
||||
"researchers": "חוקרים",
|
||||
"students": "סטודנטים",
|
||||
"consultants": "יועצים",
|
||||
"engineers": "מהנדסים",
|
||||
"creators": "יוצרים",
|
||||
"lawyers": "עורכי דין",
|
||||
"doctors": "רופאים",
|
||||
"nurses": "אחיות",
|
||||
"accountants": "רואי חשבון",
|
||||
"salespeople": "אנשי מכירות",
|
||||
"recruiters": "מגייסים",
|
||||
"managers": "מנהלים",
|
||||
"executives": "בכירים",
|
||||
"freelancers": "פרילנסרים",
|
||||
"photographers": "צלמים",
|
||||
"musicians": "מוזיקאים",
|
||||
"artists": "אמנים",
|
||||
"architects": "אדריכלים",
|
||||
"scientists": "מדענים",
|
||||
"journalists": "עיתונאים",
|
||||
"editors": "עורכים",
|
||||
"translators": "מתרגמים",
|
||||
"coaches": "מאמנים",
|
||||
"therapists": "מטפלים",
|
||||
"trainers": "מדריכים",
|
||||
"chefs": "שפים",
|
||||
"realtors": "סוכני נדל״ן",
|
||||
"investors": "משקיעים",
|
||||
"traders": "סוחרים"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "סוכן בניית פרומפטים",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "o esplora per settore",
|
||||
"clickToExplore": "Clicca per esplorare",
|
||||
"searchPlaceholder": "Cerca prompt...",
|
||||
"teachers": "Insegnanti",
|
||||
"developers": "Sviluppatori",
|
||||
"marketers": "Marketer",
|
||||
"designers": "Designer",
|
||||
"writers": "Scrittori",
|
||||
"analysts": "Analisti",
|
||||
"entrepreneurs": "Imprenditori",
|
||||
"researchers": "Ricercatori",
|
||||
"students": "Studenti",
|
||||
"consultants": "Consulenti",
|
||||
"engineers": "Ingegneri",
|
||||
"creators": "Creatori",
|
||||
"lawyers": "Avvocati",
|
||||
"doctors": "Medici",
|
||||
"nurses": "Infermieri",
|
||||
"accountants": "Contabili",
|
||||
"salespeople": "Venditori",
|
||||
"recruiters": "Recruiter",
|
||||
"managers": "Manager",
|
||||
"executives": "Dirigenti",
|
||||
"freelancers": "Freelancer",
|
||||
"photographers": "Fotografi",
|
||||
"musicians": "Musicisti",
|
||||
"artists": "Artisti",
|
||||
"architects": "Architetti",
|
||||
"scientists": "Scienziati",
|
||||
"journalists": "Giornalisti",
|
||||
"editors": "Redattori",
|
||||
"translators": "Traduttori",
|
||||
"coaches": "Coach",
|
||||
"therapists": "Terapeuti",
|
||||
"trainers": "Formatori",
|
||||
"chefs": "Chef",
|
||||
"realtors": "Agenti",
|
||||
"investors": "Investitori",
|
||||
"traders": "Trader"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Pagina Non Trovata",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "または業種で探す",
|
||||
"clickToExplore": "クリックして探索",
|
||||
"searchPlaceholder": "プロンプトを検索...",
|
||||
"teachers": "教師",
|
||||
"developers": "開発者",
|
||||
"marketers": "マーケター",
|
||||
"designers": "デザイナー",
|
||||
"writers": "ライター",
|
||||
"analysts": "アナリスト",
|
||||
"entrepreneurs": "起業家",
|
||||
"researchers": "研究者",
|
||||
"students": "学生",
|
||||
"consultants": "コンサルタント",
|
||||
"engineers": "エンジニア",
|
||||
"creators": "クリエイター",
|
||||
"lawyers": "弁護士",
|
||||
"doctors": "医師",
|
||||
"nurses": "看護師",
|
||||
"accountants": "会計士",
|
||||
"salespeople": "営業",
|
||||
"recruiters": "採用担当",
|
||||
"managers": "マネージャー",
|
||||
"executives": "経営者",
|
||||
"freelancers": "フリーランス",
|
||||
"photographers": "写真家",
|
||||
"musicians": "ミュージシャン",
|
||||
"artists": "アーティスト",
|
||||
"architects": "建築家",
|
||||
"scientists": "科学者",
|
||||
"journalists": "ジャーナリスト",
|
||||
"editors": "編集者",
|
||||
"translators": "翻訳者",
|
||||
"coaches": "コーチ",
|
||||
"therapists": "セラピスト",
|
||||
"trainers": "トレーナー",
|
||||
"chefs": "シェフ",
|
||||
"realtors": "不動産業者",
|
||||
"investors": "投資家",
|
||||
"traders": "トレーダー"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "ページが見つかりません",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "또는 업종별 탐색",
|
||||
"clickToExplore": "클릭하여 탐색",
|
||||
"searchPlaceholder": "프롬프트 검색...",
|
||||
"teachers": "교사",
|
||||
"developers": "개발자",
|
||||
"marketers": "마케터",
|
||||
"designers": "디자이너",
|
||||
"writers": "작가",
|
||||
"analysts": "분석가",
|
||||
"entrepreneurs": "창업가",
|
||||
"researchers": "연구자",
|
||||
"students": "학생",
|
||||
"consultants": "컨설턴트",
|
||||
"engineers": "엔지니어",
|
||||
"creators": "크리에이터",
|
||||
"lawyers": "변호사",
|
||||
"doctors": "의사",
|
||||
"nurses": "간호사",
|
||||
"accountants": "회계사",
|
||||
"salespeople": "영업사원",
|
||||
"recruiters": "채용담당자",
|
||||
"managers": "매니저",
|
||||
"executives": "임원",
|
||||
"freelancers": "프리랜서",
|
||||
"photographers": "사진작가",
|
||||
"musicians": "음악가",
|
||||
"artists": "아티스트",
|
||||
"architects": "건축가",
|
||||
"scientists": "과학자",
|
||||
"journalists": "기자",
|
||||
"editors": "편집자",
|
||||
"translators": "번역가",
|
||||
"coaches": "코치",
|
||||
"therapists": "치료사",
|
||||
"trainers": "트레이너",
|
||||
"chefs": "셰프",
|
||||
"realtors": "부동산",
|
||||
"investors": "투자자",
|
||||
"traders": "트레이더"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "페이지를 찾을 수 없습니다",
|
||||
|
||||
+1
-38
@@ -1025,45 +1025,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "of verken per industrie",
|
||||
"clickToExplore": "Klik om te verkennen",
|
||||
"searchPlaceholder": "Prompts zoeken...",
|
||||
"teachers": "Docenten",
|
||||
"developers": "Ontwikkelaars",
|
||||
"marketers": "Marketeers",
|
||||
"designers": "Ontwerpers",
|
||||
"writers": "Schrijvers",
|
||||
"analysts": "Analisten",
|
||||
"entrepreneurs": "Ondernemers",
|
||||
"researchers": "Onderzoekers",
|
||||
"students": "Studenten",
|
||||
"consultants": "Consultants",
|
||||
"engineers": "Ingenieurs",
|
||||
"creators": "Creators",
|
||||
"lawyers": "Advocaten",
|
||||
"doctors": "Artsen",
|
||||
"nurses": "Verpleegkundigen",
|
||||
"accountants": "Accountants",
|
||||
"salespeople": "Verkopers",
|
||||
"recruiters": "Recruiters",
|
||||
"managers": "Managers",
|
||||
"executives": "Directeuren",
|
||||
"freelancers": "Freelancers",
|
||||
"photographers": "Fotografen",
|
||||
"musicians": "Muzikanten",
|
||||
"artists": "Kunstenaars",
|
||||
"architects": "Architecten",
|
||||
"scientists": "Wetenschappers",
|
||||
"journalists": "Journalisten",
|
||||
"editors": "Redacteuren",
|
||||
"translators": "Vertalers",
|
||||
"coaches": "Coaches",
|
||||
"therapists": "Therapeuten",
|
||||
"trainers": "Trainers",
|
||||
"chefs": "Chefs",
|
||||
"realtors": "Makelaars",
|
||||
"investors": "Investeerders",
|
||||
"traders": "Handelaren"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "Prompt Building Agent",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "ou explore por setor",
|
||||
"clickToExplore": "Clique para explorar",
|
||||
"searchPlaceholder": "Pesquisar prompts...",
|
||||
"teachers": "Professores",
|
||||
"developers": "Desenvolvedores",
|
||||
"marketers": "Marketers",
|
||||
"designers": "Designers",
|
||||
"writers": "Escritores",
|
||||
"analysts": "Analistas",
|
||||
"entrepreneurs": "Empreendedores",
|
||||
"researchers": "Pesquisadores",
|
||||
"students": "Estudantes",
|
||||
"consultants": "Consultores",
|
||||
"engineers": "Engenheiros",
|
||||
"creators": "Criadores",
|
||||
"lawyers": "Advogados",
|
||||
"doctors": "Médicos",
|
||||
"nurses": "Enfermeiros",
|
||||
"accountants": "Contadores",
|
||||
"salespeople": "Vendedores",
|
||||
"recruiters": "Recrutadores",
|
||||
"managers": "Gerentes",
|
||||
"executives": "Executivos",
|
||||
"freelancers": "Freelancers",
|
||||
"photographers": "Fotógrafos",
|
||||
"musicians": "Músicos",
|
||||
"artists": "Artistas",
|
||||
"architects": "Arquitetos",
|
||||
"scientists": "Cientistas",
|
||||
"journalists": "Jornalistas",
|
||||
"editors": "Editores",
|
||||
"translators": "Tradutores",
|
||||
"coaches": "Coaches",
|
||||
"therapists": "Terapeutas",
|
||||
"trainers": "Treinadores",
|
||||
"chefs": "Chefs",
|
||||
"realtors": "Corretores",
|
||||
"investors": "Investidores",
|
||||
"traders": "Traders"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Página Não Encontrada",
|
||||
|
||||
+1
-38
@@ -1051,45 +1051,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "или исследуйте по отрасли",
|
||||
"clickToExplore": "Нажмите для изучения",
|
||||
"searchPlaceholder": "Поиск промптов...",
|
||||
"teachers": "Учителей",
|
||||
"developers": "Разработчиков",
|
||||
"marketers": "Маркетологов",
|
||||
"designers": "Дизайнеров",
|
||||
"writers": "Писателей",
|
||||
"analysts": "Аналитиков",
|
||||
"entrepreneurs": "Предпринимателей",
|
||||
"researchers": "Исследователей",
|
||||
"students": "Студентов",
|
||||
"consultants": "Консультантов",
|
||||
"engineers": "Инженеров",
|
||||
"creators": "Создателей",
|
||||
"lawyers": "Юристов",
|
||||
"doctors": "Врачей",
|
||||
"nurses": "Медсестёр",
|
||||
"accountants": "Бухгалтеров",
|
||||
"salespeople": "Продавцов",
|
||||
"recruiters": "Рекрутеров",
|
||||
"managers": "Менеджеров",
|
||||
"executives": "Руководителей",
|
||||
"freelancers": "Фрилансеров",
|
||||
"photographers": "Фотографов",
|
||||
"musicians": "Музыкантов",
|
||||
"artists": "Художников",
|
||||
"architects": "Архитекторов",
|
||||
"scientists": "Учёных",
|
||||
"journalists": "Журналистов",
|
||||
"editors": "Редакторов",
|
||||
"translators": "Переводчиков",
|
||||
"coaches": "Коучей",
|
||||
"therapists": "Терапевтов",
|
||||
"trainers": "Тренеров",
|
||||
"chefs": "Поваров",
|
||||
"realtors": "Риелторов",
|
||||
"investors": "Инвесторов",
|
||||
"traders": "Трейдеров"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"promptBuilder": {
|
||||
"title": "Агент создания промптов",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "veya sektöre göre keşfet",
|
||||
"clickToExplore": "Keşfetmek için tıkla",
|
||||
"searchPlaceholder": "Prompt ara...",
|
||||
"teachers": "Öğretmenler",
|
||||
"developers": "Geliştiriciler",
|
||||
"marketers": "Pazarlamacılar",
|
||||
"designers": "Tasarımcılar",
|
||||
"writers": "Yazarlar",
|
||||
"analysts": "Analistler",
|
||||
"entrepreneurs": "Girişimciler",
|
||||
"researchers": "Araştırmacılar",
|
||||
"students": "Öğrenciler",
|
||||
"consultants": "Danışmanlar",
|
||||
"engineers": "Mühendisler",
|
||||
"creators": "İçerik Üreticileri",
|
||||
"lawyers": "Avukatlar",
|
||||
"doctors": "Doktorlar",
|
||||
"nurses": "Hemşireler",
|
||||
"accountants": "Muhasebeciler",
|
||||
"salespeople": "Satışçılar",
|
||||
"recruiters": "İK Uzmanları",
|
||||
"managers": "Yöneticiler",
|
||||
"executives": "Üst Yöneticiler",
|
||||
"freelancers": "Serbest Çalışanlar",
|
||||
"photographers": "Fotoğrafçılar",
|
||||
"musicians": "Müzisyenler",
|
||||
"artists": "Sanatçılar",
|
||||
"architects": "Mimarlar",
|
||||
"scientists": "Bilim İnsanları",
|
||||
"journalists": "Gazeteciler",
|
||||
"editors": "Editörler",
|
||||
"translators": "Çevirmenler",
|
||||
"coaches": "Koçlar",
|
||||
"therapists": "Terapistler",
|
||||
"trainers": "Eğitmenler",
|
||||
"chefs": "Şefler",
|
||||
"realtors": "Emlakçılar",
|
||||
"investors": "Yatırımcılar",
|
||||
"traders": "Tüccarlar"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Sayfa Bulunamadı",
|
||||
|
||||
+1
-38
@@ -1030,45 +1030,8 @@
|
||||
}
|
||||
},
|
||||
"heroIndustries": {
|
||||
"prefix": "或按行业探索",
|
||||
"clickToExplore": "点击探索",
|
||||
"searchPlaceholder": "搜索提示词...",
|
||||
"teachers": "教师",
|
||||
"developers": "开发者",
|
||||
"marketers": "营销人员",
|
||||
"designers": "设计师",
|
||||
"writers": "作家",
|
||||
"analysts": "分析师",
|
||||
"entrepreneurs": "创业者",
|
||||
"researchers": "研究员",
|
||||
"students": "学生",
|
||||
"consultants": "顾问",
|
||||
"engineers": "工程师",
|
||||
"creators": "创作者",
|
||||
"lawyers": "律师",
|
||||
"doctors": "医生",
|
||||
"nurses": "护士",
|
||||
"accountants": "会计",
|
||||
"salespeople": "销售",
|
||||
"recruiters": "招聘官",
|
||||
"managers": "经理",
|
||||
"executives": "高管",
|
||||
"freelancers": "自由职业者",
|
||||
"photographers": "摄影师",
|
||||
"musicians": "音乐家",
|
||||
"artists": "艺术家",
|
||||
"architects": "建筑师",
|
||||
"scientists": "科学家",
|
||||
"journalists": "记者",
|
||||
"editors": "编辑",
|
||||
"translators": "翻译",
|
||||
"coaches": "教练",
|
||||
"therapists": "治疗师",
|
||||
"trainers": "培训师",
|
||||
"chefs": "厨师",
|
||||
"realtors": "房产经纪",
|
||||
"investors": "投资者",
|
||||
"traders": "交易员"
|
||||
"videoTitle": "GitHub Open Source Friday"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "页面未找到",
|
||||
|
||||
+2
-2
@@ -72,7 +72,7 @@ export default async function HomePage() {
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<div className="absolute top-0 end-0 bottom-0 w-1/3 2xl:w-1/2 hidden md:block pointer-events-none">
|
||||
<div className="absolute top-0 end-0 bottom-0 w-2/5 xl:w-[45%] 2xl:w-1/2 hidden md:block pointer-events-none overflow-hidden">
|
||||
{/* Video background */}
|
||||
<div className="absolute inset-0">
|
||||
<div className="absolute inset-0 bg-gradient-to-r rtl:bg-gradient-to-l from-background via-background/80 to-transparent z-10" />
|
||||
@@ -126,7 +126,7 @@ export default async function HomePage() {
|
||||
)}
|
||||
|
||||
<div className="container relative z-20">
|
||||
<div className="max-w-2xl">
|
||||
<div className="max-w-2xl lg:max-w-xl xl:max-w-2xl">
|
||||
{useCloneBranding ? (
|
||||
<>
|
||||
<h1 className="text-2xl font-bold tracking-tight sm:text-3xl md:text-4xl lg:text-5xl !text-2xl sm:!text-3xl md:!text-4xl lg:!text-5xl text-primary">
|
||||
|
||||
@@ -1,106 +1,14 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect, useCallback } from "react";
|
||||
import { useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useTranslations } from "next-intl";
|
||||
import { Search } from "lucide-react";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { Input } from "@/components/ui/input";
|
||||
|
||||
const INDUSTRIES = [
|
||||
"teachers",
|
||||
"developers",
|
||||
"marketers",
|
||||
"designers",
|
||||
"writers",
|
||||
"analysts",
|
||||
"entrepreneurs",
|
||||
"researchers",
|
||||
"students",
|
||||
"consultants",
|
||||
"engineers",
|
||||
"creators",
|
||||
"lawyers",
|
||||
"doctors",
|
||||
"nurses",
|
||||
"accountants",
|
||||
"salespeople",
|
||||
"recruiters",
|
||||
"managers",
|
||||
"executives",
|
||||
"freelancers",
|
||||
"photographers",
|
||||
"musicians",
|
||||
"artists",
|
||||
"architects",
|
||||
"scientists",
|
||||
"journalists",
|
||||
"editors",
|
||||
"translators",
|
||||
"coaches",
|
||||
"therapists",
|
||||
"trainers",
|
||||
"chefs",
|
||||
"realtors",
|
||||
"investors",
|
||||
"traders",
|
||||
];
|
||||
|
||||
const INDUSTRY_KEYWORDS: Record<string, string> = {
|
||||
teachers: "teach,learn,education,lesson,classroom",
|
||||
developers: "code,programming,software,debug,api",
|
||||
marketers: "marketing,campaign,brand,seo,content",
|
||||
designers: "design,ui,ux,creative,visual",
|
||||
writers: "write,content,blog,article,copywriting",
|
||||
analysts: "data,analysis,report,metrics,insights",
|
||||
entrepreneurs: "startup,business,pitch,strategy,growth",
|
||||
researchers: "research,study,academic,paper,hypothesis",
|
||||
students: "study,homework,essay,exam,learning",
|
||||
consultants: "consulting,advice,strategy,client,solution",
|
||||
engineers: "engineering,technical,system,architecture,build",
|
||||
creators: "content,video,social,creative,audience",
|
||||
lawyers: "legal,law,contract,compliance,court",
|
||||
doctors: "medical,health,diagnosis,patient,treatment",
|
||||
nurses: "nursing,patient,care,health,clinical",
|
||||
accountants: "accounting,finance,tax,budget,audit",
|
||||
salespeople: "sales,deal,pitch,customer,negotiation",
|
||||
recruiters: "hiring,recruitment,interview,candidate,talent",
|
||||
managers: "management,team,project,leadership,planning",
|
||||
executives: "executive,leadership,strategy,decision,board",
|
||||
freelancers: "freelance,client,proposal,contract,invoice",
|
||||
photographers: "photography,photo,shoot,editing,camera",
|
||||
musicians: "music,song,composition,audio,production",
|
||||
artists: "art,creative,illustration,painting,portfolio",
|
||||
architects: "architecture,design,building,plan,structure",
|
||||
scientists: "science,experiment,research,hypothesis,data",
|
||||
journalists: "journalism,news,article,interview,story",
|
||||
editors: "editing,review,proofread,content,revision",
|
||||
translators: "translation,language,localization,interpret",
|
||||
coaches: "coaching,motivation,goals,performance,mindset",
|
||||
therapists: "therapy,mental,counseling,wellness,support",
|
||||
trainers: "training,fitness,workout,exercise,program",
|
||||
chefs: "cooking,recipe,food,kitchen,culinary",
|
||||
realtors: "real estate,property,listing,home,market",
|
||||
investors: "investment,portfolio,stocks,returns,market",
|
||||
traders: "trading,market,stocks,analysis,strategy",
|
||||
};
|
||||
|
||||
function shuffleArray<T>(array: T[]): T[] {
|
||||
const shuffled = [...array];
|
||||
for (let i = shuffled.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
|
||||
}
|
||||
return shuffled;
|
||||
}
|
||||
|
||||
export function HeroCategories() {
|
||||
const t = useTranslations("heroIndustries");
|
||||
const router = useRouter();
|
||||
const [visibleItems, setVisibleItems] = useState<string[]>([]);
|
||||
const [changingIdx, setChangingIdx] = useState<number | null>(null);
|
||||
const [isFlashing, setIsFlashing] = useState(false);
|
||||
const [lastChangedIdx, setLastChangedIdx] = useState<number | null>(null);
|
||||
const [searchQuery, setSearchQuery] = useState("");
|
||||
|
||||
const handleSearch = (e: React.FormEvent) => {
|
||||
@@ -110,57 +18,6 @@ export function HeroCategories() {
|
||||
}
|
||||
};
|
||||
|
||||
const getRandomItems = useCallback(() => {
|
||||
return shuffleArray(INDUSTRIES).slice(0, 9);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
setVisibleItems(getRandomItems());
|
||||
}, [getRandomItems]);
|
||||
|
||||
useEffect(() => {
|
||||
if (visibleItems.length === 0) return;
|
||||
|
||||
const interval = setInterval(() => {
|
||||
// Pick a random position to change (not the same as last time)
|
||||
let randomPosition = Math.floor(Math.random() * 9);
|
||||
while (randomPosition === lastChangedIdx) {
|
||||
randomPosition = Math.floor(Math.random() * 9);
|
||||
}
|
||||
setChangingIdx(randomPosition);
|
||||
setLastChangedIdx(randomPosition);
|
||||
|
||||
setTimeout(() => {
|
||||
setVisibleItems(prev => {
|
||||
const newItems = [...prev];
|
||||
// Find an industry not currently visible
|
||||
const available = INDUSTRIES.filter(ind => !prev.includes(ind));
|
||||
if (available.length > 0) {
|
||||
newItems[randomPosition] = available[Math.floor(Math.random() * available.length)];
|
||||
} else {
|
||||
// If all are visible, just pick a random one
|
||||
newItems[randomPosition] = INDUSTRIES[Math.floor(Math.random() * INDUSTRIES.length)];
|
||||
}
|
||||
return newItems;
|
||||
});
|
||||
|
||||
// Flash the cell
|
||||
setIsFlashing(true);
|
||||
setTimeout(() => {
|
||||
setIsFlashing(false);
|
||||
setChangingIdx(null);
|
||||
}, 400);
|
||||
}, 200);
|
||||
}, 1500);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, [visibleItems.length, lastChangedIdx]);
|
||||
|
||||
const handleClick = (industry: string) => {
|
||||
const keywords = INDUSTRY_KEYWORDS[industry] || industry;
|
||||
router.push(`/prompts?q=${encodeURIComponent(keywords)}&ai=1`);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-center gap-4 w-full">
|
||||
<form onSubmit={handleSearch} className="w-full max-w-lg">
|
||||
@@ -177,35 +34,19 @@ export function HeroCategories() {
|
||||
/>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p className="text-sm text-muted-foreground">{t("prefix")}</p>
|
||||
|
||||
<div className="grid grid-cols-3 gap-3 w-full max-w-md">
|
||||
{visibleItems.map((industry, idx) => (
|
||||
<button
|
||||
key={idx}
|
||||
onClick={() => handleClick(industry)}
|
||||
style={{
|
||||
animationDelay: `${idx * 0.15}s`,
|
||||
}}
|
||||
className={cn(
|
||||
"px-2 sm:px-4 py-2 sm:py-3 text-xs sm:text-sm font-medium whitespace-nowrap truncate",
|
||||
"hover:bg-primary hover:text-primary-foreground hover:shadow-lg hover:-translate-y-0.5",
|
||||
"cursor-pointer transition-all duration-200",
|
||||
"border border-border/30 rounded-lg backdrop-blur-md",
|
||||
"shadow-md animate-float",
|
||||
changingIdx === idx && !isFlashing && "opacity-0 scale-95",
|
||||
changingIdx === idx && isFlashing
|
||||
? "bg-primary/40 scale-105"
|
||||
: "bg-background/80"
|
||||
)}
|
||||
>
|
||||
{t(industry)}
|
||||
</button>
|
||||
))}
|
||||
|
||||
<div className="w-full max-w-lg aspect-video rounded-xl overflow-hidden border-2 border-primary/30 shadow-md bg-background/80 backdrop-blur-md">
|
||||
<iframe
|
||||
className="w-full h-full"
|
||||
src="https://www.youtube-nocookie.com/embed/T1Ay91zvkok?start=372"
|
||||
title={t("videoTitle")}
|
||||
loading="lazy"
|
||||
frameBorder={0}
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
referrerPolicy="strict-origin-when-cross-origin"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
|
||||
<p className="text-sm text-muted-foreground">{t("clickToExplore")}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user