ずっと君のターン

2007-11-09 くもり

pseudo_gettext.rb

| 02:49 |  pseudo_gettext.rbを含むブックマーク

          ,;r'"´;;;;;;;;;;;;;;;;;;;;;;;;;;`ヽ、
         ,r'";;;;:::::;彡-=―-=:、;;;;;;ヽ、
        /;;ィ''"´  _,,,,....ニ、 ,.,_ `ヾ;;;;〉
         `i!:: ,rニ彡三=、' ゙''ニ≧=、!´  屋上へ行こうぜ・・・・・・
        r'ニヽ,   ( ・ソ,; (、・')  i'
         ll' '゙ ,;:'''"´~~,f_,,j  ヾ~`''ヾ.  久しぶりに・・・・・・
        ヽ) , :    ''" `ー''^ヘ   i!
        ll`7´    _,r''二ニヽ.     l  キレちまったよ・・・・・・
        !:::     ^''"''ー-=゙ゝ    リ
        l;:::      ヾ゙゙`^''フ    /
        人、      `゙’゙::.   イ

あまりにわけがわからないのでキレて pseudo_gettext.rb 作った。

poファイルを見て _(str) を変換してくれるだけ。

余計なことは一切しない。


使い方はこのファイルを RAILS_ROOT/lib に置いて environment.rb を

#require 'gettext/rails'
require 'pseudo_gettext'

こんな感じに修正するだけ。


一応いつでもgettextを適用できるつもりで多言語対応してるふりするけど、どうせ海外の人なんて見に来ないし、実際に使うとなるとなんかいろいろ面倒くさいって言うか、ぶっちゃけうごかねぇよ、って人にオススメ。


といっても、_メソッドを適当に解釈する以外ホントに何もしないので過度な期待はしちゃだめだ。

アンカー名指定のリンク

| 19:54 |  アンカー名指定のリンクを含むブックマーク

(少なくともDoCoMoの)携帯だとname属性は使えなくて、id属性使わないと駄目なんすね。

<a href="#anchor">anchor link</a>
<a name="anchor" />

↑これは駄目なので

<a href="#anchor">anchor link</a>
<a id="anchor" />

↑こうする

ruby-gettextってActiveRecord使ってないRailsアプリじゃ使えない?

| 12:50 |  ruby-gettextってActiveRecord使ってないRailsアプリじゃ使えない?を含むブックマーク

いやActiveRecord使わないRailsアプリって存在がレアなのは分かるけど、gettextにAR必須ってのも普通に考えておかしな話だよね・・・。

もしかしてどっかでなんか設定すれば通る?

#config/environment.rb
config.frameworks -=  [:active_record]

こうしても駄目だった。

Railsのconfigは見てないか・・・。

#config/environment.rb
ar = ActiveRecord::Base
ActiveRecord::Base = false
require 'gettext'
ActiveRecord::Base = ar

は、なんか挙動が意味不明になった。

うん、まぁ、やってみたかっただけ。

#config/environment.rb
require 'gettext'
class ActiveRecord::Base; untranslate_all end

駄目。

これはいけると思ったんだけどなー。

#config/environment.rb
require 'gettext/rails'
module Locale::SystemCGI
  def system_with_default_lang
    @params['lang'] = {} unless @params['lang']
    system_without_default_lang
  end
  alias_method_chain :system, :default_lang
end

だめ。

方法はなんであれ無理やりエラーを回避したら、アクセスした時に空のファイルがダウンロードされるようになるみたい。

てことは根本原因は他にあるのか・・・。

ruby-gettext

| 10:42 |  ruby-gettextを含むブックマーク

"hello #{_('gettext')} world"

↑これは認識してくれないみたいなので

"hello " + _('gettext') + " world"

↑こうしないと駄目。


文字列の一部って思われてるのかな?