Search documentation

Search pages and headings in the docs.

JustHold i18n

  • Locales: en (default, unprefixed) and zh-hant (prefixed), defined in i18n/routing.ts with localePrefix: 'as-needed' and localeDetection: false (e.g. /holdings, /docs, /zh-hant/holdings, /zh-hant/docs).
  • Public app routes live under app/[locale]/…. UI copy lives in messages/en.json and messages/zh-hant.json — add keys there; don't hardcode user-facing strings in components when a message namespace already exists.
  • Prefer English first (matches admin); ship zh-hant when a translation is ready. Use localizedPathname(locale, path) when building absolute URLs so the default locale stays unprefixed.
  • Admin exception: app/admin/ is English-only (no [locale] segment). Don't wrap admin screens in next-intl routing.
  • Content/R2 locale keys must match routing: zh-hant and en (see lib/r2.ts and the justhold-mdx-content skill).