Skip to content

tarohida/tfa-message-ja

Repository files navigation

TFA Message Japanese

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

作者

リンク

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published