Skip to content

Commit 2a6cef8

Browse files
committed
feat(ui): tag loading states, keyboard access and narrow-screen fixes
界面可用性打磨,配套 18 份文案同步新增/修订。 标签加载:useObjectTags 改为返回 { tags, status, retry }。分块 19–163KB, 移动网络下抓取要一两秒,此前一律返回 [] —— 选词区塌成空壳,读起来像 「这个分类没有标签」;失败更只有一行 console.warn。现在有加载/失败态与重试, 状态条常驻 DOM 以保证 aria-live 能被播报。已打进包里的自定义标签不再被 网络状态挡住。 无障碍:自绘焦点环替换 antd 暗色下 2.2:1 的默认环(不达 WCAG 1.4.11 的 3:1), 覆盖 Segmented / Radio.Button / summary 等它没管到的控件;顶栏图标按钮的 aria-label 从硬编码英文改为可翻译;prefers-reduced-motion 只点名本站声明过 transition 的选择器(全局压 * 会让 antd 弹层永远停在待对齐位置)。 RTL:提示词框与字数计数器锁 dir="ltr",否则阿拉伯语下产出被 bidi 重排、 计数器显示成 "380 / 0";复制提示改用「目标 · 文案」分隔,裸拼接在中文以外 的语言里不成句。 窄屏:主栏 18/6 改为 16/8(右栏在 992–1200 只有 ~230px),Menu 保底宽度让 折叠触发器渲染得出来,≤460px 隐藏装饰性英文小注、≤520px 隐藏导航 GitHub 图标, 文档列加 max-width 掐断长命令撑出的横向滚动。 其他:主题色 meta 跟随运行时明暗切换;en 界面不再显示与标题同义的英文小注; Hero 标题 clamp 改用 px,与全站及 antd 底座一致。
1 parent c16e999 commit 2a6cef8

28 files changed

Lines changed: 758 additions & 142 deletions

messages/ar.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "العلامات",
1212
"currentSelection": "محدد",
1313
"fallback-other": "أخرى",
14-
"fallback-uncategorized": "غير مصنف",
1514
"tagMode-multicolor": "متعدد الألوان",
16-
"tagMode-monochrome": "أحادي اللون"
15+
"tagMode-monochrome": "أحادي اللون",
16+
"tagsLoading": "جارٍ تحميل الوسوم…",
17+
"tagsError": "تعذّر تحميل الوسوم",
18+
"retry": "إعادة المحاولة"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "إدراج موجهات الإضاءة (إضاءة سينمائية، غروب، إلخ)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "أدخل المحتوى",
3436
"translateFailError": "فشلت الترجمة",
3537
"tooltip-randomColor": "تغيير الألوان عشوائياً",
36-
"button-randomcolor": "تغيير اللون",
38+
"button-randomcolor": "ألوان عشوائية",
3739
"prompt-translation": "الترجمة",
3840
"translating": "جاري الترجمة...",
3941
"randomColor-success": "تم استبدال {count} كلمة لون",
4042
"randomColor-noMatch": "لا توجد كلمات لون للاستبدال",
41-
"translateLabel": "ترجم وأدرج"
43+
"translateLabel": "ترجم وأدرج",
44+
"placeholder-prompt": "اختر الوسوم ليُبنى تلقائيًا، أو اكتب موجّهك بنفسك",
45+
"placeholder-translate": "مثال: قطة عند الغروب"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "المحتوى فارغ، لا يوجد شيء للنسخ",
@@ -106,9 +110,19 @@
106110
"otherTools": "المزيد من الأدوات",
107111
"legendtalk": "طاولة مفكري الذكاء الاصطناعي",
108112
"aishort": "AI Short",
109-
"tools": "صندوق أدوات الذكاء الاصطناعي"
113+
"tools": "صندوق أدوات الذكاء الاصطناعي",
114+
"community": "المجتمع",
115+
"github": "عرض على GitHub",
116+
"theme": "تبديل المظهر الفاتح أو الداكن",
117+
"language": "اختيار اللغة",
118+
"languageSearch": "البحث عن لغة",
119+
"languageEmpty": "لا توجد لغة مطابقة",
120+
"skipToPrompt": "تخطَّ إلى مربع الموجّه"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "لم تتم ترجمة هذه الصفحة إلى لغتك بعد؛ يتم عرض النسخة الإنجليزية."
124+
},
125+
"Footer": {
126+
"signature": "مجاني ومفتوح المصدر · بدون تسجيل · يعمل داخل متصفحك"
113127
}
114128
}

