international 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -36
- data/lib/{android_manager.rb → file_manager.rb} +11 -6
- data/lib/international/version.rb +1 -1
- data/lib/international.rb +16 -2
- data/lib/templates/ios.erb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 294fc6b6d766cb05c80fff6507693d2a9031e287
|
4
|
+
data.tar.gz: 22399bd6a99f811272d6f1bd281fc91e5e98fae1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 559538ad04fed14064daeef45e47ad423214cb68538c04b05d499c090f00648a0a4cf3ae6748a66bc5e50a31e7de79b137346da38fa6371c5a8aacd0319f78f2
|
7
|
+
data.tar.gz: 5e00abd8fe04daf4d039c893888dffc67aaba41bdfab0acae6abe129e44bf1b44884e9238c6e22545d349e0d5183a659039ba0e24952666f8d2aad5702193df0
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ This will create the localization for you, based on a `.csv` file
|
|
15
15
|
international --csv ~/import.csv
|
16
16
|
```
|
17
17
|
### Will have this output:
|
18
|
-
English, `/values-en/translation.xml`:
|
18
|
+
For **android** (English, etc.), `/values-en/translation.xml`:
|
19
19
|
|
20
20
|
```xml
|
21
21
|
<?xml version="1.0" ?>
|
@@ -25,16 +25,16 @@ English, `/values-en/translation.xml`:
|
|
25
25
|
<string name="goodbye_message">goodbye</string>
|
26
26
|
</resources>
|
27
27
|
```
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
</resources>
|
28
|
+
|
29
|
+
For **iOS** (English, etc.), `iosApp/en.lbproj/Localizable.strings`:
|
30
|
+
|
31
|
+
```bash
|
32
|
+
WELCOME_MESSAGE="Welcome";
|
33
|
+
THANK_YOU_MESSAGE="Thank you";
|
34
|
+
GOODBYE_MESSAGE="Goodbye";
|
36
35
|
```
|
37
36
|
|
37
|
+
|
38
38
|
Given this `~/import.csv`
|
39
39
|
```csv
|
40
40
|
keys,pt,en,es
|
@@ -46,34 +46,11 @@ goodbye,adeus,goodbye,adios
|
|
46
46
|
<b>You can also send it straight to some folder:</b>
|
47
47
|
|
48
48
|
```bash
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
<!--
|
54
|
-
.Strings - iOS
|
55
|
-
en.strings
|
56
|
-
```
|
57
|
-
/* */
|
58
|
-
"welcome_message" = "hello";
|
59
|
-
|
60
|
-
/* */
|
61
|
-
"thank_you_message" = "thank you";
|
62
|
-
|
63
|
-
/* */
|
64
|
-
"goodbye_message" = "goodbye";
|
65
|
-
ru.strings
|
66
|
-
|
67
|
-
/* */
|
68
|
-
"welcome_message" = "здравствуйте";
|
69
|
-
|
70
|
-
/* */
|
71
|
-
"thank_you_message" = "спасибо";
|
72
|
-
|
73
|
-
/* */
|
74
|
-
"goodbye_message" = "До свидания";
|
49
|
+
# For iOS
|
50
|
+
international --csv ~/import.csv --platform ios --output iosApp/
|
51
|
+
# For Android
|
52
|
+
international --csv ~/import.csv --platform android --output app/src/main/res/
|
75
53
|
```
|
76
|
-
-->
|
77
54
|
|
78
55
|
|
79
56
|
## Full usage
|
@@ -84,6 +61,7 @@ Usage: international [OPTIONS]
|
|
84
61
|
Options
|
85
62
|
-c, --csv PATH_TO_CSV # Path to the .csv file
|
86
63
|
-o, --output PATH_TO_OUTPUT # Path to the desired output folder
|
64
|
+
-p, --platform PLATFORM # Choose between "android" and "ios" (default: "android")
|
87
65
|
-d, --dryrun # Only simulates the output and don't write files
|
88
66
|
-h, --help # Displays help
|
89
67
|
-v, --version # Displays version
|
@@ -3,9 +3,10 @@ require 'erubis'
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'colorize'
|
5
5
|
|
6
|
-
class
|
7
|
-
def initialize language, items, output_folder, dryrun=false
|
8
|
-
@language = language
|
6
|
+
class FileManager
|
7
|
+
def initialize language, items, output_folder, platform, dryrun=false
|
8
|
+
@language = language.downcase
|
9
|
+
@platform = platform
|
9
10
|
@dryrun = dryrun
|
10
11
|
@items = items
|
11
12
|
@path = output_folder
|
@@ -13,16 +14,20 @@ class AndroidManager
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def get_template_path
|
16
|
-
File.join(File.dirname(__FILE__),
|
17
|
+
File.join(File.dirname(__FILE__), "templates/#{@platform}.erb")
|
17
18
|
end
|
18
19
|
|
19
20
|
def get_file_name
|
20
|
-
|
21
|
+
if @platform.eql?'android'
|
22
|
+
"values-#{@language}/translation.xml"
|
23
|
+
else
|
24
|
+
"#{@language}.lbproj/Localizable.strings"
|
25
|
+
end
|
21
26
|
end
|
22
27
|
|
23
28
|
def create_file
|
24
29
|
file_name = get_file_name
|
25
|
-
destination_file_path =
|
30
|
+
destination_file_path = "#{@path}#{file_name}"
|
26
31
|
|
27
32
|
pretty_print destination_file_path
|
28
33
|
|
data/lib/international.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'colorize'
|
2
2
|
require 'international/version'
|
3
3
|
require 'csv'
|
4
|
-
require '
|
4
|
+
require 'file_manager'
|
5
5
|
|
6
6
|
module International
|
7
7
|
|
@@ -13,6 +13,7 @@ module International
|
|
13
13
|
@path_to_output = 'output/'
|
14
14
|
@path_to_csv = nil
|
15
15
|
@dryrun = false
|
16
|
+
@platform = 'android'
|
16
17
|
|
17
18
|
# Parse Options
|
18
19
|
arguments.push "-h" if arguments.length == 0
|
@@ -22,6 +23,10 @@ module International
|
|
22
23
|
|
23
24
|
end
|
24
25
|
|
26
|
+
def is_valid_platform
|
27
|
+
@platform.eql?'android' or @platform.eql?'ios'
|
28
|
+
end
|
29
|
+
|
25
30
|
### Options parser
|
26
31
|
def create_options_parser(args)
|
27
32
|
|
@@ -34,6 +39,10 @@ module International
|
|
34
39
|
@path_to_csv = csv_path
|
35
40
|
end
|
36
41
|
|
42
|
+
opts.on('-p PLATFORM', '--platform PLATFORM', 'Choose between "android" and "ios" (default: "android")') do |platform|
|
43
|
+
@platform = platform.downcase
|
44
|
+
end
|
45
|
+
|
37
46
|
opts.on('-o PATH_TO_OUTPUT', '--output PATH_TO_OUTPUT', 'Path to the desired output folder') do |path_to_output|
|
38
47
|
unless path_to_output[-1,1] == '/'
|
39
48
|
path_to_output = "#{path_to_output}/"
|
@@ -69,6 +78,11 @@ module International
|
|
69
78
|
exit 1
|
70
79
|
end
|
71
80
|
|
81
|
+
unless is_valid_platform
|
82
|
+
puts "The platform you chose could not be found, pick 'android' or 'ios'".yellow
|
83
|
+
exit 1
|
84
|
+
end
|
85
|
+
|
72
86
|
hash = csv_to_hash(@path_to_csv)
|
73
87
|
separate_languages hash
|
74
88
|
end
|
@@ -104,7 +118,7 @@ module International
|
|
104
118
|
items.push item
|
105
119
|
end
|
106
120
|
|
107
|
-
manager =
|
121
|
+
manager = FileManager.new lang, items, @path_to_output, @platform, @dryrun
|
108
122
|
manager.create_file
|
109
123
|
end
|
110
124
|
end
|
data/lib/templates/ios.erb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
<% for @item in @items %>
|
2
|
-
|
2
|
+
<%= @item[:key].upcase %>="<%= @item[:translation] %>";<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: international
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cesarferreira
|
@@ -131,7 +131,7 @@ files:
|
|
131
131
|
- Rakefile
|
132
132
|
- bin/international
|
133
133
|
- international.gemspec
|
134
|
-
- lib/
|
134
|
+
- lib/file_manager.rb
|
135
135
|
- lib/international.rb
|
136
136
|
- lib/international/version.rb
|
137
137
|
- lib/templates/android.erb
|