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

v1.0.0 2025-11-17 21:25 UTC

This package is auto-updated.

Last update: 2025-11-17 21:33:12 UTC


README

License Drupal

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)ロケールの場合のみ動作し、他の言語には影響しません

要件

インストール

Composer 経由(推奨)

composer require tarohida/tfa-message-ja

モジュールを有効化:

drush en tfa_message_ja -y
drush cr

手動インストール

  1. このリポジトリをダウンロード
  2. web/modules/contrib/tfa_message_ja または web/modules/custom/tfa_message_ja に配置
  3. モジュールを有効化:
drush en tfa_message_ja -y
drush cr

使い方

モジュールを有効化するだけで自動的に動作します。設定画面はありません。

動作確認方法

  1. TFA を有効化したユーザーでログイン
  2. 意図的に間違った認証コードを複数回入力
  3. 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     # フック実装

トラブルシューティング

メッセージが変換されない

  1. 日本語ロケールの確認

    drush config:get system.site langcode

    ja になっているか確認

  2. キャッシュクリア

    drush cr
  3. モジュールの有効化確認

    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 をご覧ください。

作者

リンク