Commit 34f24993
Changed files (4)
config/i18n-tasks.yml
@@ -0,0 +1,89 @@
+# i18n-tasks finds and manages missing and unused translations https://github.com/glebm/i18n-tasks
+
+base_locale: en
+## i18n-tasks detects locales automatically from the existing locale files
+## uncomment to set locales explicitly
+# locales: [en, es, fr]
+
+## i18n-tasks report locale, default: en, available: en, ru
+# internal_locale: ru
+
+# Read and write locale data
+data:
+ ## by default, translation data are read from the file system, or you can provide a custom data adapter
+ # adapter: I18n::Tasks::Data::FileSystem
+
+ # Locale files to read from
+ read:
+ - config/locales/%{locale}.yml
+ # - config/locales/*.%{locale}.yml
+ # - config/locales/**/*.%{locale}.yml
+
+ # key => file routes, matched top to bottom
+ write:
+ ## E.g., write devise and simple form keys to their respective files
+ # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml']
+ # Catch-all
+ - config/locales/%{locale}.yml
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
+
+ # YAML / JSON serializer options, passed to load / dump / parse / serialize
+ yaml:
+ write:
+ # do not wrap lines at 80 characters
+ line_width: -1
+ json:
+ write:
+ # pretty print JSON
+ indent: ' '
+ space: ' '
+ object_nl: "\n"
+ array_nl: "\n"
+
+# Find translate calls
+search:
+ ## Default scanner finds t() and I18n.t() calls
+ # scanner: I18n::Tasks::Scanners::PatternWithScopeScanner
+
+ ## Paths to search in, passed to File.find
+ paths:
+ - app/
+
+ ## Root for resolving relative keys (default)
+ # relative_roots:
+ # - app/views
+
+ ## File.fnmatch patterns to exclude from search (default)
+ # exclude: ["*.jpg", "*.png", "*.gif", "*.svg", "*.ico", "*.eot", "*.ttf", "*.woff", "*.pdf"]
+
+ ## Or, File.fnmatch patterns to include
+ # include: ["*.rb", "*.html.slim"]
+
+## Google Translate
+# translation:
+# # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
+# api_key: "AbC-dEf5"
+
+## Consider these keys not missing
+# ignore_missing:
+# - 'errors.messages.{accepted,blank,invalid,too_short,too_long}'
+# - '{devise,simple_form}.*'
+
+## Consider these keys used
+# ignore_unused:
+# - 'activerecord.attributes.*'
+# - '{devise,kaminari,will_paginate}.*'
+# - 'simple_form.{yes,no}'
+# - 'simple_form.{placeholders,hints,labels}.*'
+# - 'simple_form.{error_notification,required}.:'
+
+## Exclude these keys from `i18n-tasks eq-base' report
+# ignore_eq_base:
+# all:
+# - common.ok
+# fr,es:
+# - common.brand
+
+## Exclude these keys from all of the reports
+# ignore:
+# - kaminari.*
spec/i18n_spec.rb
@@ -0,0 +1,18 @@
+require 'spec_helper'
+require 'i18n/tasks'
+
+describe 'I18n' do
+ let(:i18n) { I18n::Tasks::BaseTask.new }
+ let(:missing_keys) { i18n.missing_keys }
+ let(:unused_keys) { i18n.unused_keys }
+
+ it 'does not have missing keys' do
+ expect(missing_keys).to be_empty,
+ "Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them"
+ end
+
+ it 'does not have unused keys' do
+ expect(unused_keys).to be_empty,
+ "#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them"
+ end
+end
Gemfile
@@ -70,6 +70,7 @@ group :development, :test do
gem 'spring'
gem 'byebug'
gem 'web-console', '~> 2.0'
+ gem 'i18n-tasks'
end
group :production, :staging do
Gemfile.lock
@@ -130,6 +130,10 @@ GEM
dotenv (~> 1.0)
dotenv-rails (1.0.2)
dotenv (= 1.0.2)
+ easy_translate (0.5.0)
+ json
+ thread
+ thread_safe
ejs (1.1.1)
email_validator (1.5.0)
activemodel
@@ -230,6 +234,7 @@ GEM
groupdate (2.3.0)
activesupport (>= 3)
hashie (2.0.5)
+ highline (1.6.21)
hike (1.2.3)
http (0.6.3)
http_parser.rb (~> 0.6.0)
@@ -240,6 +245,15 @@ GEM
httpi (2.3.0)
rack
i18n (0.7.0)
+ i18n-tasks (0.7.11)
+ activesupport
+ easy_translate (>= 0.5.0)
+ erubis
+ highline
+ i18n
+ slop (~> 3.5)
+ term-ansicolor
+ terminal-table
inflecto (0.0.2)
ipaddress (0.8.0)
jbuilder (2.2.6)
@@ -388,9 +402,14 @@ GEM
net-ssh (>= 2.8.0)
teaspoon (0.8.0)
railties (>= 3.2.5, < 5)
+ term-ansicolor (1.3.0)
+ tins (~> 1.0)
+ terminal-table (1.4.5)
thor (0.19.1)
+ thread (0.1.4)
thread_safe (0.3.4)
tilt (1.4.1)
+ tins (1.3.3)
turbolinks (2.5.3)
coffee-rails
twitter (5.13.0)
@@ -468,6 +487,7 @@ DEPENDENCIES
gibbon
github-markdown
groupdate
+ i18n-tasks
jbuilder (~> 2.0)
jquery-rails
jquery-turbolinks