「モジュールインスタンス毎に異なる言語定数を割り当てたい」
良くある要望です。そして、D2までは不可能でした。
でもD3なら大丈夫です。
XOOPS_ROOT_PATH/modules/(dirname) の下は、基本的にユーザが自由にいじってよい領域なのです。
例えば、modinfo.phpの言語定数をオーバーライドしたければ、XOOPS_TRUST_PATH/modules/(trustdirname)/language/(lang)/modinfo.php を XOOPS_ROOT_PATH/modules/(dirname)/language/(lang)/modinfo.php にコピーして編集すれば良いのです。
これだけで簡単にオーバーライドできています。それもモジュールインスタンス毎に反映されます。(モジュールの多態性)
admin.php や main.php の場合は言語ファイルの構造がやや異なりますが、むしろより簡単だと言えるでしょう。
言語定数の定数名が、modinfoやblocks_eachにおいては、各モジュールインスタンスのdirnameベースであるのに対して、main,admin,blocks_commonについては、trustdirname(wrapsやd3forumなど)ベースであることに注意が必要です。