Skip to content

feat(i18n): translate pricing heading and plan CTA for Chinese - #21

Open
yanboishere wants to merge 5 commits into
felinics:mainfrom
yanboishere:feat/zh-pricing-copy
Open

yanboishere wants to merge 5 commits into
felinics:mainfrom
yanboishere:feat/zh-pricing-copy

Conversation

@yanboishere

@yanboishere yanboishere commented Sep 20, 2026

Copy link
Copy Markdown
Member

Summary

Translate the last two English strings in the Chinese UI's pricing section:

Before (zh) After (zh)
Section heading Pricing 定价
Plan-card CTA Get Started 立即开始

立即开始 matches the wording the zh locale already uses for the hero CTA (hero.ctaPrimary) and the bottom CTA (cta_bottom.btn). English and Japanese are unchanged (en keeps "Pricing" / "Get Started"; ja shows 料金プラン / 今すぐ始める).

Notes

owo and others added 5 commits September 18, 2026 18:33
Add ja as a third UI locale alongside en/zh:

- New src/locales/ja.json translating every key (273 keys, full parity
  with en/zh), using the product's official Japanese terminology from
  the embedded Memoh app (マーケットプレイス, Botにインストールする, ブラウザー, …)
- Register ja in i18n.ts with browser-language detection and validation
  of the stored preference; add 日本語 to the TopBar language menu
- Pass lang=ja through to the embedded product demo (the vendored app
  already ships a ja locale; only the landing-owned mocks/bootstrap.ts
  gated it to zh/en)
- Move the remaining hardcoded bilingual strings into locale files:
  PricingSection plan copy, HeroShowcase loading text and iframe title,
  the "And more" platform strip, and the TopBar aria-labels
- Set <html lang> globally from App.vue so it also tracks the locale on
  the legal pages; format blog dates with the ja calendar while post
  bodies fall back to English; add ja hreflang alternates
- Round-trip the legal pages' ?lang= query for all three locales (the
  document body itself stays zh/en by design, other locales read the
  English text)
- Load Noto Sans JP / Noto Serif JP and swap the SC font fallbacks under
  :lang(ja) so kana and kanji render with Japanese glyph forms
- Fix blog SEO titles dropping the " | Memoh Blog" suffix in every
  locale: vue-i18n parsed the raw | as a plural separator; escape it
  as {'|'}

The wechat chat demo is adapted for ja (it teaches the Chinese phrase
辛苦了 instead of explaining おつかれ to a Japanese reader). Adjacent
translations reviewed against the product UI and the zh/en voice.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Move the hardcoded "Pricing" section heading and "Get Started" plan-card
label into the locale files. Japanese shows 料金プラン / 今すぐ始める
(matching the hero and bottom CTA wording); en/zh keep their current
English rendering unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The embedded demo already renders its UI chrome in the visitor's
language, but the scripted content (welcome conversation, session
titles, workspace files, bot/folder names, memories, schedules, the
canned live reply) was a fixed English dataset. Localize all of it for
ja in the landing-owned mocks:

- mocks/locale.ts reads ?lang= once (Node test runs stay English since
  location is undefined there) and bootstrap.ts reuses it
- data.ts: Japanese session titles, all six scripted conversations, the
  memory_search card, workspace files, bot names/descriptions, folder
  names, dependency blurbs (the zh-flavored session is kept, mirroring
  the English dataset's multilingual touch; "Cloud Computer" stays
  English to match the product's own ja locale)
- fixtures.ts: Japanese memories and schedule entries (referenced by the
  weekly-digest reply)
- chat.ts: reply to typed input in Japanese when the visitor writes kana
  or the demo runs in ja; zh/en behavior unchanged

zh and en demos are byte-identical to before; demo mock tests (13) pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The zh UI kept the English "Pricing" heading and "Get Started" plan-card
label; switch them to 定价 / 立即开始 (matching the hero and bottom CTA
wording). en and ja are unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant