feat(i18n): full RTL/CJK support — fonts, Japanese locale, directional fixes
Bundle Noto Sans Arabic + Noto Sans JP (SIL OFL 1.1) as per-glyph fallbacks for both the UI text theme and every generated PDF, so RTL (Arabic) and CJK render on all platforms — including desktop, where the system font may lack them — instead of tofu. A shared pdf_fonts.dart centralizes the PDF theme and the three label/catalog/recovery services reuse it. Add Japanese (ja) as the CJK reference locale — fittingly, the app's own name is Japanese (種, tane, 'seed'). Core strings translated; the rest fall back to English via slang. Wired into supportedLocales (automatic) and the settings picker. Fix three physical Alignment.centerLeft -> AlignmentDirectional.centerStart in variety_detail_screen, and make month-abbreviation and avatar-initial truncation grapheme-safe (.characters) so CJK text is never cut mid-character. Tests: CJK/Arabic PDF glyph render, ja locale resolution + English fallback. The chat-bubble mirroring flagged by the audit was verified correct (already respects Directionality) and left unchanged.
This commit is contained in:
parent
fe4591d747
commit
7ae6becd8f
31 changed files with 686 additions and 104 deletions
46
apps/app_seeds/lib/i18n/ja.i18n.json
Normal file
46
apps/app_seeds/lib/i18n/ja.i18n.json
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"app": {
|
||||
"title": "Tane"
|
||||
},
|
||||
"common": {
|
||||
"save": "保存",
|
||||
"cancel": "キャンセル",
|
||||
"delete": "削除",
|
||||
"edit": "編集",
|
||||
"type": "種類",
|
||||
"comingSoon": "近日公開",
|
||||
"offline": "オフラインです — 共有を一時停止しています"
|
||||
},
|
||||
"menu": {
|
||||
"tagline": "あなたの種子バンク",
|
||||
"inventory": "在庫",
|
||||
"market": "マーケット",
|
||||
"profile": "プロフィール",
|
||||
"chat": "チャット",
|
||||
"wishlist": "お気に入り",
|
||||
"following": "フォロー中",
|
||||
"calendar": "カレンダー",
|
||||
"settings": "設定"
|
||||
},
|
||||
"settings": {
|
||||
"language": "言語",
|
||||
"systemLanguage": "システムの言語",
|
||||
"langEs": "Español",
|
||||
"langEn": "English",
|
||||
"langPt": "Português",
|
||||
"langAst": "Asturianu",
|
||||
"langFr": "Français",
|
||||
"langDe": "Deutsch",
|
||||
"langJa": "日本語",
|
||||
"about": "このアプリについて",
|
||||
"aboutText": "在来種のためのローカルファースト・暗号化在庫管理。AGPL-3.0。",
|
||||
"aboutOpen": "Tane について"
|
||||
},
|
||||
"home": {
|
||||
"tagline": "地域の種を分かち合い、育てよう",
|
||||
"openMarket": "マーケット",
|
||||
"openMarketSubtitle": "近くの種を見つけて分かち合う",
|
||||
"yourInventory": "あなたの在庫",
|
||||
"yourInventorySubtitle": "種を管理する"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue