gettext 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. data/ChangeLog +120 -0
  2. data/NEWS +16 -0
  3. data/README +27 -19
  4. data/data/locale/ca/LC_MESSAGES/rails.mo +0 -0
  5. data/data/locale/ca/LC_MESSAGES/rgettext.mo +0 -0
  6. data/data/locale/cs/LC_MESSAGES/rails.mo +0 -0
  7. data/data/locale/cs/LC_MESSAGES/rgettext.mo +0 -0
  8. data/data/locale/de/LC_MESSAGES/rails.mo +0 -0
  9. data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
  10. data/data/locale/el/LC_MESSAGES/rails.mo +0 -0
  11. data/data/locale/el/LC_MESSAGES/rgettext.mo +0 -0
  12. data/data/locale/eo/LC_MESSAGES/rails.mo +0 -0
  13. data/data/locale/eo/LC_MESSAGES/rgettext.mo +0 -0
  14. data/data/locale/es/LC_MESSAGES/rails.mo +0 -0
  15. data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
  16. data/data/locale/et/LC_MESSAGES/rails.mo +0 -0
  17. data/data/locale/fr/LC_MESSAGES/rails.mo +0 -0
  18. data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
  19. data/data/locale/it/LC_MESSAGES/rails.mo +0 -0
  20. data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
  21. data/data/locale/ja/LC_MESSAGES/rails.mo +0 -0
  22. data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
  23. data/data/locale/ko/LC_MESSAGES/rails.mo +0 -0
  24. data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
  25. data/data/locale/nl/LC_MESSAGES/rails.mo +0 -0
  26. data/data/locale/nl/LC_MESSAGES/rgettext.mo +0 -0
  27. data/data/locale/pt_BR/LC_MESSAGES/rails.mo +0 -0
  28. data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
  29. data/data/locale/ru/LC_MESSAGES/rails.mo +0 -0
  30. data/data/locale/ru/LC_MESSAGES/rgettext.mo +0 -0
  31. data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
  32. data/data/locale/zh/LC_MESSAGES/rails.mo +0 -0
  33. data/data/locale/zh/LC_MESSAGES/rgettext.mo +0 -0
  34. data/data/locale/zh_TW/LC_MESSAGES/rails.mo +0 -0
  35. data/data/locale/zh_TW/LC_MESSAGES/rgettext.mo +0 -0
  36. data/lib/gettext.rb +13 -10
  37. data/lib/gettext/active_record.rb +130 -113
  38. data/lib/gettext/erb.rb +2 -2
  39. data/lib/gettext/locale.rb +11 -5
  40. data/lib/gettext/locale_cgi.rb +3 -3
  41. data/lib/gettext/locale_posix.rb +2 -2
  42. data/lib/gettext/locale_win32.rb +2 -1
  43. data/lib/gettext/parser/active_record.rb +24 -14
  44. data/lib/gettext/parser/ruby.rb +4 -63
  45. data/lib/gettext/poparser.rb +3 -3
  46. data/lib/gettext/rails.rb +23 -20
  47. data/lib/gettext/rgettext.rb +6 -6
  48. data/lib/gettext/utils.rb +12 -6
  49. data/lib/gettext/version.rb +2 -2
  50. data/po/ca/rails.po +121 -0
  51. data/po/ca/rgettext.po +130 -0
  52. data/po/cs/rails.po +30 -26
  53. data/po/cs/rgettext.po +44 -36
  54. data/po/de/rails.po +28 -24
  55. data/po/de/rgettext.po +43 -35
  56. data/po/el/rails.po +38 -34
  57. data/po/el/rgettext.po +54 -46
  58. data/po/eo/rails.po +121 -0
  59. data/po/eo/rgettext.po +127 -0
  60. data/po/es/rails.po +28 -24
  61. data/po/es/rgettext.po +45 -37
  62. data/po/et/rails.po +28 -24
  63. data/po/fr/rails.po +39 -33
  64. data/po/fr/rgettext.po +43 -35
  65. data/po/it/rails.po +28 -24
  66. data/po/it/rgettext.po +43 -35
  67. data/po/ja/rails.po +30 -26
  68. data/po/ja/rgettext.po +44 -36
  69. data/po/ko/rails.po +36 -32
  70. data/po/ko/rgettext.po +43 -35
  71. data/po/nl/rails.po +32 -28
  72. data/po/nl/rgettext.po +46 -38
  73. data/po/pt_BR/rails.po +36 -31
  74. data/po/pt_BR/rgettext.po +45 -37
  75. data/po/rails.pot +28 -24
  76. data/po/rgettext.pot +39 -31
  77. data/po/ru/rails.po +36 -30
  78. data/po/ru/rgettext.po +50 -41
  79. data/po/sv/rgettext.po +40 -32
  80. data/po/zh/rails.po +29 -24
  81. data/po/zh/rgettext.po +46 -36
  82. data/po/zh_TW/rails.po +29 -24
  83. data/po/zh_TW/rgettext.po +45 -36
  84. data/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo +0 -0
  85. data/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo +0 -0
  86. data/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo +0 -0
  87. data/samples/cgi/locale/ca/LC_MESSAGES/main.mo +0 -0
  88. data/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo +0 -0
  89. data/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo +0 -0
  90. data/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo +0 -0
  91. data/samples/cgi/locale/eo/LC_MESSAGES/main.mo +0 -0
  92. data/samples/cgi/po/ca/helloerb1.po +59 -0
  93. data/samples/cgi/po/ca/helloerb2.po +51 -0
  94. data/samples/cgi/po/ca/hellolib.po +23 -0
  95. data/samples/cgi/po/ca/main.po +83 -0
  96. data/samples/cgi/po/eo/helloerb1.po +60 -0
  97. data/samples/cgi/po/eo/helloerb2.po +52 -0
  98. data/samples/cgi/po/eo/hellolib.po +24 -0
  99. data/samples/cgi/po/eo/main.po +84 -0
  100. data/samples/locale/ca/LC_MESSAGES/hello.mo +0 -0
  101. data/samples/locale/ca/LC_MESSAGES/hello2.mo +0 -0
  102. data/samples/locale/ca/LC_MESSAGES/hello_noop.mo +0 -0
  103. data/samples/locale/ca/LC_MESSAGES/hello_plural.mo +0 -0
  104. data/samples/locale/ca/LC_MESSAGES/helloglade2.mo +0 -0
  105. data/samples/locale/ca/LC_MESSAGES/hellogtk.mo +0 -0
  106. data/samples/locale/ca/LC_MESSAGES/hellotk.mo +0 -0
  107. data/samples/locale/eo/LC_MESSAGES/hello.mo +0 -0
  108. data/samples/locale/eo/LC_MESSAGES/hello2.mo +0 -0
  109. data/samples/locale/eo/LC_MESSAGES/hello_noop.mo +0 -0
  110. data/samples/locale/eo/LC_MESSAGES/hello_plural.mo +0 -0
  111. data/samples/locale/eo/LC_MESSAGES/helloglade2.mo +0 -0
  112. data/samples/locale/eo/LC_MESSAGES/hellogtk.mo +0 -0
  113. data/samples/locale/eo/LC_MESSAGES/hellotk.mo +0 -0
  114. data/samples/po/ca/hello.po +23 -0
  115. data/samples/po/ca/hello2.po +31 -0
  116. data/samples/po/ca/hello_noop.po +27 -0
  117. data/samples/po/ca/hello_plural.po +25 -0
  118. data/samples/po/ca/helloglade2.po +31 -0
  119. data/samples/po/ca/hellogtk.po +23 -0
  120. data/samples/po/ca/hellotk.po +23 -0
  121. data/samples/po/eo/hello.po +23 -0
  122. data/samples/po/eo/hello2.po +31 -0
  123. data/samples/po/eo/hello_noop.po +27 -0
  124. data/samples/po/eo/hello_plural.po +26 -0
  125. data/samples/po/eo/helloglade2.po +32 -0
  126. data/samples/po/eo/hellogtk.po +23 -0
  127. data/samples/po/eo/hellotk.po +24 -0
  128. data/samples/rails/app/views/blog/list.rhtml +0 -1
  129. data/samples/rails/config/environment.rb +2 -0
  130. data/samples/rails/db/schema.rb +0 -79
  131. data/samples/rails/lib/tasks/gettext.rake +2 -1
  132. data/samples/rails/locale/ca/LC_MESSAGES/blog.mo +0 -0
  133. data/samples/rails/locale/cs/LC_MESSAGES/blog.mo +0 -0
  134. data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
  135. data/samples/rails/locale/el/LC_MESSAGES/blog.mo +0 -0
  136. data/samples/rails/locale/en/LC_MESSAGES/blog.mo +0 -0
  137. data/samples/rails/locale/eo/LC_MESSAGES/blog.mo +0 -0
  138. data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
  139. data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
  140. data/samples/rails/locale/it/LC_MESSAGES/blog.mo +0 -0
  141. data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
  142. data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
  143. data/samples/rails/locale/nl/LC_MESSAGES/blog.mo +0 -0
  144. data/samples/rails/locale/pt_BR/LC_MESSAGES/blog.mo +0 -0
  145. data/samples/rails/locale/ru/LC_MESSAGES/blog.mo +0 -0
  146. data/samples/rails/locale/zh/LC_MESSAGES/blog.mo +0 -0
  147. data/samples/rails/locale/zh_TW/LC_MESSAGES/blog.mo +0 -0
  148. data/samples/rails/po/blog.pot +106 -106
  149. data/samples/rails/po/ca/blog.po +105 -0
  150. data/samples/rails/po/cs/blog.po +107 -110
  151. data/samples/rails/po/de/blog.po +107 -107
  152. data/samples/rails/po/el/blog.po +105 -105
  153. data/samples/rails/po/en/blog.po +107 -107
  154. data/samples/rails/po/eo/blog.po +106 -0
  155. data/samples/rails/po/es/blog.po +105 -105
  156. data/samples/rails/po/fr/blog.po +105 -105
  157. data/samples/rails/po/it/blog.po +105 -105
  158. data/samples/rails/po/ja/blog.po +105 -105
  159. data/samples/rails/po/ko/blog.po +105 -105
  160. data/samples/rails/po/nl/blog.po +105 -105
  161. data/samples/rails/po/pt_BR/blog.po +105 -105
  162. data/samples/rails/po/ru/blog.po +105 -105
  163. data/samples/rails/po/zh/blog.po +105 -105
  164. data/samples/rails/po/zh_TW/blog.po +107 -107
  165. data/samples/rails/vendor/plugins/gettext/locale/ca/LC_MESSAGES/gettext_plugin.mo +0 -0
  166. data/samples/rails/vendor/plugins/gettext/po/ca/gettext_plugin.po +27 -0
  167. data/test/README +6 -0
  168. data/test/Rakefile +1 -1
  169. data/test/fixtures/book.rb +3 -0
  170. data/test/fixtures/user.rb +3 -0
  171. data/test/gettext_test_active_record.rb +347 -67
  172. data/test/gettext_test_cgi.rb +27 -2
  173. data/test/gettext_test_parser.rb +102 -4
  174. data/test/gettext_test_rails.rb +6 -1
  175. data/test/locale/ja/LC_MESSAGES/active_record.mo +0 -0
  176. data/test/po/ja/active_record.po +17 -17
  177. data/test/test.sh +1 -0
  178. data/test/test_rubyparser.rb +6 -4
  179. metadata +889 -795
  180. data/pkg/ruby-gettext-package-1.8.0/ext/gettext/extconf.rb +0 -20
