View | Details | Raw Unified | Return to bug 230949
Collapse All | Expand All

(-)server/html/js/projectString.js (-1 / +13 lines)
Lines 204-210 Link Here
204
	
204
	
205
	updateStringTableCurrentTranslation: function(stringTableIndex,trans){
205
	updateStringTableCurrentTranslation: function(stringTableIndex,trans){
206
		this.tableDom.rows[stringTableIndex].cells[1].innerHTML = trans;
206
		this.tableDom.rows[stringTableIndex].cells[1].innerHTML = trans;
207
	}	
207
	},
208
209
	updateStringTableFuzzy: function(stringTableIndex, fuzzy){
210
		if(fuzzy == 1) {
211
			this.tableDom.rows[stringTableIndex].cells[1].innerHTML = '<img src="images/fuzzy.png" />' + this.tableDom.rows[stringTableIndex].cells[1].innerHTML;
212
		}
213
	},
208
//$stringTableIndex	
214
//$stringTableIndex	
209
};
215
};
210
216
Lines 232-241 Link Here
232
	values.string = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>";
238
	values.string = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>";
233
	
239
	
234
	temp = this.data['translationString'] ? this.data['translationString'] : ''
240
	temp = this.data['translationString'] ? this.data['translationString'] : ''
241
	
242
	if(this.data['fuzzy'] == 1 && this.data['nontranslatable'] != 1) {
243
		temp = "<img src='images/fuzzy.png' title='Possibly incorrect' />" + temp;
244
	}
245
	
235
	values.translation = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>";
246
	values.translation = "<div style='width: 100%; overflow: hidden;'>"+temp+"</div>";
236
	values.translator = this.data['translator'] ? this.data['translator'] : '';
247
	values.translator = this.data['translator'] ? this.data['translator'] : '';
237
	values.createdon = this.data['createdOn'];
248
	values.createdon = this.data['createdOn'];
238
	values.stringname = this.data['stringname'];
249
	values.stringname = this.data['stringname'];
250
	values.fuzzy = this.data['fuzzy']
239
	
251
	
240
	var lineDome = YAHOO.projectStringsManager.createHTML(values,tableDom);
252
	var lineDome = YAHOO.projectStringsManager.createHTML(values,tableDom);
241
	this.domElem = lineDome;
253
	this.domElem = lineDome;
