2004-12-22
@ [work] 打ち合わせdone
DBの項目を説明してきました。「将来的にはあった方が便利だから、という理由でカラムは用意しなくてもいい」と言われた...うぅ、すいません。
まーというわけで年末から前倒しでコーディングになりそうです。なんか正月もプログラミングしてる自分が見える...
@ [java] Commons I18nを使ってみる
ちょっと気になる存在だったので試してみました。ResourceBundleの形式とXML形式のメッセージカタログが使用出来るようです。まだバイナリはリリースされていないので、CVSからソースを取得 & ビルドして、commons-i18n-0.3.jar, commons-xmlio-0.1pre.jarをクラスパスに追加しておきます。あとは下記の手順で。
- sample.commons.i18nパッケージ内にメッセージカタログを用意
-
messages_ja.properties(native2asciiで変換後)
hello.text=\u3053\u3093\u306b\u3061\u308f\u308f arg.text=\u5f15\u6570\u306e\u30c6\u30b9\u30c8({0})messages_en.propertieshello.text=Hello arg.text=A test of an argument({0})messages.xml<?xml version="1.0" encoding="UTF-8"?> <messages> <message id="hello_xml"> <locale language="en"> <entry key="text">Hello (in XML)</entry> </locale> <locale language="ja"> <entry key="text">こんにちわわ (in XML)</entry> </locale> </message> </messages> - サンプルソースを作成(sample/commons/i18n/I18NSample.java)
-
package sample.commons.i18n; import java.io.InputStream; import java.util.Locale; import org.apache.commons.i18n.LocalizedText; import org.apache.commons.i18n.ResourceBundleMessageProvider; import org.apache.commons.i18n.XMLMessageProvider; /** * Commons I18Nのサンプル。 */ public class I18NSample { public static void main(String[] args) { ResourceBundleMessageProvider.install("sample.commons.i18n.messages"); LocalizedText text = new LocalizedText("hello"); System.out.println("日本語: " + text.getText(Locale.JAPAN)); System.out.println("英語 : " + text.getText(Locale.US)); text = new LocalizedText("arg", new Object[] { "引数" }); System.out.println("日本語: " + text.getText(Locale.JAPAN)); System.out.println("英語 : " + text.getText(Locale.US)); InputStream in = I18NSample.class.getResourceAsStream("messages.xml"); XMLMessageProvider.install("messages", in); text = new LocalizedText("hello_xml"); System.out.println("日本語: " + text.getText(Locale.JAPAN)); System.out.println("英語 : " + text.getText(Locale.US)); } } - 実行
-
日本語: こんにちわわ 英語 : Hello 日本語: 引数のテスト(引数) 英語 : A test of an argument(引数) 日本語: こんにちわわ (in XML) 英語 : Hello (in XML)
実はこんなライブラリを以前自作したんですが、これで用無しになりそうです。XMLに対応してないし...
2005-12-22
@ [cpan] CGI::Application
mixiのPerlコミュニティより。SledgeやCatalystが熱いですが、これは非常にシンプルで依存モジュールも少なく、Wikiとかライトウェイトなアプリケーションにも使えそうですね。
- Perlモジュール/CGI::Application - WalWikiの塚本さんのサイト。CGI::ApplicationのPOD日本語訳もあり
- CGI::Application を使う - Perl Tips
@ [life] 早起き
昨日は日付が変わった後に会社を出て寝たのも遅かったのですが、脳内でアドレナリンが出すぎてあまり眠れませんでした。というわけで1時間早く出社したら会社が開いていなかったというオチ。結局15分ロスしたので損をしたのか得をしたのかよくわかりません。。。
@ [emacs] cperl-modeでのインデント
__PACKAGE__->mk_accessors(qw(
hoge
fuga
hagu
));
のようにインデントしたいのになぜか↓のようにインデントされてしまう。。。なんでだろ?
__PACKAGE__->mk_accessors(qw(
hoge
fuga
hagu
));
ちなみにcperl-modeの設定はこんな感じです。誰かわかる人いたら教えてください(切実)。
(setq cperl-indent-level 4
cperl-continued-statement-offset 4
cperl-close-paren-offset -4
cperl-comment-column 40
cperl-highlight-variables-indiscriminately t
cperl-indent-parens-as-block t
cperl-label-offset -4
cperl-tab-always-indent t
cperl-font-lock t)