@@ -6,7 +6,7 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: erb.rb,v 1.3 2006/06/04 14:43:37 mutoh Exp $
9
+ $Id: erb.rb,v 1.4 2006/12/06 16:39:58 mutoh Exp $
10
10
  =end
11
11
 
12
12
  require 'erb'
@@ -34,7 +34,7 @@ module GetText
34
34
  # This module is an example for template engines such as ERB.
35
35
  # You can implement another implementation easily to read gettext/erb.rb.
36
36
  module ErbContainer
37
- include Container
37
+ include GetText
38
38
 
39
39
  # Evaluates ERB source(String) in the instance and returns the result HTML.
40
40
  #
@@ -6,7 +6,7 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale.rb,v 1.12 2006/08/17 17:24:18 mutoh Exp $
9
+ $Id: locale.rb,v 1.13 2006/12/03 16:26:59 mutoh Exp $
10
10
  =end
11
11
 
12
12
  require 'gettext/locale_object'
@@ -56,14 +56,20 @@ module Locale
56
56
  @@current = nil
57
57
 
58
58
  module_function
59
- # Sets the default locale (Locale::Object).
59
+ # Sets the default locale (Locale::Object or String(such as ja_JP.eucjP)).
60
60
  #
61
61
  # * locale: the default locale
