続・Steam Deckで日本語ロケール(非root)

前回の処理の後に以下を追加して、

mkdir -p ${MYLOCALE}/usr/share/
cp -r ${MYI18N} ${MYLOCALE}/usr/share/

起動オプションを以下に変更

I18NPATH=/home/deck/.locale/usr/share/i18n LOCPATH=/home/deck/.locale/usr/lib/locale LANG=ja_JP.UTF-8 %command%

で日本語出ました!

Steamクライアントからexeを起動すると、pressure-vesselという軽量版Flatpakを通して実行されます。
pressure-vesselは内部でpressure-vessel-locale-genを呼び出し、自前でロケールDBを生成します。
ここで生成したロケールDBのパスが環境変数LOCPATHに設定されます。
一見すると、上書きされてしまうLOCPATHを自分で指定する必要はなさそうですが、
pressure-vessel-locale-genが有効なロケールをチェックする際に呼び出すtry-setlocaleコマンドが成功する必要があるのです。
環境変数I18NPATHは、pressure-vessel-locale-genがロケールDBを生成する際にデフォルトの/usr/share/i18nの代わりに日本語ロケールを含むディレクトリを指定する必要があります。
これでpressure-vessel-locale-genに日本語ロケールを生成させることができます。
オプションが長いのでもっと短いディレクトリに置くか、シンボリックリンク作った方がよさげです。