From d1b1e304a358964b6181f3047455801be8fb8450 Mon Sep 17 00:00:00 2001 From: steve02081504 Date: Sun, 2 Aug 2026 00:45:38 +0800 Subject: [PATCH 01/10] 1 --- imgs/icon_anime/desktop.ini | 6 ++++ imgs/icon_anime/fluid/desktop.ini | 6 ++++ imgs/icon_anime/gesture/desktop.ini | 6 ++++ imgs/icon_anime/test/desktop.ini | 6 ++++ src/public/locales/ar-SA.json | 31 +++++++++---------- src/public/locales/de-DE.json | 31 +++++++++---------- src/public/locales/emoji.json | 31 +++++++++---------- src/public/locales/en-UK.json | 31 +++++++++---------- src/public/locales/es-ES.json | 31 +++++++++---------- src/public/locales/fr-FR.json | 31 +++++++++---------- src/public/locales/hi-IN.json | 31 +++++++++---------- src/public/locales/is-IS.json | 31 +++++++++---------- src/public/locales/it-IT.json | 31 +++++++++---------- src/public/locales/ja-JP.json | 31 +++++++++---------- src/public/locales/ko-KR.json | 31 +++++++++---------- src/public/locales/lzh.json | 31 +++++++++---------- src/public/locales/nl-NL.json | 31 +++++++++---------- src/public/locales/pt-PT.json | 31 +++++++++---------- src/public/locales/ru-RU.json | 31 +++++++++---------- src/public/locales/uk-UA.json | 31 +++++++++---------- src/public/locales/vi-VN.json | 31 +++++++++---------- src/public/locales/zh-CN.json | 31 +++++++++---------- src/public/locales/zh-TW.json | 31 +++++++++---------- src/public/pages/AGENTS.md | 1 + src/public/pages/log_viewer/repl/desktop.ini | 6 ++++ src/public/pages/scripts/api/desktop.ini | 6 ++++ src/public/pages/scripts/api/p2p/desktop.ini | 6 ++++ .../pages/scripts/components/desktop.ini | 6 ++++ .../components/imageEditor/desktop.ini | 6 ++++ .../imageEditor/imageEditor.css | 0 .../{ => components}/imageEditor/index.mjs | 24 +++++++------- .../features/contentReveal/contentReveal.css | 22 ++++++------- src/public/pages/scripts/features/desktop.ini | 6 ++++ src/public/pages/scripts/host/desktop.ini | 6 ++++ src/public/pages/scripts/i18n/desktop.ini | 6 ++++ src/public/pages/scripts/lib/desktop.ini | 6 ++++ src/public/pages/scripts/test/desktop.ini | 6 ++++ src/public/pages/scripts/theme/desktop.ini | 6 ++++ .../chat/public/src/composerAttachments.mjs | 2 +- .../social/public/src/composerState.mjs | 3 +- .../shells/social/public/src/mediaRender.mjs | 2 +- src/runner/dev_env_setup/desktop.ini | 6 ++++ src/server/auth/desktop.ini | 6 ++++ src/server/p2p_server/desktop.ini | 6 ++++ src/server/test/live/desktop.ini | 6 ++++ src/server/test/pure/desktop.ini | 6 ++++ src/server/web_server/log_service/desktop.ini | 6 ++++ src/server/web_server/notify/desktop.ini | 6 ++++ 48 files changed, 444 insertions(+), 331 deletions(-) create mode 100644 imgs/icon_anime/desktop.ini create mode 100644 imgs/icon_anime/fluid/desktop.ini create mode 100644 imgs/icon_anime/gesture/desktop.ini create mode 100644 imgs/icon_anime/test/desktop.ini create mode 100644 src/public/pages/log_viewer/repl/desktop.ini create mode 100644 src/public/pages/scripts/api/desktop.ini create mode 100644 src/public/pages/scripts/api/p2p/desktop.ini create mode 100644 src/public/pages/scripts/components/desktop.ini create mode 100644 src/public/pages/scripts/components/imageEditor/desktop.ini rename src/public/pages/scripts/{ => components}/imageEditor/imageEditor.css (100%) rename src/public/pages/scripts/{ => components}/imageEditor/index.mjs (88%) create mode 100644 src/public/pages/scripts/features/desktop.ini create mode 100644 src/public/pages/scripts/host/desktop.ini create mode 100644 src/public/pages/scripts/i18n/desktop.ini create mode 100644 src/public/pages/scripts/lib/desktop.ini create mode 100644 src/public/pages/scripts/test/desktop.ini create mode 100644 src/public/pages/scripts/theme/desktop.ini create mode 100644 src/runner/dev_env_setup/desktop.ini create mode 100644 src/server/auth/desktop.ini create mode 100644 src/server/p2p_server/desktop.ini create mode 100644 src/server/test/live/desktop.ini create mode 100644 src/server/test/pure/desktop.ini create mode 100644 src/server/web_server/log_service/desktop.ini create mode 100644 src/server/web_server/notify/desktop.ini diff --git a/imgs/icon_anime/desktop.ini b/imgs/icon_anime/desktop.ini new file mode 100644 index 000000000..dbccb18b3 --- /dev/null +++ b/imgs/icon_anime/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,141 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/imgs/icon_anime/fluid/desktop.ini b/imgs/icon_anime/fluid/desktop.ini new file mode 100644 index 000000000..6271ba338 --- /dev/null +++ b/imgs/icon_anime/fluid/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,261 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/imgs/icon_anime/gesture/desktop.ini b/imgs/icon_anime/gesture/desktop.ini new file mode 100644 index 000000000..70939f20b --- /dev/null +++ b/imgs/icon_anime/gesture/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,159 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/imgs/icon_anime/test/desktop.ini b/imgs/icon_anime/test/desktop.ini new file mode 100644 index 000000000..c528948a2 --- /dev/null +++ b/imgs/icon_anime/test/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,171 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/locales/ar-SA.json b/src/public/locales/ar-SA.json index 291324e3b..6753ef58b 100644 --- a/src/public/locales/ar-SA.json +++ b/src/public/locales/ar-SA.json @@ -4234,22 +4234,6 @@ "followers7d": "متابعون لأكثر من 7 أيام", "label": "من يستطيع الرد" } - }, - "edit": { - "apply": "تطبيق", - "brush": "فرشاة", - "brushColor": { - "title": "لون الفرشاة", - "aria-label": "لون الفرشاة" - }, - "brushSize": { - "title": "سُمك الفرشاة", - "aria-label": "سُمك الفرشاة" - }, - "cancel": "إلغاء", - "crop": "اقتصاص", - "image": "تعديل", - "mosaic": "تمويه" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "الإشعارات" } }, + "imageEditor": { + "apply": "تطبيق", + "brush": "فرشاة", + "brushColor": { + "title": "لون الفرشاة", + "aria-label": "لون الفرشاة" + }, + "brushSize": { + "title": "سُمك الفرشاة", + "aria-label": "سُمك الفرشاة" + }, + "crop": "اقتصاص", + "image": "تعديل", + "mosaic": "تمويه" + }, "common": { "cancel": "إلغاء", "create": "إنشاء", diff --git a/src/public/locales/de-DE.json b/src/public/locales/de-DE.json index 0d3715ee3..b48dd7d3c 100644 --- a/src/public/locales/de-DE.json +++ b/src/public/locales/de-DE.json @@ -4234,22 +4234,6 @@ "followers7d": "Follower seit mehr als 7 Tagen", "label": "Wer kann antworten?" } - }, - "edit": { - "apply": "Übernehmen", - "brush": "Pinsel", - "brushColor": { - "title": "Pinselfarbe", - "aria-label": "Pinselfarbe" - }, - "brushSize": { - "title": "Pinselgröße", - "aria-label": "Pinselgröße" - }, - "cancel": "Abbrechen", - "crop": "Zuschneiden", - "image": "Bearbeiten", - "mosaic": "Verpixeln" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Benachrichtigungen" } }, + "imageEditor": { + "apply": "Übernehmen", + "brush": "Pinsel", + "brushColor": { + "title": "Pinselfarbe", + "aria-label": "Pinselfarbe" + }, + "brushSize": { + "title": "Pinselgröße", + "aria-label": "Pinselgröße" + }, + "crop": "Zuschneiden", + "image": "Bearbeiten", + "mosaic": "Verpixeln" + }, "common": { "cancel": "Abbrechen", "create": "Erstellen", diff --git a/src/public/locales/emoji.json b/src/public/locales/emoji.json index 1ead025a2..bd8f227f0 100644 --- a/src/public/locales/emoji.json +++ b/src/public/locales/emoji.json @@ -4234,22 +4234,6 @@ "followers7d": "7️⃣📅➕👀", "label": "💬🔐" } - }, - "edit": { - "apply": "✅", - "brush": "🖌️", - "brushColor": { - "title": "🎨", - "aria-label": "🎨" - }, - "brushSize": { - "title": "📏", - "aria-label": "📏" - }, - "cancel": "↩️", - "crop": "✂️", - "image": "✏️", - "mosaic": "🔲" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "🔔" } }, + "imageEditor": { + "apply": "✅", + "brush": "🖌️", + "brushColor": { + "title": "🎨", + "aria-label": "🎨" + }, + "brushSize": { + "title": "📏", + "aria-label": "📏" + }, + "crop": "✂️", + "image": "✏️", + "mosaic": "🔲" + }, "common": { "cancel": "↩️", "create": "➕", diff --git a/src/public/locales/en-UK.json b/src/public/locales/en-UK.json index 42bc1f2c4..fecd40849 100644 --- a/src/public/locales/en-UK.json +++ b/src/public/locales/en-UK.json @@ -4231,22 +4231,6 @@ "followers7d": "Followers for more than 7 days", "label": "Who can reply" } - }, - "edit": { - "apply": "Apply", - "brush": "Brush", - "brushColor": { - "title": "Brush colour", - "aria-label": "Brush colour" - }, - "brushSize": { - "title": "Brush size", - "aria-label": "Brush size" - }, - "cancel": "Cancel", - "crop": "Crop", - "image": "edit", - "mosaic": "Pixelate" } }, "feed": { @@ -5614,6 +5598,21 @@ "aria-label": "Notifications" } }, + "imageEditor": { + "apply": "Apply", + "brush": "Brush", + "brushColor": { + "title": "Brush colour", + "aria-label": "Brush colour" + }, + "brushSize": { + "title": "Brush size", + "aria-label": "Brush size" + }, + "crop": "Crop", + "image": "edit", + "mosaic": "Pixelate" + }, "common": { "cancel": "Cancel", "create": "Create", diff --git a/src/public/locales/es-ES.json b/src/public/locales/es-ES.json index dbbd8f3d5..e79b02c5e 100644 --- a/src/public/locales/es-ES.json +++ b/src/public/locales/es-ES.json @@ -4234,22 +4234,6 @@ "followers7d": "Seguidores por más de 7 días.", "label": "¿Quién puede responder?" } - }, - "edit": { - "apply": "Aplicar", - "brush": "Pincel", - "brushColor": { - "title": "Color del pincel", - "aria-label": "Color del pincel" - }, - "brushSize": { - "title": "Tamaño del pincel", - "aria-label": "Tamaño del pincel" - }, - "cancel": "Cancelar", - "crop": "Recortar", - "image": "editar", - "mosaic": "Pixelar" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Notificaciones" } }, + "imageEditor": { + "apply": "Aplicar", + "brush": "Pincel", + "brushColor": { + "title": "Color del pincel", + "aria-label": "Color del pincel" + }, + "brushSize": { + "title": "Tamaño del pincel", + "aria-label": "Tamaño del pincel" + }, + "crop": "Recortar", + "image": "editar", + "mosaic": "Pixelar" + }, "common": { "cancel": "Cancelar", "create": "crear", diff --git a/src/public/locales/fr-FR.json b/src/public/locales/fr-FR.json index e5eca31a9..e7f9a12ce 100644 --- a/src/public/locales/fr-FR.json +++ b/src/public/locales/fr-FR.json @@ -4234,22 +4234,6 @@ "followers7d": "Abonnés depuis plus de 7 jours", "label": "Qui peut répondre" } - }, - "edit": { - "apply": "Appliquer", - "brush": "Pinceau", - "brushColor": { - "title": "Couleur du pinceau", - "aria-label": "Couleur du pinceau" - }, - "brushSize": { - "title": "Taille du pinceau", - "aria-label": "Taille du pinceau" - }, - "cancel": "Annuler", - "crop": "Recadrer", - "image": "Modifier", - "mosaic": "Pixeliser" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Notifications" } }, + "imageEditor": { + "apply": "Appliquer", + "brush": "Pinceau", + "brushColor": { + "title": "Couleur du pinceau", + "aria-label": "Couleur du pinceau" + }, + "brushSize": { + "title": "Taille du pinceau", + "aria-label": "Taille du pinceau" + }, + "crop": "Recadrer", + "image": "Modifier", + "mosaic": "Pixeliser" + }, "common": { "cancel": "Annuler", "create": "Créer", diff --git a/src/public/locales/hi-IN.json b/src/public/locales/hi-IN.json index ae4ec65e2..139cf7ac0 100644 --- a/src/public/locales/hi-IN.json +++ b/src/public/locales/hi-IN.json @@ -4234,22 +4234,6 @@ "followers7d": "7 दिन से ज्यादा समय से फॉलोअर्स", "label": "कौन जवाब दे सकता है" } - }, - "edit": { - "apply": "लागू करें", - "brush": "ब्रश", - "brushColor": { - "title": "ब्रश का रंग", - "aria-label": "ब्रश का रंग" - }, - "brushSize": { - "title": "ब्रश का आकार", - "aria-label": "ब्रश का आकार" - }, - "cancel": "रद्द करें", - "crop": "क्रॉप", - "image": "संपादित करें", - "mosaic": "पिक्सेलेट" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "सूचनाएँ" } }, + "imageEditor": { + "apply": "लागू करें", + "brush": "ब्रश", + "brushColor": { + "title": "ब्रश का रंग", + "aria-label": "ब्रश का रंग" + }, + "brushSize": { + "title": "ब्रश का आकार", + "aria-label": "ब्रश का आकार" + }, + "crop": "क्रॉप", + "image": "संपादित करें", + "mosaic": "पिक्सेलेट" + }, "common": { "cancel": "रद्द करें", "create": "बनाएं", diff --git a/src/public/locales/is-IS.json b/src/public/locales/is-IS.json index 15f0570ab..7bc2f566f 100644 --- a/src/public/locales/is-IS.json +++ b/src/public/locales/is-IS.json @@ -4234,22 +4234,6 @@ "followers7d": "Fylgjendur í meira en 7 daga", "label": "Hver getur svarað" } - }, - "edit": { - "apply": "Nota", - "brush": "Pensill", - "brushColor": { - "title": "Litur pensils", - "aria-label": "Litur pensils" - }, - "brushSize": { - "title": "Stærð pensils", - "aria-label": "Stærð pensils" - }, - "cancel": "Hætta við", - "crop": "Klippa", - "image": "Breyta", - "mosaic": "Pixla" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Tilkynningar" } }, + "imageEditor": { + "apply": "Nota", + "brush": "Pensill", + "brushColor": { + "title": "Litur pensils", + "aria-label": "Litur pensils" + }, + "brushSize": { + "title": "Stærð pensils", + "aria-label": "Stærð pensils" + }, + "crop": "Klippa", + "image": "Breyta", + "mosaic": "Pixla" + }, "common": { "cancel": "Hætta við", "create": "Búa til", diff --git a/src/public/locales/it-IT.json b/src/public/locales/it-IT.json index bf9338789..21fbb8f8d 100644 --- a/src/public/locales/it-IT.json +++ b/src/public/locales/it-IT.json @@ -4234,22 +4234,6 @@ "followers7d": "Follower da più di 7 giorni", "label": "Chi può rispondere" } - }, - "edit": { - "apply": "Applica", - "brush": "Pennello", - "brushColor": { - "title": "Colore del pennello", - "aria-label": "Colore del pennello" - }, - "brushSize": { - "title": "Dimensione del pennello", - "aria-label": "Dimensione del pennello" - }, - "cancel": "Annulla", - "crop": "Ritaglia", - "image": "modificare", - "mosaic": "Pixelizza" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Notifiche" } }, + "imageEditor": { + "apply": "Applica", + "brush": "Pennello", + "brushColor": { + "title": "Colore del pennello", + "aria-label": "Colore del pennello" + }, + "brushSize": { + "title": "Dimensione del pennello", + "aria-label": "Dimensione del pennello" + }, + "crop": "Ritaglia", + "image": "modificare", + "mosaic": "Pixelizza" + }, "common": { "cancel": "Annulla", "create": "Creare", diff --git a/src/public/locales/ja-JP.json b/src/public/locales/ja-JP.json index 6bb20fd98..97564b27c 100644 --- a/src/public/locales/ja-JP.json +++ b/src/public/locales/ja-JP.json @@ -4234,22 +4234,6 @@ "followers7d": "7日以上のフォロワー", "label": "返信できる人" } - }, - "edit": { - "apply": "適用", - "brush": "ブラシ", - "brushColor": { - "title": "ブラシの色", - "aria-label": "ブラシの色" - }, - "brushSize": { - "title": "ブラシの太さ", - "aria-label": "ブラシの太さ" - }, - "cancel": "キャンセル", - "crop": "トリミング", - "image": "編集", - "mosaic": "モザイク" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "通知" } }, + "imageEditor": { + "apply": "適用", + "brush": "ブラシ", + "brushColor": { + "title": "ブラシの色", + "aria-label": "ブラシの色" + }, + "brushSize": { + "title": "ブラシの太さ", + "aria-label": "ブラシの太さ" + }, + "crop": "トリミング", + "image": "編集", + "mosaic": "モザイク" + }, "common": { "cancel": "キャンセル", "create": "作成する", diff --git a/src/public/locales/ko-KR.json b/src/public/locales/ko-KR.json index 8bf8dd61b..5fb739b6b 100644 --- a/src/public/locales/ko-KR.json +++ b/src/public/locales/ko-KR.json @@ -4234,22 +4234,6 @@ "followers7d": "7일 이상 팔로워 수", "label": "답글을 달 수 있는 사람" } - }, - "edit": { - "apply": "적용", - "brush": "브러시", - "brushColor": { - "title": "브러시 색상", - "aria-label": "브러시 색상" - }, - "brushSize": { - "title": "브러시 크기", - "aria-label": "브러시 크기" - }, - "cancel": "취소", - "crop": "자르기", - "image": "편집", - "mosaic": "모자이크" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "알림" } }, + "imageEditor": { + "apply": "적용", + "brush": "브러시", + "brushColor": { + "title": "브러시 색상", + "aria-label": "브러시 색상" + }, + "brushSize": { + "title": "브러시 크기", + "aria-label": "브러시 크기" + }, + "crop": "자르기", + "image": "편집", + "mosaic": "모자이크" + }, "common": { "cancel": "취소", "create": "만들다", diff --git a/src/public/locales/lzh.json b/src/public/locales/lzh.json index 557a2f8e7..a318ac7ad 100644 --- a/src/public/locales/lzh.json +++ b/src/public/locales/lzh.json @@ -4234,22 +4234,6 @@ "followers7d": "結交逾七日者", "label": "誰可回覆" } - }, - "edit": { - "apply": "應用", - "brush": "畫筆", - "brushColor": { - "title": "畫筆之色", - "aria-label": "畫筆之色" - }, - "brushSize": { - "title": "畫筆粗細", - "aria-label": "畫筆粗細" - }, - "cancel": "罷", - "crop": "裁剪", - "image": "修", - "mosaic": "打碼" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "告示" } }, + "imageEditor": { + "apply": "應用", + "brush": "畫筆", + "brushColor": { + "title": "畫筆之色", + "aria-label": "畫筆之色" + }, + "brushSize": { + "title": "畫筆粗細", + "aria-label": "畫筆粗細" + }, + "crop": "裁剪", + "image": "修", + "mosaic": "打碼" + }, "common": { "cancel": "止", "create": "立", diff --git a/src/public/locales/nl-NL.json b/src/public/locales/nl-NL.json index bd6d29ca0..8c3194453 100644 --- a/src/public/locales/nl-NL.json +++ b/src/public/locales/nl-NL.json @@ -4234,22 +4234,6 @@ "followers7d": "Volgers langer dan 7 dagen", "label": "Wie kan antwoorden" } - }, - "edit": { - "apply": "Toepassen", - "brush": "Penseel", - "brushColor": { - "title": "Penseelkleur", - "aria-label": "Penseelkleur" - }, - "brushSize": { - "title": "Penseeldikte", - "aria-label": "Penseeldikte" - }, - "cancel": "Annuleren", - "crop": "Bijsnijden", - "image": "Bewerken", - "mosaic": "Verpixelen" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Meldingen" } }, + "imageEditor": { + "apply": "Toepassen", + "brush": "Penseel", + "brushColor": { + "title": "Penseelkleur", + "aria-label": "Penseelkleur" + }, + "brushSize": { + "title": "Penseeldikte", + "aria-label": "Penseeldikte" + }, + "crop": "Bijsnijden", + "image": "Bewerken", + "mosaic": "Verpixelen" + }, "common": { "cancel": "Annuleren", "create": "Creëren", diff --git a/src/public/locales/pt-PT.json b/src/public/locales/pt-PT.json index a89b178c1..360d7d672 100644 --- a/src/public/locales/pt-PT.json +++ b/src/public/locales/pt-PT.json @@ -4234,22 +4234,6 @@ "followers7d": "Seguidores há mais de 7 dias", "label": "Quem pode responder" } - }, - "edit": { - "apply": "Aplicar", - "brush": "Pincel", - "brushColor": { - "title": "Cor do pincel", - "aria-label": "Cor do pincel" - }, - "brushSize": { - "title": "Tamanho do pincel", - "aria-label": "Tamanho do pincel" - }, - "cancel": "Cancelar", - "crop": "Recortar", - "image": "Editar", - "mosaic": "Pixelizar" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Notificações" } }, + "imageEditor": { + "apply": "Aplicar", + "brush": "Pincel", + "brushColor": { + "title": "Cor do pincel", + "aria-label": "Cor do pincel" + }, + "brushSize": { + "title": "Tamanho do pincel", + "aria-label": "Tamanho do pincel" + }, + "crop": "Recortar", + "image": "Editar", + "mosaic": "Pixelizar" + }, "common": { "cancel": "Cancelar", "create": "Criar", diff --git a/src/public/locales/ru-RU.json b/src/public/locales/ru-RU.json index c22413893..16d9f3dec 100644 --- a/src/public/locales/ru-RU.json +++ b/src/public/locales/ru-RU.json @@ -4234,22 +4234,6 @@ "followers7d": "Подписчики от 7 дней", "label": "Кто может ответить" } - }, - "edit": { - "apply": "Применить", - "brush": "Кисть", - "brushColor": { - "title": "Цвет кисти", - "aria-label": "Цвет кисти" - }, - "brushSize": { - "title": "Размер кисти", - "aria-label": "Размер кисти" - }, - "cancel": "Отмена", - "crop": "Обрезать", - "image": "Редактировать", - "mosaic": "Пикселизация" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Уведомления" } }, + "imageEditor": { + "apply": "Применить", + "brush": "Кисть", + "brushColor": { + "title": "Цвет кисти", + "aria-label": "Цвет кисти" + }, + "brushSize": { + "title": "Размер кисти", + "aria-label": "Размер кисти" + }, + "crop": "Обрезать", + "image": "Редактировать", + "mosaic": "Пикселизация" + }, "common": { "cancel": "Отмена", "create": "создавать", diff --git a/src/public/locales/uk-UA.json b/src/public/locales/uk-UA.json index a79fa2828..c6e0675a7 100644 --- a/src/public/locales/uk-UA.json +++ b/src/public/locales/uk-UA.json @@ -4234,22 +4234,6 @@ "followers7d": "Підписники більше 7 днів", "label": "Хто може відповісти" } - }, - "edit": { - "apply": "Застосувати", - "brush": "Пензлик", - "brushColor": { - "title": "Колір пензлика", - "aria-label": "Колір пензлика" - }, - "brushSize": { - "title": "Розмір пензлика", - "aria-label": "Розмір пензлика" - }, - "cancel": "Скасувати", - "crop": "Обрізати", - "image": "Редагувати", - "mosaic": "Пікселізація" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Сповіщення" } }, + "imageEditor": { + "apply": "Застосувати", + "brush": "Пензлик", + "brushColor": { + "title": "Колір пензлика", + "aria-label": "Колір пензлика" + }, + "brushSize": { + "title": "Розмір пензлика", + "aria-label": "Розмір пензлика" + }, + "crop": "Обрізати", + "image": "Редагувати", + "mosaic": "Пікселізація" + }, "common": { "cancel": "Скасувати", "create": "Створити", diff --git a/src/public/locales/vi-VN.json b/src/public/locales/vi-VN.json index 7bb8f4902..d112232c2 100644 --- a/src/public/locales/vi-VN.json +++ b/src/public/locales/vi-VN.json @@ -4234,22 +4234,6 @@ "followers7d": "Người theo dõi trong hơn 7 ngày", "label": "Ai có thể trả lời" } - }, - "edit": { - "apply": "Áp dụng", - "brush": "Cọ", - "brushColor": { - "title": "Màu cọ", - "aria-label": "Màu cọ" - }, - "brushSize": { - "title": "Độ dày cọ", - "aria-label": "Độ dày cọ" - }, - "cancel": "Hủy bỏ", - "crop": "Cắt", - "image": "biên tập", - "mosaic": "Che pixel" } }, "feed": { @@ -5617,6 +5601,21 @@ "aria-label": "Thông báo" } }, + "imageEditor": { + "apply": "Áp dụng", + "brush": "Cọ", + "brushColor": { + "title": "Màu cọ", + "aria-label": "Màu cọ" + }, + "brushSize": { + "title": "Độ dày cọ", + "aria-label": "Độ dày cọ" + }, + "crop": "Cắt", + "image": "biên tập", + "mosaic": "Che pixel" + }, "common": { "cancel": "Hủy bỏ", "create": "tạo nên", diff --git a/src/public/locales/zh-CN.json b/src/public/locales/zh-CN.json index 61b1128fa..a389d32bd 100644 --- a/src/public/locales/zh-CN.json +++ b/src/public/locales/zh-CN.json @@ -4240,22 +4240,6 @@ "followers7d": "7天以上关注者", "label": "谁可以回复" } - }, - "edit": { - "apply": "应用", - "brush": "画笔", - "brushColor": { - "title": "画笔颜色", - "aria-label": "画笔颜色" - }, - "brushSize": { - "title": "画笔粗细", - "aria-label": "画笔粗细" - }, - "cancel": "取消", - "crop": "裁剪", - "image": "编辑", - "mosaic": "打码" } }, "feed": { @@ -5629,6 +5613,21 @@ "aria-label": "通知" } }, + "imageEditor": { + "apply": "应用", + "brush": "画笔", + "brushColor": { + "title": "画笔颜色", + "aria-label": "画笔颜色" + }, + "brushSize": { + "title": "画笔粗细", + "aria-label": "画笔粗细" + }, + "crop": "裁剪", + "image": "编辑", + "mosaic": "打码" + }, "common": { "cancel": "取消", "create": "创建", diff --git a/src/public/locales/zh-TW.json b/src/public/locales/zh-TW.json index b1d1a8e83..71f47a89c 100644 --- a/src/public/locales/zh-TW.json +++ b/src/public/locales/zh-TW.json @@ -4233,22 +4233,6 @@ "followers7d": "7天以上關注者", "label": "誰可以回覆" } - }, - "edit": { - "apply": "應用", - "brush": "畫筆", - "brushColor": { - "title": "畫筆顏色", - "aria-label": "畫筆顏色" - }, - "brushSize": { - "title": "畫筆粗細", - "aria-label": "畫筆粗細" - }, - "cancel": "取消", - "crop": "裁剪", - "image": "編輯", - "mosaic": "打碼" } }, "feed": { @@ -5616,6 +5600,21 @@ "aria-label": "通知" } }, + "imageEditor": { + "apply": "應用", + "brush": "畫筆", + "brushColor": { + "title": "畫筆顏色", + "aria-label": "畫筆顏色" + }, + "brushSize": { + "title": "畫筆粗細", + "aria-label": "畫筆粗細" + }, + "crop": "裁剪", + "image": "編輯", + "mosaic": "打碼" + }, "common": { "cancel": "取消", "create": "建立", diff --git a/src/public/pages/AGENTS.md b/src/public/pages/AGENTS.md index 1dedcf1bd..01227861c 100644 --- a/src/public/pages/AGENTS.md +++ b/src/public/pages/AGENTS.md @@ -26,6 +26,7 @@ Markdown convertor traps (rehype order, `{:lang}`, trust tiers): [markdown-notes - **`dialog.mjs`**: `openDialogFromTemplate` / `pickFromDialog`. Templates supply `modal-box` (+ optional `modal-backdrop`) only — do not nest another ``. - **`promptDialog.mjs`**: shared DaisyUI `promptText` / `promptTextArea` / `confirmAction`. Prefer over `window.prompt` / `confirm` / shell-local copies. **First argument is always an i18n key**; optional third arg is interpolation params. Do not pass `geti18n(...)` strings. Modal title is **`h2`** (page already has `h1`; DaisyUI docs’ `h3` skips a level and trips axe `heading-order`). - **`components/jsonEditor.mjs`**: `createJsonEditor(container, options)` wraps `vanilla-jsoneditor` (≥3.13). **`options.ariaLabel` is required and must be an i18n key** (resolved + refreshed via `setLocalizeLogic`); do not pass `geti18n(...)` strings. Optional `onSave` is Ctrl+S only — not a library prop. Keep native `get()`/`set()` (`Content`); use **`getJson()`** for parsed values (`{ json }` as-is; `{ text }` → `jsonrepair` then `JSON.parse`). +- **`components/imageEditor/`**: `openImageEditor(file, labels?)` — crop / mosaic / brush modal; returns `File | null`. Defaults under `util.imageEditor.*` (+ `util.common.cancel`). - **`components/positionContextMenu.mjs`** + **`components/contextMenuDismiss.mjs`**: shared floating-menu placement / dismiss. - **`contentReveal/`**: `wrapSensitiveMediaHtml`, `wrapContentWarningHtml`, `bindContentReveal`. - **`translate.mjs`**: `mountTranslationBlock`, `requestTranslation`, `resolveTargetLang` (-> `primaryLocale()`). diff --git a/src/public/pages/log_viewer/repl/desktop.ini b/src/public/pages/log_viewer/repl/desktop.ini new file mode 100644 index 000000000..d66542445 --- /dev/null +++ b/src/public/pages/log_viewer/repl/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\Windows\System32\cmd.exe,0 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/pages/scripts/api/desktop.ini b/src/public/pages/scripts/api/desktop.ini new file mode 100644 index 000000000..8cd3cca16 --- /dev/null +++ b/src/public/pages/scripts/api/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,293 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/pages/scripts/api/p2p/desktop.ini b/src/public/pages/scripts/api/p2p/desktop.ini new file mode 100644 index 000000000..a004ee8ce --- /dev/null +++ b/src/public/pages/scripts/api/p2p/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,18 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/pages/scripts/components/desktop.ini b/src/public/pages/scripts/components/desktop.ini new file mode 100644 index 000000000..6db674f4b --- /dev/null +++ b/src/public/pages/scripts/components/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,80 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/pages/scripts/components/imageEditor/desktop.ini b/src/public/pages/scripts/components/imageEditor/desktop.ini new file mode 100644 index 000000000..9772c405e --- /dev/null +++ b/src/public/pages/scripts/components/imageEditor/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,318 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/src/public/pages/scripts/imageEditor/imageEditor.css b/src/public/pages/scripts/components/imageEditor/imageEditor.css similarity index 100% rename from src/public/pages/scripts/imageEditor/imageEditor.css rename to src/public/pages/scripts/components/imageEditor/imageEditor.css diff --git a/src/public/pages/scripts/imageEditor/index.mjs b/src/public/pages/scripts/components/imageEditor/index.mjs similarity index 88% rename from src/public/pages/scripts/imageEditor/index.mjs rename to src/public/pages/scripts/components/imageEditor/index.mjs index b2d08c4b3..971e763e6 100644 --- a/src/public/pages/scripts/imageEditor/index.mjs +++ b/src/public/pages/scripts/components/imageEditor/index.mjs @@ -2,9 +2,9 @@ * 浏览器端图片编辑器:裁剪 / 马赛克 / 画笔。纯 canvas,无第三方依赖。 */ -import { escapeHtml } from '../lib/escapeHtml.mjs' +import { escapeHtml } from '../../lib/escapeHtml.mjs' -const IMAGE_EDITOR_CSS = '/scripts/imageEditor/imageEditor.css' +const IMAGE_EDITOR_CSS = '/scripts/components/imageEditor/imageEditor.css' /** * @returns {void} @@ -19,7 +19,7 @@ function ensureImageEditorStyles() { /** * @param {File | Blob} file 源图片 - * @param {{ titleI18n?: string, cropI18n?: string, mosaicI18n?: string, brushI18n?: string, brushColorI18n?: string, brushSizeI18n?: string, applyI18n?: string, cancelI18n?: string }} [labels] 文案键 + * @param {{ titleI18n?: string, cropI18n?: string, mosaicI18n?: string, brushI18n?: string, brushColorI18n?: string, brushSizeI18n?: string, applyI18n?: string, cancelI18n?: string }} [labels] 文案键(默认 `util.imageEditor.*` / `util.common.cancel`) * @returns {Promise} 编辑后的文件;取消为 null */ export function openImageEditor(file, labels = {}) { @@ -28,17 +28,17 @@ export function openImageEditor(file, labels = {}) { const objectUrl = URL.createObjectURL(file) const dialog = document.createElement('dialog') dialog.className = 'modal image-editor-modal' - const titleI18n = escapeHtml(labels.titleI18n || 'social.composer.edit.image') - const cropI18n = escapeHtml(labels.cropI18n || 'social.composer.edit.crop') - const mosaicI18n = escapeHtml(labels.mosaicI18n || 'social.composer.edit.mosaic') - const brushI18n = escapeHtml(labels.brushI18n || 'social.composer.edit.brush') - const brushColorI18n = escapeHtml(labels.brushColorI18n || 'social.composer.edit.brushColor') - const brushSizeI18n = escapeHtml(labels.brushSizeI18n || 'social.composer.edit.brushSize') - const cancelI18n = escapeHtml(labels.cancelI18n || 'social.composer.edit.cancel') - const applyI18n = escapeHtml(labels.applyI18n || 'social.composer.edit.apply') + const titleI18n = escapeHtml(labels.titleI18n || 'util.imageEditor.image') + const cropI18n = escapeHtml(labels.cropI18n || 'util.imageEditor.crop') + const mosaicI18n = escapeHtml(labels.mosaicI18n || 'util.imageEditor.mosaic') + const brushI18n = escapeHtml(labels.brushI18n || 'util.imageEditor.brush') + const brushColorI18n = escapeHtml(labels.brushColorI18n || 'util.imageEditor.brushColor') + const brushSizeI18n = escapeHtml(labels.brushSizeI18n || 'util.imageEditor.brushSize') + const cancelI18n = escapeHtml(labels.cancelI18n || 'util.common.cancel') + const applyI18n = escapeHtml(labels.applyI18n || 'util.imageEditor.apply') dialog.innerHTML = `\