Merge lp:~dpm/bzr-gtk/i18n into lp:bzr-gtk/gtk2

Proposed by David Planella
Status: Superseded
Proposed branch: lp:~dpm/bzr-gtk/i18n
Merge into: lp:bzr-gtk/gtk2
Diff against target: 2379 lines (+794/-1472)
14 files modified
__init__.py (+16/-2)
bazaar-properties.desktop (+9/-0)
bazaar-properties.desktop.in (+2/-2)
bzr-handle-patch.desktop (+10/-0)
bzr-handle-patch.desktop.in (+2/-2)
bzr-notify.desktop (+10/-0)
bzr-notify.desktop.in (+3/-3)
po/Makevars (+2/-0)
po/POTFILES.in (+20/-0)
po/POTFILES.skip (+2/-0)
po/bzr-gtk.pot (+696/-0)
po/olive-gtk.pot (+0/-1463)
setup.cfg (+7/-0)
setup.py (+15/-0)
To merge this branch: bzr merge lp:~dpm/bzr-gtk/i18n
Reviewer Review Type Date Requested Status
Jelmer Vernooij (community) code Needs Fixing
Review via email: mp+33289@code.launchpad.net

This proposal has been superseded by a proposal from 2011-03-06.

Description of the change

Add internationalization support for bzr-gtk

What this branch does is to basically adapt the build system for internationalization:

* It imports python-distutils-extra to use the build_i18n command that can be used to build translations and update the .pot template both upstream and in the .deb package.

* It adds all the other extra bits such as setup.cfg defining the translation domain, POTFILES.in defining the translatable files, and Makevars to cater for the customized _i18n function during the string extraction process when creating the .pot template

* It marks the .desktop files for translation.

The patch as it stands now includes all the bits to create a .pot template to be exposed to translators, and build translations.

What's left to do:

* Enable gettext in the code. Right now the already existing _i18n() function is a stub. It needs to use gettext to actually translate the strings. This is trivial to implement, and I'll be happy to work further on it if this initial merge proposal is accepted.

* Set up Launchpad to expose the translations and to do automatic translation imports and exports. This is fairly trivial, and it should not take more than a few minutes to set up, and I'd be happy to help with that.

So, before I continue doing more work on enabling i18n, I'd like to hear what you think of this merge proposal. Once you are happy with it, I can go on with completing it.

Thanks!

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Hi David!

Sorry for not responding earlier, I hadn't seen this MP until now. Nice work!

Is there any chance you could make the dependency on python-distutils-extra optional? Preferably by just providing a dummy command that tells the user to install it when they run 'build_i18n'. Otherwise I'm happy to merge this.

Cheers,

Jelmer

review: Needs Fixing (code)
Revision history for this message
David Planella (dpm) wrote :

El dt 05 de 10 de 2010 a les 12:39 +0000, en/na Jelmer Vernooij va
escriure:
> Review: Needs Fixing code
> Hi David!
>
> Sorry for not responding earlier, I hadn't seen this MP until now. Nice work!
>

Ah, thanks for coming back to me, glad to see that this work can be
used :)

> Is there any chance you could make the dependency on python-distutils-extra optional?

I'll do whatever it takes to make the application usable by anyone in
their own language.

However, I do not understand the rationale for not wanting to have
python-distutils-extra as a build dependency. If bzr-gtk were to ever
enter main, it would also help building the pot template seamlessly and
make it translatable in Launchpad without the need of any manual
debian/rules hacking. So that's another plus point.

My main concern is that removing it also means that you'll have to write
a command to build translations as a substitute for build_i18n. That
will mean either reinventing the wheel or ignoring translations (in case
no one writes that new command for python-distutils).

> Preferably by just providing a dummy command that tells the user to install it when they run 'build_i18n'. Otherwise I'm happy to merge this.
>

I'm not familiar with Python packaging and distribution outside of
a .deb package, but is there not a more elegant way to check for
dependencies in python-distutils if someone is building from source?

Cheers,
David.

--
David Planella
Ubuntu Translations Coordinator
www.ubuntu.com / www.davidplanella.wordpress.com
www.identi.ca/dplanella / www.twitter.com/dplanella

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Hi David,

On Fri, 2010-10-08 at 08:19 +0000, David Planella wrote:
> El dt 05 de 10 de 2010 a les 12:39 +0000, en/na Jelmer Vernooij va
> escriure:
> > Is there any chance you could make the dependency on python-distutils-extra optional?
> I'll do whatever it takes to make the application usable by anyone in
> their own language.
>
> However, I do not understand the rationale for not wanting to have
> python-distutils-extra as a build dependency. If bzr-gtk were to ever
> enter main, it would also help building the pot template seamlessly and
> make it translatable in Launchpad without the need of any manual
> debian/rules hacking. So that's another plus point.

> My main concern is that removing it also means that you'll have to write
> a command to build translations as a substitute for build_i18n. That
> will mean either reinventing the wheel or ignoring translations (in case
> no one writes that new command for python-distutils).

I think it's a good idea to automatically make bzr-gtk build i18n
support when python-distutils-extra is available. If it isn't then I
don't want to require users to install it - they might not care about
i18n and should not have to install DistUtilsExtra unless they want i18n
support.

Installing extra dependencies is significantly harder on some platforms
than on Ubuntu, and for that reason I'm trying to keep as much of our
dependencies optional.

Just adding python-distutils-extra to the list of dependencies in
debian/control should still be sufficient to get i18n support on
Debian/Ubuntu.

> > Preferably by just providing a dummy command that tells the user to
> install it when they run 'build_i18n'. Otherwise I'm happy to merge
> this. >
> I'm not familiar with Python packaging and distribution outside of
> a .deb package, but is there not a more elegant way to check for
> dependencies in python-distutils if someone is building from source?
I'm thinking of something along these lines to cope with DistUtilsExtra
being missing (not actually tested, my memory of the distutils API is
rusty):

try:
   from DistUtilsExtra.command import *
except ImportError:
   # DistUtilsExtra not available.

   class cmd_build_i18n(Command):

       def run(self):
            print "Please install distutilsextra for i18n support."
else:
    # Use build_i18n from DistUtilsExtra
    cmd_build_i18n = build_i18n.build_i18n

