wti_gettext_i18n_rails 1.0.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.
@@ -0,0 +1,59 @@
1
+ # encoding: utf-8
2
+
3
+ namespace :trans do
4
+ desc "Fetch translation files from Web Translate It"
5
+ task :fetch, :locale do |task, args|
6
+ welcome_message
7
+ puts "Fetching file for locale #{args.locale}…"
8
+ configuration = WebTranslateIt::Configuration.new
9
+ configuration.files.each do |file|
10
+ response_code = file.fetch(args.locale)
11
+ handle_response(file.file_path_for_locale(args.locale), response_code)
12
+ end
13
+ end
14
+
15
+ namespace :fetch do
16
+ desc "Fetch all the translation files from Web Translate It"
17
+ task :all do
18
+ welcome_message
19
+ configuration = WebTranslateIt::Configuration.new
20
+ locales = configuration.target_locales
21
+ configuration.ignore_locales.each do |ignore|
22
+ locales.delete(ignore)
23
+ end
24
+ puts "Fetching all files for all locales…"
25
+ locales.each do |locale|
26
+ configuration.files.each do |file|
27
+ unless File.exist?(file.file_path_for_directory(locale))
28
+ Dir.mkdir(file.file_path_for_directory(locale))
29
+ end
30
+ response_code = file.fetch(locale)
31
+ handle_response(file.file_path_for_locale(locale), response_code)
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ desc "Upload the translation files for a locale to Web Translate It"
38
+ task :upload, :locale do |task, args|
39
+ welcome_message
40
+ puts "Uploading file for locale #{args.locale}…"
41
+ configuration = WebTranslateIt::Configuration.new
42
+ configuration.files.each do |file|
43
+ response_code = file.upload(args.locale)
44
+ handle_response(file.file_path_for_locale(args.locale), response_code)
45
+ end
46
+ end
47
+
48
+ def handle_response(file_path, response_code)
49
+ if response_code < 400
50
+ puts "#{file_path}: #{response_code}, OK"
51
+ else
52
+ puts "#{file_path}: #{response_code}, Problem!"
53
+ end
54
+ end
55
+
56
+ def welcome_message
57
+ puts "Web Translate It v#{WebTranslateIt::Util.version}"
58
+ end
59
+ end
@@ -0,0 +1,97 @@
1
+ module WebTranslateIt
2
+
3
+ # A TranslationFile is the representation of a master language file
4
+ # on Web Translate It.
5
+ #
6
+ # This class allows to manipulate TranslationFiles, more specifically upload and download them.
7
+ # If you pass a Locale to the master language file you will be able to
8
+ # manipulate a _target_ language file.
9
+ class TranslationFile
10
+ require 'net/https'
11
+ require 'net/http/post/multipart'
12
+ require 'time'
13
+ require 'fileutils'
14
+
15
+ attr_accessor :id, :file_path, :api_key
16
+
17
+ def initialize(id, file_path, api_key)
18
+ self.id = id
19
+ self.file_path = file_path
20
+ self.api_key = api_key
21
+ end
22
+
23
+ # Fetch a language file.
24
+ # By default it will make a conditional GET Request, using the `If-Modified-Since` tag.
25
+ # You can force the method to re-download your file by passing `true` as a second argument
26
+ #
27
+ # Example of implementation:
28
+ #
29
+ # configuration = WebTranslateIt::Configuration.new
30
+ # locale = configuration.locales.first
31
+ # file = configuration.files.first
32
+ # file.fetch(locale) # the first time, will return the content of the language file with a status 200 OK
33
+ # file.fetch(locale) # returns nothing, with a status 304 Not Modified
34
+ # file.fetch(locale, true) # force to re-download the file, will return the content of the file with a 200 OK
35
+ #
36
+ def fetch(locale, force = false)
37
+ WebTranslateIt::Util.http_connection do |http|
38
+ request = Net::HTTP::Get.new(api_url(locale))
39
+ request.add_field('If-Modified-Since', last_modification(file_path_for_locale(locale))) if File.exist?(file_path_for_locale(locale)) and !force
40
+ response = http.request(request)
41
+ File.open(file_path_for_locale(locale), 'w'){ |file| file << response.body } if response.code.to_i == 200 and response.body != ''
42
+ response.code.to_i
43
+ end
44
+ end
45
+
46
+ # Update a language file to Web Translate It by performing a PUT Request.
47
+ # Note that it is currently not possible to POST a new language file at the moment.
48
+ #
49
+ # Example of implementation:
50
+ #
51
+ # configuration = WebTranslateIt::Configuration.new
52
+ # locale = configuration.locales.first
53
+ # file = configuration.files.first
54
+ # file.upload(locale) # should respond the HTTP code 202 Accepted
55
+ #
56
+ # The meaning of the HTTP 202 code is: the request has been accepted for processing, but the processing has not
57
+ # been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing
58
+ # actually takes place.
59
+ # This is due to the fact that language file imports are handled by background processing.
60
+
61
+ def upload(locale)
62
+ File.open(file_path_for_locale_initial(locale)) do |file|
63
+ WebTranslateIt::Util.http_connection do |http|
64
+ request = Net::HTTP::Put::Multipart.new(api_url(locale), "file" => UploadIO.new(file, "text/plain", file.path))
65
+ response = http.request(request)
66
+ response.code.to_i
67
+ end
68
+ #end
69
+ end
70
+ end
71
+
72
+ def file_path_for_locale_initial(locale)
73
+ self.file_path.gsub("[locale]", locale)
74
+ end
75
+
76
+ # Convenience method which returns the file path of a TranslationFile for a given locale.
77
+ def file_path_for_locale(locale)
78
+ self.file_path.gsub("[locale].pot", locale.split(/-/, 2)[0].to_s.split(/_/, 2)[0].to_s + "/" + "en.po")
79
+ end
80
+
81
+ def file_path_for_directory(locale)
82
+ self.file_path.gsub("[locale].pot", locale.split(/-/, 2)[0].to_s.split(/_/, 2)[0].to_s + "/")
83
+ end
84
+
85
+ protected
86
+
87
+ # Convenience method which returns the date of last modification of a language file.
88
+ def last_modification(file_path)
89
+ File.mtime(File.new(file_path, 'r')).rfc2822
90
+ end
91
+
92
+ # Convenience method which returns the URL of the API endpoint for a locale.
93
+ def api_url(locale)
94
+ "/api/projects/#{api_key}/files/#{self.id}/locales/#{locale}"
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,35 @@
1
+ module WebTranslateIt
2
+
3
+ # A few useful functions
4
+ class Util
5
+
6
+ # Return a string representing the gem version
7
+ # For example "1.4.4"
8
+ def self.version
9
+ hash = YAML.load_file File.join(File.dirname(__FILE__), '..', '..' '/version.yml')
10
+ [hash[:major], hash[:minor], hash[:patch]].join('.')
11
+ end
12
+
13
+ # Yields a HTTP connection over SSL to Web Translate It.
14
+ # This is used for the connections to the API throughout the library.
15
+ # Use it like so:
16
+ #
17
+ # WebTranslateIt::Util.http_connection do |http|
18
+ # request = Net::HTTP::Get.new(api_url)
19
+ # response = http.request(request)
20
+ # end
21
+ #
22
+ def self.http_connection
23
+ http = Net::HTTP.new('webtranslateit.com', 443)
24
+ http.use_ssl = true
25
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
26
+ http.read_timeout = 40
27
+ yield http
28
+ end
29
+
30
+ def self.calculate_percentage(processed, total)
31
+ return 0 if total == 0
32
+ ((processed*10)/total).to_f.ceil*10
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'util')
2
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'configuration')
3
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'translation_file')
4
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'auto_fetch')
5
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'command_line')
6
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'project')
7
+ require File.join(File.dirname(__FILE__), 'web_translate_it', 'tasks')
8
+
9
+ module WebTranslateIt
10
+ def self.fetch_translations
11
+ config = Configuration.new
12
+ locale = I18n.locale.to_s
13
+ return if config.ignore_locales.include?(locale)
14
+ config.logger.debug { "Fetching #{locale} translations to Web Translate It" } if config.logger
15
+ config.files.each do |file|
16
+ response = file.fetch(locale)
17
+ config.logger { "Web Translate It response: #{response}" } if config.logger
18
+ end
19
+ end
20
+ end
data/man/wti.1 ADDED
@@ -0,0 +1,90 @@
1
+ .\" generated with Ronn/v0.4.1
2
+ .\" http://github.com/rtomayko/ronn/
3
+ .
4
+ .TH "WTI" "1" "March 2010" "Atelier Convivialité" "Web Translate It"
5
+ .
6
+ .SH "NAME"
7
+ \fBwti\fR \-\- WebTranslateIt.com from the command line
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBwti\fR \fICOMMAND\fR \fIOPTIONS\fR
11
+ .
12
+ .P
13
+ \fBwti push\fR [\fB\-l\fR] \fIOPTIONS\fR
14
+ .
15
+ .P
16
+ \fBwti pull\fR [\fB\-l\fR] \fIOPTIONS\fR
17
+ .
18
+ .SH "DESCRIPTION"
19
+ \fBwti\fR is an utility to help you sync language files between the
20
+ WebTranslateIt.com service and your computer/server.
21
+ .
22
+ .P
23
+ \fBwti push\fR will push your master language file to Web Translate It. It means it will
24
+ update the strings hosted at Web Translate It by the strings from the file you push.
25
+ .
26
+ .P
27
+ \fBwti pull\fR will pull the target language files from Web Translate It. It will download
28
+ and update your file with the latest translations from Web Translate It.
29
+ .
30
+ .P
31
+ \fBwti stats\fR fetch and display translation statistics from Web Translate It.
32
+ .
33
+ .SH "OPTIONS"
34
+ \fBwti\fR's default mode of operation is to push only the master language file and to only
35
+ pull target language files.
36
+ .
37
+ .P
38
+ These options can be used to change this behaviour:
39
+ .
40
+ .TP
41
+ \fB\-\-all\fR
42
+ Push or pull all. For example, \fBwti push \-\-all\fR will push master and target language files. \fBwti pull \-\-all\fR will pull master and target language files
43
+ .
44
+ .TP
45
+ \fB\-l\fR, \fB\-\-locale\fR
46
+ Set the locale to push or pull explicitly. For example \fBwti pull \-l fr\fR will only pull
47
+ the French language file.
48
+ .
49
+ .TP
50
+ \fB\-\-force\fR
51
+ The Web Translate It API use HTTP caching to be efficient, and check if your file needs
52
+ to be updated by checking its modification date against the project’s latest activity.
53
+ Use this option to bypass this check.
54
+ .
55
+ .P
56
+ You may additionally ask for help:
57
+ .
58
+ .TP
59
+ \fB\-h\fR, \fB\-\-help\fR
60
+ Print help.
61
+ .
62
+ .SH "CONFIGURATION"
63
+ The first \fBwti\fR is used on a project, it must be configured.
64
+ .
65
+ .P
66
+ \fBwti autoconf\fR will help you create a configuration file to sync with
67
+ Web Translate It.
68
+ .
69
+ .SH "EXAMPLES"
70
+ .
71
+ .nf
72
+ $ wti push
73
+ Pushing ./config/locales/app/en.yml…
74
+ Pushing ./config/locales/defaults/en.yml…
75
+ $ wti pull \-l fr
76
+ Pulling ./config/locales/app/fr.yml…
77
+ Pulling ./config/locales/defaults/fr.yml…
78
+ $ wti stats
79
+ fr: 100% translated, 90% completed
80
+ ru: 10% translated, 10% completed
81
+ pt_BR: 0% translated, 0% completed
82
+ en: 100% translated, 90% completed
83
+ .
84
+ .fi
85
+ .
86
+ .SH "BUGS"
87
+ \fIhttp://github.com/atelierConvivialite/webtranslateit/issues\fR
88
+ .
89
+ .SH "AUTHOR"
90
+ Édouard Brière :: edouard@atelierconvivialite.com
data/man/wti.1.html ADDED
@@ -0,0 +1,157 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.4.1'>
6
+ <title>wti(1) -- WebTranslateIt.com from the command line</title>
7
+ <style type='text/css'>
8
+ body {margin:0}
9
+ #man, #man code, #man pre, #man tt, #man kbd, #man samp {
10
+ font-family:consolas,monospace;
11
+ font-size:16px;
12
+ line-height:1.3;
13
+ color:#343331;
14
+ background:#fff; }
15
+ #man { max-width:89ex; text-align:justify; margin:0 25px 25px 25px }
16
+ #man h1, #man h2, #man h3 { color:#232221;clear:left }
17
+ #man h1 { font-size:28px; margin:15px 0 30px 0; text-align:center }
18
+ #man h2 { font-size:18px; margin-bottom:0; margin-top:10px; line-height:1.3; }
19
+ #man h3 { font-size:16px; margin:0 0 0 4ex; }
20
+ #man p, #man ul, #man ol, #man dl, #man pre { margin:0 0 18px 0; }
21
+ #man pre {
22
+ color:#333231;
23
+ background:#edeceb;
24
+ padding:5px 7px;
25
+ margin:0px 0 20px 0;
26
+ border-left:2ex solid #ddd}
27
+ #man pre + h2, #man pre + h3 {
28
+ margin-top:22px;
29
+ }
30
+ #man h2 + pre, #man h3 + pre {
31
+ margin-top:5px;
32
+ }
33
+ #man > p, #man > ul, #man > ol, #man > dl, #man > pre { margin-left:8ex; }
34
+ #man dt { margin:0; clear:left }
35
+ #man dt.flush { float:left; width:8ex }
36
+ #man dd { margin:0 0 0 9ex }
37
+ #man code, #man strong, #man b { font-weight:bold; color:#131211; }
38
+ #man pre code { font-weight:normal; color:#232221; background:inherit }
39
+ #man em, var, u {
40
+ font-style:normal; color:#333231; border-bottom:1px solid #999; }
41
+ #man h1.man-title { display:none; }
42
+ #man ol.man, #man ol.man li { margin:2px 0 10px 0; padding:0;
43
+ float:left; width:33%; list-style-type:none;
44
+ text-transform:uppercase; font-size:18px; color:#999;
45
+ letter-spacing:1px;}
46
+ #man ol.man { width:100%; }
47
+ #man ol.man li.tl { text-align:left }
48
+ #man ol.man li.tc { text-align:center;letter-spacing:4px }
49
+ #man ol.man li.tr { text-align:right }
50
+ #man ol.man a { color:#999 }
51
+ #man ol.man a:hover { color:#333231 }
52
+ </style>
53
+ </head>
54
+ <body>
55
+ <div id='man'>
56
+
57
+ <h1 class='man-title'>wti(1)</h1>
58
+
59
+ <ol class='head man'>
60
+ <li class='tl'>wti(1)</li>
61
+ <li class='tc'>Web Translate It</li>
62
+ <li class='tr'>wti(1)</li>
63
+ </ol>
64
+
65
+ <h2 id='NAME'>NAME</h2>
66
+ <p><code>wti</code> -- WebTranslateIt.com from the command line</p>
67
+
68
+ <h2>SYNOPSIS</h2>
69
+
70
+ <p><code>wti</code> <var>COMMAND</var> <var>OPTIONS</var></p>
71
+
72
+ <p><code>wti push</code> [<code>-l</code>] <var>OPTIONS</var></p>
73
+
74
+ <p><code>wti pull</code> [<code>-l</code>] <var>OPTIONS</var></p>
75
+
76
+ <h2>DESCRIPTION</h2>
77
+
78
+ <p><code>wti</code> is an utility to help you sync language files between the
79
+ WebTranslateIt.com service and your computer/server.</p>
80
+
81
+ <p><code>wti push</code> will push your master language file to Web Translate It. It means it will
82
+ update the strings hosted at Web Translate It by the strings from the file you push.</p>
83
+
84
+ <p><code>wti pull</code> will pull the target language files from Web Translate It. It will download
85
+ and update your file with the latest translations from Web Translate It.</p>
86
+
87
+ <p><code>wti stats</code> fetch and display translation statistics from Web Translate It.</p>
88
+
89
+ <h2>OPTIONS</h2>
90
+
91
+ <p><code>wti</code>'s default mode of operation is to push only the master language file and to only
92
+ pull target language files.</p>
93
+
94
+ <p>These options can be used to change this behaviour:</p>
95
+
96
+ <dl>
97
+ <dt class="flush"><code>--all</code></dt><dd><p>Push or pull all. For example, <code>wti push --all</code> will push master and target language files.
98
+ <code>wti pull --all</code> will pull master and target language files</p></dd>
99
+ <dt><code>-l</code>, <code>--locale</code></dt><dd><p>Set the locale to push or pull explicitly. For example <code>wti pull -l fr</code> will only pull
100
+ the French language file.</p></dd>
101
+ <dt class="flush"><code>--force</code></dt><dd><p>The Web Translate It API use HTTP caching to be efficient, and check if your file needs
102
+ to be updated by checking its modification date against the project’s latest activity.
103
+ Use this option to bypass this check.</p></dd>
104
+ </dl>
105
+
106
+
107
+ <p>You may additionally ask for help:</p>
108
+
109
+ <dl>
110
+ <dt><code>-h</code>, <code>--help</code></dt><dd>Print help.</dd>
111
+ </dl>
112
+
113
+
114
+ <h2>CONFIGURATION</h2>
115
+
116
+ <p>The first <code>wti</code> is used on a project, it must be configured.</p>
117
+
118
+ <p><code>wti autoconf</code> will help you create a configuration file to sync with
119
+ Web Translate It.</p>
120
+
121
+ <h2>EXAMPLES</h2>
122
+
123
+ <pre><code>$ wti push
124
+ Pushing ./config/locales/app/en.yml…
125
+ Pushing ./config/locales/defaults/en.yml…
126
+
127
+
128
+ $ wti pull -l fr
129
+ Pulling ./config/locales/app/fr.yml…
130
+ Pulling ./config/locales/defaults/fr.yml…
131
+
132
+
133
+ $ wti stats
134
+ fr: 100% translated, 90% completed
135
+ ru: 10% translated, 10% completed
136
+ pt_BR: 0% translated, 0% completed
137
+ en: 100% translated, 90% completed
138
+ </code></pre>
139
+
140
+ <h2>BUGS</h2>
141
+
142
+ <p><a href="http://github.com/atelierConvivialite/webtranslateit/issues">http://github.com/atelierConvivialite/webtranslateit/issues</a></p>
143
+
144
+ <h2>AUTHOR</h2>
145
+
146
+ <p>Édouard Brière :: edouard@atelierconvivialite.com</p>
147
+
148
+
149
+ <ol class='foot man'>
150
+ <li class='tl'>Atelier Convivialité</li>
151
+ <li class='tc'>March 2010</li>
152
+ <li class='tr'>wti(1)</li>
153
+ </ol>
154
+
155
+ </div>
156
+ </body>
157
+ </html>
data/man/wti.1.ron ADDED
@@ -0,0 +1,81 @@
1
+ wti(1) -- WebTranslateIt.com from the command line
2
+ ==================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `wti` <COMMAND> <OPTIONS>
7
+
8
+ `wti push` [`-l`] <OPTIONS>
9
+
10
+ `wti pull` [`-l`] <OPTIONS>
11
+
12
+ ## DESCRIPTION
13
+
14
+ `wti` is an utility to help you sync language files between the
15
+ WebTranslateIt.com service and your computer/server.
16
+
17
+ `wti push` will push your master language file to Web Translate It. It means it will
18
+ update the strings hosted at Web Translate It by the strings from the file you push.
19
+
20
+ `wti pull` will pull the target language files from Web Translate It. It will download
21
+ and update your file with the latest translations from Web Translate It.
22
+
23
+ `wti stats` fetch and display translation statistics from Web Translate It.
24
+
25
+ ## OPTIONS
26
+
27
+ `wti`'s default mode of operation is to push only the master language file and to only
28
+ pull target language files.
29
+
30
+ These options can be used to change this behaviour:
31
+
32
+ * `--all`:
33
+ Push or pull all. For example, `wti push --all` will push master and target language files.
34
+ `wti pull --all` will pull master and target language files
35
+
36
+ * `-l`, `--locale`:
37
+ Set the locale to push or pull explicitly. For example `wti pull -l fr` will only pull
38
+ the French language file.
39
+
40
+ * `--force`:
41
+ The Web Translate It API use HTTP caching to be efficient, and check if your file needs
42
+ to be updated by checking its modification date against the project’s latest activity.
43
+ Use this option to bypass this check.
44
+
45
+ You may additionally ask for help:
46
+
47
+ * `-h`, `--help`:
48
+ Print help.
49
+
50
+ ## CONFIGURATION
51
+
52
+ The first `wti` is used on a project, it must be configured.
53
+
54
+ `wti autoconf` will help you create a configuration file to sync with
55
+ Web Translate It.
56
+
57
+ ## EXAMPLES
58
+
59
+ $ wti push
60
+ Pushing ./config/locales/app/en.yml…
61
+ Pushing ./config/locales/defaults/en.yml…
62
+
63
+
64
+ $ wti pull -l fr
65
+ Pulling ./config/locales/app/fr.yml…
66
+ Pulling ./config/locales/defaults/fr.yml…
67
+
68
+
69
+ $ wti stats
70
+ fr: 100% translated, 90% completed
71
+ ru: 10% translated, 10% completed
72
+ pt_BR: 0% translated, 0% completed
73
+ en: 100% translated, 90% completed
74
+
75
+ ## BUGS
76
+
77
+ <http://github.com/atelierConvivialite/webtranslateit/issues>
78
+
79
+ ## AUTHOR
80
+
81
+ Édouard Brière :: edouard@atelierconvivialite.com
@@ -0,0 +1,15 @@
1
+ # The Project API Token from Web Translate It
2
+ api_key: abcd
3
+
4
+ # The Master locale is the locale you translate your project from. Web Translate It shouldn’t
5
+ # attempt to edit these files.
6
+ ignore_locales: en_GB
7
+
8
+ # A list of files to translate
9
+ # You can name your language files as you want, as long as the locale name match the
10
+ # locale name you set in Web Translate It, and that the different language files names are
11
+ # differenciated by their locale name.
12
+ # For example, if you set to translate a project in en_US in WTI, you should use the locale en_US in your app
13
+ files:
14
+ - config/locales/file1_[locale].yml
15
+ - config/locales/file2_[locale].yml
@@ -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"
data/spec/spec.opts ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/../lib/web_translate_it'
2
+ # $:.unshift File.dirname(__FILE__) + '/../lib'
3
+ # Dir[File.join(File.dirname(__FILE__), '../vendor/*/lib')].each do |path|
4
+ # $:.unshift path
5
+ # end
@@ -0,0 +1,31 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
2
+
3
+ describe WebTranslateIt::Configuration do
4
+ before(:each) do
5
+ WebTranslateIt::Configuration.const_set("RAILS_ROOT", File.dirname(__FILE__) + '/../examples')
6
+ end
7
+
8
+ describe "#initialize" do
9
+ it "should fetch and not blow up" do
10
+ lambda{ WebTranslateIt::Configuration.new }.should_not raise_error
11
+ end
12
+
13
+ it "should load the content of the YAML file" do
14
+ config_hash = {
15
+ "api_key" => "abcd",
16
+ "ignore_locales" => "en_GB",
17
+ "files" => ["config/locales/file1_[locale].yml", "config/locales/file2_[locale].yml"]
18
+ }
19
+ YAML.should_receive(:load_file).and_return(config_hash)
20
+ WebTranslateIt::Configuration.new
21
+ end
22
+
23
+ it "should assign the API key, autofetch, files and master_locale" do
24
+ configuration = WebTranslateIt::Configuration.new
25
+ configuration.api_key.should == 'abcd'
26
+ configuration.files.first.should be_a(WebTranslateIt::TranslationFile)
27
+ configuration.ignore_locales.should == ['en_GB']
28
+ end
29
+ end
30
+
31
+ end