/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2042 by bh, Tue Dec 23 11:59:18 2003 UTC revision 2156 by joey, Sat Apr 10 19:14:08 2004 UTC
# Line 1  Line 1 
1    2004-04-10  Martin Schulze  <[email protected]>
2    
3            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
4            string handling.  It's "foo".lower() and not lower(foo) without
5            lower imported from strings or something.
6    
7            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
8            from capabilities.py and parser.py.  Implement priority list for
9            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
10            and GIF are supported here, but not yet by main Thuban.  Hence,
11            support for them may be removed later.  Special contribution to
12            usability: get wxWidgets to change the cursor when we're waiting
13            for data from the network so the user won't start to worry.  This
14            causes a redrawing error/warning, though.
15    
16            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
17            the DOM object.
18    
19    
20    2004-04-01  Martin Schulze  <[email protected]>
21    
22            * Extensions/wms/capabilities.py: Adjusted documentation
23            (WMSCapabilities.__init__): Improved documentation, fixed syntax
24            (WMSCapabilities.saveCapabilities): Only catch IOError when
25            handling files
26            (WMSCapabilities.loadCapabilities): Only catch IOError when
27            handling files
28            __main__: corrected variable naming
29            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
30            class a specialisation of WMSCapabilitiesParser as well.  Also
31            execute grok() after loading or fetching capabilities, if that
32            went well, so that subsequent calls can already access the data.
33            (WMSCapabilities.getVersion): Export the used version of the
34            GetCapabilities request, so we can use it for subsequent calls,
35            i.e. for GetMap requests.
36            (WMSCapabilities.fetchCapabilities): Added proper error handling
37            when the GetCapabilities request failed, so that the surrounding
38            program can act accordingly.
39    
40    2004-03-30  Martin Schulze  <[email protected]>
41    
42            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
43            Adjusted the getLayerSRS method to return the list of SRSes
44            extracted from <SRS> elements instead of <BoundingBox> elements.
45            Added a bit of documentation as well.
46            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
47            since it was only implemented due to a misunderstanding.
48    
49            * Extensions/wms/test/test_parser.py
50            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
51            reflect the corrected interpretation of the standard: i.e. a layer
52            does not have to define a BoundingBox for all SRSes it supports.
53            Hence the <SRS></SRS> specification is authoritative, not the list
54            of BoundingBoxes.
55            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
56            to ensure None is returned for a non-existing SRS.
57            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
58            since it is not applicable anymore.  Listing more SRSes in <SRS>
59            elements is valid according to the specs.
60    
61    2004-03-26  Bernhard Reiter <[email protected]>
62    
63            * README: Nicer formatting of text. Improved descriptions.
64            Reflected wxWidgets name change.
65            
66            * Thuban/UI/about.py: Extended copyright to 2004 and added
67            information about the thuban-devel mailinglist.
68    
69    2004-03-24  Martin Schulze  <[email protected]>
70    
71            * Extensions/wms/capabilities.py: Renamed the class to contain
72            'WMS', also added a linebreak where required
73    
74            * Extensions/wms/parser.py: Finally added the XML parser for the
75            GetCapabilities response.
76    
77            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
78            <SRS> elements match the <BoundingBox> elements, except for the
79            layer 'beschriftung'.
80    
81            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
82            since Python uses unicode strings internally, otherwise
83            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
84            the SRS will be calculated anyway and this method is obsoleted by
85            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
86            Move loading the sample file into the setUp method.  Added a test
87            for finding the integrity problem in the sample response.
88            Improved formatting.
89    
90            * Extensions/wms/domutils.py: Added convenience routines for
91            handling of Document Object Model (DOM) nodes.
92    
93            * Extensions/wms/test/test_domutils.py: Added a test for the
94            domutils module
95    
96    2004-03-19  Martin Schulze  <[email protected]>
97    
98            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
99            Moved path detection and adding into a module of its own,
100            adjustpath, which exports thubandir as main Thuban directory.
101    
102            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
103            detection and adding into a module of its own, adjustpath, which
104            exports thubandir as main Thuban directory.  Reorganised the
105            module in order to support the SkipTest feature for Thuban test
106            cases.
107    
108            * Extensions/wms/test/adjustpath.py: Moved path detection and
109            adding into a module of its own.
110    
111    2004-03-18  Martin Schulze  <[email protected]>
112    
113            * Extensions/wms/test/test_parser.py: Added another test for
114            checking whether the WMS XML parser (to be implemented) returns
115            the information we expect.  This requires a sample WMS WML file
116            (sample.xml) which has been extracted from the frida server and
117            "improved" manually.
118    
119            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
120            main Thuban directory to the path in order to be able to import
121            random modules.  Adjusted the PyOGCLib detection to reuse the
122            information gathered.  Also added a note about the PYTHONPATH
123            environment variable.
124    
125            * Extensions/wms/test/test_ogclib.py: The format specification is
126            a mime-type, not a graphic format, hence image/jpeg wou ld be the
127            proper format and not JPEG.  We'll also have to take care of the
128            encoding of / as %2F.
129    
130    2004-03-16  Martin Schulze  <[email protected]>
131    
132            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
133            comprehensive test for the getMapURL method, built compare URLs
134            according to the documentation in OGC 01-068r3
135    
136            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
137            class WMSCapabilities to manage capabilites, will incorporate
138            parsing the capabilities response and provide details for other
139            classes.
140    
141    2004-03-12  Bernhard Herzog  <[email protected]>
142    
143            Support views in addition to normal tables in the postgis
144            shapestore
145    
146            * Thuban/Model/postgisdb.py
147            (PostGISShapeStore._fetch_table_information): Add a fallback for
148            the case where the table name is not in the geometry_columns
149            table.  This is usually the case for views.  Also, set
150            self.shapestore here.
151            (PostGISShapeStore.ShapeType): No need to query the database all
152            the time.  The shape type is now determined in
153            _fetch_table_information
154    
155            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
156            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
157            New parameter to specify views.
158            (PostGISDatabase.has_data): Also compare the views.  New views
159            parameter
160            (PostGISDatabase.initdb): Create the views.
161            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
162            view
163    
164            * test/test_postgis_db.py
165            (TestPostGISShapestorePointFromViews): New.  Test a
166            PostGISShapeStore with a view
167            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
168            the geometry_column explicitly to test whether that works
169    
170    2004-03-12  Bernhard Herzog  <[email protected]>
171    
172            Final step for explicit id/geometry columns: Loading and saving
173    
174            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
175            with the following changes:
176            (dbshapesource): Two new attributes id_column and geometry_column
177    
178            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
179            (SessionSaver.write_session): Use the new namespace
180            (SessionSaver.write_data_containers): Write the new dbshapesource
181            parameters
182    
183            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
184            the new file format version
185            (SessionLoader.start_dbshapesource): Handle the new db parameters
186    
187            * test/test_save.py: Update to the new dtd and namespace
188            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
189            mock object to provide a working IDColumn method.
190    
191            * test/test_load_1_0.py: New.  Copy of the test_load.py before
192            today's changes but with the round-trip tests removed.
193    
194            * test/test_load_0_9.py: Update doc-string.
195    
196            * test/test_load.py: Update all .thuban files to the new dtd and
197            namespace.
198            (TestPostGISLayer.file_contents): Add the new dbshapesource
199            paramters
200    
201    2004-03-11  Bernhard Herzog  <[email protected]>
202    
203            Next step for explicit id/geometry columns: User interaction
204    
205            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
206            the dialog is constructed. Add combo boxes to select id and
207            geometry column.  Rename some instance variables.
208            (ChooseDBTableDialog.GetTable): Return id and geometry column
209            names
210            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
211            selections in the table list
212    
213            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
214            and geometry_column
215    
216            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
217            parameters for id_column and geometry column of PostGISShapeStore
218            here as well.
219    
220            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
221            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
222            (PostGISConnection.GeometryTables): Use a better query to
223            determine which relations in the database might be usable for
224            shapestores.  Now supports views as well but is more PostgreSQL
225            specific
226            (PostGISConnection.table_columns): New. Somewhat experimental
227            method to let the db dialogs provide lists of columns to users so
228            that they can select id and geometry columns.
229            (PostGISTable.__init__): The default value of the id_column
230            parameter is now None it still means "gid" effectively, though.
231            (PostGISTable.IDColumn): New introspection method to return a
232            column object for the id column
233            (PostGISShapeStore.GeometryColumn): New introspection method to
234            return a column object for the geometry column
235    
236            * test/test_postgis_db.py
237            (TestPostGISConnection.test_gis_tables_non_empty):
238            Removed. Subsumed by the new:
239            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
240            New. Tes the GeometryTables and table_columns methods with actual
241            tables and views.
242            (PointTests.test_id_column, PointTests.test_geometry_column):
243            New. tests for the new methods.
244            (TestPostGISShapestorePoint.setUp)
245            (TestPostGISShapestorePointSRID.setUp)
246            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
247            instance variables needed by the new tests
248    
249    2004-03-11  Bernhard Herzog  <[email protected]>
250    
251            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
252            numbers given to ReadValue are ordinals.
253    
254    2004-03-11  Bernhard Herzog  <[email protected]>
255    
256            Elimiate the requirement for PostGIS tables to have a column
257            called "gid".
258    
259            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
260            id_column to specify which column to use to identify rows.  Also
261            new instance variables id_column and quoted_id_column
262            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
263            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
264            (PostGISTable.SimpleQuery): Use the id column name provided to the
265            constructor instead of "gid"
266            (PostGISShapeStore.__init__): New parameter id_column analogously
267            to PostGISTable.__init__.  This parameter is simply passed through
268            to the base class constructor
269            (PostGISShapeStore._create_col_from_description): Fix typo in
270            doc-string
271            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
272            (PostGISShapeStore.ShapesInRegion): Use the id column name
273            provided to the constructor instead of "gid"
274    
275            * test/postgissupport.py
276            (PostgreSQLServer.get_default_static_data_db): New static table
277            landmarks_point_id with an id column != "gid.  Update the comments
278            a bit.
279            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
280            doc-
281            (upload_shapefile): New parameter gid_column to use a name other
282            than "gid" for the column to store the shape ids
283    
284            * test/test_postgis_db.py (TableTests): New.  Mixin-class
285            containing all tests previously in TestPostGISTable.  The actual
286            tests are the same but the code is a bit more configurable to
287            allow for different id columns etc.
288            (TestPostGISTable): Derive from TableTests now for the actual
289            tests.
290            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
291            except that it the landmarks_point_id table to test the id_column
292            parameter
293            (PointTests): Extend the doc-string
294            (TestPostGISShapestorePointExplicitGIDColumn)
295            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
296            from PointTests to test the explicit id_column parameter.  One
297            tests with the name of the column holding the shape ids, the other
298            uses PostgreSQL's OID column.  For the latter a number of methods
299            have to be overwritten to make them independent of the actual id
300            values.
301    
302    2004-03-08  Silke Reimer  <[email protected]>
303    
304            Update debian directory:
305    
306            * debian/changelog: Added new version.
307            * deiban/rules: Updated management of patches (with cbds)
308            * debian/control: Added cbds to dependencies
309            * debian/patches/*: New. Adds better support for patches of thuban in
310                            debian
311            * debian/menu: Syntax of menu changed slightly
312            * debian/setup.py.patch: removed because it has been moved to
313                            debian/patechs/setup.py.patch
314            
315    
316    2004-02-26  Bernhard Herzog  <[email protected]>
317    
318            Create the Doc/technotes directory for text files with information
319            for developers
320    
321            * Doc/technotes/README: New. README for the technotes
322    
323            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
324            Thuban
325    
326            * Doc/technotes/release_process.txt: New. Used to be
327            HOWTO-Release.  Now slightly adapted to technote formatting style.
328    
329            * HOWTO-Release: Removed.  It's contents are now in
330            Doc/technotes/release_process.txt
331    
332    2004-02-25  Bernhard Herzog  <[email protected]>
333    
334            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
335            version of wxWindows the module was compiled with so we can check
336            that against the wxPython version.
337    
338            * Thuban/version.py (thuban_branch, thuban_release): New variables
339            controlling which and how Thuban versions are shown.  See the
340            comments for details.
341            (verify_versions): Also check that the wx version that wxproj is
342            compiled against matches that of the wxPython we use at runtime
343    
344    2004-02-20  Bernhard Herzog  <[email protected]>
345    
346            * Extensions/wms/wms.py (epsg_code_to_projection): Use
347            get_system_proj_file to read the epsg projections.  The old way
348            depended on the current directory being the top Thuban directory.
349    
350    2004-02-20  Bernhard Herzog  <[email protected]>
351    
352            * Extensions/svgexport/test/test_svgmapwriter.py
353            (TestVirtualDC.test_clippath): Remove a debug print
354    
355    2004-02-20  Bernhard Herzog  <[email protected]>
356    
357            * Extensions/svgexport/__init__.py: New.  Turn
358            Extensions/svgexport into a package.
359    
360            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
361            doc-string a bit.  The doc-string must come first, otherwise it's
362            not a doc-string.  The __future__ import must be the first thing
363            after the doc-string.  Use only double quotes in doc-strings.
364            Single quotes trip up emacs syntax highlighting if the text
365            contains apostrophes.
366    
367    2004-02-20  Bernhard Herzog  <[email protected]>
368    
369            * Extensions/svgexport/test/__init__.py,
370            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
371            suite for svgexport
372    
373            * test/runtests.py (find_test_modules): New. Function with the
374            module finding code from main.
375            (main): Use find_test_modules to figure out the default test
376            modules and take modules from Extensions.svgexport.test too.
377    
378    2004-02-19  Bernhard Herzog  <[email protected]>
379    
380            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
381            the mainwindow has a reference to the map of the initial session.
382            This fixes a bug introduced with the fix for RT#2245
383    
384    2004-02-19  Bernhard Herzog  <[email protected]>
385    
386            * Extensions/svgexport/svgsaver.py,
387            Extensions/svgexport/svgmapwriter.py,
388            Extensions/svgexport/maplegend.py: Added again.  This time in the
389            correct place.
390    
391    2004-02-17  Bernhard Herzog  <[email protected]>
392    
393            Fix for RT#2245
394    
395            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
396            instance variables before trying to create any windows.  Creating
397            windows can start an event loop if e.g. message boxes are popped
398            up for some reason, and event handlers, especially EVT_UPDATE_UI
399            may want to access things from the application.
400            (ThubanApplication.maps_changed): The mainwindow may not have been
401            created yet, so check whether it has been created before calling
402            its methods
403    
404            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
405            have a map
406    
407    2004-02-17  Bernhard Herzog  <[email protected]>
408    
409            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
410            Extensions/svgmapwriter.py, Extensions/maplegend.py,
411            extensions/svgexport/svgsaver.py,
412            extensions/svgexport/svgmapwriter.py,
413            extensions/svgexport/maplegend.py: Removed.  These files were in
414            the wrong places or didn't work at all.
415    
416    2004-02-16  Bernhard Herzog  <[email protected]>
417    
418            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
419            line
420    
421    2004-02-16  Bernhard Herzog  <[email protected]>
422    
423            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
424    
425    2004-02-15  Markus Rechtien  <[email protected]>
426            
427            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
428            to write a session to a file in SVG format.
429            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
430            to write a SVG map of a session.
431            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
432            in SVG format for the current session.
433    
434    2004-02-13  Bernhard Herzog  <[email protected]>
435    
436            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
437            can't be created, return immediately after displaying the error
438            message.
439    
440    2004-02-11  Bernhard Herzog  <[email protected]>
441    
442            Handle postgis tables with more than one geometry column.
443    
444            * Thuban/Model/postgisdb.py
445            (PostGISTable._fetch_table_information): Delegate the creation of
446            column objects to a different method so that we can extend that in
447            derived classes
448            (PostGISTable._create_col_from_description): New. Column object
449            creation part of _fetch_table_information
450            (PostGISShapeStore._create_col_from_description): New. Extend
451            inherited method to handle geometry columns
452            (PostGISShapeStore.__init__): New parameter geometry_column to
453            specify which geometry column to use.  Optional but mandatory for
454            tables with more than one geometry column
455            (PostGISShapeStore._fetch_table_information): Also use the name of
456            the geometry column when looking for the srid
457            (PostGISShapeStore.ShapeType): Also use the name of the geometry
458            column when looking for the shape type
459    
460            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
461            NonConnectionStore to changes in the PostGISShapeStore
462    
463            * test/test_postgis_db.py
464            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
465            PostGISShapeStore with tables having two geometry columns.
466    
467    2004-02-10  Bernhard Herzog  <[email protected]>
468    
469            Fix some postgis problems.  What remains to be done is real
470            handling of SRIDs as they affect how reprojection is done
471    
472            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
473            doc-string
474            (PostGISShapeStore._fetch_table_information): New. Extend
475            inherited method to retrieve srid
476            (PostGISShapeStore.BoundingBox): Handle tables without data.
477            extent yields NULL for those
478            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
479    
480            * test/test_postgis_db.py
481            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
482            for the special case of a table without any data
483            (TestPostGISShapestorePointSRID): New class with tests for a table
484            that uses srids
485            (PolygonTests): Fix a doc-string typo
486    
487            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
488            reference_systems with a specification of spacial reference
489            systems to create in the new db.
490            (PostgreSQLServer.new_postgis_db)
491            (PostgreSQLServer.get_static_data_db): New parameter
492            reference_systems to be passed through ultimately to
493            PostGISDatabase.  In new_postgis_db also check whether an existing
494            db already has the right srids
495            (PostgreSQLServer.get_default_static_data_db): Add srids and a
496            table that uses srids
497            (PostGISDatabase.initdb): Create the entries for the reference
498            systems
499            (PostGISDatabase.has_data): Add reference_systems parameter to
500            check for those too
501            (upload_shapefile): New parameter srid to create tables with a
502            specific srid
503    
504    2004-02-06  Frank Koormann  <[email protected]>
505    
506            * po/pt_BR.po: Fixed charset
507    
508    2004-02-05  Frank Koormann  <[email protected]>
509    
510            * po/pt_BR.po: Fixed format string for error message, missing %s
511            added (Thuban/UI/application.py:273)
512    
513    2004-02-03  Frank Koormann  <[email protected]>
514            
515            First version of Portuguese (Brazilian) translation
516    
517            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
518            Brazilian Portuguese by Eduardo Patto Kanegae.
519    
520            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
521            translators.
522    
523    
524    2004-01-22  Frank Koormann  <[email protected]>
525    
526            * Doc/manual/thuban-manual.xml: Added section on installation of
527            Thuban under Win32 systems. Fixed image path references in the postgis
528            section. Some minor source formattings.
529    
530    2004-01-21  Frank Koormann  <[email protected]>
531    
532            Make Thuban remember path selections (at least for one application run).
533    
534            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
535            attribute of application object. Path is a dictionary of
536            strings, currently with the items "data" and "projection".  
537            (Application.SetPath): New, stores path for the specified item.
538            (Application.Path): New, return path for the specified item.
539    
540            * Thuban/UI/mainwindow.py
541            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
542            MainWindow.AddLayer, MainWindow.AddRasterLayer,
543            MainWindow.TableOpen): Access "data" path information of the
544            application.
545            
546            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
547            Access "projection" path information of the application.
548    
549    2004-01-05  Bernhard Herzog  <[email protected]>
550    
551            * po/ru.po: Updated translations from Alex Shevlakov
552    
553    2004-01-05  Bernhard Herzog  <[email protected]>
554    
555            * po/Makefile, po/README: Move the description of how to generate
556            the translation statistics to the README.
557    
558    2003-12-23  Bernhard Herzog  <[email protected]>
559    
560            * NEWS: Update for 1.0.0
561    
562            * po/it.po: Another update from Maurizio Napolitano
563    
564  2003-12-23  Bernhard Herzog  <[email protected]>  2003-12-23  Bernhard Herzog  <[email protected]>
565    
566          * po/it.po: Updated translation from Maurizio Napolitano          * po/it.po: Updated translation from Maurizio Napolitano

Legend:
Removed from v.2042  
changed lines
  Added in v.2156

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26