air18n 0.1.34 → 0.1.35

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.
@@ -108,6 +108,11 @@ module Air18n
108
108
  else
109
109
  message = error
110
110
  end
111
+ elsif latest && latest.user_id != user_id
112
+ pt.is_verification = true
113
+
114
+ do_save = true
115
+ message = "Translation saved, marked as verified."
111
116
  else
112
117
  do_save = true
113
118
  message = "Translation saved."
@@ -1,3 +1,3 @@
1
1
  module Air18n
2
- VERSION = "0.1.34"
2
+ VERSION = "0.1.35"
3
3
  end
@@ -163,46 +163,68 @@ describe Air18n::PhraseTranslation do
163
163
  translation.source_word_count.should == 3
164
164
  translation.source_hash.should == "2ac1a5cdad0d3ca0b0c318000c2f7378"
165
165
 
166
+ # Since November 2012, we automatically mark edits as verifications.
167
+ # But not when the translator is the same as the one before.
168
+ translation.should_not be_verification
169
+
170
+ ##### 3.5. Submission of unchanged translation by same translator.
171
+
172
+ response = Air18n::PhraseTranslation.create_translation(
173
+ phrase.id, phrase.key, :es, 'whyo helloo newword1 thereo newword2', user_id_first, do_xss_check, allow_verification)
174
+ response.should include(
175
+ :status => 'error', :message => 'You last translated this phrase, so somebody else must verify it.')
176
+
177
+ unchanged_translation = phrase.latest_translation(:es)
178
+ unchanged_translation.id.should == translation.id
179
+
166
180
  ##### 3. Tweak to existing translation to delete a word.
167
181
 
168
182
  response = Air18n::PhraseTranslation.create_translation(
169
- phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_first, do_xss_check, allow_verification)
183
+ phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_second, do_xss_check, allow_verification)
170
184
 
171
185
  translation = phrase.latest_translation(:es)
172
186
  translation.value.should == 'whyo helloo newword1 newword2'
173
187
  translation.source_word_count.should == 3
174
188
  translation.source_hash.should == "2ac1a5cdad0d3ca0b0c318000c2f7378"
175
189
 
176
- ##### 4. Submission of unchanged translation.
190
+ # Since November 2012, we automatically mark edits as verifications.
191
+ # This one is done by a different translator as the previous
192
+ # translator, so is a verification.
193
+ translation.should be_verification
194
+
195
+ ##### 4. Submission of unchanged translation for a phrase that is
196
+ ##### already verified.
177
197
 
178
198
  response = Air18n::PhraseTranslation.create_translation(
179
199
  phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_first, do_xss_check, allow_verification)
180
200
  response.should include(
181
- :status => 'error', :message => 'You last translated this phrase, so somebody else must verify it.')
201
+ :status => 'error', :message => 'Translation already verified; nothing saved.')
182
202
 
183
203
  unchanged_translation = phrase.latest_translation(:es)
184
204
  unchanged_translation.id.should == translation.id
185
205
 
186
- ##### 5. Submission of unchanged translation for stale phrase.
206
+ ##### 5. Submission of unchanged translation for stale phrase by same translator.
187
207
 
188
208
  phrase.value = 'why hello there, good day'
189
209
  phrase.save!
190
210
 
191
211
  response = Air18n::PhraseTranslation.create_translation(
192
- phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_first, do_xss_check, allow_verification)
212
+ phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_second, do_xss_check, allow_verification)
193
213
  response.should include(
194
214
  :status => 'success', :message => 'Translation marked as up-to-date.')
195
215
 
196
216
  translation = phrase.latest_translation(:es)
197
217
  translation.value.should == 'whyo helloo newword1 newword2'
198
218
  translation.source_word_count.should == 3
199
- translation.is_verification.should == false # Not actually a verification.
219
+ translation.is_verification.should == true # Because last touch was verification.
200
220
  translation.source_hash.should == "2ac1a5cdad0d3ca0b0c318000c2f7378"
201
221
 
202
- ##### 6. Verification by a different translator.
222
+ ##### 6. Submission of unchanged translation for stale phrase by different translator.
223
+ phrase.value = 'why hello there, happy day'
224
+ phrase.save!
203
225
 
204
226
  response = Air18n::PhraseTranslation.create_translation(
205
- phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_second, do_xss_check, allow_verification)
227
+ phrase.id, phrase.key, :es, 'whyo helloo newword1 newword2', user_id_first, do_xss_check, allow_verification)
206
228
  response.should include(
207
229
  :status => 'success', :message => 'Translation verified.')
208
230
 
@@ -210,7 +232,7 @@ describe Air18n::PhraseTranslation do
210
232
  translation.value.should == 'whyo helloo newword1 newword2'
211
233
  translation.source_word_count.should == 5
212
234
  translation.is_verification.should == true
213
- translation.source_hash.should == "6f20684ed3e1fa2c9ccd30249d5c9f7a"
235
+ translation.source_hash.should == "9fd16f4422eadae1c159d60ba063405f"
214
236
  end
215
237
  end
216
238
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: air18n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.34
4
+ version: 0.1.35
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: