GTG

Merge lp:~dpm/gtg/bug-526420 into lp:~gtg/gtg/old-trunk

Proposed by David Planella
Status: Merged
Merge reported by: Luca Invernizzi
Merged at revision: not available
Proposed branch: lp:~dpm/gtg/bug-526420
Merge into: lp:~gtg/gtg/old-trunk
Diff against target: 1258 lines (+544/-516) (has conflicts)
5 files modified
GTG/__init__.py (+4/-0)
GTG/taskbrowser/browser.py (+2/-3)
GTG/taskeditor/editor.py (+9/-10)
GTG/tools/dates.py (+15/-0)
po/gtg.pot (+514/-503)
Text conflict in GTG/__init__.py
Text conflict in GTG/tools/dates.py
To merge this branch: bzr merge lp:~dpm/gtg/bug-526420
Reviewer Review Type Date Requested Status
Luca Invernizzi (community) Approve
David Planella (community) Needs Resubmitting
Review via email: mp+21223@code.launchpad.net

Description of the change

Fix for bug 526420, might need some testing.

I haven't checked if there are other locations where plural forms should be used, but this should give you an idea of what's required.

To post a comment you must log in.
Revision history for this message
Luca Invernizzi (invernizzi) wrote :

Interesting stuff.

Devs, please do not merge this, but incorporate it in our "_" function (or do something similar).

Revision history for this message
Luca Invernizzi (invernizzi) wrote :

Marking as rejected, as we will not merge exactly this, but thanks for the hint!

review: Disapprove
lp:~dpm/gtg/bug-526420 updated
683. By David Planella

Fixed some plural forms

684. By David Planella

Merged from trunk, updated POT template

Revision history for this message
David Planella (dpm) wrote :

Hi Luca, thanks for looking into this.

I had not seen the e-mail before working further into the branch, so I started fixing the plural forms in all other places.

Just so you know when you merge it in whichever way you prefer.

Revision history for this message
Luca Invernizzi (invernizzi) wrote :

Oh, that's fine, thanks for that!

lp:~dpm/gtg/bug-526420 updated
685. By David Planella

Included ngettext call in the GTG init module

Revision history for this message
David Planella (dpm) wrote :

Ok, as I saw the change might be simple, I'm just resubmitting it including the ngettext call in the GTG __init__.py module, in the same way the _() function is used.

I've not abbreviated the call to e.g. P_() or something similar, since I seem to remember that xgettext seems to be picky about this, and only recognize "gettext.ngettext" or "ngettext" when extracting strings.

Anyway, this might be easier for you to merge, but feel free to reject if you want me to change it or you want to implement it in another way.

Thanks!

review: Needs Resubmitting
Revision history for this message
Luca Invernizzi (invernizzi) wrote :

Oh, thank you, I will merge this.

Revision history for this message
Luca Invernizzi (invernizzi) wrote :

I'm absolutely not an expert on this, but wouldn't xgettext be fooled also by our _() shortcut?

Revision history for this message
Luca Invernizzi (invernizzi) wrote :

approved

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'GTG/__init__.py'
2--- GTG/__init__.py 2010-03-12 10:42:06 +0000
3+++ GTG/__init__.py 2010-03-12 10:44:26 +0000
4@@ -76,9 +76,13 @@
5 fallback=True)
6
7 _ = translation.gettext
8+<<<<<<< TREE
9 #double underscore when a phrase can be singular or plural. Usage:
10 # __("I have %d dog", "I have %d dogs", dog_number)
11 __ = translation.ngettext
12+=======
13+ngettext = translation.ngettext
14+>>>>>>> MERGE-SOURCE
15
16 #GTG directories setup
17 if os.path.isdir(os.path.join(LOCAL_ROOTDIR, 'data')):
18
19=== modified file 'GTG/taskbrowser/browser.py'
20--- GTG/taskbrowser/browser.py 2010-03-12 08:04:07 +0000
21+++ GTG/taskbrowser/browser.py 2010-03-12 10:44:26 +0000
22@@ -37,6 +37,7 @@
23 import GTG
24 from GTG import info
25 from GTG import _
26+from GTG import ngettext
27 from GTG.tools.logger import Log
28 from GTG.core.task import Task
29 from GTG.core.tagstore import Tag
30@@ -568,10 +569,8 @@
31 parenthesis = ""
32 if count == 0:
33 parenthesis = _("no active tasks")
34- elif count == 1:
35- parenthesis = _("1 active task")
36 else:
37- parenthesis = _("%s active tasks") % count
38+ parenthesis = ngettext("%(tasks)d active task", "%(tasks)d active tasks") % {'tasks': count}
39 self.window.set_title("%s - "%parenthesis + WINDOW_TITLE)
40
41 def get_canonical_date(self, arg):
42
43=== modified file 'GTG/taskeditor/editor.py'
44--- GTG/taskeditor/editor.py 2010-03-04 10:27:03 +0000
45+++ GTG/taskeditor/editor.py 2010-03-12 10:44:26 +0000
46@@ -26,6 +26,7 @@
47 import time
48
49 from GTG import _
50+from GTG import ngettext
51 from GTG import PLUGIN_DIR
52 from GTG import DATA_DIR
53 from GTG.taskeditor import GnomeConfig
54@@ -316,14 +317,11 @@
55 txt = ""
56 elif delay == 0:
57 txt = "Completed on time"
58- elif delay == 1:
59- txt = "Completed 1 day late"
60- elif delay > 1:
61- txt = _("Completed %s days late") %delay
62- elif delay == -1:
63- txt = "Completed 1 day early"
64- elif delay < -1:
65- txt = _("Completed %s days early") % -delay
66+ elif delay >= 1:
67+ txt = ngettext("Completed %(days)d day late", "Completed %(days)d days late", delay) % {'days': delay}
68+ elif delay <= -1:
69+ abs_delay = abs(delay)
70+ txt = ngettext("Completed %(days)d day early", "Completed %(days)d days early", abs_delay) % {'days': abs_delay}
71 else:
72 result = self.task.get_days_left()
73 if result is None:
74@@ -331,13 +329,14 @@
75 elif result == 1:
76 txt = _("Due tomorrow !")
77 elif result > 0:
78- txt = _("%s days left") %result
79+ txt = ngettext("%(days)d day left", "%(days)d days left", result) % {'days': result}
80 elif result == 0:
81 txt = _("Due today !")
82 elif result == -1:
83 txt = _("Due yesterday")
84 elif result < 0:
85- txt = _("Was %s days ago") % -result
86+ abs_result = abs(result)
87+ txt = ngettext("Was %(days)d day ago", "Was %(days)d days ago", abs_result) % {'days': abs_result}
88 window_style = self.window.get_style()
89 color = str(window_style.text[gtk.STATE_INSENSITIVE])
90 self.dayleft_label.set_markup("<span color='"+color+"'>"+txt+"</span>")
91
92=== modified file 'GTG/tools/dates.py'
93--- GTG/tools/dates.py 2010-03-12 10:42:06 +0000
94+++ GTG/tools/dates.py 2010-03-12 10:44:26 +0000
95@@ -20,7 +20,12 @@
96 from datetime import date, timedelta
97 import locale
98 from calendar import isleap
99+<<<<<<< TREE
100 from GTG import _, __
101+=======
102+from GTG import _
103+from GTG import ngettext
104+>>>>>>> MERGE-SOURCE
105
106 #setting the locale of gtg to the system locale
107 #locale.setlocale(locale.LC_TIME, '')
108@@ -48,6 +53,7 @@
109 dleft = (self.to_py_date() - date.today()).days
110 if dleft == 0:
111 return _("Today")
112+<<<<<<< TREE
113 elif dleft < 0:
114 abs_days = abs(dleft)
115 return __("Yesterday", "%(days)d days ago", abs_days) % \
116@@ -55,6 +61,15 @@
117 elif dleft > 0 and dleft <= 15:
118 return __("Tomorrow", "In %(days)d days", dleft) % \
119 {"days": dleft}
120+=======
121+ elif dleft == -1:
122+ return _("Yesterday")
123+ elif dleft < -1:
124+ abs_dleft = abs(dleft)
125+ return ngettext("%(days)d day ago", "%(days)d days ago", abs_dleft) % {'days': abs_dleft}
126+ elif dleft > 1 and dleft <= 15:
127+ return ngettext("In %(days)d day", "In %(days)d days", dleft) % {'days': dleft}
128+>>>>>>> MERGE-SOURCE
129 else:
130 locale_format = self.__get_locale_string()
131 if isleap(date.today().year):
132
133=== modified file 'po/gtg.pot'
134--- po/gtg.pot 2010-03-12 09:48:38 +0000
135+++ po/gtg.pot 2010-03-12 10:44:26 +0000
136@@ -8,78 +8,62 @@
137 msgstr ""
138 "Project-Id-Version: PACKAGE VERSION\n"
139 "Report-Msgid-Bugs-To: \n"
140-"POT-Creation-Date: 2010-03-11 23:47-1000\n"
141+"POT-Creation-Date: 2010-03-12 11:40+0100\n"
142 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
143 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
144 "Language-Team: LANGUAGE <LL@li.org>\n"
145 "MIME-Version: 1.0\n"
146 "Content-Type: text/plain; charset=CHARSET\n"
147 "Content-Transfer-Encoding: 8bit\n"
148-
149-#: GTG/tools/dates.py:50
150-msgid "Tomorrow"
151-msgstr ""
152-
153-#: GTG/tools/dates.py:52
154-msgid "Today"
155-msgstr ""
156-
157-#: GTG/tools/dates.py:54
158-msgid "Yesterday"
159-msgstr ""
160-
161-#: GTG/tools/dates.py:56
162-#, python-format
163-msgid "%s days ago"
164-msgstr ""
165-
166-#: GTG/tools/dates.py:58
167-#, python-format
168-msgid "In %s days"
169-msgstr ""
170-
171-#: GTG/tools/dates.py:96 GTG/tools/dates.py:138
172-msgid "now"
173-msgstr ""
174-
175-#: GTG/tools/dates.py:97 GTG/tools/dates.py:140
176-msgid "soon"
177-msgstr ""
178-
179-#: GTG/tools/dates.py:98 GTG/tools/dates.py:142
180-msgid "later"
181-msgstr ""
182-
183-#: GTG/taskeditor/editor.py:322
184-#, python-format
185-msgid "Completed %s days late"
186-msgstr ""
187-
188-#: GTG/taskeditor/editor.py:326
189-#, python-format
190-msgid "Completed %s days early"
191-msgstr ""
192-
193-#: GTG/taskeditor/editor.py:332
194-msgid "Due tomorrow !"
195-msgstr ""
196-
197-#: GTG/taskeditor/editor.py:334
198-#, python-format
199-msgid "%s days left"
200-msgstr ""
201-
202-#: GTG/taskeditor/editor.py:336
203-msgid "Due today !"
204-msgstr ""
205-
206-#: GTG/taskeditor/editor.py:338
207-msgid "Due yesterday"
208-msgstr ""
209-
210-#: GTG/taskeditor/editor.py:340
211-#, python-format
212-msgid "Was %s days ago"
213+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
214+
215+#: GTG/taskeditor/__init__.py:31 GTG/taskbrowser/__init__.py:36
216+msgid "Mark as done"
217+msgstr ""
218+
219+#: GTG/taskeditor/__init__.py:32 GTG/taskbrowser/__init__.py:38
220+msgid "Mark as not done"
221+msgstr ""
222+
223+#: GTG/taskeditor/__init__.py:33 GTG/taskeditor/taskeditor.glade.h:3
224+#: GTG/taskbrowser/__init__.py:40 GTG/taskbrowser/taskbrowser.glade.h:14
225+msgid "Dismiss"
226+msgstr ""
227+
228+#: GTG/taskeditor/__init__.py:34 GTG/taskbrowser/__init__.py:42
229+msgid "Undismiss"
230+msgstr ""
231+
232+#: GTG/taskeditor/__init__.py:35
233+msgid "Keep as Note"
234+msgstr ""
235+
236+#: GTG/taskeditor/__init__.py:36
237+msgid "Make a Task"
238+msgstr ""
239+
240+#: GTG/taskeditor/__init__.py:38
241+msgid "Mark this task as done"
242+msgstr ""
243+
244+#: GTG/taskeditor/__init__.py:39 GTG/taskeditor/__init__.py:41
245+msgid "Mark this task as to be done"
246+msgstr ""
247+
248+#: GTG/taskeditor/__init__.py:40
249+msgid "Mark this task as not to be done anymore"
250+msgstr ""
251+
252+#: GTG/taskeditor/__init__.py:42
253+msgid "Permanently remove this task"
254+msgstr ""
255+
256+#: GTG/taskeditor/__init__.py:43
257+msgid "Insert a subtask in this task"
258+msgstr ""
259+
260+#: GTG/taskeditor/__init__.py:44
261+msgid "Insert a tag in this task"
262 msgstr ""
263
264 #: GTG/taskeditor/taskeditor.glade.h:1
265@@ -90,11 +74,6 @@
266 msgid "Delete"
267 msgstr ""
268
269-#: GTG/taskeditor/taskeditor.glade.h:3 GTG/taskeditor/__init__.py:33
270-#: GTG/taskbrowser/taskbrowser.glade.h:14 GTG/taskbrowser/__init__.py:40
271-msgid "Dismiss"
272-msgstr ""
273-
274 #: GTG/taskeditor/taskeditor.glade.h:4
275 msgid "Due for"
276 msgstr ""
277@@ -131,48 +110,438 @@
278 msgid "Task"
279 msgstr ""
280
281-#: GTG/taskeditor/__init__.py:31 GTG/taskbrowser/__init__.py:36
282-msgid "Mark as done"
283-msgstr ""
284-
285-#: GTG/taskeditor/__init__.py:32 GTG/taskbrowser/__init__.py:38
286-msgid "Mark as not done"
287-msgstr ""
288-
289-#: GTG/taskeditor/__init__.py:34 GTG/taskbrowser/__init__.py:42
290-msgid "Undismiss"
291-msgstr ""
292-
293-#: GTG/taskeditor/__init__.py:35
294-msgid "Keep as Note"
295-msgstr ""
296-
297-#: GTG/taskeditor/__init__.py:36
298-msgid "Make a Task"
299-msgstr ""
300-
301-#: GTG/taskeditor/__init__.py:38
302-msgid "Mark this task as done"
303-msgstr ""
304-
305-#: GTG/taskeditor/__init__.py:39 GTG/taskeditor/__init__.py:41
306-msgid "Mark this task as to be done"
307-msgstr ""
308-
309-#: GTG/taskeditor/__init__.py:40
310-msgid "Mark this task as not to be done anymore"
311-msgstr ""
312-
313-#: GTG/taskeditor/__init__.py:42
314-msgid "Permanently remove this task"
315-msgstr ""
316-
317-#: GTG/taskeditor/__init__.py:43
318-msgid "Insert a subtask in this task"
319-msgstr ""
320-
321-#: GTG/taskeditor/__init__.py:44
322-msgid "Insert a tag in this task"
323+#: GTG/taskeditor/editor.py:321
324+#, python-format
325+msgid "Completed %(days)d day late"
326+msgid_plural "Completed %(days)d days late"
327+msgstr[0] ""
328+msgstr[1] ""
329+
330+#: GTG/taskeditor/editor.py:324
331+#, python-format
332+msgid "Completed %(days)d day early"
333+msgid_plural "Completed %(days)d days early"
334+msgstr[0] ""
335+msgstr[1] ""
336+
337+#: GTG/taskeditor/editor.py:330
338+msgid "Due tomorrow !"
339+msgstr ""
340+
341+#: GTG/taskeditor/editor.py:332
342+#, python-format
343+msgid "%(days)d day left"
344+msgid_plural "%(days)d days left"
345+msgstr[0] ""
346+msgstr[1] ""
347+
348+#: GTG/taskeditor/editor.py:334
349+msgid "Due today !"
350+msgstr ""
351+
352+#: GTG/taskeditor/editor.py:336
353+msgid "Due yesterday"
354+msgstr ""
355+
356+#: GTG/taskeditor/editor.py:339
357+#, python-format
358+msgid "Was %(days)d day ago"
359+msgid_plural "Was %(days)d days ago"
360+msgstr[0] ""
361+msgstr[1] ""
362+
363+#: GTG/viewmanager/deletion.glade.h:1
364+msgid "Confirm task deletion"
365+msgstr ""
366+
367+#: GTG/viewmanager/preferences.glade.h:1
368+msgid "<b>Dependencies</b>"
369+msgstr ""
370+
371+#: GTG/viewmanager/preferences.glade.h:2
372+msgid "<b>General</b>"
373+msgstr ""
374+
375+#: GTG/viewmanager/preferences.glade.h:3
376+msgid "<b>Task Browser</b>"
377+msgstr ""
378+
379+#: GTG/viewmanager/preferences.glade.h:4
380+msgid "<b>Task Editor</b>"
381+msgstr ""
382+
383+#: GTG/viewmanager/preferences.glade.h:5
384+msgid "Active _Plugins:"
385+msgstr ""
386+
387+#: GTG/viewmanager/preferences.glade.h:6
388+msgid "Behaviour"
389+msgstr ""
390+
391+#: GTG/viewmanager/preferences.glade.h:7
392+msgid "Check spelling"
393+msgstr ""
394+
395+#: GTG/viewmanager/preferences.glade.h:8
396+msgid "Getting Things GNOME! Preferences"
397+msgstr ""
398+
399+#: GTG/viewmanager/preferences.glade.h:9
400+msgid "Hide closed tasks older than"
401+msgstr ""
402+
403+#: GTG/viewmanager/preferences.glade.h:10
404+msgid "Plugins"
405+msgstr ""
406+
407+#: GTG/viewmanager/preferences.glade.h:11
408+msgid "Show task text preview"
409+msgstr ""
410+
411+#: GTG/viewmanager/preferences.glade.h:12
412+msgid "Start Getting Things GNOME! on every login"
413+msgstr ""
414+
415+#: GTG/viewmanager/preferences.glade.h:13
416+msgid "Storage"
417+msgstr ""
418+
419+#: GTG/viewmanager/preferences.glade.h:14
420+msgid "Task _Backends:"
421+msgstr ""
422+
423+#: GTG/viewmanager/preferences.glade.h:15
424+msgid "_About Plugin"
425+msgstr ""
426+
427+#: GTG/viewmanager/delete_dialog.py:58
428+msgid "Deleting a task cannot be undone, and will delete the following task: "
429+msgstr ""
430+
431+#: GTG/viewmanager/delete_dialog.py:59
432+msgid "Are you sure you want to delete this task?"
433+msgstr ""
434+
435+#: GTG/viewmanager/delete_dialog.py:60
436+msgid "Keep selected task"
437+msgstr ""
438+
439+#: GTG/viewmanager/delete_dialog.py:61
440+msgid "Permanently remove task"
441+msgstr ""
442+
443+#: GTG/viewmanager/delete_dialog.py:63
444+msgid "Deleting a task cannot be undone, and will delete the following tasks: "
445+msgstr ""
446+
447+#: GTG/viewmanager/delete_dialog.py:64
448+msgid "Are you sure you want to delete these tasks?"
449+msgstr ""
450+
451+#: GTG/viewmanager/delete_dialog.py:65
452+msgid "Keep selected tasks"
453+msgstr ""
454+
455+#: GTG/viewmanager/delete_dialog.py:66
456+msgid "Permanently remove tasks"
457+msgstr ""
458+
459+#: GTG/gtg.py:84
460+msgid "gtg is already running!"
461+msgstr ""
462+
463+#: GTG/plugins/rtm_sync/rtmProxy.py:171
464+msgid "saving critical object failed"
465+msgstr ""
466+
467+#: GTG/plugins/rtm_sync/syncEngine.py:87
468+msgid "Downloading task list..."
469+msgstr ""
470+
471+#: GTG/plugins/rtm_sync/syncEngine.py:88
472+msgid "Downloading..."
473+msgstr ""
474+
475+#: GTG/plugins/rtm_sync/syncEngine.py:123
476+msgid "Adding tasks to rtm.."
477+msgstr ""
478+
479+#: GTG/plugins/rtm_sync/syncEngine.py:133
480+msgid "Adding tasks to gtg.."
481+msgstr ""
482+
483+#: GTG/plugins/rtm_sync/syncEngine.py:143
484+msgid "Deleting tasks from rtm.."
485+msgstr ""
486+
487+#: GTG/plugins/rtm_sync/syncEngine.py:154
488+msgid "Deleting tasks from gtg.."
489+msgstr ""
490+
491+#: GTG/plugins/rtm_sync/syncEngine.py:164
492+msgid "Updating changed tasks.."
493+msgstr ""
494+
495+#: GTG/plugins/rtm_sync/syncEngine.py:189
496+#: GTG/plugins/rtm_sync/syncEngine.py:194
497+#: GTG/plugins/rtm_sync/syncEngine.py:197
498+#: GTG/plugins/rtm_sync/syncEngine.py:200
499+msgid "Updating "
500+msgstr ""
501+
502+#: GTG/plugins/rtm_sync/syncEngine.py:208
503+msgid "Saving current state.."
504+msgstr ""
505+
506+#: GTG/plugins/rtm_sync/syncEngine.py:215
507+msgid "Synchronization completed."
508+msgstr ""
509+
510+#: GTG/plugins/rtm_sync/syncEngine.py:238
511+msgid "Adding "
512+msgstr ""
513+
514+#: GTG/plugins/rtm_sync/syncEngine.py:247
515+msgid "Deleting "
516+msgstr ""
517+
518+#: GTG/plugins/rtm_sync/syncEngine.py:277
519+msgid "Closing in one second"
520+msgstr ""
521+
522+#: GTG/plugins/rtm_sync/pyrtm/rtm.py:55
523+msgid "Invalid state"
524+msgstr ""
525+
526+#: GTG/plugins/rtm_sync/rtm_sync.py:77 GTG/plugins/rtm_sync/rtm_sync.py:82
527+msgid "Synchronize with RTM"
528+msgstr ""
529+
530+#: GTG/plugins/rtm_sync/rtm_sync.py:143
531+msgid "Synchronization started"
532+msgstr ""
533+
534+#: GTG/plugins/rtm_sync/rtm_sync.py:156
535+msgid "Trying to access, please stand by..."
536+msgstr ""
537+
538+#: GTG/plugins/rtm_sync/rtm_sync.py:174
539+msgid "Couldn't connect to Remember The Milk"
540+msgstr ""
541+
542+#: GTG/plugins/rtm_sync/rtm_sync.py:189
543+msgid "Authentication failed."
544+msgstr ""
545+
546+#: GTG/plugins/rtm_sync/rtm_sync.py:189
547+msgid "Please retry."
548+msgstr ""
549+
550+#: GTG/plugins/rtm_sync/rtm_sync.py:193
551+msgid ""
552+"Please authenticate to Remember The Milk in the browser that is being opened "
553+"now. When done, press OK"
554+msgstr ""
555+
556+#: GTG/plugins/hamster/hamster.py:40
557+msgid "Start task in Hamster"
558+msgstr ""
559+
560+#: GTG/plugins/hamster/hamster.py:156
561+msgid "Start in Hamster"
562+msgstr ""
563+
564+#: GTG/plugins/hamster/hamster.py:158
565+msgid "Start a new activity in Hamster Time"
566+msgstr ""
567+
568+#: GTG/plugins/hamster/hamster.py:174
569+msgid "Start a new activity in Hamster Time "
570+msgstr ""
571+
572+#: GTG/plugins/notification_area/notification_area.py:188
573+msgid "_View Main Window"
574+msgstr ""
575+
576+#: GTG/plugins/notification_area/notification_area.py:196
577+msgid "Add _New Task"
578+msgstr ""
579+
580+#: GTG/plugins/tomboy/tomboy.py:82
581+msgid ""
582+"Tomboy/Gnote not found. Please install it or disable the Tomboy/Gnote plugin "
583+"in GTG"
584+msgstr ""
585+
586+#: GTG/plugins/tomboy/tomboy.py:127
587+msgid "Add Tomboy note"
588+msgstr ""
589+
590+#: GTG/plugins/tomboy/tomboy.py:195
591+msgid ""
592+" was found on the system, but it doesn't provide a dbus interface. the "
593+"Tomboy/Gnote plugin will not work with it."
594+msgstr ""
595+
596+#: GTG/plugins/tomboy/tomboy.py:243
597+msgid "That note does not exist!"
598+msgstr ""
599+
600+#: GTG/plugins/tomboy/tomboy.py:248
601+msgid "That note does not exist. Do you want to create a new one?"
602+msgstr ""
603+
604+#: GTG/plugins/tomboy/tomboy.py:276
605+msgid "This Tomboy note does not exist anymore. Do you want to create it?"
606+msgstr ""
607+
608+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:1
609+msgid "<b>Location Determination Method</b>"
610+msgstr ""
611+
612+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:2
613+msgid "<b>Proximity Factor</b>"
614+msgstr ""
615+
616+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:3
617+msgid ""
618+"<small>Distance in kilometers from \n"
619+"the current location.</small>"
620+msgstr ""
621+
622+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:5
623+msgid "Associate with existing tag"
624+msgstr ""
625+
626+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:6
627+msgid "Associate with new tag"
628+msgstr ""
629+
630+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:7
631+msgid "Geolocalized-tasks Preferences"
632+msgstr ""
633+
634+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:8
635+msgid "Set the task's location"
636+msgstr ""
637+
638+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:9
639+msgid "Use cellphone"
640+msgstr ""
641+
642+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:10
643+msgid "Use gps"
644+msgstr ""
645+
646+#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:11
647+msgid "Use network"
648+msgstr ""
649+
650+#: GTG/plugins/export/export.py:301
651+msgid "Template not found"
652+msgstr ""
653+
654+#: GTG/plugins/export/export.py:302
655+msgid "Can't load the template file"
656+msgstr ""
657+
658+#: GTG/plugins/export/export.py:331
659+msgid "Choose where to save your list"
660+msgstr ""
661+
662+#: GTG/plugins/evolution_sync/evolutionSync.py:33
663+msgid "Synchronize with Evolution"
664+msgstr ""
665+
666+#: GTG/tools/dates.py:51
667+msgid "Tomorrow"
668+msgstr ""
669+
670+#: GTG/tools/dates.py:53
671+msgid "Today"
672+msgstr ""
673+
674+#: GTG/tools/dates.py:55
675+msgid "Yesterday"
676+msgstr ""
677+
678+#: GTG/tools/dates.py:58
679+#, python-format
680+msgid "%(days)d day ago"
681+msgid_plural "%(days)d days ago"
682+msgstr[0] ""
683+msgstr[1] ""
684+
685+#: GTG/tools/dates.py:60
686+#, python-format
687+msgid "In %(days)d day"
688+msgid_plural "In %(days)d days"
689+msgstr[0] ""
690+msgstr[1] ""
691+
692+#: GTG/tools/dates.py:98 GTG/tools/dates.py:140
693+msgid "now"
694+msgstr ""
695+
696+#: GTG/tools/dates.py:99 GTG/tools/dates.py:142
697+msgid "soon"
698+msgstr ""
699+
700+#: GTG/tools/dates.py:100 GTG/tools/dates.py:144
701+msgid "later"
702+msgstr ""
703+
704+#: GTG/taskbrowser/__init__.py:37
705+msgid "Mark the selected task as done"
706+msgstr ""
707+
708+#: GTG/taskbrowser/__init__.py:39 GTG/taskbrowser/__init__.py:43
709+msgid "Mark the selected task as to be done"
710+msgstr ""
711+
712+#: GTG/taskbrowser/__init__.py:41
713+msgid "Mark the task as not to be done anymore"
714+msgstr ""
715+
716+#: GTG/taskbrowser/__init__.py:44
717+msgid "Permanently remove the selected task"
718+msgstr ""
719+
720+#: GTG/taskbrowser/__init__.py:45
721+msgid "Edit the selected task"
722+msgstr ""
723+
724+#: GTG/taskbrowser/__init__.py:46 GTG/taskbrowser/taskbrowser.glade.h:11
725+msgid "Create a new task"
726+msgstr ""
727+
728+#: GTG/taskbrowser/__init__.py:47
729+msgid "Create a new subtask"
730+msgstr ""
731+
732+#: GTG/taskbrowser/__init__.py:48
733+msgid "Display only the currently actionable tasks"
734+msgstr ""
735+
736+#: GTG/taskbrowser/tagtree.py:348 GTG/taskbrowser/tasktree.py:353
737+#: GTG/taskbrowser/tasktree.py:521 GTG/taskbrowser/taskbrowser.glade.h:38
738+msgid "Tags"
739+msgstr ""
740+
741+#: GTG/taskbrowser/tasktree.py:368 GTG/taskbrowser/tasktree.py:545
742+msgid "Title"
743+msgstr ""
744+
745+#: GTG/taskbrowser/tasktree.py:382
746+msgid "Start date"
747+msgstr ""
748+
749+#: GTG/taskbrowser/tasktree.py:394
750+msgid "Due"
751+msgstr ""
752+
753+#: GTG/taskbrowser/tasktree.py:533
754+msgid "Closing date"
755 msgstr ""
756
757 #: GTG/taskbrowser/taskbrowser.glade.h:1
758@@ -213,10 +582,6 @@
759 msgid "Copyrights&#xA9; 2008, 2009 Lionel Dricot, Bertrand Rousseau"
760 msgstr ""
761
762-#: GTG/taskbrowser/taskbrowser.glade.h:11 GTG/taskbrowser/__init__.py:46
763-msgid "Create a new task"
764-msgstr ""
765-
766 #: GTG/taskbrowser/taskbrowser.glade.h:12
767 msgid "D_ismiss"
768 msgstr ""
769@@ -308,11 +673,6 @@
770 msgid "TagName"
771 msgstr ""
772
773-#: GTG/taskbrowser/taskbrowser.glade.h:38 GTG/taskbrowser/tagtree.py:348
774-#: GTG/taskbrowser/tasktree.py:353 GTG/taskbrowser/tasktree.py:521
775-msgid "Tags"
776-msgstr ""
777-
778 #: GTG/taskbrowser/taskbrowser.glade.h:39
779 msgid "Und_ismiss"
780 msgstr ""
781@@ -389,143 +749,81 @@
782 msgid "t_oday"
783 msgstr ""
784
785-#: GTG/taskbrowser/__init__.py:37
786-msgid "Mark the selected task as done"
787-msgstr ""
788-
789-#: GTG/taskbrowser/__init__.py:39 GTG/taskbrowser/__init__.py:43
790-msgid "Mark the selected task as to be done"
791-msgstr ""
792-
793-#: GTG/taskbrowser/__init__.py:41
794-msgid "Mark the task as not to be done anymore"
795-msgstr ""
796-
797-#: GTG/taskbrowser/__init__.py:44
798-msgid "Permanently remove the selected task"
799-msgstr ""
800-
801-#: GTG/taskbrowser/__init__.py:45
802-msgid "Edit the selected task"
803-msgstr ""
804-
805-#: GTG/taskbrowser/__init__.py:47
806-msgid "Create a new subtask"
807-msgstr ""
808-
809-#: GTG/taskbrowser/__init__.py:48
810-msgid "Display only the currently actionable tasks"
811-msgstr ""
812-
813-#: GTG/taskbrowser/browser.py:570
814+#: GTG/taskbrowser/browser.py:571
815 msgid "no active tasks"
816 msgstr ""
817
818-#: GTG/taskbrowser/browser.py:572
819-msgid "1 active task"
820-msgstr ""
821-
822-#: GTG/taskbrowser/browser.py:574
823+#: GTG/taskbrowser/browser.py:573
824 #, python-format
825-msgid "%s active tasks"
826-msgstr ""
827+msgid "%(tasks)d active task"
828+msgid_plural "%(tasks)d active tasks"
829+msgstr[0] ""
830+msgstr[1] ""
831
832-#: GTG/taskbrowser/browser.py:585
833+#: GTG/taskbrowser/browser.py:584
834 msgid "monday"
835 msgstr ""
836
837-#: GTG/taskbrowser/browser.py:585
838+#: GTG/taskbrowser/browser.py:584
839 msgid "tuesday"
840 msgstr ""
841
842-#: GTG/taskbrowser/browser.py:585
843+#: GTG/taskbrowser/browser.py:584
844 msgid "wednesday"
845 msgstr ""
846
847-#: GTG/taskbrowser/browser.py:586
848+#: GTG/taskbrowser/browser.py:585
849 msgid "thursday"
850 msgstr ""
851
852-#: GTG/taskbrowser/browser.py:586
853+#: GTG/taskbrowser/browser.py:585
854 msgid "friday"
855 msgstr ""
856
857-#: GTG/taskbrowser/browser.py:586
858+#: GTG/taskbrowser/browser.py:585
859 msgid "saturday"
860 msgstr ""
861
862-#: GTG/taskbrowser/browser.py:587
863+#: GTG/taskbrowser/browser.py:586
864 msgid "sunday"
865 msgstr ""
866
867-#: GTG/taskbrowser/browser.py:596
868+#: GTG/taskbrowser/browser.py:595
869 msgid "today"
870 msgstr ""
871
872-#: GTG/taskbrowser/browser.py:600
873+#: GTG/taskbrowser/browser.py:599
874 msgid "tomorrow"
875 msgstr ""
876
877-#: GTG/taskbrowser/browser.py:604
878+#: GTG/taskbrowser/browser.py:603
879 msgid "next week"
880 msgstr ""
881
882-#: GTG/taskbrowser/browser.py:608
883+#: GTG/taskbrowser/browser.py:607
884 msgid "next month"
885 msgstr ""
886
887-#: GTG/taskbrowser/browser.py:612
888+#: GTG/taskbrowser/browser.py:611
889 msgid "next year"
890 msgstr ""
891
892-#: GTG/taskbrowser/browser.py:1014
893+#: GTG/taskbrowser/browser.py:1013
894 msgid "tags"
895 msgstr ""
896
897-#: GTG/taskbrowser/browser.py:1014
898+#: GTG/taskbrowser/browser.py:1013
899 msgid "tag"
900 msgstr ""
901
902-#: GTG/taskbrowser/browser.py:1020
903+#: GTG/taskbrowser/browser.py:1019
904 msgid "defer"
905 msgstr ""
906
907-#: GTG/taskbrowser/browser.py:1025
908+#: GTG/taskbrowser/browser.py:1024
909 msgid "due"
910 msgstr ""
911
912-#: GTG/taskbrowser/tasktree.py:368 GTG/taskbrowser/tasktree.py:545
913-msgid "Title"
914-msgstr ""
915-
916-#: GTG/taskbrowser/tasktree.py:382
917-msgid "Start date"
918-msgstr ""
919-
920-#: GTG/taskbrowser/tasktree.py:394
921-msgid "Due"
922-msgstr ""
923-
924-#: GTG/taskbrowser/tasktree.py:533
925-msgid "Closing date"
926-msgstr ""
927-
928-#: GTG/gtg.py:84
929-msgid "gtg is already running!"
930-msgstr ""
931-
932-#: GTG/core/task.py:53
933-msgid "My new task"
934-msgstr ""
935-
936-#: GTG/core/tagstore.py:52
937-msgid "All tasks"
938-msgstr ""
939-
940-#: GTG/core/tagstore.py:59
941-msgid "Tasks with no tags"
942-msgstr ""
943-
944 #: GTG/core/firstrun_tasks.py:8
945 msgid "Getting started with GTG"
946 msgstr ""
947@@ -747,301 +1045,14 @@
948 msgid "Very helpful message, isn't it? Please report a bug."
949 msgstr ""
950
951-#: GTG/viewmanager/delete_dialog.py:58
952-msgid "Deleting a task cannot be undone, and will delete the following task: "
953-msgstr ""
954-
955-#: GTG/viewmanager/delete_dialog.py:59
956-msgid "Are you sure you want to delete this task?"
957-msgstr ""
958-
959-#: GTG/viewmanager/delete_dialog.py:60
960-msgid "Keep selected task"
961-msgstr ""
962-
963-#: GTG/viewmanager/delete_dialog.py:61
964-msgid "Permanently remove task"
965-msgstr ""
966-
967-#: GTG/viewmanager/delete_dialog.py:63
968-msgid "Deleting a task cannot be undone, and will delete the following tasks: "
969-msgstr ""
970-
971-#: GTG/viewmanager/delete_dialog.py:64
972-msgid "Are you sure you want to delete these tasks?"
973-msgstr ""
974-
975-#: GTG/viewmanager/delete_dialog.py:65
976-msgid "Keep selected tasks"
977-msgstr ""
978-
979-#: GTG/viewmanager/delete_dialog.py:66
980-msgid "Permanently remove tasks"
981-msgstr ""
982-
983-#: GTG/viewmanager/preferences.glade.h:1
984-msgid "<b>Dependencies</b>"
985-msgstr ""
986-
987-#: GTG/viewmanager/preferences.glade.h:2
988-msgid "<b>General</b>"
989-msgstr ""
990-
991-#: GTG/viewmanager/preferences.glade.h:3
992-msgid "<b>Task Browser</b>"
993-msgstr ""
994-
995-#: GTG/viewmanager/preferences.glade.h:4
996-msgid "<b>Task Editor</b>"
997-msgstr ""
998-
999-#: GTG/viewmanager/preferences.glade.h:5
1000-msgid "Active _Plugins:"
1001-msgstr ""
1002-
1003-#: GTG/viewmanager/preferences.glade.h:6
1004-msgid "Behaviour"
1005-msgstr ""
1006-
1007-#: GTG/viewmanager/preferences.glade.h:7
1008-msgid "Check spelling"
1009-msgstr ""
1010-
1011-#: GTG/viewmanager/preferences.glade.h:8
1012-msgid "Getting Things GNOME! Preferences"
1013-msgstr ""
1014-
1015-#: GTG/viewmanager/preferences.glade.h:9
1016-msgid "Hide closed tasks older than"
1017-msgstr ""
1018-
1019-#: GTG/viewmanager/preferences.glade.h:10
1020-msgid "Plugins"
1021-msgstr ""
1022-
1023-#: GTG/viewmanager/preferences.glade.h:11
1024-msgid "Show task text preview"
1025-msgstr ""
1026-
1027-#: GTG/viewmanager/preferences.glade.h:12
1028-msgid "Start Getting Things GNOME! on every login"
1029-msgstr ""
1030-
1031-#: GTG/viewmanager/preferences.glade.h:13
1032-msgid "Storage"
1033-msgstr ""
1034-
1035-#: GTG/viewmanager/preferences.glade.h:14
1036-msgid "Task _Backends:"
1037-msgstr ""
1038-
1039-#: GTG/viewmanager/preferences.glade.h:15
1040-msgid "_About Plugin"
1041-msgstr ""
1042-
1043-#: GTG/viewmanager/deletion.glade.h:1
1044-msgid "Confirm task deletion"
1045-msgstr ""
1046-
1047-#: GTG/plugins/evolution_sync/evolutionSync.py:33
1048-msgid "Synchronize with Evolution"
1049-msgstr ""
1050-
1051-#: GTG/plugins/tomboy/tomboy.py:82
1052-msgid ""
1053-"Tomboy/Gnote not found. Please install it or disable the Tomboy/Gnote plugin "
1054-"in GTG"
1055-msgstr ""
1056-
1057-#: GTG/plugins/tomboy/tomboy.py:127
1058-msgid "Add Tomboy note"
1059-msgstr ""
1060-
1061-#: GTG/plugins/tomboy/tomboy.py:195
1062-msgid ""
1063-" was found on the system, but it doesn't provide a dbus interface. the "
1064-"Tomboy/Gnote plugin will not work with it."
1065-msgstr ""
1066-
1067-#: GTG/plugins/tomboy/tomboy.py:243
1068-msgid "That note does not exist!"
1069-msgstr ""
1070-
1071-#: GTG/plugins/tomboy/tomboy.py:248
1072-msgid "That note does not exist. Do you want to create a new one?"
1073-msgstr ""
1074-
1075-#: GTG/plugins/tomboy/tomboy.py:276
1076-msgid "This Tomboy note does not exist anymore. Do you want to create it?"
1077-msgstr ""
1078-
1079-#: GTG/plugins/notification_area/notification_area.py:188
1080-msgid "_View Main Window"
1081-msgstr ""
1082-
1083-#: GTG/plugins/notification_area/notification_area.py:196
1084-msgid "Add _New Task"
1085-msgstr ""
1086-
1087-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:1
1088-msgid "<b>Location Determination Method</b>"
1089-msgstr ""
1090-
1091-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:2
1092-msgid "<b>Proximity Factor</b>"
1093-msgstr ""
1094-
1095-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:3
1096-msgid ""
1097-"<small>Distance in kilometers from \n"
1098-"the current location.</small>"
1099-msgstr ""
1100-
1101-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:5
1102-msgid "Associate with existing tag"
1103-msgstr ""
1104-
1105-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:6
1106-msgid "Associate with new tag"
1107-msgstr ""
1108-
1109-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:7
1110-msgid "Geolocalized-tasks Preferences"
1111-msgstr ""
1112-
1113-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:8
1114-msgid "Set the task's location"
1115-msgstr ""
1116-
1117-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:9
1118-msgid "Use cellphone"
1119-msgstr ""
1120-
1121-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:10
1122-msgid "Use gps"
1123-msgstr ""
1124-
1125-#: GTG/plugins/geolocalized_tasks/geolocalized.glade.h:11
1126-msgid "Use network"
1127-msgstr ""
1128-
1129-#: GTG/plugins/export/export.py:301
1130-msgid "Template not found"
1131-msgstr ""
1132-
1133-#: GTG/plugins/export/export.py:302
1134-msgid "Can't load the template file"
1135-msgstr ""
1136-
1137-#: GTG/plugins/export/export.py:331
1138-msgid "Choose where to save your list"
1139-msgstr ""
1140-
1141-#: GTG/plugins/hamster/hamster.py:40
1142-msgid "Start task in Hamster"
1143-msgstr ""
1144-
1145-#: GTG/plugins/hamster/hamster.py:156
1146-msgid "Start in Hamster"
1147-msgstr ""
1148-
1149-#: GTG/plugins/hamster/hamster.py:158
1150-msgid "Start a new activity in Hamster Time"
1151-msgstr ""
1152-
1153-#: GTG/plugins/hamster/hamster.py:174
1154-msgid "Start a new activity in Hamster Time "
1155-msgstr ""
1156-
1157-#: GTG/plugins/rtm_sync/pyrtm/rtm.py:55
1158-msgid "Invalid state"
1159-msgstr ""
1160-
1161-#: GTG/plugins/rtm_sync/rtm_sync.py:77 GTG/plugins/rtm_sync/rtm_sync.py:82
1162-msgid "Synchronize with RTM"
1163-msgstr ""
1164-
1165-#: GTG/plugins/rtm_sync/rtm_sync.py:143
1166-msgid "Synchronization started"
1167-msgstr ""
1168-
1169-#: GTG/plugins/rtm_sync/rtm_sync.py:156
1170-msgid "Trying to access, please stand by..."
1171-msgstr ""
1172-
1173-#: GTG/plugins/rtm_sync/rtm_sync.py:174
1174-msgid "Couldn't connect to Remember The Milk"
1175-msgstr ""
1176-
1177-#: GTG/plugins/rtm_sync/rtm_sync.py:189
1178-msgid "Authentication failed."
1179-msgstr ""
1180-
1181-#: GTG/plugins/rtm_sync/rtm_sync.py:189
1182-msgid "Please retry."
1183-msgstr ""
1184-
1185-#: GTG/plugins/rtm_sync/rtm_sync.py:193
1186-msgid ""
1187-"Please authenticate to Remember The Milk in the browser that is being opened "
1188-"now. When done, press OK"
1189-msgstr ""
1190-
1191-#: GTG/plugins/rtm_sync/rtmProxy.py:171
1192-msgid "saving critical object failed"
1193-msgstr ""
1194-
1195-#: GTG/plugins/rtm_sync/syncEngine.py:87
1196-msgid "Downloading task list..."
1197-msgstr ""
1198-
1199-#: GTG/plugins/rtm_sync/syncEngine.py:88
1200-msgid "Downloading..."
1201-msgstr ""
1202-
1203-#: GTG/plugins/rtm_sync/syncEngine.py:123
1204-msgid "Adding tasks to rtm.."
1205-msgstr ""
1206-
1207-#: GTG/plugins/rtm_sync/syncEngine.py:133
1208-msgid "Adding tasks to gtg.."
1209-msgstr ""
1210-
1211-#: GTG/plugins/rtm_sync/syncEngine.py:143
1212-msgid "Deleting tasks from rtm.."
1213-msgstr ""
1214-
1215-#: GTG/plugins/rtm_sync/syncEngine.py:154
1216-msgid "Deleting tasks from gtg.."
1217-msgstr ""
1218-
1219-#: GTG/plugins/rtm_sync/syncEngine.py:164
1220-msgid "Updating changed tasks.."
1221-msgstr ""
1222-
1223-#: GTG/plugins/rtm_sync/syncEngine.py:189
1224-#: GTG/plugins/rtm_sync/syncEngine.py:194
1225-#: GTG/plugins/rtm_sync/syncEngine.py:197
1226-#: GTG/plugins/rtm_sync/syncEngine.py:200
1227-msgid "Updating "
1228-msgstr ""
1229-
1230-#: GTG/plugins/rtm_sync/syncEngine.py:208
1231-msgid "Saving current state.."
1232-msgstr ""
1233-
1234-#: GTG/plugins/rtm_sync/syncEngine.py:215
1235-msgid "Synchronization completed."
1236-msgstr ""
1237-
1238-#: GTG/plugins/rtm_sync/syncEngine.py:238
1239-msgid "Adding "
1240-msgstr ""
1241-
1242-#: GTG/plugins/rtm_sync/syncEngine.py:247
1243-msgid "Deleting "
1244-msgstr ""
1245-
1246-#: GTG/plugins/rtm_sync/syncEngine.py:277
1247-msgid "Closing in one second"
1248+#: GTG/core/task.py:53
1249+msgid "My new task"
1250+msgstr ""
1251+
1252+#: GTG/core/tagstore.py:52
1253+msgid "All tasks"
1254+msgstr ""
1255+
1256+#: GTG/core/tagstore.py:59
1257+msgid "Tasks with no tags"
1258 msgstr ""

Subscribers

People subscribed via source and target branches

to status/vote changes: