特段テクい話ではないが最近話す機会があったのでこちらでもメモ。 まず、以下のように対応している言語のパターンを表現した型を全画面共通で使える型として用意しておく。 type Lang = Ja | En あとは各ページごとに画面で表示するラベルのインターフェイスとなるレコード型を用意しておき、言語別に出し分ける関数を作る。 これをview関数の中で呼び出せばよい。 非常にシンプル。 type alias Phrases = { title : String , cancel : String , submit : String } toPhrases : Lang -> Phrases toPhrases lang = case lang of Ja -> { title = "タイトル" , cancel = "キャンセル" , submit = "提出" } En -> { title