trip_advisor 0.0.15

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.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +52 -0
  4. data/.rspec +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +5 -0
  7. data/Gemfile +4 -0
  8. data/Gemfile.lock +118 -0
  9. data/LICENSE.txt +20 -0
  10. data/README.md +23 -0
  11. data/Rakefile +7 -0
  12. data/lib/trip_advisor/api.rb +45 -0
  13. data/lib/trip_advisor/build.rb +221 -0
  14. data/lib/trip_advisor/rake_tasks.rb +182 -0
  15. data/lib/trip_advisor/resource_manager.rb +101 -0
  16. data/lib/trip_advisor/strings_file.rb +112 -0
  17. data/lib/trip_advisor/translation.rb +63 -0
  18. data/lib/trip_advisor/translation_tool.rb +110 -0
  19. data/lib/trip_advisor/version.rb +3 -0
  20. data/lib/trip_advisor.rb +5 -0
  21. data/run_tests.sh +6 -0
  22. data/spec/api_spec.rb +34 -0
  23. data/spec/builder_spec.rb +262 -0
  24. data/spec/fixtures/AndroidStrings.txt +21 -0
  25. data/spec/fixtures/Strings.txt +47 -0
  26. data/spec/fixtures/project.git/.gitignore +1 -0
  27. data/spec/fixtures/project.git/BUILD.json +7 -0
  28. data/spec/fixtures/project.git/Code/Project.h +0 -0
  29. data/spec/fixtures/project.git/Code/Project.m +0 -0
  30. data/spec/fixtures/project.git/Gemfile +3 -0
  31. data/spec/fixtures/project.git/Gemfile.lock +38 -0
  32. data/spec/fixtures/project.git/HEAD +1 -0
  33. data/spec/fixtures/project.git/LICENSE +1 -0
  34. data/spec/fixtures/project.git/Podfile +6 -0
  35. data/spec/fixtures/project.git/Podfile.lock +14 -0
  36. data/spec/fixtures/project.git/Project.podspec +14 -0
  37. data/spec/fixtures/project.git/TestProject/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
  38. data/spec/fixtures/project.git/TestProject/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  39. data/spec/fixtures/project.git/TestProject/TATPAppDelegate.h +15 -0
  40. data/spec/fixtures/project.git/TestProject/TATPAppDelegate.m +49 -0
  41. data/spec/fixtures/project.git/TestProject/TestProject-Info.plist +38 -0
  42. data/spec/fixtures/project.git/TestProject/TestProject-Prefix.pch +16 -0
  43. data/spec/fixtures/project.git/TestProject/en.lproj/InfoPlist.strings +1 -0
  44. data/spec/fixtures/project.git/TestProject/main.m +18 -0
  45. data/spec/fixtures/project.git/TestProject.xcodeproj/project.pbxproj +1020 -0
  46. data/spec/fixtures/project.git/TestProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  47. data/spec/fixtures/project.git/TestProject.xcodeproj/project.xcworkspace/xcuserdata/blake.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  48. data/spec/fixtures/project.git/TestProject.xcodeproj/xcuserdata/blake.xcuserdatad/xcschemes/TestProject.xcscheme +96 -0
  49. data/spec/fixtures/project.git/TestProject.xcodeproj/xcuserdata/blake.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  50. data/spec/fixtures/project.git/TestProject.xcworkspace/contents.xcworkspacedata +1 -0
  51. data/spec/fixtures/project.git/TestProjectTests/TestProjectTests-Info.plist +22 -0
  52. data/spec/fixtures/project.git/TestProjectTests/TestProjectTests.m +34 -0
  53. data/spec/fixtures/project.git/TestProjectTests/en.lproj/InfoPlist.strings +1 -0
  54. data/spec/fixtures/project.git/VERSION +1 -0
  55. data/spec/fixtures/project.git/config +7 -0
  56. data/spec/fixtures/project.git/description +1 -0
  57. data/spec/fixtures/project.git/index +0 -0
  58. data/spec/fixtures/project.git/info/exclude +6 -0
  59. data/spec/fixtures/project.git/logs/HEAD +1 -0
  60. data/spec/fixtures/project.git/logs/refs/heads/master +1 -0
  61. data/spec/fixtures/project.git/objects/00/a6b3f80ebbe4019f03461416061e8805e6eab1 +0 -0
  62. data/spec/fixtures/project.git/objects/03/c303d5552f29d366d11a13448c3c18e94c3bfa +0 -0
  63. data/spec/fixtures/project.git/objects/03/ff7c3a95a196ac8ad1d53db2bd4fb4c80507c1 +0 -0
  64. data/spec/fixtures/project.git/objects/0a/7123364a174ffda52d29a18cdd31fd325bbd6c +0 -0
  65. data/spec/fixtures/project.git/objects/0d/183cba8b0a5e477ea1d001130c222af19b8324 +0 -0
  66. data/spec/fixtures/project.git/objects/0e/6ba5232c3c2f8a7e435794e845b5dc9f339d8b +0 -0
  67. data/spec/fixtures/project.git/objects/25/5b4ee687ed1337cffb10e6d07bb89ee6e5d180 +0 -0
  68. data/spec/fixtures/project.git/objects/25/60a2b9ab9323ca61a0fdebd3b4af46dbe4c272 +0 -0
  69. data/spec/fixtures/project.git/objects/2b/f8bd93d56787a7548c7f8960a94f05c269b486 +0 -0
  70. data/spec/fixtures/project.git/objects/38/439105a884d2556443c7b5c645034e67fb7987 +0 -0
  71. data/spec/fixtures/project.git/objects/3e/efcb9dd5b38e2c1dc061052455dd97bcd51e6c +0 -0
  72. data/spec/fixtures/project.git/objects/53/8b3019ab68814604fbc8e017d09b690c22728c +0 -0
  73. data/spec/fixtures/project.git/objects/59/c178850684e21fafbebedeff15b2b522402af2 +0 -0
  74. data/spec/fixtures/project.git/objects/62/037867910d9aa803d7e02addc26574e270d3d8 +0 -0
  75. data/spec/fixtures/project.git/objects/66/05c1af131470a3b635d166f2591917b32f3b82 +0 -0
  76. data/spec/fixtures/project.git/objects/69/67e396037a52d8300eb9dc8a1e9f7155dd55bf +0 -0
  77. data/spec/fixtures/project.git/objects/6b/5ad4043aee9bc0936466760665f870d4f2f40f +0 -0
  78. data/spec/fixtures/project.git/objects/6c/fc746d4ecf2e3ac67bb0cf6c4013e1aff9b1f1 +0 -0
  79. data/spec/fixtures/project.git/objects/6f/3b0ab36651ca648408c176f81e4b2e202efa0b +0 -0
  80. data/spec/fixtures/project.git/objects/74/3435c9bee5c433fe166891e698fdc70d81a3de +0 -0
  81. data/spec/fixtures/project.git/objects/96/81bfb8ec019f74df384cfb66d68e94bd6d9005 +0 -0
  82. data/spec/fixtures/project.git/objects/99/fa9259e929fe3bee4791ff2a63070fc0358c0a +3 -0
  83. data/spec/fixtures/project.git/objects/a1/5f8980cfbf126a9a0b3ddf7fb1c3fbd6480934 +2 -0
  84. data/spec/fixtures/project.git/objects/a3/96706db4ec4cfca4d984d38b90dc8098bded40 +1 -0
  85. data/spec/fixtures/project.git/objects/b4/42134ccda2b0b1813288e7e04a401a4bef2b59 +0 -0
  86. data/spec/fixtures/project.git/objects/b9/2732c79e00cf2fad5ceceb61bbc7a9a9739d2c +0 -0
  87. data/spec/fixtures/project.git/objects/ba/01f5352549018dfdb95423b9e0974443ec0346 +1 -0
  88. data/spec/fixtures/project.git/objects/ba/8dd7d2162334426facd310f62ed923eb6f4cf5 +0 -0
  89. data/spec/fixtures/project.git/objects/bf/422763a0101a5971e15d53581acb825b4d38b8 +0 -0
  90. data/spec/fixtures/project.git/objects/c7/9ebd3ada1309bae694b8e6760592b1254e035c +2 -0
  91. data/spec/fixtures/project.git/objects/ca/7ced48ee61e517fc57576a33dc9d95f5d4f539 +2 -0
  92. data/spec/fixtures/project.git/objects/ce/eed5f059b6d374d08e0b1e732463842b3a5a91 +0 -0
  93. data/spec/fixtures/project.git/objects/d7/89fd591fee7d26c2f40c6614b5a91931377f88 +0 -0
  94. data/spec/fixtures/project.git/objects/d8/ec4dbb2804f53fd863cd0adb830c5bf4e85a1d +0 -0
  95. data/spec/fixtures/project.git/objects/dc/680e07f12748657d5a798495f08ce3ad884f0b +0 -0
  96. data/spec/fixtures/project.git/objects/de/de871ad5691708aca809557a823082a70dde69 +0 -0
  97. data/spec/fixtures/project.git/objects/e0/30730e56be52e4dc293c829f73e0c586073ad2 +0 -0
  98. data/spec/fixtures/project.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  99. data/spec/fixtures/project.git/objects/e6/f7f8a92eb3177d10a809b96f41905e9be4cc2b +0 -0
  100. data/spec/fixtures/project.git/objects/ed/7115c4ae4c1885ee75f6ffe946b559546efd28 +0 -0
  101. data/spec/fixtures/project.git/objects/f1/e01dd1256054d5717ef0c89008f0a22639e273 +2 -0
  102. data/spec/fixtures/project.git/objects/f9/3e9c03a56aba331bcd98cb2ef00ba0003de285 +0 -0
  103. data/spec/fixtures/project.git/refs/heads/master +1 -0
  104. data/spec/fixtures/search.json +14159 -0
  105. data/spec/fixtures/search_results_1-50.html +1076 -0
  106. data/spec/fixtures/search_results_101-110.html +476 -0
  107. data/spec/fixtures/search_results_51-100.html +1076 -0
  108. data/spec/fixtures/translation_details.html +728 -0
  109. data/spec/fixtures/translation_details.json +738 -0
  110. data/spec/spec_helper.rb +28 -0
  111. data/spec/strings_file_spec.rb +225 -0
  112. data/spec/translation_spec.rb +21 -0
  113. data/spec/translation_tool_spec.rb +146 -0
  114. data/trip_advisor.gemspec +38 -0
  115. metadata +474 -0
@@ -0,0 +1,476 @@
1
+ <html>
2
+ <head>
3
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
+ <META src="no-cache" HTTP-EQUIV="Pragma">
5
+ <META src="no-cache,must-revalidate" HTTP-EQUIV="Cache-Control">
6
+ <META src="text/html;charset=iso-8859-1" HTTP-EQUIV="content-type">
7
+ <META src="0" HTTP-EQUIV="Expires">
8
+ <title>Translation toolView</title>
9
+ <style type="text/css">
10
+ <!--
11
+ body {
12
+ background-color: #ffffcc;
13
+ margin-left: 20px;
14
+ font-family: Verdana, Arial, Helvetica, sans-serif;
15
+ font-weight: normal;
16
+ font-size: 10px;
17
+ }
18
+ #errorMessage {
19
+ font-family: Verdana, Arial, Helvetica, sans-serif;
20
+ font-weight: bold;
21
+ font-size: 12pt;
22
+ background-color: red;
23
+ border: 1pt solid black;
24
+ padding: 5pt;
25
+ }
26
+ #message {
27
+ font-family: Verdana, Arial, Helvetica, sans-serif;
28
+ font-weight: bold;
29
+ font-size: 12pt;
30
+ background-color: white;
31
+ border: 1pt solid black;
32
+ padding: 5pt;
33
+ }
34
+ td {
35
+ font-family: Verdana, Arial, Helvetica, sans-serif;
36
+ font-weight: normal;
37
+ font-size: 10px;
38
+ }
39
+ th {
40
+ font-family: Verdana, Arial, Helvetica, sans-serif;
41
+ font-weight: bold;
42
+ font-size: 12px;
43
+ text-align: left;
44
+ color: #ffffff;
45
+ background-color: #000000;
46
+ }
47
+ th a {
48
+ font-family: Verdana, Arial, Helvetica, sans-serif;
49
+ font-weight: bold;
50
+ font-size: 12px;
51
+ text-align: left;
52
+ color: #ffffff;
53
+ background-color: #000000;
54
+ }
55
+ #smalltxt {
56
+ font-family: Verdana, Arial, Helvetica, sans-serif;
57
+ font-size: 8px;
58
+ color: gray;
59
+ }
60
+ #numtxt {
61
+ font-family: Verdana, Arial, Helvetica, sans-serif;
62
+ font-size: 10px;
63
+ color: black;
64
+ }
65
+ #toolbar {
66
+ border: solid black 2px;
67
+ font-family: Verdana, Arial, Helvetica, sans-serif;
68
+ font-size: 10px;
69
+ padding: 6px;
70
+ background-color: #ffcc99;
71
+ line-height: 21px;
72
+ }
73
+ #toolbar input, select {
74
+ font-family: Verdana, Arial, Helvetica, sans-serif;
75
+ font-size: 10px;
76
+ }
77
+ #toolbar form {
78
+ display: inline;
79
+ }
80
+ #actionbar b {
81
+ margin-right: 10px;
82
+ }
83
+ #tags {
84
+ font-size: 9px;
85
+ color: #333300;
86
+ }
87
+ #lockedBy {
88
+ font-size: 9px;
89
+ color: #ff0000;
90
+ }
91
+ #editHeader {
92
+ padding: 4px;
93
+ font-weight: bold;
94
+ }
95
+ .editValue {
96
+ }
97
+ #preview {
98
+ font-size: 24px;
99
+ color: black;
100
+ }
101
+ #username {
102
+ display: block;
103
+ position: absolute;
104
+ right: 10px;
105
+ top: 10px;
106
+ }
107
+ -->
108
+ </style>
109
+ <script type="text/javascript" language="JavaScript">
110
+ <!--
111
+ function selectall(status) {
112
+ var form = document.getElementById("formElements");
113
+ for (var i=0 ; i<form.elements.length ; i++)
114
+ {
115
+ var e=form.elements[i];
116
+ if (e.type=='checkbox')
117
+ {
118
+ //window.alert(e.checked);
119
+ e.checked=status;
120
+ }
121
+ }
122
+ }
123
+ function checkform ( )
124
+ {
125
+ // see http://www.thesitewizard.com/archive/validation.shtml
126
+ // for an explanation of this script and how to use it on your
127
+ // own website
128
+ // ** START **
129
+ var form = document.getElementById("edit");
130
+ if (form && form.comment && form.comment.value == "") {
131
+ alert( "You must enter a comment!" );
132
+ form.comment.focus();
133
+ return false ;
134
+ }
135
+ // ** END **
136
+ return true ;
137
+ }
138
+ function preview ( )
139
+ {
140
+ var text = document.getElementById("editText");
141
+ var preview = document.getElementById("preview");
142
+ var bGood = 1;
143
+ if(! text || ! preview) return;
144
+ // sanitize ...
145
+ var sanitized = '';
146
+ var htmlconverted = '';
147
+ var n = -1;
148
+ var nLast = 0;
149
+ var s = text.value;
150
+ while(s.indexOf("&lrm;") >=0)
151
+ {
152
+ s = s.replace("&lrm;", "");
153
+ }
154
+ // convert html
155
+ var tags = [];
156
+ while (-1 < (n = s.indexOf('<', nLast)) )
157
+ {
158
+ try
159
+ {
160
+ var nEnd = s.indexOf('>', n);
161
+ if(nEnd < 0)
162
+ {
163
+ bGood = 0;
164
+ break;
165
+ }
166
+ if(n-1 != nLast)
167
+ {
168
+ htmlconverted += s.substring(nLast, n);
169
+ if(tags.length >0 ) htmlconverted += "</span>";
170
+ }
171
+ nLast = nEnd+1;
172
+ var mytag = s.substring(n+1, nEnd);
173
+ if(mytag.match(/^\s*\//))
174
+ {
175
+ var oldtag = tags.pop();
176
+ if(!oldtag)
177
+ {
178
+ bGood = 0;
179
+ break;
180
+ }
181
+ }
182
+ else
183
+ {
184
+ tags.push(mytag);
185
+ }
186
+ if(tags.length > 0)
187
+ {
188
+ htmlconverted += "<span class='sp' style='text-decoration:underline;' title='";
189
+ var sTitle = tags.join(" ");
190
+ while(sTitle.indexOf("'") >= 0)
191
+ {
192
+ sTitle = sTitle.replace("'",'"');
193
+ }
194
+ htmlconverted += sTitle;
195
+ htmlconverted += "'>";
196
+ }
197
+ }
198
+ catch(e)
199
+ {
200
+ bGood = 0;
201
+ break;
202
+ }
203
+ }
204
+ if(nLast < s.length) htmlconverted += s.substring(nLast);
205
+ if(tags.length >0 ) htmlconverted += "</span>";
206
+ nLast = 0;
207
+ s = htmlconverted;
208
+ if(bGood) while (-1 < (n = s.indexOf('{', nLast)) )
209
+ {
210
+ try
211
+ {
212
+ var nEnd = s.indexOf('}', n);
213
+ sanitized += s.substring(nLast, n);
214
+ nLast = nEnd+1;
215
+ if(nEnd < 0)
216
+ {
217
+ bGood = 0;
218
+ break;
219
+ }
220
+ var components = s.substring(n+1,nEnd-1).split(',');
221
+ if(components.length >= 2 && components[1].indexOf('number')>=0)
222
+ {
223
+ sanitized += 42;
224
+ }
225
+ else if(components.length >= 3 && components[1].indexOf('choice')>=0)
226
+ {
227
+ var ndxStart = components[2].indexOf('|');
228
+ var ndxEnd = components[2].indexOf('#', ndxStart);
229
+ if(ndxStart <0 || ndxEnd < 0)
230
+ {
231
+ bGood = 0;
232
+ return;
233
+ }
234
+ var stmp = components[2].split('|'); stmp = stmp[1];
235
+ stmp=stmp.replace(/[0-9]+.?#/,'');
236
+ stmp=stmp.replace(/#[0-9]+/,'');
237
+ sanitized += stmp;
238
+ }
239
+ else
240
+ {
241
+ sanitized += 51;
242
+ }
243
+ }
244
+ catch(e)
245
+ {
246
+ bGood = 0;
247
+ break;
248
+ }
249
+ }
250
+ if(nLast < s.length) sanitized += s.substring(nLast);
251
+ preview.style.backgroundColor = bGood?"white":"red";
252
+ preview.innerHTML = sanitized;
253
+ }
254
+ window.onload=preview;
255
+ --></script>
256
+ </head>
257
+ <body>
258
+ <div id="username">
259
+ You are: <b>bwatters</b>
260
+ </div>
261
+ <h1>Showing 101-110 of 110 translations</h1>
262
+ <div style="background-color: #ffffcc;" id="toolbar">
263
+ <b>View: </b><img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
264
+ <input name="locale" type="hidden" value="en"><input name="q" type="hidden" value="TAFlights"><input name="offset" type="hidden" value="50"><input value="View" name="action" type="hidden"><input value="Previous" type="submit">
265
+ </form>
266
+ <img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
267
+ <input name="locale" type="hidden" value="en"><input name="q" type="hidden" value="TAFlights"><input name="offset" type="hidden" value=""><input value="View" name="action" type="hidden"><input value="Next" type="submit" disabled>
268
+ </form>
269
+ <img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
270
+ <input name="q" type="hidden" value="TAFlights"><input value="View" name="action" type="hidden"><select size="1" name="locale"><option value="ar">Arabic (ar)</option><option value="da">Danish (da)</option><option value="de">German (de)</option><option value="el">Greek (el)</option><option value="en_AU">English (en_AU)</option><option value="en_CA">English (en_CA)</option><option value="en_IE">English (en_IE)</option><option value="en_IN">English (en_IN)</option><option value="en_MY">English (en_MY)</option><option value="en_SG">English (en_SG)</option><option value="en_UK">English (en_UK)</option><option selected disabled value="en">English (en)</option><option value="es">Spanish (es)</option><option value="es_AR">Spanish (es_AR)</option><option value="es_CL">Spanish (es_CL)</option><option value="es_CO">Spanish (es_CO)</option><option value="es_MX">Spanish (es_MX)</option><option value="es_PE">Spanish (es_PE)</option><option value="es_VE">Spanish (es_VE)</option><option value="fr">French (fr)</option><option value="in">Indonesian (in)</option><option value="it">Italian (it)</option><option value="ja">Japanese (ja)</option><option value="ko">Korean (ko)</option><option value="nl">Dutch (nl)</option><option value="no">Norwegian (no)</option><option value="pl">Polish (pl)</option><option value="pt">Portuguese (pt)</option><option value="ru">Russian (ru)</option><option value="sv">Swedish (sv)</option><option value="th">Thai (th)</option><option value="tr">Turkish (tr)</option><option value="zh_CN">Chinese (zh_CN)</option><option value="zh_TW">Chinese (zh_TW)</option></select><input value="Switch locale" type="submit">
271
+ </form>
272
+ <img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
273
+ <input name="locale" type="hidden" value="en"><input name="q" type="hidden" value="TAFlights"><input value="View" name="action" type="hidden"><input value="Refresh" type="submit">
274
+ </form>
275
+ <br>
276
+ <b>Filter: </b>
277
+ <form action="/TranslationTool" method="GET">
278
+ <input name="locale" type="hidden" value="en"><img height="" width="" src="/img/s.gif">
279
+ Search: <input onClick="this.value='';" size="18" name="q" type="text" value="TAFlights"><img height="" width="" src="/img/s.gif">
280
+ By tag: <select size="1" name="tag"><option>(choose)</option></select><img height="" width="" src="/img/s.gif">
281
+ By status: <select name="filterStatus"><option value="0">
282
+ -All-</option><option value="1">
283
+ Active</option><option value="2">
284
+ Obsolete</option></select><img height="" width="" src="/img/s.gif"><input value="View" name="action" type="hidden"><input value="Filter" type="submit">
285
+ </form>
286
+ <br>
287
+ <b>Current filters:</b><img height="" width="" src="/img/s.gif">
288
+ search: TAFlights<img height="" width="" src="/img/s.gif"><a href="/TranslationTool?locale=en&action=View&sort=1">reset</a>
289
+ </div>
290
+ <br>
291
+ <form action="/TranslationTool" method="GET" id="formElements">
292
+ <input name="locale" type="hidden" value="en">
293
+ <div id="toolbar">
294
+ <input name="q" type="hidden" value="TAFlights"><img height="24" border="0" align="right" src="/img/flags/us.gif"><b>Actions: </b><img height="" width="" src="/img/s.gif"><input value="New" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="Copy" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="Edit" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="History" name="action" type="submit"><img height="" width="" src="/img/s.gif">
295
+ Tag: <input onClick="this.value=''" value="(tag name)" size="10" name="tagName" type="text"> <input value="Mark" disabled name="action" type="submit"><img height="" width="" src="/img/s.gif"><a href="javascript:selectall(true);">select all</a>
296
+ </div>
297
+ <table cellspacing="0" cellpadding="2" border="1" width="100%">
298
+ <tr bgcolor="black">
299
+ <th valign="top">&nbsp;</th><th valign="top"><a href="/TranslationTool?locale=en&action=View&q=TAFlights&sort=2">ID</a></th><th width="30px" valign="top">
300
+ #trans
301
+ </th><th valign="top"><a href="/TranslationTool?locale=en&action=View&q=TAFlights&sort=1">Name</a>
302
+ <div style="background-color: yellow;" id="smalltxt">(sort)</div>
303
+ </th><th valign="top">Value</th><th valign="top">Note</th><th valign="top">Context</th>
304
+ </tr>
305
+ <tr>
306
+ <td align="right" width="10px" valign="top"><nobr><input value="290752" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
307
+ <div id="smalltxt">290752</div>
308
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=290752&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
309
+ <div id="numtxt">27 of 34</div>
310
+ </a></td><td valign="top">TAFlights_TimeDurationinMinutes_ffffef05</td><td valign="top">
311
+ <p>%1$dm</p>
312
+ </td><td style="mid-width: 200px" valign="top">
313
+ <p>Time Duration in Minutes</p>
314
+ </td><td valign="top">
315
+ <p>
316
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_TimeDurationinMinutes_ffffef05">search</a>
317
+ </p>
318
+ </td>
319
+ </tr>
320
+ <tr>
321
+ <td align="right" width="10px" valign="top"><nobr><input value="290753" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
322
+ <div id="smalltxt">290753</div>
323
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=290753&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
324
+ <div id="numtxt">27 of 34</div>
325
+ </a></td><td valign="top">TAFlights_TimeDurationinWeeksandDays_ffffef05</td><td valign="top">
326
+ <p>%1$dwk %2$dd</p>
327
+ </td><td style="mid-width: 200px" valign="top">
328
+ <p>Time Duration in Weeks and Days</p>
329
+ </td><td valign="top">
330
+ <p>
331
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_TimeDurationinWeeksandDays_ffffef05">search</a>
332
+ </p>
333
+ </td>
334
+ </tr>
335
+ <tr>
336
+ <td align="right" width="10px" valign="top"><nobr><input value="290869" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
337
+ <div id="smalltxt">290869</div>
338
+ </td><td align="center" width="30px" valign="top" bgcolor="green"><a href="/TranslationTool?action=ShowAllTranslations&id=290869&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
339
+ <div id="numtxt">34 of 34</div>
340
+ </a></td><td valign="top">TAFlights_TimeFilterTableAccessibilityLabel_ffffef05</td><td valign="top">
341
+ <p>Time Filter Table</p>
342
+ </td><td style="mid-width: 200px" valign="top">
343
+ <p>Time Filter Table Accessibility Label</p>
344
+ </td><td valign="top">
345
+ <p>
346
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_TimeFilterTableAccessibilityLabel_ffffef05">search</a>
347
+ </p>
348
+ </td>
349
+ </tr>
350
+ <tr>
351
+ <td align="right" width="10px" valign="top"><nobr><input value="290868" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
352
+ <div id="smalltxt">290868</div>
353
+ </td><td align="center" width="30px" valign="top" bgcolor="green"><a href="/TranslationTool?action=ShowAllTranslations&id=290868&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
354
+ <div id="numtxt">34 of 34</div>
355
+ </a></td><td valign="top">TAFlights_TimeFilterTitle_ffffef05</td><td valign="top">
356
+ <p>Time</p>
357
+ </td><td style="mid-width: 200px" valign="top">
358
+ <p>Time Filter Title</p>
359
+ </td><td valign="top">
360
+ <p>
361
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_TimeFilterTitle_ffffef05">search</a>
362
+ </p>
363
+ </td>
364
+ </tr>
365
+ <tr>
366
+ <td align="right" width="10px" valign="top"><nobr><input value="290872" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
367
+ <div id="smalltxt">290872</div>
368
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=290872&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
369
+ <div id="numtxt">27 of 34</div>
370
+ </a></td><td valign="top">TAFlights_TravelDuration_ffffef05</td><td valign="top">
371
+ <p>Travel Time: %@</p>
372
+ </td><td style="mid-width: 200px" valign="top">
373
+ <p>Travel Duration</p>
374
+ </td><td valign="top">
375
+ <p>
376
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_TravelDuration_ffffef05">search</a>
377
+ </p>
378
+ </td>
379
+ </tr>
380
+ <tr>
381
+ <td align="right" width="10px" valign="top"><nobr><input value="290874" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
382
+ <div id="smalltxt">290874</div>
383
+ </td><td align="center" width="30px" valign="top" bgcolor="green"><a href="/TranslationTool?action=ShowAllTranslations&id=290874&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
384
+ <div id="numtxt">34 of 34</div>
385
+ </a></td><td valign="top">TAFlights_Wi-FiPersonaTitle_ffffef05</td><td valign="top">
386
+ <p>Wi-Fi</p>
387
+ </td><td style="mid-width: 200px" valign="top">
388
+ <p>Wi-Fi Persona Title</p>
389
+ </td><td valign="top">
390
+ <p>
391
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_Wi-FiPersonaTitle_ffffef05">search</a>
392
+ </p>
393
+ </td>
394
+ </tr>
395
+ <tr>
396
+ <td align="right" width="10px" valign="top"><nobr><input value="290742" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
397
+ <div id="smalltxt">290742</div>
398
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=290742&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
399
+ <div id="numtxt">27 of 34</div>
400
+ </a></td><td valign="top">TAFlights_{DepartureDate},{MarketingAirlineName},{DepartureAirportCode}to{ArrivalAirportCode},{DepartureTime}to{ArrivalTime}'AccessibilityLabel_ffffef05</td><td valign="top">
401
+ <p>%1$@, %2$@, %3$@ to %4$@, %5$@ to %6$@</p>
402
+ </td><td style="mid-width: 200px" valign="top">
403
+ <p>{Departure Date}, {Marketing Airline Name}, {Departure Airport Code} to {Arrival Airport Code}, {Departure Time} to {Arrival Time}' Accessibility Label</p>
404
+ </td><td valign="top">
405
+ <p>
406
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_{DepartureDate},{MarketingAirlineName},{DepartureAirportCode}to{ArrivalAirportCode},{DepartureTime}to{ArrivalTime}'AccessibilityLabel_ffffef05">search</a>
407
+ </p>
408
+ </td>
409
+ </tr>
410
+ <tr>
411
+ <td align="right" width="10px" valign="top"><nobr><input value="290737" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
412
+ <div id="smalltxt">290737</div>
413
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=290737&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
414
+ <div id="numtxt">27 of 34</div>
415
+ </a></td><td valign="top">TAFlights_{OperatingAirlineName}operatesflight#{FlightNumber}_ffffef05</td><td valign="top">
416
+ <p>%1$@ operates flight #%2$@</p>
417
+ </td><td style="mid-width: 200px" valign="top">
418
+ <p>{Operating Airline Name} operates flight #{Flight Number}</p>
419
+ </td><td valign="top">
420
+ <p>
421
+ <a href="/TranslationToolSearch?action=search&q=TAFlights_{OperatingAirlineName}operatesflight#{FlightNumber}_ffffef05">search</a>
422
+ </p>
423
+ </td>
424
+ </tr>
425
+ <tr>
426
+ <td align="right" width="10px" valign="top"><nobr><input value="43756" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
427
+ <div id="smalltxt">43756</div>
428
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=43756&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
429
+ <div id="numtxt">29 of 34</div>
430
+ </a></td><td valign="top">airm_taFlightSearch</td><td valign="top">
431
+ <p>TripAdvisor Flight Search</p>
432
+ </td><td style="mid-width: 200px" valign="top">
433
+ <p>page title</p>
434
+ </td><td valign="top">
435
+ <p>
436
+ <a href="/TranslationToolSearch?action=search&q=airm_taFlightSearch">search</a>
437
+ </p>
438
+ </td>
439
+ </tr>
440
+ <tr>
441
+ <td align="right" width="10px" valign="top"><nobr><input value="159620" name="id" type="checkbox"></nobr></td><td align="right" width="30px" valign="top">
442
+ <div id="smalltxt">159620</div>
443
+ </td><td align="center" width="30px" valign="top" bgcolor="orange"><a href="/TranslationTool?action=ShowAllTranslations&id=159620&locale=en&q=TAFlights&sort=1&from=__2F__TranslationTool__3F__q%3DTAFlights__26__locale%3Den__26__action%3DView__26__offset%3D100">
444
+ <div id="numtxt">29 of 34</div>
445
+ </a></td><td valign="top">flights_aboutTAFlights_ffffe1e5</td><td valign="top">
446
+ <p>About TripAdvisor Flights</p>
447
+ </td><td style="mid-width: 200px" valign="top">
448
+ <p>new</p>
449
+ </td><td valign="top">
450
+ <p>
451
+ <a href="/TranslationToolSearch?action=search&q=flights_aboutTAFlights_ffffe1e5">search</a>
452
+ </p>
453
+ </td>
454
+ </tr>
455
+ </table>
456
+ <div id="toolbar">
457
+ <input name="q" type="hidden" value="TAFlights"><img height="24" border="0" align="right" src="/img/flags/us.gif"><b>Actions: </b><img height="" width="" src="/img/s.gif"><input value="New" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="Copy" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="Edit" name="action" type="submit"><img height="" width="" src="/img/s.gif"><input value="History" name="action" type="submit"><img height="" width="" src="/img/s.gif">
458
+ Tag: <input onClick="this.value=''" value="(tag name)" size="10" name="tagName" type="text"> <input value="Mark" disabled name="action" type="submit"><img height="" width="" src="/img/s.gif"><a href="javascript:selectall(true);">select all</a>
459
+ </div>
460
+ </form>
461
+ <div style="background-color: #ffffcc;" id="toolbar">
462
+ <b>View: </b><img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
463
+ <input name="locale" type="hidden" value="en"><input name="q" type="hidden" value="TAFlights"><input name="offset" type="hidden" value="50"><input value="View" name="action" type="hidden"><input value="Previous" type="submit">
464
+ </form>
465
+ <img height="" width="" src="/img/s.gif"><form action="/TranslationTool" method="GET">
466
+ <input name="locale" type="hidden" value="en"><input name="q" type="hidden" value="TAFlights"><input name="offset" type="hidden" value=""><input value="View" name="action" type="hidden"><input value="Next" type="submit" disabled>
467
+ </form>
468
+ </div>
469
+ <br>
470
+ <br>
471
+ <br>
472
+ <a href="/TranslationTool">Translation home page</a>
473
+ <br>
474
+ <a href="/TranslationTool?action=ShowUsers">View current users</a>
475
+ </body>
476
+ </html>