最近 Node.js な Web アプリケーションの多言語対応について調べる機会があったので、自分なりの考えをまとめておく。 結論としては、特にライブラリを使わず、自前の実装で片付けてしまうことにした。 誰でも思いつきそうな至極単純な発想なのだけれど、調べた限りこういう情報が出てこなかったので、記事にすることで誰かのお役に立てれば幸い。 既存ライブラリに対する不満: 静的型付を実現できない1 TypeScript ユーザーにとっては、以下のようなものがコンパイル時ではなく、 実行時のエラーになるのは耐え難い。 message の key の typo message の引数の typo, 過不足, 型違い 異なる言語間で message の定義に一貫性がない ピンと来ない人向けに、それなりに人気のありそうな i18next という package の記法を例として書いておく。 [参考] i
![TypeScript を使ったシンプルで型安全な i18n 実装 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e2dd0443ecc5ed9f1da9075f3f72e79b407f73ce/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9VHlwZVNjcmlwdCUyMCVFMyU4MiU5MiVFNCVCRCVCRiVFMyU4MSVBMyVFMyU4MSU5RiVFMyU4MiVCNyVFMyU4MyVCMyVFMyU4MyU5NyVFMyU4MyVBQiVFMyU4MSVBNyVFNSU5RSU4QiVFNSVBRSU4OSVFNSU4NSVBOCVFMyU4MSVBQSUyMGkxOG4lMjAlRTUlQUUlOUYlRTglQTMlODUmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTQzOTJmMzJhNjg2MzIzNmE5YTc0ZmFlNDcwMGZjZDc4%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBraW1hbXVsYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Mzc0OTI2MGYyMzdiYWNlYjMyOWY2Yjg0MWQ3YzJmODk%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3De176d958f01bb6dae5e2a997cbe3874c)