PluginNameをL10Nしてはならぬ

Movable Type のプラグインを作成する場合に、プラグインの管理画面で表示されることを見越して、L10Nに対応した形でプラグインの登録をする場合も多いと思います。

@MT::Plugin::HogeManager::ISA = qw(MT::Plugin);
my $plugin = new MT::Plugin::HogeManager({
    name        => '<MT_TRANS phrase=\'HogeManager\'>',
    author_name => '<MT_TRANS phrase=\'aklaswad\'>',
    l10n_class  => 'HogeManager::L10N',
    system_config_template => 'config.tmpl',
    settings    => new MT::PluginSettings([
        ['moge'],
    ]),
});
MT->add_plugin($plugin);

そして、このプラグインの設定をMT::PluginSettingsを利用してデータベースに保存するとアッー!

mysql> select * from mt_plugindata\G
*************************** 1. row ***************************
    plugindata_id: 1
  plugindata_data: SERG
   plugindata_key: configuration
plugindata_plugin: <MT_TRANS phrase='HogeManager'>
1 row in set (0.00 sec)

ということで、どの程度実害があるかは分かりませんがnameはL10Nしないほうが良いようです。