Skip to content

Fix language URL/SSR, Korean Ask names, narrow/short layouts, listing polish - #58

Merged
Spoof14 merged 5 commits into
mainfrom
fix/lang-url-ask-layout
Oct 11, 2026
Merged

Spoof14 merged 5 commits into
mainfrom
fix/lang-url-ask-layout

Conversation

@Spoof14

@Spoof14 Spoof14 commented Oct 11, 2026

Copy link
Copy Markdown
Owner

Fixes from the real-browser smoke test of production.

1. Language in the URL / SSR

  • Toggling writes ?lang=ko (removed for English), keeping other params; also applied on load when only localStorage says Korean. Map URL sync, listing links, listing share/copy links, "back to map" links and the header "Copy link" keep it.
  • New ziggy_lang cookie + middleware.ts (?lang= beats cookie): root layout sets <html lang> server-side; / metadata (title/description/OG), h1 and intro render in the right language on a bare / too. h1/intro are a small client component so they also follow in-page switches.

2. Korean Ask

  • Place table now has Korean display names (ko) and districts (gu); displayPlace(name, lang) is used in chips, summaries, reasons, commute labels/cards and AI prompt chips, so names are consistent.
  • Opening Ask with a result from another language regenerates it (effect now keyed on open/result/resultLang).
  • "Similar to Hongdae" chip is now "Similar to the Hongdae listing" / "홍대 매물과 비슷한 매물".
  • Root cause of "Seongsu · Seoul/Gangnam-gu": englishDistrict preferred the longest match (서울특별시 beat 성동구); now a 구 beats a city, and a neighbourhood whose district contradicts the address is dropped.

3. Layout at zoom / short viewports

  • Root cause: desktop side-panel layout was keyed on md (768px width). 200% zoom of a ~1920 window is ~960 css px, so the 40% panel was ~380px. Now desk = width ≥1024 AND height ≥540; everything else uses the stacked layout. Added short/tiny/narrow screens.
  • Header wraps controls under the title; filters start collapsed off-desk; carousel cards drop photos on short viewports and hide below 380px tall; attribution/map buttons are offset by the measured carousel height (no more fixed margin guess).

4. Smaller

  • Listing subtitle is only glossed when it is fully structured (every Korean word known); free-text stays original, never mixed.
  • Opening the listing panel from the map/list adds ?preview= (Back closes it).
  • "Similar to this" aria-label starts with the visible label.
  • Glossary: 몰세권, 숲세권, 초품아, 보안시설, 엘베, 협의 etc.
  • Translate description: plain-text output, shorter prompt, token cap, 15s timeout with friendly message, elapsed-seconds loading text, retry, failures no longer cached.

Verified: tsc, eslint (0 errors), vitest (445, live excluded), next build, headless screenshots 1440x900 / 512x320 / 390x844 / 640x400 / 768x400 / 1024x500 in EN and KO.

@vercel

vercel Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ziggybang Ready Ready Preview Oct 11, 2026 8:03am UTC
ziggybang-5xjx Ready Ready Preview Oct 11, 2026 8:03am UTC

@Spoof14
Spoof14 merged commit 1b2da79 into main Oct 11, 2026
4 checks passed

This branch was successfully deployed

2 active deployments
Preview – ziggybang — a0c7c1e4 Deployed Oct 11, 2026 by vercel[bot]
Preview – ziggybang-5xjx — a0c7c1e4 Deployed Oct 11, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants