Skip to content

example アプリを slang で多言語化(ドキュメントと同じ6言語) - #44

Merged
LibraryLibrarian merged 14 commits into
developfrom
feature/example-i18n
Sep 25, 2026
Merged

LibraryLibrarian merged 14 commits into
developfrom
feature/example-i18n

Conversation

@LibraryLibrarian

@LibraryLibrarian LibraryLibrarian commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

概要

ドキュメントサイトと同じ en / ja / zh-Hans / de / fr / ko の6言語に example アプリを対応。言語は端末の設定に従い、対応外の言語では英語で表示。アプリ内の言語切り替えは設けていない。

変更内容

  • slang / slang_flutter / flutter_localizations を example に追加し、example/lib/main.dart の文言をすべて example/lib/i18n/*.i18n.json に移動
  • 生成は build_runner(slang_build_runner)で行い、生成物は example/.gitignore で git 管理外にした(対象は example/lib/i18n/*.g.dart のみ。ライブラリ本体には影響なし)。設定は example/build.yaml
  • CI(ci.yaml)の変更
    • package / example-android / example-ios の各ジョブで、analyze・test・ビルドの前に dart run build_runner build を実行
    • 翻訳キーの過不足チェックを追加。dart run slang analyze --full の結果に未翻訳・未使用のキーがあれば失敗させる
    • example/build.yaml の変更でも package ジョブが動くよう paths-filter に追加
  • 用語はドキュメントの各言語版に合わせた(ko の「인가」、zh-Hans の「账号」「作用域」、fr の「Portées」など)
  • 入力漏れの通知を SnackBar で直接表示するよう変更し、Exception: の接頭辞を除去
  • iOS の Info.plist に CFBundleLocalizations を追加
  • example/README.md を Flutter の雛形から、生成手順と対応言語の説明に差し替え
  • widget テストを英語の文言に合わせて修正し、ja での表示確認と、全言語で 320x568 の画面に全タブが例外なく表示される確認を追加

確認

  • 生成物のないクリーンな clone で dart pub publish --dry-run:警告 0 件。生成前の dart analyze は失敗し、build_runner build 後は format・analyze・flutter test(8件)がすべて成功
  • 生成物を含まないアーカイブに対して pana を実行し 160/160。pub.dev の Example タブは example/lib/main.dart のソースを表示するだけで、生成物は不要
  • 翻訳キーのチェックは、正常時に成功し、de からのキー削除と en への未使用キー追加のそれぞれで失敗することを確認
  • Android エミュレーター(Android 13)で端末言語を ja-JP / de-DE / es-ES に切り替え、それぞれ日本語・ドイツ語・英語(フォールバック)で表示されることを確認。エラー表示の実機確認は未実施

補足

  • slang は言語コードで照合するため、繁体字中国語(zh-Hant / zh-TW など)の端末では英語ではなく簡体字中国語で表示される。ドキュメントも繁体字には未対応のため、この挙動のままとした
  • 言語は起動時に決まるため、起動中に端末の言語を変えても再起動するまで反映されない
  • pub.dev から取得した example は、実行前に dart run build_runner build が必要(README と import 行のコメントに記載)

LibraryLibrarian and others added 14 commits September 25, 2026 11:31
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@LibraryLibrarian
LibraryLibrarian merged commit 7d2b29f into develop Sep 25, 2026
10 checks passed
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