messages/bn.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "ট্যাগ",
1212
"currentSelection": "নির্বাচিত",
1313
"fallback-other": "অন্যান্য",
14-
"fallback-uncategorized": "শ্রেণীবিহীন",
1514
"tagMode-multicolor": "বহুরঙা",
16-
"tagMode-monochrome": "একরঙা"
15+
"tagMode-monochrome": "একরঙা",
16+
"tagsLoading": "ট্যাগ লোড হচ্ছে…",
17+
"tagsError": "ট্যাগ লোড করা যায়নি",
18+
"retry": "আবার চেষ্টা করুন"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "লাইটিং প্রম্পট সন্নিবেশ (ফিল্ম লাইটিং, গোধূলির আলো, ইত্যাদি)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "কন্টেন্ট লিখুন",
3436
"translateFailError": "অনুবাদ ব্যর্থ",
3537
"tooltip-randomColor": "এলোমেলো রঙ পরিবর্তন",
36-
"button-randomcolor": "রঙ বদল",
38+
"button-randomcolor": "এলোমেলো রঙ",
3739
"prompt-translation": "প্রম্পটের অনুবাদ",
3840
"translating": "অনুবাদ হচ্ছে...",
3941
"randomColor-success": "{count}টি রঙ শব্দ প্রতিস্থাপিত হয়েছে",
4042
"randomColor-noMatch": "প্রতিস্থাপন করার জন্য কোনো রঙ শব্দ নেই",
41-
"translateLabel": "অনুবাদ করে যোগ করুন"
43+
"translateLabel": "অনুবাদ করে যোগ করুন",
44+
"placeholder-prompt": "ট্যাগ বেছে নিন, প্রম্পট নিজেই তৈরি হবে; বা এখানে নিজে লিখুন",
45+
"placeholder-translate": "যেমন সূর্যাস্তে একটি বিড়াল"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "কন্টেন্ট খালি, কপি করার মতো কিছুই নেই",
@@ -106,9 +110,19 @@
106110
"otherTools": "আরও টুল",
107111
"legendtalk": "AI চিন্তাবিদ গোলটেবিল",
108112
"aishort": "AI Short",
109-
"tools": "AI টুলবক্স"
113+
"tools": "AI টুলবক্স",
114+
"community": "কমিউনিটি",
115+
"github": "GitHub-এ দেখুন",
116+
"theme": "লাইট বা ডার্ক থিম বদলান",
117+
"language": "ভাষা নির্বাচন করুন",
118+
"languageSearch": "ভাষা খুঁজুন",
119+
"languageEmpty": "মিলে যায় এমন ভাষা নেই",
120+
"skipToPrompt": "প্রম্পট বক্সে যান"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "এই পৃষ্ঠাটি এখনও আপনার ভাষায় অনূদিত হয়নি; ইংরেজি সংস্করণ দেখানো হচ্ছে।"
124+
},
125+
"Footer": {
126+
"signature": "ফ্রি ও ওপেন-সোর্স · লগইন লাগে না · আপনার ব্রাউজারেই চলে"
113127
}
114128
}

