burek 0.5.9 → 0.6.0
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/README.md +31 -7
- data/lib/config.rb +1 -1
- data/lib/core/burek_call.rb +55 -0
- data/lib/core/core.rb +48 -28
- data/lib/core/translations_store.rb +59 -0
- data/lib/rails/view_helpers.rb +1 -1
- metadata +9 -12
- data/lib/core/burek_finder.rb +0 -60
- data/lib/core/burek_replacer.rb +0 -32
- data/lib/core/locales_creator.rb +0 -120
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9cff03970830167bb22fb7c2abc148f0de082ebf
|
4
|
+
data.tar.gz: f972fc14ae5e046b12395a64ba7762d98cd5d5a1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1eaccdc6a2d8aff70ad57a7ba9728445692e0ebf251e79afec6aaa4eb4cf3ede1311f047871fff2c3cc8c107cfaf93c4e4a2332f2e0e36daf8c4814c4a859217
|
7
|
+
data.tar.gz: 553961b8f66205529f3c7c381a9db769711a3deb5cb1d7c7a1ca99de9fe9411dc17233516afbc4f75f623bf4c61d61da39551960458e3f1804415b8a320f825d
|
data/README.md
CHANGED
@@ -25,17 +25,13 @@ If you defined, for example, you want to use English and Finnish locales (and En
|
|
25
25
|
```ruby
|
26
26
|
# config/locales/burek/views/users/index.en.yml
|
27
27
|
en:
|
28
|
-
|
29
|
-
users:
|
30
|
-
all_users: All users
|
28
|
+
all_users: All users
|
31
29
|
```
|
32
30
|
|
33
31
|
```ruby
|
34
32
|
# config/locales/burek/views/users/index.fi.yml
|
35
33
|
en:
|
36
|
-
|
37
|
-
users:
|
38
|
-
all_users: TODO
|
34
|
+
all_users: TODO
|
39
35
|
```
|
40
36
|
|
41
37
|
It also replaces all burek calls with regular translation calls
|
@@ -43,12 +39,40 @@ It also replaces all burek calls with regular translation calls
|
|
43
39
|
```html
|
44
40
|
# views/users/index.html
|
45
41
|
<h1>
|
46
|
-
<%= t("
|
42
|
+
<%= t("all_users") %>
|
47
43
|
</h1>
|
48
44
|
```
|
49
45
|
|
50
46
|
That's it!
|
51
47
|
|
48
|
+
## Additional options
|
49
|
+
|
50
|
+
You can also pass a hash as second argument to burek call.
|
51
|
+
|
52
|
+
```html
|
53
|
+
# views/users/index.html
|
54
|
+
<h1>
|
55
|
+
<%= burek("All users", {key: 'users', parent_key: 'levelone.leveltwo'}) %>
|
56
|
+
</h1>
|
57
|
+
```
|
58
|
+
|
59
|
+
This call will generate following translation file:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
# config/locales/burek/views/users/index.fi.yml
|
63
|
+
en:
|
64
|
+
levelone:
|
65
|
+
leveltwo:
|
66
|
+
users: "All users"
|
67
|
+
```
|
68
|
+
|
69
|
+
```html
|
70
|
+
# views/users/index.html
|
71
|
+
<h1>
|
72
|
+
<%= t("levelone.leveltwo.users") %>
|
73
|
+
</h1>
|
74
|
+
```
|
75
|
+
|
52
76
|
## How to install it?
|
53
77
|
|
54
78
|
Just add following line to your Gemfile:
|
data/lib/config.rb
CHANGED
@@ -24,7 +24,7 @@ module Burek
|
|
24
24
|
|
25
25
|
@@configuration = BurekConfiguration.new({
|
26
26
|
search_folders: ['./app/views/**/*'],
|
27
|
-
translations_path: './config/locales/
|
27
|
+
translations_path: './config/locales/',
|
28
28
|
translation_placeholder: 'TODO',
|
29
29
|
ignore_folders_for_key: ['.','app'],
|
30
30
|
subfolder_depth: 2,
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Burek
|
2
|
+
class BurekCall
|
3
|
+
|
4
|
+
def initialize(translation, options={})
|
5
|
+
if translation.is_a?(Hash)
|
6
|
+
@translation = translation
|
7
|
+
else
|
8
|
+
@translation = {default_locale => translation }
|
9
|
+
end
|
10
|
+
@key = options[:key] || key_from_translation
|
11
|
+
@parent_key = options[:parent_key] || ''
|
12
|
+
end
|
13
|
+
|
14
|
+
def translation(locale=nil)
|
15
|
+
locale ||= default_locale
|
16
|
+
locale = locale.to_s
|
17
|
+
if @translation.has_key?(locale)
|
18
|
+
return @translation[locale]
|
19
|
+
else
|
20
|
+
return Burek.config.get(:translation_placeholder)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def key
|
25
|
+
@key
|
26
|
+
end
|
27
|
+
|
28
|
+
def parent_key
|
29
|
+
@parent_key
|
30
|
+
end
|
31
|
+
|
32
|
+
def full_key
|
33
|
+
if parent_key.nil? || parent_key.length == 0
|
34
|
+
key
|
35
|
+
else
|
36
|
+
parent_key + "." + key
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def parent_key_array
|
41
|
+
@parent_key.split('.')
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def key_from_translation
|
47
|
+
translation.downcase.gsub(' ','_')
|
48
|
+
end
|
49
|
+
|
50
|
+
def default_locale
|
51
|
+
Burek.config.get(:locales).first
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
data/lib/core/core.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'config'
|
2
2
|
require 'yaml'
|
3
|
-
require 'core/
|
4
|
-
require 'core/
|
5
|
-
|
3
|
+
require 'core/burek_call'
|
4
|
+
require 'core/translations_store'
|
5
|
+
|
6
6
|
require 'file_helpers'
|
7
7
|
|
8
8
|
module Burek
|
@@ -19,38 +19,58 @@ module Burek
|
|
19
19
|
Burek::FileHelpers.create_folder_if_missing Burek.config.get(:translations_path)
|
20
20
|
|
21
21
|
puts "Searching for burek calls..."
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
|
23
|
+
# Initializing translations store
|
24
|
+
translations = TranslationsStore.new
|
25
|
+
Burek.config.get(:locales).each do |locale|
|
26
|
+
filename = "burek.#{locale}.yml"
|
27
|
+
file_path = Burek.config.get(:translations_path) + filename
|
28
|
+
translations.load_locale locale, file_path
|
29
|
+
end
|
30
|
+
|
31
|
+
# Replacing calls and updating translations hash
|
32
|
+
Burek::FileHelpers.open_each_file do |contents, file_name|
|
33
|
+
matches = fetch_params_from_string(contents)
|
34
|
+
matches.each do |call_params|
|
35
|
+
call = burek_call_from_params_string call_params
|
36
|
+
translations.push_call call
|
37
|
+
contents.gsub!(burek_call_params_regex(call_params),"t('#{call.full_key}')")
|
38
|
+
end
|
39
|
+
File.open(file_name, "w:UTF-8") do |f|
|
40
|
+
f.write contents
|
26
41
|
end
|
27
|
-
else
|
28
|
-
puts "No burek calls found!"
|
29
42
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
43
|
+
|
44
|
+
# Saving new translations
|
45
|
+
Burek.config.get(:locales).each do |locale|
|
46
|
+
filename = "burek.#{locale}.yml"
|
47
|
+
file_path = Burek.config.get(:translations_path) + filename
|
48
|
+
translations.save_locale locale, file_path
|
49
|
+
end
|
36
50
|
|
37
51
|
puts "DONE!"
|
38
52
|
end
|
39
53
|
|
54
|
+
def self.store_burek_call_to_locale_file(call)
|
55
|
+
Burek.config.get(:locales).each do |locale|
|
56
|
+
translations_hash_to_file translation_hash, file_path
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.fetch_params_from_string(string)
|
61
|
+
string.scan(self.burek_call_params_regex).flatten
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.burek_call_from_params_string(params)
|
65
|
+
call = "BurekCall.new(#{params})"
|
66
|
+
eval call
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
40
71
|
# A regex for finiding burek calls
|
41
|
-
|
42
|
-
|
43
|
-
# Example calls it can find
|
44
|
-
# * burek('Hello world')
|
45
|
-
# * burek("Hello world")
|
46
|
-
# * burek ( "Hello world" )
|
47
|
-
#
|
48
|
-
# ==== Attributes
|
49
|
-
# * +caption+ - Use it to find burek call with specific caption.
|
50
|
-
# By default it will accept any string and capture it in group named 'key'.
|
51
|
-
#
|
52
|
-
def self.burek_call_regex(caption="(?<key>[^\\)]*)")
|
53
|
-
Regexp.new("[^a-zA-Z0-9_]burek[ \\t]*\\([ \\t]*('|\")#{caption}\('|\")[^\\)]*\\)")
|
72
|
+
def self.burek_call_params_regex(caption='([^\)]*)')
|
73
|
+
/burek *\(#{caption}\)/
|
54
74
|
end
|
55
75
|
|
56
76
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Burek
|
2
|
+
|
3
|
+
class TranslationsStore
|
4
|
+
|
5
|
+
def initialize(translations_hash={})
|
6
|
+
@translations_hash = translations_hash
|
7
|
+
end
|
8
|
+
|
9
|
+
def load_locale(locale, file_path)
|
10
|
+
locale = locale.to_s
|
11
|
+
if File.exists?(file_path)
|
12
|
+
@translations_hash = YAML::load_file(file_path) #Load
|
13
|
+
else
|
14
|
+
@translations_hash[locale] = {}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def save_locale(locale, file_path)
|
19
|
+
locale = locale.to_s
|
20
|
+
File.open(file_path, "w:UTF-8") do |f|
|
21
|
+
f.write locale_yaml(locale)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def push_call(call)
|
26
|
+
|
27
|
+
Burek.config.get(:locales).each do |locale|
|
28
|
+
# In case it's a symbole convert it to string
|
29
|
+
locale = locale.to_s
|
30
|
+
|
31
|
+
# Initialize hash for current locale
|
32
|
+
@translations_hash[locale] = {} unless @translations_hash.has_key?(locale)
|
33
|
+
|
34
|
+
# Nest hash
|
35
|
+
cur_hash = @translations_hash[locale]
|
36
|
+
call.parent_key_array.each do |item|
|
37
|
+
cur_hash[item] = {} unless cur_hash.has_key?(item)
|
38
|
+
cur_hash = cur_hash[item]
|
39
|
+
end
|
40
|
+
cur_hash[call.key] = call.translation(locale)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_hash
|
46
|
+
@translations_hash
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def locale_yaml(locale)
|
52
|
+
yaml = {locale => @translations_hash[locale] }.to_yaml # Pluck only one top level key
|
53
|
+
clean_yaml = yaml.lines.to_a[1..-1].join # Clean up first line
|
54
|
+
return clean_yaml
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/lib/rails/view_helpers.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: burek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Filip Defar
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-09-20 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: Manage your translations the easy way.
|
15
14
|
email: dabrorius@gmail.com
|
@@ -20,36 +19,34 @@ files:
|
|
20
19
|
- tasks/tasks.rb
|
21
20
|
- lib/burek.rb
|
22
21
|
- lib/config.rb
|
23
|
-
- lib/core/
|
24
|
-
- lib/core/burek_replacer.rb
|
22
|
+
- lib/core/burek_call.rb
|
25
23
|
- lib/core/core.rb
|
26
|
-
- lib/core/
|
24
|
+
- lib/core/translations_store.rb
|
27
25
|
- lib/file_helpers.rb
|
28
26
|
- lib/rails/view_helpers.rb
|
29
27
|
- README.md
|
30
28
|
homepage: https://github.com/dabrorius/burek
|
31
29
|
licenses:
|
32
30
|
- MIT
|
31
|
+
metadata: {}
|
33
32
|
post_install_message:
|
34
33
|
rdoc_options: []
|
35
34
|
require_paths:
|
36
35
|
- lib
|
37
36
|
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
37
|
requirements:
|
40
|
-
- -
|
38
|
+
- - '>='
|
41
39
|
- !ruby/object:Gem::Version
|
42
40
|
version: '0'
|
43
41
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
42
|
requirements:
|
46
|
-
- -
|
43
|
+
- - '>='
|
47
44
|
- !ruby/object:Gem::Version
|
48
45
|
version: '0'
|
49
46
|
requirements: []
|
50
47
|
rubyforge_project:
|
51
|
-
rubygems_version:
|
48
|
+
rubygems_version: 2.0.3
|
52
49
|
signing_key:
|
53
|
-
specification_version:
|
50
|
+
specification_version: 4
|
54
51
|
summary: Manage your translations the easy way.
|
55
52
|
test_files: []
|
data/lib/core/burek_finder.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'file_helpers'
|
2
|
-
|
3
|
-
module Burek
|
4
|
-
module Finder
|
5
|
-
|
6
|
-
# Searches all files within search folders for burek calls.
|
7
|
-
#
|
8
|
-
# ==== Returns
|
9
|
-
# Hash in whichs values represent burek call captions and keys represent locales file paths in which
|
10
|
-
# those captions were found
|
11
|
-
#
|
12
|
-
def self.find_burek_calls_in_files
|
13
|
-
new_translations = {}
|
14
|
-
Burek::FileHelpers.open_each_file do |contents, file_name|
|
15
|
-
filtered_path = filter_path(file_name)
|
16
|
-
matches = find_burek_calls(contents)
|
17
|
-
matches.each do |caption|
|
18
|
-
key = filtered_path + "/" + caption_to_key_part(caption)
|
19
|
-
new_translations[key] = caption
|
20
|
-
end
|
21
|
-
end
|
22
|
-
return new_translations
|
23
|
-
end
|
24
|
-
|
25
|
-
# Sanitizes caption so that it can be used as key part
|
26
|
-
def self.caption_to_key_part(caption)
|
27
|
-
caption.strip.gsub(/ +/,' ').downcase.gsub(/[^0-9a-z_ ]/i, '').split(' ')[0..3].join('_')
|
28
|
-
end
|
29
|
-
|
30
|
-
# Finds burek calls in a string
|
31
|
-
#
|
32
|
-
# ==== Attributes
|
33
|
-
# * +string+ - A string that (possibly) contains burek calls
|
34
|
-
#
|
35
|
-
# ==== Returns
|
36
|
-
# Array of burek call captions
|
37
|
-
#
|
38
|
-
def self.find_burek_calls(string)
|
39
|
-
string.scan(Burek::Core.burek_call_regex).flatten
|
40
|
-
end
|
41
|
-
|
42
|
-
# Removes file extension from a path as well as any folder that is specified as ignored folder in config
|
43
|
-
#
|
44
|
-
# ==== Attributes
|
45
|
-
# * +file_name+ - path in string format that needs to be filtered
|
46
|
-
#
|
47
|
-
# ==== Returns
|
48
|
-
# Filtered path as a string
|
49
|
-
#
|
50
|
-
def self.filter_path(file_name)
|
51
|
-
path = file_name.split('/')
|
52
|
-
path.delete_if do |item|
|
53
|
-
Burek.config.get(:ignore_folders_for_key).include? item
|
54
|
-
end
|
55
|
-
path.last.gsub!(/\.(.*?)$/,'').gsub!(/^_/,'') #strip extenison from file name
|
56
|
-
return path.join('/')
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
end
|
data/lib/core/burek_replacer.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'file_helpers'
|
2
|
-
require 'core/burek_finder'
|
3
|
-
|
4
|
-
module Burek
|
5
|
-
module Replacer
|
6
|
-
|
7
|
-
def self.replace_burek_calls_in_files(to_replace)
|
8
|
-
Burek::FileHelpers.open_each_file do |content,file_name|
|
9
|
-
processed_content = replace_burek_calls(content, to_replace)
|
10
|
-
unless processed_content.nil?
|
11
|
-
File.open(file_name, 'w') do |output_file|
|
12
|
-
output_file.print processed_content
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.replace_burek_calls(contents, to_replace)
|
19
|
-
matches = Burek::Finder.find_burek_calls(contents)
|
20
|
-
changes_made = false
|
21
|
-
matches.each do |value|
|
22
|
-
if to_replace.has_key?(value)
|
23
|
-
contents.gsub!(Burek::Core.burek_call_regex(value)," t('#{to_replace[value]}')")
|
24
|
-
changes_made = true
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
return contents if changes_made
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
data/lib/core/locales_creator.rb
DELETED
@@ -1,120 +0,0 @@
|
|
1
|
-
module Burek
|
2
|
-
module LocalesCreator
|
3
|
-
|
4
|
-
# Creates new or updates exisitng locales files. Called by Burek::Finder
|
5
|
-
#
|
6
|
-
# ==== Attributes
|
7
|
-
# * +new_translations+ - A hash of new translations that were found in search folders.
|
8
|
-
# Values represent burek call captions and keys represent locales file paths in which those captions were found.
|
9
|
-
#
|
10
|
-
# ==== Returns
|
11
|
-
# A hash of burek calls that need to be replaced by translation calls.
|
12
|
-
# Keys contain captions of burek calls and values contain key which translation keys should contain.
|
13
|
-
#
|
14
|
-
def self.create_locales(new_translations)
|
15
|
-
to_replace = {}
|
16
|
-
# Create files for each locale
|
17
|
-
Burek.config.get(:locales).each do |locale|
|
18
|
-
new_translations.each do |key,value|
|
19
|
-
path_parts = key.split("/")
|
20
|
-
item_name = path_parts.pop
|
21
|
-
path_parts_no_filename = path_parts[0..-2]
|
22
|
-
|
23
|
-
translation_file = key_to_file_path(key, locale)
|
24
|
-
translations_hash = initialize_translations_hash(translation_file, locale)
|
25
|
-
|
26
|
-
# Save info for replacing burek calls with translation calls.
|
27
|
-
# Keys are burek call captions and values are keys to be used in translation calls.
|
28
|
-
to_replace[value] = path_parts_to_key(path_parts_no_filename, item_name)
|
29
|
-
|
30
|
-
# Nest in hashes
|
31
|
-
cur_hash = translations_hash[locale]
|
32
|
-
path_parts_no_filename.each do |item|
|
33
|
-
cur_hash[item] = {} unless cur_hash.has_key?(item)
|
34
|
-
cur_hash = cur_hash[item]
|
35
|
-
end
|
36
|
-
cur_hash[string_to_key(item_name)] = ( locale == Burek.config.get(:locales).first ? value : Burek.config.get(:translation_placeholder) )
|
37
|
-
|
38
|
-
# Save to file
|
39
|
-
Burek::LocalesCreator.translations_hash_to_file(translations_hash, translation_file)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
return to_replace
|
44
|
-
end
|
45
|
-
|
46
|
-
# Stores a translation hash in to a file
|
47
|
-
#
|
48
|
-
def self.translations_hash_to_file(translations_hash, translation_file)
|
49
|
-
clean_yaml = yaml_to_i18n_file(translations_hash.to_yaml)
|
50
|
-
translation_file.gsub!("//","/")
|
51
|
-
File.open(translation_file, "w:UTF-8") do |f|
|
52
|
-
f.write clean_yaml
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
# Removes a first line from a yaml file which is added to standard YAML files
|
57
|
-
# but rails does not like it. It continas ---- or something like that
|
58
|
-
#
|
59
|
-
def self.yaml_to_i18n_file(yaml)
|
60
|
-
yaml.lines.to_a[1..-1].join
|
61
|
-
end
|
62
|
-
|
63
|
-
# Intializes a translation hash by either loading existing translation file
|
64
|
-
# or creating a hash that contains an empty hash under key which is name of current locale.
|
65
|
-
def self.initialize_translations_hash(translation_file, locale)
|
66
|
-
if File.exists?(translation_file)
|
67
|
-
translations_hash = YAML::load_file(translation_file) #Load
|
68
|
-
else
|
69
|
-
translations_hash = {}
|
70
|
-
translations_hash[locale] = {}
|
71
|
-
end
|
72
|
-
return translations_hash
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.string_to_key(string)
|
76
|
-
string.split(' ')[0..3].join('_').downcase.gsub(/[^0-9a-z_]/i, '')
|
77
|
-
end
|
78
|
-
|
79
|
-
# Creates a translation call key from path where burek call was found and burek call caption
|
80
|
-
#
|
81
|
-
def self.path_parts_to_key(path_parts, item_name)
|
82
|
-
regular_translation_key = path_parts.join('.')
|
83
|
-
regular_translation_key += "." unless regular_translation_key.nil? || regular_translation_key.empty?
|
84
|
-
regular_translation_key += "#{string_to_key(item_name)}"
|
85
|
-
end
|
86
|
-
|
87
|
-
# Generates a file path to locales file from a file path where burek call was found.
|
88
|
-
# It will nest locales file under same subfolders in which burek call was found.
|
89
|
-
# If burek call was nested deeper then defined as subfolder depth limit in config file
|
90
|
-
# it will nest it under first X folders (where x is subfolder depth limit)
|
91
|
-
#
|
92
|
-
# ==== Attributes
|
93
|
-
# * +key+ - file path where burek call was found
|
94
|
-
# * +locale+ - locale for which this file is created
|
95
|
-
#
|
96
|
-
# ==== Returns
|
97
|
-
# A string that contains a path where locale file should be created.
|
98
|
-
# NOTE: Even though subfolders are created, the actuall locale file is NOT created.
|
99
|
-
#
|
100
|
-
def self.key_to_file_path(key, locale)
|
101
|
-
path_parts = key.split("/")
|
102
|
-
path_parts.pop
|
103
|
-
|
104
|
-
translation_file = Burek.config.get(:translations_path)
|
105
|
-
path_parts.each_with_index do |item, index|
|
106
|
-
if index == Burek.config.get(:subfolder_depth) || item == path_parts.last
|
107
|
-
translation_file += "#{item}.#{locale}.yml"
|
108
|
-
break
|
109
|
-
else
|
110
|
-
translation_file += "/#{item}/"
|
111
|
-
unless File.directory?(translation_file)
|
112
|
-
Dir.mkdir(translation_file)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
return translation_file
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
120
|
-
end
|