62
62
  # * Returns: self.
63
63
  def set_default(locale)
64
- @@default = locale
65
- if @@default
66
- @@default.charset ||= @@locale_system_module.get_charset(locale)
64
+ if locale
65
+ if locale.kind_of? Locale::Object
66
+ @@default = locale
67
+ else
68
+ @@default = Locale::Object.new(locale)
69
+ end
70
+ @@default.charset ||= @@locale_system_module.get_charset(@@default)
71
+ else
72
+ @@default = nil
67
73
  end
68
74
  self
69
75
  end
@@ -6,13 +6,13 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_cgi.rb,v 1.6 2006/09/10 15:08:32 mutoh Exp $
9
+ $Id: locale_cgi.rb,v 1.7 2006/12/14 16:35:57 mutoh Exp $
10
10
  =end
11
11
 
12
12
 
13
13
  module Locale
14
- # Locale::System module for Default OS (Unix)
15
- # This is low-level class. Application shouldn't use this directly.
14
+ # Locale::System module for CGI.
15
+ # This is a low-level class. Application shouldn't use this directly.
16
16
  module SystemCGI
17
17
  @@default_locale = Locale::Object.new("en", nil, "UTF-8")
18
18
  @@cgi = nil
@@ -6,13 +6,13 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_posix.rb,v 1.4 2006/06/11 15:36:20 mutoh Exp $
9
+ $Id: locale_posix.rb,v 1.5 2006/12/14 16:35:57 mutoh Exp $
10
10
  =end
11
11
 
12
12
 
13
13
  module Locale
14
14
  # Locale::SystemPosix module for Posix OS (Unix)
15
- # This is low-level class. Application shouldn't use this directly.
15
+ # This is a low-level class. Application shouldn't use this directly.
16
16
  module SystemPosix
17
17
  extend Locale::System
18
18
  module_function
@@ -6,13 +6,14 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_win32.rb,v 1.14 2006/06/11 15:36:20 mutoh Exp $
9
+ $Id: locale_win32.rb,v 1.15 2006/12/14 16:35:57 mutoh Exp $
10
10
  =end
11
11
 
12
12
  require 'gettext/locale_table_win32'
13
13
 
14
14
  module Locale
15
15
  # Locale::SystemWin32 module for win32.
16
+ # This is a low-level class. Application shouldn't use this directly.
16
17
  module SystemWin32
17
18
  extend Locale::System
18
19
 
@@ -7,7 +7,7 @@
7
7
  You may redistribute it and/or modify it under the same
8
8
  license terms as Ruby.
9
9
 
10
- $Id: active_record.rb,v 1.2 2006/08/28 23:54:53 mutoh Exp $
10
+ $Id: active_record.rb,v 1.5 2007/01/21 15:16:06 mutoh Exp $
11
11
  =end
12
12
 
13
13
  require 'gettext'
@@ -72,16 +72,17 @@ module GetText
72
72
  end
73
73
 
74
74
  def parse(file, targets = []) # :nodoc:
75
- old_constants = constants
75
+ GetText.locale = "en"
76
+ old_constants = Object.constants
76
77
  begin
77
- eval(open(file).read)
78
+ eval(open(file).read, TOPLEVEL_BINDING)
78
79
  rescue
79
80
  $stderr.puts _("Ignored '%{file}'. Solve dependencies first.") % {:file => file}
80
81
  $stderr.puts $!
81
82
  end
82
- loaded_constants = constants - old_constants
83
+ loaded_constants = Object.constants - old_constants
83
84
  loaded_constants.each do |classname|
84
- klass = eval(classname)
85
+ klass = eval(classname, TOPLEVEL_BINDING)
85
86
  if klass.is_a?(Class) && klass < ActiveRecord::Base
86
87
  unless klass.untranslate_all?
87
88
  add_target(targets, file, ::Inflector.singularize(klass.table_name.gsub(/_/, " ")))
@@ -114,9 +115,10 @@ module GetText
114
115
  end
115
116
 
116
117
  def add_target(targets, file, msgid) # :nodoc:
118
+ file_lineno = "#{file}:-"
117
119
  key_existed = targets.assoc(msgid)
118
- if key_existed
119
- targets[targets.index(key_existed)] = key_existed << "#{file}:-"
120
+ if key_existed and ! targets[targets.index(key_existed)].include?(file_lineno)
121
+ targets[targets.index(key_existed)] = key_existed << file_lineno
120
122
  else
121
123
  targets << [msgid, "#{file}:-"]
122
124
  end
