Zenn
🐄

Flutter slangの方が使いやすい

2025/03/16に公開

はじめに

今まではローカライズのために intl パッケージを使っていたが、slang の方が使いやすいと感じた。
というのも、チーム開発や後継者、新しく参加するメンバーなど、さまざまな状況で使い勝手が良いと思う。

https://pub.dev/packages/slang

言語ファイルの書き方の違い

この部分が最も使い勝手が違った。jsonの方が書きやすい。
slangの方が、切り分けて管理できるので物凄く分かりやすい。
個人的に、Widgetや機能ごとに分けています。

intl

{
    "@@locale": "ja",
    "yes": "はい",
    "@yes": {
        "description": "説明文"
    },
    "no": "いいえ",
    "@no": {
        "description": "説明文"
    }
}

slang

{
    "common": {
        "yes": "はい",
        "no": "いいえ"
    },
    "record": {
        "save": "保存する"
    }
}

使い方

どちらも自動生成されたファイルをインポートして使用するが、slang の方が使いやすい。
intl の場合、BuildContext が必要になるため、構成上 context が不要な場面でも引数として渡さなければならず、面倒だった。
特に、単体テストを行う際にその不便さを強く感じた。

intl

L10n.of(context)!.yes

slang

t.common.yes

終わりに

気づけたと言うことで、全部slangに置き換えていきます。😇

必要だったパッケージ

https://pub.dev/packages/slang
https://pub.dev/packages/slang_build_runner
https://pub.dev/packages/build_runner

Discussion

ログインするとコメントできます