Files
multica/packages/views/locales/ja/billing.json
Anderson Shindy Oki 1aa742053b i18n: add japanese locale (MUL-2893) (#3538)
* i18n: add japanese locale

* fix: spacing issues

* refactor

* fix(desktop): set <html lang> before paint to avoid JA Kanji font flash

Switch the documentElement.lang sync from useEffect to useLayoutEffect so
lang is committed before the first paint. Otherwise Japanese desktop users
saw one frame of Kanji rendered with the Chinese-first fallback stack before
the html[lang|="ja"] CJK override applied. Also fix the stale selector in the
HTML_LANG comment (html[lang^="ja"] -> html[lang|="ja"]).

Addresses review nits on MUL-2893.

Co-authored-by: multica-agent <github@multica.ai>

* fix(docs): tokenize the ideographic iteration mark in JA search

Add U+3005 (々) to the Japanese search tokenizer character class. It sits just
below the kana blocks, so words like 様々 / 日々 / 個々 previously dropped the
mark and split awkwardly, hurting recall.

Addresses a review nit on MUL-2893.

Co-authored-by: multica-agent <github@multica.ai>

* fix(i18n): restore ja locale parity after merging main

Merging main brought new EN strings into agents/chat/onboarding/settings/
squads that the ja bundle (authored against an older snapshot) lacked, breaking
the locales parity test. Add the Japanese translations for the new keys
(workspace logo upload, agents runtime filter, chat session-history stop
dialog, onboarding social_github, squad archived status) and drop the two
renamed chat window keys (active_group / archived_group) that EN removed in
favour of history_group.

Fixes the failing @multica/views parity.test.ts on the FE CI for MUL-2893.

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: J <j@multica.ai>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-02 14:29:29 +08:00

76 lines
3.5 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"title": "請求(テストページ)",
"subtitle": "multica-cloud の /api/v1/billing/* に直接パススルーします。完成した UI ではなく、proxy と Stripe フローを検証するためにすべての endpoint を 1 つのページにまとめたものです。",
"endpoints": {
"balance": "GET /api/cloud-billing/balance",
"transactions": "GET /api/cloud-billing/transactions",
"batches": "GET /api/cloud-billing/batches",
"topups": "GET /api/cloud-billing/topups",
"buy": "GET /price-tiers · POST /checkout-sessions · POST /portal-sessions"
},
"balance": {
"title": "残高",
"credits_suffix": "credits",
"meta": "raw micro: {{micro}} · owner: {{owner}}… · updated {{updated}}"
},
"buy": {
"title": "クレジット購入 / 請求の管理",
"no_tiers": "設定された価格 tier がありません。Cloud に Stripe key が設定されていない可能性があり、checkout は 503 を返します。",
"tier_money_to_credits": "{{money}} → {{credits}} credits",
"tier_bonus": " + ボーナス {{credits}}",
"tier_bonus_with_expiry": " + ボーナス {{credits}}{{expiry}}",
"tier_id": "id: {{id}}",
"open_portal": "Stripe Billing Portal を開く",
"portal_hint": "まだ支払いをしていないユーザーには 400 が想定されますStripe customer record がまだ存在しません)。",
"toast_no_url": "Cloud が checkout URL を返しませんでした",
"toast_checkout_failed": "Checkout に失敗しました",
"toast_no_portal_url": "Portal URL が返されませんでした",
"toast_portal_failed": "Portal を開けませんでした"
},
"checkout": {
"session_label": "Checkout session {{prefix}}…",
"loading": "注文ステータスを読み込み中…",
"fetch_failed": "ステータスの取得に失敗しました: {{error}}",
"fetch_failed_unknown": "不明なエラー",
"final_status": "最終ステータス: {{status}}",
"polling_status": "ステータスを確認中… 現在: {{status}}",
"status_unknown": "unknown",
"label_order": "注文",
"label_tier": "Tier",
"label_charged": "請求済み",
"charged_value": "{{money}} · {{credits}} credits",
"charged_with_bonus": "{{money}} · {{credits}} credits + ボーナス {{bonus}}",
"clear_url": "URL から消去"
},
"transactions": {
"title": "取引履歴",
"empty": "取引履歴はまだありません。",
"credits_value": "{{value}} credits",
"row_meta": "{{date}} · balance after: {{balance}} credits · ref: {{ref}}",
"ref_empty": "—"
},
"batches": {
"title": "クレジット batch",
"empty": "batch はまだありません。",
"remaining_over_total": "{{remaining}} / {{total}} credits",
"id_suffix": "{{id}}…",
"consumed": "使用済み: {{value}} credits",
"expires_suffix": " · 有効期限 {{value}}",
"never_expires_suffix": " · 有効期限なし"
},
"topups": {
"title": "Topup 注文",
"empty": "topup 注文はまだありません。",
"amount_to_credits": "{{money}} → {{credits}} credits",
"amount_to_credits_with_bonus": "{{money}} → {{credits}} credits + ボーナス {{bonus}}",
"row_meta": "{{date}} · stripe: {{checkout}}",
"stripe_empty": "—"
},
"shared": {
"request_failed": "リクエストに失敗しました",
"refresh": "更新",
"paging": "{{page}} / {{totalPages}} ページ · 合計 {{total}}件",
"date_dash": "—"
}
}