Merge lp:~jonobacon/ubuntu-accomplishments-viewer/publishonline into lp:ubuntu-accomplishments-viewer
- publishonline
- Merge into accomplishments-viewer
Status: | Merged |
---|---|
Merged at revision: | 117 |
Proposed branch: | lp:~jonobacon/ubuntu-accomplishments-viewer/publishonline |
Merge into: | lp:ubuntu-accomplishments-viewer |
Diff against target: |
400 lines (+213/-27) 4 files modified
accomplishments_viewer/AccomplishmentsViewerWindow.py (+10/-0) accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py (+28/-1) data/ui/PreferencesAccomplishmentsViewerDialog.ui (+119/-0) po/accomplishments-viewer.pot (+56/-26) |
To merge this branch: | bzr merge lp:~jonobacon/ubuntu-accomplishments-viewer/publishonline |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Accomplishments Viewer Developers | Pending | ||
Review via email:
|
Commit message
Description of the change
This branch adds support to the desktop client for a user to publish their trophies to the web application that will be landing as part of the 0.3 release. Please note, you will also need to have lp:~jonobacon/ubuntu-accomplishments-daemon/publishonline to use this.
This is how it works:
* The user loads Edit -> Preferences and can click a Publish button to share their trophies online. If they are currently publishing they instead see a Stop Publishing button.
Publishing involves the following:
* We scan the list of shared directories for ones that are shared with the validation server.
* For the share that is active, we create a WEBVIEW file in the trophy dir (this is used by the web app to show publishing.
* We also generate a URL with the share name and share id for the user to set up their online trophy cabinet.
This feature should now be complete to land in trunk.
- 118. By Jono Bacon
-
* Launch browser fromt he client now. A better, cleaner way of doing things.
Preview Diff
1 | === modified file 'accomplishments_viewer/AccomplishmentsViewerWindow.py' | |||
2 | --- accomplishments_viewer/AccomplishmentsViewerWindow.py 2012-06-23 14:05:24 +0000 | |||
3 | +++ accomplishments_viewer/AccomplishmentsViewerWindow.py 2012-06-25 22:37:19 +0000 | |||
4 | @@ -263,6 +263,9 @@ | |||
5 | 263 | object.connect_to_signal("trophy_recieved", | 263 | object.connect_to_signal("trophy_recieved", |
6 | 264 | self.trophy_received, | 264 | self.trophy_received, |
7 | 265 | dbus_interface="org.ubuntu.accomplishments", arg0="Hello") | 265 | dbus_interface="org.ubuntu.accomplishments", arg0="Hello") |
8 | 266 | object.connect_to_signal("publish_trophies_online_completed", | ||
9 | 267 | self.publish_trophies_online_completed, | ||
10 | 268 | dbus_interface="org.ubuntu.accomplishments", arg0="Hello") | ||
11 | 266 | object.connect_to_signal("scriptrunner_start", | 269 | object.connect_to_signal("scriptrunner_start", |
12 | 267 | self.scriptrunner_start, | 270 | self.scriptrunner_start, |
13 | 268 | dbus_interface="org.ubuntu.accomplishments") | 271 | dbus_interface="org.ubuntu.accomplishments") |
14 | @@ -272,6 +275,7 @@ | |||
15 | 272 | object.connect_to_signal("ubuntu_one_account_ready", | 275 | object.connect_to_signal("ubuntu_one_account_ready", |
16 | 273 | self.ubuntu_one_account_ready, | 276 | self.ubuntu_one_account_ready, |
17 | 274 | dbus_interface="org.ubuntu.accomplishments", arg0="Hello") | 277 | dbus_interface="org.ubuntu.accomplishments", arg0="Hello") |
18 | 278 | |||
19 | 275 | except dbus.DBusException: | 279 | except dbus.DBusException: |
20 | 276 | traceback.print_exc() | 280 | traceback.print_exc() |
21 | 277 | print usage | 281 | print usage |
22 | @@ -280,6 +284,9 @@ | |||
23 | 280 | bus.add_signal_receiver(self.trophy_received, | 284 | bus.add_signal_receiver(self.trophy_received, |
24 | 281 | dbus_interface = "org.ubuntu.accomplishments", | 285 | dbus_interface = "org.ubuntu.accomplishments", |
25 | 282 | signal_name = "trophy_received") | 286 | signal_name = "trophy_received") |
26 | 287 | bus.add_signal_receiver(self.publish_trophies_online_completed, | ||
27 | 288 | dbus_interface = "org.ubuntu.accomplishments", | ||
28 | 289 | signal_name = "publish_trophies_online_completed") | ||
29 | 283 | bus.add_signal_receiver(self.scriptrunner_start, | 290 | bus.add_signal_receiver(self.scriptrunner_start, |
30 | 284 | dbus_interface = "org.ubuntu.accomplishments", | 291 | dbus_interface = "org.ubuntu.accomplishments", |
31 | 285 | signal_name = "scriptrunner_start") | 292 | signal_name = "scriptrunner_start") |
32 | @@ -296,6 +303,9 @@ | |||
33 | 296 | 303 | ||
34 | 297 | return True | 304 | return True |
35 | 298 | 305 | ||
36 | 306 | def publish_trophies_online_completed(self, url): | ||
37 | 307 | webbrowser.open(url) | ||
38 | 308 | |||
39 | 299 | def ubuntu_one_account_ready(self): | 309 | def ubuntu_one_account_ready(self): |
40 | 300 | if not self.has_u1 == 1: | 310 | if not self.has_u1 == 1: |
41 | 301 | self.register_with_verif(None) | 311 | self.register_with_verif(None) |
42 | 302 | 312 | ||
43 | === modified file 'accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py' | |||
44 | --- accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py 2012-05-24 13:22:01 +0000 | |||
45 | +++ accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py 2012-06-25 22:37:19 +0000 | |||
46 | @@ -34,6 +34,12 @@ | |||
47 | 34 | super(PreferencesAccomplishmentsViewerDialog, self).finish_initializing(builder) | 34 | super(PreferencesAccomplishmentsViewerDialog, self).finish_initializing(builder) |
48 | 35 | self.cb_daemonsessionstart = self.builder.get_object("cb_daemonsessionstart") | 35 | self.cb_daemonsessionstart = self.builder.get_object("cb_daemonsessionstart") |
49 | 36 | self.cb_hideu1bubbles = self.builder.get_object("cb_hideu1bubbles") | 36 | self.cb_hideu1bubbles = self.builder.get_object("cb_hideu1bubbles") |
50 | 37 | self.pref_publish = self.builder.get_object("pref_publish") | ||
51 | 38 | self.pref_publish_label = self.builder.get_object("pref_publish_label") | ||
52 | 39 | self.pref_publish_icon = self.builder.get_object("pref_publish_icon") | ||
53 | 40 | self.publishedstatus = None | ||
54 | 41 | |||
55 | 42 | #trophydir = self.libaccom.get_config_value("config", "trophypath") | ||
56 | 37 | 43 | ||
57 | 38 | # Bind each preference widget to gsettings | 44 | # Bind each preference widget to gsettings |
58 | 39 | #settings = Gio.Settings("net.launchpad.accomplishments-viewer") | 45 | #settings = Gio.Settings("net.launchpad.accomplishments-viewer") |
59 | @@ -45,7 +51,14 @@ | |||
60 | 45 | def prepare(self,daemon_handle): | 51 | def prepare(self,daemon_handle): |
61 | 46 | self.libaccom = daemon_handle | 52 | self.libaccom = daemon_handle |
62 | 47 | self.populate_settings() | 53 | self.populate_settings() |
64 | 48 | 54 | ||
65 | 55 | self.publishedstatus = self.libaccom.get_published_status() | ||
66 | 56 | |||
67 | 57 | if self.publishedstatus == 0: | ||
68 | 58 | self.pref_publish.set_label(_("Publish...")) | ||
69 | 59 | else: | ||
70 | 60 | self.pref_publish.set_label(_("Stop Publishing")) | ||
71 | 61 | |||
72 | 49 | def populate_settings(self): | 62 | def populate_settings(self): |
73 | 50 | self.cb_daemonsessionstart.handler_block_by_func(self.cb_daemonsessionstart_toggled) | 63 | self.cb_daemonsessionstart.handler_block_by_func(self.cb_daemonsessionstart_toggled) |
74 | 51 | self.cb_hideu1bubbles.handler_block_by_func(self.cb_hideu1bubbles_toggled) | 64 | self.cb_hideu1bubbles.handler_block_by_func(self.cb_hideu1bubbles_toggled) |
75 | @@ -64,3 +77,17 @@ | |||
76 | 64 | 77 | ||
77 | 65 | def cb_hideu1bubbles_toggled(self, widget): | 78 | def cb_hideu1bubbles_toggled(self, widget): |
78 | 66 | self.libaccom.set_block_ubuntuone_notification_bubbles( widget.get_active() ) | 79 | self.libaccom.set_block_ubuntuone_notification_bubbles( widget.get_active() ) |
79 | 80 | |||
80 | 81 | def on_pref_publish_clicked(self, widget): | ||
81 | 82 | if self.publishedstatus == 0: | ||
82 | 83 | self.libaccom.publish_trophies_online() | ||
83 | 84 | self.pref_publish_label.set_text(_("Please see your web browser to continue...")) | ||
84 | 85 | self.pref_publish.set_label(_("Stop Publishing")) | ||
85 | 86 | self.pref_publish_icon.set_visible(True) | ||
86 | 87 | self.publishedstatus = 1 | ||
87 | 88 | else: | ||
88 | 89 | self.libaccom.unpublish_trophies_online() | ||
89 | 90 | self.pref_publish_label.set_text(_("Trophies are no longer published.")) | ||
90 | 91 | self.pref_publish.set_label(_("Publish...")) | ||
91 | 92 | self.pref_publish_icon.set_visible(True) | ||
92 | 93 | self.publishedstatus = 0 | ||
93 | 67 | 94 | ||
94 | === modified file 'data/ui/PreferencesAccomplishmentsViewerDialog.ui' | |||
95 | --- data/ui/PreferencesAccomplishmentsViewerDialog.ui 2012-05-24 11:04:14 +0000 | |||
96 | +++ data/ui/PreferencesAccomplishmentsViewerDialog.ui 2012-06-25 22:37:19 +0000 | |||
97 | @@ -156,6 +156,125 @@ | |||
98 | 156 | <property name="position">1</property> | 156 | <property name="position">1</property> |
99 | 157 | </packing> | 157 | </packing> |
100 | 158 | </child> | 158 | </child> |
101 | 159 | <child> | ||
102 | 160 | <object class="GtkFrame" id="frame3"> | ||
103 | 161 | <property name="visible">True</property> | ||
104 | 162 | <property name="can_focus">False</property> | ||
105 | 163 | <property name="margin_left">5</property> | ||
106 | 164 | <property name="margin_right">5</property> | ||
107 | 165 | <property name="label_xalign">0</property> | ||
108 | 166 | <property name="shadow_type">none</property> | ||
109 | 167 | <child> | ||
110 | 168 | <object class="GtkAlignment" id="alignment3"> | ||
111 | 169 | <property name="visible">True</property> | ||
112 | 170 | <property name="can_focus">False</property> | ||
113 | 171 | <property name="left_padding">12</property> | ||
114 | 172 | <child> | ||
115 | 173 | <object class="GtkBox" id="box2"> | ||
116 | 174 | <property name="visible">True</property> | ||
117 | 175 | <property name="can_focus">False</property> | ||
118 | 176 | <property name="orientation">vertical</property> | ||
119 | 177 | <child> | ||
120 | 178 | <object class="GtkLabel" id="label4"> | ||
121 | 179 | <property name="visible">True</property> | ||
122 | 180 | <property name="can_focus">False</property> | ||
123 | 181 | <property name="margin_top">10</property> | ||
124 | 182 | <property name="margin_bottom">10</property> | ||
125 | 183 | <property name="label" translatable="yes">To publish your trophies online for others to see, click the <i>Publish</i> button. | ||
126 | 184 | You can <i>Unpublish</i> later if you want to.</property> | ||
127 | 185 | <property name="use_markup">True</property> | ||
128 | 186 | </object> | ||
129 | 187 | <packing> | ||
130 | 188 | <property name="expand">False</property> | ||
131 | 189 | <property name="fill">True</property> | ||
132 | 190 | <property name="position">0</property> | ||
133 | 191 | </packing> | ||
134 | 192 | </child> | ||
135 | 193 | <child> | ||
136 | 194 | <object class="GtkBox" id="box3"> | ||
137 | 195 | <property name="visible">True</property> | ||
138 | 196 | <property name="can_focus">False</property> | ||
139 | 197 | <child> | ||
140 | 198 | <object class="GtkImage" id="pref_publish_icon"> | ||
141 | 199 | <property name="can_focus">False</property> | ||
142 | 200 | <property name="margin_right">5</property> | ||
143 | 201 | <property name="stock">gtk-ok</property> | ||
144 | 202 | </object> | ||
145 | 203 | <packing> | ||
146 | 204 | <property name="expand">False</property> | ||
147 | 205 | <property name="fill">True</property> | ||
148 | 206 | <property name="position">0</property> | ||
149 | 207 | </packing> | ||
150 | 208 | </child> | ||
151 | 209 | <child> | ||
152 | 210 | <object class="GtkLabel" id="pref_publish_label"> | ||
153 | 211 | <property name="visible">True</property> | ||
154 | 212 | <property name="can_focus">False</property> | ||
155 | 213 | <property name="xalign">0</property> | ||
156 | 214 | <attributes> | ||
157 | 215 | <attribute name="style" value="italic"/> | ||
158 | 216 | </attributes> | ||
159 | 217 | </object> | ||
160 | 218 | <packing> | ||
161 | 219 | <property name="expand">True</property> | ||
162 | 220 | <property name="fill">True</property> | ||
163 | 221 | <property name="position">1</property> | ||
164 | 222 | </packing> | ||
165 | 223 | </child> | ||
166 | 224 | <child> | ||
167 | 225 | <object class="GtkButtonBox" id="buttonbox1"> | ||
168 | 226 | <property name="visible">True</property> | ||
169 | 227 | <property name="can_focus">False</property> | ||
170 | 228 | <property name="layout_style">end</property> | ||
171 | 229 | <child> | ||
172 | 230 | <object class="GtkButton" id="pref_publish"> | ||
173 | 231 | <property name="label" translatable="yes">Publish...</property> | ||
174 | 232 | <property name="use_action_appearance">False</property> | ||
175 | 233 | <property name="visible">True</property> | ||
176 | 234 | <property name="can_focus">True</property> | ||
177 | 235 | <property name="receives_default">True</property> | ||
178 | 236 | <property name="use_action_appearance">False</property> | ||
179 | 237 | </object> | ||
180 | 238 | <packing> | ||
181 | 239 | <property name="expand">False</property> | ||
182 | 240 | <property name="fill">False</property> | ||
183 | 241 | <property name="position">0</property> | ||
184 | 242 | </packing> | ||
185 | 243 | </child> | ||
186 | 244 | </object> | ||
187 | 245 | <packing> | ||
188 | 246 | <property name="expand">False</property> | ||
189 | 247 | <property name="fill">False</property> | ||
190 | 248 | <property name="position">2</property> | ||
191 | 249 | </packing> | ||
192 | 250 | </child> | ||
193 | 251 | </object> | ||
194 | 252 | <packing> | ||
195 | 253 | <property name="expand">False</property> | ||
196 | 254 | <property name="fill">True</property> | ||
197 | 255 | <property name="position">1</property> | ||
198 | 256 | </packing> | ||
199 | 257 | </child> | ||
200 | 258 | </object> | ||
201 | 259 | </child> | ||
202 | 260 | </object> | ||
203 | 261 | </child> | ||
204 | 262 | <child type="label"> | ||
205 | 263 | <object class="GtkLabel" id="label3"> | ||
206 | 264 | <property name="visible">True</property> | ||
207 | 265 | <property name="can_focus">False</property> | ||
208 | 266 | <property name="label" translatable="yes"><b>Publish Trophies Online</b></property> | ||
209 | 267 | <property name="use_markup">True</property> | ||
210 | 268 | </object> | ||
211 | 269 | </child> | ||
212 | 270 | </object> | ||
213 | 271 | <packing> | ||
214 | 272 | <property name="expand">False</property> | ||
215 | 273 | <property name="fill">True</property> | ||
216 | 274 | <property name="padding">5</property> | ||
217 | 275 | <property name="position">2</property> | ||
218 | 276 | </packing> | ||
219 | 277 | </child> | ||
220 | 159 | </object> | 278 | </object> |
221 | 160 | <packing> | 279 | <packing> |
222 | 161 | <property name="expand">False</property> | 280 | <property name="expand">False</property> |
223 | 162 | 281 | ||
224 | === modified file 'po/accomplishments-viewer.pot' | |||
225 | --- po/accomplishments-viewer.pot 2012-06-08 17:40:09 +0000 | |||
226 | +++ po/accomplishments-viewer.pot 2012-06-25 22:37:19 +0000 | |||
227 | @@ -8,7 +8,7 @@ | |||
228 | 8 | msgstr "" | 8 | msgstr "" |
229 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
230 | 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
232 | 11 | "POT-Creation-Date: 2012-06-08 10:40-0700\n" | 11 | "POT-Creation-Date: 2012-06-25 00:47-0700\n" |
233 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
234 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
235 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
236 | @@ -17,6 +17,25 @@ | |||
237 | 17 | "Content-Type: text/plain; charset=CHARSET\n" | 17 | "Content-Type: text/plain; charset=CHARSET\n" |
238 | 18 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
239 | 19 | 19 | ||
240 | 20 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:58 | ||
241 | 21 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:91 | ||
242 | 22 | #: ../data/ui/PreferencesAccomplishmentsViewerDialog.ui.h:8 | ||
243 | 23 | msgid "Publish..." | ||
244 | 24 | msgstr "" | ||
245 | 25 | |||
246 | 26 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:60 | ||
247 | 27 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:85 | ||
248 | 28 | msgid "Stop Publishing" | ||
249 | 29 | msgstr "" | ||
250 | 30 | |||
251 | 31 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:84 | ||
252 | 32 | msgid "Please see your web browser to continue..." | ||
253 | 33 | msgstr "" | ||
254 | 34 | |||
255 | 35 | #: ../accomplishments_viewer/PreferencesAccomplishmentsViewerDialog.py:90 | ||
256 | 36 | msgid "Trophies are no longer published." | ||
257 | 37 | msgstr "" | ||
258 | 38 | |||
259 | 20 | #: ../accomplishments_viewer/AboutAccomplishmentsViewerDialog.py:37 | 39 | #: ../accomplishments_viewer/AboutAccomplishmentsViewerDialog.py:37 |
260 | 21 | msgid "Collection Authors:" | 40 | msgid "Collection Authors:" |
261 | 22 | msgstr "" | 41 | msgstr "" |
262 | @@ -52,7 +71,7 @@ | |||
263 | 52 | #: ../accomplishments_viewer/__init__.py:29 | 71 | #: ../accomplishments_viewer/__init__.py:29 |
264 | 53 | msgid "" | 72 | msgid "" |
265 | 54 | "Display information about the provided accomplishment ID (e.g. 'ubuntu-" | 73 | "Display information about the provided accomplishment ID (e.g. 'ubuntu-" |
267 | 55 | "community/registered-on-launchpad'" | 74 | "community/registered-on-launchpad')" |
268 | 56 | msgstr "" | 75 | msgstr "" |
269 | 57 | 76 | ||
270 | 58 | #: ../data/ui/PreferencesAccomplishmentsViewerDialog.ui.h:1 | 77 | #: ../data/ui/PreferencesAccomplishmentsViewerDialog.ui.h:1 |
271 | @@ -75,95 +94,106 @@ | |||
272 | 75 | msgid "<b>Notification Bubbles</b>" | 94 | msgid "<b>Notification Bubbles</b>" |
273 | 76 | msgstr "" | 95 | msgstr "" |
274 | 77 | 96 | ||
275 | 97 | #: ../data/ui/PreferencesAccomplishmentsViewerDialog.ui.h:6 | ||
276 | 98 | msgid "" | ||
277 | 99 | "To publish your trophies online for others to see, click the <i>Publish</i> " | ||
278 | 100 | "button.\n" | ||
279 | 101 | "You can <i>Unpublish</i> later if you want to." | ||
280 | 102 | msgstr "" | ||
281 | 103 | |||
282 | 104 | #: ../data/ui/PreferencesAccomplishmentsViewerDialog.ui.h:9 | ||
283 | 105 | msgid "<b>Publish Trophies Online</b>" | ||
284 | 106 | msgstr "" | ||
285 | 107 | |||
286 | 78 | #. Add 'All' button | 108 | #. Add 'All' button |
288 | 79 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:410 | 109 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:409 |
289 | 80 | msgid "All" | 110 | msgid "All" |
290 | 81 | msgstr "" | 111 | msgstr "" |
291 | 82 | 112 | ||
294 | 83 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:691 | 113 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:690 |
295 | 84 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:704 | 114 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:703 |
296 | 85 | msgid "everything" | 115 | msgid "everything" |
297 | 86 | msgstr "" | 116 | msgstr "" |
298 | 87 | 117 | ||
299 | 88 | #. # summary table | 118 | #. # summary table |
301 | 89 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:906 | 119 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:917 |
302 | 90 | msgid "Opportunity Information" | 120 | msgid "Opportunity Information" |
303 | 91 | msgstr "" | 121 | msgstr "" |
304 | 92 | 122 | ||
306 | 93 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:914 | 123 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:925 |
307 | 94 | msgid "No information available." | 124 | msgid "No information available." |
308 | 95 | msgstr "" | 125 | msgstr "" |
309 | 96 | 126 | ||
311 | 97 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:924 | 127 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:935 |
312 | 98 | msgid "Getting Help" | 128 | msgid "Getting Help" |
313 | 99 | msgstr "" | 129 | msgstr "" |
314 | 100 | 130 | ||
316 | 101 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:933 | 131 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:944 |
317 | 102 | msgid "No help available." | 132 | msgid "No help available." |
318 | 103 | msgstr "" | 133 | msgstr "" |
319 | 104 | 134 | ||
321 | 105 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:948 | 135 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:959 |
322 | 106 | msgid "This opportunity is locked. You need to complete" | 136 | msgid "This opportunity is locked. You need to complete" |
323 | 107 | msgstr "" | 137 | msgstr "" |
324 | 108 | 138 | ||
327 | 109 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:948 | 139 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:959 |
328 | 110 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:953 | 140 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:964 |
329 | 111 | msgid "from" | 141 | msgid "from" |
330 | 112 | msgstr "" | 142 | msgstr "" |
331 | 113 | 143 | ||
333 | 114 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:948 | 144 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:959 |
334 | 115 | msgid "first" | 145 | msgid "first" |
335 | 116 | msgstr "" | 146 | msgstr "" |
336 | 117 | 147 | ||
338 | 118 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:950 | 148 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:961 |
339 | 119 | msgid "" | 149 | msgid "" |
340 | 120 | "This opportunity is locked. You need to complete the following opportunities " | 150 | "This opportunity is locked. You need to complete the following opportunities " |
341 | 121 | "first:" | 151 | "first:" |
342 | 122 | msgstr "" | 152 | msgstr "" |
343 | 123 | 153 | ||
344 | 124 | #. achieved | 154 | #. achieved |
346 | 125 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:957 | 155 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:968 |
347 | 126 | msgid "This trophy <strong>was awarded</strong>" | 156 | msgid "This trophy <strong>was awarded</strong>" |
348 | 127 | msgstr "" | 157 | msgstr "" |
349 | 128 | 158 | ||
351 | 129 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:961 | 159 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:972 |
352 | 130 | msgid "on" | 160 | msgid "on" |
353 | 131 | msgstr "" | 161 | msgstr "" |
354 | 132 | 162 | ||
356 | 133 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:965 | 163 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:976 |
357 | 134 | msgid "using the following credentials" | 164 | msgid "using the following credentials" |
358 | 135 | msgstr "" | 165 | msgstr "" |
359 | 136 | 166 | ||
361 | 137 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:975 | 167 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:986 |
362 | 138 | msgid "This trophy has been verified" | 168 | msgid "This trophy has been verified" |
363 | 139 | msgstr "" | 169 | msgstr "" |
364 | 140 | 170 | ||
366 | 141 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:982 | 171 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:993 |
367 | 142 | msgid "This opportunity requires verification" | 172 | msgid "This opportunity requires verification" |
368 | 143 | msgstr "" | 173 | msgstr "" |
369 | 144 | 174 | ||
371 | 145 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:992 | 175 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1003 |
372 | 146 | msgid "Accomplishment Details" | 176 | msgid "Accomplishment Details" |
373 | 147 | msgstr "" | 177 | msgstr "" |
374 | 148 | 178 | ||
376 | 149 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1014 | 179 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1025 |
377 | 150 | msgid "How to accomplish this opportunity" | 180 | msgid "How to accomplish this opportunity" |
378 | 151 | msgstr "" | 181 | msgstr "" |
379 | 152 | 182 | ||
381 | 153 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1049 | 183 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1060 |
382 | 154 | msgid "Tips and Tricks" | 184 | msgid "Tips and Tricks" |
383 | 155 | msgstr "" | 185 | msgstr "" |
384 | 156 | 186 | ||
387 | 157 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1059 | 187 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1070 |
388 | 158 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1079 | 188 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1090 |
389 | 159 | msgid "None." | 189 | msgid "None." |
390 | 160 | msgstr "" | 190 | msgstr "" |
391 | 161 | 191 | ||
393 | 162 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1069 | 192 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1080 |
394 | 163 | msgid "Pitfalls To Avoid" | 193 | msgid "Pitfalls To Avoid" |
395 | 164 | msgstr "" | 194 | msgstr "" |
396 | 165 | 195 | ||
398 | 166 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1092 | 196 | #: ../accomplishments_viewer/AccomplishmentsViewerWindow.py:1103 |
399 | 167 | msgid "Further Reading" | 197 | msgid "Further Reading" |
400 | 168 | msgstr "" | 198 | msgstr "" |
401 | 169 | 199 |