messages/de.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "Tags",
1212
"currentSelection": "Ausgewählt",
1313
"fallback-other": "Sonstiges",
14-
"fallback-uncategorized": "Unkategorisiert",
1514
"tagMode-multicolor": "Mehrfarbig",
16-
"tagMode-monochrome": "Einfarbig"
15+
"tagMode-monochrome": "Einfarbig",
16+
"tagsLoading": "Tags werden geladen…",
17+
"tagsError": "Tags konnten nicht geladen werden",
18+
"retry": "Erneut versuchen"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "Beleuchtungs-Prompts einfügen (Filmbeleuchtung, Dämmerung usw.)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "Inhalt eingeben",
3436
"translateFailError": "Übersetzung fehlgeschlagen",
3537
"tooltip-randomColor": "Farbwörter zufällig ersetzen",
36-
"button-randomcolor": "Farbe ändern",
38+
"button-randomcolor": "Farben zufällig ändern",
3739
"prompt-translation": "Übersetzung",
3840
"translating": "Wird übersetzt...",
3941
"randomColor-success": "{count} Farbwörter ersetzt",
4042
"randomColor-noMatch": "Keine Farbwörter zu ersetzen",
41-
"translateLabel": "Übersetzen & einfügen"
43+
"translateLabel": "Übersetzen & einfügen",
44+
"placeholder-prompt": "Tags auswählen oder eigenen Prompt hier eintippen",
45+
"placeholder-translate": "z. B. eine Katze im Sonnenuntergang"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "Der Inhalt ist leer, nichts zu kopieren",
@@ -106,9 +110,19 @@
106110
"otherTools": "Mehr Tools",
107111
"legendtalk": "KI-Denkerrunde",
108112
"aishort": "AI Short",
109-
"tools": "KI-Toolbox"
113+
"tools": "KI-Toolbox",
114+
"community": "Community",
115+
"github": "Auf GitHub ansehen",
116+
"theme": "Helles oder dunkles Design umschalten",
117+
"language": "Sprache wählen",
118+
"languageSearch": "Sprache suchen",
119+
"languageEmpty": "Keine passende Sprache",
120+
"skipToPrompt": "Zum Prompt-Feld springen"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "Diese Seite ist noch nicht in Ihrer Sprache verfügbar; die englische Version wird angezeigt."
124+
},
125+
"Footer": {
126+
"signature": "Kostenlos & Open Source · Ohne Login · Läuft in deinem Browser"
113127
}
114128
}

messages/en.json

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "Tags",
1212
"currentSelection": "Selected",
1313
"fallback-other": "Other",
14-
"fallback-uncategorized": "Uncategorized",
1514
"tagMode-multicolor": "Multicolor",
16-
"tagMode-monochrome": "Monochrome"
15+
"tagMode-monochrome": "Monochrome",
16+
"tagsLoading": "Loading tags…",
17+
"tagsError": "Tags didn't load",
18+
"retry": "Try again"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "Insert portrait lighting prompts (film lighting, twilight rays, etc.)",
@@ -33,28 +35,30 @@
3335
"translateEmptyError": "Please enter content",
3436
"translateFailError": "Translation failed",
3537
"tooltip-randomColor": "Randomly replace color words",
36-
"button-randomcolor": "Randomize",
38+
"button-randomcolor": "Randomize colors",
3739
"prompt-translation": "Translation",
3840
"translating": "Translating...",
3941
"randomColor-success": "Replaced {count} color word(s)",
4042
"randomColor-noMatch": "No color words to replace",
41-
"translateLabel": "Translate & insert"
43+
"translateLabel": "Translate & insert",
44+
"placeholder-prompt": "Pick tags to build it, or type your own prompt",
45+
"placeholder-translate": "e.g. a cat at sunset"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "Content is empty, nothing to copy",
4549
"unsupported": "Your browser does not support clipboard operations, please try copying manually or use a different browser",
46-
"success": "Copied successfully, you can paste it into the AI painting tool",
50+
"success": "Copied paste it into your AI image tool",
4751
"failure": "Copy failed, please copy manually"
4852
},
4953
"feedback": {
5054
"feedback1": "Feedback and Suggestions",
5155
"feedback2": "If you encounter any issues during use or have any suggestions and ideas, feel free to let me know! Your feedback will directly influence the development and improvement of future features, helping us create a tool that better meets everyone's needs.",
5256
"feedback3": "Please describe your use case or the issue you encountered in detail, or share your creative ideas. I will carefully consider each piece of feedback and make adjustments and optimizations as soon as possible.",
53-
"reaction0": "Up",
57+
"reaction0": "Nice",
5458
"reaction1": "Support",
5559
"reaction2": "Cool",
5660
"reaction3": "What?",
57-
"reaction4": "Puzzle",
61+
"reaction4": "Confused",
5862
"placeholder": "Please leave a message, no login required (enter your email to receive reply notifications)"
5963
},
6064
"Home": {
@@ -106,9 +110,19 @@
106110
"otherTools": "More Tools",
107111
"legendtalk": "AI Thinkers Roundtable",
108112
"aishort": "AI Short",
109-
"tools": "AI Toolbox"
113+
"tools": "AI Toolbox",
114+
"community": "Community links",
115+
"github": "View on GitHub",
116+
"theme": "Toggle light or dark theme",
117+
"language": "Select language",
118+
"languageSearch": "Search language",
119+
"languageEmpty": "No matching language",
120+
"skipToPrompt": "Skip to the prompt box"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "This page hasn’t been translated into your language yet — showing the English version."
124+
},
125+
"Footer": {
126+
"signature": "FREE & OPEN-SOURCE · NO LOGIN · RUNS IN YOUR BROWSER"
113127
}
114128
}

messages/es.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "Etiquetas",
1212
"currentSelection": "Seleccionado",
1313
"fallback-other": "Otros",
14-
"fallback-uncategorized": "Sin clasificar",
1514
"tagMode-multicolor": "Multicolor",
16-
"tagMode-monochrome": "Monocromo"
15+
"tagMode-monochrome": "Monocromo",
16+
"tagsLoading": "Cargando etiquetas…",
17+
"tagsError": "No se cargaron las etiquetas",
18+
"retry": "Reintentar"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "Insertar prompts de iluminación (iluminación cinematográfica, rayos crepusculares, etc.)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "Escribe algún contenido",
3436
"translateFailError": "Traducción fallida",
3537
"tooltip-randomColor": "Reemplazar palabras de color aleatoriamente",
36-
"button-randomcolor": "Cambiar color",
38+
"button-randomcolor": "Colores aleatorios",
3739
"prompt-translation": "Traducción",
3840
"translating": "Traduciendo...",
3941
"randomColor-success": "Se reemplazaron {count} palabras de color",
4042
"randomColor-noMatch": "No hay palabras de color para reemplazar",
41-
"translateLabel": "Traducir e insertar"
43+
"translateLabel": "Traducir e insertar",
44+
"placeholder-prompt": "Elige etiquetas para componerlo, o escribe tu propio prompt",
45+
"placeholder-translate": "p. ej. un gato al atardecer"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "El contenido está vacío, nada que copiar.",
@@ -106,9 +110,19 @@
106110
"otherTools": "Más herramientas",
107111
"legendtalk": "Mesa redonda de pensadores IA",
108112
"aishort": "AI Short",
109-
"tools": "Caja de herramientas IA"
113+
"tools": "Caja de herramientas IA",
114+
"community": "Comunidad",
115+
"github": "Ver en GitHub",
116+
"theme": "Cambiar entre tema claro y oscuro",
117+
"language": "Seleccionar idioma",
118+
"languageSearch": "Buscar idioma",
119+
"languageEmpty": "Ningún idioma coincide",
120+
"skipToPrompt": "Saltar al cuadro de prompt"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "Esta página aún no está traducida a tu idioma; se muestra la versión en inglés."
124+
},
125+
"Footer": {
126+
"signature": "Gratis y de código abierto · Sin registro · Todo en tu navegador"
113127
}
114128
}

messages/fr.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "Tags",
1212
"currentSelection": "Sélectionné",
1313
"fallback-other": "Autres",
14-
"fallback-uncategorized": "Non classé",
1514
"tagMode-multicolor": "Multicolore",
16-
"tagMode-monochrome": "Monochrome"
15+
"tagMode-monochrome": "Monochrome",
16+
"tagsLoading": "Chargement des tags…",
17+
"tagsError": "Les tags n'ont pas pu être chargés",
18+
"retry": "Réessayer"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "Insérer des prompts d'éclairage (éclairage cinématique, rayons crépusculaires, etc.)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "Veuillez saisir du contenu",
3436
"translateFailError": "Échec de la traduction",
3537
"tooltip-randomColor": "Remplacer les mots de couleur aléatoirement",
36-
"button-randomcolor": "Changer couleur",
38+
"button-randomcolor": "Couleurs aléatoires",
3739
"prompt-translation": "Traduction",
3840
"translating": "Traduction...",
3941
"randomColor-success": "{count} mot(s) de couleur remplacé(s)",
4042
"randomColor-noMatch": "Aucun mot de couleur à remplacer",
41-
"translateLabel": "Traduire et insérer"
43+
"translateLabel": "Traduire et insérer",
44+
"placeholder-prompt": "Choisissez des tags pour le composer, ou écrivez votre prompt",
45+
"placeholder-translate": "ex. un chat au coucher du soleil"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "Le contenu est vide, rien à copier",
@@ -106,9 +110,19 @@
106110
"otherTools": "Plus d'outils",
107111
"legendtalk": "Table ronde des penseurs IA",
108112
"aishort": "AI Short",
109-
"tools": "Boîte à outils IA"
113+
"tools": "Boîte à outils IA",
114+
"community": "Communauté",
115+
"github": "Voir sur GitHub",
116+
"theme": "Basculer entre thème clair et sombre",
117+
"language": "Choisir la langue",
118+
"languageSearch": "Rechercher une langue",
119+
"languageEmpty": "Aucune langue ne correspond",
120+
"skipToPrompt": "Aller à la boîte de prompt"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "Cette page n’est pas encore traduite dans votre langue ; version anglaise affichée."
124+
},
125+
"Footer": {
126+
"signature": "Gratuit et open source · Sans compte · Tout dans votre navigateur"
113127
}
114128
}

messages/hi.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
"section3": "टैग",
1212
"currentSelection": "चयनित",
1313
"fallback-other": "अन्य",
14-
"fallback-uncategorized": "अवर्गीकृत",
1514
"tagMode-multicolor": "बहुरंगी",
16-
"tagMode-monochrome": "एकरंगी"
15+
"tagMode-monochrome": "एकरंगी",
16+
"tagsLoading": "टैग लोड हो रहे हैं…",
17+
"tagsError": "टैग लोड नहीं हो सके",
18+
"retry": "फिर कोशिश करें"
1719
},
1820
"ResultSection": {
1921
"tooltip-light": "लाइटिंग प्रॉम्प्ट डालें (फिल्म लाइटिंग, संध्या, आदि)",
@@ -33,12 +35,14 @@
3335
"translateEmptyError": "सामग्री दर्ज करें",
3436
"translateFailError": "अनुवाद विफल",
3537
"tooltip-randomColor": "रंगों को रैंडम रूप से बदलें",
36-
"button-randomcolor": "रंग बदलें",
38+
"button-randomcolor": "रंग रैंडम बदलें",
3739
"prompt-translation": "अनुवाद",
3840
"translating": "अनुवाद हो रहा है...",
3941
"randomColor-success": "{count} रंग शब्द बदले गए",
4042
"randomColor-noMatch": "बदलने के लिए कोई रंग शब्द नहीं",
41-
"translateLabel": "अनुवाद कर जोड़ें"
43+
"translateLabel": "अनुवाद कर जोड़ें",
44+
"placeholder-prompt": "टैग चुनें, प्रॉम्प्ट अपने आप बनेगा; या यहीं खुद लिखें",
45+
"placeholder-translate": "उदा. सूर्यास्त में एक बिल्ली"
4246
},
4347
"CopyToClipboard": {
4448
"empty": "सामग्री खाली है, कॉपी करने के लिए कुछ भी नहीं है",
@@ -106,9 +110,19 @@
106110
"otherTools": "अधिक टूल",
107111
"legendtalk": "AI विचारक गोलमेज़",
108112
"aishort": "AI Short",
109-
"tools": "AI टूलबॉक्स"
113+
"tools": "AI टूलबॉक्स",
114+
"community": "कम्युनिटी",
115+
"github": "GitHub पर देखें",
116+
"theme": "लाइट या डार्क थीम बदलें",
117+
"language": "भाषा चुनें",
118+
"languageSearch": "भाषा खोजें",
119+
"languageEmpty": "कोई मेल खाती भाषा नहीं",
120+
"skipToPrompt": "प्रॉम्प्ट बॉक्स पर जाएँ"
110121
},
111122
"Guide": {
112123
"fallbackNotice": "यह पृष्ठ अभी आपकी भाषा में अनुवादित नहीं है; अंग्रेज़ी संस्करण दिखाया जा रहा है।"
124+
},
125+
"Footer": {
126+
"signature": "मुफ़्त और ओपन-सोर्स · लॉगिन नहीं · आपके ब्राउज़र में ही चलता है"
113127
}
114128
}

0 commit comments

Comments
 (0)