From c613c92f0b5e25bd696c47b0865079bf35522368 Mon Sep 17 00:00:00 2001 From: SaraJiang Date: Mon, 30 Mar 2026 17:01:50 +0800 Subject: [PATCH] replace chinese logo when websites using zh-cn language --- AGENTS.md | 3 ++- README.md | 2 +- assets/logo/Chinese_NoSlogan_Teal.png | Bin 0 -> 4769 bytes i18n.js | 17 +++++++++++++ index.html | 2 +- style.css | 34 +++++++++++++++++++++++++- 6 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 assets/logo/Chinese_NoSlogan_Teal.png diff --git a/AGENTS.md b/AGENTS.md index f2cb85e..035fb76 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,7 +33,8 @@ Polymaker-Preset/ ├── google7567ee593a9049c2.html # Google site verification ├── assets/ # Static assets │ ├── logo/ -│ │ └── Polymaker Teal.png # Polymaker logo (brand Teal) +│ │ ├── Polymaker Teal.png # English logo (default / en) +│ │ └── Chinese_NoSlogan_Teal.png # Chinese logo (zh; switched in i18n.js) │ └── font/Figtree/ # Figtree variable fonts + OFL ├── preset/ # All preset JSON files │ └── / diff --git a/README.md b/README.md index c514f2b..51a53db 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Polymaker-Preset/ ├── index.json # Auto-generated index of all presets ├── package.json # Node.js project configuration ├── assets/ # Static assets (logo, fonts) -│ ├── logo/ # Brand logo (e.g. Polymaker Teal.png) +│ ├── logo/ # Polymaker Teal.png (en), Chinese_NoSlogan_Teal.png (zh) │ └── font/Figtree/ # Self-hosted Figtree variable fonts (.ttf) ├── preset/ # All preset JSON files │ └── / diff --git a/assets/logo/Chinese_NoSlogan_Teal.png b/assets/logo/Chinese_NoSlogan_Teal.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd58894b52abbb69908a0929e79f7b27b2eff42 GIT binary patch literal 4769 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 literal 0 HcmV?d00001 diff --git a/i18n.js b/i18n.js index 2c60cde..5db93d5 100644 --- a/i18n.js +++ b/i18n.js @@ -2,9 +2,15 @@ // To add a new language: add a new key block below and a
  • in the lang dropdown in index.html. var I18N = (function () { + var LOGO_SRC = { + en: './assets/logo/Polymaker%20Teal.png', + zh: './assets/logo/Chinese_NoSlogan_Teal.png' + }; + var TRANSLATIONS = { en: { // Hero + 'hero.logo.alt': 'Polymaker', 'hero.title': 'Filament Presets', 'hero.desc': 'Select your slicer to view and download Polymaker print profiles and filament presets', 'hero.howto': 'How to use?', @@ -124,6 +130,7 @@ var I18N = (function () { zh: { // Hero + 'hero.logo.alt': '\u805a\u590d\u79d1\u6280', 'hero.title': '耗材预设文件', 'hero.desc': '选择您的切片软件,查看并下载 Polymaker 打印配置文件和耗材预设', 'hero.howto': '如何使用?', @@ -321,6 +328,16 @@ var I18N = (function () { } } + var logoEl = document.getElementById('hero-logo'); + if (logoEl) { + logoEl.src = LOGO_SRC[lang] || LOGO_SRC.en; + logoEl.alt = t('hero.logo.alt'); + } + + if (document.documentElement) { + document.documentElement.setAttribute('lang', lang === 'zh' ? 'zh' : 'en'); + } + // Notify app.js to re-render dynamic content document.dispatchEvent(new CustomEvent('langchange', { detail: { lang: lang } })); } diff --git a/index.html b/index.html index 11d8577..5aea366 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,7 @@

    - + Filament Presets

    diff --git a/style.css b/style.css index 8fc4e72..559ac7d 100644 --- a/style.css +++ b/style.css @@ -122,21 +122,53 @@ body.theme-wiki .bg-gradient { font-weight: 700; margin: 0 0 0.15rem; letter-spacing: -0.01em; + line-height: 1; display: flex; align-items: center; - gap: 0.5rem; + gap: 0.35em; flex-wrap: wrap; } .hero-logo { height: 1.75em; width: auto; + display: block; vertical-align: middle; flex-shrink: 0; } +/* Lock subtitle to same vertical box as logo; color differs only */ .preset-text { + margin: 0; + padding: 0; color: #fff; + font-weight: 700; + font-size: 1em; + line-height: 1; + letter-spacing: inherit; + display: inline-flex; + align-items: center; + min-height: 1.75em; +} + +html[lang="en"] .hero-title { + letter-spacing: -0.01em; +} + +html[lang="en"] .preset-text { + letter-spacing: -0.01em; +} + +/* Chinese lockup: match raster wordmark in logo (聚复科技) — tighter tracking, slightly smaller caps */ +html[lang="zh"] .hero-title { + letter-spacing: 0.02em; +} + +html[lang="zh"] .preset-text { + letter-spacing: 0.07em; + font-size: 1.13em; + margin-top: 4px; + margin-left: -3px; } body.theme-wiki .preset-text {