russian 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -191,6 +191,33 @@ h3. Хелперы
191
191
 
192
192
  Хелперы даты-времени получают ключ @:use_standalone_month_names@ для форсирования отображения отдельностоящего названия месяца ("Сентябрь" а не "сентября"). Такое имя месяца используется когда включен ключ @:use_standalone_month_names@ (для отдельностоящего @select_month@ он включается по умолчанию), либо когда есть ключ @:discard_day@.
193
193
 
194
+ В Russian включен плагин i18n_label, который подставляет в форм-хелпер @label@ перевод атрибута из таблицы переводов I18n. Например:
195
+
196
+ * в файле переводов:
197
+
198
+ <pre><code>
199
+ ru-RU:
200
+ activerecord:
201
+ attributes:
202
+ user:
203
+ name: "Имя"
204
+ </code></pre>
205
+
206
+ * во view:
207
+
208
+ <pre><code>
209
+ <% form_for @user do |f| %>
210
+ <%= f.label :name %>
211
+ <% end %>
212
+ </code></pre>
213
+
214
+ Даст:
215
+
216
+ <pre><code>
217
+ <label for="user_name">Имя</label>
218
+ </code></pre>
219
+
220
+
194
221
  h3. Валидация
195
222
 
196
223
  Обработка ошибок в ActiveRecord перегружается -- в Russian включен популярный плагин custom_error_message, с помощью которого можно переопределять стандартное отображение сообщений об ошибках. Так, например,
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rubygems/specification'
5
5
  require 'date'
6
6
 
7
7
  GEM = "russian"
8
- GEM_VERSION = "0.0.3"
8
+ GEM_VERSION = "0.0.4"
9
9
  AUTHOR = "Yaroslav Markin"
10
10
  EMAIL = "yaroslav@markin.net"
11
11
  HOMEPAGE = "http://github.com/yaroslav/russian/"
@@ -1,19 +1,28 @@
1
1
  $KCODE='u'
2
2
 
3
3
  $:.push File.join(File.dirname(__FILE__), 'russian')
4
- $:.push File.join(File.dirname(__FILE__), 'vendor', 'i18n', 'lib')
5
4
 
6
- require 'i18n' unless defined?(I18n)
5
+ # I18n require
6
+ unless defined?(I18n)
7
+ $:.push File.join(File.dirname(__FILE__), 'vendor', 'i18n', 'lib')
8
+ require 'i18n'
9
+ end
7
10
 
11
+ # Advanced backend
8
12
  require 'backend/advanced'
9
- require 'action_view_ext/helpers/date_helper'
10
- require 'active_record_ext/custom_error_message'
13
+
14
+ # Rails hacks
15
+ require 'active_record_ext/custom_error_message' if defined?(ActiveRecord)
16
+ if defined?(ActionView::Helpers)
17
+ require 'action_view_ext/helpers/date_helper'
18
+ require 'vendor/i18n_label/init'
19
+ end
11
20
 
12
21
  module Russian
13
22
  module VERSION
14
23
  MAJOR = 0
15
24
  MINOR = 0
16
- TINY = 3
25
+ TINY = 4
17
26
 
18
27
  STRING = [MAJOR, MINOR, TINY].join('.')
19
28
  end
@@ -1,53 +1,51 @@
1
- if defined?(ActiveRecord::Errors)
2
- # The following is taken from custom_error_message plugin by David Easley
3
- # (http://rubyforge.org/projects/custom-err-msg/)
4
- module ActiveRecord
5
- class Errors
6
-
7
- # Redefine the ActiveRecord::Errors::full_messages method:
8
- # Returns all the full error messages in an array. 'Base' messages are handled as usual.
9
- # Non-base messages are prefixed with the attribute name as usual UNLESS they begin with '^'
10
- # in which case the attribute name is omitted.
11
- # E.g. validates_acceptance_of :accepted_terms, :message => '^Please accept the terms of service'
12
- #
13
- #
14
- # Переопределяет метод ActiveRecord::Errors::full_messages. Сообщения об ошибках для атрибутов
15
- # теперь не имеют префикса с названием атрибута если в сообщении об ошибке первым символом указан "^".
16
- #
17
- # Так, например,
18
- #
19
- # validates_acceptance_of :accepted_terms, :message => 'нужно принять соглашение'
20
- #
21
- # даст сообщение
22
- #
23
- # Accepted terms нужно принять соглашение
24
- #
25
- # однако,
26
- #
27
- # validates_acceptance_of :accepted_terms, :message => '^Нужно принять соглашение'
28
- #
29
- # даст сообщение
30
- #
31
- # Нужно принять соглашение
32
- def full_messages
33
- full_messages = []
34
-
35
- @errors.each_key do |attr|
36
- @errors[attr].each do |msg|
37
- next if msg.nil?
38
-
39
- if attr == "base"
40
- full_messages << msg
41
- elsif msg =~ /^\^/
42
- full_messages << msg[1..-1]
43
- else
44
- full_messages << @base.class.human_attribute_name(attr) + " " + msg
45
- end
1
+ # The following is taken from custom_error_message plugin by David Easley
2
+ # (http://rubyforge.org/projects/custom-err-msg/)
3
+ module ActiveRecord
4
+ class Errors
5
+
6
+ # Redefine the ActiveRecord::Errors::full_messages method:
7
+ # Returns all the full error messages in an array. 'Base' messages are handled as usual.
8
+ # Non-base messages are prefixed with the attribute name as usual UNLESS they begin with '^'
9
+ # in which case the attribute name is omitted.
10
+ # E.g. validates_acceptance_of :accepted_terms, :message => '^Please accept the terms of service'
11
+ #
12
+ #
13
+ # Переопределяет метод ActiveRecord::Errors::full_messages. Сообщения об ошибках для атрибутов
14
+ # теперь не имеют префикса с названием атрибута если в сообщении об ошибке первым символом указан "^".
15
+ #
16
+ # Так, например,
17
+ #
18
+ # validates_acceptance_of :accepted_terms, :message => 'нужно принять соглашение'
19
+ #
20
+ # даст сообщение
21
+ #
22
+ # Accepted terms нужно принять соглашение
23
+ #
24
+ # однако,
25
+ #
26
+ # validates_acceptance_of :accepted_terms, :message => '^Нужно принять соглашение'
27
+ #
28
+ # даст сообщение
29
+ #
30
+ # Нужно принять соглашение
31
+ def full_messages
32
+ full_messages = []
33
+
34
+ @errors.each_key do |attr|
35
+ @errors[attr].each do |msg|
36
+ next if msg.nil?
37
+
38
+ if attr == "base"
39
+ full_messages << msg
40
+ elsif msg =~ /^\^/
41
+ full_messages << msg[1..-1]
42
+ else
43
+ full_messages << @base.class.human_attribute_name(attr) + " " + msg
46
44
  end
47
45
  end
48
-
49
- return full_messages
50
46
  end
47
+
48
+ return full_messages
51
49
  end
52
50
  end
53
- end
51
+ end
@@ -59,52 +59,52 @@ ru-RU:
59
59
  distance_in_words:
60
60
  half_a_minute: "меньше минуты"
61
61
  less_than_x_seconds:
62
- one: "меньше секунды"
62
+ one: "меньше {{count}} секунды"
63
63
  few: "меньше {{count}} секунд"
64
64
  many: "меньше {{count}} секунд"
65
- other: "меньше {{count}} секунд"
65
+ other: "меньше {{count}} секунды"
66
66
  x_seconds:
67
- one: "1 секунда"
67
+ one: "{{count}} секунда"
68
68
  few: "{{count}} секунды"
69
69
  many: "{{count}} секунд"
70
70
  other: "{{count}} секунды"
71
71
  less_than_x_minutes:
72
- one: "меньше минуты"
72
+ one: "меньше {{count}} минуты"
73
73
  few: "меньше {{count}} минут"
74
74
  many: "меньше {{count}} минут"
75
- other: "меньше {{count}} минут"
75
+ other: "меньше {{count}} минуты"
76
76
  x_minutes:
77
- one: "1 минуту"
77
+ one: "{{count}} минуту"
78
78
  few: "{{count}} минуты"
79
79
  many: "{{count}} минут"
80
80
  other: "{{count}} минуты"
81
81
  about_x_hours:
82
- one: "около часа"
82
+ one: "около {{count}} часа"
83
83
  few: "около {{count}} часов"
84
84
  many: "около {{count}} часов"
85
- other: "около {{count}} часов"
85
+ other: "около {{count}} часа"
86
86
  x_days:
87
- one: "1 день"
87
+ one: "{{count}} день"
88
88
  few: "{{count}} дня"
89
89
  many: "{{count}} дней"
90
90
  other: "{{count}} дня"
91
91
  about_x_months:
92
- one: "около 1 месяца"
92
+ one: "около {{count}} месяца"
93
93
  few: "около {{count}} месяцев"
94
94
  many: "около {{count}} месяцев"
95
- other: "около {{count}} месяцев"
95
+ other: "около {{count}} месяца"
96
96
  x_months:
97
- one: "1 месяц"
97
+ one: "{{count}} месяц"
98
98
  few: "{{count}} месяца"
99
99
  many: "{{count}} месяцев"
100
100
  other: "{{count}} месяца"
101
101
  about_x_years:
102
- one: "около 1 года"
102
+ one: "около {{count}} года"
103
103
  few: "около {{count}} лет"
104
104
  many: "около {{count}} лет"
105
105
  other: "около {{count}} лет"
106
106
  over_x_years:
107
- one: "больше 1 года"
107
+ one: "больше {{count}} года"
108
108
  few: "больше {{count}} лет"
109
109
  many: "больше {{count}} лет"
110
110
  other: "больше {{count}} лет"
@@ -115,10 +115,10 @@ ru-RU:
115
115
  template:
116
116
  # Заголовок сообщения об ошибке
117
117
  header:
118
- one: "{{model}}: сохранение не удалось из-за 1 ошибки"
118
+ one: "{{model}}: сохранение не удалось из-за {{count}} ошибки"
119
119
  few: "{{model}}: сохранение не удалось из-за {{count}} ошибок"
120
120
  many: "{{model}}: сохранение не удалось из-за {{count}} ошибок"
121
- other: "{{model}}: сохранение не удалосьиз-за {{count}} ошибок"
121
+ other: "{{model}}: сохранение не удалось из-за {{count}} ошибки"
122
122
 
123
123
  # Первый параграф сообщения об ошибке. Можно использовать макрос {{count}}
124
124
  #
@@ -24,17 +24,17 @@ ru-RU:
24
24
  empty: "не может быть пустым"
25
25
  blank: "не может быть пустым"
26
26
  too_long:
27
- one: "слишком большой длины (не может быть больше чем 1 символ)"
27
+ one: "слишком большой длины (не может быть больше чем {{count}} символ)"
28
28
  few: "слишком большой длины (не может быть больше чем {{count}} символа)"
29
29
  many: "слишком большой длины (не может быть больше чем {{count}} символов)"
30
30
  other: "слишком большой длины (не может быть больше чем {{count}} символа)"
31
31
  too_short:
32
- one: "недостаточной длины (не может быть меньше 1 символа)"
32
+ one: "недостаточной длины (не может быть меньше {{count}} символа)"
33
33
  few: "недостаточной длины (не может быть меньше {{count}} символов)"
34
34
  many: "недостаточной длины (не может быть меньше {{count}} символов)"
35
- other: "недостаточной длины (не может быть меньше {{count}} символов)"
35
+ other: "недостаточной длины (не может быть меньше {{count}} символа)"
36
36
  wrong_length:
37
- one: "неверной длины (может быть длиной ровно 1 символ)"
37
+ one: "неверной длины (может быть длиной ровно {{count}} символ)"
38
38
  few: "неверной длины (может быть длиной ровно {{count}} символа)"
39
39
  many: "неверной длины (может быть длиной ровно {{count}} символов)"
40
40
  other: "неверной длины (может быть длиной ровно {{count}} символа)"
@@ -66,25 +66,25 @@ ru-RU:
66
66
  # # Ниже определим собственное сообщение об ошибке для атрибута name модели User.
67
67
  # name:
68
68
  # blank: "Атрибут {{attribute}} особенный -- у него свое сообщение об ошибке при пустом атрибуте"
69
-
70
69
  models:
71
- # Перевод названий моделей
72
- #
73
- # Например,
74
- # user: "Пользователь"
75
- # переведет модель User как "Пользователь".
76
- #
77
- #
78
- # Overrides default messages
79
-
80
- attributes:
81
- # Перевод названий атрибутов моделей
82
- #
83
- # Например,
84
- # user:
85
- # name: "Имя"
86
- # переведет атрибут name модели User как "Имя".
87
- #
88
- #
89
- # Overrides model and default messages.
70
+
71
+ # Перевод названий моделей. Используется в Model.human_name().
72
+ #
73
+ #models:
74
+ # Например,
75
+ # user: "Пользователь"
76
+ # переведет модель User как "Пользователь".
77
+ #
78
+ #
79
+ # Overrides default messages
80
+
81
+ # Перевод названий атрибутов моделей. Используется в Model.human_attribute_name(attribute).
82
+ #attributes:
83
+ # Например,
84
+ # user:
85
+ # name: "Имя"
86
+ # переведет атрибут name модели User как "Имя".
87
+ #
88
+ #
89
+ # Overrides model and default messages.
90
90
 
