2016年 8月 25

Mojolicious::Plugin::LocaleTextDomainOO – I18N(GNU getext) for Mojolicious. – metacpan.org

きっかけ

Mojolicousで国際化するプラグインにはMojolicous::Plugin::I18Nというものがある。これは良く出来ていて、URLやドメイン名での振り分けが出来たりする。

国際化の部分はLocale::Maketextを使う。Locale::Maketext::Lexiconも使えばpoファイルなどもつかえる。

普通に使う分なら問題ないのだけど、GNU gettextのmsgctxttext domainのようなことは出来ない。

CPANをいろいろ漁ってみて、gettextコンバーチブルなモジュールでLocale::TextDomain::OOってのが自分の要件に合いそうなのでこちらをMojoliciousで使えるようにしてみた。

手順

Perl Moduleの作成にはMinillaを使った。MojoliciousプラグインをMinillaで開発する手順は別エントリーに書いた。

Minillaを使ってMojoliciousプラグインを開発する

PAUSEアカウントを取得

注意点は各エントリー等に書いてある通り。一番悩むのはA short description of why you would like a PAUSE ID:というPAUSEの申請理由でした。

長くかかる場合もあるみたいだけど、自分の場合はその日のうちに返信来ていました。

Minilla release

MinillaでCPANにアップロードする方法はCPAN に姉を公開した話とかを参考に。

モジュール開発で一番大変なのはドキュメントの作成。恐らく通じないであろう英語で書かなくてはならないのツラい。ま、コード載せておけば半分くらいつたわる、はず。

あと、cpanfile.snapshotの扱いをどうすればよいかが分からない。他のモジュール見て回ると一緒にパッケージングされていないので.gitignoreに書いておいたけど、この方法で良いか不明。

失敗談

Mojolicous::Plugin::I18N の機能はそのまま使いたかったのでパッケージに含めてアップロードしたらネームスペースの権限に引っかかってしまった。おれおれモジュールの場合には問題ない事(?)だったので注意したい。

おそらくはそれさえも平凡な日々: CPANで意図しない名前空間の取得を防ぐために

懸念点

Locale::TextDomain::OOは、Mooベースだし、結構依存が多い。Cartonでパッケージ管理しているなら特に問題ないのかな。

雑感

  • とにかくモジュール開発にはMinilla(やDist::Milla)が大変便利。
  • CPANに公開するとなるとそれなりにテストやドキュメントを整備しなくてはいけないので大変な反面、とても勉強になる。
  • いろいろ試行錯誤したけど、それも勉強になる。

と、どれをとっても勉強になるので是非挑戦して頂きたい。

More from my site

  • CPANをもっと便利に出来るコマンド cpanm – perlモジュール App::cpanminusCPANをもっと便利に出来るコマンド cpanm – perlモジュール App::cpanminus App::cpanminusって? CPANをもっと簡単に使える様にするperlモジュール。 参照: http://yellowstore.blogspot.com/2010/04/perlperlercpanminus.html インストール # cpan App::cpanminus または、 cpan> install […]
  • Mojolicious純正のフォームバリデーション & フィルターMojolicious純正のフォームバリデーション & フィルター Mojolicious::Validator::Validation - Perform validations - metacpan.org Mojolicious純正のフォームバリデーションを使う上で気を付ける点を書き留めておく。Mojolicious::Plugin::TagHelpersとも相性良いし(当たり前)、活用すべき。 my $validation = […]
  • mojoliciousをNginxの後ろで動かす時にHTTPSを検知するにはmojoliciousをNginxの後ろで動かす時にHTTPSを検知するには MojoliciousでHTTP(S)の振り分けをリバースプロキシのバックエンドでも出来るようにしてみる が、さいきんのバーションでは変更があったらしくmojoliciousをばーじょんあっぷしたらうごかない。 こちらのGistが参考になる。 「MojoliciousでHTTP(S)の振り分けをリバースプロキシのバックエンドでも出来るようにしてみる」の例(Apache + […]
  • macでcpanシェルやscraperシェルのカーソル移動とか履歴を有効にするmacでcpanシェルやscraperシェルのカーソル移動とか履歴を有効にする Bundle::CPAN をインストールすれば良いらしいけど、makeが必要だったりするので注意。 makeを使うにはXcodeをインストールする必要があります。 makeへのシンボリックリンク作成 sudo ln -s /Developer/usr/bin/make /usr/bin/make Bundle::CPAN […]
  • Minillaを使ってMojoliciousプラグインを開発するMinillaを使ってMojoliciousプラグインを開発する 1. Mojoliciousプラグインの雛形作成 $ mojo generate plugin MyPlugin カレントディレクトリに Mojolicious-Plugin-MyPlugin というディレクトリ名で雛形作成される。 2. ドキュメントにAuthor情報を追記する。 $ cd ./Mojolicious-Plugin-MyPlugin $ vi […]
  • Mojoliciousでactionの前後に実行される独自のHookを作る。before_action、after_action編Mojoliciousでactionの前後に実行される独自のHookを作る。before_action、after_action編 PerlのWebApplicationFrameworkであるMojoliciousでは様々なフックが用意されているのだけれど、actionの前後だけに実行したい場合は独自にフックポイントを追加しないといけない。 実装方法その1 一番単純な実装方法はaround_actionフックを使うのが良さそう。actionは$lastフラグが真の時に実行されるので前後に独自のフック […]

Filed under: perl,プログラミング

Trackback Uri



コメントする