1
# Spanish translation for quickly
2
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
3
# This file is distributed under the same license as the quickly package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
8
"Project-Id-Version: quickly\n"
9
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10
"POT-Creation-Date: 2010-03-27 12:11+0100\n"
11
"PO-Revision-Date: 2010-04-07 07:21+0000\n"
12
"Last-Translator: Launchpad Translations Administrators "
13
"<rosetta@launchpad.net>\n"
14
"Language-Team: Spanish <es@li.org>\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"X-Launchpad-Export-Date: 2010-04-08 07:23+0000\n"
19
"X-Generator: Launchpad (build Unknown)\n"
21
#: data/templates/ubuntu-application/help/tutorial.xml:13(firstname)
25
#: data/templates/ubuntu-application/help/tutorial.xml:14(surname)
29
#: data/templates/ubuntu-application/help/tutorial.xml:17(firstname)
33
#: data/templates/ubuntu-application/help/tutorial.xml:18(surname)
37
#: data/templates/ubuntu-application/help/tutorial.xml:20(corpauthor)
41
#: data/templates/ubuntu-application/help/tutorial.xml:24(date) data/templates/ubuntu-application/help/tutorial.xml:29(invpartnumber)
45
#: data/templates/ubuntu-application/help/tutorial.xml:0(application) data/templates/ubuntu-application/help/tutorial.xml:1160(application) data/templates/ubuntu-application/help/tutorial.xml:1160(application) data/templates/ubuntu-application/help/tutorial.xml:1163(application)
49
#: data/templates/ubuntu-application/help/tutorial.xml:28(productnumber)
53
#: data/templates/ubuntu-application/help/tutorial.xml:30(title)
54
msgid "<application>Quickly</application> 0.4 User Guide"
57
#: data/templates/ubuntu-application/help/tutorial.xml:35(title)
58
msgid "About This Guide"
61
#: data/templates/ubuntu-application/help/tutorial.xml:36(para)
63
"<application>Quickly</application> is a set of choices about writing apps "
64
"for Ubuntu. Out of all the wonderful richness and variety of programming for "
65
"Linux, <application>Quickly</application> make some very opinionated choices "
66
"about what tools to use, and how to combine them. The criteria for these "
67
"choices was to make it easy and fun to write and release Linux applications, "
68
"even if it's your first time trying, but also in a way that delivers the "
69
"full power and flexibility of the platform. One benefit of these choices, is "
70
"that it's also easier to write tools that make it even easier and more fun. "
71
"So <application>Quickly</application> is also a set of commands."
74
#: data/templates/ubuntu-application/help/tutorial.xml:39(link) data/templates/ubuntu-application/help/tutorial.xml:45(title)
75
msgid "Getting Started"
78
#: data/templates/ubuntu-application/help/tutorial.xml:46(para)
80
"This part 1 of the <application>Quickly</application> tutorial. This part is "
81
"will introduce some key <application>Quickly</application> commands, editing "
82
"a user interface in Glade, and editing code in Gedit. This part of the "
83
"tutorial will familiarize you with these three tools, and how they work "
84
"together with python and pygtk so that you can "
85
"<application>Quickly</application> build applications."
88
#: data/templates/ubuntu-application/help/tutorial.xml:48(title)
89
msgid "Creating a <application>Quickly</application> Project"
92
#: data/templates/ubuntu-application/help/tutorial.xml:48(para)
94
"<placeholder-1/>Creating an empty but working program couldn't be simpler. "
95
"First, open a terminal window to type commands into. When it's open, type "
99
#: data/templates/ubuntu-application/help/tutorial.xml:49(programlisting)
101
msgid "quickly create ubuntu-application jotty"
104
#: data/templates/ubuntu-application/help/tutorial.xml:53(para)
106
"This will create a jotty sub directory containing a complete directory tree "
107
"and files for an empty python application. The command finishes by running "
108
"the newly created empty application."
111
#: data/templates/ubuntu-application/help/tutorial.xml:57(title)
112
msgid "Testing the Empty Application"
115
#: data/templates/ubuntu-application/help/tutorial.xml:57(para)
117
"<placeholder-1/> They are populated and set up, and you can resize the "
118
"window. Notice that <application>Quickly</application> inferred that the "
119
"application title is \"Jotty\". Only a few of menu items do anything in the "
120
"empty application, Help->About, Edit->Preferences, and File->Quit."
123
#: data/templates/ubuntu-application/help/tutorial.xml:61(title)
124
msgid "Running the Application"
127
#: data/templates/ubuntu-application/help/tutorial.xml:61(para)
129
"<placeholder-1/> Close the application by closing the window or using the "
130
"Quit command. Since the empty application isn't installed into Ubuntu yet, "
131
"you can't start the application from the application menu yet. To start the "
132
"applicaton, use the terminal to first cd into the new subdirectory, and then "
133
"use \"quickly run\" to start the program."
136
#: data/templates/ubuntu-application/help/tutorial.xml:63(programlisting)
144
#: data/templates/ubuntu-application/help/tutorial.xml:70(title)
145
msgid "Editing an Application"
148
#: data/templates/ubuntu-application/help/tutorial.xml:71(title)
149
msgid "Edit the User Interface in Glade"
152
#: data/templates/ubuntu-application/help/tutorial.xml:71(para)
154
"<placeholder-1/><application>Quickly</application> programs use Glade to "
155
"edit the user interface. Start Glade with \"quickly design\" in order to set "
156
"up Glade for editing the empty applicaton. Don't start glade directly, or it "
157
"won't load the necessary catalogue files for editing the classes that were "
158
"automaticaly generated by <application>Quickly</application>."
161
#: data/templates/ubuntu-application/help/tutorial.xml:73(programlisting) data/templates/ubuntu-application/help/tutorial.xml:128(programlisting)
163
msgid "quickly design"
166
#: data/templates/ubuntu-application/help/tutorial.xml:77(para)
167
msgid "Glade will open with the project loaded up and ready to edit."
170
#: data/templates/ubuntu-application/help/tutorial.xml:81(para)
171
msgid "Use the Project Menu to choose \"JottytWindow.ui\" for editing."
174
#: data/templates/ubuntu-application/help/tutorial.xml:85(para)
176
"We want to create a text area for typing into. There are some default "
177
"Widgets added to the Window. We won't need these so we'll start with "
178
"deleting them. Click on the label, and press delete, and it will disappear "
182
#: data/templates/ubuntu-application/help/tutorial.xml:92(para)
183
msgid "Do the same with the image widget. This leave us two free slots."
186
#: data/templates/ubuntu-application/help/tutorial.xml:96(para)
188
"We'll use the bottom slot to add a TextView widget for the user to type "
189
"into. In the toolbox, click on the TextView widget. Then click in the empty "
193
#: data/templates/ubuntu-application/help/tutorial.xml:100(para)
195
"Make sure you save the file in Glade, or your changes won't take! Then run "
196
"the application from terminal again. The window now has a place where the "
200
#: data/templates/ubuntu-application/help/tutorial.xml:104(para)
202
"Now we'll add the entry field for the title, and also a label for it. We'll "
203
"use the top empty slot for that. First, click on Horizontal Box (HBox) from "
204
"the \"Containers\" section of the pallette, and then click on the top slot. "
205
"A dialog box will open, tell it that you want two items."
208
#: data/templates/ubuntu-application/help/tutorial.xml:108(para)
210
"The HBox is a container that arranges it's children horizontally. Add a "
211
"label to the empty left hand box, and a Text Entry to the right hand one."
214
#: data/templates/ubuntu-application/help/tutorial.xml:112(para)
216
"Before going on, let's clean up the UI just a tad here. Select the new HBox "
217
"from the treeview in the inspector window. Then go to the Packing tab, and "
218
"set Expand and Fill to \"No\"."
221
#: data/templates/ubuntu-application/help/tutorial.xml:116(para)
222
msgid "Go to the General tab, and set spacing to 5."
225
#: data/templates/ubuntu-application/help/tutorial.xml:120(para)
227
"Select the label. On the general tab, set \"Label\" to \"Name:\". Set expand "
228
"and fill to \"no\" for the label, but keep it \"yes\" for the entry. Set the "
229
"padding for both to 5 (also on the Packing tab)."
232
#: data/templates/ubuntu-application/help/tutorial.xml:124(title)
233
msgid "Add the Save, Open, and New Features"
236
#: data/templates/ubuntu-application/help/tutorial.xml:124(para)
238
"<placeholder-1/> After the user types something, they may want to save it. A "
239
"File->Save menu item was automatically created when the empty applicaton "
240
"was created, but it's not hooked up to any code. To make Save work, we need "
241
"tell the menu item what function to call, and then create a function to "
242
"actually do the saving."
245
#: data/templates/ubuntu-application/help/tutorial.xml:126(title)
246
msgid "Set the Signal Handler in Glade"
249
#: data/templates/ubuntu-application/help/tutorial.xml:126(para)
251
"<placeholder-1/> To tell the menu item what function to call. If glade is "
252
"not still open, open up the application in glade:"
255
#: data/templates/ubuntu-application/help/tutorial.xml:129(para)
257
"Click on the file menu, and the menu opens as if the application were "
261
#: data/templates/ubuntu-application/help/tutorial.xml:133(para)
262
msgid "Choose the Save menu item, and it will be selected in Glade."
265
#: data/templates/ubuntu-application/help/tutorial.xml:137(para)
266
msgid "Then choose the \"Signals\" tab of the properties window."
269
#: data/templates/ubuntu-application/help/tutorial.xml:141(para)
271
"In pygtk, menu items are \"activated\" when a user chooses the item from the "
272
"menu. Since we want a function to run when the user chooses Save, we want to "
273
"specify a function to respond to the activate signal from the menu item. "
274
"We'll call the function \"save_file\". Simply type the function name into "
275
"the box for the activate signal.Make sure to save the glade file."
278
#: data/templates/ubuntu-application/help/tutorial.xml:145(para)
280
"Note that you will need to setup the \"open_file\" signal and the "
281
"\"new_file\" signal as well when you get to those functions later."
284
#: data/templates/ubuntu-application/help/tutorial.xml:146(title)
285
msgid "Edit the Code in Gedit"
288
#: data/templates/ubuntu-application/help/tutorial.xml:147(title)
289
msgid "Set Up Tabs Correctly"
292
#: data/templates/ubuntu-application/help/tutorial.xml:147(para)
294
"<placeholder-1/> Note a major gotcha here. In python spaces and tabs are "
295
"totally different, but they look just the same in an editor. So being "
296
"indented one tab stop is not the same as being indented four spaces, even "
297
"though they might look the same. And indentation level is very important in "
298
"python. You will get a lot of errors if you mix tab indentation with space "
299
"indentation. Your generated project follows the python standard of using "
300
"four spaces for each indentation level. So you'll either have to hit the "
301
"space bar four time every time you indent, or set up your editor to use the "
302
"right number of spaces for tabs."
305
#: data/templates/ubuntu-application/help/tutorial.xml:149(para)
307
"The upshot is that you should take a moment to set up your Gedit (or "
308
"whatever editor you are using) to use spaces for tabs. In Gedit, select "
309
"Preferences from the Edit menu, and choose the Editor tab. Then set Tab "
310
"width to 4, and turn on \"Insert spaces instead of tabs\". Your preferences "
311
"should look like this:"
314
#: data/templates/ubuntu-application/help/tutorial.xml:153(title)
315
msgid "Create the Save File Signal Handler"
318
#: data/templates/ubuntu-application/help/tutorial.xml:153(para)
320
"<placeholder-1/> Now you're ready to write some code. Of course just telling "
321
"the glade file what signal to emit won't make the file actually save, "
322
"because we haven't created the \"save_file\" function yet. The code for "
323
"JottyWindow is stored in the file jotty. jotty is a special python file that "
324
"is the entry point for your application. Other python files in your "
325
"application have the \".py\" suffix."
328
#: data/templates/ubuntu-application/help/tutorial.xml:155(para)
330
"Use the <application>Quickly</application> edit command to start editing "
334
#: data/templates/ubuntu-application/help/tutorial.xml:156(programlisting)
339
#: data/templates/ubuntu-application/help/tutorial.xml:157(para)
341
"This will open the default Ubuntu text editor \"Gedit\" with any python "
342
"files in the python directory."
345
#: data/templates/ubuntu-application/help/tutorial.xml:161(para)
347
"JottyWindow.ui is now expecting to find a function JottyWindow.save_file(), "
348
"so we simply add one to the JottyWindow class in the jotty file right under "
349
"the on_destroy funtion.:"
352
#: data/templates/ubuntu-application/help/tutorial.xml:163(programlisting)
356
" def save_file(self, widget, data=None):\n"
361
#: data/templates/ubuntu-application/help/tutorial.xml:169(para)
363
"This will print the word \"save\" to the terminal when run. The method "
364
"signature is the standard signature expected in a signal handler. If you are "
365
"new to python, be sure to copy the indentations exactly, as the indentation "
366
"level is very important in python."
369
#: data/templates/ubuntu-application/help/tutorial.xml:170(para)
370
msgid "Save the file, and run it again:"
373
#: data/templates/ubuntu-application/help/tutorial.xml:171(programlisting)
380
#: data/templates/ubuntu-application/help/tutorial.xml:174(para)
382
"Choose \"File->Save\" from the menu, and you'll see the word \"save\" "
383
"printing out interminal. That's all there is to hookig up the functions!"
386
#: data/templates/ubuntu-application/help/tutorial.xml:178(title)
387
msgid "Implementing Save"
390
#: data/templates/ubuntu-application/help/tutorial.xml:178(para)
392
"<placeholder-1/> Now we'll write a little code in the signal handler to "
393
"actually save the text. Because we want it to be easy for users to do things "
394
"like syncronize their Jotty documents between computers, back it up, etc... "
395
"we'll use couchdb as our backend, and we'll use desktopcouch for our api. "
396
"We'll also use a widget from the Quickly Widgets library to make it really "
397
"easy to use desktopcouch. Desktop couch and the desktopcouch records API "
398
"should be installed for you already, but you may need to install Quickly "
399
"Widgets. The fastest way to do this is from the terminal:"
402
#: data/templates/ubuntu-application/help/tutorial.xml:181(programlisting)
406
"sudo apt-get install quickly-widgets\n"
409
#: data/templates/ubuntu-application/help/tutorial.xml:184(para)
411
"This will install the api, and everything you need for the api to run. After "
412
"desktopcouch is installed, you can write the code. The code will do the "
416
#: data/templates/ubuntu-application/help/tutorial.xml:187(para)
417
msgid "Import the stuff you'll need from Quickly Widgets and desktopcouch."
420
#: data/templates/ubuntu-application/help/tutorial.xml:190(para)
421
msgid "Get a reference to the couchdb database to save into."
424
#: data/templates/ubuntu-application/help/tutorial.xml:193(para)
425
msgid "Get the title of the document and the text from the user interface."
428
#: data/templates/ubuntu-application/help/tutorial.xml:196(para)
430
"Check if there is already a document with the same title, and if so "
434
#: data/templates/ubuntu-application/help/tutorial.xml:199(para)
435
msgid "If there is not a document already, create one."
438
#: data/templates/ubuntu-application/help/tutorial.xml:202(title)
439
msgid "Import the stuff you'll need from python-desktopcouch-records."
442
#: data/templates/ubuntu-application/help/tutorial.xml:202(para)
444
"<placeholder-1/> Add these import statements along with the other imports to "
445
"the top of the jotty file:"
448
#: data/templates/ubuntu-application/help/tutorial.xml:205(programlisting)
452
"from desktopcouch.records.server import CouchDatabase\n"
453
"from desktopcouch.records.record import Record\n"
456
#: data/templates/ubuntu-application/help/tutorial.xml:209(title)
457
msgid "Get a Reference to the Database"
460
#: data/templates/ubuntu-application/help/tutorial.xml:209(para)
462
"<placeholder-1/> Desktopcouch will set up a database for us, or create a new "
463
"one if it's needed. We'll use \"jotty\" for the name of the database. Since "
464
"we want this line to run every time the Jotty Window is created, put it at "
465
"the end of the finish_initializing function:"
468
#: data/templates/ubuntu-application/help/tutorial.xml:211(programlisting)
472
" self.database = CouchDatabase(\"jotty\", create=True)\n"
475
#: data/templates/ubuntu-application/help/tutorial.xml:214(para)
477
"Now that we have an instance-wide reference to the database, we'll add code "
478
"to the save_file function to run whenever the Save command is issued."
481
#: data/templates/ubuntu-application/help/tutorial.xml:215(para)
482
msgid "Here's the code to pull the title out of the title entry:"
485
#: data/templates/ubuntu-application/help/tutorial.xml:218(programlisting)
489
" #get the title for the note\n"
490
" title = self.builder.get_object(\"entry1\").get_text()\n"
493
#: data/templates/ubuntu-application/help/tutorial.xml:222(title)
494
msgid "Here's the code to get pull the text out of the TextView:"
497
#: data/templates/ubuntu-application/help/tutorial.xml:222(para)
499
"<placeholder-1/> In pygtk, TextView widgets have a text buffer that stores "
500
"the text. So you ask the TextView for it's TextBuffer, and then you ask the "
501
"TextBuffer for the text. You use iters to determine from which part of the "
502
"text buffer you want text. Since we want all the text, it's easy to just get "
503
"the start and end iters."
506
#: data/templates/ubuntu-application/help/tutorial.xml:225(programlisting)
511
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
512
" start_iter = buff.get_start_iter()\n"
513
" end_iter = buff.get_end_iter()\n"
514
" text = buff.get_text(start_iter,end_iter)\n"
517
#: data/templates/ubuntu-application/help/tutorial.xml:232(title)
518
msgid "Saving a document to Couchdb"
521
#: data/templates/ubuntu-application/help/tutorial.xml:232(para)
523
"<placeholder-1/> A record in couch is essentially a python dictionary with "
524
"some extra key/value pairs to make the database work. So we can save the "
525
"document to couch like this:"
528
#: data/templates/ubuntu-application/help/tutorial.xml:235(programlisting)
532
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\"\n"
533
" new_rec = Record({\"record_type\": record_type,\"title\":title, "
535
" self.database.put(new_rec)\n"
538
#: data/templates/ubuntu-application/help/tutorial.xml:240(para)
540
"The \"record_type\" field is not strictly required, but among other things, "
541
"it makes it easy to fetch the documents later. By convention, we use a url "
542
"to specify the record type. This provides a place for other developers to go "
543
"to read about the record type. The description only needs to be human "
544
"readable. Couchdb is not a typed database, so don't expect that the url will "
545
"have any kind of schema definition or anything. You can use whatever url you "
546
"want, and put whatever you want at that URL."
549
#: data/templates/ubuntu-application/help/tutorial.xml:243(title)
550
msgid "Check for a pre-existing note with the same title"
553
#: data/templates/ubuntu-application/help/tutorial.xml:241(para)
555
"<placeholder-1/> Before we just write the new document though, we have to "
556
"take note of the fact that couch will allow you to create as many documents "
557
"as you want with the same title. We probably don't want this, so we we'll "
558
"have to write a little code to check if there is already a document in couch "
559
"with the same title, and if there is, update that document rather than "
563
#: data/templates/ubuntu-application/help/tutorial.xml:247(para)
565
"In CouchDB, you don't do a lot of data processing in the database like you "
566
"would with a relational database. To be most efficient, we could use the "
567
"desktopcouch API to create a view in CouchDB, but it's probably simplest "
568
"just to do the necessary processing on the client for now. To do this, we'll "
569
"use a desktopcouch function to retrieve all of the records of a specified "
573
#: data/templates/ubuntu-application/help/tutorial.xml:249(para)
574
msgid "To find and update documents with a matching title we will:"
577
#: data/templates/ubuntu-application/help/tutorial.xml:252(para) data/templates/ubuntu-application/help/tutorial.xml:321(para)
579
"Retrieve all of the documents with the CouchDatabase.get_records function."
582
#: data/templates/ubuntu-application/help/tutorial.xml:255(para) data/templates/ubuntu-application/help/tutorial.xml:324(para)
583
msgid "Check each of the returned records for a matching title."
586
#: data/templates/ubuntu-application/help/tutorial.xml:258(para)
588
"If there is a match, update the record using the CouchDatabase.update_fields "
589
"function and return."
592
#: data/templates/ubuntu-application/help/tutorial.xml:261(para)
594
"This all may sound very weird, but in code, it's not quite so complicated:"
597
#: data/templates/ubuntu-application/help/tutorial.xml:263(programlisting)
601
" #get all the records\n"
602
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\"\n"
603
" results = self.database.get_records(record_type = "
604
"record_type,create_view = True)\n"
605
" #update a record that has the same title\n"
606
" for result in results:\n"
607
" document = result.value\n"
608
" if document[\"title\"] == title:\n"
609
" key = document[\"_id\"]\n"
610
" self.database.update_fields(key, {\"text\":text})\n"
615
#: data/templates/ubuntu-application/help/tutorial.xml:276(para)
616
msgid "So the whole function should look like this:"
619
#: data/templates/ubuntu-application/help/tutorial.xml:278(programlisting)
623
" def save_file(self, widget, data=None): \n"
624
" #get the title for the note \n"
625
" title = self.builder.get_object(\"entry1\").get_text() \n"
627
" #get the text to save \n"
628
" buff = self.builder.get_object(\"textview1\").get_buffer() \n"
629
" start_iter = buff.get_start_iter() \n"
630
" end_iter = buff.get_end_iter() \n"
631
" text = buff.get_text(start_iter,end_iter) \n"
633
" #get all the records \n"
634
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\" \n"
635
" results = self.database.get_records(record_type = "
636
"record_type,create_view = True) \n"
638
" #update a record that has the same title \n"
639
" for result in results: \n"
640
" document = result.value \n"
641
" if document[\"title\"] == title: \n"
642
" key = result.key \n"
643
" self.database.update_fields(key, {\"text\":text}) \n"
646
" #if no records had the title, create it \n"
647
" new_rec = Record({\"record_type\":record_type,\"title\":title, "
649
" self.database.put_record(new_rec)\n"
652
#: data/templates/ubuntu-application/help/tutorial.xml:306(para)
654
"Couchdb makes it really easy to see if your save function is working. You "
655
"can just point your web browser at it and explore the database:"
658
#: data/templates/ubuntu-application/help/tutorial.xml:307(para)
659
msgid "file:///home/your_user_name/.local/share/desktop-couch/couchdb.html"
662
#: data/templates/ubuntu-application/help/tutorial.xml:311(para)
664
"If you are redirected to a page that doesn't work, you probably just need to "
665
"clear your browser cache and try again."
668
#: data/templates/ubuntu-application/help/tutorial.xml:312(title)
669
msgid "Implementing Open and New"
672
#: data/templates/ubuntu-application/help/tutorial.xml:312(para)
674
"<placeholder-1/> To open a saved document, the user will type the title of "
675
"the document that they want to open in the text entry, and choose \"Open\" "
676
"from the main menu. If there is no matching document there, it will just "
677
"clear out the text view, ready for input. This is probably not too "
678
"intuitive, so we'll add a dialog box for prompting the user for the title, "
679
"but that's for later in the tutorial. For now, we'll just use the same text "
683
#: data/templates/ubuntu-application/help/tutorial.xml:314(title)
684
msgid "Implementing Open is essentially the reverse of Save:"
687
#: data/templates/ubuntu-application/help/tutorial.xml:314(para)
688
msgid "<placeholder-1/> Follow these steps:"
691
#: data/templates/ubuntu-application/help/tutorial.xml:318(para)
692
msgid "Add the open_file signal to the menu item in Glade."
695
#: data/templates/ubuntu-application/help/tutorial.xml:327(para)
697
"If there is a match, pull out the text and display it in the text view."
700
#: data/templates/ubuntu-application/help/tutorial.xml:330(para)
701
msgid "So the open_file function looks like so:"
704
#: data/templates/ubuntu-application/help/tutorial.xml:332(programlisting)
708
" def open_file(self, widget, data=None):\n"
709
" #get the name of the document to open\n"
710
" title = self.builder.get_object(\"entry1\").get_text()\n"
713
" #get all the records\n"
714
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\"\n"
715
" results = self.database.get_records(record_type = "
716
"record_type,create_view = True)\n"
718
" #get the text if there is a matching title\n"
719
" for result in results:\n"
720
" document = result.value\n"
721
" if document[\"title\"] == title:\n"
722
" text = document[\"text\"]\n"
724
" #set the UI to display the string\n"
725
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
726
" buff.set_text(text)\n"
729
#: data/templates/ubuntu-application/help/tutorial.xml:352(title)
730
msgid "Implement New"
733
#: data/templates/ubuntu-application/help/tutorial.xml:352(para)
735
"<placeholder-1/> First, add the new_file signal to the menu item in Glade, "
736
"then add this code to clear out the text:"
739
#: data/templates/ubuntu-application/help/tutorial.xml:355(programlisting)
743
" def new_file(self, widget, data=None):\n"
744
" self.builder.get_object(\"entry1\").set_text(\"Note Title\")\n"
745
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
746
" buff.set_text(\"\")\n"
749
#: data/templates/ubuntu-application/help/tutorial.xml:361(para)
751
"To make them work, add these functions to the JottyWindow class, and save. "
752
"Then go back and connect the functions to the activate signals for the Open "
753
"and New menu items."
756
#: data/templates/ubuntu-application/help/tutorial.xml:362(ulink)
757
msgid "Complete jotty file"
760
#: data/templates/ubuntu-application/help/tutorial.xml:363(title)
761
msgid "Saving Your Work"
764
#: data/templates/ubuntu-application/help/tutorial.xml:363(para)
766
"<placeholder-1/> When <application>Quickly</application> created your "
767
"application, it automatically added it to Bazaar, a source code versioning "
768
"system. You can use Bazaar to roll back mistake, see code history, compare "
769
"versions, etc... <application>Quickly</application> has a convenience "
770
"function for backing up your work:"
773
#: data/templates/ubuntu-application/help/tutorial.xml:365(programlisting)
777
"<application>Quickly</application> save \"First working version of Jotty\"\n"
780
#: data/templates/ubuntu-application/help/tutorial.xml:368(programlisting)
785
#: data/templates/ubuntu-application/help/tutorial.xml:368(programlisting)
787
msgid "bzr commit -m [your message]"
790
#: data/templates/ubuntu-application/help/tutorial.xml:368(para)
791
msgid "This will call <placeholder-1/> and then <placeholder-2/> for you."
794
#: data/templates/ubuntu-application/help/tutorial.xml:371(title)
795
msgid "Using Dialogs"
798
#: data/templates/ubuntu-application/help/tutorial.xml:372(para)
800
"In part 1, we created an application that can read and write text files, and "
801
"persist them in the couchdb backend. However, the application has a hideous "
802
"usability flaw, in the text box for specifying titles when saving and "
803
"opening files is very confusing. In part 2, we'll fix that by adding a save "
804
"and an open dialog."
807
#: data/templates/ubuntu-application/help/tutorial.xml:374(title)
808
msgid "Creating an Empty Dialog"
811
#: data/templates/ubuntu-application/help/tutorial.xml:374(para)
813
"<placeholder-1/> It's simple to add an empty, but working dialog to your "
814
"project. Simply specify the name of the new dialog, and it will be added "
815
"automatically. Assuming that you are in the jotty project directory:"
818
#: data/templates/ubuntu-application/help/tutorial.xml:376(programlisting)
822
"quickly add dialog save\n"
825
#: data/templates/ubuntu-application/help/tutorial.xml:379(para)
826
msgid "This will add the dialog to your project."
829
#: data/templates/ubuntu-application/help/tutorial.xml:380(title) data/templates/ubuntu-application/help/tutorial.xml:502(title)
830
msgid "Editing the New Dialog"
833
#: data/templates/ubuntu-application/help/tutorial.xml:380(para)
835
"<placeholder-1/> To edit the UI for the dialog, you'll need to load it into "
836
"Glade again. If you already have an instance of glade running, you might "
837
"want to go ahead and close it first, as it may get confusing if you have "
838
"more than one open at a time. After closing glade, simply open it again:"
841
#: data/templates/ubuntu-application/help/tutorial.xml:382(programlisting) data/templates/ubuntu-application/help/tutorial.xml:504(programlisting)
848
#: data/templates/ubuntu-application/help/tutorial.xml:385(para)
850
"Then use the project menu to switch to newly created SaveDialog.ui file."
853
#: data/templates/ubuntu-application/help/tutorial.xml:389(para)
855
"Then add some widgets for the UI. Start with a Vertical Box (VBox) with two "
856
"items. Put a label in the top, and an HBox in the bottom slot. In the HBox, "
857
"add a label and an edit widget, just like you did for JottyWindow in part 1. "
858
"Set the padding and expand properties as well."
861
#: data/templates/ubuntu-application/help/tutorial.xml:393(title)
862
msgid "Code the Dialog"
865
#: data/templates/ubuntu-application/help/tutorial.xml:393(para)
867
"<placeholder-1/> You can use the \"<application>Quickly</application> edit\" "
868
"command to open the SaveDialog.py file. This dialog needs very little "
869
"additional code to work. Essentially, you just need a way to retrieve the "
870
"string specified by the user. We'll add a qiuck accessor method for this:"
873
#: data/templates/ubuntu-application/help/tutorial.xml:396(programlisting)
878
" def title_text(self):\n"
879
" return self.builder.get_object(\"entry1\").get_text()\n"
882
#: data/templates/ubuntu-application/help/tutorial.xml:401(para)
884
"We don't need to write any code for the Ok and Cancel buttons, as they were "
885
"automatically hooked up by <application>Quickly</application> when it "
886
"created the dialog."
889
#: data/templates/ubuntu-application/help/tutorial.xml:402(para)
891
"Before we go on to invoking the dialog, delete HBox from JottyWindow that "
892
"holds the text entry and label, as we won't be needing those."
895
#: data/templates/ubuntu-application/help/tutorial.xml:406(title)
896
msgid "Calling the Save Dialog"
899
#: data/templates/ubuntu-application/help/tutorial.xml:406(para)
901
"<placeholder-1/> To use the dialog in JottyWindow, we need to follow these "
905
#: data/templates/ubuntu-application/help/tutorial.xml:410(para)
906
msgid "Import SaveDialog in JottyWindow"
909
#: data/templates/ubuntu-application/help/tutorial.xml:413(para)
910
msgid "In the save_file function, create an instance of SaveDialog"
913
#: data/templates/ubuntu-application/help/tutorial.xml:416(para) data/templates/ubuntu-application/help/tutorial.xml:590(para)
914
msgid "Run the Dialog"
917
#: data/templates/ubuntu-application/help/tutorial.xml:419(para)
918
msgid "Get the String"
921
#: data/templates/ubuntu-application/help/tutorial.xml:422(para) data/templates/ubuntu-application/help/tutorial.xml:596(para)
922
msgid "Destroy the dialog"
925
#: data/templates/ubuntu-application/help/tutorial.xml:426(title)
926
msgid "Importing the SaveDialog"
929
#: data/templates/ubuntu-application/help/tutorial.xml:426(para)
931
"<placeholder-1/> Add the SaveDialog to the list of the imported modules at "
932
"the top of the bin file of your project, so it looks like this:"
935
#: data/templates/ubuntu-application/help/tutorial.xml:428(programlisting)
939
"from jotty import (\n"
940
" AboutJottyDialog, PreferencesJottyDialog, SaveDialog)\n"
943
#: data/templates/ubuntu-application/help/tutorial.xml:433(title) data/templates/ubuntu-application/help/tutorial.xml:616(title)
944
msgid "Create an instance of the dialog and run it"
947
#: data/templates/ubuntu-application/help/tutorial.xml:433(para)
949
"<placeholder-1/> When the user chooses Save, we want to open the SaveDialog "
950
"and collect the title of the note from the user. So we need to modify our "
951
"save_file function."
954
#: data/templates/ubuntu-application/help/tutorial.xml:436(para)
955
msgid "First, create an instance of the SaveDialog like this:"
958
#: data/templates/ubuntu-application/help/tutorial.xml:437(programlisting)
962
" saver = SaveDialog.SaveDialog()\n"
965
#: data/templates/ubuntu-application/help/tutorial.xml:440(para)
967
"To make the dialog appear, simply use the run() method. However, we want to "
968
"check the result, so we'll need to store that in a variable. After it runs, "
969
"we want to collect the string from the user, like this:"
972
#: data/templates/ubuntu-application/help/tutorial.xml:441(programlisting)
976
" result = saver.run()\n"
977
" title = saver.title_text\n"
980
#: data/templates/ubuntu-application/help/tutorial.xml:445(title)
981
msgid "Clean up the dialog"
984
#: data/templates/ubuntu-application/help/tutorial.xml:445(para)
986
"<placeholder-1/> We need to tell the dialog to not show itself anymore. We "
987
"could call saver.hide() to make it hide, but since we don't need it hanging "
988
"around, we'll just destroy it. Before we go on, though, we need to ensure "
989
"that the user actually wants to save, so if we didn't get the Ok result, we "
990
"should just return out of the function:"
993
#: data/templates/ubuntu-application/help/tutorial.xml:448(programlisting)
998
" if result != gtk.RESPONSE_OK:\n"
1002
#: data/templates/ubuntu-application/help/tutorial.xml:454(para)
1004
"Since we're now getting the title from the dialog instead of the text entry, "
1005
"we should delete the line of the code that sents it from entry1. So except "
1006
"for the addition of the dialog code, the save_file function looks pretty "
1007
"much the same as it did in part 1:"
1010
#: data/templates/ubuntu-application/help/tutorial.xml:457(programlisting)
1014
" def save_file(self, widget, data=None):\n"
1015
" #get the titel from the user\n"
1016
" saver = SaveDialog.SaveDialog()\n"
1017
" result = saver.run()\n"
1018
" title = saver.title_text\n"
1020
" saver.destroy()\n"
1021
" if result != gtk.RESPONSE_OK:\n"
1024
" #get the text to save\n"
1025
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
1026
" start_iter = buff.get_start_iter()\n"
1027
" end_iter = buff.get_end_iter()\n"
1028
" text = buff.get_text(start_iter,end_iter)\n"
1030
" #get all the records\n"
1031
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\"\n"
1032
" results = self.database.get_records(record_type = "
1033
"record_type,create_view = True)\n"
1035
" #update a record that has the same title\n"
1036
" for result in results:\n"
1037
" record = result.value\n"
1038
" if record[\"title\"] == title:\n"
1039
" key = result.key\n"
1040
" self.database.update_fields(key, {\"text\":text})\n"
1043
" #if no records had the title, create it \n"
1044
" new_rec = Record({\"record_type\":record_type,\"title\":title, "
1046
" self.database.put_record(new_rec)\n"
1049
#: data/templates/ubuntu-application/help/tutorial.xml:490(para)
1050
msgid "Now when we choose save, we get the SaveDialog instead:"
1053
#: data/templates/ubuntu-application/help/tutorial.xml:495(title)
1054
msgid "Creating a Dialog with a CouchGrid"
1057
#: data/templates/ubuntu-application/help/tutorial.xml:495(para)
1059
"<placeholder-1/> We'll use a similar approach in the Open dialog that we did "
1060
"with Save. However, there is one big difference, we want to provide the user "
1061
"with a list of documents that you could choose to open. We'll use a widget "
1062
"called CouchGrid, which is included in the quickly-widgets package for this."
1065
#: data/templates/ubuntu-application/help/tutorial.xml:498(title)
1066
msgid "Create the Open Dialog"
1069
#: data/templates/ubuntu-application/help/tutorial.xml:499(programlisting)
1073
"quickly add dialog open\n"
1076
#: data/templates/ubuntu-application/help/tutorial.xml:502(para)
1078
"<placeholder-1/> Start out by closing, and then reopening glade again:"
1081
#: data/templates/ubuntu-application/help/tutorial.xml:507(para)
1083
"Start by adding a VBox and a label in the same manner as in the Save Dialog "
1084
"above. Leave an empty space in the VBox. We will use code to put the "
1088
#: data/templates/ubuntu-application/help/tutorial.xml:511(title)
1089
msgid "Coding the Open Dialog"
1092
#: data/templates/ubuntu-application/help/tutorial.xml:512(title)
1093
msgid "Creating and Adding a CouchGrid"
1096
#: data/templates/ubuntu-application/help/tutorial.xml:512(para)
1098
"<placeholder-1/> It just takes a little bit of code to add a CouchGrid to "
1099
"the dialog. We need to:"
1102
#: data/templates/ubuntu-application/help/tutorial.xml:516(para)
1103
msgid "Import the CouchGrid class."
1106
#: data/templates/ubuntu-application/help/tutorial.xml:519(para)
1108
"Create a CouchGrid pointing at the jotty database, and the desired record "
1112
#: data/templates/ubuntu-application/help/tutorial.xml:522(para)
1113
msgid "Add the CouchGrid to the dialog."
1116
#: data/templates/ubuntu-application/help/tutorial.xml:526(title)
1117
msgid "Import the CouchGrid class"
1120
#: data/templates/ubuntu-application/help/tutorial.xml:526(para)
1122
"<placeholder-1/> CouchGrid is part of the quickly.widgets api, so we import "
1126
#: data/templates/ubuntu-application/help/tutorial.xml:528(programlisting)
1130
"from quickly.widgets.couch_grid import CouchGrid\n"
1133
#: data/templates/ubuntu-application/help/tutorial.xml:531(title)
1134
msgid "Create the CouchGrid"
1137
#: data/templates/ubuntu-application/help/tutorial.xml:531(para)
1139
"<placeholder-1/> A CouchGrid needs to know three things, the name of the "
1140
"database, the name of the record type, and the name of the keys to use. "
1141
"\"keys\" is a list of fields that the widget will display, and by default "
1142
"will also use the same text for the heading of any columns. This set up "
1143
"should be done in the OpenDialog's finish_initalizing function. All this is "
1144
"easily done in code like this:"
1147
#: data/templates/ubuntu-application/help/tutorial.xml:535(programlisting)
1151
" database = \"jotty\"\n"
1152
" keys = [\"title\"]\n"
1153
" record_type = \"http://wiki.ubuntu.com/Quickly/JottyDoc\"\n"
1154
" self.couchgrid = CouchGrid(database, "
1155
"record_type=record_type,keys=keys)\n"
1159
#: data/templates/ubuntu-application/help/tutorial.xml:542(title)
1160
msgid "Add the CouchGrid to the Dialog"
1163
#: data/templates/ubuntu-application/help/tutorial.xml:542(para)
1165
"<placeholder-1/> we added the VBox to the dialog, we left an open space at "
1166
"the bottom. We'll use this by \"packing\" the CouchGrid into the VBox. We "
1167
"need to show it as well. So add the following lines to the "
1168
"finish_initializing function as well:"
1171
#: data/templates/ubuntu-application/help/tutorial.xml:546(programlisting)
1175
" self.couchgrid.show()\n"
1176
" self.builder.get_object(\"vbox1\").pack_end(self.couchgrid)\n"
1180
#: data/templates/ubuntu-application/help/tutorial.xml:552(title)
1181
msgid "Create the get_selection function"
1184
#: data/templates/ubuntu-application/help/tutorial.xml:552(para)
1186
"<placeholder-1/> The dialog still needs a bit more code to work. It needs to "
1187
"return the user's selection, if there is one. To do this, we need to ask the "
1188
"CouchGrid what is selected. This is easy using the widgets "
1189
"selected_record_ids function. But the CouchGrid supports multiple selection, "
1190
"so we'll do the following:"
1193
#: data/templates/ubuntu-application/help/tutorial.xml:556(para)
1194
msgid "Use a decorator to define the function as a property accessor."
1197
#: data/templates/ubuntu-application/help/tutorial.xml:559(para)
1198
msgid "Get all the selected record ids."
1201
#: data/templates/ubuntu-application/help/tutorial.xml:562(para)
1202
msgid "If none are selected, return None."
1205
#: data/templates/ubuntu-application/help/tutorial.xml:565(para)
1206
msgid "Pick the first one and return it."
1209
#: data/templates/ubuntu-application/help/tutorial.xml:568(para)
1210
msgid "So the function to add to OpenDialog looks like this:"
1213
#: data/templates/ubuntu-application/help/tutorial.xml:570(programlisting)
1218
" def selected_record_id(self):\n"
1219
" ids = self.couchgrid.selected_record_ids\n"
1220
" if len(ids) < 1:\n"
1227
#: data/templates/ubuntu-application/help/tutorial.xml:580(title)
1228
msgid "Using the Open Dialog"
1231
#: data/templates/ubuntu-application/help/tutorial.xml:580(para)
1233
"<placeholder-1/> Now we want to use the Open Dialog in the JottyWindow "
1234
"open_file function. To use it,we'll follow these steps:"
1237
#: data/templates/ubuntu-application/help/tutorial.xml:584(para)
1238
msgid "Import OpenDialog in JottyWindow"
1241
#: data/templates/ubuntu-application/help/tutorial.xml:587(para)
1242
msgid "In the open_file function, create an instance of OpenDialog"
1245
#: data/templates/ubuntu-application/help/tutorial.xml:593(para)
1246
msgid "Get the id for the selected title."
1249
#: data/templates/ubuntu-application/help/tutorial.xml:599(para)
1250
msgid "Check the response before proceeding"
1253
#: data/templates/ubuntu-application/help/tutorial.xml:602(para) data/templates/ubuntu-application/help/tutorial.xml:634(title)
1254
msgid "Use the id to get the record from CouchDB"
1257
#: data/templates/ubuntu-application/help/tutorial.xml:605(para) data/templates/ubuntu-application/help/tutorial.xml:644(title)
1258
msgid "Update the UI"
1261
#: data/templates/ubuntu-application/help/tutorial.xml:609(title)
1262
msgid "Import OpenDialog"
1265
#: data/templates/ubuntu-application/help/tutorial.xml:609(para)
1267
"<placeholder-1/> Just like the SaveDialog, add the import line to the list "
1271
#: data/templates/ubuntu-application/help/tutorial.xml:611(programlisting)
1275
"from jotty import (\n"
1276
" AboutJottyDialog, PreferencesJottyDialog, SaveDialog, OpenDialog)\n"
1279
#: data/templates/ubuntu-application/help/tutorial.xml:616(para)
1281
"<placeholder-1/> So now we're ready to call the dialog from the "
1282
"JottyWindow's open_file function. Creating the OpenDialog is exactly the "
1283
"same as creating the SaveDialog, except we also want to tell it to load the "
1284
"titles before we run it:"
1287
#: data/templates/ubuntu-application/help/tutorial.xml:619(programlisting)
1290
"opener = OpenDialog.NewODialog()\n"
1291
" result = opener.run()"
1294
#: data/templates/ubuntu-application/help/tutorial.xml:622(title)
1295
msgid "Get the id for the selected title"
1298
#: data/templates/ubuntu-application/help/tutorial.xml:622(para)
1300
"<placeholder-1/> Now use the property that we created to retrieve the title "
1301
"and text from the dialog. Don't forget to check the response type before "
1305
#: data/templates/ubuntu-application/help/tutorial.xml:625(programlisting)
1309
" rec_id = opener.selected_record_id\n"
1311
" #close the dialog, and check whether to proceed\n"
1312
" opener.destroy()\n"
1313
" if result != gtk.RESPONSE_OK:\n"
1317
#: data/templates/ubuntu-application/help/tutorial.xml:634(para)
1319
"<placeholder-1/> If nothing was selected, we'll just return. Otherwise, "
1320
"we'll retrieve the record from CouchDB and pull out the text for the "
1324
#: data/templates/ubuntu-application/help/tutorial.xml:637(programlisting)
1328
" #get the record from CouchDB and extract the text\n"
1329
" if rec_id == None:\n"
1331
" record = self.database.get_record(rec_id)\n"
1332
" text = record[\"text\"]"
1335
#: data/templates/ubuntu-application/help/tutorial.xml:644(para)
1336
msgid "<placeholder-1/> Now just put the text into the texview:"
1339
#: data/templates/ubuntu-application/help/tutorial.xml:647(programlisting)
1343
" #set the UI to display the string\n"
1344
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
1345
" buff.set_text(text)"
1348
#: data/templates/ubuntu-application/help/tutorial.xml:651(para)
1350
"That's all there is to it. So the whole open_file function looks like this:"
1353
#: data/templates/ubuntu-application/help/tutorial.xml:653(programlisting)
1357
" def open_file(self, widget, data=None):\n"
1358
" #run the open dialog\n"
1359
" opener = OpenDialog.OpenDialog()\n"
1360
" result = opener.run()\n"
1362
" #get the record id from the dialog\n"
1363
" rec_id = opener.selected_record_id\n"
1365
" #close the dialog, and check whether to proceed\n"
1366
" opener.destroy()\n"
1367
" if result != gtk.RESPONSE_OK:\n"
1370
" #get the record from CouchDB and extract the text\n"
1371
" if rec_id == None:\n"
1373
" record = self.database.get_record(rec_id)\n"
1374
" text = record[\"text\"]\n"
1376
" #set the UI to display the string\n"
1377
" buff = self.builder.get_object(\"textview1\").get_buffer()\n"
1378
" buff.set_text(text)\n"
1382
#: data/templates/ubuntu-application/help/tutorial.xml:678(para)
1383
msgid "Now users get a nice open dialog:"
1386
#: data/templates/ubuntu-application/help/tutorial.xml:683(para)
1388
"However, the application is not complete. There are a few things left for "
1392
#: data/templates/ubuntu-application/help/tutorial.xml:686(para)
1394
"Set the title of the JottyWindow to display the note title. Try "
1395
"self.set_text(title)."
1398
#: data/templates/ubuntu-application/help/tutorial.xml:689(para)
1400
"The Save command works more like \"Save As\". The application probably "
1401
"shouldn't pop up a SaveDialog every time you want to save. If it's already "
1402
"been saved, you probably just want to save it, but use a SaveDialog when the "
1403
"user choose Save As, or is saving a document for the first time."
1406
#: data/templates/ubuntu-application/help/tutorial.xml:692(para)
1408
"The OpenDialog should probably return when the user double clicks on an item "
1409
"in the list. Try connecting to the \"select-cursor-row\" signal on the "
1410
"TreeView, and calling self.response(gtk.RESPONSE_OK) in the handler."
1413
#: data/templates/ubuntu-application/help/tutorial.xml:695(para)
1415
"Perhaps the Ok button in the OpenDialog should be disabled if nothing is "
1416
"selected. Try setting the \"sensitivity\" in Glade, and the set_sensitive "
1417
"function for the Ok button."
1420
#: data/templates/ubuntu-application/help/tutorial.xml:698(para)
1422
"It would be more consistent for the Open and Close dialogs to have \"Open\" "
1423
"and \"Close\" for buttons instead of \"Ok\". You can set a different type in "
1424
"the properties window in Glade."
1427
#: data/templates/ubuntu-application/help/tutorial.xml:701(para)
1429
"Loading every document into the open dialog is probably a bit inefficient. "
1430
"Perhaps storing the document id and using that to retrieve the document "
1431
"would be a better implementation."
1434
#: data/templates/ubuntu-application/help/tutorial.xml:707(title)
1438
#: data/templates/ubuntu-application/help/tutorial.xml:708(para)
1440
"In parts 1 and 2, we showed how to create a simple Ubuntu application using "
1441
"<application>Quickly</application>. This section will cover how to package "
1442
"an application so that it is easy for you to share, and easy for other "
1443
"people to install."
1446
#: data/templates/ubuntu-application/help/tutorial.xml:709(title)
1447
msgid "License your Application"
1450
#: data/templates/ubuntu-application/help/tutorial.xml:709(para)
1452
"<placeholder-1/> It's important to license your code so users and other "
1453
"programmers know their rights in terms of redistributing or modifying it. To "
1454
"<application>Quickly</application> grant a GPL license to your code, simply:"
1457
#: data/templates/ubuntu-application/help/tutorial.xml:713(para)
1458
msgid "Specify your name and email address in the Copyright file."
1461
#: data/templates/ubuntu-application/help/tutorial.xml:716(para)
1462
msgid "Run the \"license\" command."
1465
#: data/templates/ubuntu-application/help/tutorial.xml:720(title)
1466
msgid "Specify your name and email"
1469
#: data/templates/ubuntu-application/help/tutorial.xml:720(para)
1471
"<placeholder-1/> When <application>Quickly</application> created your ubuntu "
1472
"application, it added a file named Copyright in the top level of the "
1473
"directory. Open this file in your text editor, and modify the top line so it "
1474
"has your name and email included. Be sure not to modify other lines as it "
1475
"will interfere with the next step. For example, I would change the entire "
1476
"file to look like this:"
1479
#: data/templates/ubuntu-application/help/tutorial.xml:723(programlisting)
1482
"# Copyright (C) 2009 Rick Spencer rick.spencer@canonical.com\n"
1483
"### BEGIN AUTOMATIC LICENSE GENERATION\n"
1484
"### END AUTOMATIC LICENSE GENERATION\n"
1487
#: data/templates/ubuntu-application/help/tutorial.xml:727(title)
1488
msgid "Run the \"License\" Command"
1491
#: data/templates/ubuntu-application/help/tutorial.xml:727(para)
1493
"<placeholder-1/> By default, <application>Quickly</application> will use a "
1494
"GPL 3 license for your project. To use this license, use this command:"
1497
#: data/templates/ubuntu-application/help/tutorial.xml:729(programlisting) data/templates/ubuntu-application/help/tutorial.xml:751(programlisting)
1501
"<application>Quickly</application> license\n"
1504
#: data/templates/ubuntu-application/help/tutorial.xml:732(para)
1506
"This will add the GPL 3 license to all of your code files that you've added "
1507
"to your project using <application>Quickly</application>."
1510
#: data/templates/ubuntu-application/help/tutorial.xml:733(para)
1511
msgid "Keep in mind a couple of things:"
1514
#: data/templates/ubuntu-application/help/tutorial.xml:736(para)
1516
"This is a one way trip. Once you license the project, changes to the license "
1517
"must be done manually."
1520
#: data/templates/ubuntu-application/help/tutorial.xml:739(para)
1522
"If you prefer a GPL 2 license, you can specify that when you issue the "
1526
#: data/templates/ubuntu-application/help/tutorial.xml:740(programlisting)
1530
"<application>Quickly</application> license GPL-2\n"
1533
#: data/templates/ubuntu-application/help/tutorial.xml:745(para)
1535
"<application>Quickly</application> doesn't care what license you use, but "
1536
"only knows natively what files and headers to include for BSD, GPL-2, GPL-3, "
1537
"LGPL-2 and LGPL-3. If you prefer another license, you can simply add "
1538
"whatever you license you like by adding your own license in the Copyright "
1542
#: data/templates/ubuntu-application/help/tutorial.xml:747(programlisting)
1545
"### BEGIN AUTOMATIC LICENSE GENERATION\n"
1546
"# My personal license here\n"
1547
"### END AUTOMATIC LICENSE GENERATION"
1550
#: data/templates/ubuntu-application/help/tutorial.xml:750(para)
1551
msgid "and then run:"
1554
#: data/templates/ubuntu-application/help/tutorial.xml:754(para)
1555
msgid "to license every files."
1558
#: data/templates/ubuntu-application/help/tutorial.xml:757(para)
1560
"If you've added code files or other files to your project manually, you will "
1561
"need to add the license to those files manually or add those tags at the "
1562
"beginning of the file:"
1565
#: data/templates/ubuntu-application/help/tutorial.xml:759(programlisting)
1568
"### BEGIN LICENSE\n"
1572
#: data/templates/ubuntu-application/help/tutorial.xml:764(title)
1573
msgid "Translate Your Application"
1576
#: data/templates/ubuntu-application/help/tutorial.xml:764(para)
1578
"<placeholder-1/> To allow for users from other countries to use your "
1579
"application you may want to translate it. Glade automatically creates a pot "
1580
"file for you but to translate strings in your code you have to:"
1583
#: data/templates/ubuntu-application/help/tutorial.xml:766(programlisting)
1585
msgid "import gettext"
1588
#: data/templates/ubuntu-application/help/tutorial.xml:767(programlisting)
1590
msgid "gettext.gettext(\"What you want translated\")"
1593
#: data/templates/ubuntu-application/help/tutorial.xml:769(title)
1594
msgid "Specify Application Settings"
1597
#: data/templates/ubuntu-application/help/tutorial.xml:769(para)
1599
"<placeholder-1/> You should personalize your application a little before "
1600
"creating the archive. This is very easy to do, as all of the files that you "
1601
"need have already been created, and only need a few lines changed to make "
1602
"them your own. To do this you should:"
1605
#: data/templates/ubuntu-application/help/tutorial.xml:773(para)
1606
msgid "Personalize the Application Icon"
1609
#: data/templates/ubuntu-application/help/tutorial.xml:774(para) data/templates/ubuntu-application/help/tutorial.xml:788(title)
1610
msgid "Edit the Desktop File"
1613
#: data/templates/ubuntu-application/help/tutorial.xml:775(para)
1614
msgid "Edit the setup.py File"
1617
#: data/templates/ubuntu-application/help/tutorial.xml:778(title)
1618
msgid "Personalize your Application Icon"
1621
#: data/templates/ubuntu-application/help/tutorial.xml:778(para)
1623
"<placeholder-1/> When users install your application, Ubuntu will display an "
1624
"icon next to it in the menus. You can create your own icon or edit the file "
1625
"called \"icon.png\" in the media directory (jotty/data/media). Ubuntu comes "
1626
"with a great image editing program called \"Gimp.\" So you can go:"
1629
#: data/templates/ubuntu-application/help/tutorial.xml:780(programlisting)
1633
"gimp data/media/icon.png\n"
1636
#: data/templates/ubuntu-application/help/tutorial.xml:786(para)
1638
"If you don't personalize the icon, it's ok, your app will just have the "
1639
"default icon, such as in the image below."
1642
#: data/templates/ubuntu-application/help/tutorial.xml:788(para)
1644
"<placeholder-1/> By default, <application>Quickly</application> Ubuntu "
1645
"applications are classified as \"utilities\", so they show up under the "
1646
"Accessories menu in Ubuntu. If we wanted to make Jotty show up in another "
1647
"category, we can do this by editing the desktop file. A desktop file is a "
1648
"file that describes your application to a Linux desktop. The file "
1649
"\"jottydesktop.in\" was automatically created in the jotty project "
1650
"directory. To change Jotty from a Utility to an Office application, edit "
1651
"jotty.desktop.in and change this:"
1654
#: data/templates/ubuntu-application/help/tutorial.xml:792(programlisting)
1659
"Comment=Jotty application\n"
1660
"Categories=GNOME;Utility;\n"
1664
"Type=Application\n"
1667
#: data/templates/ubuntu-application/help/tutorial.xml:802(para)
1671
#: data/templates/ubuntu-application/help/tutorial.xml:806(programlisting)
1676
"Comment=Jotty application\n"
1677
"Categories=GNOME;Office;\n"
1684
#: data/templates/ubuntu-application/help/tutorial.xml:814(para)
1686
"There are lots more categories that you can use, all defined by the "
1687
"FreeDesktop spec. You can see the complete list in the <ulink "
1688
"url=\"http://standards.freedesktop.org/menu-spec/latest/apa.html\">menu "
1692
#: data/templates/ubuntu-application/help/tutorial.xml:818(title)
1693
msgid "Edit Setup.py"
1696
#: data/templates/ubuntu-application/help/tutorial.xml:817(para)
1698
"<placeholder-1/> Finally, you should include some information in the "
1699
"setup.py file to tell your users a little about yourself. The setup.py file "
1700
"was created for you, just like the desktop file. Most of of the setup.py "
1701
"file shouldn't be modified, as it is just boiler plate that makes your "
1702
"application work properly after it has been installed. However, there is a "
1703
"section at the bottom of the setup.py file that you should edit to describe "
1704
"yourself and the application."
1707
#: data/templates/ubuntu-application/help/tutorial.xml:821(para)
1708
msgid "So I would change this section:"
1711
#: data/templates/ubuntu-application/help/tutorial.xml:825(programlisting)
1714
"DistUtilsExtra.auto.setup(\n"
1717
" license='GPL v3',\n"
1718
" #author='Your Name',\n"
1719
" #author_email='email@ubuntu.com',\n"
1720
" #description='UI for managing …',\n"
1721
" #long_description='Here a longer description',\n"
1722
" #url='https://launchpad.net/jotty',\n"
1723
" cmdclass={'install': InstallAndUpdateDataDirectory}\n"
1727
#: data/templates/ubuntu-application/help/tutorial.xml:837(para)
1728
msgid "To look like this:"
1731
#: data/templates/ubuntu-application/help/tutorial.xml:841(programlisting)
1734
"DistUtilsExtra.auto.setup(\n"
1737
" license='GPL v3',\n"
1738
" author='Rick Spencer',\n"
1739
" author_email='rick.spencer@canonical.com',\n"
1740
" description='Note taking application',\n"
1741
" long_description='Note taking application that uses CouchDB as the "
1742
"backend to support easy replication across users and computers.',\n"
1743
" #url='https://launchpad.net/jotty',\n"
1744
" cmdclass={'install': InstallAndUpdateDataDirectory}\n"
1748
#: data/templates/ubuntu-application/help/tutorial.xml:852(para)
1750
"Note that the license has already been set up for you. author and "
1751
"author_email are updated each time you connect to Launchpad (with "
1752
"<application>Quickly</application> release or "
1753
"<application>Quickly</application> share) with your Launchpad real name and "
1754
"preferred email adress."
1757
#: data/templates/ubuntu-application/help/tutorial.xml:853(para)
1759
"Notice that Jotty doesn't have a web page yet, so I just left that line "
1760
"commented out. Also, you don't have to increment version number as "
1761
"<application>Quickly</application> share and "
1762
"<application>Quickly</application> release commands will make it for you.."
1765
#: data/templates/ubuntu-application/help/tutorial.xml:857(title)
1766
msgid "Create and Test the Debian Archive"
1769
#: data/templates/ubuntu-application/help/tutorial.xml:857(para)
1771
"<placeholder-1/> After personalizing the project, we are now ready to create "
1772
"the package. This is easily done by issuing the package command:"
1775
#: data/templates/ubuntu-application/help/tutorial.xml:860(programlisting) data/templates/ubuntu-application/help/tutorial.xml:1062(programlisting)
1779
"<application>Quickly</application> package\n"
1782
#: data/templates/ubuntu-application/help/tutorial.xml:863(para)
1784
"This command will take a little while to discover dependencies and create "
1785
"all the required archives, etc... It will also report some errors as we "
1786
"haven't created a PGP key, for instance. None the less, when it is done, the "
1787
"package will be created. Using the file browser, you can see the created "
1788
"package next to the project directory:"
1791
#: data/templates/ubuntu-application/help/tutorial.xml:867(para)
1793
"Right now, the specific file we are interested in is \"jotty_0.1_all.deb\". "
1794
"To test it out, double click on it, to open it in Ubuntu's graphical "
1795
"installer program:"
1798
#: data/templates/ubuntu-application/help/tutorial.xml:871(para)
1800
"Click \"Install Package\" to see how it installs onto your desktop. After "
1801
"chugging for a bit, you'll see that it is installed in the Applications-"
1802
">Office menu. If you customized your icon, you'll see that the menu uses "
1803
"your custom icon as well."
1806
#: data/templates/ubuntu-application/help/tutorial.xml:875(title)
1807
msgid "Now that you have a package"
1810
#: data/templates/ubuntu-application/help/tutorial.xml:875(para)
1812
"<placeholder-1/> Now that you've packaged your application, you can share "
1813
"the .deb file. However, if your users install their application this way, "
1814
"and you update the application, your users will have to find this out and "
1815
"resinstall. This hassle can be avoided in Ubuntu by using Personal Package "
1816
"Archives (or PPAs). Distrubuting your applications in this manner is covered "
1817
"in section 4 (not yet available)."
1820
#: data/templates/ubuntu-application/help/tutorial.xml:879(title)
1822
"<application>Quickly</application>: <application>Quickly</application> "
1826
#: data/templates/ubuntu-application/help/tutorial.xml:880(para)
1828
"The ubuntu-application template template contains the following commands."
1831
#: data/templates/ubuntu-application/help/tutorial.xml:883(xref) data/templates/ubuntu-application/help/tutorial.xml:916(title) data/templates/ubuntu-application/help/tutorial.xml:917(title)
1835
#: data/templates/ubuntu-application/help/tutorial.xml:886(xref) data/templates/ubuntu-application/help/tutorial.xml:943(title)
1839
#: data/templates/ubuntu-application/help/tutorial.xml:889(xref) data/templates/ubuntu-application/help/tutorial.xml:988(title) data/templates/ubuntu-application/help/tutorial.xml:989(title)
1843
#: data/templates/ubuntu-application/help/tutorial.xml:892(xref)
1847
#: data/templates/ubuntu-application/help/tutorial.xml:895(xref) data/templates/ubuntu-application/help/tutorial.xml:1012(title) data/templates/ubuntu-application/help/tutorial.xml:1013(title)
1851
#: data/templates/ubuntu-application/help/tutorial.xml:898(xref) data/templates/ubuntu-application/help/tutorial.xml:1021(title) data/templates/ubuntu-application/help/tutorial.xml:1022(title)
1855
#: data/templates/ubuntu-application/help/tutorial.xml:901(xref) data/templates/ubuntu-application/help/tutorial.xml:1060(title) data/templates/ubuntu-application/help/tutorial.xml:1061(title)
1859
#: data/templates/ubuntu-application/help/tutorial.xml:904(xref) data/templates/ubuntu-application/help/tutorial.xml:1077(title) data/templates/ubuntu-application/help/tutorial.xml:1078(title)
1863
#: data/templates/ubuntu-application/help/tutorial.xml:907(xref) data/templates/ubuntu-application/help/tutorial.xml:1112(title) data/templates/ubuntu-application/help/tutorial.xml:1113(title)
1867
#: data/templates/ubuntu-application/help/tutorial.xml:910(xref) data/templates/ubuntu-application/help/tutorial.xml:1122(title) data/templates/ubuntu-application/help/tutorial.xml:1123(title)
1871
#: data/templates/ubuntu-application/help/tutorial.xml:913(xref) data/templates/ubuntu-application/help/tutorial.xml:1137(title) data/templates/ubuntu-application/help/tutorial.xml:1139(title)
1875
#: data/templates/ubuntu-application/help/tutorial.xml:917(para) data/templates/ubuntu-application/help/tutorial.xml:944(para) data/templates/ubuntu-application/help/tutorial.xml:989(para) data/templates/ubuntu-application/help/tutorial.xml:1000(para) data/templates/ubuntu-application/help/tutorial.xml:1013(para) data/templates/ubuntu-application/help/tutorial.xml:1022(para) data/templates/ubuntu-application/help/tutorial.xml:1061(para) data/templates/ubuntu-application/help/tutorial.xml:1078(para) data/templates/ubuntu-application/help/tutorial.xml:1113(para) data/templates/ubuntu-application/help/tutorial.xml:1123(para) data/templates/ubuntu-application/help/tutorial.xml:1138(para)
1876
msgid "<placeholder-1/> Usage:"
1879
#: data/templates/ubuntu-application/help/tutorial.xml:919(programlisting)
1883
"<application>Quickly</application> create ubuntu-application "
1884
"path/to/project_name"
1887
#: data/templates/ubuntu-application/help/tutorial.xml:921(para)
1889
"where \"project_name\" is one or more words separated by an underscore and "
1890
"path/to can be any existing path."
1893
#: data/templates/ubuntu-application/help/tutorial.xml:924(para)
1895
"This will create and run a new project, including Python code, Glade files, "
1896
"and packaging files to make the project work. After creating the project, "
1900
#: data/templates/ubuntu-application/help/tutorial.xml:930(para)
1901
msgid "Changing your working directory to the new project:"
1904
#: data/templates/ubuntu-application/help/tutorial.xml:932(programlisting)
1906
msgid "cd path/to/project_name"
1909
#: data/templates/ubuntu-application/help/tutorial.xml:934(para)
1910
msgid "Edit the UI with Glade:"
1913
#: data/templates/ubuntu-application/help/tutorial.xml:935(programlisting)
1915
msgid "<application>Quickly</application> design"
1918
#: data/templates/ubuntu-application/help/tutorial.xml:937(para)
1919
msgid "Edit the Python code:"
1922
#: data/templates/ubuntu-application/help/tutorial.xml:938(programlisting) data/templates/ubuntu-application/help/tutorial.xml:967(programlisting)
1924
msgid "<application>Quickly</application> edit"
1927
#: data/templates/ubuntu-application/help/tutorial.xml:944(title)
1931
#: data/templates/ubuntu-application/help/tutorial.xml:946(programlisting)
1933
msgid "<application>Quickly</application> dialog dialog_name"
1936
#: data/templates/ubuntu-application/help/tutorial.xml:947(para)
1937
msgid "where dialog_name is one or more words seperated with underscore"
1940
#: data/templates/ubuntu-application/help/tutorial.xml:948(para)
1941
msgid "This will create:"
1944
#: data/templates/ubuntu-application/help/tutorial.xml:952(para)
1946
"A subclass of gtk.Dialog called DialogNameDialog in the module "
1947
"DialogNameDialog.py"
1950
#: data/templates/ubuntu-application/help/tutorial.xml:955(para)
1951
msgid "A glade file called DialogNameDialog.ui in the ui directory"
1954
#: data/templates/ubuntu-application/help/tutorial.xml:958(para)
1955
msgid "A catalog file called dialog_name_dialog.xml also in the ui directory"
1958
#: data/templates/ubuntu-application/help/tutorial.xml:961(para)
1959
msgid "To edit the UI for the dialog, run:"
1962
#: data/templates/ubuntu-application/help/tutorial.xml:963(programlisting)
1964
msgid "<application>Quickly</application> design\n"
1967
#: data/templates/ubuntu-application/help/tutorial.xml:965(para)
1968
msgid "To edit the behavior, run:"
1971
#: data/templates/ubuntu-application/help/tutorial.xml:968(para)
1972
msgid "To use the dialog you have to invoke it from another python file:"
1975
#: data/templates/ubuntu-application/help/tutorial.xml:972(programlisting)
1979
"Import the dialog\n"
1980
"import DialogNameDialog\n"
1983
#: data/templates/ubuntu-application/help/tutorial.xml:976(programlisting)
1987
"Create an instance of the dialog\n"
1988
"dialog = DialogNameDialog.NewDialogNameDialog()\n"
1991
#: data/templates/ubuntu-application/help/tutorial.xml:980(programlisting)
1995
"Run the dialog and hide the dialog\n"
1996
"result = dialog.run()\n"
2000
#: data/templates/ubuntu-application/help/tutorial.xml:991(programlisting)
2004
"<application>Quickly</application> edit\n"
2007
#: data/templates/ubuntu-application/help/tutorial.xml:993(para)
2009
"A convenience command to open all of your python files in your project "
2010
"directory in your default editor, ready for editing."
2013
#: data/templates/ubuntu-application/help/tutorial.xml:999(title) data/templates/ubuntu-application/help/tutorial.xml:1000(title)
2017
#: data/templates/ubuntu-application/help/tutorial.xml:1001(programlisting)
2021
"<application>Quickly</application> design\n"
2024
#: data/templates/ubuntu-application/help/tutorial.xml:1003(para)
2026
"Opens Glade UI editor so that you can edit the UI for dialogs and windows in "
2027
"your project. Note that you *must* open Glade in this manner for "
2028
"<application>Quickly</application> to work. If you try to open Glade "
2029
"directly, and the open the UI files, Glade will throw errors and won't open "
2033
#: data/templates/ubuntu-application/help/tutorial.xml:1014(programlisting)
2037
"<application>Quickly</application> help\n"
2040
#: data/templates/ubuntu-application/help/tutorial.xml:1016(para)
2041
msgid "Opens a web browser with the help index."
2044
#: data/templates/ubuntu-application/help/tutorial.xml:1023(programlisting)
2048
"<application>Quickly</application> license <Your_Licence=\n"
2051
#: data/templates/ubuntu-application/help/tutorial.xml:1025(para)
2052
msgid "Adds license to project files. Before using this command, you should:"
2055
#: data/templates/ubuntu-application/help/tutorial.xml:1029(para)
2057
"run <application>Quickly</application> save in case something goes wrong"
2060
#: data/templates/ubuntu-application/help/tutorial.xml:1032(para)
2061
msgid "Edit the file Copyright to include your authorship."
2064
#: data/templates/ubuntu-application/help/tutorial.xml:1034(para)
2066
"If you want to put your own <application>Quickly</application> unsupported "
2067
"Licence, remove and replace the tags ### BEGIN AUTOMATIC LICENCE GENERATION "
2068
"and ### END AUTOMATIC LICENCE GENERATION in it by your own licence."
2071
#: data/templates/ubuntu-application/help/tutorial.xml:1039(programlisting)
2073
msgid "<application>Quickly</application> license"
2076
#: data/templates/ubuntu-application/help/tutorial.xml:1039(programlisting)
2078
msgid "<application>Quickly</application> licence <License="
2081
#: data/templates/ubuntu-application/help/tutorial.xml:1038(para)
2083
"Executes either <placeholder-1/> or <placeholder-2/> where <License= can "
2084
"be either: - GPL-3 (default) - GPL-2"
2087
#: data/templates/ubuntu-application/help/tutorial.xml:1045(para)
2089
"This will modify the Copyright file with the chosen licence (with GPL-3 by "
2090
"default). Updating previous chosen Licence if needed. If you previously "
2091
"removed the tags to add your own licence, it will leave it pristine. If no "
2092
"name is attributed to the Copyright, it will try to retrieve it from "
2093
"Launchpad (in <application>Quickly</application> release or "
2094
"<application>Quickly</application> share command only)"
2097
#: data/templates/ubuntu-application/help/tutorial.xml:1051(para)
2098
msgid "Finally, this will copy the Copyright at the head of every files."
2101
#: data/templates/ubuntu-application/help/tutorial.xml:1053(para)
2103
"Note that if you don't run <application>Quickly</application> licence before "
2104
"calling <application>Quickly</application> release or "
2105
"<application>Quickly</application> share, this one will execute it for you "
2106
"and guess the copyright holder from your launchpad account if you didn't "
2110
#: data/templates/ubuntu-application/help/tutorial.xml:1064(para)
2112
"Creates a debian file (deb) from your project. Before running the package "
2113
"command you can edit the Icon and Category entry of *.desktop.in file, where "
2114
"* is the name of your project."
2117
#: data/templates/ubuntu-application/help/tutorial.xml:1068(para)
2119
"Note that if you didn't run <application>Quickly</application> release, "
2120
"<application>Quickly</application> share or "
2121
"<application>Quickly</application> change-lp-project you may miss the name, "
2122
"email in setup.py. You can edit them if you don't want to use any of these "
2123
"commands afterwards. Those changes are not a mandatory at all for testing "
2127
#: data/templates/ubuntu-application/help/tutorial.xml:1079(programlisting)
2131
"<application>Quickly</application> release\n"
2134
#: data/templates/ubuntu-application/help/tutorial.xml:1081(para)
2136
"Posts a release of your project to a PPA on launchpad so that users can "
2137
"install the application on their system."
2140
#: data/templates/ubuntu-application/help/tutorial.xml:1086(programlisting) data/templates/ubuntu-application/help/tutorial.xml:1089(programlisting)
2142
msgid "<application>Quickly</application> release <release_number="
2145
#: data/templates/ubuntu-application/help/tutorial.xml:1084(para)
2147
"You can also execute: <placeholder-1/> of you don't want to use current "
2148
"release_number. The release_number must be a number."
2151
#: data/templates/ubuntu-application/help/tutorial.xml:1088(para)
2153
"<placeholder-1/> notes about changes where \"notes about changes\" is "
2154
"optional text describing what changes were made since the last save"
2157
#: data/templates/ubuntu-application/help/tutorial.xml:1092(para)
2159
"Before running <application>Quickly</application> release, you should: "
2160
"create your account and a project page on http://launchpad.net. You also "
2161
"have to add a PPA to your launchpad account."
2164
#: data/templates/ubuntu-application/help/tutorial.xml:1096(para)
2166
"Name, email and version setup.py will be automatically changed. (version "
2167
"will be <current_release= and bzr will commit and tagged. Once the "
2168
"release is done, <current_release= will be incremented by 0.1 to be ready "
2172
#: data/templates/ubuntu-application/help/tutorial.xml:1101(para)
2174
"If you previously used <application>Quickly</application> shared "
2175
"<current_release=~publicX will be dropped to release <current_release= "
2176
"version (<current_release=~publicX <current_release=) You can modify "
2177
"the description and long description if you wish."
2180
#: data/templates/ubuntu-application/help/tutorial.xml:1107(programlisting)
2182
msgid "<application>Quickly</application> package"
2185
#: data/templates/ubuntu-application/help/tutorial.xml:1106(para)
2187
"You can run <placeholder-1/> and test your package to make sure it installs "
2188
"as expected. (This is not mandatory)"
2191
#: data/templates/ubuntu-application/help/tutorial.xml:1114(programlisting)
2195
"<application>Quickly</application> run\n"
2198
#: data/templates/ubuntu-application/help/tutorial.xml:1116(para)
2200
"Runs your application. This is the best way to try test it out while you are "
2201
"developing it. It starts up the main project window."
2204
#: data/templates/ubuntu-application/help/tutorial.xml:1124(programlisting)
2208
"<application>Quickly</application> save notes about changes\n"
2211
#: data/templates/ubuntu-application/help/tutorial.xml:1126(para)
2213
"where \"notes about changes\" is optional text describing what changes were "
2214
"made since the last save."
2217
#: data/templates/ubuntu-application/help/tutorial.xml:1133(programlisting)
2222
#: data/templates/ubuntu-application/help/tutorial.xml:1129(para)
2224
"This command commits all changes since the last save to bzr. Note that it "
2225
"does not push changes to any back up location. If you need revert or "
2226
"otherwise use the revision control, use bzr directly: <placeholder-1/>"
2229
#: data/templates/ubuntu-application/help/tutorial.xml:1140(programlisting)
2233
"<application>Quickly</application> share"
2236
#: data/templates/ubuntu-application/help/tutorial.xml:1142(para)
2237
msgid "Updates your PPA with the the latest saved project changes."
2240
#: data/templates/ubuntu-application/help/tutorial.xml:1144(para)
2242
"Before running <application>Quickly</application> release, you should: "
2243
"create your account on http://launchpad.net. You also have to add a PPA to "
2244
"your launchpad account."
2247
#: data/templates/ubuntu-application/help/tutorial.xml:1148(para)
2249
"Name, email and version setup.py will be automatically changed. (version "
2250
"will be <current_release~publicX= where X will be incremented at each "
2251
"<application>Quickly</application> share execution) You can modify the "
2252
"description and long description if you wish."
2255
#: data/templates/ubuntu-application/help/tutorial.xml:1158(title)
2259
#: data/templates/ubuntu-application/help/tutorial.xml:1160(link)
2260
msgid "<placeholder-1/>: <placeholder-2/> Command Reference"
2263
#: data/templates/ubuntu-application/help/tutorial.xml:1163(ulink)
2264
msgid "Blog post on <placeholder-1/>"
2267
#: data/templates/ubuntu-application/help/tutorial.xml:1166(ulink)
2268
msgid "Language: Python Language Reference"
2271
#: data/templates/ubuntu-application/help/tutorial.xml:1169(ulink)
2272
msgid "Core Library: Python 2.6 Library Reference"
2275
#: data/templates/ubuntu-application/help/tutorial.xml:1172(ulink)
2276
msgid "UI Library: PyGtk"
2279
#: data/templates/ubuntu-application/help/tutorial.xml:1175(ulink)
2280
msgid "Database: CouchDB Reference"
2283
#: data/templates/ubuntu-application/help/tutorial.xml:1178(ulink)
2284
msgid "UI Editing: Glade User Documenation"
2287
#: data/templates/ubuntu-application/help/tutorial.xml:1181(ulink)
2288
msgid "Editor: Gedit Help"
2291
#: data/templates/ubuntu-application/help/tutorial.xml:1184(ulink)
2292
msgid "Version Control: Bazaar"
2295
#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
2296
#: data/templates/ubuntu-application/help/tutorial.xml:0(None)
2297
msgid "translator-credits"
2299
"Launchpad Contributions:\n"
2300
" Pablo Rubianes https://launchpad.net/~pablorubianes-uy"