@@ -6,13 +6,20 @@
6
6
  #
7
7
  # Russian language pluralization rules, taken from CLDR project, http://unicode.org/cldr/
8
8
  #
9
- # one -> n mod 10 is 1 and n mod 100 is not 11;
10
- # few -> n mod 10 in 2..4 and n mod 100 not in 12..14;
11
- # many -> n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14;
12
- # other -> everything else
9
+ # one -> n mod 10 is 1 and n mod 100 is not 11;
10
+ # few -> n mod 10 in 2..4 and n mod 100 not in 12..14;
11
+ # many -> n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14;
12
+ # other -> everything else
13
+ #
14
+ # Examples
15
+ #
16
+ # one = 1, 21, 31, 41, 51, 61...
17
+ # few = 2-4, 22-24, 32-34...
18
+ # many = 0, 5-20, 25-30, 35-40...
19
+ # other = 1.31, 2.31, 5.31...
13
20
  if n.modulo(10) == 1 && n.modulo(100) != 11
14
21
  :one
15
- elsif (n.modulo(10) >=2 && n.modulo(10) <= 4) && (n.modulo(100) >=12 && n.modulo(100) <= 14)
22
+ elsif (n.modulo(10) >=2 && n.modulo(10) <= 4) && !(n.modulo(100) >=12 && n.modulo(100) <= 14)
16
23
  :few
17
24
  elsif n.modulo(10) == 0 || (n.modulo(10) >=5 && n.modulo(10) <= 9) ||
18
25
  (n.modulo(100) >= 11 && n.modulo(100) <= 14)
@@ -0,0 +1,38 @@
1
+ h1. I18nLabel
2
+
3
+ Since labels don't use I18n in Rails 2.2 (I was too late in submitting the
4
+ patch), we'd have to make due with a plugin.
5
+
6
+ Installation and configuration consists of 1 easy steps:
7
+
8
+ # Run:
9
+
10
+ ./script/plugin install git://github.com/iain/i18n_label.git
11
+
12
+
13
+ h1. Example
14
+
15
+ In your translation file:
16
+
17
+ en-US:
18
+ activerecord:
19
+ attributes:
20
+ topic:
21
+ name: A nice name
22
+
23
+ In your view:
24
+
25
+ <% form_for @topic do |f| %>
26
+ <%= f.label :name %>
27
+ <% end %>
28
+
29
+ The result is:
30
+
31
+ &lt;label for="topic_name">A nice name</label> (please ignore the minor problem with html in github)
32
+
33
+
34
+
35
+ For more information about where to put your translations,
36
+ visit "my blog":http://iain.nl/2008/09/translating-activerecord/
37
+
38
+ Copyright (c) 2008 "Iain Hecker":http://iain.nl/, released under the MIT license
@@ -0,0 +1,11 @@
1
+ require 'rake'
2
+ require 'spec/rake/spectask'
3
+
4
+ desc 'Default: run specs.'
5
+ task :default => :spec
6
+
7
+ desc 'Run the specs'
8
+ Spec::Rake::SpecTask.new(:spec) do |t|
9
+ t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
10
+ t.spec_files = FileList['spec/**/*_spec.rb']
11
+ end
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + '/lib/i18n_label.rb'
@@ -0,0 +1 @@
1
+ File.readlines(File.dirname(__FILE__)+'/README.textile').each { |line| puts line }
@@ -0,0 +1,23 @@
1
+ # Just replace the method...
2
+ module ActionView
3
+ module Helpers
4
+ class InstanceTag
5
+ def to_label_tag(text = nil, options = {})
6
+ options = options.stringify_keys
7
+ name_and_id = options.dup
8
+ add_default_name_and_id(name_and_id)
9
+ options.delete("index")
10
+ options["for"] ||= name_and_id["id"]
11
+ if text.blank?
12
+ content = method_name.humanize
13
+ if object.class.respond_to?(:human_attribute_name)
14
+ content = object.class.human_attribute_name(method_name)
15
+ end
16
+ else
17
+ content = text.to_s
18
+ end
19
+ label_tag(name_and_id["id"], content, options)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ # give a model to play with
4
+ class Reply < ActiveRecord::Base
5
+ attr_accessor :title
6
+ end
7
+
8
+ describe ActionView::Helpers do
9
+
10
+ # NOTE gives deprication warning in RSpec 1.1.4:
11
+ # Modules will no longer be automatically included in RSpec version 1.1.4. Called from ./spec/i18n_label_spec.rb:15
12
+ it "label should make a call to human_attribute_name" do
13
+ Reply.should_receive(:human_attribute_name).with('title').and_return("translated title")
14
+ reply = mock_model(Reply)
15
+ fields_for(reply) do |f|
16
+ f.label(:title).should == "<label for=\"reply_title\">translated title</label>"
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,10 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/../../../../spec/spec_helper'
3
+ rescue LoadError
4
+ puts "You need to install rspec in your base app"
5
+ exit
6
+ end
7
+
8
+ plugin_spec_dir = File.dirname(__FILE__)
9
+ ActiveRecord::Base.logger = Logger.new(plugin_spec_dir + "/debug.log")
10
+
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :i18n_label do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1 @@
1
+ puts "Bye!"
@@ -16,5 +16,8 @@ describe I18n, "Russian pluralization" do
16
16
  @backend.send(:pluralize, :'ru-RU', @hash, 29).should == 'вещей'
