q_translate 0.0.1 → 0.0.2
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/.gitignore +1 -2
- data/.rvmrc +1 -0
- data/Gemfile +0 -2
- data/lib/q_translate.rb +24 -24
- data/lib/q_translate/version.rb +1 -1
- data/q_translate.gemspec +4 -3
- data/spec/q_translate/q_translate_spec.rb +35 -23
- metadata +15 -11
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.3-p385@q_translate --create
|
data/Gemfile
CHANGED
data/lib/q_translate.rb
CHANGED
@@ -1,40 +1,40 @@
|
|
1
1
|
require "q_translate/version"
|
2
2
|
|
3
|
-
module QTranslate
|
4
|
-
|
3
|
+
module QTranslate
|
5
4
|
class Translation
|
6
5
|
|
7
|
-
attr_accessor :
|
6
|
+
attr_accessor :text, :locale, :fallback
|
8
7
|
|
9
|
-
def initialize text
|
10
|
-
@
|
8
|
+
def initialize text, options={}
|
9
|
+
@text = text
|
10
|
+
@locale = options[:locale] || I18n.locale
|
11
|
+
@fallback = options[:fallback] || true
|
11
12
|
end
|
12
13
|
|
13
|
-
def
|
14
|
-
|
14
|
+
def translate
|
15
|
+
return @text if @text and @text.blank?
|
16
|
+
return translations[@locale] if translations.has_key?(@locale)
|
17
|
+
return translations[I18n.default_locale] if @fallback and translations.has_key?(I18n.default_locale)
|
18
|
+
return '' if translations.keys.any?
|
19
|
+
@text
|
15
20
|
end
|
16
21
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
translations[locale]
|
21
|
-
elsif translations.has_key? I18n.default_locale
|
22
|
-
translations[I18n.default_locale]
|
23
|
-
else
|
24
|
-
@original
|
25
|
-
end
|
22
|
+
def translations
|
23
|
+
@translations ||= split_locales
|
24
|
+
@translations
|
26
25
|
end
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
protected
|
28
|
+
|
29
|
+
def split_locales
|
30
|
+
translations_per_locale = {}
|
31
|
+
self.text.split('<!--:-->').each do |t|
|
31
32
|
t.match(/^<!--:([\w]{2})/) do |lang|
|
32
|
-
|
33
|
+
translations_per_locale[lang[1].to_sym] = t.gsub(/<!--:#{lang[1]}-->(.*)/, '\1')
|
33
34
|
end
|
34
35
|
end
|
35
|
-
|
36
|
+
translations_per_locale
|
36
37
|
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
38
|
+
|
39
|
+
end
|
40
40
|
end
|
data/lib/q_translate/version.rb
CHANGED
data/q_translate.gemspec
CHANGED
@@ -4,17 +4,18 @@ require File.expand_path('../lib/q_translate/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = "q_translate"
|
6
6
|
gem.authors = ["Mathieu Gagné"]
|
7
|
-
gem.email = ["mathieu@
|
7
|
+
gem.email = ["gagne.mathieu@hotmail.com"]
|
8
8
|
gem.description = %q{Extends String with a 'translate' method. Returned value is the according translated text for a Wordpress Post translated by QTranslate plugin.}
|
9
9
|
gem.summary = %q{Extends String with a 'translate' method. Returned value is the according translated text for a Wordpress Post translated by QTranslate plugin. Useful for Wordpress integration in a Rails app where the admin bloggin side is handled by Wordpress Engine. The default value if translation is not provided is English.}
|
10
|
-
gem.homepage = "http://github.com/
|
10
|
+
gem.homepage = "http://github.com/mathieugagne/q-translate"
|
11
11
|
|
12
12
|
gem.files = `git ls-files`.split($\)
|
13
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
-
gem.test_files = gem.files.grep(%r{^(
|
14
|
+
gem.test_files = gem.files.grep(%r{^(spec)/})
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = QTranslate::VERSION
|
17
17
|
|
18
|
+
gem.add_development_dependency 'rails'
|
18
19
|
gem.add_development_dependency 'rspec'
|
19
20
|
|
20
21
|
end
|
@@ -3,50 +3,62 @@ require 'spec_helper'
|
|
3
3
|
TEST_STRING = "<!--:en-->And this is how the Universe ended.<!--:--><!--:fr-->Et c'est ainsi que l'univers connu cessa d'exister.<!--:-->"
|
4
4
|
|
5
5
|
describe QTranslate::Translation do
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
@text = QTranslate::Translation.new(TEST_STRING)
|
9
|
-
end
|
10
6
|
|
11
|
-
describe '
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
it "
|
7
|
+
describe '#translate' do
|
8
|
+
|
9
|
+
context 'when translated' do
|
10
|
+
|
11
|
+
it "returns appropriate translation if locale is set" do
|
16
12
|
I18n.locale = :fr
|
13
|
+
@text = QTranslate::Translation.new(TEST_STRING)
|
17
14
|
@text.translate.should match "Et c'est ainsi que l'univers connu cessa d'exister."
|
18
15
|
end
|
19
16
|
|
20
|
-
it "
|
21
|
-
I18n.locale = :
|
17
|
+
it "returns appropriate translation and overrides default if locale is passed as option" do
|
18
|
+
I18n.locale = :fr
|
19
|
+
@text = QTranslate::Translation.new(TEST_STRING, locale: :en)
|
22
20
|
@text.translate.should match "And this is how the Universe ended."
|
23
21
|
end
|
24
|
-
|
22
|
+
|
25
23
|
end
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
25
|
+
context 'when not translated' do
|
26
|
+
|
27
|
+
context 'when fallback is true' do
|
28
|
+
it "returns default locale" do
|
29
|
+
I18n.locale = :es
|
30
|
+
@text = QTranslate::Translation.new(TEST_STRING)
|
31
|
+
@text.translate.should match 'And this is how the Universe ended.'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
context 'when fallback is false' do
|
35
|
+
it 'returns an empty string' do
|
36
|
+
I18n.locale = :es
|
37
|
+
@text = QTranslate::Translation.new(TEST_STRING)
|
38
|
+
@text.translate.should match ''
|
39
|
+
end
|
32
40
|
end
|
33
41
|
|
34
|
-
it "
|
42
|
+
it "returns itself if no sign of translation" do
|
35
43
|
@text = QTranslate::Translation.new("Whatever man!")
|
36
44
|
@text.translate.should match "Whatever man!"
|
37
45
|
end
|
46
|
+
|
47
|
+
it "returns an empty string if translations are present but none match" do
|
48
|
+
end
|
38
49
|
|
39
50
|
end
|
40
51
|
end
|
41
|
-
|
42
|
-
describe '
|
43
|
-
|
44
|
-
it "
|
52
|
+
|
53
|
+
describe '#translations' do
|
54
|
+
|
55
|
+
it "returns a hash of locales and associated translated text" do
|
56
|
+
@text = QTranslate::Translation.new(TEST_STRING)
|
45
57
|
@text.translations.should be_a Hash
|
46
58
|
@text.translations.should have(2).keys
|
47
59
|
@text.translations[:en].should match "And this is how the Universe ended."
|
48
60
|
@text.translations[:fr].should match "Et c'est ainsi que l'univers connu cessa d'exister."
|
49
61
|
end
|
50
|
-
|
62
|
+
|
51
63
|
end
|
52
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: q_translate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
15
|
+
name: rails
|
16
|
+
requirement: &18422460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,35 +21,39 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: *18422460
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &18421980 !ruby/object:Gem::Requirement
|
25
28
|
none: false
|
26
29
|
requirements:
|
27
30
|
- - ! '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *18421980
|
30
36
|
description: Extends String with a 'translate' method. Returned value is the according
|
31
37
|
translated text for a Wordpress Post translated by QTranslate plugin.
|
32
38
|
email:
|
33
|
-
- mathieu@
|
39
|
+
- gagne.mathieu@hotmail.com
|
34
40
|
executables: []
|
35
41
|
extensions: []
|
36
42
|
extra_rdoc_files: []
|
37
43
|
files:
|
38
44
|
- .gitignore
|
39
45
|
- .rspec
|
46
|
+
- .rvmrc
|
40
47
|
- Gemfile
|
41
48
|
- LICENSE
|
42
49
|
- README.md
|
43
50
|
- Rakefile
|
44
51
|
- lib/q_translate.rb
|
45
52
|
- lib/q_translate/version.rb
|
46
|
-
- nbproject/private/rake-d.txt
|
47
|
-
- nbproject/project.properties
|
48
|
-
- nbproject/project.xml
|
49
53
|
- q_translate.gemspec
|
50
54
|
- spec/q_translate/q_translate_spec.rb
|
51
55
|
- spec/spec_helper.rb
|
52
|
-
homepage: http://github.com/
|
56
|
+
homepage: http://github.com/mathieugagne/q-translate
|
53
57
|
licenses: []
|
54
58
|
post_install_message:
|
55
59
|
rdoc_options: []
|
@@ -69,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
73
|
version: '0'
|
70
74
|
requirements: []
|
71
75
|
rubyforge_project:
|
72
|
-
rubygems_version: 1.8.
|
76
|
+
rubygems_version: 1.8.10
|
73
77
|
signing_key:
|
74
78
|
specification_version: 3
|
75
79
|
summary: Extends String with a 'translate' method. Returned value is the according
|