grosser-fast_gettext 0.3.0 → 0.3.1
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
CHANGED
@@ -34,8 +34,8 @@ Start translating
|
|
34
34
|
Disable translation errors(like no text domain setup) while doing e.g. console session / testing
|
35
35
|
FastGettext.silence_errors
|
36
36
|
|
37
|
-
|
38
|
-
|
37
|
+
Performance
|
38
|
+
===========
|
39
39
|
50_000 translations speed / memory
|
40
40
|
small translation file <-> large translation file
|
41
41
|
Baseline: (doing nothing in a loop)
|
@@ -93,7 +93,7 @@ Advanced features
|
|
93
93
|
=================
|
94
94
|
###Abnormal pluralisation
|
95
95
|
Pluralisation rules can be set directly via a lambda (see code/specs), or by using the Gettext
|
96
|
-
plural definition (see spec/locale/en/test_plural.po or [
|
96
|
+
plural definition (see spec/locale/en/test_plural.po or [Plural expressions for all languages](http://translate.sourceforge.net/wiki/l10n/pluralforms).
|
97
97
|
|
98
98
|
###Plugins
|
99
99
|
Want a yml, xml, database version ?
|
@@ -102,7 +102,7 @@ Write your own TranslationRepository!
|
|
102
102
|
module FastGettext
|
103
103
|
module TranslationRepository
|
104
104
|
class Wtf
|
105
|
-
define initialize(name,options), available_locales, [key], plural(
|
105
|
+
define initialize(name,options), available_locales, [key], plural(*msgids)
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
data/VERSION.yml
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'fast_gettext/mo_file'
|
2
|
+
module FastGettext
|
3
|
+
# Responsibility:
|
4
|
+
# - abstract po files for Po Repository
|
5
|
+
# TODO refactor...
|
6
|
+
class PoFile
|
7
|
+
def self.to_mo_file(file)
|
8
|
+
require File.join(File.dirname(__FILE__),'..','..','vendor','poparser')
|
9
|
+
mo_file = FastGettext::GetText::MOFile.new
|
10
|
+
FastGettext::GetText::PoParser.new.parse(File.read(file),mo_file)
|
11
|
+
MoFile.new(mo_file)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -31,6 +31,7 @@ module FastGettext
|
|
31
31
|
|
32
32
|
translations = FastGettext.current_repository.plural(*msgids)
|
33
33
|
selected = FastGettext.current_repository.pluralisation_rule.call(count)
|
34
|
+
selected = selected ? 1 : 0 unless selected.is_a? Numeric #convert booleans to numbers
|
34
35
|
translations[selected] || msgids[selected] || msgids.last
|
35
36
|
end
|
36
37
|
|
@@ -8,12 +8,9 @@ module FastGettext
|
|
8
8
|
class Po < Mo
|
9
9
|
protected
|
10
10
|
def find_and_store_files(name,options)
|
11
|
-
require
|
12
|
-
require 'fast_gettext/mo_file'
|
11
|
+
require 'fast_gettext/po_file'
|
13
12
|
find_files_in_locale_folders("#{name}.po",options[:path]) do |locale,file|
|
14
|
-
|
15
|
-
FastGettext::GetText::PoParser.new.parse(File.read(file),mo_file)
|
16
|
-
@files[locale] = MoFile.new(mo_file)
|
13
|
+
@files[locale] = PoFile.to_mo_file(file)
|
17
14
|
end
|
18
15
|
end
|
19
16
|
end
|
@@ -33,22 +33,33 @@ describe FastGettext::Translation do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe :n_ do
|
36
|
+
before do
|
37
|
+
FastGettext.current_repository.pluralisation_rule = lambda{|n|n==1?0:1}
|
38
|
+
end
|
39
|
+
|
36
40
|
it "translates pluralized" do
|
37
41
|
n_('Axis','Axis',1).should == 'Achse'
|
38
42
|
n_('Axis','Axis',2).should == 'Achsen'
|
39
43
|
n_('Axis','Axis',0).should == 'Achsen'
|
40
44
|
end
|
41
45
|
|
42
|
-
|
43
|
-
|
46
|
+
describe "pluralisations rules" do
|
47
|
+
it "supports abstract pluralisation rules" do
|
44
48
|
FastGettext.current_repository.pluralisation_rule = lambda{|n|2}
|
45
49
|
n_('a','b','c','d',4).should == 'c'
|
46
|
-
ensure
|
47
|
-
#restore default
|
48
|
-
FastGettext.current_repository.pluralisation_rule = lambda{|n|n==1?0:1}
|
49
50
|
end
|
50
|
-
end
|
51
51
|
|
52
|
+
it "supports false as singular" do
|
53
|
+
FastGettext.current_repository.pluralisation_rule = lambda{|n|n!=2}
|
54
|
+
n_('singular','plural','c','d',2).should == 'singular'
|
55
|
+
end
|
56
|
+
|
57
|
+
it "supports true as plural" do
|
58
|
+
FastGettext.current_repository.pluralisation_rule = lambda{|n|n==2}
|
59
|
+
n_('singular','plural','c','d',2).should == 'plural'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
52
63
|
it "returns the appropriate msgid if no translation was found" do
|
53
64
|
n_('NOTFOUND','NOTFOUNDs',1).should == 'NOTFOUND'
|
54
65
|
n_('NOTFOUND','NOTFOUNDs',2).should == 'NOTFOUNDs'
|
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.3.
|
4
|
+
version: 0.3.1
|
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-03-
|
12
|
+
date: 2009-03-17 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -27,6 +27,7 @@ files:
|
|
27
27
|
- lib/fast_gettext
|
28
28
|
- lib/fast_gettext.rb
|
29
29
|
- lib/fast_gettext/mo_file.rb
|
30
|
+
- lib/fast_gettext/po_file.rb
|
30
31
|
- lib/fast_gettext/storage.rb
|
31
32
|
- lib/fast_gettext/translation.rb
|
32
33
|
- lib/fast_gettext/translation_repository
|