tarohida / tfa-message-ja
TFAモジュールのエラーメッセージを日本語に対応(時間表記の自動変換)
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:drupal-module
pkg:composer/tarohida/tfa-message-ja
Requires
- php: >=8.1
- drupal/core: ^10 || ^11
- drupal/tfa: ^1.0
README
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 経由(推奨)
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_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