Add a new localization language to app-framework5, including framework language options, lang JSON, datepicker verification, and locale-specific setting guidance.
framework_language_code の候補を増やすlang_*.json を新規追加するI18nSimple::get_language_options() に言語コードを追加する。locale_code の既定値と候補を I18nSimple / setting で確認し、必要なら候補を追加する。fbp/app/lang/json/lang_<code>.json を追加し、必要に応じて lang_<locale>.json も追加する。lang_en.json をベースに翻訳し、まずはホーム画面・setting・wizard など露出の大きい画面から埋める。framework_language_code と locale_code を setting で選べること、言語変更時に locale 候補が絞り込まれることを確認する。date datetime year_month が設定値どおり表示されるか確認する。setting の推奨値を決める。
例: timezone, date_format, datetime_format, year_month_format, , 数値区切りcurrencysetting_get, app_call(setting/page), app_call(wizard/run) を確認する。framework_language_code は 2 文字コードで追加する。locale_code を使う場合は ll-RR 形式にする。lang_<code>.json は JSON decode で検証する。lang_<locale>.json を使う場合は、読み込み順を確認する。lang_en.json fallback になる前提で、キー欠落を把握したうえで進める。php -l と app_call を最低 1 回ずつ実行する。t() を使う文言lang_<code>.jsonlang_<locale>.jsonframework_language_codelocale_codedate / datetime / year_month の settingnumber / currency の settinglanguage 1本ではなく language + locale を意識して設計する。zh-CN を完成させてから zh-TW 差分へ広げる。lang_en.json をベースに生成し、その後でブランド名・技術用語だけ手修正する。OpenAI, LINE, API, CSV, PDF, Webhook, HMACclass_name, function_name, db, tb_name などの開発用語Configured のような補助表示も翻訳キー化する。.lang 翻訳は現状 jp 固定仕様。新言語追加ではここを広げない。$ctl->create_ValueFormatter() を使う。lang_default や旧 jp/en cookie 仕様を主導で広げない。wizard.php や tpl に直書き文言が残っている場合、翻訳ファイルだけでは完結しない。必要なら先に t() 化する。fbp/lib/I18nSimple.phpfbp/app/lang/json/lang_en.jsonfbp/app/lang/json/lang_ja.jsonfbp/app/lang/json/lang_zh.jsonfbp/app/lang/json/lang_zh-cn.jsonfbp/app/setting/setting.phpfbp/app/setting/Templates/index.tplfbp/app/wizard/wizard.phpfbp/app/wizard/Templates/fbp/js/function.jsphp /home/nakama/web/app-framework5/fbp/cli.php setting_getphp /home/nakama/web/app-framework5/fbp/cli.php app_call --json='{"class":"setting","function":"page"}'php /home/nakama/web/app-framework5/fbp/cli.php app_call --json='{"class":"wizard","function":"run"}'app_call で対象画面の HTML を確認する。locale_code 候補が適切に切り替わる