diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d5745c..3f1be13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,40 +1,36 @@ + # Changelog # [1.0.0-beta.17](https://github.com/perfect-panel/ppanel-web/compare/v1.0.0-beta.16...v1.0.0-beta.17) (2025-02-21) - ### 🐛 Bug Fixes -* **auth**: Refactor reset password form to simplify code input and update placeholder text ([23833b4](https://github.com/perfect-panel/ppanel-web/commit/23833b4)) +- **auth**: Refactor reset password form to simplify code input and update placeholder text ([23833b4](https://github.com/perfect-panel/ppanel-web/commit/23833b4)) # [1.0.0-beta.16](https://github.com/perfect-panel/ppanel-web/compare/v1.0.0-beta.15...v1.0.0-beta.16) (2025-02-21) - ### 🐛 Bug Fixes -* **auth**: Simplify email verification code input rendering ([6f7bc37](https://github.com/perfect-panel/ppanel-web/commit/6f7bc37)) +- **auth**: Simplify email verification code input rendering ([6f7bc37](https://github.com/perfect-panel/ppanel-web/commit/6f7bc37)) # [1.0.0-beta.15](https://github.com/perfect-panel/ppanel-web/compare/v1.0.0-beta.14...v1.0.0-beta.15) (2025-02-21) - ### 🐛 Bug Fixes -* **profile**: Restore filter to ensure only valid OAuth accounts are shown ([315c8f9](https://github.com/perfect-panel/ppanel-web/commit/315c8f9)) +- **profile**: Restore filter to ensure only valid OAuth accounts are shown ([315c8f9](https://github.com/perfect-panel/ppanel-web/commit/315c8f9)) # [1.0.0-beta.14](https://github.com/perfect-panel/ppanel-web/compare/v1.0.0-beta.13...v1.0.0-beta.14) (2025-02-21) - ### 🐛 Bug Fixes -* **locales**: Fixed description in multilingual files, updated text related to email registration functionality ([c356bc2](https://github.com/perfect-panel/ppanel-web/commit/c356bc2)) +- **locales**: Fixed description in multilingual files, updated text related to email registration functionality ([c356bc2](https://github.com/perfect-panel/ppanel-web/commit/c356bc2)) # [1.0.0-beta.13](https://github.com/perfect-panel/ppanel-web/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2025-02-21) - ### 🐛 Bug Fixes -* **api**: Fix type error in API request and add return URL parameter ([ee286dd](https://github.com/perfect-panel/ppanel-web/commit/ee286dd)) +- **api**: Fix type error in API request and add return URL parameter ([ee286dd](https://github.com/perfect-panel/ppanel-web/commit/ee286dd)) diff --git a/apps/admin/app/dashboard/system/site.tsx b/apps/admin/app/dashboard/system/site.tsx index 6ef76b6..1f7e7bd 100644 --- a/apps/admin/app/dashboard/system/site.tsx +++ b/apps/admin/app/dashboard/system/site.tsx @@ -85,6 +85,35 @@ export default function Site() { /> + + + {t('keywords')} + {t('keywordsDescription')} + + + updateConfig('keywords', value)} + /> + + + + + {t('customHtml')} + {t('customHtmlDescription')} + + + { + updateConfig('custom_html', e.target.value); + }} + /> + + {t('siteDomain')} diff --git a/apps/admin/locales/cs-CZ/system.json b/apps/admin/locales/cs-CZ/system.json index eae83ed..8b1858a 100644 --- a/apps/admin/locales/cs-CZ/system.json +++ b/apps/admin/locales/cs-CZ/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Úspěšně uloženo" }, "site": { + "customHtml": "Vlastní HTML", + "customHtmlDescription": "Vlastní HTML kód, který má být vložen do hlavičky stránky", + "keywords": "Klíčová slova", + "keywordsDescription": "Používá se pro SEO účely", "logo": "LOGO", "logoDescription": "Používá se k zobrazení místa, kde je potřeba zobrazit LOGO", "logoPlaceholder": "Zadejte URL adresu LOGA, nekončete '/'", diff --git a/apps/admin/locales/de-DE/system.json b/apps/admin/locales/de-DE/system.json index 81ca724..3065e53 100644 --- a/apps/admin/locales/de-DE/system.json +++ b/apps/admin/locales/de-DE/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Erfolgreich gespeichert" }, "site": { + "customHtml": "Benutzerdefiniertes HTML", + "customHtmlDescription": "Benutzerdefinierter HTML-Code, der in den Head-Tag der Seite eingefügt werden soll", + "keywords": "Schlüsselwörter", + "keywordsDescription": "Für SEO-Zwecke verwendet", "logo": "LOGO", "logoDescription": "Position zur Anzeige des LOGOs", "logoPlaceholder": "Bitte geben Sie die URL-Adresse des LOGOs ein, ohne '/' am Ende", diff --git a/apps/admin/locales/en-US/system.json b/apps/admin/locales/en-US/system.json index 92eab47..f8364ae 100644 --- a/apps/admin/locales/en-US/system.json +++ b/apps/admin/locales/en-US/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Save Successful" }, "site": { + "customHtml": "Custom HTML", + "customHtmlDescription": "Custom HTML code to be inserted into the head tag of the site", + "keywords": "Keywords", + "keywordsDescription": "Used for SEO purposes", "logo": "Logo", "logoDescription": "Used for displaying the logo in designated locations", "logoPlaceholder": "Enter the URL of the logo, without ending with '/'", diff --git a/apps/admin/locales/es-ES/system.json b/apps/admin/locales/es-ES/system.json index 85b194a..ff135aa 100644 --- a/apps/admin/locales/es-ES/system.json +++ b/apps/admin/locales/es-ES/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Guardado exitosamente" }, "site": { + "customHtml": "HTML personalizado", + "customHtmlDescription": "Código HTML personalizado que se insertará en la etiqueta head del sitio", + "keywords": "Palabras clave", + "keywordsDescription": "Utilizado para fines de SEO", "logo": "LOGO", "logoDescription": "Se utiliza para mostrar la ubicación donde se debe mostrar el LOGO", "logoPlaceholder": "Por favor, introduce la URL del LOGO, no termines con '/'", diff --git a/apps/admin/locales/es-MX/system.json b/apps/admin/locales/es-MX/system.json index d9eaa42..f56746c 100644 --- a/apps/admin/locales/es-MX/system.json +++ b/apps/admin/locales/es-MX/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Guardado exitosamente" }, "site": { + "customHtml": "HTML personalizado", + "customHtmlDescription": "Código HTML personalizado que se insertará en la etiqueta head del sitio", + "keywords": "Palabras clave", + "keywordsDescription": "Utilizado para propósitos de SEO", "logo": "LOGO", "logoDescription": "Usado para mostrar la ubicación donde se debe exhibir el LOGO", "logoPlaceholder": "Por favor, ingresa la URL del LOGO, no termines con '/'", diff --git a/apps/admin/locales/fa-IR/system.json b/apps/admin/locales/fa-IR/system.json index fcb1a4d..022a07d 100644 --- a/apps/admin/locales/fa-IR/system.json +++ b/apps/admin/locales/fa-IR/system.json @@ -9,6 +9,10 @@ "saveSuccess": "ذخیرهسازی موفقیتآمیز" }, "site": { + "customHtml": "HTML سفارشی", + "customHtmlDescription": "کد HTML سفارشی که باید در تگ head سایت وارد شود", + "keywords": "کلمات کلیدی", + "keywordsDescription": "برای اهداف سئو استفاده میشود", "logo": "لوگو", "logoDescription": "برای نمایش لوگو در مکانهای تعیینشده استفاده میشود", "logoPlaceholder": "آدرس URL لوگو را وارد کنید، بدون '/' در انتها", diff --git a/apps/admin/locales/fi-FI/system.json b/apps/admin/locales/fi-FI/system.json index 3344300..001388c 100644 --- a/apps/admin/locales/fi-FI/system.json +++ b/apps/admin/locales/fi-FI/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Tallennus onnistui" }, "site": { + "customHtml": "Mukautettu HTML", + "customHtmlDescription": "Mukautettu HTML-koodi, joka lisätään sivuston head-tagiin", + "keywords": "Avainsanat", + "keywordsDescription": "Käytetään SEO-tarkoituksiin", "logo": "LOGO", "logoDescription": "Näyttääksesi paikan, jossa LOGO tulee näkyä", "logoPlaceholder": "Syötä LOGO:n URL-osoite, älä lopeta '/'-merkillä", diff --git a/apps/admin/locales/fr-FR/system.json b/apps/admin/locales/fr-FR/system.json index f299ec2..9be03d1 100644 --- a/apps/admin/locales/fr-FR/system.json +++ b/apps/admin/locales/fr-FR/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Enregistrement réussi" }, "site": { + "customHtml": "HTML personnalisé", + "customHtmlDescription": "Code HTML personnalisé à insérer dans la balise head du site", + "keywords": "Mots-clés", + "keywordsDescription": "Utilisé à des fins de référencement", "logo": "LOGO", "logoDescription": "Utilisé pour afficher l'emplacement où le LOGO doit être montré", "logoPlaceholder": "Veuillez entrer l'URL du LOGO, ne pas terminer par '/'", diff --git a/apps/admin/locales/hi-IN/system.json b/apps/admin/locales/hi-IN/system.json index 066a2ee..c295150 100644 --- a/apps/admin/locales/hi-IN/system.json +++ b/apps/admin/locales/hi-IN/system.json @@ -9,6 +9,10 @@ "saveSuccess": "सफलतापूर्वक सहेजा गया" }, "site": { + "customHtml": "कस्टम HTML", + "customHtmlDescription": "साइट के हेड टैग में डाले जाने के लिए कस्टम HTML कोड", + "keywords": "कीवर्ड", + "keywordsDescription": "SEO उद्देश्यों के लिए उपयोग किया जाता है", "logo": "लोगो", "logoDescription": "लोगो प्रदर्शित करने के लिए आवश्यक स्थान", "logoPlaceholder": "कृपया लोगो का URL पता दर्ज करें, '/' के साथ समाप्त न करें", diff --git a/apps/admin/locales/hu-HU/system.json b/apps/admin/locales/hu-HU/system.json index 1990837..848d595 100644 --- a/apps/admin/locales/hu-HU/system.json +++ b/apps/admin/locales/hu-HU/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Sikeres mentés" }, "site": { + "customHtml": "Egyedi HTML", + "customHtmlDescription": "Egyedi HTML kód, amelyet a webhely fejléctagjába kell beilleszteni", + "keywords": "Kulcsszavak", + "keywordsDescription": "SEO célokra használva", "logo": "LOGÓ", "logoDescription": "A LOGÓ megjelenítésére szolgáló hely", "logoPlaceholder": "Kérjük, adja meg a LOGÓ URL-címét, ne végződjön '/' jellel", diff --git a/apps/admin/locales/ja-JP/system.json b/apps/admin/locales/ja-JP/system.json index 3ef236c..f5a785f 100644 --- a/apps/admin/locales/ja-JP/system.json +++ b/apps/admin/locales/ja-JP/system.json @@ -9,6 +9,10 @@ "saveSuccess": "保存に成功しました" }, "site": { + "customHtml": "カスタムHTML", + "customHtmlDescription": "サイトのheadタグに挿入するカスタムHTMLコード", + "keywords": "キーワード", + "keywordsDescription": "SEO目的で使用されます", "logo": "LOGO", "logoDescription": "LOGOを表示する必要がある場所に使用されます", "logoPlaceholder": "LOGOのURLアドレスを入力してください。末尾に'/'を付けないでください", diff --git a/apps/admin/locales/ko-KR/system.json b/apps/admin/locales/ko-KR/system.json index 0b019d5..0e676ba 100644 --- a/apps/admin/locales/ko-KR/system.json +++ b/apps/admin/locales/ko-KR/system.json @@ -9,6 +9,10 @@ "saveSuccess": "저장 성공" }, "site": { + "customHtml": "사용자 정의 HTML", + "customHtmlDescription": "사이트의 head 태그에 삽입할 사용자 정의 HTML 코드", + "keywords": "키워드", + "keywordsDescription": "SEO 목적으로 사용됨", "logo": "LOGO", "logoDescription": "LOGO를 표시해야 하는 위치에 사용됩니다", "logoPlaceholder": "LOGO의 URL 주소를 입력하세요. '/'로 끝나지 않도록 하세요", diff --git a/apps/admin/locales/no-NO/system.json b/apps/admin/locales/no-NO/system.json index 2390008..993abe0 100644 --- a/apps/admin/locales/no-NO/system.json +++ b/apps/admin/locales/no-NO/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Lagring vellykket" }, "site": { + "customHtml": "Egendefinert HTML", + "customHtmlDescription": "Egendefinert HTML-kode som skal settes inn i head-taggen på nettstedet", + "keywords": "Nøkkelord", + "keywordsDescription": "Brukes til SEO-formål", "logo": "LOGO", "logoDescription": "Brukes til å vise hvor LOGO skal vises", "logoPlaceholder": "Vennligst skriv inn URL-adressen til LOGO, ikke avslutt med '/'", diff --git a/apps/admin/locales/pl-PL/system.json b/apps/admin/locales/pl-PL/system.json index 4635b3c..7a9cf39 100644 --- a/apps/admin/locales/pl-PL/system.json +++ b/apps/admin/locales/pl-PL/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Zapisano pomyślnie" }, "site": { + "customHtml": "Niestandardowy HTML", + "customHtmlDescription": "Niestandardowy kod HTML do wstawienia w tagu head strony", + "keywords": "Słowa kluczowe", + "keywordsDescription": "Używane do celów SEO", "logo": "LOGO", "logoDescription": "Miejsce do wyświetlania LOGO", "logoPlaceholder": "Wprowadź adres URL LOGO, nie kończ na '/'", diff --git a/apps/admin/locales/pt-BR/system.json b/apps/admin/locales/pt-BR/system.json index f0b1c22..fa9a20f 100644 --- a/apps/admin/locales/pt-BR/system.json +++ b/apps/admin/locales/pt-BR/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Salvo com sucesso" }, "site": { + "customHtml": "HTML Personalizado", + "customHtmlDescription": "Código HTML personalizado a ser inserido na tag head do site", + "keywords": "Palavras-chave", + "keywordsDescription": "Usado para fins de SEO", "logo": "LOGO", "logoDescription": "Usado para exibir a posição onde o LOGO precisa ser mostrado", "logoPlaceholder": "Por favor, insira o URL do LOGO, não termine com '/'", diff --git a/apps/admin/locales/ro-RO/system.json b/apps/admin/locales/ro-RO/system.json index 30ca4b0..6bc5745 100644 --- a/apps/admin/locales/ro-RO/system.json +++ b/apps/admin/locales/ro-RO/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Salvare reușită" }, "site": { + "customHtml": "HTML personalizat", + "customHtmlDescription": "Cod HTML personalizat care va fi inserat în tagul head al site-ului", + "keywords": "Cuvinte cheie", + "keywordsDescription": "Utilizate în scopuri SEO", "logo": "LOGO", "logoDescription": "Utilizat pentru a afișa locația unde trebuie să fie prezentat LOGO-ul", "logoPlaceholder": "Vă rugăm să introduceți adresa URL a LOGO-ului, fără să se termine cu '/'", diff --git a/apps/admin/locales/ru-RU/system.json b/apps/admin/locales/ru-RU/system.json index b1321c6..fdcf820 100644 --- a/apps/admin/locales/ru-RU/system.json +++ b/apps/admin/locales/ru-RU/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Успешно сохранено" }, "site": { + "customHtml": "Пользовательский HTML", + "customHtmlDescription": "Пользовательский HTML-код, который будет вставлен в тег head сайта", + "keywords": "Ключевые слова", + "keywordsDescription": "Используется для SEO", "logo": "ЛОГОТИП", "logoDescription": "Используется для отображения места, где необходимо показать ЛОГОТИП", "logoPlaceholder": "Введите URL-адрес ЛОГОТИПА, не заканчивайте на '/'", diff --git a/apps/admin/locales/th-TH/system.json b/apps/admin/locales/th-TH/system.json index e90d44f..8fe70d8 100644 --- a/apps/admin/locales/th-TH/system.json +++ b/apps/admin/locales/th-TH/system.json @@ -9,6 +9,10 @@ "saveSuccess": "บันทึกสำเร็จ" }, "site": { + "customHtml": "HTML ที่กำหนดเอง", + "customHtmlDescription": "รหัส HTML ที่กำหนดเองที่จะถูกแทรกลงในแท็ก head ของเว็บไซต์", + "keywords": "คำสำคัญ", + "keywordsDescription": "ใช้สำหรับวัตถุประสงค์ SEO", "logo": "LOGO", "logoDescription": "ใช้สำหรับแสดงตำแหน่งที่ต้องการแสดง LOGO", "logoPlaceholder": "กรุณาใส่ URL ของ LOGO โดยไม่ต้องลงท้ายด้วย '/'", diff --git a/apps/admin/locales/tr-TR/system.json b/apps/admin/locales/tr-TR/system.json index da1901a..5192687 100644 --- a/apps/admin/locales/tr-TR/system.json +++ b/apps/admin/locales/tr-TR/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Başarıyla kaydedildi" }, "site": { + "customHtml": "Özel HTML", + "customHtmlDescription": "Site başlık etiketine yerleştirilecek özel HTML kodu", + "keywords": "Anahtar Kelimeler", + "keywordsDescription": "SEO amaçları için kullanılır", "logo": "LOGO", "logoDescription": "LOGO'nun gösterilmesi gereken yeri belirtir", "logoPlaceholder": "Lütfen LOGO'nun URL adresini girin, '/' ile bitmemelidir", diff --git a/apps/admin/locales/uk-UA/system.json b/apps/admin/locales/uk-UA/system.json index 738e4fe..78049c2 100644 --- a/apps/admin/locales/uk-UA/system.json +++ b/apps/admin/locales/uk-UA/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Успішно збережено" }, "site": { + "customHtml": "Користувацький HTML", + "customHtmlDescription": "Користувацький HTML-код, який буде вставлено в тег head сайту", + "keywords": "Ключові слова", + "keywordsDescription": "Використовується для SEO", "logo": "ЛОГО", "logoDescription": "Використовується для відображення місця, де потрібно показати ЛОГО", "logoPlaceholder": "Будь ласка, введіть URL-адресу ЛОГО, не закінчуйте на '/'", diff --git a/apps/admin/locales/vi-VN/system.json b/apps/admin/locales/vi-VN/system.json index 5a6db53..a5897bf 100644 --- a/apps/admin/locales/vi-VN/system.json +++ b/apps/admin/locales/vi-VN/system.json @@ -9,6 +9,10 @@ "saveSuccess": "Lưu thành công" }, "site": { + "customHtml": "HTML tùy chỉnh", + "customHtmlDescription": "Mã HTML tùy chỉnh để chèn vào thẻ head của trang", + "keywords": "Từ khóa", + "keywordsDescription": "Dùng cho mục đích SEO", "logo": "LOGO", "logoDescription": "Dùng để hiển thị vị trí cần hiển thị LOGO", "logoPlaceholder": "Vui lòng nhập địa chỉ URL của LOGO, không kết thúc bằng '/'", diff --git a/apps/admin/locales/zh-CN/system.json b/apps/admin/locales/zh-CN/system.json index 68a3a9b..369d9db 100644 --- a/apps/admin/locales/zh-CN/system.json +++ b/apps/admin/locales/zh-CN/system.json @@ -9,6 +9,10 @@ "saveSuccess": "保存成功" }, "site": { + "customHtml": "自定义HTML", + "customHtmlDescription": "要插入到网站头部标签中的自定义HTML代码", + "keywords": "关键词", + "keywordsDescription": "用于搜索引擎优化", "logo": "LOGO", "logoDescription": "用于显示需要展示 LOGO 的位置", "logoPlaceholder": "请输入 LOGO 的 URL 地址,不要以 '/' 结尾", diff --git a/apps/admin/locales/zh-HK/system.json b/apps/admin/locales/zh-HK/system.json index e3c538c..319c6f9 100644 --- a/apps/admin/locales/zh-HK/system.json +++ b/apps/admin/locales/zh-HK/system.json @@ -9,6 +9,10 @@ "saveSuccess": "保存成功" }, "site": { + "customHtml": "自定義HTML", + "customHtmlDescription": "要插入到網站標籤中的自定義HTML代碼", + "keywords": "關鍵字", + "keywordsDescription": "用於SEO目的", "logo": "LOGO", "logoDescription": "用於顯示需要展示 LOGO 的位置", "logoPlaceholder": "請輸入 LOGO 的 URL 地址,不要以 '/' 結尾", diff --git a/apps/admin/services/admin/index.ts b/apps/admin/services/admin/index.ts index 1ca3f9e..5cf2608 100644 --- a/apps/admin/services/admin/index.ts +++ b/apps/admin/services/admin/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as announcement from './announcement'; diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts index 63b5aea..3ff4074 100644 --- a/apps/admin/services/admin/typings.d.ts +++ b/apps/admin/services/admin/typings.d.ts @@ -37,7 +37,7 @@ declare namespace API { type ApplicationPlatform = { ios?: ApplicationVersion[]; - mac?: ApplicationVersion[]; + macos?: ApplicationVersion[]; linux?: ApplicationVersion[]; android?: ApplicationVersion[]; windows?: ApplicationVersion[]; @@ -1010,6 +1010,8 @@ declare namespace API { site_name: string; site_desc: string; site_logo: string; + keywords: string; + custom_html: string; }; type SortItem = { diff --git a/apps/admin/services/common/index.ts b/apps/admin/services/common/index.ts index 73b3bda..61ba129 100644 --- a/apps/admin/services/common/index.ts +++ b/apps/admin/services/common/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as auth from './auth'; diff --git a/apps/admin/services/common/typings.d.ts b/apps/admin/services/common/typings.d.ts index 835a323..7d3974f 100644 --- a/apps/admin/services/common/typings.d.ts +++ b/apps/admin/services/common/typings.d.ts @@ -35,7 +35,7 @@ declare namespace API { type ApplicationPlatform = { ios?: ApplicationVersion[]; - mac?: ApplicationVersion[]; + macos?: ApplicationVersion[]; linux?: ApplicationVersion[]; android?: ApplicationVersion[]; windows?: ApplicationVersion[]; @@ -431,6 +431,8 @@ declare namespace API { site_name: string; site_desc: string; site_logo: string; + keywords: string; + custom_html: string; }; type SortItem = { diff --git a/apps/user/app/layout.tsx b/apps/user/app/layout.tsx index f3a2d00..730e36e 100644 --- a/apps/user/app/layout.tsx +++ b/apps/user/app/layout.tsx @@ -43,6 +43,7 @@ export async function generateMetadata(): Promise { template: `%s | ${site?.site_name || 'PPanel'}`, }, description: site?.site_desc || '', + keywords: site?.keywords || '', icons: { icon: site?.site_logo ? [ @@ -114,6 +115,10 @@ export default async function RootLayout({ {children} +
{t('keywordsDescription')}
{t('customHtmlDescription')}