(-)server/html/js/translation.js (-1 / +3 lines)
Lines 83-88 Link Here
83
function translationSumbit(allornot,translationIndex){
83
function translationSumbit(allornot,translationIndex){
84
	var target = document.getElementById('translation-form');
84
	var target = document.getElementById('translation-form');
85
	var tr_value = target.translation.value;
85
	var tr_value = target.translation.value;
86
	var fuzzy_value = (target.fuzzy_checkbox.checked ? 1 : 0);
86
	
87
	
87
	var callback = 
88
	var callback = 
88
	{ 
89
	{ 
Lines 91-96 Link Here
91
		success: function(o) {
92
		success: function(o) {
92
			var response = eval("("+o.responseText+")");			
93
			var response = eval("("+o.responseText+")");			
93
			YAHOO.projectStringsManager.updateStringTableCurrentTranslation(translationIndex, response.translationString);
94
			YAHOO.projectStringsManager.updateStringTableCurrentTranslation(translationIndex, response.translationString);
95
			YAHOO.projectStringsManager.updateStringTableFuzzy(translationIndex, fuzzy_value);
94
			target.innerHTML = response.translationArea;
96
			target.innerHTML = response.translationArea;
95
		},
97
		},
96
		failure: function(o) {
98
		failure: function(o) {
Lines 99-107 Link Here
99
	} 
101
	} 
100
	
102
	
101
	YAHOO.tranlsation.posted = true;
103
	YAHOO.tranlsation.posted = true;
102
	
103
	var post = "string_id="+target.string_id.value+
104
	var post = "string_id="+target.string_id.value+
104
			   "&translation="+sub(tr_value)+
105
			   "&translation="+sub(tr_value)+
106
			   "&fuzzy="+fuzzy_value+
105
			   "&translate_action="+allornot;
107
			   "&translate_action="+allornot;
106
	spin();
108
	spin();
107
	var request = YAHOO.util.Connect.asyncRequest('POST', "callback/setStringTranslation.php", callback, post);
109
	var request = YAHOO.util.Connect.asyncRequest('POST', "callback/setStringTranslation.php", callback, post);
(-)server/html/callback/setStringTranslation.php (-20 / +26 lines)
Lines 17-22 Link Here
17
17
18
$string_id = $App->getHTTPParameter("string_id", "POST");
18
$string_id = $App->getHTTPParameter("string_id", "POST");
19
$translation = $App->getHTTPParameter("translation", "POST");
19
$translation = $App->getHTTPParameter("translation", "POST");
20
$fuzzy_state = $App->getHTTPParameter("fuzzy", "POST");
20
21
21
$language_id = $_SESSION["language"];
22
$language_id = $_SESSION["language"];
22
$project_id = $_SESSION['project'];
23
$project_id = $_SESSION['project'];
Lines 54-59 Link Here
54
				  	language_id = '".addslashes($language_id)."',
55
				  	language_id = '".addslashes($language_id)."',
55
				  	value = '".addslashes($translation)."',
56
				  	value = '".addslashes($translation)."',
56
				  	userid = '".addslashes($user_id)."',
57
				  	userid = '".addslashes($user_id)."',
58
				  	possibly_incorrect = '".addslashes($fuzzy_state)."',
57
				  	created_on = NOW()
59
				  	created_on = NOW()
58
				  	";
60
				  	";
59
	$res = mysql_query($query,$dbh);
61
	$res = mysql_query($query,$dbh);
Lines 119-124 Link Here
119
						language_id = '".addslashes($row['language_id'])."' , 
121
						language_id = '".addslashes($row['language_id'])."' , 
120
						value = '".addslashes($translation)."', 
122
						value = '".addslashes($translation)."', 
121
  						userid = '".addslashes($user_id)."',
123
  						userid = '".addslashes($user_id)."',
124
  						possibly_incorrect = '".addslashes($fuzzy_state)."',
122
				   		created_on  = NOW()
125
				   		created_on  = NOW()
123
					";
126
					";
124
			$res2 = mysql_query($query,$dbh);
127
			$res2 = mysql_query($query,$dbh);
Lines 153-158 Link Here
153
	 					string_id = '".addslashes($row['string_id'])."', 
156
	 					string_id = '".addslashes($row['string_id'])."', 
154
						language_id = '".addslashes($language)."' , 
157
						language_id = '".addslashes($language)."' , 
155
						value = '".addslashes($translation)."', 
158
						value = '".addslashes($translation)."', 
159
						possibly_incorrect = '".addslashes($fuzzy_state)."',
156
  						userid = '".addslashes($user_id)."',
160
  						userid = '".addslashes($user_id)."',
157
				   		created_on  = NOW()
161
				   		created_on  = NOW()
158
					";
162
					";
Lines 165-190 Link Here
165
if(!$do_nothing) {
169
if(!$do_nothing) {
166
	# Find all string_id's that have the same binary value as the one we're translating
170
	# Find all string_id's that have the same binary value as the one we're translating
167
	# *and* have no translation yet, and update those too.
171
	# *and* have no translation yet, and update those too.
168
	$sql = "SELECT s.string_id, COUNT(t.string_id) AS tr_count
172
	if(!$fuzzy_state) {
169
	FROM strings AS s 
173
		$sql = "SELECT s.string_id, COUNT(t.string_id) AS tr_count
170
	LEFT JOIN translations AS t ON t.string_id = s.string_id AND t.language_id = '".addslashes($language_id)."'
174
		FROM strings AS s 
171
	WHERE BINARY s.value = (select value from strings where string_id = '".addslashes($string_id)."')  
175
		LEFT JOIN translations AS t ON t.string_id = s.string_id AND t.language_id = '".addslashes($language_id)."'
172
		AND s.is_active = 1 AND t.value IS NULL GROUP BY s.string_id HAVING tr_count = 0";
176
		WHERE BINARY s.value = (select value from strings where string_id = '".addslashes($string_id)."')  
173
177
			AND s.is_active = 1 AND t.value IS NULL GROUP BY s.string_id HAVING tr_count = 0";
174
	$res 		= mysql_query($sql, $dbh);
178
175
	$str_count 	= mysql_affected_rows();
179
		$res 		= mysql_query($sql, $dbh);
176
	
180
		$str_count 	= mysql_affected_rows();
177
	while($myrow = mysql_fetch_assoc($res)) {
181
	
178
		$sql = "insert into 
182
		while($myrow = mysql_fetch_assoc($res)) {
179
					translations
183
			$sql = "insert into 
180
				  set
184
						translations
181
				  	string_id = " . $myrow['string_id'] . ",
185
					  set
182
				  	language_id = '".addslashes($language_id)."',
186
				  		string_id = " . $myrow['string_id'] . ",
183
				  	value = '".addslashes($translation)."',
187
					  	language_id = '".addslashes($language_id)."',
184
				  	userid = '".addslashes($user_id)."',
188
					  	value = '".addslashes($translation)."',
185
				  	created_on = NOW()";
189
					  	userid = '".addslashes($user_id)."',
186
		mysql_query($sql, $dbh);
190
					  	created_on = NOW()";
187
		$affected_rows += mysql_affected_rows();
191
			mysql_query($sql, $dbh);
192
			$affected_rows += mysql_affected_rows();
193
		}
188
	}
194
	}
189
}
195
}
190
196
(-)server/html/callback/getStringsforProject.php (-2 / +5 lines)
Lines 46-52 Link Here
46
				strings.value as string,
46
				strings.value as string,
47
				strings.name as stringName,
47
				strings.name as stringName,
48
				strings.non_translatable,
48
				strings.non_translatable,
49
				translations.value as translation
49
				translations.value as translation,
50
				translations.possibly_incorrect as fuzzy
50
			  from 
51
			  from 
51
			  	strings,
52
			  	strings,
52
			  	files
53
			  	files
Lines 70-75 Link Here
70
				strings.name as stringName,
71
				strings.name as stringName,
71
				strings.non_translatable,
72
				strings.non_translatable,
72
				translations.value as translation,
73
				translations.value as translation,
74
				translations.possibly_incorrect as fuzzy,
73
				users.username as translator
75
				users.username as translator
74
				from 
76
				from 
75
			  	strings,
77
			  	strings,
Lines 100-105 Link Here
100
					strings.value as text,
102
					strings.value as text,
101
					strings.created_on as createdOn,
103
					strings.created_on as createdOn,
102
					translations.value as translationString,
104
					translations.value as translationString,
105
					translations.possibly_incorrect as fuzzy,
103
					users.first_name as first,
106
					users.first_name as first,
104
					users.last_name as last
107
					users.last_name as last
105
					from 
108
					from 
Lines 154-160 Link Here
154
    	if($line['non_translatable']){
157
    	if($line['non_translatable']){
155
    		$line['translationString'] = "<span style='font-style: italic;'>non-translatable string";
158
    		$line['translationString'] = "<span style='font-style: italic;'>non-translatable string";
156
    		$line['nontranslatable'] = true;
159
    		$line['nontranslatable'] = true;
157
    	}
160
    	} 
158
		$return[] = $line;
161
		$return[] = $line;
159
		$stringids[$line['stringId']] = 1;
162
		$stringids[$line['stringId']] = 1;
160
    }
163
    }
(-)server/html/callback/getCurrentStringTranslation.php (-5 / +13 lines)
Lines 30-35 Link Here
30
			strings.non_translatable,
30
			strings.non_translatable,
31
			strings.value as string_value,
31
			strings.value as string_value,
32
			translations.value as translation_value,
32
			translations.value as translation_value,
33
			translations.possibly_incorrect as fuzzy,
33
			files.name,
34
			files.name,
34
			strings.name as token,
35
			strings.name as token,
35
			max(translations.version)
36
			max(translations.version)
Lines 149-156 Link Here
149
		Select some English text above to find similar translations.
150
		Select some English text above to find similar translations.
150
		</div>
151
		</div>
151
		
152
		
152
		<input id='non-translatable-checkbox' type=checkbox name="non_translatable_string" <?= $line['non_translatable'] ? 'checked' : '' ;?>>Non-Translatable
153
		<input id='non-translatable-checkbox' type=checkbox name="non_translatable_string" <?= $line['non_translatable'] ? 'checked' : '' ;?>>Non-Translatable		
153
		
154
	</div>
154
	</div>
155
	<div id="translation-textarea" class="side-component">
155
	<div id="translation-textarea" class="side-component">
156
	<?if($line['non_translatable'] == 0){?>
156
	<?if($line['non_translatable'] == 0){?>
Lines 159-167 Link Here
159
			[<a id="reset-current-translation-link">Reset</a>]
159
			[<a id="reset-current-translation-link">Reset</a>]
160
			[<a id="clear-current-translation-link">Clear</a>]
160
			[<a id="clear-current-translation-link">Clear</a>]
161
		</h4>
161
		</h4>
162
		
162
		<textarea id="current-translation" style='display: inline; width: 320px; height: 150px;' name="translation"><?=(($line['translation_value']));?></textarea>
163
		<textarea id="current-translation" style='display: inline; width: 320px; height: 150px;' name="translation"><?=(($line['translation_value']));?></textarea>
163
		<br>
164
		<br />
165
		<input id='fuzzy' type=checkbox name="fuzzy_checkbox" <?= $line['fuzzy'] ? 'checked' : '' ;?>> Translation is possibly incorrect 
166
		<br />
164
		<button id="allversions" type="submit" name="translateAction" value="All Versions">Submit</button>
167
		<button id="allversions" type="submit" name="translateAction" value="All Versions">Submit</button>
168
		
165
	<?}else{?>
169
	<?}else{?>
166
		<h4>Non Translatable String</h4>
170
		<h4>Non Translatable String</h4>
167
		<br>
171
		<br>
Lines 178-193 Link Here
178
		
182
		
179
		<table>
183
		<table>
180
		<?php
184
		<?php
181
			$query = "select value,first_name,last_name,translations.created_on from translations,users where string_id = '".addslashes($line['string_id'])."' and language_id = '".addslashes($language)."' and translations.userid = users.userid order by translations.created_on desc";
185
			$query = "select value,first_name,last_name,translations.created_on, possibly_incorrect as fuzzy from translations,users where string_id = '".addslashes($line['string_id'])."' and language_id = '".addslashes($language)."' and translations.userid = users.userid order by translations.created_on desc";
182
			$res_history = mysql_query($query,$dbh);
186
			$res_history = mysql_query($query,$dbh);
183
			
187
			
184
			if(!mysql_num_rows($res_history)){
188
			if(!mysql_num_rows($res_history)){
185
				print "No history.";
189
				print "No history.";
186
			}else{		
190
			}else{		
187
				while($line = mysql_fetch_array($res_history, MYSQL_ASSOC)){
191
				while($line = mysql_fetch_array($res_history, MYSQL_ASSOC)){
192
					$fuzzy = "";
193
					if($line['fuzzy'] == 1) {
194
						$fuzzy = "<img src='images/fuzzy.png' />";
195
					}
188
					print "<tr>";
196
					print "<tr>";
189
					print "<td width='40%'>";
197
					print "<td width='40%'>";
190
					print "<div>".nl2br(htmlspecialchars($line['value']))."</div>";
198
					print "<div>$fuzzy".nl2br(htmlspecialchars($line['value']))."</div>";
191
					print "</td>";
199
					print "</td>";
192
					print "<td width='20%'>";
200
					print "<td width='20%'>";
193
					print $line['first_name']." ".$line['last_name'];
201
					print $line['first_name']." ".$line['last_name'];
(-)server/html/content/en_recent_html_list.php (-1 / +10 lines)
Lines 18-23 Link Here
18
li {
18
li {
19
	padding-bottom: 5px;
19
	padding-bottom: 5px;
20
}
20
}
21
img {
22
	vertical-align: bottom;
23
}
21
</style>
24
</style>
22
25
23
<?include 'en_recent_html_common.php' ?>
26
<?include 'en_recent_html_common.php' ?>
Lines 31-39 Link Here
31
			$prev_date = substr($myrow['created_on'],0,10);
34
			$prev_date = substr($myrow['created_on'],0,10);
32
			echo "<h2>$prev_date</h2>";
35
			echo "<h2>$prev_date</h2>";
33
		}
36
		}
37
		$fuzzy = "";
38
		if($myrow['fuzzy'] == 1) {
39
			$fuzzy = "<img src='images/fuzzy.png' /> ";
40
		}
41
		
34
		echo "<li>" . 
42
		echo "<li>" . 
35
			substr($myrow['created_on'],11,5) . " " . $myrow['string_value'] . 
43
			substr($myrow['created_on'],11,5) . " " . $myrow['string_value'] . 
36
				" -> " . $myrow['translation'] . 
44
				" -> " . $myrow['translation'] .
45
				$fuzzy .  
37
				" [" . $myrow['language'] . ": <a href='translate.php?project=" . $myrow['project_id'] . "&version=" . $myrow['version'] . "&file=" . $myrow['name'] . "&string=" . $myrow['string_key'] . "'>" .$myrow['string_key'] . "</a>] <b>" . 
46
				" [" . $myrow['language'] . ": <a href='translate.php?project=" . $myrow['project_id'] . "&version=" . $myrow['version'] . "&file=" . $myrow['name'] . "&string=" . $myrow['string_key'] . "'>" .$myrow['string_key'] . "</a>] <b>" . 
38
				$myrow['project_id'] . " " . 
47
				$myrow['project_id'] . " " . 
39
				$myrow['version'] . "</b> 
48
				$myrow['version'] . "</b> 
(-)server/html/content/en_recent_html_common.php (+3 lines)
Lines 34-43 Link Here
34
   <option value="1000">1000</option>
34
   <option value="1000">1000</option>
35
   <option value="2000">2000</option>
35
   <option value="2000">2000</option>
36
   <option value="5000">5000</option>
36
   <option value="5000">5000</option>
37
   <option value="10000">10000</option>
38
   <option value="20000">20000</option>
37
</select> translations</td></tr>
39
</select> translations</td></tr>
38
<tr><td>Layout <select name="layout">
40
<tr><td>Layout <select name="layout">
39
   <option value="list" <?= $LAYOUT == "list" ? "selected='selected'" : "" ?>>list</option>
41
   <option value="list" <?= $LAYOUT == "list" ? "selected='selected'" : "" ?>>list</option>
40
   <option value="table" <?= $LAYOUT == "table" ? "selected='selected'" : "" ?>>table</option>
42
   <option value="table" <?= $LAYOUT == "table" ? "selected='selected'" : "" ?>>table</option>
41
</select></td>
43
</select></td>
44
<td><input type="checkbox" name="fuzzy" <?= $FUZZY ? "checked" : "" ?> value="1" /> Show Possibly Incorrect only</td>
42
 </tr>
45
 </tr>
43
 <tr><td colspan="4"><input type="submit" value="Apply filter" /></td></tr></table></form>
46
 <tr><td colspan="4"><input type="submit" value="Apply filter" /></td></tr></table></form>
(-)server/html/recent.php (-1 / +11 lines)
Lines 33-38 Link Here
33
if($LANGUAGE_ID == "") {
33
if($LANGUAGE_ID == "") {
34
	$LANGUAGE_ID = $_SESSION["language"];
34
	$LANGUAGE_ID = $_SESSION["language"];
35
}
35
}
36
37
$FUZZY		= $App->getHTTPParameter("fuzzy");
38
if($FUZZY == "" || $FUZZY != 1) {
39
	$FUZZY = 0;
40
}
41
36
if($LANGUAGE_ID == "All") {
42
if($LANGUAGE_ID == "All") {
37
	$LANGUAGE_ID = "";
43
	$LANGUAGE_ID = "";
38
}
44
}
Lines 75-80 Link Here
75
	$where = $App->addAndIfNotNull($where) . "u.userid = ";
81
	$where = $App->addAndIfNotNull($where) . "u.userid = ";
76
	$where .= $App->sqlSanitize($USERID, $dbh);
82
	$where .= $App->sqlSanitize($USERID, $dbh);
77
}
83
}
84
if($FUZZY == 1) {
85
	$where = $App->addAndIfNotNull($where) . "t.possibly_incorrect = 1 ";
86
}
78
87
79
if($where != "") {
88
if($where != "") {
80
	$where = " WHERE " . $where;
89
	$where = " WHERE " . $where;
Lines 83-89 Link Here
83
92
84
$sql = "SELECT 
93
$sql = "SELECT 
85
  s.name AS string_key, s.value as string_value, 
94
  s.name AS string_key, s.value as string_value, 
86
  t.value as translation, 
95
  t.value as translation,
96
  t.possibly_incorrect as fuzzy, 
87
  IF(u.last_name <> '' AND u.first_name <> '', 
97
  IF(u.last_name <> '' AND u.first_name <> '', 
88
  	CONCAT(CONCAT(first_name, ' '), u.last_name), 
98
  	CONCAT(CONCAT(first_name, ' '), u.last_name), 
89
  	IF(u.first_name <> '', u.first_name, u.last_name)) AS who,
99
  	IF(u.first_name <> '', u.first_name, u.last_name)) AS who,

Return to bug 230949