mirror of
https://github.com/multica-ai/multica.git
synced 2026-08-03 11:10:23 +02:00
* 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>
76 lines
3.5 KiB
JSON
76 lines
3.5 KiB
JSON
{
|
||
"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": "—"
|
||
}
|
||
}
|