17
17
  @backend.send(:pluralize, :'ru-RU', @hash, 129).should == 'вещей'
18
18
  @backend.send(:pluralize, :'ru-RU', @hash, 131).should == 'вещь'
19
+ @backend.send(:pluralize, :'ru-RU', @hash, 1.31).should == 'вещи'
20
+ @backend.send(:pluralize, :'ru-RU', @hash, 2.31).should == 'вещи'
21
+ @backend.send(:pluralize, :'ru-RU', @hash, 3.31).should == 'вещи'
19
22
  end
20
23
  end
@@ -0,0 +1,109 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Russian, "loading locales" do
4
+ before(:all) do
5
+ Russian.init_i18n
6
+ end
7
+
8
+ %w(
9
+ date.formats.default
10
+ date.formats.short
11
+ date.formats.long
12
+ date.day_names
13
+ date.standalone_day_names
14
+ date.abbr_day_names
15
+ date.month_names
16
+ date.standalone_month_names
17
+ date.abbr_month_names
18
+ date.standalone_abbr_month_names
19
+ date.order
20
+
21
+ time.formats.default
22
+ time.formats.short
23
+ time.formats.long
24
+ time.am
25
+ time.pm
26
+ ).each do |key|
27
+ it "should define '#{key}' in datetime translations" do
28
+ lookup(key).should_not be_nil
29
+ end
30
+ end
31
+
32
+ it "should load pluralization rules" do
33
+ lookup(:"pluralize").should_not be_nil
34
+ lookup(:"pluralize").is_a?(Proc).should be_true
35
+ end
36
+
37
+ %w(
38
+ number.format.separator
39
+ number.format.delimiter
40
+ number.format.precision
41
+ number.currency.format.format
42
+ number.currency.format.unit
43
+ number.currency.format.separator
44
+ number.currency.format.delimiter
45
+ number.currency.format.precision
46
+ number.percentage.format.delimiter
47
+ number.percentage.format.precision
48
+ number.precision.format.delimiter
49
+ number.human.format.delimiter
50
+ number.human.format.precision
51
+
52
+ datetime.distance_in_words.half_a_minute
53
+ datetime.distance_in_words.less_than_x_seconds
54
+ datetime.distance_in_words.x_seconds
55
+ datetime.distance_in_words.less_than_x_minutes
56
+ datetime.distance_in_words.x_minutes
57
+ datetime.distance_in_words.about_x_hours
58
+ datetime.distance_in_words.x_days
59
+ datetime.distance_in_words.about_x_months
60
+ datetime.distance_in_words.x_months
61
+ datetime.distance_in_words.about_x_years
62
+ datetime.distance_in_words.over_x_years
63
+
64
+ activerecord.errors.template.header
65
+ activerecord.errors.template.body
66
+ ).each do |key|
67
+ it "should define '#{key}' in actionview translations" do
68
+ lookup(key).should_not be_nil
69
+ end
70
+ end
71
+
72
+ %w(
73
+ activerecord.errors.messages.inclusion
74
+ activerecord.errors.messages.exclusion
75
+ activerecord.errors.messages.invalid
76
+ activerecord.errors.messages.confirmation
77
+ activerecord.errors.messages.accepted
78
+ activerecord.errors.messages.empty
79
+ activerecord.errors.messages.blank
80
+ activerecord.errors.messages.too_long
81
+ activerecord.errors.messages.too_short
82
+ activerecord.errors.messages.wrong_length
83
+ activerecord.errors.messages.taken
84
+ activerecord.errors.messages.not_a_number
85
+ activerecord.errors.messages.greater_than
86
+ activerecord.errors.messages.greater_than_or_equal_to
87
+ activerecord.errors.messages.equal_to
88
+ activerecord.errors.messages.less_than
89
+ activerecord.errors.messages.less_than_or_equal_to
90
+ activerecord.errors.messages.odd
91
+ activerecord.errors.messages.even
92
+ ).each do |key|
93
+ it "should define '#{key}' in activerecord translations" do
94
+ lookup(key).should_not be_nil
95
+ end
96
+ end
97
+
98
+ %w(
99
+ support.array.sentence_connector
100
+ ).each do |key|
101
+ it "should define '#{key}' in activesupport translations" do
102
+ lookup(key).should_not be_nil
103
+ end
104
+ end
105
+
106
+ def lookup(*args)
107
+ I18n.backend.send(:lookup, Russian.locale, *args)
108
+ end
109
+ end
@@ -35,41 +35,6 @@ describe Russian do
35
35
  Russian.init_i18n
