ethers.jsのエラーメッセージを多言語化する「ethers-i18n」を作った
はじめに ethers.jsを使ったdApp開発で、こんな経験はありませんか? Error: insufficient funds for intrinsic transaction cost エラーの意味は分かるけれど、このメッセージをそのままエンドユーザーに見せるわけにはいきません。特に日本語圏のユーザー向けサービスでは、エラーメッセージの日本語化は避けて通れない課題です。 そこで、ethers.jsのエラーメッセージを多言語化するライブラリ ethers-i18n を作りました。 https://github.com/nakamura196/ethers-i18n ethers-i18nとは ethers-i18nは、ethers.js v6のエラーコードに対応した翻訳メッセージを提供するi18nプラグインです。 主な特徴: シンプルなAPI — setLocale("ja") と t("ERROR_CODE") だけで使える 非破壊的 — 既存のethers.jsコードに影響を与えない 型安全 — TypeScriptの型定義を完備 4言語対応 — 英語・日本語・韓国語・中国語をサポート 軽量 — 依存関係はethers.jsのみ(peerDependency) インストール npm install @nakamura196/ethers-i18n ethers.js v6がpeerDependencyとして必要です。 基本的な使い方 ロケールの設定と翻訳 import { setLocale, t, getLocale, getSupportedLocales } from "@nakamura196/ethers-i18n"; // サポートされているロケール一覧 console.log(getSupportedLocales()); // ["en", "ja", "ko", "zh"] // 日本語に設定 setLocale("ja"); console.log(getLocale()); // "ja" // エラーコードを翻訳 console.log(t("INVALID_ARGUMENT")); // "無効な引数です" console.log(t("INSUFFICIENT_FUNDS")); // "トランザクションに必要な残高が不足しています" console.log(t("NETWORK_ERROR")); // "ネットワークエラーが発生しました" エラーオブジェクトの翻訳 ethers.jsが投げるエラーオブジェクトをそのまま翻訳できます。 ...

