Drupal の Two-Factor Authentication (TFA) モジュールのエラーメッセージを日本語に対応させるモジュールです。
TFA モジュールが表示するエラーメッセージに含まれる英語の時間表記(例: "5 min", "10 sec")を、日本語表記(例: "5分", "10秒")に自動変換します。
TFA モジュールのエラーメッセージでは、Drupal の formatInterval() 関数が返す時間表記が含まれます。日本語ロケールでも英語形式で出力されることがあり、日本語訳と組み合わせると不自然な表現になります。
変換前の例:
認証の失敗回数が上限に達しました。5 min以内に6回誤ったコードが入力されました。しばらくしてから再度お試しください。
変換後の例:
認証の失敗回数が上限に達しました。5分以内に6回誤ったコードが入力されました。しばらくしてから再度お試しください。
-
時間表記の自動日本語化: エラーメッセージ内の英語時間表記を日本語に変換
- "5 min" → "5分"
- "10 sec" → "10秒"
- "1 hour" → "1時間"
- "2 days" → "2日"
- その他: year(年), month(ヶ月), week(週間)にも対応
-
HTMLタグの適切なレンダリング: プレースホルダーなどのHTMLマークアップを正しく表示
-
日本語ロケール限定: 日本語(ja)ロケールの場合のみ動作し、他の言語には影響しません
- Drupal: 10.x または 11.x
- PHP: 8.1 以上
- 依存モジュール: TFA (Two-Factor Authentication)
composer require tarohida/tfa-message-jaモジュールを有効化:
drush en tfa_message_ja -y
drush cr- このリポジトリをダウンロード
web/modules/contrib/tfa_message_jaまたはweb/modules/custom/tfa_message_jaに配置- モジュールを有効化:
drush en tfa_message_ja -y
drush crモジュールを有効化するだけで自動的に動作します。設定画面はありません。
- TFA を有効化したユーザーでログイン
- 意図的に間違った認証コードを複数回入力
- Flood 制御によるロックアウトメッセージが日本語で表示されることを確認
- hook_form_alter():
tfa_entry_formにカスタムバリデーションハンドラーを追加 - 正規表現による変換: 時間表記パターン
(\d+)\s*(year|month|week|day|hour|min|sec)s?をマッチング - FormattableMarkup: 変換後のメッセージを
FormattableMarkupでラップし、HTMLタグを保持
| 英語 | 日本語 |
|---|---|
| year(s) | 年 |
| month(s) | ヶ月 |
| week(s) | 週間 |
| day(s) | 日 |
| hour(s) | 時間 |
| min | 分 |
| sec | 秒 |
tfa_message_ja/
├── composer.json # Composer パッケージ定義
├── LICENSE.txt # ライセンスファイル
├── README.md # このファイル
├── tfa_message_ja.info.yml # モジュール情報
└── tfa_message_ja.module # フック実装
-
日本語ロケールの確認
drush config:get system.site langcode
jaになっているか確認 -
キャッシュクリア
drush cr
-
モジュールの有効化確認
drush pm:list --filter=tfa_message_ja
このモジュールは TFA のエラーメッセージのみを対象とし、他のモジュールには影響しません。
tfa_custom モジュールと併用可能です:
- tfa_custom: ログイン後のリダイレクト制御、メール送信制御
- tfa_message_ja: エラーメッセージの日本語化
両方を有効化することで、より快適な日本語環境を実現できます。
composer require tarohida/tfa-custom
composer require tarohida/tfa-message-ja
drush en tfa_custom tfa_message_ja -y
drush crバグ報告や機能リクエストは GitHub Issues までお願いします。
プルリクエストも歓迎します!
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE.txt をご覧ください。
- tarohida - GitHub