...
      cmdclass={
              'build_i18n': cmd_build_i18n,
...

Cheers,

Jelmer

Revision history for this message
David Planella (dpm) wrote :
Download full text (3.1 KiB)

El dv 08 de 10 de 2010 a les 09:13 +0000, en/na Jelmer Vernooij va
escriure:
> Hi David,
>

Hey Jelmer,

Thanks for the quick reply.

> On Fri, 2010-10-08 at 08:19 +0000, David Planella wrote:
> > El dt 05 de 10 de 2010 a les 12:39 +0000, en/na Jelmer Vernooij va
> > escriure:
> > > Is there any chance you could make the dependency on python-distutils-extra optional?
> > I'll do whatever it takes to make the application usable by anyone in
> > their own language.
> >
> > However, I do not understand the rationale for not wanting to have
> > python-distutils-extra as a build dependency. If bzr-gtk were to ever
> > enter main, it would also help building the pot template seamlessly and
> > make it translatable in Launchpad without the need of any manual
> > debian/rules hacking. So that's another plus point.
>
> > My main concern is that removing it also means that you'll have to write
> > a command to build translations as a substitute for build_i18n. That
> > will mean either reinventing the wheel or ignoring translations (in case
> > no one writes that new command for python-distutils).
>
> I think it's a good idea to automatically make bzr-gtk build i18n
> support when python-distutils-extra is available. If it isn't then I
> don't want to require users to install it - they might not care about
> i18n and should not have to install DistUtilsExtra unless they want i18n
> support.
>

I'm not sure I can follow, since if I understand it correctly, that
would be a build dependency, that only developers should care about, not
users. Note that I'm not trying to be picky, it might well be me missing
something, I'm just asking to understand.

In any case, I'm just as happy with making it optional.

> Installing extra dependencies is significantly harder on some platforms
> than on Ubuntu, and for that reason I'm trying to keep as much of our
> dependencies optional.
>
> Just adding python-distutils-extra to the list of dependencies in
> debian/control should still be sufficient to get i18n support on
> Debian/Ubuntu.
>
> > > Preferably by just providing a dummy command that tells the user to
> > install it when they run 'build_i18n'. Otherwise I'm happy to merge
> > this. >
> > I'm not familiar with Python packaging and distribution outside of
> > a .deb package, but is there not a more elegant way to check for
> > dependencies in python-distutils if someone is building from source?
> I'm thinking of something along these lines to cope with DistUtilsExtra
> being missing (not actually tested, my memory of the distutils API is
> rusty):
>
> try:
> from DistUtilsExtra.command import *
> except ImportError:
> # DistUtilsExtra not available.
>
> class cmd_build_i18n(Command):
>
> def run(self):
> print "Please install distutilsextra for i18n support."
> else:
> # Use build_i18n from DistUtilsExtra
> cmd_build_i18n = build_i18n.build_i18n
>
>
> ...
> cmdclass={
> 'build_i18n': cmd_build_i18n,
> ...
>

Ok, I'll go for that, then. I'll be busy or away until Wednesday, but
I'll try to get to it by the end of next week.

Looking forward to see bzr-gtk in many languages!

Regard...

Read more...

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Hi David,

On Fri, 2010-10-08 at 09:43 +0000, David Planella wrote:
> El dv 08 de 10 de 2010 a les 09:13 +0000, en/na Jelmer Vernooij va
> escriure:
> I'm not sure I can follow, since if I understand it correctly, that
> would be a build dependency, that only developers should care about, not
> users. Note that I'm not trying to be picky, it might well be me missing
> something, I'm just asking to understand.
We have a fair number of users that are not Ubuntu users. bzr-gtk is not
packaged for all their platforms so there are quite a few that install
from source.

> > > > Preferably by just providing a dummy command that tells the user to
> > > install it when they run 'build_i18n'. Otherwise I'm happy to merge
> > > this. >
> > > I'm not familiar with Python packaging and distribution outside of
> > > a .deb package, but is there not a more elegant way to check for
> > > dependencies in python-distutils if someone is building from source?
> > I'm thinking of something along these lines to cope with DistUtilsExtra
> > being missing (not actually tested, my memory of the distutils API is
> > rusty):
> >
> > try:
> > from DistUtilsExtra.command import *
> > except ImportError:
> > # DistUtilsExtra not available.
> >
> > class cmd_build_i18n(Command):
> >
> > def run(self):
> > print "Please install distutilsextra for i18n support."
> > else:
> > # Use build_i18n from DistUtilsExtra
> > cmd_build_i18n = build_i18n.build_i18n
> >
> >
> > ...
> > cmdclass={
> > 'build_i18n': cmd_build_i18n,
> > ...
> >
>
> Ok, I'll go for that, then. I'll be busy or away until Wednesday, but
> I'll try to get to it by the end of next week.
>
> Looking forward to see bzr-gtk in many languages!
Same here, thanks again for providing the patches for this. If there's
anything I can help with just ping me here on IRC or Mumble.

Cheers,

Jelmer

lp:~dpm/bzr-gtk/i18n updated
700. By David Planella

Added preliminary internationalization support. Merged from trunk.

701. By David Planella

Added proper i18n support with gettext

702. By David Planella

Added missing gettext modules to import

703. By David Planella

Removed python-distutils-extra import left by mistake

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '__init__.py'
2--- __init__.py 2011-01-31 10:19:52 +0000
3+++ __init__.py 2011-03-06 10:26:30 +0000
4@@ -62,6 +62,21 @@
5 bzr_plugin_version as version_info,
6 bzr_compatible_versions,
7 )
8+from gettext import (
9+ gettext,
10+ textdomain,
11+ bindtextdomain,
12+ bind_textdomain_codeset,
13+ )
14+
15+# FIXME: We should find out LOCALEDIR at compile or run time. The current
16+# hardcoded path will work for most distributions, but not for e.g. Solaris and
17+# Windows
18+GETTEXT_PACKAGE = 'bzr-gtk'
19+LOCALEDIR = '/usr/share/locale'
20+bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR)
21+bind_textdomain_codeset(GETTEXT_PACKAGE, 'UTF-8')
22+textdomain(GETTEXT_PACKAGE)
23
24 if version_info[3] == 'final':
25 version_string = '%d.%d.%d' % version_info[:3]
26@@ -181,5 +196,4 @@
27
28
29 def _i18n(text):
30- # Stub until we support proper i18n
31- return text
32+ return gettext(text)
33
34=== added file 'bazaar-properties.desktop'
35--- bazaar-properties.desktop 1970-01-01 00:00:00 +0000
36+++ bazaar-properties.desktop 2011-03-06 10:26:30 +0000
37@@ -0,0 +1,9 @@
38+[Desktop Entry]
39+Name=Bazaar Preferences
40+Comment=Configure Bazaar settings
41+Icon=bzr-icon-64
42+Exec=bzr gpreferences
43+Terminal=false
44+Type=Application
45+Categories=Settings;
46+OnlyShowIn=GNOME;
47
48=== renamed file 'bazaar-properties.desktop' => 'bazaar-properties.desktop.in'
49--- bazaar-properties.desktop 2009-10-06 13:57:12 +0000
50+++ bazaar-properties.desktop.in 2011-03-06 10:26:30 +0000
51@@ -1,6 +1,6 @@
52 [Desktop Entry]
53-Name=Bazaar Preferences
54-Comment=Configure Bazaar settings
55+_Name=Bazaar Preferences
56+_Comment=Configure Bazaar settings
57 Icon=bzr-icon-64
58 Exec=bzr gpreferences
59 Terminal=false
60
61=== added file 'bzr-handle-patch.desktop'
62--- bzr-handle-patch.desktop 1970-01-01 00:00:00 +0000
63+++ bzr-handle-patch.desktop 2011-03-06 10:26:30 +0000
64@@ -0,0 +1,10 @@
65+[Desktop Entry]
66+Name=Bazaar
67+Comment=Apply Bazaar Bundle
68+Icon=bzr-icon-64
69+Exec=bzr-handle-patch %f
70+NoDisplay=true
71+Terminal=false
72+Type=Application
73+Categories=Application;Development;RevisionControl;
74+MimeType=text/x-diff;text/x-patch;application/x-bazaar-merge-directive;
75
76=== renamed file 'bzr-handle-patch.desktop' => 'bzr-handle-patch.desktop.in'
77--- bzr-handle-patch.desktop 2008-10-14 19:49:27 +0000
78+++ bzr-handle-patch.desktop.in 2011-03-06 10:26:30 +0000
79@@ -1,6 +1,6 @@
80 [Desktop Entry]
81-Name=Bazaar
82-Comment=Apply Bazaar Bundle
83+_Name=Bazaar
84+_Comment=Apply Bazaar Bundle
85 Icon=bzr-icon-64
86 Exec=bzr-handle-patch %f
87 NoDisplay=true
88
89=== added file 'bzr-notify.desktop'
90--- bzr-notify.desktop 1970-01-01 00:00:00 +0000
91+++ bzr-notify.desktop 2011-03-06 10:26:30 +0000
92@@ -0,0 +1,10 @@
93+[Desktop Entry]
94+Type=Application
95+Version=0.1
96+Name=Bazaar Notification
97+GenericName=Bazaar Notification
98+Comment=Notification Area Icon for Bazaar
99+Icon=bzr-icon-64
100+Exec=bzr-notify
101+Categories=Application;Development;RevisionControl;
102+Terminal=false
103
104=== renamed file 'bzr-notify.desktop' => 'bzr-notify.desktop.in'
105--- bzr-notify.desktop 2009-10-06 13:57:12 +0000
106+++ bzr-notify.desktop.in 2011-03-06 10:26:30 +0000
107@@ -1,9 +1,9 @@
108 [Desktop Entry]
109 Type=Application
110 Version=0.1
111-Name=Bazaar Notification
112-GenericName=
113-Comment=Notification Area Icon for Bazaar
114+_Name=Bazaar Notification
115+_GenericName=Bazaar Notification
116+_Comment=Notification Area Icon for Bazaar
117 Icon=bzr-icon-64
118 Exec=bzr-notify
119 Categories=Application;Development;RevisionControl;
120
121=== added file 'po/Makevars'
122--- po/Makevars 1970-01-01 00:00:00 +0000
123+++ po/Makevars 2011-03-06 10:26:30 +0000
124@@ -0,0 +1,2 @@
125+top_builddir=../
126+XGETTEXT_OPTIONS = --keyword=_i18n --keyword=_ --keyword=N_ --keyword=U_
127
128=== added file 'po/POTFILES.in'
129--- po/POTFILES.in 1970-01-01 00:00:00 +0000
130+++ po/POTFILES.in 2011-03-06 10:26:30 +0000
131@@ -0,0 +1,20 @@
132+bazaar-properties.desktop.in
133+bzr-handle-patch.desktop.in
134+bzr-notify.desktop.in
135+branch.py
136+branchview/treeview.py
137+checkout.py
138+commands.py
139+commit.py
140+conflicts.py
141+diff.py
142+errors.py
143+initialize.py
144+loom.py
145+merge.py
146+nautilus-bzr.py
147+push.py
148+revbrowser.py
149+search.py
150+status.py
151+tags.py
152
153=== added file 'po/POTFILES.skip'
154--- po/POTFILES.skip 1970-01-01 00:00:00 +0000
155+++ po/POTFILES.skip 2011-03-06 10:26:30 +0000
156@@ -0,0 +1,2 @@
157+setup.cfg
158+setup.py
159
160=== added file 'po/bzr-gtk.pot'
161--- po/bzr-gtk.pot 1970-01-01 00:00:00 +0000
162+++ po/bzr-gtk.pot 2011-03-06 10:26:30 +0000
163@@ -0,0 +1,696 @@
164+# SOME DESCRIPTIVE TITLE.
165+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
166+# This file is distributed under the same license as the PACKAGE package.
167+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
168+#
169+#, fuzzy
170+msgid ""
171+msgstr ""
172+"Project-Id-Version: PACKAGE VERSION\n"
173+"Report-Msgid-Bugs-To: \n"
174+"POT-Creation-Date: 2011-03-06 02:19+0100\n"
175+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
176+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
177+"Language-Team: LANGUAGE <LL@li.org>\n"
178+"Language: \n"
179+"MIME-Version: 1.0\n"
180+"Content-Type: text/plain; charset=CHARSET\n"
181+"Content-Transfer-Encoding: 8bit\n"
182+
183+#: ../bazaar-properties.desktop.in.h:1
184+msgid "Bazaar Preferences"
185+msgstr ""
186+
187+#: ../bazaar-properties.desktop.in.h:2
188+msgid "Configure Bazaar settings"
189+msgstr ""
190+
191+#: ../bzr-handle-patch.desktop.in.h:1
192+msgid "Apply Bazaar Bundle"
193+msgstr ""
194+
195+#: ../bzr-handle-patch.desktop.in.h:2
196+msgid "Bazaar"
197+msgstr ""
198+
199+#: ../bzr-notify.desktop.in.h:1
200+msgid "Bazaar Notification"
201+msgstr ""
202+
203+#: ../bzr-notify.desktop.in.h:2
204+msgid "Notification Area Icon for Bazaar"
205+msgstr ""
206+
207+#. Create the widgets
208+#: ../branch.py:52
209+msgid "_Branch"
210+msgstr ""
211+
212+#: ../branch.py:55 ../checkout.py:55
213+msgid "Branch location:"
214+msgstr ""
215+
216+#: ../branch.py:57 ../checkout.py:56
217+msgid "Destination:"
218+msgstr ""
219+
220+#: ../branch.py:58
221+msgid "Branck nick:"
222+msgstr ""
223+
224+#: ../branch.py:59 ../checkout.py:58
225+msgid "Revision:"
226+msgstr ""
227+
228+#: ../branch.py:60 ../checkout.py:53
229+msgid "Please select a folder"
230+msgstr ""
231+
232+#: ../branch.py:140 ../checkout.py:159
233+msgid "Missing branch location"
234+msgstr ""
235+
236+#: ../branch.py:141 ../checkout.py:160
237+msgid "You must specify a branch location."
238+msgstr ""
239+
240+#: ../branch.py:182
241+msgid "Branching successful"
242+msgstr ""
243+
244+#: ../branch.py:183
245+#, python-format
246+msgid "%d revision(s) branched."
247+msgstr ""
248+
249+#: ../branch.py:191 ../checkout.py:191
250+msgid "N/A"
251+msgstr ""
252+
253+#. Create the widgets
254+#: ../checkout.py:50
255+msgid "Check_out"
256+msgstr ""
257+
258+#: ../checkout.py:57
259+msgid "Branch nick:"
260+msgstr ""
261+
262+#: ../checkout.py:62
263+msgid "_Lightweight checkout"
264+msgstr ""
265+
266+#: ../commands.py:307
267+msgid "Directory does not have a working tree"
268+msgstr ""
269+
270+#: ../commands.py:308
271+msgid "Operation aborted."
272+msgstr ""
273+
274+#: ../commands.py:412
275+msgid "There are local changes in the branch"
276+msgstr ""
277+
278+#: ../commands.py:413
279+msgid "Please commit or revert the changes before merging."
280+msgstr ""
281+
282+#: ../commit.py:182
283+msgid "added"
284+msgstr ""
285+
286+#: ../commit.py:183
287+msgid "removed"
288+msgstr ""
289+
290+#: ../commit.py:184
291+msgid "renamed"
292+msgstr ""
293+
294+#: ../commit.py:185
295+msgid "renamed and modified"
296+msgstr ""
297+
298+#: ../commit.py:186
299+msgid "modified"
300+msgstr ""
301+
302+#: ../commit.py:187
303+msgid "kind changed"
304+msgstr ""
305+
306+#: ../commit.py:280
307+msgid "<b>Commit Message</b>"
308+msgstr ""
309+
310+#: ../commit.py:333
311+msgid "_Only commit locally"
312+msgstr ""
313+
314+#: ../commit.py:364
315+msgid "Comm_it"
316+msgstr ""
317+
318+#: ../commit.py:390
319+msgid "Files"
320+msgstr ""
321+
322+#: ../commit.py:395
323+msgid "Commit all changes"
324+msgstr ""
325+
326+#: ../commit.py:401
327+msgid "Only commit selected changes"
328+msgstr ""
329+
330+#: ../commit.py:407
331+msgid "Commit all changes*"
332+msgstr ""
333+
334+#: ../commit.py:440
335+msgid "Commit*"
336+msgstr ""
337+
338+#: ../commit.py:442
339+msgid "Commit"
340+msgstr ""
341+
342+#: ../commit.py:446 ../conflicts.py:111
343+msgid "Path"
344+msgstr ""
345+
346+#: ../commit.py:448 ../conflicts.py:113
347+msgid "Type"
348+msgstr ""
349+
350+#: ../commit.py:481
351+msgid "<i>* Cannot select specific files when merging</i>"
352+msgstr ""
353+
354+#: ../commit.py:485
355+msgid "Pending Revisions"
356+msgstr ""
357+
358+#: ../commit.py:507
359+msgid "Date"
360+msgstr ""
361+
362+#: ../commit.py:509
363+msgid "Committer"
364+msgstr ""
365+
366+#: ../commit.py:511 ../search.py:59
367+msgid "Summary"
368+msgstr ""
369+
370+#. TODO: jam 2007-10-30 The diff label is currently disabled. If we
371+#. decide that we really don't ever want to display it, we should
372+#. actually remove it, and other references to it, along with the
373+#. tests that it is set properly.
374+#: ../commit.py:521
375+msgid "Diff for whole tree"
376+msgstr ""
377+
378+#. Whole tree
379+#: ../commit.py:545 ../commit.py:628
380+msgid "File commit message"
381+msgstr ""
382+
383+#: ../commit.py:552
384+msgid "Global Commit Message"
385+msgstr ""
386+
387+#: ../commit.py:554
388+msgid "<b>Global Commit Message</b>"
389+msgstr ""
390+
391+#: ../commit.py:581
392+msgid "Diff for "
393+msgstr ""
394+
395+#: ../commit.py:634
396+msgid "Commit message for "
397+msgstr ""
398+
399+#: ../commit.py:689
400+msgid "Commit cancelled"
401+msgstr ""
402+
403+#: ../commit.py:690
404+msgid "Do you want to save your commit messages ?"
405+msgstr ""
406+
407+#: ../commit.py:708
408+msgid "Commit with an empty message?"
409+msgstr ""
410+
411+#: ../commit.py:709
412+msgid "You can describe your commit intent in the message."
413+msgstr ""
414+
415+#: ../commit.py:729
416+msgid "Commit with unknowns?"
417+msgstr ""
418+
419+#: ../commit.py:730
420+msgid "Unknown files exist in the working tree. Commit anyway?"
421+msgstr ""
422+
423+#: ../commit.py:750
424+msgid "Commit with no changes?"
425+msgstr ""
426+
427+#: ../commit.py:751
428+msgid "There are no changes in the working tree. Do you want to commit anyway?"
429+msgstr ""
430+
431+#: ../conflicts.py:50
432+msgid "External utility:"
433+msgstr ""
434+
435+#: ../conflicts.py:101
436+msgid "Conflicts"
437+msgstr ""
438+
439+#: ../conflicts.py:104
440+msgid "No conflicts in working tree."
441+msgstr ""
442+
443+#: ../conflicts.py:118
444+msgid "path conflict"
445+msgstr ""
446+
447+#: ../conflicts.py:120
448+msgid "contents conflict"
449+msgstr ""
450+
451+#: ../conflicts.py:122
452+msgid "text conflict"
453+msgstr ""
454+
455+#: ../conflicts.py:124
456+msgid "duplicate id"
457+msgstr ""
458+
459+#: ../conflicts.py:126
460+msgid "duplicate"
461+msgstr ""
462+
463+#: ../conflicts.py:128
464+msgid "parent loop"
465+msgstr ""
466+
467+#: ../conflicts.py:130
468+msgid "unversioned parent"
469+msgstr ""
470+
471+#: ../conflicts.py:132
472+msgid "missing parent"
473+msgstr ""
474+
475+#: ../conflicts.py:134
476+msgid "deleting parent"
477+msgstr ""
478+
479+#: ../conflicts.py:136
480+msgid "unknown type of conflict"
481+msgstr ""
482+
483+#: ../conflicts.py:165
484+msgid "No file was selected"
485+msgstr ""
486+
487+#: ../conflicts.py:166
488+msgid "Please select a file from the list."
489+msgstr ""
490+
491+#: ../conflicts.py:176
492+msgid "Call to external utility failed"
493+msgstr ""
494+
495+#: ../conflicts.py:178
496+msgid "Cannot resolve conflict"
497+msgstr ""
498+
499+#: ../conflicts.py:179
500+msgid ""
501+"Only conflicts on the text of files can be resolved with Olive at the "
502+"moment. Content conflicts, on the structure of the tree, need to be resolved "
503+"using the command line."
504+msgstr ""
505+
506+#. View menu
507+#: ../diff.py:445
508+msgid "_View"
509+msgstr ""
510+
511+#: ../diff.py:447
512+msgid "Wrap _Long Lines"
513+msgstr ""
514+
515+#. No conflicts found.
516+#: ../diff.py:492 ../merge.py:146
517+msgid "Merge successful"
518+msgstr ""
519+
520+#: ../diff.py:493 ../merge.py:147
521+msgid "All changes applied successfully."
522+msgstr ""
523+
524+#. There are conflicts to be resolved.
525+#: ../diff.py:496 ../merge.py:150
526+msgid "Conflicts encountered"
527+msgstr ""
528+
529+#: ../diff.py:497 ../merge.py:151
530+msgid "Please resolve the conflicts manually before committing."
531+msgstr ""
532+
533+#: ../errors.py:28
534+msgid "Directory is not a branch"
535+msgstr ""
536+
537+#: ../errors.py:29
538+msgid "You can perform this action only in a branch."
539+msgstr ""
540+
541+#: ../errors.py:31
542+msgid "Directory is not a checkout"
543+msgstr ""
544+
545+#: ../errors.py:32
546+msgid "You can perform local commit only on checkouts."
547+msgstr ""
548+
549+#: ../errors.py:34
550+msgid "No changes to commit"
551+msgstr ""
552+
553+#: ../errors.py:35
554+msgid "Try force commit if you want to commit anyway."
555+msgstr ""
556+
557+#: ../errors.py:37
558+msgid "No changes to merge"
559+msgstr ""
560+
561+#: ../errors.py:38
562+msgid "Merge location is already fully merged in working tree."
563+msgstr ""
564+
565+#: ../errors.py:40
566+msgid "Conflicts in tree"
567+msgstr ""
568+
569+#: ../errors.py:41
570+msgid "You need to resolve the conflicts before committing."
571+msgstr ""
572+
573+#: ../errors.py:43
574+msgid "Strict commit failed"
575+msgstr ""
576+
577+#: ../errors.py:44
578+msgid ""
579+"There are unknown files in the working tree.\n"
580+"Please add or delete them."
581+msgstr ""
582+
583+#: ../errors.py:46
584+msgid "Bound branch is out of date"
585+msgstr ""
586+
587+#. FIXME: Really ? Internationalizing %s ?? --vila080505
588+#: ../errors.py:48
589+#, python-format
590+msgid "%s"
591+msgstr ""
592+
593+#: ../errors.py:50
594+msgid "File not versioned"
595+msgstr ""
596+
597+#: ../errors.py:51
598+msgid "The selected file is not versioned."
599+msgstr ""
600+
601+#: ../errors.py:53 ../push.py:99
602+msgid "Branches have been diverged"
603+msgstr ""
604+
605+#: ../errors.py:54
606+msgid ""
607+"You cannot push if branches have diverged. Use the\n"
608+"overwrite option if you want to push anyway."
609+msgstr ""
610+
611+#: ../errors.py:56
612+msgid "No diff output"
613+msgstr ""
614+
615+#: ../errors.py:57
616+msgid "The selected file hasn't changed."
617+msgstr ""
618+
619+#: ../errors.py:59
620+msgid "No such revision"
621+msgstr ""
622+
623+#: ../errors.py:60
624+msgid "The revision you specified doesn't exist."
625+msgstr ""
626+
627+#: ../errors.py:62
628+msgid "Target already exists"
629+msgstr ""
630+
631+#: ../errors.py:63
632+msgid "Target directory already exists. Please select another target."
633+msgstr ""
634+
635+#: ../errors.py:65
636+msgid "Directory is already a branch"
637+msgstr ""
638+
639+#: ../errors.py:66
640+#, python-format
641+msgid ""
642+"The current directory (%s) is already a branch.\n"
643+"You can start using it, or initialize another directory."
644+msgstr ""
645+
646+#: ../errors.py:68
647+msgid "Branch without a working tree"
648+msgstr ""
649+
650+#: ../errors.py:69
651+#, python-format
652+msgid ""
653+"The current directory (%s)\n"
654+"is a branch without a working tree."
655+msgstr ""
656+
657+#: ../errors.py:71
658+msgid "Unknown bzr error"
659+msgstr ""
660+
661+#: ../errors.py:73
662+msgid "Permission denied"
663+msgstr ""
664+
665+#: ../errors.py:73
666+msgid "permission denied."
667+msgstr ""
668+
669+#: ../errors.py:75
670+msgid "Unknown error"
671+msgstr ""
672+
673+#. Create the widgets
674+#: ../initialize.py:48
675+msgid "_Initialize"
676+msgstr ""
677+
678+#: ../initialize.py:49
679+msgid "Which directory do you want to initialize?"
680+msgstr ""
681+
682+#: ../initialize.py:50
683+msgid "Current directory"
684+msgstr ""
685+
686+#: ../initialize.py:51
687+msgid "Create a new directory with the name:"
688+msgstr ""
689+
690+#: ../initialize.py:86
691+msgid "Directory name not specified"
692+msgstr ""
693+
694+#: ../initialize.py:87
695+msgid "You should specify a new directory name."
696+msgstr ""
697+
698+#: ../loom.py:53
699+msgid "Upgrade to Loom branch?"
700+msgstr ""
701+
702+#: ../loom.py:54
703+msgid "Branch is not a loom branch. Upgrade to Loom format?"
704+msgstr ""
705+
706+#: ../merge.py:54
707+msgid "Merge from"
708+msgstr ""
709+
710+#: ../merge.py:56
711+msgid "Folder"
712+msgstr ""
713+
714+#: ../merge.py:56
715+msgid "Custom Location"
716+msgstr ""
717+
718+#: ../merge.py:59
719+msgid "_Merge"
720+msgstr ""
721+
722+#: ../merge.py:132
723+msgid "Branch not given"
724+msgstr ""
725+
726+#: ../merge.py:133
727+msgid "Please specify a branch to merge from."
728+msgstr ""
729+
730+#: ../merge.py:141
731+msgid "Bazaar command error"
732+msgstr ""
733+
734+#. Create the widgets
735+#: ../push.py:51
736+msgid "Location:"
737+msgstr ""
738+
739+#: ../push.py:53
740+msgid "_Push"
741+msgstr ""
742+
743+#: ../push.py:100
744+msgid ""
745+"You cannot push if branches have diverged.\n"
746+"Overwrite?"
747+msgstr ""
748+
749+#: ../push.py:108
750+msgid "Push successful"
751+msgstr ""
752+
753+#: ../push.py:109
754+#, python-format
755+msgid "%d revision(s) pushed."
756+msgstr ""
757+
758+#: ../push.py:142
759+msgid "Non existing parent directory"
760+msgstr ""
761+
762+#: ../push.py:143
763+#, python-format
764+msgid ""
765+"The parent directory (%s)\n"
766+"doesn't exist. Create?"
767+msgstr ""
768+
769+#. Create the widgets
770+#: ../revbrowser.py:45
771+msgid "_Select"
772+msgstr ""
773+
774+#: ../search.py:44
775+msgid "Search for:"
776+msgstr ""
777+
778+#: ../search.py:56
779+msgid "Document"
780+msgstr ""
781+
782+#: ../status.py:94
783+msgid "Added"
784+msgstr ""
785+
786+#: ../status.py:100
787+msgid "Removed"
788+msgstr ""
789+
790+#: ../status.py:106
791+msgid "Renamed"
792+msgstr ""
793+
794+#: ../status.py:113
795+msgid "Modified"
796+msgstr ""
797+
798+#: ../status.py:121
799+msgid "Unknown"
800+msgstr ""
801+
802+#: ../status.py:126
803+msgid "No changes."
804+msgstr ""
805+
806+#. Set properties
807+#: ../tags.py:66
808+msgid "Tags"
809+msgstr ""
810+
811+#: ../tags.py:110
812+msgid "Tag Name"
813+msgstr ""
814+
815+#: ../tags.py:115
816+msgid "Revision ID"
817+msgstr ""
818+
819+#: ../tags.py:150
820+msgid "Tags are not supported by this branch format. Please upgrade."
821+msgstr ""
822+
823+#: ../tags.py:156
824+msgid "No tagged revisions in the branch."
825+msgstr ""
826+
827+#: ../tags.py:231
828+msgid "_Remove tag"
829+msgstr ""
830+
831+#: ../tags.py:241
832+msgid "<b><big>Remove tag?</big></b>"
833+msgstr ""
834+
835+#: ../tags.py:243
836+#, python-format
837+msgid "Are you sure you want to remove the tag: <b>%s</b>?"
838+msgstr ""
839+
840+#. Create the widgets
841+#: ../tags.py:288
842+msgid "_Add tag"
843+msgstr ""
844+
845+#: ../tags.py:290
846+msgid "Tag Name:"
847+msgstr ""
848+
849+#: ../tags.py:291
850+msgid "Revision ID:"
851+msgstr ""
852+
853+#: ../tags.py:322
854+msgid "No tag name specified"
855+msgstr ""
856+
857+#: ../tags.py:323
858+msgid "You have to specify the tag's desired name."
859+msgstr ""
860
861=== removed file 'po/olive-gtk.pot'
862--- po/olive-gtk.pot 2008-05-05 18:16:46 +0000
863+++ po/olive-gtk.pot 1970-01-01 00:00:00 +0000
864@@ -1,1463 +0,0 @@
865-# SOME DESCRIPTIVE TITLE.
866-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
867-# This file is distributed under the same license as the PACKAGE package.
868-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
869-#
870-#, fuzzy
871-msgid ""
872-msgstr ""
873-"Project-Id-Version: PACKAGE VERSION\n"
874-"Report-Msgid-Bugs-To: \n"
875-"POT-Creation-Date: 2008-05-05 20:10+0200\n"
876-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
877-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
878-"Language-Team: LANGUAGE <LL@li.org>\n"
879-"MIME-Version: 1.0\n"
880-"Content-Type: text/plain; charset=CHARSET\n"
881-"Content-Transfer-Encoding: 8bit\n"
882-
883-#: branch.py:52 olive.glade:151 olive.glade:167
884-msgid "_Branch"
885-msgstr ""
886-
887-#: branch.py:55 checkout.py:53 branch.py:60 checkout.py:54
888-msgid "Please select a folder"
889-msgstr ""
890-
891-#: branch.py:57 checkout.py:55 branch.py:55 checkout.py:56
892-msgid "Branch location:"
893-msgstr ""
894-
895-#: branch.py:58 checkout.py:56 branch.py:57 checkout.py:57
896-msgid "Destination:"
897-msgstr ""
898-
899-#: branch.py:59 checkout.py:57 branch.py:58 checkout.py:58
900-msgid "Branck nick:"
901-msgstr ""
902-
903-#: branch.py:60 checkout.py:58 branch.py:59 checkout.py:59
904-msgid "Revision:"
905-msgstr ""
906-
907-#: branch.py:162 checkout.py:163 branch.py:140 checkout.py:164
908-msgid "Missing branch location"
909-msgstr ""
910-
911-#: branch.py:163 checkout.py:164 branch.py:141 checkout.py:165
912-msgid "You must specify a branch location."
913-msgstr ""
914-
915-#: branch.py:205 branch.py:182
916-msgid "Branching successful"
917-msgstr ""
918-
919-#: branch.py:206 branch.py:183
920-#, python-format
921-msgid "%d revision(s) branched."
922-msgstr ""
923-
924-#: branch.py:214 checkout.py:195 branch.py:191 checkout.py:196
925-msgid "N/A"
926-msgstr ""
927-
928-#: checkout.py:50 checkout.py:51
929-msgid "Check_out"
930-msgstr ""
931-
932-#: checkout.py:62 checkout.py:63
933-msgid "_Lightweight checkout"
934-msgstr ""
935-
936-#: commit.py:68 __init__.py:362
937-msgid "Directory does not have a working tree"
938-msgstr ""
939-
940-#: commit.py:69 __init__.py:363
941-msgid "Operation aborted."
942-msgstr ""
943-
944-#: commit.py:74 errors.py:26 add.py:76 add.py:86 info.py:556 olive/add.py:76
945-#: olive/add.py:86 olive/info.py:556 errors.py:28 olive/add.py:77
946-#: olive/add.py:87 olive/info.py:557
947-msgid "Directory is not a branch"
948-msgstr ""
949-
950-#: commit.py:75 errors.py:27 add.py:77 add.py:87 info.py:557 olive/add.py:77
951-#: olive/add.py:87 olive/info.py:557 errors.py:29 olive/add.py:78
952-#: olive/add.py:88 olive/info.py:558
953-msgid "You can perform this action only in a branch."
954-msgstr ""
955-
956-#: commit.py:88 commit.py:337 commit.py:338
957-msgid "Comm_it"
958-msgstr ""
959-
960-#: commit.py:89
961-msgid "File(s) to commit"
962-msgstr ""
963-
964-#: commit.py:95
965-msgid "Commit message:"
966-msgstr ""
967-
968-#: commit.py:99
969-msgid "Pending merges"
970-msgstr ""
971-
972-#: commit.py:147 commit.py:310 commit.py:311
973-msgid "_Only commit locally"
974-msgstr ""
975-
976-#: commit.py:215 commit.py:650 commit.py:652
977-msgid "Commit with an empty message?"
978-msgstr ""
979-
980-#: commit.py:216 commit.py:651 commit.py:653
981-msgid "You can describe your commit intent in the message."
982-msgstr ""
983-
984-#: commit.py:228 commit.py:670 commit.py:672
985-msgid "Commit with unknowns?"
986-msgstr ""
987-
988-#: commit.py:229 commit.py:671 commit.py:673
989-msgid "Unknown files exist in the working tree. Commit anyway?"
990-msgstr ""
991-
992-#: commit.py:240 commit.py:689 commit.py:691
993-msgid "Commit with no changes?"
994-msgstr ""
995-
996-#: commit.py:241
997-msgid "There are no changes in the working tree."
998-msgstr ""
999-
1000-#: commit.py:323 menu.py:87 commit.py:415 olive/menu.py:86 commit.py:416
1001-#: olive/menu.py:87
1002-msgid "Commit"
1003-msgstr ""
1004-
1005-#: commit.py:325 conflicts.py:108 commit.py:419 conflicts.py:109 commit.py:420
1006-#: conflicts.py:110
1007-msgid "Path"
1008-msgstr ""
1009-
1010-#: commit.py:327 conflicts.py:110 commit.py:421 conflicts.py:111 commit.py:422
1011-#: conflicts.py:112
1012-msgid "Type"
1013-msgstr ""
1014-
1015-#: commit.py:334 commit.py:336 commit.py:338 __init__.py:940 __init__.py:1227
1016-#: commit.py:167 olive/__init__.py:1053 olive/__init__.py:1358 commit.py:168
1017-#: olive/__init__.py:1054 olive/__init__.py:1359
1018-msgid "added"
1019-msgstr ""
1020-
1021-#: commit.py:344 commit.py:346 commit.py:348 __init__.py:938 __init__.py:1225
1022-#: commit.py:168 olive/__init__.py:1051 olive/__init__.py:1356 commit.py:169
1023-#: olive/__init__.py:1052 olive/__init__.py:1357
1024-msgid "removed"
1025-msgstr ""
1026-
1027-#: commit.py:353 commit.py:170 commit.py:171
1028-msgid "renamed and modified"
1029-msgstr ""
1030-
1031-#: commit.py:355 __init__.py:936 __init__.py:1223 commit.py:169
1032-#: olive/__init__.py:1049 olive/__init__.py:1354 commit.py:170
1033-#: olive/__init__.py:1050 olive/__init__.py:1355
1034-msgid "renamed"
1035-msgstr ""
1036-
1037-#: commit.py:380 commit.py:382 commit.py:384 __init__.py:942 __init__.py:1229
1038-#: commit.py:171 olive/__init__.py:1055 olive/__init__.py:1360 commit.py:172
1039-#: olive/__init__.py:1056 olive/__init__.py:1361
1040-msgid "modified"
1041-msgstr ""
1042-
1043-#: commit.py:395 commit.py:480 commit.py:481
1044-msgid "Date"
1045-msgstr ""
1046-
1047-#: commit.py:397 revbrowser.py:68 commit.py:482 commit.py:483
1048-msgid "Committer"
1049-msgstr ""
1050-
1051-#: commit.py:399 revbrowser.py:66 commit.py:484 commit.py:485
1052-msgid "Summary"
1053-msgstr ""
1054-
1055-#: conflicts.py:48 conflicts.py:49
1056-msgid "External utility:"
1057-msgstr ""
1058-
1059-#: conflicts.py:99 conflicts.py:100
1060-msgid "Conflicts"
1061-msgstr ""
1062-
1063-#: conflicts.py:102 conflicts.py:103
1064-msgid "No conflicts in working tree."
1065-msgstr ""
1066-
1067-#: conflicts.py:115 conflicts.py:116 conflicts.py:117
1068-msgid "path conflict"
1069-msgstr ""
1070-
1071-#: conflicts.py:117 conflicts.py:118 conflicts.py:119
1072-msgid "contents conflict"
1073-msgstr ""
1074-
1075-#: conflicts.py:119 conflicts.py:120 conflicts.py:121
1076-msgid "text conflict"
1077-msgstr ""
1078-
1079-#: conflicts.py:121 conflicts.py:122 conflicts.py:123
1080-msgid "duplicate id"
1081-msgstr ""
1082-
1083-#: conflicts.py:123 conflicts.py:124 conflicts.py:125
1084-msgid "duplicate"
1085-msgstr ""
1086-
1087-#: conflicts.py:125 conflicts.py:126 conflicts.py:127
1088-msgid "parent loop"
1089-msgstr ""
1090-
1091-#: conflicts.py:127 conflicts.py:128 conflicts.py:129
1092-msgid "unversioned parent"
1093-msgstr ""
1094-
1095-#: conflicts.py:129 conflicts.py:130 conflicts.py:131
1096-msgid "missing parent"
1097-msgstr ""
1098-
1099-#: conflicts.py:131 conflicts.py:132 conflicts.py:133
1100-msgid "deleting parent"
1101-msgstr ""
1102-
1103-#: conflicts.py:133 conflicts.py:134 conflicts.py:135
1104-msgid "unknown type of conflict"
1105-msgstr ""
1106-
1107-#: conflicts.py:162 __init__.py:614 add.py:67 menu.py:178 menu.py:191
1108-#: menu.py:218 menu.py:254 move.py:79 remove.py:67 remove.py:129 rename.py:70
1109-#: conflicts.py:163 olive/__init__.py:687 olive/add.py:67 olive/menu.py:177
1110-#: olive/menu.py:190 olive/menu.py:217 olive/menu.py:253 olive/move.py:79
1111-#: olive/remove.py:67 olive/remove.py:129 olive/rename.py:70 conflicts.py:164
1112-#: olive/__init__.py:688 olive/add.py:68 olive/menu.py:178 olive/menu.py:191
1113-#: olive/menu.py:218 olive/menu.py:254 olive/move.py:80 olive/remove.py:68
1114-#: olive/remove.py:130 olive/rename.py:71
1115-msgid "No file was selected"
1116-msgstr ""
1117-
1118-#: conflicts.py:163 __init__.py:615 menu.py:192 conflicts.py:164
1119-#: olive/__init__.py:688 olive/menu.py:191 conflicts.py:165
1120-#: olive/__init__.py:689 olive/menu.py:192
1121-msgid "Please select a file from the list."
1122-msgstr ""
1123-
1124-#: conflicts.py:173 conflicts.py:174 conflicts.py:175
1125-msgid "Call to external utility failed"
1126-msgstr ""
1127-
1128-#: conflicts.py:175 conflicts.py:176 conflicts.py:177
1129-msgid "Cannot resolve conflict"
1130-msgstr ""
1131-
1132-#: conflicts.py:176 conflicts.py:177 conflicts.py:178
1133-msgid ""
1134-"Only conflicts on the text of files can be resolved with Olive at the "
1135-"moment. Content conflicts, on the structure of the tree, need to be resolved "
1136-"using the command line."
1137-msgstr ""
1138-
1139-#: errors.py:29 errors.py:31
1140-msgid "Directory is not a checkout"
1141-msgstr ""
1142-
1143-#: errors.py:30 errors.py:32
1144-msgid "You can perform local commit only on checkouts."
1145-msgstr ""
1146-
1147-#: errors.py:32 errors.py:34
1148-msgid "No changes to commit"
1149-msgstr ""
1150-
1151-#: errors.py:33 errors.py:35
1152-msgid "Try force commit if you want to commit anyway."
1153-msgstr ""
1154-
1155-#: errors.py:35 errors.py:37
1156-msgid "Conflicts in tree"
1157-msgstr ""
1158-
1159-#: errors.py:36 errors.py:38
1160-msgid "You need to resolve the conflicts before committing."
1161-msgstr ""
1162-
1163-#: errors.py:38 errors.py:40
1164-msgid "Strict commit failed"
1165-msgstr ""
1166-
1167-#: errors.py:39 errors.py:41
1168-msgid ""
1169-"There are unknown files in the working tree.\n"
1170-"Please add or delete them."
1171-msgstr ""
1172-
1173-#: errors.py:41 errors.py:43
1174-msgid "Bound branch is out of date"
1175-msgstr ""
1176-
1177-#: errors.py:42 errors.py:45
1178-#, python-format
1179-msgid "%s"
1180-msgstr ""
1181-
1182-#: errors.py:44 errors.py:47
1183-msgid "File not versioned"
1184-msgstr ""
1185-
1186-#: errors.py:45 errors.py:48
1187-msgid "The selected file is not versioned."
1188-msgstr ""
1189-
1190-#: errors.py:47 push.py:105 errors.py:50 push.py:106
1191-msgid "Branches have been diverged"
1192-msgstr ""
1193-
1194-#: errors.py:48 errors.py:51
1195-msgid ""
1196-"You cannot push if branches have diverged. Use the\n"
1197-"overwrite option if you want to push anyway."
1198-msgstr ""
1199-
1200-#: errors.py:50 errors.py:53
1201-msgid "No diff output"
1202-msgstr ""
1203-
1204-#: errors.py:51 errors.py:54
1205-msgid "The selected file hasn't changed."
1206-msgstr ""
1207-
1208-#: errors.py:53 errors.py:56
1209-msgid "No such revision"
1210-msgstr ""
1211-
1212-#: errors.py:54 errors.py:57
1213-msgid "The revision you specified doesn't exist."
1214-msgstr ""
1215-
1216-#: errors.py:56 errors.py:59
1217-msgid "Target already exists"
1218-msgstr ""
1219-
1220-#: errors.py:57 errors.py:60
1221-msgid "Target directory already exists. Please select another target."
1222-msgstr ""
1223-
1224-#: errors.py:59 errors.py:62
1225-msgid "Directory is already a branch"
1226-msgstr ""
1227-
1228-#: errors.py:60 errors.py:63
1229-#, python-format
1230-msgid ""
1231-"The current directory (%s) is already a branch.\n"
1232-"You can start using it, or initialize another directory."
1233-msgstr ""
1234-
1235-#: errors.py:62 errors.py:65
1236-msgid "Branch without a working tree"
1237-msgstr ""
1238-
1239-#: errors.py:63 errors.py:66
1240-#, python-format
1241-msgid ""
1242-"The current directory (%s)\n"
1243-"is a branch without a working tree."
1244-msgstr ""
1245-
1246-#: errors.py:65 errors.py:68
1247-msgid "Unknown bzr error"
1248-msgstr ""
1249-
1250-#: errors.py:67 errors.py:70
1251-msgid "Permission denied"
1252-msgstr ""
1253-
1254-#: errors.py:67 errors.py:70
1255-msgid "permission denied."
1256-msgstr ""
1257-
1258-#: errors.py:69 errors.py:72
1259-msgid "Unknown error"
1260-msgstr ""
1261-
1262-#: initialize.py:47 initialize.py:48
1263-msgid "_Initialize"
1264-msgstr ""
1265-
1266-#: initialize.py:48 initialize.py:49
1267-msgid "Which directory do you want to initialize?"
1268-msgstr ""
1269-
1270-#: initialize.py:49 initialize.py:50
1271-msgid "Current directory"
1272-msgstr ""
1273-
1274-#: initialize.py:50 initialize.py:51
1275-msgid "Create a new directory with the name:"
1276-msgstr ""
1277-
1278-#: initialize.py:85 initialize.py:86
1279-msgid "Directory name not specified"
1280-msgstr ""
1281-
1282-#: initialize.py:86 initialize.py:87
1283-msgid "You should specify a new directory name."
1284-msgstr ""
1285-
1286-#: merge.py:66 merge.py:68 merge.py:69
1287-msgid "Branch not given"
1288-msgstr ""
1289-
1290-#: merge.py:67 merge.py:69 merge.py:70
1291-msgid "Please specify a branch to merge from."
1292-msgstr ""
1293-
1294-#: merge.py:75 merge.py:77 merge.py:78
1295-msgid "Bazaar command error"
1296-msgstr ""
1297-
1298-#: merge.py:81 diff.py:513 merge.py:83 diff.py:514 merge.py:84
1299-msgid "Merge successful"
1300-msgstr ""
1301-
1302-#: merge.py:82 diff.py:514 merge.py:84 diff.py:515 merge.py:85
1303-msgid "All changes applied successfully."
1304-msgstr ""
1305-
1306-#: merge.py:85 diff.py:517 merge.py:87 diff.py:518 merge.py:88
1307-msgid "Conflicts encountered"
1308-msgstr ""
1309-
1310-#: merge.py:86 diff.py:518 merge.py:88 diff.py:519 merge.py:89
1311-msgid "Please resolve the conflicts manually before committing."
1312-msgstr ""
1313-
1314-#: push.py:52 bookmark.py:45 olive/bookmark.py:45 push.py:53
1315-#: olive/bookmark.py:46
1316-msgid "Location:"
1317-msgstr ""
1318-
1319-#: push.py:54 push.py:55
1320-msgid "_Push"
1321-msgstr ""
1322-
1323-#: push.py:97 push.py:98
1324-msgid "Set default push location"
1325-msgstr ""
1326-
1327-#: push.py:98 push.py:99
1328-#, python-format
1329-msgid ""
1330-"There is no default push location set.\n"
1331-"Set %r as default now?"
1332-msgstr ""
1333-
1334-#: push.py:106 push.py:107
1335-msgid ""
1336-"You cannot push if branches have diverged.\n"
1337-"Overwrite?"
1338-msgstr ""
1339-
1340-#: push.py:112 push.py:111
1341-msgid "Push successful"
1342-msgstr ""
1343-
1344-#: push.py:113 push.py:112
1345-#, python-format
1346-msgid "%d revision(s) pushed."
1347-msgstr ""
1348-
1349-#: push.py:146 push.py:145
1350-msgid "Non existing parent directory"
1351-msgstr ""
1352-
1353-#: push.py:147 push.py:146
1354-#, python-format
1355-msgid ""
1356-"The parent directory (%s)\n"
1357-"doesn't exist. Create?"
1358-msgstr ""
1359-
1360-#: revbrowser.py:45
1361-msgid "Please wait, revisions are being loaded..."
1362-msgstr ""
1363-
1364-#: revbrowser.py:48 revbrowser.py:44 revbrowser.py:45
1365-msgid "_Select"
1366-msgstr ""
1367-
1368-#: revbrowser.py:64
1369-msgid "Revno"
1370-msgstr ""
1371-
1372-#: revbrowser.py:70
1373-msgid "Time"
1374-msgstr ""
1375-
1376-#: status.py:78 status.py:82 status.py:84
1377-msgid "Added"
1378-msgstr ""
1379-
1380-#: status.py:84 status.py:88 status.py:90
1381-msgid "Removed"
1382-msgstr ""
1383-
1384-#: status.py:90 status.py:94 status.py:96
1385-msgid "Renamed"
1386-msgstr ""
1387-
1388-#: status.py:97 status.py:101 status.py:103
1389-msgid "Modified"
1390-msgstr ""
1391-
1392-#: status.py:105 status.py:109 status.py:111
1393-msgid "Unknown"
1394-msgstr ""
1395-
1396-#: status.py:110 status.py:114 status.py:116
1397-msgid "No changes."
1398-msgstr ""
1399-
1400-#: tags.py:67 tags.py:65 tags.py:66
1401-msgid "Tags"
1402-msgstr ""
1403-
1404-#: tags.py:111 tags.py:109 tags.py:110
1405-msgid "Tag Name"
1406-msgstr ""
1407-
1408-#: tags.py:116 tags.py:114 tags.py:115
1409-msgid "Revision ID"
1410-msgstr ""
1411-
1412-#: tags.py:151 tags.py:149 tags.py:150
1413-msgid "Tags are not supported by this branch format. Please upgrade."
1414-msgstr ""
1415-
1416-#: tags.py:157 tags.py:155 tags.py:156
1417-msgid "No tagged revisions in the branch."
1418-msgstr ""
1419-
1420-#: tags.py:232 tags.py:230 tags.py:231
1421-msgid "_Remove tag"
1422-msgstr ""
1423-
1424-#: tags.py:242 tags.py:240 tags.py:241
1425-msgid "<b><big>Remove tag?</big></b>"
1426-msgstr ""
1427-
1428-#: tags.py:244 tags.py:242 tags.py:243
1429-#, python-format
1430-msgid "Are you sure you want to remove the tag: <b>%s</b>?"
1431-msgstr ""
1432-
1433-#: tags.py:289 tags.py:287 tags.py:288
1434-msgid "_Add tag"
1435-msgstr ""
1436-
1437-#: tags.py:291 tags.py:289 tags.py:290
1438-msgid "Tag Name:"
1439-msgstr ""
1440-
1441-#: tags.py:292 tags.py:290 tags.py:291
1442-msgid "Revision ID:"
1443-msgstr ""
1444-
1445-#: tags.py:323 tags.py:321 tags.py:322
1446-msgid "No tag name specified"
1447-msgstr ""
1448-
1449-#: tags.py:324 tags.py:322 tags.py:323
1450-msgid "You have to specify the tag's desired name."
1451-msgstr ""
1452-
1453-#: __init__.py:512 olive/__init__.py:539 olive/__init__.py:540
1454-msgid "There are local changes in the branch"
1455-msgstr ""
1456-
1457-#: __init__.py:513 olive/__init__.py:540 olive/__init__.py:541
1458-msgid "Please commit or revert the changes before merging."
1459-msgstr ""
1460-
1461-#: __init__.py:525 __init__.py:550 olive/__init__.py:555 olive/__init__.py:612
1462-#: olive/__init__.py:556 olive/__init__.py:613
1463-msgid "Parent location is unknown"
1464-msgstr ""
1465-
1466-#: __init__.py:526 olive/__init__.py:556 olive/__init__.py:557
1467-msgid "Cannot determine missing revisions if no parent location is known."
1468-msgstr ""
1469-
1470-#: __init__.py:537 olive/__init__.py:599 olive/__init__.py:600
1471-msgid "There are missing revisions"
1472-msgstr ""
1473-
1474-#: __init__.py:538
1475-#, python-format
1476-msgid "%d revision(s) missing."
1477-msgstr ""
1478-
1479-#: __init__.py:540 olive/__init__.py:602 olive/__init__.py:603
1480-msgid "Local branch up to date"
1481-msgstr ""
1482-
1483-#: __init__.py:541 olive/__init__.py:603 olive/__init__.py:604
1484-msgid "There are no missing revisions."
1485-msgstr ""
1486-
1487-#: __init__.py:551 olive/__init__.py:613 olive/__init__.py:614
1488-msgid "Pulling is not possible until there is a parent location."
1489-msgstr ""
1490-
1491-#: __init__.py:561 olive/__init__.py:623 olive/__init__.py:624
1492-msgid "Pull successful"
1493-msgstr ""
1494-
1495-#: __init__.py:561 olive/__init__.py:623 olive/__init__.py:624
1496-#, python-format
1497-msgid "%d revision(s) pulled."
1498-msgstr ""
1499-
1500-#: __init__.py:575 menu.py:275 olive/__init__.py:648 olive/menu.py:274
1501-#: olive/__init__.py:649 olive/menu.py:275
1502-msgid "Conflicts detected"
1503-msgstr ""
1504-
1505-#: __init__.py:576 menu.py:276 olive/__init__.py:649 olive/menu.py:275
1506-#: olive/__init__.py:650 olive/menu.py:276
1507-msgid "Please have a look at the working tree before continuing."
1508-msgstr ""
1509-
1510-#: __init__.py:578 menu.py:278 olive/__init__.py:651 olive/menu.py:277
1511-#: olive/__init__.py:652 olive/menu.py:278
1512-msgid "Revert successful"
1513-msgstr ""
1514-
1515-#: __init__.py:579 menu.py:279 olive/__init__.py:652 olive/menu.py:278
1516-#: olive/__init__.py:653 olive/menu.py:279
1517-msgid "All files reverted to last revision."
1518-msgstr ""
1519-
1520-#: __init__.py:835 __init__.py:1117 olive/__init__.py:942
1521-#: olive/__init__.py:1240 olive/__init__.py:943 olive/__init__.py:1241
1522-msgid "Bookmarks"
1523-msgstr ""
1524-
1525-#: __init__.py:842 menu.py:99 olive/__init__.py:949 olive/menu.py:98
1526-#: olive/__init__.py:950 olive/menu.py:99
1527-msgid "Bookmark"
1528-msgstr ""
1529-
1530-#: __init__.py:944 __init__.py:1231 olive/__init__.py:1057
1531-#: olive/__init__.py:1362 olive/__init__.py:1058 olive/__init__.py:1363
1532-msgid "unchanged"
1533-msgstr ""
1534-
1535-#: __init__.py:946 __init__.py:1233 olive/__init__.py:1059
1536-#: olive/__init__.py:1364 olive/__init__.py:1060 olive/__init__.py:1365
1537-msgid "ignored"
1538-msgstr ""
1539-
1540-#: __init__.py:948 __init__.py:1235 olive/__init__.py:1061
1541-#: olive/__init__.py:1368 olive/__init__.py:1062 olive/__init__.py:1369
1542-msgid "unknown"
1543-msgstr ""
1544-
1545-#: __init__.py:964 olive/__init__.py:1083 olive/__init__.py:1084
1546-msgid "Filename"
1547-msgstr ""
1548-
1549-#: __init__.py:965 olive/__init__.py:1084 olive/__init__.py:1085
1550-msgid "Status"
1551-msgstr ""
1552-
1553-#: __init__.py:966 olive/__init__.py:1085 olive/__init__.py:1086
1554-msgid "Size"
1555-msgstr ""
1556-
1557-#: __init__.py:967 olive/__init__.py:1086 olive/__init__.py:1087
1558-msgid "Last modified"
1559-msgstr ""
1560-
1561-#: add.py:68 menu.py:179 menu.py:219 menu.py:255 remove.py:68 remove.py:130
1562-#: olive/add.py:68 olive/menu.py:178 olive/menu.py:218 olive/menu.py:254
1563-#: olive/remove.py:68 olive/remove.py:130 olive/add.py:69 olive/menu.py:179
1564-#: olive/menu.py:219 olive/menu.py:255 olive/remove.py:69 olive/remove.py:131
1565-msgid ""
1566-"Please select a file from the list,\n"
1567-"or choose the other option."
1568-msgstr ""
1569-
1570-#: bookmark.py:46 olive/bookmark.py:46 olive/bookmark.py:47
1571-msgid "Title:"
1572-msgstr ""
1573-
1574-#: bookmark.py:81 olive/bookmark.py:81 olive/bookmark.py:82
1575-msgid "No title given"
1576-msgstr ""
1577-
1578-#: bookmark.py:82 olive/bookmark.py:82 olive/bookmark.py:83
1579-msgid "Please specify a title to continue."
1580-msgstr ""
1581-
1582-#: guifiles.py:45 olive/guifiles.py:47 olive/guifiles.py:48
1583-msgid "Glade file cannot be found."
1584-msgstr ""
1585-
1586-#: guifiles.py:55 olive/guifiles.py:57 olive/guifiles.py:58
1587-msgid "UI description file cannot be found."
1588-msgstr ""
1589-
1590-#: menu.py:63 olive/menu.py:62 olive/menu.py:63
1591-msgid "Add"
1592-msgstr ""
1593-
1594-#: menu.py:64 olive/menu.py:63 olive/menu.py:64
1595-msgid "Add the selected file"
1596-msgstr ""
1597-
1598-#: menu.py:67 menu.py:107 olive/menu.py:66 olive/menu.py:106 olive/menu.py:67
1599-#: olive/menu.py:107
1600-msgid "Remove"
1601-msgstr ""
1602-
1603-#: menu.py:68 olive/menu.py:67 olive/menu.py:68
1604-msgid "Remove the selected file"
1605-msgstr ""
1606-
1607-#: menu.py:71 olive/menu.py:70 olive/menu.py:71
1608-msgid "Remove and delete"
1609-msgstr ""
1610-
1611-#: menu.py:72 olive/menu.py:71 olive/menu.py:72
1612-msgid "Remove the selected file/dir and delete from disk"
1613-msgstr ""
1614-
1615-#: menu.py:75 olive/menu.py:74 olive/menu.py:75
1616-msgid "Rename"
1617-msgstr ""
1618-
1619-#: menu.py:76 olive/menu.py:75 olive/menu.py:76
1620-msgid "Rename the selected file"
1621-msgstr ""
1622-
1623-#: menu.py:79 olive/menu.py:78 olive/menu.py:79
1624-msgid "Open"
1625-msgstr ""
1626-
1627-#: menu.py:80 olive/menu.py:79 olive/menu.py:80
1628-msgid "Open the selected file"
1629-msgstr ""
1630-
1631-#: menu.py:83 olive/menu.py:82 olive/menu.py:83
1632-msgid "Revert"
1633-msgstr ""
1634-
1635-#: menu.py:84 olive/menu.py:83 olive/menu.py:84
1636-msgid "Revert the changes"
1637-msgstr ""
1638-
1639-#: menu.py:88 olive/menu.py:87 olive/menu.py:88
1640-msgid "Commit the changes"
1641-msgstr ""
1642-
1643-#: menu.py:91 olive/menu.py:90 olive/menu.py:91
1644-msgid "Annotate"
1645-msgstr ""
1646-
1647-#: menu.py:92 olive/menu.py:91 olive/menu.py:92
1648-msgid "Annotate the selected file"
1649-msgstr ""
1650-
1651-#: menu.py:95 olive/menu.py:94 olive/menu.py:95
1652-msgid "Diff"
1653-msgstr ""
1654-
1655-#: menu.py:96 olive/menu.py:95 olive/menu.py:96
1656-msgid "Show the diff of the file"
1657-msgstr ""
1658-
1659-#: menu.py:100 olive/menu.py:99 olive/menu.py:100
1660-msgid "Bookmark current location"
1661-msgstr ""
1662-
1663-#: menu.py:103 olive/menu.py:102 olive/menu.py:103
1664-msgid "Edit"
1665-msgstr ""
1666-
1667-#: menu.py:104 olive/menu.py:103 olive/menu.py:104
1668-msgid "Edit the selected bookmark"
1669-msgstr ""
1670-
1671-#: menu.py:108 olive/menu.py:107 olive/menu.py:108
1672-msgid "Remove the selected bookmark"
1673-msgstr ""
1674-
1675-#: menu.py:111 olive/menu.py:110 olive/menu.py:111
1676-msgid "Open Folder"
1677-msgstr ""
1678-
1679-#: menu.py:112 olive/menu.py:111 olive/menu.py:112
1680-msgid "Open bookmark folder in Nautilus"
1681-msgstr ""
1682-
1683-#: menu.py:115 olive/menu.py:114 olive/menu.py:115
1684-msgid "Selected..."
1685-msgstr ""
1686-
1687-#: menu.py:116 olive/menu.py:115 olive/menu.py:116
1688-msgid "Show the differences of the selected file"
1689-msgstr ""
1690-
1691-#: menu.py:119 olive/menu.py:118 olive/menu.py:119
1692-msgid "All..."
1693-msgstr ""
1694-
1695-#: menu.py:120 olive/menu.py:119 olive/menu.py:120
1696-msgid "Show the differences of all files"
1697-msgstr ""
1698-
1699-#: menu.py:123 olive/menu.py:122 olive/menu.py:123
1700-msgid "View contents"
1701-msgstr ""
1702-
1703-#: menu.py:124 olive/menu.py:123 olive/menu.py:124
1704-msgid "View the contents of the file in a builtin viewer"
1705-msgstr ""
1706-
1707-#: menu.py:127 olive/menu.py:126 olive/menu.py:127
1708-msgid "Show differences"
1709-msgstr ""
1710-
1711-#: menu.py:128 olive/menu.py:127 olive/menu.py:128
1712-msgid "Show the differences between two revisions of the file"
1713-msgstr ""
1714-
1715-#: menu.py:131 olive/menu.py:130 olive/menu.py:131
1716-msgid "Revert to this revision"
1717-msgstr ""
1718-
1719-#: menu.py:132 olive/menu.py:131 olive/menu.py:132
1720-msgid "Revert the selected file to the selected revision"
1721-msgstr ""
1722-
1723-#: menu.py:228 olive/menu.py:227 olive/menu.py:228
1724-msgid "Delete directory with all directories below ?"
1725-msgstr ""
1726-
1727-#: menu.py:315 olive/__init__.py:707 olive/menu.py:318 olive/__init__.py:708
1728-#: olive/menu.py:319
1729-msgid "Bookmark successfully added"
1730-msgstr ""
1731-
1732-#: menu.py:316 olive/__init__.py:708 olive/menu.py:319 olive/__init__.py:709
1733-#: olive/menu.py:320
1734-msgid ""
1735-"The current directory was bookmarked. You can reach\n"
1736-"it by selecting it from the left panel."
1737-msgstr ""
1738-
1739-#: menu.py:319 olive/__init__.py:711 olive/menu.py:322 olive/__init__.py:712
1740-#: olive/menu.py:323
1741-msgid "Location already bookmarked"
1742-msgstr ""
1743-
1744-#: menu.py:320 olive/__init__.py:712 olive/menu.py:323 olive/__init__.py:713
1745-#: olive/menu.py:324
1746-msgid ""
1747-"The current directory is already bookmarked.\n"
1748-"See the left panel for reference."
1749-msgstr ""
1750-
1751-#: mkdir.py:67 olive/mkdir.py:67 olive/mkdir.py:68
1752-msgid "No directory name given"
1753-msgstr ""
1754-
1755-#: mkdir.py:68 olive/mkdir.py:68 olive/mkdir.py:69
1756-msgid "Please specify a desired name for the new directory."
1757-msgstr ""
1758-
1759-#: mkdir.py:79 mkdir.py:89 olive/mkdir.py:79 olive/mkdir.py:89
1760-#: olive/mkdir.py:80 olive/mkdir.py:90
1761-msgid "Directory already exists"
1762-msgstr ""
1763-
1764-#: mkdir.py:80 mkdir.py:90 olive/mkdir.py:80 olive/mkdir.py:90
1765-#: olive/mkdir.py:81 olive/mkdir.py:91
1766-msgid "Please specify another name to continue."
1767-msgstr ""
1768-
1769-#: move.py:80 rename.py:71 olive/move.py:80 olive/rename.py:71
1770-#: olive/move.py:81 olive/rename.py:72
1771-msgid "Please select a file from the list to proceed."
1772-msgstr ""
1773-
1774-#: move.py:89 rename.py:87 olive/move.py:89 olive/rename.py:87
1775-#: olive/move.py:90 olive/rename.py:88
1776-msgid "Not the same branch"
1777-msgstr ""
1778-
1779-#: move.py:90 rename.py:88 olive/move.py:90 olive/rename.py:88
1780-#: olive/move.py:91 olive/rename.py:89
1781-msgid "The destination is not in the same branch."
1782-msgstr ""
1783-
1784-#: remove.py:79 remove.py:139 olive/remove.py:79 olive/remove.py:139
1785-#: olive/remove.py:80 olive/remove.py:140
1786-msgid "No matching files"
1787-msgstr ""
1788-
1789-#: remove.py:80 remove.py:140 olive/remove.py:80 olive/remove.py:140
1790-#: olive/remove.py:81 olive/remove.py:141
1791-msgid "No added files were found in the working tree."
1792-msgstr ""
1793-
1794-#: remove.py:105 olive.glade:825 olive.glade:878 olive/remove.py:105
1795-#: olive/remove.py:106
1796-msgid "Which file(s) do you want to remove?"
1797-msgstr ""
1798-
1799-#: remove.py:106 olive.glade:717 olive.glade:837 olive.glade:766
1800-#: olive.glade:890 olive/remove.py:106 olive/remove.py:107
1801-msgid "Selected only"
1802-msgstr ""
1803-
1804-#: remove.py:107 olive.glade:851 olive.glade:905 olive/remove.py:107
1805-#: olive/remove.py:108
1806-msgid "All files with status 'added'"
1807-msgstr ""
1808-
1809-#: remove.py:108 olive.glade:905 olive.glade:962 olive/remove.py:108
1810-#: olive/remove.py:109
1811-msgid "_Remove"
1812-msgstr ""
1813-
1814-#: rename.py:75 olive/rename.py:75 olive/rename.py:76
1815-msgid "Filename not given"
1816-msgstr ""
1817-
1818-#: rename.py:76 olive/rename.py:76 olive/rename.py:77
1819-msgid "Please specify a new name for the file."
1820-msgstr ""
1821-
1822-#: olive.glade:8
1823-msgid "Olive - Bazaar GUI"
1824-msgstr ""
1825-
1826-#: olive.glade:21
1827-msgid "_File"
1828-msgstr ""
1829-
1830-#: olive.glade:28
1831-msgid "_Add file(s)..."
1832-msgstr ""
1833-
1834-#: olive.glade:43
1835-msgid "Remove file(s)..."
1836-msgstr ""
1837-
1838-#: olive.glade:63 olive.glade:71
1839-msgid "Make _directory..."
1840-msgstr ""
1841-
1842-#: olive.glade:76 olive.glade:84
1843-msgid "_Rename..."
1844-msgstr ""
1845-
1846-#: olive.glade:84 olive.glade:92
1847-msgid "_Move..."
1848-msgstr ""
1849-
1850-#: olive.glade:92 olive.glade:100
1851-msgid "_Annotate..."
1852-msgstr ""
1853-
1854-#: olive.glade:118 olive.glade:126
1855-msgid "_View"
1856-msgstr ""
1857-
1858-#: olive.glade:126 olive.glade:134
1859-msgid "Show _hidden files"
1860-msgstr ""
1861-
1862-#: olive.glade:139 olive.glade:155
1863-msgid "_Refresh"
1864-msgstr ""
1865-
1866-#: olive.glade:158 olive.glade:174
1867-msgid "_Initialize..."
1868-msgstr ""
1869-
1870-#: olive.glade:166 olive.glade:182
1871-msgid "_Get..."
1872-msgstr ""
1873-
1874-#: olive.glade:174 olive.glade:190
1875-msgid "C_heckout..."
1876-msgstr ""
1877-
1878-#: olive.glade:187 olive.glade:203
1879-msgid "Pu_ll"
1880-msgstr ""
1881-
1882-#: olive.glade:201 olive.glade:217
1883-msgid "Pu_sh..."
1884-msgstr ""
1885-
1886-#: olive.glade:220 olive.glade:245
1887-msgid "_Revert all changes"
1888-msgstr ""
1889-
1890-#: olive.glade:228 olive.glade:253
1891-msgid "_Merge..."
1892-msgstr ""
1893-
1894-#: olive.glade:236 olive.glade:261
1895-msgid "_Commit..."
1896-msgstr ""
1897-
1898-#: olive.glade:255 olive.glade:280
1899-msgid "Ta_gs..."
1900-msgstr ""
1901-
1902-#: olive.glade:263 olive.glade:288
1903-msgid "S_tatus..."
1904-msgstr ""
1905-
1906-#: olive.glade:271 olive.glade:296
1907-msgid "Missing _revisions"
1908-msgstr ""
1909-
1910-#: olive.glade:279 olive.glade:304
1911-msgid "Con_flicts..."
1912-msgstr ""
1913-
1914-#: olive.glade:291 olive.glade:316
1915-msgid "_Statistics"
1916-msgstr ""
1917-
1918-#: olive.glade:298 olive.glade:323
1919-msgid "_Differences..."
1920-msgstr ""
1921-
1922-#: olive.glade:312 olive.glade:337
1923-msgid "_Log..."
1924-msgstr ""
1925-
1926-#: olive.glade:326 olive.glade:351
1927-msgid "_Information..."
1928-msgstr ""
1929-
1930-#: olive.glade:338 olive.glade:363
1931-msgid "_Help"
1932-msgstr ""
1933-
1934-#: olive.glade:548 olive.glade:590
1935-msgid "gtk-jump-to"
1936-msgstr ""
1937-
1938-#: olive.glade:575 olive.glade:618
1939-msgid "H_istory Mode"
1940-msgstr ""
1941-
1942-#: olive.glade:673 olive.glade:722
1943-msgid "Copyright (C) 2006 Szilveszter Farkas (Phanatic)"
1944-msgstr ""
1945-
1946-#: olive.glade:675 olive.glade:724
1947-msgid "https://launchpad.net/products/olive"
1948-msgstr ""
1949-
1950-#: olive.glade:677 olive.glade:726
1951-msgid "translator-credits"
1952-msgstr ""
1953-
1954-#: olive.glade:694 olive.glade:743
1955-msgid "Olive - Add file(s)"
1956-msgstr ""
1957-
1958-#: olive.glade:705 olive.glade:754
1959-msgid "Which file(s) do you want to add?"
1960-msgstr ""
1961-
1962-#: olive.glade:731 olive.glade:781
1963-msgid "All unknowns recursively"
1964-msgstr ""
1965-
1966-#: olive.glade:785 olive.glade:838
1967-msgid "_Add"
1968-msgstr ""
1969-
1970-#: olive.glade:814 olive.glade:867
1971-msgid "Olive - Remove file(s)"
1972-msgstr ""
1973-
1974-#: olive.glade:934 olive.glade:991
1975-msgid "Olive - Make directory"
1976-msgstr ""
1977-
1978-#: olive.glade:957 olive.glade:1014
1979-msgid "_Versioned directory"
1980-msgstr ""
1981-
1982-#: olive.glade:1011 olive.glade:1071
1983-msgid "_Make directory"
1984-msgstr ""
1985-
1986-#: olive.glade:1041 olive.glade:1101
1987-msgid "Olive - Move"
1988-msgstr ""
1989-
1990-#: olive.glade:1055 olive.glade:1115
1991-msgid "Move to"
1992-msgstr ""
1993-
1994-#: olive.glade:1066 olive.glade:1126
1995-msgid "Select a directory"
1996-msgstr ""
1997-
1998-#: olive.glade:1120 olive.glade:1182
1999-msgid "_Move"
2000-msgstr ""
2001-
2002-#: olive.glade:1148 olive.glade:1210
2003-msgid "Olive - Rename"
2004-msgstr ""
2005-
2006-#: olive.glade:1162 olive.glade:1224
2007-msgid "Rename to"
2008-msgstr ""
2009-
2010-#: olive.glade:1227 olive.glade:1291
2011-msgid "_Rename"
2012-msgstr ""
2013-
2014-#: olive.glade:1255 olive.glade:1319
2015-msgid "Olive - Information"
2016-msgstr ""
2017-
2018-#: olive.glade:1279 olive.glade:1292 olive.glade:1305 olive.glade:1318
2019-#: olive.glade:1331 olive.glade:1344 olive.glade:1357 olive.glade:1484
2020-#: olive.glade:1495 olive.glade:1564 olive.glade:1575 olive.glade:1588
2021-#: olive.glade:1601 olive.glade:1694 olive.glade:1705 olive.glade:1718
2022-#: olive.glade:1799 olive.glade:1810 olive.glade:1879 olive.glade:1890
2023-#: olive.glade:1903 olive.glade:1916 olive.glade:1929 olive.glade:1942
2024-#: olive.glade:1955 olive.glade:1968 olive.glade:2109 olive.glade:2120
2025-#: olive.glade:2133 olive.glade:2146 olive.glade:2159 olive.glade:2264
2026-#: olive.glade:2275 olive.glade:1343 olive.glade:1356 olive.glade:1369
2027-#: olive.glade:1382 olive.glade:1395 olive.glade:1408 olive.glade:1421
2028-#: olive.glade:1548 olive.glade:1559 olive.glade:1628 olive.glade:1639
2029-#: olive.glade:1652 olive.glade:1665 olive.glade:1758 olive.glade:1769
2030-#: olive.glade:1782 olive.glade:1863 olive.glade:1874 olive.glade:1943
2031-#: olive.glade:1954 olive.glade:1967 olive.glade:1980 olive.glade:1993
2032-#: olive.glade:2006 olive.glade:2019 olive.glade:2032 olive.glade:2173
2033-#: olive.glade:2184 olive.glade:2197 olive.glade:2210 olive.glade:2223
2034-#: olive.glade:2328 olive.glade:2339
2035-msgid "(none)"
2036-msgstr ""
2037-
2038-#: olive.glade:1368 olive.glade:1432
2039-msgid "Checkout root: "
2040-msgstr ""
2041-
2042-#: olive.glade:1380 olive.glade:1444
2043-msgid "Branch root: "
2044-msgstr ""
2045-
2046-#: olive.glade:1392 olive.glade:1456
2047-msgid "Repository checkout: "
2048-msgstr ""
2049-
2050-#: olive.glade:1404 olive.glade:1468
2051-msgid "Checkout of branch: "
2052-msgstr ""
2053-
2054-#: olive.glade:1416 olive.glade:1480
2055-msgid "Repository branch: "
2056-msgstr ""
2057-
2058-#: olive.glade:1428 olive.glade:1492
2059-msgid "Shared repository: "
2060-msgstr ""
2061-
2062-#: olive.glade:1440 olive.glade:1504
2063-msgid "Light checkout root: "
2064-msgstr ""
2065-
2066-#: olive.glade:1454 olive.glade:1518
2067-msgid "<b>Location:</b>"
2068-msgstr ""
2069-
2070-#: olive.glade:1508 olive.glade:1572
2071-msgid "Publish to branch: "
2072-msgstr ""
2073-
2074-#: olive.glade:1520 olive.glade:1584
2075-msgid "Parent branch: "
2076-msgstr ""
2077-
2078-#: olive.glade:1534 olive.glade:1598
2079-msgid "<b>Related branches:</b>"
2080-msgstr ""
2081-
2082-#: olive.glade:1614 olive.glade:1678
2083-msgid "Repository format: "
2084-msgstr ""
2085-
2086-#: olive.glade:1626 olive.glade:1690
2087-msgid "Branch format: "
2088-msgstr ""
2089-
2090-#: olive.glade:1638 olive.glade:1702
2091-msgid "Working tree format: "
2092-msgstr ""
2093-
2094-#: olive.glade:1650 olive.glade:1714
2095-msgid "Control format: "
2096-msgstr ""
2097-
2098-#: olive.glade:1664 olive.glade:1728
2099-msgid "<b>Format:</b>"
2100-msgstr ""
2101-
2102-#: olive.glade:1731 olive.glade:1795
2103-msgid "Repository lock status: "
2104-msgstr ""
2105-
2106-#: olive.glade:1743 olive.glade:1807
2107-msgid "Branch lock status: "
2108-msgstr ""
2109-
2110-#: olive.glade:1755 olive.glade:1819
2111-msgid "Working tree lock status: "
2112-msgstr ""
2113-
2114-#: olive.glade:1769 olive.glade:1833
2115-msgid "<b>Lock status:</b>"
2116-msgstr ""
2117-
2118-#: olive.glade:1823 olive.glade:1887
2119-msgid "Missing revisions in branch: "
2120-msgstr ""
2121-
2122-#: olive.glade:1835 olive.glade:1899
2123-msgid "Missing revisions in working tree: "
2124-msgstr ""
2125-
2126-#: olive.glade:1849 olive.glade:1913
2127-msgid "<b>Missing revisions:</b>"
2128-msgstr ""
2129-
2130-#: olive.glade:1981 olive.glade:2045
2131-msgid "Versioned subdirectories: "
2132-msgstr ""
2133-
2134-#: olive.glade:1993 olive.glade:2057
2135-msgid "Ignored files: "
2136-msgstr ""
2137-
2138-#: olive.glade:2005 olive.glade:2069
2139-msgid "Unknown files: "
2140-msgstr ""
2141-
2142-#: olive.glade:2017 olive.glade:2081
2143-msgid "Renamed files: "
2144-msgstr ""
2145-
2146-#: olive.glade:2029 olive.glade:2093
2147-msgid "Removed files: "
2148-msgstr ""
2149-
2150-#: olive.glade:2041 olive.glade:2105
2151-msgid "Added files: "
2152-msgstr ""
2153-
2154-#: olive.glade:2053 olive.glade:2117
2155-msgid "Modified files: "
2156-msgstr ""
2157-
2158-#: olive.glade:2065 olive.glade:2129
2159-msgid "Unchanged files: "
2160-msgstr ""
2161-
2162-#: olive.glade:2079 olive.glade:2143
2163-msgid "<b>In the working tree:</b>"
2164-msgstr ""
2165-
2166-#: olive.glade:2172 olive.glade:2236
2167-msgid "Time of last revision: "
2168-msgstr ""
2169-
2170-#: olive.glade:2184 olive.glade:2248
2171-msgid "Time of first revision: "
2172-msgstr ""
2173-
2174-#: olive.glade:2196 olive.glade:2260
2175-msgid "Age of branch in days: "
2176-msgstr ""
2177-
2178-#: olive.glade:2208 olive.glade:2272
2179-msgid "Number of commiters: "
2180-msgstr ""
2181-
2182-#: olive.glade:2220 olive.glade:2284
2183-msgid "Revisions in branch: "
2184-msgstr ""
2185-
2186-#: olive.glade:2234 olive.glade:2298
2187-msgid "<b>Branch history:</b>"
2188-msgstr ""
2189-
2190-#: olive.glade:2288 olive.glade:2352
2191-msgid "Size of repository: "
2192-msgstr ""
2193-
2194-#: olive.glade:2300 olive.glade:2364
2195-msgid "Revisions in repository: "
2196-msgstr ""
2197-
2198-#: olive.glade:2314 olive.glade:2378
2199-msgid "<b>Revision store:</b>"
2200-msgstr ""
2201-
2202-#: olive.glade:2356 olive.glade:2421
2203-msgid "Merge - Olive"
2204-msgstr ""
2205-
2206-#: olive.glade:2370 olive.glade:2435
2207-msgid "Merge from:"
2208-msgstr ""
2209-
2210-#: olive.glade:2454 olive.glade:2522
2211-msgid "_Merge"
2212-msgstr ""
2213-
2214-#: olive.glade:63
2215-msgid "_Bookmark current directory"
2216-msgstr ""
2217-
2218-#: olive.glade:142
2219-msgid "Show _ignored files"
2220-msgstr ""
2221-
2222-#: olive.glade:232 olive.glade:486
2223-msgid "Update"
2224-msgstr ""
2225-
2226-#: commit.py:172 commit.py:173
2227-msgid "kind changed"
2228-msgstr ""
2229-
2230-#: commit.py:260 commit.py:261
2231-msgid "<b>Commit Message</b>"
2232-msgstr ""
2233-
2234-#: commit.py:363 commit.py:364
2235-msgid "Files"
2236-msgstr ""
2237-
2238-#: commit.py:368 commit.py:369
2239-msgid "Commit all changes"
2240-msgstr ""
2241-
2242-#: commit.py:374 commit.py:375
2243-msgid "Only commit selected changes"
2244-msgstr ""
2245-
2246-#: commit.py:380 commit.py:381
2247-msgid "Commit all changes*"
2248-msgstr ""
2249-
2250-#: commit.py:413 commit.py:414
2251-msgid "Commit*"
2252-msgstr ""
2253-
2254-#: commit.py:454 commit.py:455
2255-msgid "<i>* Cannot select specific files when merging</i>"
2256-msgstr ""
2257-
2258-#: commit.py:458 commit.py:459
2259-msgid "Pending Revisions"
2260-msgstr ""
2261-
2262-#: commit.py:494 commit.py:495
2263-msgid "Diff for whole tree"
2264-msgstr ""
2265-
2266-#: commit.py:518 commit.py:599 commit.py:519 commit.py:601
2267-msgid "File commit message"
2268-msgstr ""
2269-
2270-#: commit.py:525 commit.py:526
2271-msgid "Global Commit Message"
2272-msgstr ""
2273-
2274-#: commit.py:526 commit.py:528
2275-msgid "<b>Global Commit Message</b>"
2276-msgstr ""
2277-
2278-#: commit.py:552 commit.py:554
2279-msgid "Diff for "
2280-msgstr ""
2281-
2282-#: commit.py:605 commit.py:607
2283-msgid "Commit message for "
2284-msgstr ""
2285-
2286-#: commit.py:690 commit.py:692
2287-msgid "There are no changes in the working tree. Do you want to commit anyway?"
2288-msgstr ""
2289-
2290-#: branchview/treeview.py:400 branchview/treeview.py:402
2291-msgid "Please wait, loading ancestral graph..."
2292-msgstr ""
2293-
2294-#: olive/__init__.py:71 olive/__init__.py:72
2295-msgid "Lead Developer:"
2296-msgstr ""
2297-
2298-#: olive/__init__.py:73 olive/__init__.py:74
2299-msgid "Contributors:"
2300-msgstr ""
2301-
2302-#: olive/__init__.py:578 olive/__init__.py:579
2303-#, python-format
2304-msgid "%d local extra revision(s). \n"
2305-msgstr ""
2306-
2307-#: olive/__init__.py:590 olive/__init__.py:591
2308-#, python-format
2309-msgid "%d local missing revision(s).\n"
2310-msgstr ""
2311-
2312-#: olive/__init__.py:632 olive/__init__.py:633
2313-msgid "Update successful but conflicts generated"
2314-msgstr ""
2315-
2316-#: olive/__init__.py:632 olive/__init__.py:633
2317-#, python-format
2318-msgid "Number of conflicts generated: %d."
2319-msgstr ""
2320-
2321-#: olive/__init__.py:634 olive/__init__.py:635
2322-msgid "Update successful"
2323-msgstr ""
2324-
2325-#: olive/__init__.py:634 olive/__init__.py:635
2326-msgid "No conflicts generated."
2327-msgstr ""
2328
2329=== added file 'setup.cfg'
2330--- setup.cfg 1970-01-01 00:00:00 +0000
2331+++ setup.cfg 2011-03-06 10:26:30 +0000
2332@@ -0,0 +1,7 @@
2333+[build_i18n]
2334+domain=bzr-gtk
2335+desktop_files=[
2336+ ('share/applications', ['bazaar-properties.desktop.in',
2337+ 'bzr-handle-patch.desktop.in',
2338+ 'bzr-notify.desktop.in'])]
2339+
2340
2341=== modified file 'setup.py'
2342--- setup.py 2011-03-02 14:44:38 +0000
2343+++ setup.py 2011-03-06 10:26:30 +0000
2344@@ -7,6 +7,18 @@
2345 from distutils.command.install_data import install_data
2346 from distutils.command.build import build
2347 from distutils.command.sdist import sdist
2348+from DistUtilsExtra.command import *
2349+try:
2350+ from DistUtilsExtra.command import *
2351+except ImportError:
2352+ # Python distutils extra is not available.
2353+ class cmd_build_i18n(Command):
2354+ def run(self):
2355+ print >> sys.stderr, "For internationalization support you'll need to install https://launchpad.net/python-distutils-extra"
2356+else:
2357+ # Use build_i18n from DistUtilsExtra
2358+ cmd_build_i18n = build_i18n.build_i18n
2359+
2360 import os
2361 import sys
2362
2363@@ -158,6 +170,8 @@
2364 'icons/tag-16.png',
2365 'icons/bug.png',
2366 'icons/bzr-icon-64.png']),
2367+ # In case Python distutils extra is not available,
2368+ # install the .desktop files
2369 ('share/applications', ['bazaar-properties.desktop',
2370 'bzr-handle-patch.desktop',
2371 'bzr-notify.desktop']),
2372@@ -175,6 +189,7 @@
2373 cmdclass={'install_data': InstallData,
2374 'build_credits': CreateCredits,
2375 'build': BuildData,
2376+ 'build_i18n': cmd_build_i18n,
2377 'sdist': SourceDist,
2378 'check': Check}
2379 )

Subscribers

People subscribed via source and target branches

to all changes:
to status/vote changes: