ecm_translations2 2.0.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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +29 -0
- data/Rakefile +25 -0
- data/app/admin/ecm_translations_translations.rb +55 -0
- data/app/models/ecm/translations/translation.rb +16 -0
- data/app/services/ecm/translations/import_translations_service.rb +94 -0
- data/config/initializers/i18n_backend.rb +16 -0
- data/config/locales/de.yml +21 -0
- data/config/locales/en.yml +21 -0
- data/db/migrate/001_create_ecm_translations_translations.rb +13 -0
- data/db/migrate/002_add_unique_index_to_locale_and_key_on_ecm_translations_translations.rb +5 -0
- data/lib/ecm/translations/configuration.rb +16 -0
- data/lib/ecm/translations/engine.rb +16 -0
- data/lib/ecm/translations/routing.rb +11 -0
- data/lib/ecm/translations/version.rb +5 -0
- data/lib/ecm_translations2.rb +13 -0
- data/lib/generators/ecm/translations/install/install_generator.rb +15 -0
- data/lib/generators/ecm/translations/install/templates/ecm_translations.rb +8 -0
- data/lib/generators/ecm/translations/locales/locales_generator.rb +16 -0
- data/lib/tasks/ecm_translations_tasks.rake +4 -0
- metadata +343 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 989ddaca5e4c1556af68460b79fd151bdd07a923
|
4
|
+
data.tar.gz: 3660df547fcbf574d1568ad21cc350d3622de61f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 62bdbb1ad66f41def99c27e044d53ac1c650cf5dac7c3f3d5a919584e84ee676a38abffab75b433f09575e17fbf2c5a8fd2e7cde3cbae9f5c000d922f6ae7506
|
7
|
+
data.tar.gz: 015f8fa493a3cd085c7ffc541bda292cf377be5d0fb419c53fdb58d13e60917954251472a3ba3f443b0d96d956e23c3ccd8a8ec312699cc876f1b039708f5839
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2015 Roberto Vasquez Angel
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
= ECM Translations 2
|
2
|
+
|
3
|
+
= Installation
|
4
|
+
|
5
|
+
Add it to your Gemfile:
|
6
|
+
|
7
|
+
#Gemfile
|
8
|
+
gem 'ecm_translations2'
|
9
|
+
|
10
|
+
Bundle:
|
11
|
+
|
12
|
+
> bundle install
|
13
|
+
|
14
|
+
Add Migrations and migrate:
|
15
|
+
|
16
|
+
rake ecm_translations_engine:install:migrations && rake db:migrate
|
17
|
+
|
18
|
+
Install the initializer
|
19
|
+
|
20
|
+
rails g ecm:translations:install
|
21
|
+
|
22
|
+
= How to run the specs
|
23
|
+
|
24
|
+
bundle
|
25
|
+
cd spec/dummy && rake db:migrate RAILS_ENV=test && cd ../..
|
26
|
+
rspec spec
|
27
|
+
|
28
|
+
|
29
|
+
This project rocks and uses MIT-LICENSE.
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'rdoc/task'
|
9
|
+
rescue LoadError
|
10
|
+
require 'rdoc/rdoc'
|
11
|
+
require 'rake/rdoctask'
|
12
|
+
RDoc::Task = Rake::RDocTask
|
13
|
+
end
|
14
|
+
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
17
|
+
rdoc.title = 'ECM Translations 2'
|
18
|
+
rdoc.options << '--line-numbers'
|
19
|
+
rdoc.rdoc_files.include('README.rdoc')
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
|
+
end
|
22
|
+
|
23
|
+
Bundler::GemHelper.install_tasks
|
24
|
+
|
25
|
+
require 'rails/dummy/tasks'
|
@@ -0,0 +1,55 @@
|
|
1
|
+
ActiveAdmin.register Ecm::Translations::Translation do
|
2
|
+
menu parent: proc { I18n.t('activeadmin.menu.ecm.translations') }.call
|
3
|
+
|
4
|
+
permit_params :interpolations,
|
5
|
+
:is_proc,
|
6
|
+
:key,
|
7
|
+
:locale,
|
8
|
+
:value
|
9
|
+
|
10
|
+
scope :all, default: true
|
11
|
+
I18n.available_locales.each do |locale|
|
12
|
+
scope(locale) { |translation| translation.where(locale: locale) }
|
13
|
+
end
|
14
|
+
|
15
|
+
form do |f|
|
16
|
+
f.inputs do
|
17
|
+
f.input :locale, collection: I18n.available_locales.collect { |locale| [locale, locale] }
|
18
|
+
f.input :key
|
19
|
+
f.input :value
|
20
|
+
f.input :interpolations
|
21
|
+
f.input :is_proc
|
22
|
+
end
|
23
|
+
|
24
|
+
f.actions
|
25
|
+
end
|
26
|
+
|
27
|
+
index do
|
28
|
+
selectable_column
|
29
|
+
|
30
|
+
column :id
|
31
|
+
column :locale
|
32
|
+
column :key
|
33
|
+
column :value
|
34
|
+
column :interpolations
|
35
|
+
column :is_proc
|
36
|
+
column :created_at
|
37
|
+
column :updated_at
|
38
|
+
|
39
|
+
actions
|
40
|
+
end
|
41
|
+
|
42
|
+
show do
|
43
|
+
attributes_table do
|
44
|
+
row :id
|
45
|
+
row :locale
|
46
|
+
row :key
|
47
|
+
row :value
|
48
|
+
row :interpolations
|
49
|
+
row :is_proc
|
50
|
+
row :created_at
|
51
|
+
row :updated_at
|
52
|
+
end
|
53
|
+
active_admin_comments
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ecm::Translations
|
2
|
+
class Translation < ActiveRecord::Base
|
3
|
+
|
4
|
+
# validations
|
5
|
+
validates :locale, presence: true
|
6
|
+
validates :key, presence: true, uniqueness: { scope: :locale }
|
7
|
+
|
8
|
+
after_save do
|
9
|
+
I18n.reload!
|
10
|
+
end
|
11
|
+
|
12
|
+
def human
|
13
|
+
"#{self.class.model_name.human}: #{locale} | #{key}: #{value}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module Ecm::Translations
|
2
|
+
class ImportTranslationsService
|
3
|
+
|
4
|
+
class TranslationInFileSystem
|
5
|
+
attr_accessor :key, :locale, :raw_key, :value
|
6
|
+
def initialize(raw_key, value)
|
7
|
+
@raw_key, @value = raw_key, value
|
8
|
+
end
|
9
|
+
|
10
|
+
def human
|
11
|
+
"#{locale} | #{@key}: #{@value}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def key
|
15
|
+
@raw_key.split(".").drop(1).join(".")
|
16
|
+
end
|
17
|
+
|
18
|
+
def locale
|
19
|
+
@raw_key.split(".").first
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_translation_attributes_hash
|
23
|
+
{
|
24
|
+
locale: locale,
|
25
|
+
key: key,
|
26
|
+
value: value,
|
27
|
+
is_proc: false
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.call(*args)
|
33
|
+
new(*args).do_work
|
34
|
+
end
|
35
|
+
|
36
|
+
def initialize(options = {})
|
37
|
+
options.reverse_merge!({ translations: load_translations_from_backends })
|
38
|
+
@source_translations = options[:translations]
|
39
|
+
end
|
40
|
+
|
41
|
+
def do_work
|
42
|
+
puts "Environment: #{Rails.env}"
|
43
|
+
@translations = load_translations
|
44
|
+
translations_count = @translations.size
|
45
|
+
puts "Processing #{translations_count} translations:"
|
46
|
+
@translations.each_with_index do |translation, index|
|
47
|
+
puts " (#{index + 1}/#{translations_count}) #{translation.human}"
|
48
|
+
translation = Translation.new(translation.to_translation_attributes_hash)
|
49
|
+
if translation.save
|
50
|
+
puts " Created #{translation.human}"
|
51
|
+
else
|
52
|
+
puts " Could not create #{translation.human}. Errors: #{translation.errors.full_messages}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def load_translations
|
60
|
+
self.class.to_dotted_hash(@source_translations).collect { |key, value| TranslationInFileSystem.new(key, value) }
|
61
|
+
end
|
62
|
+
|
63
|
+
def load_translations_from_backends
|
64
|
+
if I18n.backend.respond_to?(:translations)
|
65
|
+
I18n.backend.send(:init_translations) unless backend.initialized?
|
66
|
+
return I18n.backend.send(:translations)
|
67
|
+
end
|
68
|
+
|
69
|
+
if I18n.backend.respond_to?(:backends)
|
70
|
+
return I18n.backend.backends.reject{ |backend| backend.class.name == 'I18n::Backend::ActiveRecord' }.collect do |backend|
|
71
|
+
backend.send(:init_translations) unless backend.initialized?
|
72
|
+
backend.send(:translations)
|
73
|
+
end.reduce({}, :merge)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
# def load_translations_raw
|
77
|
+
# I18n.backend.backends.reject{ |backend| backend.class == I18n::Backend::ActiveRecord }.collect do |backend|
|
78
|
+
# backend.send(:init_translations) unless backend.initialized?
|
79
|
+
# backend.send(:translations)
|
80
|
+
# end.reduce({}, :merge)
|
81
|
+
# end
|
82
|
+
|
83
|
+
def self.to_dotted_hash(hash, recursive_key = "")
|
84
|
+
hash.each_with_object({}) do |(k, v), ret|
|
85
|
+
key = recursive_key + k.to_s
|
86
|
+
if v.is_a? Hash
|
87
|
+
ret.merge! to_dotted_hash(v, key + ".")
|
88
|
+
else
|
89
|
+
ret[key] = v
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'i18n/backend/active_record'
|
2
|
+
|
3
|
+
class I18n::Backend::ActiveRecord::Translation
|
4
|
+
self.table_name = 'ecm_translations_translations'
|
5
|
+
end
|
6
|
+
|
7
|
+
if I18n::Backend::ActiveRecord::Translation.table_exists?
|
8
|
+
backends = [I18n::Backend::ActiveRecord.new, I18n.backend]
|
9
|
+
# actual_backend = I18n.backend
|
10
|
+
# database_backend = I18n::Backend::ActiveRecord.new
|
11
|
+
if Ecm::Translations::Configuration.prefer_database_translations
|
12
|
+
I18n.backend = I18n::Backend::Chain.new(*backends)
|
13
|
+
else
|
14
|
+
I18n.backend = I18n::Backend::Chain.new(*backends.reverse)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
de:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
ecm/translations/translation:
|
5
|
+
interpolations: Interpolationen
|
6
|
+
is_proc: Ist eine Prozedur?
|
7
|
+
key: Schlüssel
|
8
|
+
locale: Sprache
|
9
|
+
value: Wert
|
10
|
+
created_at: Erstellt am
|
11
|
+
udpated_at: Aktualisiert am
|
12
|
+
models:
|
13
|
+
ecm/translations/translation:
|
14
|
+
one: Übersetzung
|
15
|
+
other: Übersetzungen
|
16
|
+
activeadmin:
|
17
|
+
menu:
|
18
|
+
ecm:
|
19
|
+
translations: Übersetzungen
|
20
|
+
routes:
|
21
|
+
ecm_translations: uebersetzungen
|
@@ -0,0 +1,21 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
ecm/translations/translation:
|
5
|
+
interpolations: interpolations
|
6
|
+
is_proc: is proc?
|
7
|
+
key: Key
|
8
|
+
locale: Language
|
9
|
+
value: Value
|
10
|
+
created_at: created at
|
11
|
+
udpated_at: udpated at
|
12
|
+
models:
|
13
|
+
ecm/translations/translation:
|
14
|
+
one: Translation
|
15
|
+
other: Translations
|
16
|
+
activeadmin:
|
17
|
+
menu:
|
18
|
+
ecm:
|
19
|
+
translations: translations
|
20
|
+
routes:
|
21
|
+
ecm_translations: translations
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateEcmTranslationsTranslations < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :ecm_translations_translations do |t|
|
4
|
+
t.string :locale
|
5
|
+
t.string :key
|
6
|
+
t.text :value
|
7
|
+
t.text :interpolations
|
8
|
+
t.boolean :is_proc, default: false
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'active_support/core_ext/module/delegation'
|
2
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
3
|
+
|
4
|
+
module Ecm
|
5
|
+
module Translations
|
6
|
+
module Configuration
|
7
|
+
def configure
|
8
|
+
yield self
|
9
|
+
end
|
10
|
+
|
11
|
+
mattr_accessor :prefer_database_translations do
|
12
|
+
true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ecm
|
2
|
+
module Translations
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
config.generators do |g|
|
5
|
+
g.test_framework :rspec, fixture: false
|
6
|
+
g.fixture_replacement :factory_girl, dir: 'spec/factories'
|
7
|
+
end
|
8
|
+
|
9
|
+
initializer :ecm_translations_engine do
|
10
|
+
ActiveAdmin.setup do |config|
|
11
|
+
config.load_paths << File.join(root, 'app/admin')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Ecm
|
2
|
+
module Translations
|
3
|
+
module Generators
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
desc 'Generates the intializer'
|
6
|
+
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
def generate_intializer
|
10
|
+
copy_file 'ecm_translations.rb', 'config/initializers/ecm_translations.rb'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Ecm::Translations.configure do |config|
|
2
|
+
# Whether to prefer translations from the database or not. If set to true,
|
3
|
+
# translations coming from the database will override translations in yaml
|
4
|
+
# files.
|
5
|
+
#
|
6
|
+
# Default: config.prefer_database_translations = true
|
7
|
+
config.prefer_database_translations = true
|
8
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ecm
|
2
|
+
module Translations
|
3
|
+
module Generators
|
4
|
+
class LocalesGenerator < Rails::Generators::Base
|
5
|
+
desc 'Copies the locale files to your application'
|
6
|
+
|
7
|
+
source_root File.expand_path('../../../../../../config/locales', __FILE__)
|
8
|
+
|
9
|
+
def generate_locales
|
10
|
+
copy_file 'en.yml', 'config/locales/ecm.translations.en.yml'
|
11
|
+
copy_file 'de.yml', 'config/locales/ecm.translations.de.yml'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,343 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ecm_translations2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Roberto Vasquez Angel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: i18n-active_record
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rails-dummy
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: thin
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sqlite3
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: jquery-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rails-i18n
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: devise
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: activeadmin
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sass-rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: coffee-rails
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: route_translator
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: capybara
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rspec-rails
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: shoulda-matchers
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: factory_girl_rails
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: guard-rails
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: guard-rspec
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: guard-bundler
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: rubocop
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
description: Provides database storage and UI for I18n translations.
|
294
|
+
email:
|
295
|
+
- roberto@vasquez-angel.de
|
296
|
+
executables: []
|
297
|
+
extensions: []
|
298
|
+
extra_rdoc_files: []
|
299
|
+
files:
|
300
|
+
- MIT-LICENSE
|
301
|
+
- README.rdoc
|
302
|
+
- Rakefile
|
303
|
+
- app/admin/ecm_translations_translations.rb
|
304
|
+
- app/models/ecm/translations/translation.rb
|
305
|
+
- app/services/ecm/translations/import_translations_service.rb
|
306
|
+
- config/initializers/i18n_backend.rb
|
307
|
+
- config/locales/de.yml
|
308
|
+
- config/locales/en.yml
|
309
|
+
- db/migrate/001_create_ecm_translations_translations.rb
|
310
|
+
- db/migrate/002_add_unique_index_to_locale_and_key_on_ecm_translations_translations.rb
|
311
|
+
- lib/ecm/translations/configuration.rb
|
312
|
+
- lib/ecm/translations/engine.rb
|
313
|
+
- lib/ecm/translations/routing.rb
|
314
|
+
- lib/ecm/translations/version.rb
|
315
|
+
- lib/ecm_translations2.rb
|
316
|
+
- lib/generators/ecm/translations/install/install_generator.rb
|
317
|
+
- lib/generators/ecm/translations/install/templates/ecm_translations.rb
|
318
|
+
- lib/generators/ecm/translations/locales/locales_generator.rb
|
319
|
+
- lib/tasks/ecm_translations_tasks.rake
|
320
|
+
homepage: https://github.com/robotex82/ecm_translations2
|
321
|
+
licenses: []
|
322
|
+
metadata: {}
|
323
|
+
post_install_message:
|
324
|
+
rdoc_options: []
|
325
|
+
require_paths:
|
326
|
+
- lib
|
327
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
328
|
+
requirements:
|
329
|
+
- - ">="
|
330
|
+
- !ruby/object:Gem::Version
|
331
|
+
version: '0'
|
332
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
333
|
+
requirements:
|
334
|
+
- - ">="
|
335
|
+
- !ruby/object:Gem::Version
|
336
|
+
version: '0'
|
337
|
+
requirements: []
|
338
|
+
rubyforge_project:
|
339
|
+
rubygems_version: 2.4.8
|
340
|
+
signing_key:
|
341
|
+
specification_version: 4
|
342
|
+
summary: ECM Translations 2 Module.
|
343
|
+
test_files: []
|