PHPackages                             tarohida/tfa-message-ja - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. tarohida/tfa-message-ja

ActiveDrupal-module[Localization &amp; i18n](/categories/localization)

tarohida/tfa-message-ja
=======================

TFAモジュールのエラーメッセージを日本語に対応（時間表記の自動変換）

v1.0.0(5mo ago)05MITPHP &gt;=8.1

Since Nov 17Pushed 5mo agoCompare

[ Source](https://github.com/tarohida/tfa-message-ja)[ Packagist](https://packagist.org/packages/tarohida/tfa-message-ja)[ Docs](https://github.com/tarohida/tfa-message-ja)[ RSS](/packages/tarohida-tfa-message-ja/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

TFA Message Japanese
====================

[](#tfa-message-japanese)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE.txt)[![Drupal](https://camo.githubusercontent.com/3557da63b0992cb25b9e114bf60578bbf4a672fddc794131410d541d8a7742ca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f64727570616c2d313025323025374325323031312d626c75652e737667)](https://www.drupal.org)

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)](https://www.drupal.org/project/tfa)

インストール
------

[](#インストール)

### Composer 経由（推奨）

[](#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](https://github.com/tarohida/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](https://github.com/tarohida/tfa-message-ja/issues) までお願いします。

プルリクエストも歓迎します！

ライセンス
-----

[](#ライセンス)

このプロジェクトは MIT ライセンスの下で公開されています。詳細は [LICENSE.txt](LICENSE.txt) をご覧ください。

作者
--

[](#作者)

- **tarohida** - [GitHub](https://github.com/tarohida)

リンク
---

[](#リンク)

- [GitHub リポジトリ](https://github.com/tarohida/tfa-message-ja)
- [Issue トラッカー](https://github.com/tarohida/tfa-message-ja/issues)
- [TFA モジュール (Drupal.org)](https://www.drupal.org/project/tfa)
- [関連モジュール: tfa\_custom](https://github.com/tarohida/tfa-custom)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance70

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

173d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7699412498f9a0b5142cc26a8f79bb838b08de2a83227bca74c5dccc6e1ea961?d=identicon)[tarohida](/maintainers/tarohida)

---

Top Contributors

[![tarohida](https://avatars.githubusercontent.com/u/25278268?v=4)](https://github.com/tarohida "tarohida (1 commits)")

---

Tags

localizationi18ndrupalTwo Factor Authenticationjapanesetfa

### Embed Badge

![Health badge](/badges/tarohida-tfa-message-ja/health.svg)

```
[![Health](https://phpackages.com/badges/tarohida-tfa-message-ja/health.svg)](https://phpackages.com/packages/tarohida-tfa-message-ja)
```

###  Alternatives

[symfony/intl

Provides access to the localization data of the ICU library

2.6k199.8M1.1k](/packages/symfony-intl)[mariuzzo/laravel-js-localization

Laravel Localization in JavaScript

6073.9M3](/packages/mariuzzo-laravel-js-localization)[gettext/languages

gettext languages with plural rules

7530.3M10](/packages/gettext-languages)[aplus/language

Aplus Framework Language Library

2351.7M15](/packages/aplus-language)[punic/punic

PHP-Unicode CLDR

1542.9M29](/packages/punic-punic)[aura/intl

The Aura Intl package provides internationalization tools, specifically message translation.

898.3M4](/packages/aura-intl)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
