grosser-fast_gettext 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +3 -3
- data/VERSION.yml +1 -1
- data/examples/db/migration.rb +3 -3
- data/lib/fast_gettext/translation_repository/db.rb +2 -2
- data/lib/fast_gettext/translation_repository/db_models/translation_key.rb +10 -1
- data/lib/fast_gettext/translation_repository/db_models/translation_text.rb +1 -1
- data/spec/fast_gettext/translation_repository/db_spec.rb +9 -6
- data/spec/spec_helper.rb +1 -0
- metadata +2 -2
data/README.markdown
CHANGED
@@ -48,9 +48,9 @@ Easy to maintain especially with many translations and multiple locales.
|
|
48
48
|
An example migration for ActiveRecord can be found in `exaples/db/migration`.
|
49
49
|
This is usable with any model DataMapper/Sequel or any other(non-database) backend, the only thing you need to do is respond to the self.translation(key, locale) call.
|
50
50
|
The default plural seperator is `||||` but you may overwrite it (or suggest a better one..).
|
51
|
-
include FastGettext::TranslationRepository::
|
51
|
+
include FastGettext::TranslationRepository::Db.require_models #load and include default models
|
52
52
|
FastGettext.add_text_domain('my_app', :type=>:db, :model=>TranslationKey)
|
53
|
-
#the model should be the model that represents the keys, you can use FastGettext::TranslationRepository::
|
53
|
+
#the model should be the model that represents the keys, you can use FastGettext::TranslationRepository::DbModel::TranslationKey
|
54
54
|
|
55
55
|
To get started have a look at the default models in `lib/fast_gettext/translation_repository/db/translation_key`.
|
56
56
|
|
@@ -158,7 +158,7 @@ FAQ
|
|
158
158
|
TODO
|
159
159
|
====
|
160
160
|
- some cleanup required, repositories should not have locale
|
161
|
-
-
|
161
|
+
- DbModel::TranslationKey responds_to? :available_locales should be false when it is not defined, maybe testing bug
|
162
162
|
- use `default_locale=(x)` internally, atm the default is available_locales.first || 'en'
|
163
163
|
- use `default_text_domain=(x)` internally, atm default is nil...
|
164
164
|
|
data/VERSION.yml
CHANGED
data/examples/db/migration.rb
CHANGED
@@ -2,17 +2,17 @@ class CreateTranslationTables < ActiveRecord::Migration
|
|
2
2
|
def self.up
|
3
3
|
create_table :translation_keys do |t|
|
4
4
|
t.string :key, :unique=>true, :null=>false
|
5
|
-
t.add_index :key
|
6
5
|
t.timestamps
|
7
6
|
end
|
8
|
-
|
7
|
+
add_index :translation_keys, :key #I am not sure if this helps....
|
8
|
+
|
9
9
|
create_table :translation_texts do |t|
|
10
10
|
t.text :text
|
11
11
|
t.string :locale
|
12
12
|
t.integer :translation_key_id, :null=>false
|
13
|
-
t.add_index :translation_key_id
|
14
13
|
t.timestamps
|
15
14
|
end
|
15
|
+
add_index :translation_texts, :translation_key_id
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.down
|
@@ -10,7 +10,7 @@ module FastGettext
|
|
10
10
|
# only constraints:
|
11
11
|
# key: find_by_key, translations
|
12
12
|
# translation: text, locale
|
13
|
-
class
|
13
|
+
class Db
|
14
14
|
def initialize(name,options={})
|
15
15
|
@model = options[:model]
|
16
16
|
end
|
@@ -50,7 +50,7 @@ module FastGettext
|
|
50
50
|
def self.require_models
|
51
51
|
require 'fast_gettext/translation_repository/db_models/translation_key'
|
52
52
|
require 'fast_gettext/translation_repository/db_models/translation_text'
|
53
|
-
FastGettext::TranslationRepository::
|
53
|
+
FastGettext::TranslationRepository::DbModels
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module FastGettext::TranslationRepository
|
2
|
-
module
|
2
|
+
module DbModels
|
3
3
|
class TranslationKey < ActiveRecord::Base
|
4
4
|
has_many :translations, :class_name=>'TranslationText'
|
5
5
|
validates_uniqueness_of :key
|
@@ -10,6 +10,15 @@ module FastGettext::TranslationRepository
|
|
10
10
|
return unless translation_text = translation_key.translations.find_by_locale(locale)
|
11
11
|
translation_text.text
|
12
12
|
end
|
13
|
+
|
14
|
+
def self.available_locales
|
15
|
+
@@available_locales ||= TranslationText.count(:group=>:locale).keys.sort
|
16
|
+
end
|
17
|
+
|
18
|
+
#this is only for ActiveSupport to get polymorphic_url FastGettext::... namespace free
|
19
|
+
def self.model_name
|
20
|
+
ActiveSupport::ModelName.new('TranslationKey')
|
21
|
+
end
|
13
22
|
end
|
14
23
|
end
|
15
24
|
end
|
@@ -3,9 +3,9 @@ require File.join(current_folder,'..','..','spec_helper')
|
|
3
3
|
|
4
4
|
require 'activerecord'
|
5
5
|
require 'fast_gettext/translation_repository/db'
|
6
|
-
include FastGettext::TranslationRepository::
|
6
|
+
include FastGettext::TranslationRepository::Db.require_models
|
7
7
|
|
8
|
-
describe FastGettext::TranslationRepository::
|
8
|
+
describe FastGettext::TranslationRepository::Db do
|
9
9
|
before :all do
|
10
10
|
ActiveRecord::Base.establish_connection({
|
11
11
|
:adapter => "sqlite3",
|
@@ -31,7 +31,7 @@ describe FastGettext::TranslationRepository::DB do
|
|
31
31
|
TranslationKey.delete_all
|
32
32
|
TranslationText.delete_all
|
33
33
|
FastGettext.locale = 'de'
|
34
|
-
@rep = FastGettext::TranslationRepository::
|
34
|
+
@rep = FastGettext::TranslationRepository::Db.new('x', :model=>TranslationKey)
|
35
35
|
end
|
36
36
|
|
37
37
|
def create_translation(key, text)
|
@@ -39,9 +39,12 @@ describe FastGettext::TranslationRepository::DB do
|
|
39
39
|
TranslationText.create!(:translation_key_id=>translation_key.id, :text=>text, :locale=>'de')
|
40
40
|
end
|
41
41
|
|
42
|
-
it "
|
43
|
-
|
44
|
-
|
42
|
+
it "reads locales from the db" do
|
43
|
+
locales = ['de','en','es']
|
44
|
+
locales.reverse.each do |locale|
|
45
|
+
TranslationText.create!(:translation_key_id=>1, :text=>'asdasd', :locale=>locale)
|
46
|
+
end
|
47
|
+
@rep.available_locales.should == locales
|
45
48
|
end
|
46
49
|
|
47
50
|
it "has no pluralisation_rule by default" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grosser-fast_gettext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-29 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|