@@ -132,12 +134,24 @@ module GetText
132
134
  unless @@db_loaded
133
135
  begin
134
136
  require 'rubygems'
135
- require_gem 'activerecord'
136
137
  rescue LoadError
137
138
  $stderr.puts _("rubygems are not found.") if $DEBUG
138
139
  end
139
- require 'active_record'
140
- require 'gettext/active_record'
140
+ begin
141
+ ENV["RAILS_ENV"] = @config[:db_mode]
142
+ require 'config/boot.rb'
143
+ require 'config/environment.rb'
144
+ require 'app/controllers/application.rb'
145
+ rescue LoadError
146
+ require_rails 'rubygems'
147
+ if Kernel.respond_to? :gem
148
+ gem 'activerecord'
149
+ else
150
+ require_gem 'activerecord'
151
+ end
152
+ require_rails 'active_record'
153
+ require_rails 'gettext/active_record'
154
+ end
141
155
  if @config[:adapter]
142
156
  ActiveRecord::Base.establish_connection(@config)
143
157
  else
@@ -146,10 +160,6 @@ module GetText
146
160
  rescue
147
161
  return false
148
162
  end
149
- ENV["RAILS_ENV"] = @config[:db_mode]
150
- require_rails 'config/boot.rb'
151
- require_rails 'config/environment.rb'
152
- require_rails 'app/controllers/application.rb'
153
163
  end
154
164
  end
155
165
  @@db_loaded = true
@@ -9,73 +9,13 @@
9
9
  You may redistribute it and/or modify it under the same
10
10
  license terms as Ruby.
11
11
 
12
- $Id: ruby.rb,v 1.8 2006/09/11 16:30:31 mutoh Exp $
12
+ $Id: ruby.rb,v 1.9 2007/01/13 18:34:08 mutoh Exp $
13
13
  =end
14
14
 
15
15
  require 'irb/ruby-lex.rb'
16
16
  require 'stringio'
17
17
 
18
18
  class RubyLexX < RubyLex # :nodoc: all
19
-
20
- def initialize
21
- super
22
- @prompt = nil
23
- @here_header = nil
24
- @lex_state = nil
25
- end
26
-
27
- def read_escape
28
- case ch = getc
29
- when "\n", "\r", "\f"
30
- when "\\", "n", "t", "r", "f", "v", "a", "e", "b" #"
31
- return "\\".concat(ch)
32
- when /[0-7]/
33
- ungetc ch
34
- 3.times do
35
- case ch = getc
36
- when /[0-7]/
37
- when nil
38
- break
39
- else
40
- ungetc
41
- break
42
- end
43
- end
44
-
45
- when "x"
46
- 2.times do
47
- case ch = getc
48
- when /[0-9a-fA-F]/
49
- when nil
50
- break
51
- else
52
- ungetc
53
- break
54
- end
55
- end
56
-
57
- when "M"
58
- if (ch = getc) != '-'
59
- ungetc
60
- else
61
- if (ch = getc) == "\\" #"
62
- read_escape
63
- end
64
- end
65
-
66
- when "C", "c", "^"
67
- if ch == "C" and (ch = getc) != "-"
68
- ungetc
69
- elsif (ch = getc) == "\\" #"
70
- read_escape
71
- end
72
- when '#'
73
- return ch
74
- else
75
- # other characters
76
- end
77
- end
78
-
79
19
  # Parser#parse resemlbes RubyLex#lex
80
20
  def parse
81
21
  until ( (tk = token).kind_of?(RubyToken::TkEND_OF_SCRIPT) && !@continue or tk.nil? )
@@ -114,7 +54,6 @@ class RubyLexX < RubyLex # :nodoc: all
114
54
 
115
55
  yield tk
116
56
  end
117
-
118
57
  return nil
119
58
  end
120
59
 
@@ -185,7 +124,9 @@ module GetText
185
124
  targets
186
125
  end
187
126
  rescue
188
- $stderr.puts "\n\nError: #{$!} in #{file_name}:#{tk.line_no}\n\t #{lines[tk.line_no - 1]}"
127
+ $stderr.print "\n\nError: #{$!.inspect} "
128
+ $stderr.print " in #{file_name}:#{tk.line_no}\n\t #{lines[tk.line_no - 1]}" if tk
129
+ $stderr.print "\n"
189
130
  exit
190
131
  end
191
132
  targets
@@ -20,7 +20,7 @@ module GetText
20
20
 
21
21
  class PoParser < Racc::Parser
22
22
 
23
- module_eval <<'..end src/poparser.ry modeval..id22a75cc2c8', 'src/poparser.ry', 90
23
+ module_eval <<'..end src/poparser.ry modeval..idf3e4511031', 'src/poparser.ry', 90
24
24
  include GetText
25
25
  GetText.bindtextdomain("rgettext")
26
26
 
@@ -56,7 +56,7 @@ module_eval <<'..end src/poparser.ry modeval..id22a75cc2c8', 'src/poparser.ry',
56
56
  @q.push [:PLURAL_NUM, $1]
57
57
  str = $'
58
58
  when /\A\#~(.*)/
59
- $stderr.print _("Warning: obsolete msgid exists.\n")
59
+ $stderr.print _("Warning: obsolete msgid is existed.\n")
60
60
  $stderr.print " #{$&}\n"
61
61
  @q.push [:COMMENT, $&]
62
62
  str = $'
@@ -103,7 +103,7 @@ module_eval <<'..end src/poparser.ry modeval..id22a75cc2c8', 'src/poparser.ry',
103
103
  @comments << comment
104
104
  end
105
105
 
106
- ..end src/poparser.ry modeval..id22a75cc2c8
106
+ ..end src/poparser.ry modeval..idf3e4511031
107
107
 
108
108
  ##### racc 1.4.4 generates ###
109
109
 
@@ -6,11 +6,11 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: rails.rb,v 1.51 2006/09/10 15:08:32 mutoh Exp $
9
+ $Id: rails.rb,v 1.55 2007/01/21 15:16:06 mutoh Exp $
10
10
  =end
11
11
 
12
12
  require 'gettext/cgi'
13
- require 'active_support'
13
+ require 'action_controller'
14
14
 
15
15
  module GetText
16
16
  # GetText::Rails supports Ruby on Rails.
@@ -70,7 +70,6 @@ module GetText
70
70
  end
71
71
  end
72
72
 
73
-
74
73
  module ActionController #:nodoc:
75
74
  class Base
76
75
  helper GetText::Rails
@@ -78,23 +77,21 @@ module ActionController #:nodoc:
78
77
 
79
78
  @@gettext_domainnames = []
80
79
  @@gettext_content_type = nil
81
-
80
+
82
81
  prepend_before_filter :init_gettext
83
82
  after_filter :init_content_type
84
-
85
-
83
+
86
84
  def init_gettext_main(cgi) #:nodoc:
87
- cgi.params["lang"] = [@params["lang"]] if @params["lang"]
85
+ cgi.params["lang"] = [params["lang"]] if params["lang"]
88
86
  set_cgi(cgi)
89
87
  set_locale_all(nil)
90
88
  end
91
89
 
92
- REGEXP_GETTEXT_CONTENT_TYPE = /javascript/ #:nodoc:
93
90
  def init_content_type #:nodoc:
94
- if @headers["Content-Type"] and REGEXP_GETTEXT_CONTENT_TYPE =~ @headers["Content-Type"]
95
- @headers["Content-Type"] = "text/javascript; charset=#{GetText.output_charset}"
96
- elsif ! @headers["Content-Type"]
97
- @headers["Content-Type"] = "#{@@gettext_content_type}; charset=#{GetText.output_charset}"
91
+ if headers["Content-Type"] and /javascript/ =~ headers["Content-Type"]
92
+ headers["Content-Type"] = "text/javascript; charset=#{GetText.output_charset}"
93
+ elsif ! headers["Content-Type"]
94
+ headers["Content-Type"] = "#{@@gettext_content_type}; charset=#{GetText.output_charset}"
98
95
  end
99
96
  end
100
97
 
@@ -111,7 +108,7 @@ module ActionController #:nodoc:
111
108
  def init_gettext # :nodoc:
112
109
  cgi = nil
113
110
  if defined? request.cgi
114
- cgi = request.cgi
111
+ cgi = request.cgi
115
112
  end
116
113
  call_methods_around_init_gettext(@@before_init_gettext)
117
114
  init_gettext_main(cgi) if @@gettext_domainnames.size > 0
@@ -170,7 +167,7 @@ module ActionController #:nodoc:
170
167
  # * :content_type - the content type. Default is "text/html"
171
168
  # * :locale_path - the path to locale directory. Default is {RAILS_ROOT}/locale or {plugin root directory}/locale.
172
169
  #
173
- # locale is searched the order by @params["lang"] > "lang" value of QUERY_STRING >
170
+ # locale is searched the order by params["lang"] > "lang" value of QUERY_STRING >
174
171
  # "lang" value of Cookie > HTTP_ACCEPT_LANGUAGE value > Default locale(en).
175
172
  # And the charset is set order by "the argument of bindtextdomain" > HTTP_ACCEPT_CHARSET > Default charset(UTF-8).
176
173
  #
@@ -192,14 +189,17 @@ module ActionController #:nodoc:
192
189
  if options.kind_of? String
193
190
  # For backward compatibility
194
191
  opt.merge!(:charset => options, :content_type => content_type)
192
+ else
193
+ opt.merge!(options)
195
194
  end
196
195
  GetText.output_charset = opt[:charset]
197
196
  @@gettext_content_type = opt[:content_type]
198
197
  locale_path = opt[:locale_path]
199
198
  unless locale_path
200
- begin
201
- locale_path = File.join(caller[0].split(/app.controllers/)[0] + "locale")
202
- rescue RuntimeError
199
+ cal = caller[0]
200
+ if cal =~ /app.controllers/
201
+ locale_path = File.join(cal.split(/app.controllers/)[0] + "locale")
202
+ else
203
203
  locale_path = File.join(RAILS_ROOT, "locale")
204
204
  end
205
205
  end
@@ -239,7 +239,10 @@ module ActionController #:nodoc:
239
239
  class TestRequest < AbstractRequest #:nodoc:
240
240
  @cgi = nil
241
241
  def cgi
242
- @cgi = CGI.new unless @cgi
242
+ unless @cgi
243
+ ENV['REQUEST_URI'] ||= "http://localhost:3000/"
244
+ @cgi = CGI.new
245
+ end
243
246
  @cgi
244
247
  end
245
248
  end
@@ -390,7 +393,7 @@ if defined? ActionMailer
390
393
  include GetText::Rails
391
394
  extend GetText::Rails
392
395
 
393
- alias :_create! :create! #:nodoc:
396
+ alias :create_without_gettext! :create! #:nodoc:
394
397
 
395
398
  def base64(text, charset="iso-2022-jp", convert=true)
396
399
  if convert
@@ -403,7 +406,7 @@ if defined? ActionMailer
403
406
  end
404
407
 
405
408
  def create!(*arg) #:nodoc:
406
- _create!(*arg)
409
+ create_without_gettext!(*arg)
407
410
  if Locale.get.language == "ja"
408
411
  require 'nkf'
409
412
  @mail.subject = base64(@mail.subject)
@@ -2,11 +2,11 @@
2
2
  =begin
3
3
  rgettext.rb - Generate a .pot file.
4
4
 
5
- Copyright (C) 2003-2005 Masao Mutoh
5
+ Copyright (C) 2003-2006 Masao Mutoh
6
6
  Copyright (C) 2001,2002 Yasushi Shoji, Masao Mutoh
7
7
 
8
- Yasushi Shoji <yashi@yashi.com>
9
- Masao Mutoh <mutoh@highway.ne.jp>
8
+ Yasushi Shoji <yashi at atmark-techno.com>
9
+ Masao Mutoh <mutoh at highway.ne.jp>
10
10
 
11
11
  You may redistribute it and/or modify it under the same
12
12
  license terms as Ruby.
@@ -25,7 +25,7 @@ module GetText
25
25
 
26
26
  # constant values
27
27
  VERSION = GetText::VERSION
28
- DATE = %w($Date: 2006/09/10 15:08:32 $)[1]
28
+ DATE = %w($Date: 2006/12/14 16:35:57 $)[1]
29
29
  MAX_LINE_LEN = 70
30
30
 
31
31
  @ex_parsers = []
@@ -156,12 +156,12 @@ msgstr ""
156
156
  unless FileTest.exist? out
157
157
  output = File.new(File.expand_path(out), "w+")
158
158
  else
159
- $stderr.puts(_("File '%s' has already existed.") % out)
159
+ $stderr.puts(_("File '%s' already exists.") % out)
160
160
  exit 1
161
161
  end
162
162
  end
163
163
 
164
- opts.on("-r", "--require=PARSER", _("read an option parser")) do |out|
164
+ opts.on("-r", "--require=library", _("require the library before executing rgettext")) do |out|
165
165
  require out
166
166
  end
167
167