web_translate_it 1.7.1.7 → 1.7.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,19 +4,17 @@
4
4
  [RDocs](http://yardoc.org/docs/AtelierConvivialite-webtranslateit) |
5
5
  [Example app](http://github.com/AtelierConvivialite/rails_example_app) |
6
6
  [Report a bug](http://github.com/AtelierConvivialite/webtranslateit/issues) |
7
- [Support](http://help.webtranslateit.com) |
8
- [Documentation](http://docs.webtranslateit.com/web_translate_it_client/)
7
+ [Support](http://help.webtranslateit.com)
9
8
 
10
9
  `web_translate_it` is a rubygem providing tools to sync your language files with [Web Translate It](https://webtranslateit.com), a web-based computer-aided translation tool.
11
10
 
12
11
  ![Web Translate It](http://s3.amazonaws.com:80/edouard.baconfile.com/web_translate_it%2Fwti2.png)
13
12
 
14
- This gem provides 4 tools:
13
+ This gem provides:
15
14
 
16
- * an executable, `wti`, that will help you to upload and download language files from the command line,
17
- * a synchronisation server to help your translation team update your language files from a web-based interface,
18
- * a handful of rake task you can use with your Ruby on Rails application,
19
- * a rack middleware to automatically fetch new translations from Web Translate It.
15
+ * a command-line executable `wti`, to sync your files between your computer/server and WebTranslateIt.com,
16
+ * a synchronisation server to help your translation team update your language files from a web interface,
17
+ * a rack middleware you can use within your Rails app to automatically fetch new translations from Web Translate It.
20
18
 
21
19
  ## Installation
22
20
 
@@ -25,168 +23,142 @@ These instructions are for Linux and Mac OS X system. Follow [these instructions
25
23
  gem install web_translate_it
26
24
 
27
25
  At this point you should have the `wti` executable working.
28
- If your project if already set up on Web Translate It, open a terminal and type `wti autoconf` to generate the configuration file.
29
-
30
- Execute `wti --help` to see the usage:
31
-
32
- Usage: wti [-lcphhv]
33
- pull Pull target language file(s)
34
- push Push master language file(s)
35
- add Create and push a new master language file
36
- addlocale Add a new locale to the project
37
- server Start a synchronisation server
38
- stats Fetch and display project statistics
39
- autoconf Configure your project to sync
40
-
41
- Synchronization options:
42
- -l, --locale ISO code of a locale to pull or push
43
- -c, --config Path to a translation.yml file
44
- (default: config/translation.yml)
45
- --all Download or upload all files
46
- --force Force wti pull to download files
47
- --merge Force WTI to merge this file
48
- --ignore_missing Force WTI to not obsolete missing strings
49
- --low_priority Tells WTI to process this command with a low priority
50
- --label Apply a label to the changes
51
-
52
- Server options:
53
- -p, --port Run server on a specific port
54
- (default: 4000)
55
- -h, --host Run server on a specific host
56
- (default: localhost)
57
-
58
- Other options:
59
- -h, --help Show this message
60
- -v, --version Show version
61
26
 
62
27
  ## Configuration
63
28
 
64
29
  Now that the tool is installed, you’ll have to configure your project:
65
30
 
66
- wti autoconf
31
+ wti init
67
32
 
68
- It will ask for your Web Translate It API key, and where to save its configuration file. Letting it put in `config/translations.yml` makes everything easier.
33
+ The tool will prompt for:
69
34
 
70
- ## Usage
35
+ * your Web Translate It API key (you can find it in your project settings),
36
+ * where to save the configuration file (by default in `config/translations.yml`).
71
37
 
72
- ### Uploading your first language file
38
+ ## Usage
73
39
 
74
- If you have no file on Web Translate It yet, you need to send us your master language files. You can do it from the web interface, or from the command line:
40
+ Execute `wti --help` to see the usage:
75
41
 
76
- wti add path/to/master/file.po
42
+ wti is a command line tool to sync your local translation files
43
+ with the WebTranslateIt.com service.
77
44
 
78
- You can also add several files at once:
45
+ Usage:
46
+ wti <command> [options]+
47
+
48
+ <command> is one of: pull push add addlocale server stats status st autoconf init
49
+ [options] are:
50
+ --config, -c <s>: Path to a translation.yml file (default:
51
+ config/translation.yml)
52
+ --version, -v: Print version and exit
53
+ --help, -h: Show this message
54
+
55
+ Here’s more explanation about the commands.
56
+
57
+ pull Pull target language file(s)
58
+ push Push master language file(s)
59
+ add Create and push a new master language file
60
+ addlocale Add a new locale to the project
61
+ server Start a synchronisation server
62
+ status Fetch and display project statistics
63
+ init Configure your project to sync
64
+
65
+ You can get more information by appending `--help` after each command. For instance:
66
+
67
+ $ wti push --help
68
+ Options:
69
+ --locale, -l <s>: ISO code of a locale to push
70
+ --all, -a: Upload all files
71
+ --low-priority, -o: WTI will process this file with a low priority
72
+ --merge, -m: Force WTI to merge this file
73
+ --ignore-missing, -i: Force WTI to not obsolete missing strings
74
+ --label, -b <s>: Apply a label to the changes
75
+ --help, -h: Show this message
79
76
 
80
- wti add file1.po file2.po file3.xml
77
+ ## Web Translate It Synchronisation Console
81
78
 
82
- Or
79
+ ![Web Translate It](http://s3.amazonaws.com:80/edouard.baconfile.com/web_translate_it%2Fadmin_console2.png)
83
80
 
84
- wti add *.po
81
+ The `wti` gem integrates since its version 1.7.0 a sinatra app that provides you with a friendly web interface to sync your translations. It allows a translation team to refresh the language files on a staging server without asking the developers to manually `wti pull`.
85
82
 
86
- After receiving your master language files, Web Translate It will automatically create the corresponding, empty target files. If you have already some translations for these files, use `wti push --all` to synchronise them to Web Translate It.
83
+ To get started, go to the directory of the application you want to sync and do:
87
84
 
88
- ### Updating a master language file
85
+ wti server
89
86
 
90
- wti push
87
+ By default, it starts an application on localhost on the port 4000. You will find the tool on `http://localhost:4000`.
91
88
 
92
- ### Updating a target language file
89
+ Should you need to use another host or port, you can use the `-h` and `-p` options. For example: `wti server -p 1234`.
93
90
 
94
- wti push -l fr
95
-
96
- where `fr` should be replaced by the locale code of your file.
91
+ You may want to run some commands before or after syncing translations. To do so, add in the `translation.yml` file the following:
97
92
 
98
- ### Updating all language files
93
+ before_pull: "echo 'some unix command'"
94
+ after_pull: "touch tmp/restart.txt"
99
95
 
100
- wti push --all
96
+ `before_pull` and `after_pull` are respectively executed before and after pulling language files.
101
97
 
102
- ### Download target language files
98
+ ## Use Cases
103
99
 
104
- wti pull
105
-
106
- ### Download a specific language file
100
+ Here are some example commands for the most common scenarios.
107
101
 
108
- wti pull -l fr
109
-
110
- ### Download all the language files
102
+ ### Upload a new master language file
111
103
 
112
- wti pull --all
113
-
114
- ### Force pull (bypass Web Translate It’s HTTP caching)
104
+ wti add path/to/master/file.po
115
105
 
116
- wti pull --force
106
+ Create several master language files at once:
117
107
 
118
- ### View project stats
108
+ wti add file1.po file2.po file3.xml
119
109
 
120
- wti stats
121
-
122
- ## Web Translate It Synchronisation Console
110
+ Or:
123
111
 
124
- ![Web Translate It](http://s3.amazonaws.com:80/edouard.baconfile.com/web_translate_it%2Fadmin_console2.png)
112
+ wti add *.po
125
113
 
126
- The `wti` gem integrates since its version 1.7.0 a sinatra back-end that allow you to sync your translations directly from a friendly web interface. It allows a translation team to refresh the language files on a staging server without having to ask the developers to manually `wti pull`.
114
+ After receiving your master language files, Web Translate It will automatically create the corresponding target files. If you have already some translations for these files, use `wti push --all` to synchronise them to Web Translate It.
127
115
 
128
- To get started, go to the directory of the application you want to sync and do:
116
+ ### Update a master language file
129
117
 
130
- wti server
131
-
132
- By default, it starts an application on localhost on the port 4000. You will find the tool on `http://localhost:4000`.
118
+ wti push
133
119
 
134
- Should you need to use another host or port, you can use the `-h` and `-p` options. For example: `wti server -p 1234`.
120
+ ### Update a target language file
135
121
 
136
- You may want to run some commands before or after synching translations. To do so, add in the `translation.yml` file the following:
122
+ Update the french language file:
137
123
 
138
- before_pull: "echo 'some unix command'"
139
- after_pull: "touch tmp/restart.txt"
124
+ wti push -l fr
140
125
 
141
- `before_pull` and `after_pull` will respectively be executed before and after pulling your language files.
126
+ Or several languages at once:
142
127
 
143
- ## Rake tasks
128
+ wti push -l "fr en da sv"
129
+
130
+ ### Update all language files at once
144
131
 
145
- This gem includes some rake tasks and a rack middleware you could use to integrate Web Translate It with Ruby on Rails. The rake tasks are significantly slower than the executable, since it has to load the whole rails stack.
132
+ wti push --all
146
133
 
147
- * Add to your config/environments.rb:
134
+ ### Download target language files
148
135
 
149
- `config.gem 'web_translate_it'`
136
+ wti pull
150
137
 
151
- * Then, run:
152
-
153
- `rake gems:install`
138
+ ### Download a specific language file
154
139
 
155
- * If you did not already did `wti autoconf`, copy your API key from Web Translate It and run:
140
+ wti pull -l fr
141
+
142
+ ### Download all language files, including source
156
143
 
157
- `script/generate webtranslateit --api-key your_key_here`
144
+ wti pull --all
158
145
 
159
- The generator does two things:
160
-
161
- - It adds a auto-configured `config/translation.yml` file using Web Translate It’s API.
162
- - It adds `require 'web_translate_it/tasks' rescue LoadError` to your `Rakefile`
163
-
164
- There are 3 rake tasks.
146
+ ### Force pull (to bypass Web Translate It’s HTTP caching)
165
147
 
166
- rake trans:fetch:all
167
-
168
- Fetch the latest translations for all your files for all languages defined in Web Translate It’s interface, except for the languages set in `ignore_locales`.
148
+ wti pull --force
169
149
 
170
- rake trans:fetch[fr_FR]
171
-
172
- Fetch the latest translations for all the languages defined in Web Translate It’s interface. It takes the locale name as a parameter
150
+ ### Add a new locale to the project
173
151
 
174
- rake trans:upload[fr_FR]
152
+ wti addlocale fr
175
153
 
176
- Upload to Web Translate It your files in a specific locale defined in Web Translate It’s interface.
177
-
178
- Read more about [Rails integration in the wiki](http://wiki.github.com/AtelierConvivialite/webtranslateit/).
154
+ Or add several locales at once:
179
155
 
180
- ### Supported Rails Versions
156
+ wti addlocale fr da sv
181
157
 
182
- The gem currently has been tested against the following versions of Rails:
183
-
184
- * 2.3.4
185
- * 2.3.5
186
- * 2.3.10
158
+ ### View project stats
187
159
 
188
- Please open a discussion on [our support site](http://help.webtranslateit.com) if you're using a version of Rails that is not listed above and the gem is not working properly.
160
+ wti status
189
161
 
190
162
  # License
191
163
 
192
- Copyright (c) 2009-2011 Atelier Convivialité, and released under the MIT License.
164
+ Copyright (c) 2009-2011 Atelier Convivialité, released under the MIT License.
data/bin/wti CHANGED
@@ -1,136 +1,56 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'choice'
3
+ require 'trollop'
4
4
  require 'web_translate_it'
5
5
 
6
- Choice.options do
7
-
8
- option :pull do
9
- long 'pull'
10
- desc "Pull target language file(s)"
11
- end
12
-
13
- option :push do
14
- long 'push'
15
- desc "Push master language file(s)"
16
- end
17
-
18
- option :add do
19
- long 'add'
20
- desc "Create and push a new master language file"
21
- end
22
-
23
- option :addlocale do
24
- long 'addlocale'
25
- desc "Add a new locale to the project"
26
- end
27
-
28
- option :server do
29
- long 'server'
30
- desc "Start a synchronisation server"
31
- end
32
-
33
- option :stats do
34
- long 'stats'
35
- desc "Fetch and display project statistics"
36
- end
37
-
38
- option :autoconf do
39
- long 'autoconf'
40
- desc "Configure your project to sync"
41
- end
42
-
43
- separator ''
44
- separator 'Synchronization options: '
45
-
46
- option :locale do
47
- short '-l'
48
- long '--locale'
49
- desc "ISO code of a locale to pull or push"
50
- end
51
-
52
- option :config do
53
- short '-c'
54
- long '--config'
55
- desc "Path to a translation.yml file"
56
- desc "(default: config/translation.yml)"
57
- default "config/translation.yml"
58
- end
59
-
60
- option :all do
61
- long '--all'
62
- desc "Download or upload all files"
63
- end
64
-
65
- option :force do
66
- long '--force'
67
- desc "Force wti pull to download files"
68
- end
69
-
70
- option :merge do
71
- long '--merge'
72
- desc "Force WTI to merge this file"
73
- end
74
-
75
- option :ignore_missing do
76
- long '--ignore_missing'
77
- desc "Force WTI to not obsolete missing strings"
78
- end
79
-
80
- option :low_priority do
81
- long '--low_priority'
82
- desc "Tells WTI to process this command with a low priority"
83
- end
84
-
85
- option :label do
86
- long '--label'
87
- desc "Apply a label to the changes"
88
- end
89
-
90
- separator ''
91
- separator 'Server options: '
92
-
93
- option :port do
94
- short '-p'
95
- long '--port'
96
- desc "Run server on a specific port"
97
- desc "(default: 4000)"
98
- cast Integer
99
- default '4000'
100
- end
101
-
102
- option :host do
103
- short '-h'
104
- long '--host'
105
- desc "Run server on a specific host"
106
- desc "(default: localhost)"
107
- default '0.0.0.0'
108
- end
109
-
110
- separator ''
111
- separator 'Other options: '
112
-
113
- option :help do
114
- short '-h'
115
- long '--help'
116
- desc 'Show this message'
117
- end
6
+ SUB_COMMANDS = %w(pull push add addlocale server stats status st autoconf init)
7
+ global_options = Trollop::options do
8
+ banner <<-EOS
9
+ wti is a command line tool to sync your local translation files
10
+ with the WebTranslateIt.com service.
11
+
12
+ Usage:
13
+ wti <command> [options]+
14
+
15
+ <command> is one of: #{SUB_COMMANDS.join(" ")}
16
+ [options] are:
17
+ EOS
18
+ version "Web Translate It v#{WebTranslateIt::Util.version}"
19
+ opt :config, "Path to a translation.yml file", :short => "-c", :default => "config/translation.yml"
20
+ stop_on SUB_COMMANDS
21
+ end
118
22
 
119
- option :version do
120
- short '-v'
121
- long '--version'
122
- desc 'Show version'
123
- action do
124
- puts ""
125
- puts "Web Translate It #{WebTranslateIt::Util.version}"
126
- exit
23
+ command = ARGV.shift # get the subcommand
24
+ command_options = case command
25
+ when "pull"
26
+ Trollop::options do
27
+ opt :locale, "ISO code of locale(s) to pull", :type => :string
28
+ opt :all, "Pull all files"
29
+ opt :force, "Force pull (bypass conditional requests to WTI)"
30
+ end
31
+ when "push"
32
+ Trollop::options do
33
+ opt :locale, "ISO code of locale(s) to push", :type => :string
34
+ opt :all, "Upload all files"
35
+ opt :low_priority, "WTI will process this file with a low priority"
36
+ opt :merge, "Force WTI to merge this file"
37
+ opt :ignore_missing, "Force WTI to not obsolete missing strings"
38
+ opt :label, "Apply a label to the changes", :type => :string
127
39
  end
40
+ when "add"
41
+ when "addlocale"
42
+ when "server"
43
+ Trollop::options do
44
+ opt :port, "Run server on a specific port", :default => 4000, :short => "-p"
45
+ opt :host, "Run server on a specific host", :default => "0.0.0.0", :short => "-h"
46
+ end
47
+ when "stats"
48
+ when "status"
49
+ when "st"
50
+ when "autoconf"
51
+ when "init"
52
+ else
53
+ Trollop::die "unknown subcommand #{command.inspect}"
128
54
  end
129
- end
130
55
 
131
- options = Choice.choices
132
- $project_path = File.expand_path(".")
133
- $command = Choice.rest[0]
134
- $parameters = Choice.rest[1..-1]
135
- Choice.help if $command.nil?
136
- WebTranslateIt::CommandLine.new($command, options, $project_path, $parameters)
56
+ WebTranslateIt::CommandLine.new(command, command_options, global_options, ARGV, File.expand_path("."))
data/examples/en.yml ADDED
@@ -0,0 +1,38 @@
1
+ en:
2
+ activerecord:
3
+ errors:
4
+ templates:
5
+ header:
6
+ one: "1 error prohibited this {{model}} from being saved"
7
+ other: "{{count}} errors prohibited this {{model}} from being saved"
8
+ body: "there were problems with the following fields:"
9
+ messages:
10
+ accepted: "must be accepted"
11
+ blank: "can't be blank"
12
+ confirmation: "doesn't match confirmation"
13
+ empty: "can't be empty"
14
+ equal_to: "must be equal to {{count}}"
15
+ even: "must be even"
16
+ exclusion: "is reserved"
17
+ greater_than: "must be greater than {{count}}"
18
+ greater_than_or_equal_to: "must be greater than or equal to {{count}}"
19
+ inclusion: "is not included in the list"
20
+ invalid: "is invalid"
21
+ less_than: "must be less than {{count}}"
22
+ less_than_or_equal_to: "must be less than or equal to {{count}}"
23
+ not_a_number: "is not a number"
24
+ odd: "must be odd"
25
+ taken: "is already taken"
26
+ too_long: "is too long (maximum is {{count}} characters)"
27
+ too_short: "is too short (minimum is {{count}} characters)"
28
+ wrong_length: "is the wrong length (should be {{count}} characters)"
29
+ models:
30
+ invitation:
31
+ attributes:
32
+ email:
33
+ user_already_invited: "This user has already been invited"
34
+ user_already_member: "This user is already a member"
35
+ project_file:
36
+ attributes:
37
+ file:
38
+ file_format_not_supported: "Sorry, we currenly support only Gettext .pot/.po, .yml/.yaml and .strings"
@@ -4,3 +4,10 @@ api_key: SECRET
4
4
  # Optional: locales not to sync with Web Translate It.
5
5
  # eg. [:en, :fr] or just 'en'
6
6
  # ignore_locales: :en
7
+
8
+ # Optional
9
+ # before_pull: "echo 'some unix command'" # Command executed before pulling files
10
+ # after_pull: "touch tmp/restart.txt" # Command executed after pulling files
11
+ #
12
+ # before_push: "echo 'some unix command'" # Command executed before pushing files
13
+ # after_push: "touch tmp/restart.txt" # Command executed after pushing files
data/history.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## Version 1.7.2.0 / 2011-03-10
2
+
3
+ * Deprecate `wti autoconf` in favour of `wti init`.
4
+ * Deprecate `wti stats` in favour of `wti status` and its alias `wti st`.
5
+ * Better help and options. Replaced option parser from Choice to Trollop.
6
+ * `wti pull -l` can now take several locales separated by spaces.
7
+ For instance: `wti pull -l "en fr ja"`
8
+ * `wti push -l` can now take several locales separated by spaces.
9
+ For instance: `wti push -l "en fr"`
10
+ * New: Coloured terminal output.
11
+ * New: `before_pull` and `after_pull` hooks now work for all kind of `wti pull` (not only within `wti server`).
12
+ * New: Added 2 new hooks: `before_push` and `after_push`.
13
+
1
14
  ## Version 1.7.1.7 / 2011-03-07
2
15
 
3
16
  * New: `wti unknow_command` explains how to get help.