Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | 113 | ||||
Proposed branch: | lp:~francesco-marella/a4/i18n | ||||
Merge into: | lp:a4 | ||||
Diff against target: |
389 lines (+216/-17) 8 files modified
a4lib/app.py (+10/-6) a4lib/i18n.py (+29/-0) data/a4.desktop.in (+3/-2) data/window_main.glade (+9/-9) po/LINGUAS (+1/-0) po/POTFILES.in (+14/-0) po/POTFILES.skip (+3/-0) po/a4.pot (+147/-0) |
||||
To merge this branch: | bzr merge lp:~francesco-marella/a4/i18n | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrea Gasparini | Approve | ||
Review via email: mp+50412@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
lp:~francesco-marella/a4/i18n
updated
- 109. By Francesco Marella
-
Add support for i18n
Revision history for this message
Francesco Marella (francesco-marella) wrote : | # |
>
> The old functionalities are ok, and strings are correct. Unfortunately I don't
> know enough the translation engine to make further tests, but to me the code
> is ok.
>
> Just one remark (and a note for the merger), we usually try to keep the code
> clean with some tools.
> A brief test with pep8 gives:
> a4lib/i18n.py:12:1: E302 expected 2 blank lines, found 1
> (It's just one blank line, I guess the one of us that will merge can correct
> this as well)
Fixed, thanks.
lp:~francesco-marella/a4/i18n
updated
- 110. By Francesco Marella
-
i18n: when running from source, fetch the mo files from the build dir
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'a4lib/app.py' | |||
2 | --- a4lib/app.py 2010-12-30 20:30:01 +0000 | |||
3 | +++ a4lib/app.py 2011-02-24 16:56:48 +0000 | |||
4 | @@ -13,6 +13,7 @@ | |||
5 | 13 | from a4lib.presentation import PresentationError, NoMetadataError | 13 | from a4lib.presentation import PresentationError, NoMetadataError |
6 | 14 | from a4lib.player import GtkCairoPlayer | 14 | from a4lib.player import GtkCairoPlayer |
7 | 15 | from a4lib.editor import Editor | 15 | from a4lib.editor import Editor |
8 | 16 | import a4lib.i18n | ||
9 | 16 | 17 | ||
10 | 17 | UI_PATHS = ('data', '/usr/local/share/a4/data', '/usr/share/a4/data') | 18 | UI_PATHS = ('data', '/usr/local/share/a4/data', '/usr/share/a4/data') |
11 | 18 | 19 | ||
12 | @@ -22,6 +23,7 @@ | |||
13 | 22 | 23 | ||
14 | 23 | def __init__(self): | 24 | def __init__(self): |
15 | 24 | self.builder = gtk.Builder() | 25 | self.builder = gtk.Builder() |
16 | 26 | self.builder.set_translation_domain("a4") | ||
17 | 25 | for path in UI_PATHS: | 27 | for path in UI_PATHS: |
18 | 26 | file_name = os.path.join(path, 'window_main.glade') | 28 | file_name = os.path.join(path, 'window_main.glade') |
19 | 27 | try: | 29 | try: |
20 | @@ -81,7 +83,7 @@ | |||
21 | 81 | dialog.destroy() | 83 | dialog.destroy() |
22 | 82 | except NoMetadataError as error: | 84 | except NoMetadataError as error: |
23 | 83 | msg = 'No A4 data found into file,\nwould you like to convert this file into an A4 presentation?' | 85 | msg = 'No A4 data found into file,\nwould you like to convert this file into an A4 presentation?' |
25 | 84 | dialog = gtk.Dialog('Import', self.gtk_window, | 86 | dialog = gtk.Dialog(_("Import"), self.gtk_window, |
26 | 85 | gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, | 87 | gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, |
27 | 86 | (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, | 88 | (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, |
28 | 87 | gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) | 89 | gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) |
29 | @@ -142,7 +144,7 @@ | |||
30 | 142 | """Event called when the 'Open' button is clicked.""" | 144 | """Event called when the 'Open' button is clicked.""" |
31 | 143 | # Set up the file chooser dialog. | 145 | # Set up the file chooser dialog. |
32 | 144 | dialog = gtk.FileChooserDialog( | 146 | dialog = gtk.FileChooserDialog( |
34 | 145 | None, None, gtk.FILE_CHOOSER_ACTION_OPEN, ( | 147 | _("Open a presentation"), None, gtk.FILE_CHOOSER_ACTION_OPEN, ( |
35 | 146 | gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, | 148 | gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, |
36 | 147 | gtk.STOCK_OPEN, gtk.RESPONSE_OK)) | 149 | gtk.STOCK_OPEN, gtk.RESPONSE_OK)) |
37 | 148 | dialog.set_default_response(gtk.RESPONSE_OK) | 150 | dialog.set_default_response(gtk.RESPONSE_OK) |
38 | @@ -166,7 +168,7 @@ | |||
39 | 166 | 168 | ||
40 | 167 | def on_save_as_clicked(self, widget): | 169 | def on_save_as_clicked(self, widget): |
41 | 168 | dialog = gtk.FileChooserDialog( | 170 | dialog = gtk.FileChooserDialog( |
43 | 169 | None, None, gtk.FILE_CHOOSER_ACTION_SAVE, ( | 171 | _("Save presentation as..."), None, gtk.FILE_CHOOSER_ACTION_SAVE, ( |
44 | 170 | gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, | 172 | gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, |
45 | 171 | gtk.STOCK_SAVE, gtk.RESPONSE_OK)) | 173 | gtk.STOCK_SAVE, gtk.RESPONSE_OK)) |
46 | 172 | dialog.set_default_response(gtk.RESPONSE_OK) | 174 | dialog.set_default_response(gtk.RESPONSE_OK) |
47 | @@ -342,15 +344,17 @@ | |||
48 | 342 | dialog = gtk.AboutDialog() | 344 | dialog = gtk.AboutDialog() |
49 | 343 | dialog.set_name('A4') | 345 | dialog.set_name('A4') |
50 | 344 | dialog.set_version(__version__) | 346 | dialog.set_version(__version__) |
52 | 345 | dialog.set_comments('A stylish tool to create and view cute presentations.') | 347 | dialog.set_comments(_('A stylish tool to create and view cute presentations.')) |
53 | 346 | dialog.set_website('http://launchpad.net/a4') | 348 | dialog.set_website('http://launchpad.net/a4') |
55 | 347 | dialog.set_website_label('A4 website') | 349 | dialog.set_website_label(_("A4 website")) |
56 | 348 | dialog.set_copyright('Copyright (C) 2010 A4 Developers') | 350 | dialog.set_copyright('Copyright (C) 2010 A4 Developers') |
57 | 349 | #dialog.set_logo("LOGO_GOES_HERE") | 351 | #dialog.set_logo("LOGO_GOES_HERE") |
58 | 350 | #dialog.set_icon_from_file("ICON_GOES_HERE") | 352 | #dialog.set_icon_from_file("ICON_GOES_HERE") |
59 | 351 | #code to automagically fetch authors and license should be used here | 353 | #code to automagically fetch authors and license should be used here |
60 | 352 | dialog.set_authors(['A4 Developers']) | 354 | dialog.set_authors(['A4 Developers']) |
62 | 353 | dialog.set_license('A4 is released under the terms of GNU GPL, version 3.') | 355 | dialog.set_license(_("A4 is released under the terms of GNU GPL, version 3.")) |
63 | 356 | #name surname email of the translator(s) | ||
64 | 357 | dialog.set_translator_credits(_("translator-credits")) | ||
65 | 354 | dialog.run() | 358 | dialog.run() |
66 | 355 | dialog.destroy() | 359 | dialog.destroy() |
67 | 356 | 360 | ||
68 | 357 | 361 | ||
69 | === added file 'a4lib/i18n.py' | |||
70 | --- a4lib/i18n.py 1970-01-01 00:00:00 +0000 | |||
71 | +++ a4lib/i18n.py 2011-02-24 16:56:48 +0000 | |||
72 | @@ -0,0 +1,29 @@ | |||
73 | 1 | # -*- coding: utf-8 -*- | ||
74 | 2 | |||
75 | 3 | # Copyright 2010 A4 Developers. This software is licensed under the | ||
76 | 4 | # GNU General Public License version 3 (see the file COPYING). | ||
77 | 5 | |||
78 | 6 | import os | ||
79 | 7 | import gettext | ||
80 | 8 | import locale | ||
81 | 9 | |||
82 | 10 | MESSAGES_DIR = "build/mo" | ||
83 | 11 | if not (os.path.isdir(MESSAGES_DIR) and os.path.exists(MESSAGES_DIR)): | ||
84 | 12 | MESSAGES_DIR = "/usr/share/locale" | ||
85 | 13 | |||
86 | 14 | |||
87 | 15 | def setup_locale_and_gettext(): | ||
88 | 16 | package_name = 'a4' | ||
89 | 17 | # Install _() builtin for gettext; always returning unicode objects | ||
90 | 18 | # also install ngettext() | ||
91 | 19 | gettext.install(package_name, localedir=MESSAGES_DIR, unicode=True, | ||
92 | 20 | names=("ngettext",)) | ||
93 | 21 | locale.bindtextdomain(package_name, MESSAGES_DIR) | ||
94 | 22 | locale.bind_textdomain_codeset(package_name, "UTF-8") | ||
95 | 23 | |||
96 | 24 | try: | ||
97 | 25 | locale.setlocale(locale.LC_ALL, "") | ||
98 | 26 | except locale.Error, e: | ||
99 | 27 | pass | ||
100 | 28 | |||
101 | 29 | setup_locale_and_gettext() | ||
102 | 0 | 30 | ||
103 | === renamed file 'data/a4.desktop' => 'data/a4.desktop.in' | |||
104 | --- data/a4.desktop 2010-08-02 13:02:07 +0000 | |||
105 | +++ data/a4.desktop.in 2011-02-24 16:56:48 +0000 | |||
106 | @@ -1,9 +1,10 @@ | |||
107 | 1 | [Desktop Entry] | 1 | [Desktop Entry] |
108 | 2 | Type=Application | 2 | Type=Application |
109 | 3 | Version=1.0 | 3 | Version=1.0 |
112 | 4 | Name=A4 | 4 | _Name=A4 |
113 | 5 | Comment=A stylish tool to create and view cool presentations | 5 | _Comment=A stylish tool to create and view cool presentations |
114 | 6 | Icon=a4 | 6 | Icon=a4 |
115 | 7 | Exec=a4 | 7 | Exec=a4 |
116 | 8 | Terminal=false | 8 | Terminal=false |
117 | 9 | Categories=Office;Presentation; | 9 | Categories=Office;Presentation; |
118 | 10 | StartupNotify=true | ||
119 | 10 | 11 | ||
120 | === modified file 'data/window_main.glade' | |||
121 | --- data/window_main.glade 2011-01-18 17:57:15 +0000 | |||
122 | +++ data/window_main.glade 2011-02-24 16:56:48 +0000 | |||
123 | @@ -135,7 +135,7 @@ | |||
124 | 135 | <child> | 135 | <child> |
125 | 136 | <object class="GtkToolButton" id="toolbutton_open"> | 136 | <object class="GtkToolButton" id="toolbutton_open"> |
126 | 137 | <property name="visible">True</property> | 137 | <property name="visible">True</property> |
128 | 138 | <property name="tooltip_markup">Open presentation</property> | 138 | <property name="tooltip_text" translatable="yes">Open presentation</property> |
129 | 139 | <property name="use_underline">True</property> | 139 | <property name="use_underline">True</property> |
130 | 140 | <property name="stock_id">gtk-open</property> | 140 | <property name="stock_id">gtk-open</property> |
131 | 141 | <signal name="clicked" handler="on_open_clicked"/> | 141 | <signal name="clicked" handler="on_open_clicked"/> |
132 | @@ -148,7 +148,7 @@ | |||
133 | 148 | <child> | 148 | <child> |
134 | 149 | <object class="GtkToolButton" id="toolbutton_save"> | 149 | <object class="GtkToolButton" id="toolbutton_save"> |
135 | 150 | <property name="visible">True</property> | 150 | <property name="visible">True</property> |
137 | 151 | <property name="tooltip_markup">Save presentation</property> | 151 | <property name="tooltip_text" translatable="yes">Save presentation</property> |
138 | 152 | <property name="use_underline">True</property> | 152 | <property name="use_underline">True</property> |
139 | 153 | <property name="stock_id">gtk-save</property> | 153 | <property name="stock_id">gtk-save</property> |
140 | 154 | <signal name="clicked" handler="on_save_clicked"/> | 154 | <signal name="clicked" handler="on_save_clicked"/> |
141 | @@ -161,7 +161,7 @@ | |||
142 | 161 | <child> | 161 | <child> |
143 | 162 | <object class="GtkToolButton" id="toolbutton_close"> | 162 | <object class="GtkToolButton" id="toolbutton_close"> |
144 | 163 | <property name="visible">True</property> | 163 | <property name="visible">True</property> |
146 | 164 | <property name="tooltip_markup">Close presentation</property> | 164 | <property name="tooltip_text" translatable="yes">Close presentation</property> |
147 | 165 | <property name="use_underline">True</property> | 165 | <property name="use_underline">True</property> |
148 | 166 | <property name="stock_id">gtk-close</property> | 166 | <property name="stock_id">gtk-close</property> |
149 | 167 | <signal name="clicked" handler="on_close_clicked"/> | 167 | <signal name="clicked" handler="on_close_clicked"/> |
150 | @@ -183,7 +183,7 @@ | |||
151 | 183 | <child> | 183 | <child> |
152 | 184 | <object class="GtkToolButton" id="toolbutton_previous"> | 184 | <object class="GtkToolButton" id="toolbutton_previous"> |
153 | 185 | <property name="visible">True</property> | 185 | <property name="visible">True</property> |
155 | 186 | <property name="tooltip_markup">Previous view</property> | 186 | <property name="tooltip_text" translatable="yes">Previous view</property> |
156 | 187 | <property name="use_underline">True</property> | 187 | <property name="use_underline">True</property> |
157 | 188 | <property name="stock_id">gtk-go-back</property> | 188 | <property name="stock_id">gtk-go-back</property> |
158 | 189 | <signal name="clicked" handler="on_previous_clicked"/> | 189 | <signal name="clicked" handler="on_previous_clicked"/> |
159 | @@ -196,7 +196,7 @@ | |||
160 | 196 | <child> | 196 | <child> |
161 | 197 | <object class="GtkToolButton" id="toolbutton_next"> | 197 | <object class="GtkToolButton" id="toolbutton_next"> |
162 | 198 | <property name="visible">True</property> | 198 | <property name="visible">True</property> |
164 | 199 | <property name="tooltip_markup">Next view</property> | 199 | <property name="tooltip_text" translatable="yes">Next view</property> |
165 | 200 | <property name="use_underline">True</property> | 200 | <property name="use_underline">True</property> |
166 | 201 | <property name="stock_id">gtk-go-forward</property> | 201 | <property name="stock_id">gtk-go-forward</property> |
167 | 202 | <signal name="clicked" handler="on_next_clicked"/> | 202 | <signal name="clicked" handler="on_next_clicked"/> |
168 | @@ -218,7 +218,7 @@ | |||
169 | 218 | <child> | 218 | <child> |
170 | 219 | <object class="GtkToolButton" id="toolbutton_zoom_in"> | 219 | <object class="GtkToolButton" id="toolbutton_zoom_in"> |
171 | 220 | <property name="visible">True</property> | 220 | <property name="visible">True</property> |
173 | 221 | <property name="tooltip_markup">Zoom in</property> | 221 | <property name="tooltip_text" translatable="yes">Zoom in</property> |
174 | 222 | <property name="use_underline">True</property> | 222 | <property name="use_underline">True</property> |
175 | 223 | <property name="stock_id">gtk-zoom-in</property> | 223 | <property name="stock_id">gtk-zoom-in</property> |
176 | 224 | <signal name="clicked" handler="on_zoom_in_clicked"/> | 224 | <signal name="clicked" handler="on_zoom_in_clicked"/> |
177 | @@ -231,7 +231,7 @@ | |||
178 | 231 | <child> | 231 | <child> |
179 | 232 | <object class="GtkToolButton" id="toolbutton_zoom_out"> | 232 | <object class="GtkToolButton" id="toolbutton_zoom_out"> |
180 | 233 | <property name="visible">True</property> | 233 | <property name="visible">True</property> |
182 | 234 | <property name="tooltip_markup">Zoom out</property> | 234 | <property name="tooltip_text" translatable="yes">Zoom out</property> |
183 | 235 | <property name="use_underline">True</property> | 235 | <property name="use_underline">True</property> |
184 | 236 | <property name="stock_id">gtk-zoom-out</property> | 236 | <property name="stock_id">gtk-zoom-out</property> |
185 | 237 | <signal name="clicked" handler="on_zoom_out_clicked"/> | 237 | <signal name="clicked" handler="on_zoom_out_clicked"/> |
186 | @@ -244,7 +244,7 @@ | |||
187 | 244 | <child> | 244 | <child> |
188 | 245 | <object class="GtkToolButton" id="toolbutton_fullscreen"> | 245 | <object class="GtkToolButton" id="toolbutton_fullscreen"> |
189 | 246 | <property name="visible">True</property> | 246 | <property name="visible">True</property> |
191 | 247 | <property name="tooltip_markup">Fullscreen</property> | 247 | <property name="tooltip_text" translatable="yes">Fullscreen</property> |
192 | 248 | <property name="use_underline">True</property> | 248 | <property name="use_underline">True</property> |
193 | 249 | <property name="stock_id">gtk-fullscreen</property> | 249 | <property name="stock_id">gtk-fullscreen</property> |
194 | 250 | <signal name="clicked" handler="on_fullscreen_activate"/> | 250 | <signal name="clicked" handler="on_fullscreen_activate"/> |
195 | @@ -285,7 +285,7 @@ | |||
196 | 285 | <child> | 285 | <child> |
197 | 286 | <object class="GtkToggleToolButton" id="toolbutton_editor"> | 286 | <object class="GtkToggleToolButton" id="toolbutton_editor"> |
198 | 287 | <property name="visible">True</property> | 287 | <property name="visible">True</property> |
200 | 288 | <property name="tooltip_markup">Editor</property> | 288 | <property name="tooltip_text" translatable="yes">Editor</property> |
201 | 289 | <property name="use_underline">True</property> | 289 | <property name="use_underline">True</property> |
202 | 290 | <property name="stock_id">gtk-edit</property> | 290 | <property name="stock_id">gtk-edit</property> |
203 | 291 | <signal name="clicked" handler="on_editor_clicked"/> | 291 | <signal name="clicked" handler="on_editor_clicked"/> |
204 | 292 | 292 | ||
205 | === added directory 'po' | |||
206 | === added file 'po/LINGUAS' | |||
207 | --- po/LINGUAS 1970-01-01 00:00:00 +0000 | |||
208 | +++ po/LINGUAS 2011-02-24 16:56:48 +0000 | |||
209 | @@ -0,0 +1,1 @@ | |||
210 | 1 | # Set of available languages. Keep it alphabatical. One lingua per line. | ||
211 | 0 | 2 | ||
212 | === added file 'po/POTFILES.in' | |||
213 | --- po/POTFILES.in 1970-01-01 00:00:00 +0000 | |||
214 | +++ po/POTFILES.in 2011-02-24 16:56:48 +0000 | |||
215 | @@ -0,0 +1,14 @@ | |||
216 | 1 | # encoding: UTF-8 | ||
217 | 2 | |||
218 | 3 | # order: data files, modules, others | ||
219 | 4 | |||
220 | 5 | data/a4.desktop.in | ||
221 | 6 | |||
222 | 7 | [type: gettext/glade] data/window_main.glade | ||
223 | 8 | |||
224 | 9 | a4lib/app.py | ||
225 | 10 | a4lib/editor.py | ||
226 | 11 | a4lib/player.py | ||
227 | 12 | a4lib/presentation_objects.py | ||
228 | 13 | a4lib/presentation.py | ||
229 | 14 | a4lib/region.py | ||
230 | 0 | 15 | ||
231 | === added file 'po/POTFILES.skip' | |||
232 | --- po/POTFILES.skip 1970-01-01 00:00:00 +0000 | |||
233 | +++ po/POTFILES.skip 2011-02-24 16:56:48 +0000 | |||
234 | @@ -0,0 +1,3 @@ | |||
235 | 1 | # files to skip | ||
236 | 2 | |||
237 | 3 | a4lib/__init__.py | ||
238 | 0 | 4 | ||
239 | === added file 'po/a4.pot' | |||
240 | --- po/a4.pot 1970-01-01 00:00:00 +0000 | |||
241 | +++ po/a4.pot 2011-02-24 16:56:48 +0000 | |||
242 | @@ -0,0 +1,147 @@ | |||
243 | 1 | # SOME DESCRIPTIVE TITLE. | ||
244 | 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | ||
245 | 3 | # This file is distributed under the same license as the PACKAGE package. | ||
246 | 4 | # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | ||
247 | 5 | # | ||
248 | 6 | #, fuzzy | ||
249 | 7 | msgid "" | ||
250 | 8 | msgstr "" | ||
251 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | ||
252 | 10 | "Report-Msgid-Bugs-To: \n" | ||
253 | 11 | "POT-Creation-Date: 2011-01-26 17:23+0100\n" | ||
254 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||
255 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
256 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ||
257 | 15 | "Language: \n" | ||
258 | 16 | "MIME-Version: 1.0\n" | ||
259 | 17 | "Content-Type: text/plain; charset=CHARSET\n" | ||
260 | 18 | "Content-Transfer-Encoding: 8bit\n" | ||
261 | 19 | |||
262 | 20 | #: ../data/a4.desktop.in.h:1 | ||
263 | 21 | msgid "A stylish tool to create and view cool presentations" | ||
264 | 22 | msgstr "" | ||
265 | 23 | |||
266 | 24 | #: ../data/a4.desktop.in.h:2 ../data/window_main.glade.h:1 | ||
267 | 25 | msgid "A4" | ||
268 | 26 | msgstr "" | ||
269 | 27 | |||
270 | 28 | #: ../data/window_main.glade.h:2 | ||
271 | 29 | msgid "Close presentation" | ||
272 | 30 | msgstr "" | ||
273 | 31 | |||
274 | 32 | #: ../data/window_main.glade.h:3 | ||
275 | 33 | msgid "Editor" | ||
276 | 34 | msgstr "" | ||
277 | 35 | |||
278 | 36 | #: ../data/window_main.glade.h:4 | ||
279 | 37 | msgid "Frames" | ||
280 | 38 | msgstr "" | ||
281 | 39 | |||
282 | 40 | #: ../data/window_main.glade.h:5 | ||
283 | 41 | msgid "Fullscreen" | ||
284 | 42 | msgstr "" | ||
285 | 43 | |||
286 | 44 | #: ../data/window_main.glade.h:6 | ||
287 | 45 | msgid "Hidden Frame" | ||
288 | 46 | msgstr "" | ||
289 | 47 | |||
290 | 48 | #: ../data/window_main.glade.h:7 | ||
291 | 49 | msgid "Image" | ||
292 | 50 | msgstr "" | ||
293 | 51 | |||
294 | 52 | #: ../data/window_main.glade.h:8 | ||
295 | 53 | msgid "Next view" | ||
296 | 54 | msgstr "" | ||
297 | 55 | |||
298 | 56 | #: ../data/window_main.glade.h:9 | ||
299 | 57 | msgid "Normal frame" | ||
300 | 58 | msgstr "" | ||
301 | 59 | |||
302 | 60 | #: ../data/window_main.glade.h:10 | ||
303 | 61 | msgid "Notes" | ||
304 | 62 | msgstr "" | ||
305 | 63 | |||
306 | 64 | #: ../data/window_main.glade.h:11 | ||
307 | 65 | msgid "Open presentation" | ||
308 | 66 | msgstr "" | ||
309 | 67 | |||
310 | 68 | #: ../data/window_main.glade.h:12 | ||
311 | 69 | msgid "Path" | ||
312 | 70 | msgstr "" | ||
313 | 71 | |||
314 | 72 | #: ../data/window_main.glade.h:13 | ||
315 | 73 | msgid "Polaroid" | ||
316 | 74 | msgstr "" | ||
317 | 75 | |||
318 | 76 | #: ../data/window_main.glade.h:14 | ||
319 | 77 | msgid "Previous view" | ||
320 | 78 | msgstr "" | ||
321 | 79 | |||
322 | 80 | #: ../data/window_main.glade.h:15 | ||
323 | 81 | msgid "Rect" | ||
324 | 82 | msgstr "" | ||
325 | 83 | |||
326 | 84 | #: ../data/window_main.glade.h:16 | ||
327 | 85 | msgid "Save presentation" | ||
328 | 86 | msgstr "" | ||
329 | 87 | |||
330 | 88 | #: ../data/window_main.glade.h:17 | ||
331 | 89 | msgid "Selector" | ||
332 | 90 | msgstr "" | ||
333 | 91 | |||
334 | 92 | #: ../data/window_main.glade.h:18 | ||
335 | 93 | msgid "Shapes" | ||
336 | 94 | msgstr "" | ||
337 | 95 | |||
338 | 96 | #: ../data/window_main.glade.h:19 | ||
339 | 97 | msgid "Text" | ||
340 | 98 | msgstr "" | ||
341 | 99 | |||
342 | 100 | #: ../data/window_main.glade.h:20 | ||
343 | 101 | msgid "Zoom in" | ||
344 | 102 | msgstr "" | ||
345 | 103 | |||
346 | 104 | #: ../data/window_main.glade.h:21 | ||
347 | 105 | msgid "Zoom out" | ||
348 | 106 | msgstr "" | ||
349 | 107 | |||
350 | 108 | #: ../data/window_main.glade.h:22 | ||
351 | 109 | msgid "_File" | ||
352 | 110 | msgstr "" | ||
353 | 111 | |||
354 | 112 | #: ../data/window_main.glade.h:23 | ||
355 | 113 | msgid "_Help" | ||
356 | 114 | msgstr "" | ||
357 | 115 | |||
358 | 116 | #: ../data/window_main.glade.h:24 | ||
359 | 117 | msgid "_View" | ||
360 | 118 | msgstr "" | ||
361 | 119 | |||
362 | 120 | #: ../a4lib/app.py:86 | ||
363 | 121 | msgid "Import" | ||
364 | 122 | msgstr "" | ||
365 | 123 | |||
366 | 124 | #: ../a4lib/app.py:147 | ||
367 | 125 | msgid "Open a presentation" | ||
368 | 126 | msgstr "" | ||
369 | 127 | |||
370 | 128 | #: ../a4lib/app.py:171 | ||
371 | 129 | msgid "Save presentation as..." | ||
372 | 130 | msgstr "" | ||
373 | 131 | |||
374 | 132 | #: ../a4lib/app.py:347 | ||
375 | 133 | msgid "A stylish tool to create and view cute presentations." | ||
376 | 134 | msgstr "" | ||
377 | 135 | |||
378 | 136 | #: ../a4lib/app.py:349 | ||
379 | 137 | msgid "A4 website" | ||
380 | 138 | msgstr "" | ||
381 | 139 | |||
382 | 140 | #: ../a4lib/app.py:355 | ||
383 | 141 | msgid "A4 is released under the terms of GNU GPL, version 3." | ||
384 | 142 | msgstr "" | ||
385 | 143 | |||
386 | 144 | #. name surname email of the translator(s) | ||
387 | 145 | #: ../a4lib/app.py:357 | ||
388 | 146 | msgid "translator-credits" | ||
389 | 147 | msgstr "" |
The old functionalities are ok, and strings are correct. Unfortunately I don't know enough the translation engine to make further tests, but to me the code is ok.
Just one remark (and a note for the merger), we usually try to keep the code clean with some tools.
A brief test with pep8 gives:
a4lib/i18n.py:12:1: E302 expected 2 blank lines, found 1
(It's just one blank line, I guess the one of us that will merge can correct this as well)