月別アーカイブ: 2009年1月

Redmine 0.7.3から0.8.0にアップグレードする

UbuntuでPassengerを使って動かしていたRedmineをアップグレードしてみた。手順はRedmine.JPにあるダウンロードしたリリース版のアップグレードにしたがう。上書きではなく新しいディレクトリに展開するなんて珍しいと思ったが、Passengerを使っているとRailsディレクトリ下のpublicディレクトリへのシンボリックリンクを書き換えればいいだけなので、もとのディレクトリも保持しておける点で好ましい。

アップグレード後スタイルシートが適用されないので腹八分目。をみて対処した。public/.htaccessの

Options +FollowSymLinks +ExecCGI

をコメントアウトしてmod_rewriteを有効にする。

$ sudo a2enmod rewrite

Changelogは英語でよくわからないんで実際動かしてみた。うれしいところとしては

  • カレンダー・ガントチャートで絞り込みできるようになった

チケットがありすぎるとガントチャートが長大になるので、絞り込めるようになったのはありがたい。さらにいうと

  • カテゴリごとにソートされる(ソート順が選べる)
  • チャートに週でなく日付が表示される
  • 土曜日は青、日曜日は赤で表示される。

くらいにできて、そのままPDF出力までできちゃえばな〜

追記 CentOS5.2ではスタイルシートの対処は不要だった。

PhusionからDebian用Rubyパッケージがでた

すべてのRailsユーザがお世話になっているといっても過言ではないだろう、Phusion Passengerを提供しているPhusionからDebian用のRubyパッケージが出た

apt-get install rails

ができちゃうわけだ。
Debian的には独自のパッケージ管理システムであるRubygemsに批判的だったのでそこをついた形だ。パブリックベータのうちは無料だが、正式版では有料ですでに価格も出ている。最低価格は144USD/年、かなり強気だ。

しかしDebianといえば「フリーソフトウェア」を貫いているディストリビューション。Ubuntuもエンタープライズより個人ユースのほうが多いのではないか。なんとも皮肉な話だ。

Rails2.2.2 でi18n

config/environment.rbで

# The internationalization framework can be changed to have another default locale (standard is :en) or more load paths.
# All files from config/locales/*.rb,yml are added automatically.
# config.i18n.load_path < < Dir&#91;File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')&#93;
# config.i18n.default_locale = :de
&#91;/sourcecode&#93;
がある。コード部分をコメントアウトして、load_pathに追加する「&lt;&lt;」を「+=」に修正(2.2.2のバグ)する。今回はロケールをjaにするので、:deを:jaとする。

翻訳ファイルの置き場所として、config/localesディレクトリを作成する。

validationなどはすでにrails-i18nに用意されているので、ダウンロードしてlocales以下に置く。日本語の場合はja.ymlをダウンロードする。ja.yml中activerecordが2つあって1つめが無効になってしまったので、ひとつにまとめておく。具体的には
&#91;sourcecode lang="ruby"&#93;
  activerecord:
    errors:
      template:
        header:
          one: "{{model}}にエラーが発生しました。"
          other: "{{model}}に{{count}}つのエラーが発生しました。"
        body: "次の項目を確認してください。"

  activerecord:
    errors:
      messages:
&#91;/sourcecode&#93;
を
&#91;sourcecode lang="ruby"&#93;
  activerecord:
    errors:
      template:
        header:
          one: "{{model}}にエラーが発生しました。"
          other: "{{model}}に{{count}}つのエラーが発生しました。"
        body: "次の項目を確認してください。"
      messages:
&#91;/sourcecode&#93;
と修正する。

view、controllerで利用するには
&#91;sourcecode lang="ruby"&#93;
<td>< %= l(survey.started_at) %>
<td>< %= l(survey.ended_at) %></td>
<td>< %= link_to t('Show'), survey_questions_path(survey) %></td>

ここでl,tメソッドがi18nしている。lはlocalizeのaliasで、localeに応じた日付フォーマットでstrftimeする。tはtranslateのaliasで、翻訳ファイルにあるものを返す。上記ではShowがキーになるので、ファイルに追加する必要がある。

validationで表示されるテーブル、カラム名を翻訳することもできる。
テーブル名「Todos」、カラム名「title」の場合、

ja:
  activerecord:
    models:
      todo: "Todo"
    attributes:
      todo:
        title: "タイトル"

とする。テーブル名は複数形だが、ファイル中では(クラス名なので)シングルにする必要がある。

翻訳ファイル中で言語をキーにしているので、ファイルはひとつでもよいし、たくさんでもよい。フレームワークで利用するファイルとアプリケーション固有のファイルを言語ごとにわければメンテナンス性に優れているだろう。

日本郵便の無料サービスで年賀状を作成

昨年も使った日本郵便の郵便年賀.jpのサービス。昨年は裏面印刷用テンプレートしかなかったのに今年は年賀状デザインキットという作成サービスまで配っていた。Macで使えるのかよ、と思ったらAdobe AIRなので安心。というか、まともに使うはじめてのAIRソフト。

AIRだからか、文面作成で文字ごとにフォントを選択できないなど細かい店では劣る。また、AIRなのかネットワーク接続しまくりなのか、かなり重いときがある。とはいえ無料で絵柄も多いし、宛名面も作成できるので十分使えた。

ちなみに届いてしまった……元日から考える年賀状を返す理由とお助けサービスでも紹介されています。