36
36
  I18n.default_locale.should == Russian.locale
37
37
  end
38
-
39
- describe "loading locales" do
40
- before(:all) do
41
- Russian.init_i18n
42
- end
43
-
44
- it "should load datetime translations" do
45
- lookup(:"date.formats.default").should_not be_nil
46
- lookup(:"time.formats.default").should_not be_nil
47
- end
48
-
49
- it "should load pluralization rules" do
50
- lookup(:"pluralize").should_not be_nil
51
- lookup(:"pluralize").is_a?(Proc).should be_true
52
- end
53
-
54
- it "should load actionview translations" do
55
- lookup(:"number.currency.format.format").should_not be_nil
56
- lookup(:"datetime.distance_in_words.half_a_minute").should_not be_nil
57
- lookup(:"activerecord.errors.template.header").should_not be_nil
58
- end
59
-
60
- it "should load activerecord translations" do
61
- lookup(:"activerecord.errors.messages.invalid").should_not be_nil
62
- lookup(:"activerecord.errors.messages.greater_than_or_equal_to").should_not be_nil
63
- end
64
-
65
- it "should load activesupport translations" do
66
- lookup(:"support.array.sentence_connector").should_not be_nil
67
- end
68
-
69
- def lookup(*args)
70
- I18n.backend.send(:lookup, Russian.locale, *args)
71
- end
72
- end
73
38
  end
74
39
 
75
40
  describe "with localize proxy" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: russian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yaroslav Markin
@@ -9,7 +9,7 @@ autorequire: russian
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-01 00:00:00 +04:00
12
+ date: 2008-09-14 00:00:00 +04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -64,10 +64,24 @@ files:
64
64
  - lib/vendor/i18n/test/locale/en-US.rb
65
65
  - lib/vendor/i18n/test/locale/en-US.yml
66
66
  - lib/vendor/i18n/test/simple_backend_test.rb
67
+ - lib/vendor/i18n_label
68
+ - lib/vendor/i18n_label/init.rb
69
+ - lib/vendor/i18n_label/install.rb
70
+ - lib/vendor/i18n_label/lib
71
+ - lib/vendor/i18n_label/lib/i18n_label.rb
72
+ - lib/vendor/i18n_label/Rakefile
73
+ - lib/vendor/i18n_label/README.textile
74
+ - lib/vendor/i18n_label/spec
75
+ - lib/vendor/i18n_label/spec/i18n_label_spec.rb
76
+ - lib/vendor/i18n_label/spec/spec_helper.rb
77
+ - lib/vendor/i18n_label/tasks
78
+ - lib/vendor/i18n_label/tasks/i18n_label_tasks.rake
79
+ - lib/vendor/i18n_label/uninstall.rb
67
80
  - spec/i18n
68
81
  - spec/i18n/locale
69
82
  - spec/i18n/locale/datetime_spec.rb
70
83
  - spec/i18n/locale/pluralization_spec.rb
84
+ - spec/locale_spec.rb
71
85
  - spec/russian_spec.rb
72
86
  - spec/spec_helper.rb
73
87
  has_rdoc: true