Compare commits
442 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e46f2db4e0 | ||
|
407559cfb7 | ||
|
f39d1eea42 | ||
|
ae5eed9d03 | ||
|
bec16e10e0 | ||
|
f1d117f200 | ||
|
9326cc9516 | ||
|
299796096c | ||
|
ad25d37cd9 | ||
|
da88188067 | ||
|
2529ba1e21 | ||
|
08fa85ac02 | ||
|
cb00c2c24f | ||
|
328f5ed549 | ||
|
a5eb50ca64 | ||
|
b08b88541f | ||
|
80683b56a4 | ||
|
9d814b1cd1 | ||
|
d1340b8e9e | ||
|
4e3f2bb8ba | ||
|
cda807be53 | ||
|
6d5aec03c6 | ||
|
45da78e02f | ||
|
b897fd9934 | ||
|
cceedfd818 | ||
|
b444afe435 | ||
|
ed9ed78085 | ||
|
fec227ca26 | ||
|
1602ce9c7b | ||
|
4970e40bbe | ||
|
8823c3c3a5 | ||
|
aea3cc3b3f | ||
|
20b5357d69 | ||
|
9dbc45c169 | ||
|
f7854b7bde | ||
|
a4f0df5d77 | ||
|
69f6ca7a0e | ||
|
18d8a95961 | ||
|
918c667d9e | ||
|
d4faa7fb5a | ||
|
6d205efa76 | ||
|
28986de921 | ||
|
7193900337 | ||
|
cca1ab6962 | ||
|
22edf1cc77 | ||
|
24228468b9 | ||
|
eebe0e1b9d | ||
|
1bf63e6489 | ||
|
cc966a81c3 | ||
|
d3a51742be | ||
|
8313d1d0e5 | ||
|
8ca5792b97 | ||
|
bdbca9f2d5 | ||
|
642ac1a59b | ||
|
9b7b8130ca | ||
|
931edeec73 | ||
|
ea2664213e | ||
|
a00f168b39 | ||
|
7b2485a509 | ||
|
140adfda11 | ||
|
ab312f74ff | ||
|
44fd642af5 | ||
|
0e6a08dad0 | ||
|
7952cb5fb2 | ||
|
82a8ae0fa1 | ||
|
374d732a03 | ||
|
32bf0f2a9e | ||
|
70ff9418ce | ||
|
7150d32018 | ||
|
369f20363c | ||
|
9c19b142e0 | ||
|
ef5e586843 | ||
|
149b6d0214 | ||
|
23d042f798 | ||
|
0ee77a2977 | ||
|
f14ada7d5c | ||
|
11c275e962 | ||
|
9f82da8e2b | ||
|
6f8799ecb5 | ||
|
e622755574 | ||
|
8d717e2717 | ||
|
3e6ab6ea35 | ||
|
ff9b281c13 | ||
|
84a114b13b | ||
|
6d4ca28dbf | ||
|
79acf5fa1d | ||
|
8e8843c1a3 | ||
|
29c1e47abc | ||
|
b2c6b32ac8 | ||
|
fc8b5641c6 | ||
|
16f9e11fbb | ||
|
4379ebcba8 | ||
|
4c8f864ef8 | ||
|
e7352fd9ba | ||
|
4c63b9f3d8 | ||
|
134f7e1017 | ||
|
73bf5d3464 | ||
|
429fdfca9c | ||
|
e83a49df3b | ||
|
83798aa6cf | ||
|
71deca1ed2 | ||
|
f46c5fdbc2 | ||
|
92b2a3ebae | ||
|
a1b78d3155 | ||
|
fe22dec736 | ||
|
77cbbb29d1 | ||
|
a1795af85c | ||
|
7fef80c4f0 | ||
|
c0816e0abb | ||
|
e0942543f6 | ||
|
099782f6c4 | ||
|
3eac620f97 | ||
|
1085895778 | ||
|
09fa5a8677 | ||
|
2a034dee44 | ||
|
d5641fd338 | ||
|
2e5a3a675c | ||
|
7859a36ed1 | ||
|
acab207478 | ||
|
3423e17cf5 | ||
|
34d50128ca | ||
|
e257ec823d | ||
|
a28c5b2445 | ||
|
f39960b81b | ||
|
9f79737ff1 | ||
|
4951fe341d | ||
|
b489b1c49d | ||
|
e51fe94e59 | ||
|
30c985e6ca | ||
|
dc0a95c513 | ||
|
0dace03168 | ||
|
931a8fb8ea | ||
|
9b053b3295 | ||
|
c20a0d7bed | ||
|
6f79df5b3c | ||
|
337a228a92 | ||
|
7fa939b300 | ||
|
9ce4b1e4f9 | ||
|
0edcbde179 | ||
|
887d9370ae | ||
|
5badf9c16d | ||
|
1e36f16e5d | ||
|
ac8968130e | ||
|
85903502f8 | ||
|
2b05ef0e2f | ||
|
15e84218e3 | ||
|
995126d520 | ||
|
e2dddcde07 | ||
|
5f150284e9 | ||
|
466baef2cc | ||
|
4b2bb4cac8 | ||
|
374855ad07 | ||
|
6bff792489 | ||
|
d599d67494 | ||
|
e8d5cb3b1a | ||
|
dcf8cca57a | ||
|
412be29875 | ||
|
7f597dbc16 | ||
|
728b906497 | ||
|
11f9e2a5ad | ||
|
00b27bebbe | ||
|
13938052ab | ||
|
d85dfe7fbc | ||
|
326641d45e | ||
|
d73a511ca2 | ||
|
f72171e69c | ||
|
686a77a212 | ||
|
da031847a4 | ||
|
f0f9ad9886 | ||
|
5af4a500b3 | ||
|
4ebc370084 | ||
|
e0a7418457 | ||
|
1e871c9b0b | ||
|
a77bb2f73c | ||
|
230d71a7f4 | ||
|
eaff1d8a46 | ||
|
9e8f1e8d7d | ||
|
9002bdd104 | ||
|
ec1d406098 | ||
|
48c1ea3a63 | ||
|
b77cfeeffa | ||
|
167e361db2 | ||
|
5a2e6c67a1 | ||
|
4c4f65864b | ||
|
a6e2bcc507 | ||
|
e5b4f8fdb4 | ||
|
164b3f3834 | ||
|
ddd907168c | ||
|
e34e0a31ad | ||
|
375becd89e | ||
|
7318b88878 | ||
|
c39a9e0957 | ||
|
58b882227b | ||
|
db30d89d78 | ||
|
534adf1574 | ||
|
b4d5c95fcc | ||
|
a9443514ab | ||
|
e370435634 | ||
|
6cce3b1002 | ||
|
735f199ca7 | ||
|
bf5b897ce7 | ||
|
2a066d6cd0 | ||
|
612b342d3b | ||
|
36956dfc40 | ||
|
24c24f084b | ||
|
b815cc53f3 | ||
|
84cd02c894 | ||
|
98aa89b129 | ||
|
46e0532375 | ||
|
c806a8b85b | ||
|
e385c0deed | ||
|
e19a0bb989 | ||
|
162c5cf09f | ||
|
9722cac786 | ||
|
b4c4161c9d | ||
|
4b3780f1a1 | ||
|
e320af2295 | ||
|
84ef4c4924 | ||
|
302291f107 | ||
|
b56032b5ab | ||
|
cd6d4ce454 | ||
|
380935e3e1 | ||
|
3adcf13ce1 | ||
|
3adda9b844 | ||
|
c32446a121 | ||
|
ccef30cf3b | ||
|
6c7c4129a6 | ||
|
cc0fc5dc77 | ||
|
fc56e59548 | ||
|
892f6b2c16 | ||
|
5150ca95d9 | ||
|
6d015ed727 | ||
|
c83e009312 | ||
|
c284814bf9 | ||
|
da64e5a831 | ||
|
e4354bd9d9 | ||
|
b8abf1dbcf | ||
|
dad135f231 | ||
|
b87cc0de2e | ||
|
0cc88bd397 | ||
|
7c816b8585 | ||
|
9585455474 | ||
|
86f11437aa | ||
|
8234967797 | ||
|
6690359680 | ||
|
f634edfab0 | ||
|
cac02f36cc | ||
|
385f9248a5 | ||
|
cab2184f22 | ||
|
c1707dd270 | ||
|
410a97df27 | ||
|
963223c6e9 | ||
|
78de5633b0 | ||
|
3630d9386e | ||
|
fc5dafb42f | ||
|
04ddf2f719 | ||
|
f2359c52bf | ||
|
803379c6ce | ||
|
c068650495 | ||
|
d6e2b9d935 | ||
|
59b7b0c550 | ||
|
3accb88627 | ||
|
45b975da63 | ||
|
7319c81c54 | ||
|
6f542c76c6 | ||
|
d9fe3fcf65 | ||
|
5c8f5f3619 | ||
|
2aa0e58539 | ||
|
f574d5faf7 | ||
|
8af2752b05 | ||
|
c5c0f837d6 | ||
|
12aa06c8eb | ||
|
71095e0cd1 | ||
|
fd6e88d4bc | ||
|
e8884cb0f0 | ||
|
0aa4c35011 | ||
|
adbdf17990 | ||
|
4c2dc8c66f | ||
|
d30f2c0c51 | ||
|
dd7782bd2b | ||
|
a8394cee46 | ||
|
888b04b31c | ||
|
b3caa4269b | ||
|
94b7cdcc35 | ||
|
a63ab8d42b | ||
|
bd1d08806c | ||
|
34b76935aa | ||
|
d52b3e5030 | ||
|
84e8118e2a | ||
|
45b99004bb | ||
|
a02245946e | ||
|
d4feac749e | ||
|
629861577f | ||
|
9143d9c774 | ||
|
0f0c1d081d | ||
|
f6bc65df90 | ||
|
c1d7c2e8eb | ||
|
2423e81300 | ||
|
1e920e9b0b | ||
|
1930fd4b41 | ||
|
841ab24a82 | ||
|
a887ae1e2d | ||
|
ff70122359 | ||
|
51fdd2bbb7 | ||
|
abec815ef6 | ||
|
f1f601449b | ||
|
241450bdd8 | ||
|
6d3aaf4496 | ||
|
389ebc0f86 | ||
|
e7b5c1ab04 | ||
|
515d5a6635 | ||
|
6da95a031a | ||
|
56e2dc69b3 | ||
|
a3f3184fc1 | ||
|
bb5a3fcca3 | ||
|
a5c7549ab6 | ||
|
e4f5aab2d8 | ||
|
739253e706 | ||
|
f64c2f942a | ||
|
2465843723 | ||
|
5057e7fc2a | ||
|
d2bf1e61b2 | ||
|
5bc850f8c4 | ||
|
b9d11de692 | ||
|
9dcc0f4d82 | ||
|
f9d3f36888 | ||
|
3dda9cd643 | ||
|
8d0856dd83 | ||
|
66b789434e | ||
|
cfa28c3d55 | ||
|
d41dcb7db4 | ||
|
554c17402a | ||
|
897a15b6e2 | ||
|
30bf53e831 | ||
|
5637841212 | ||
|
e58b1c4b11 | ||
|
5bf51b33e6 | ||
|
142a8971a3 | ||
|
1123ccfeb0 | ||
|
ca2adf909a | ||
|
edc14454f6 | ||
|
ba82c0b1d7 | ||
|
ac1b42a27a | ||
|
cee2b881df | ||
|
e570cef283 | ||
|
898da664d0 | ||
|
ad46d36e0d | ||
|
59b51d3892 | ||
|
1a9306fcd1 | ||
|
c4f60dc812 | ||
|
a8a5a9e0ee | ||
|
3437dec92b | ||
|
f373f67a94 | ||
|
53d8ca02ff | ||
|
86757ef3bd | ||
|
ed0426ac34 | ||
|
f720cfe7fb | ||
|
b95994678e | ||
|
11406fffef | ||
|
90e56690fb | ||
|
50265cc296 | ||
|
0584a03899 | ||
|
fa1e30080c | ||
|
d8a8f12207 | ||
|
e18be38cc2 | ||
|
a996c60201 | ||
|
7592313d61 | ||
|
22b2c85358 | ||
|
6395ae2a81 | ||
|
ca6d6d4955 | ||
|
e512644352 | ||
|
f1461a9265 | ||
|
740aa0405b | ||
|
166eece884 | ||
|
6cbdb0e4c1 | ||
|
143aa70a6a | ||
|
f9da7bca88 | ||
|
c96f77ef51 | ||
|
0e37a365aa | ||
|
334fed79ae | ||
|
33e19a643c | ||
|
923e3d2f6a | ||
|
b59805d5d9 | ||
|
0afdcdc48f | ||
|
6cb7eb77be | ||
|
03e714752d | ||
|
7c982e344e | ||
|
2db5afa52b | ||
|
938d844f35 | ||
|
5a3bdec970 | ||
|
d753903dda | ||
|
0d2ed79e46 | ||
|
449203c668 | ||
|
1c38e95944 | ||
|
96bc205af0 | ||
|
4cf87cfa6c | ||
|
a6572c6f81 | ||
|
5fe0eea37a | ||
|
c691d7ea93 | ||
|
a95b3093e1 | ||
|
3e93a0b9c2 | ||
|
9a70f5e8ef | ||
|
c39ffa9ef7 | ||
|
120e4cce20 | ||
|
279b6225f9 | ||
|
1a9067e7de | ||
|
961b06d57b | ||
|
8fb50257d8 | ||
|
52923b9246 | ||
|
298a023ca8 | ||
|
23592e3aed | ||
|
c2358378da | ||
|
6c041d016e | ||
|
f7d311f184 | ||
|
4072288ea6 | ||
|
ddbc702c83 | ||
|
634be62d3b | ||
|
2d79f15cfe | ||
|
636b8204f6 | ||
|
fe0810f19f | ||
|
7cd056fc7b | ||
|
1c7d6829d6 | ||
|
b9db018370 | ||
|
d684fd400f | ||
|
9e0021fe9f | ||
|
95f43374b7 | ||
|
f397fa326a | ||
|
3ed0317099 | ||
|
f801dfceba | ||
|
7a7bd257d4 | ||
|
3b27bdaefb | ||
|
4a30aaeca3 | ||
|
81b255b596 | ||
|
0609c8a855 | ||
|
b2c6a1e969 | ||
|
f1a66988fd | ||
|
4702273d15 | ||
|
cfc621bed9 | ||
|
456f0dc99f | ||
|
02293637ff | ||
|
57e1a3d376 | ||
|
3264c7c843 |
ChangeLogChangeLog.oldINSTALLMakefile.amNEWSREADMEacinclude.m4configure.in
data
debian
example/gramps
m4
po
ChangeLogPOTFILES.inPOTFILES.skipbg.poca.pocs.poda.pode.poeo.poes.pofi.pofr.pogramps.pothr.pohu.poit.polt.ponb.ponl.ponn.popl.popt_BR.poro.poru.posk.posl.posv.potr.pozh_CN.po
src
ArgHandler.pyBookmarks.pyGrampsAboutDialog.py
Config
DataViews
DateHandler
Makefile.am_DateParser.py_Date_ca.py_Date_cs.py_Date_de.py_Date_es.py_Date_fi.py_Date_fr.py_Date_hr.py_Date_lt.py_Date_nb.py_Date_nl.py_Date_pt.py_Date_ru.py_Date_sk.py_Date_sv.py__init__.py
DbLoader.pyDbManager.pyDisplayModels
DisplayTabs
Editors
Errors.pyExportAssistant.pyExportOptions.pyFilterEditor
Filters
Rules
SideBar
_EventSidebarFilter.py_FamilySidebarFilter.py_MediaSidebarFilter.py_NoteSidebarFilter.py_PersonSidebarFilter.py_PlaceSidebarFilter.py_RepoSidebarFilter.py_SidebarFilter.py_SourceSidebarFilter.py
_SearchBar.pyGrampsDbUtils
_GedcomLex.py_GedcomParse.py_ReadXML.py_WriteGedcom.py_WriteXML.pygedcomimport.gladeimportdbdir.py
GrampsDisplay.pyMakefile.amtest
Merge
PageView.pyPlaceUtils.pyPluginUtils
ReportBase
_BareReportDialog.py_CommandLineReport.py_GraphvizReportDialog.py_PaperMenu.py_ReportUtils.py_StyleEditor.py
ScratchPad.pySelectors
Simple
ThumbNails.pyUtils.pyViewManager.pyconst.py.indata
Makefile.amNWeb-Print_Default.cssNWeb-Screen_Basic-Ash.cssNWeb-Screen_Basic-Cypress.cssNWeb-Screen_Basic-Lilac.cssNWeb-Screen_Basic-Peach.cssNWeb-Screen_Basic-Spruce.cssNWeb-Screen_Mainz.cssNWeb-Screen_Nebraska.cssauthors.xmllds.xmltips.xml.in
docgen
gen
db
lib
proxy
glade
gramps.pygramps_main.pyimages
16x16
Makefile.amgramps-font-bgcolor.pnggramps-font-color.pnggramps-font.pnggramps-gramplet.pnggramps-parents-add.pnggramps-parents-open.pnggramps-reports.pnggramps-tools.pnggramps-viewmedia.pnggramps-zoom-best-fit.pnggramps-zoom-fit-width.pnggramps-zoom-in.pnggramps-zoom-out.pnggramps.png
22x22
Makefile.amgramps-font-bgcolor.pnggramps-font-color.pnggramps-font.pnggramps-gramplet.pnggramps-parents-add.pnggramps-parents-open.pnggramps-reports.pnggramps-tools.pnggramps-viewmedia.pnggramps.png
Makefile.amNWeb_Mainz_Header.pngplugins
AncestorReport.pyBookReport.pyCalculateEstimatedDates.pyCalendar.pyChangeNames.pyCmdRef.pyDefaultGramplets.pyDesbrowser.pyDetAncestralReport.pyDetDescendantReport.pyEndOfLineReport.pyEventCmp.pyExtractCity.pyFilterByName.pyFindDupes.pyGVFamilyLines.pyGVHourGlass.pyGVRelGraph.pyImportCSV.pyIndivComplete.pyMarkerReport.pyNarrativeWeb.pyNotRelated.gladeNotRelated.pyReadPkg.pyRebuild.pyRemoveUnused.pyStatisticsChart.pyVerify.pyWriteFtree.pyWritePkg.pyholidays.xmlrel_de.pyrel_fr.pyrel_pt.pyrel_sv.pyverify.glade
windows/nsis
25135
ChangeLog.old
25135
ChangeLog.old
File diff suppressed because it is too large
Load Diff
23
INSTALL
23
INSTALL
@@ -24,9 +24,8 @@ missing.
|
||||
|
||||
Regular vs local installation
|
||||
-----------------------------
|
||||
This version of gramps requires, among others, the following to be done:
|
||||
|
||||
mime types for gramps MUST be properly installed.
|
||||
This version of gramps REQUIRES, among other things, the mime types for
|
||||
gramps be properly installed.
|
||||
|
||||
The usual ./configure, make, and make install as a root should do the trick.
|
||||
|
||||
@@ -36,21 +35,19 @@ to install without being root.
|
||||
The latter is possible, but you should supply additional arguments to
|
||||
autogen or configure:
|
||||
--with-mime-dir=$HOME/.local/share/mime
|
||||
--disable-scrollkeeper
|
||||
Most likely, such local install will also need some prefix with write
|
||||
permissions for you:
|
||||
--prefix=$HOME/my_gramps_path
|
||||
|
||||
Whether you're doing local install or regular install,
|
||||
YOU MUST INSTALL MIME TYPES.
|
||||
YOU HAVE BEEN WARNED!
|
||||
Whether you're doing local install or regular install, YOU MUST INSTALL
|
||||
MIME TYPES. YOU HAVE BEEN WARNED!
|
||||
|
||||
|
||||
Installing under non-default prefix
|
||||
-----------------------------------
|
||||
As hinted above, mime types for gramps MUST be properly installed.
|
||||
The "proper install" means installing
|
||||
them where the shared mime system will find them.
|
||||
The "proper install" means installing them where the shared mime system
|
||||
will find them.
|
||||
|
||||
By default, the shared mime systems will look in these places:
|
||||
1. /usr/share/mime
|
||||
@@ -71,8 +68,10 @@ something like --prefix=/usr/local/my_gramps, /var/gramps123/blah, etc.
|
||||
|
||||
Packager's issues
|
||||
------------------
|
||||
The above mime types must be installed.
|
||||
However, the update-mime-database to process the newly installed types and schemas must be done in POST-INSTALLATION.
|
||||
The above mime types must be installed. However, the
|
||||
update-mime-database call to process the newly installed types and
|
||||
schemas must be done in POST-INSTALLATION.
|
||||
|
||||
In packager's world, the install happens on packager's machine
|
||||
into something like /tmp/gramps-tmp. However, the postinstall
|
||||
should happen on the user's machine.
|
||||
@@ -85,5 +84,5 @@ This argument should disable postinstall calls made during
|
||||
make install, and print a nasty warning during configure.
|
||||
IT IS PACKAGER'S RESPONSIBILITY to follow the advice given
|
||||
by the configure output and to copy the appropriate code
|
||||
from the src/data/Makefile.am into the post-install (and post-uninstall)
|
||||
from the data/Makefile.am into the post-install (and post-uninstall)
|
||||
of the particular packaging system.
|
||||
|
@@ -7,7 +7,7 @@ EXTRA_DIST = \
|
||||
config.rpath autogen.sh \
|
||||
FAQ COPYING \
|
||||
intltool-extract.in intltool-merge.in intltool-update.in \
|
||||
config.sub config.guess gnome-doc-utils.make
|
||||
config.sub config.guess
|
||||
|
||||
bin_SCRIPTS = gramps
|
||||
|
||||
@@ -18,8 +18,6 @@ distuninstallcheck_listfiles = find . -type -f -print | grep -E -v '/(globs|magi
|
||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update \
|
||||
gnome-doc-utils.make
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper
|
||||
|
||||
gramps: gramps.sh
|
||||
cp gramps.sh gramps
|
||||
|
||||
|
53
NEWS
53
NEWS
@@ -1,4 +1,47 @@
|
||||
Version 3.0.0 -- the "" release
|
||||
Version 3.0.4 -- the "All the children sing" release.
|
||||
* Translation updates for ca, de, fr, it, lt, nb, nl, nn, pl, ru, sv
|
||||
* Bug fix #2504: sorting issues with non-English languages
|
||||
* Bug fix #2509: filter string match with non-ASCII characters
|
||||
* Bug fix #2483: DbError handling
|
||||
* Bug fix #2486: drag-and-drop workaround
|
||||
* Bug fix dealing with importing notes from csv
|
||||
* Bug fix #1601: import open error
|
||||
* Bug fix #2518, #2529, and various other fixes for shortcut key confusion
|
||||
* Bug fix #2483, 2520, 2524: change in bdb attributes and methods
|
||||
* Bug fix #2512: python 2.6 support
|
||||
* Bug fix #2485: cannot create new family tree
|
||||
* Bug fix #2507: unhandled exception when pasting invalid string
|
||||
* Bug fix #2503: change to use of md5 module
|
||||
* Bug fix to .desktop file
|
||||
|
||||
Version 3.0.3 -- the "I have this terrible feeling of déjà vu" release.
|
||||
* Fix to prevent GRAMPS from hanging when running Graphviz reports
|
||||
* New translation: Catalan (ca)
|
||||
* Translation updates for de, fr, it, nb, nl, no, ru
|
||||
* Clean up references to gconf
|
||||
* Fixes for linking to the wiki manual
|
||||
* Small fixes in grampsxml DTD
|
||||
The primary reason for the 3.0.3 release is to fix the Graphviz report hang issue introduced in 3.0.2.
|
||||
|
||||
Version 3.0.2 -- the "You look like a milkman to me" release.
|
||||
* Translation updates for de, fr, hr, nl, no, pl, ru, sv
|
||||
* Many bug fixes (see ChangeLog for full list)
|
||||
* Several fixes backported from trunk
|
||||
* Many fixes to report plugins
|
||||
* Windows-specific fix for RCS
|
||||
* GEDCOM fix for ADDR
|
||||
* Fix for media with non-ASCII characters in filename
|
||||
* Fixes to Gramplets
|
||||
|
||||
Version 3.0.1 -- the "Don't call me "Señor!" release!
|
||||
* Translation updates for de, es, fi, fr, hr, lt, nb, nl, pl, sk, and sv!
|
||||
* Bug fixes for the book report!
|
||||
* Various improvements for the Relationship, Familylines and Hourglass graphs!
|
||||
* Improvements to the narrative web report!
|
||||
* Many miscellaneous bug fixes!
|
||||
* See ChangeLog for full list of changes!
|
||||
|
||||
Version 3.0.0 -- the "It was just getting interesting." release
|
||||
* Rewrite of the GEDCOM parser
|
||||
* Export views to a spreadsheet
|
||||
* Formatted notes
|
||||
@@ -8,6 +51,14 @@ Version 3.0.0 -- the "" release
|
||||
* New database manager, allowing create, deletion, renaming, repair and
|
||||
revison control
|
||||
|
||||
Version 2.2.10 -- the "Lemon Curry?" release
|
||||
|
||||
Version 2.2.9 -- the "Here's your ninepence" release
|
||||
|
||||
Version 2.2.8 -- the "You sons of a silly person" release
|
||||
|
||||
Version 2.2.7 -- the "Well, I didn't vote for you." release
|
||||
|
||||
Version 2.2.6 -- the "Summarize Proust Competition" release
|
||||
* Fix report option saving
|
||||
|
||||
|
3
README
3
README
@@ -11,9 +11,6 @@ The following packages *MUST* be installed in order for Gramps to work:
|
||||
librsvg2 (svg icon view)
|
||||
|
||||
The following packages are *STRONGLY RECOMMENDED* to be installed:
|
||||
Reportlab Enable creation of PDF documents
|
||||
http://www.reportlab.com
|
||||
|
||||
GraphViz Enable creation of graphs using GraphViz engine
|
||||
http://www.graphviz.org
|
||||
xdg Freedesktop utilities, eg xdg-open
|
||||
|
49
acinclude.m4
49
acinclude.m4
@@ -1,46 +1,3 @@
|
||||
dnl AM_GCONF2_REPLACEMENT
|
||||
dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
|
||||
dnl (i.e. pass to $GCONFTOOL
|
||||
dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
|
||||
dnl you should install foo.schemas files
|
||||
dnl
|
||||
dnl This macro was copied from AM_GCONF_SOURCE_2 from the gconf2-dev package.
|
||||
dnl By copying it here we remove the requirement for having it on the system.
|
||||
|
||||
AC_DEFUN([AM_GCONF2_REPLACEMENT],
|
||||
[
|
||||
if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
|
||||
GCONF_SCHEMA_CONFIG_SOURCE=`$GCONFTOOL --get-default-source`
|
||||
else
|
||||
GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(gconf-source,
|
||||
[ --with-gconf-source=sourceaddress Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
|
||||
|
||||
AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
|
||||
AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
|
||||
|
||||
if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
|
||||
GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(gconf-schema-file-dir,
|
||||
[ --with-gconf-schema-file-dir=dir Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
|
||||
|
||||
AC_SUBST(GCONF_SCHEMA_FILE_DIR)
|
||||
AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
|
||||
|
||||
AC_ARG_ENABLE(schemas-install,
|
||||
[ --disable-schemas-install Disable the schemas installation],
|
||||
[case "${enableval}" in
|
||||
yes) schemas_install=true ;;
|
||||
no) schemas_install=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-schemas-install) ;;
|
||||
esac],[schemas_install=true])
|
||||
AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test x$schemas_install = xtrue)
|
||||
])
|
||||
|
||||
dnl AM_SHARED_MIME
|
||||
dnl Defines SHARED_MIME_DIR which is where mime type definitions should go.
|
||||
dnl
|
||||
@@ -86,11 +43,11 @@ AC_DEFUN([AM_PACKAGER],
|
||||
if test "x$packager_mode" = "xtrue"; then
|
||||
AC_MSG_RESULT([WARNING:
|
||||
Packager mode enabled.
|
||||
GConf schemas and shared mime types WILL NOT BE INSTALLED.
|
||||
Shared mime types WILL NOT BE INSTALLED.
|
||||
You will need to place the contents of the
|
||||
GCONF_SCHEMAS_INSTALLATION and SHARED_MIME_INSTALLATION
|
||||
SHARED_MIME_INSTALLATION
|
||||
commands MANUALLY into the postinstall script of your package,
|
||||
see src/data/Makefile.am file for details.
|
||||
see data/Makefile.am file for details.
|
||||
Otherwise you will end up with the unusable package.
|
||||
YOU HAVE BEEN WARNED!])
|
||||
fi
|
||||
|
16
configure.in
16
configure.in
@@ -4,12 +4,12 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
dnl May need to run automake && aclocal first
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT(gramps, 2.90.0, [gramps-bugs@lists.sourceforge.net])
|
||||
dnl NOTE: 1st arg to macro below becomes the "VERSION"
|
||||
AC_INIT(gramps, 3.0.4, [gramps-bugs@lists.sourceforge.net])
|
||||
AC_CONFIG_SRCDIR(configure.in)
|
||||
AM_INIT_AUTOMAKE(1.6.3)
|
||||
AM_INIT_AUTOMAKE([1.6.3 foreign])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
GNOME_DOC_INIT
|
||||
|
||||
RELEASE=0.SVN$(svnversion -n .)
|
||||
dnl RELEASE=0beta
|
||||
@@ -29,18 +29,11 @@ AC_PROG_INTLTOOL
|
||||
|
||||
AM_SHARED_MIME
|
||||
AM_PACKAGER
|
||||
dnl This is a hack to disable scrollkeeper update when in the packager mode.
|
||||
dnl It may not seem good to purists, since we're defining
|
||||
dnl ENABLE_SK_{TRUE,FALSE} twice, but I cannot see any other way
|
||||
dnl without tweaking the gnome-doc-utils macros manually.
|
||||
dnl So, scrollkeeper update is enabled when it would normally be,
|
||||
dnl *provided* this is not the packager mode. Packager mode cancels it.
|
||||
AM_CONDITIONAL(ENABLE_SK, test "x$packager_mode" = "xfalse" -a "x$enable_scrollkeeper" = "xyes")
|
||||
AC_SUBST(RELEASE)
|
||||
AC_SUBST(VERSIONSTRING)
|
||||
|
||||
dnl Add the languages which your application supports here.
|
||||
ALL_LINGUAS="hu zh_CN cs da de es fr it nb nl no pl pt_BR ro ru sv eo fi lt sk tr bg hr sl"
|
||||
ALL_LINGUAS="hu zh_CN cs da de es fr it nb nl nn pl pt_BR ro ru sv eo fi lt sk tr bg hr sl ca"
|
||||
GETTEXT_PACKAGE=gramps
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the Gettext package name.])
|
||||
@@ -192,6 +185,7 @@ data/Makefile
|
||||
data/man/Makefile
|
||||
data/man/fr/Makefile
|
||||
data/man/nl/Makefile
|
||||
data/man/pl/Makefile
|
||||
data/man/sv/Makefile
|
||||
example/Makefile
|
||||
example/gramps/Makefile
|
||||
|
@@ -14,10 +14,6 @@ keys_in_files = gramps.keys.in
|
||||
keys_files = $(keys_in_files:.keys.in=.keys)
|
||||
@INTLTOOL_KEYS_RULE@
|
||||
|
||||
schemas_in_files = gramps.schemas.in
|
||||
schemas_files = $(schemas_in_files:.schemas.in=.schemas)
|
||||
@INTLTOOL_SCHEMAS_RULE@
|
||||
|
||||
# Rules for files with translatable strings
|
||||
# These are taken care of by the intltool
|
||||
xml_in_files = gramps.xml.in
|
||||
@@ -33,9 +29,6 @@ mime_DATA = $(keys_files) gramps.mime
|
||||
xmldir = $(SHARED_MIME_DIR)/packages
|
||||
xml_DATA = $(xml_files)
|
||||
|
||||
schemasdir = $(SHARED_MIME_DIR)/packages
|
||||
schemas_DATA = $(schemas_files)
|
||||
|
||||
pngdir = $(datadir)/icons/gnome/48x48/mimetypes
|
||||
png_DATA = \
|
||||
gnome-mime-application-x-gramps.png \
|
||||
@@ -61,18 +54,15 @@ EXTRA_DIST = \
|
||||
$(mime_DATA) \
|
||||
$(xml_DATA) \
|
||||
$(desktop_DATA) \
|
||||
$(xml_in_files) \
|
||||
$(schemas_DATA) \
|
||||
$(schemas_in_files)
|
||||
$(xml_in_files)
|
||||
|
||||
CLEANFILES = \
|
||||
$(desktop_DATA) \
|
||||
$(keys_files) \
|
||||
$(xml_files) \
|
||||
$(schemas_files)
|
||||
$(xml_files)
|
||||
|
||||
# Conditionally enable/disable gconf schemas or mime types,
|
||||
# or disable both in a packager mode
|
||||
# Conditionally enable/disable mime types,
|
||||
# or disable unconditionally if in a packager mode
|
||||
SHARED_MIME_INSTALLATION =
|
||||
SHARED_MIME_UNINSTALLATION =
|
||||
|
||||
|
@@ -1,12 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
_Name=GRAMPS Genealogy System
|
||||
_Comment=Manage genealogical information, perform genealogical research and analysis
|
||||
Icon=gramps.png
|
||||
Icon=gramps
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=GTK;Office;
|
||||
X-GNOME-DocPath=gramps/gramps-manual.xml
|
||||
MimeType=application/x-gramps;application/x-gedcom;application/x-gramps-package;application/x-gramps-xml
|
||||
MimeType=application/x-gramps;application/x-gedcom;application/x-gramps-package;application/x-gramps-xml;
|
||||
Exec=gramps %F
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -342,7 +342,7 @@ NAME MAPS
|
||||
<!ELEMENT namemaps (map)*>
|
||||
<!ELEMENT map EMPTY>
|
||||
<!ATTLIST map
|
||||
type CDATA #REUIRED
|
||||
type CDATA #REQUIRED
|
||||
key CDATA #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
@@ -440,7 +440,7 @@ SHARED ELEMENTS
|
||||
description CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT objref (region?,reattribute*,sourceref*,noteref*)>
|
||||
<!ELEMENT objref (region?,attribute*,sourceref*,noteref*)>
|
||||
<!ATTLIST objref
|
||||
hlink IDREF #REQUIRED
|
||||
priv (0|1) #IMPLIED
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# This is the data/man level Makefile for Gramps
|
||||
# $Id$
|
||||
|
||||
SUBDIRS = fr sv nl
|
||||
SUBDIRS = fr sv nl pl
|
||||
|
||||
man_IN_FILES = gramps.1.in
|
||||
man_MANS = $(man_IN_FILES:.1.in=.1)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
.TH gramps 1 "@VERSION@" "Février 2008" "@VERSION@"
|
||||
.TH gramps 1 "@VERSION@" "Avril 2008" "@VERSION@"
|
||||
.SH NOM
|
||||
gramps \- GRAMPS est une application de généalogie. GRAMPS est l'acronyme de Genealogical Research and Analysis Management Programming System (Systeme de Programmation pour Recherche, Analyse et Gestion de données généalogiques)
|
||||
|
||||
@@ -69,7 +69,7 @@ Les formats disponibles pour l'importation sont \fBgrdb\fR, \fBgramps\-xml\fR, \
|
||||
.br
|
||||
|
||||
Les formats disponibles pour l'exportation sont
|
||||
ig.
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
@@ -159,7 +159,7 @@ Permet les logs de debug pour le développement et les tests. Regarder le code s
|
||||
.BI \-\^\-version
|
||||
Imprime le numéro de version pour gramps puis quitte.
|
||||
\" changer 0 par 1 pour permettre la sortie des options OAF
|
||||
.si 0 \{
|
||||
.if 0 \{
|
||||
.PP
|
||||
Les options suivantes seront utilisées pour l'activation Bonobo.
|
||||
.TP
|
||||
@@ -173,7 +173,7 @@ OAF IID à activer
|
||||
Prévenir de l'enregistrement du serveur avec OAF
|
||||
\}
|
||||
\" changer 0 par 1 pour permettre la sortie des options son de GNOME
|
||||
.si 0 \{
|
||||
.if 0 \{
|
||||
.PP
|
||||
Les options suivantes seront utilisées pour contrôler le son avec les librairies GNOME.
|
||||
.TP
|
||||
@@ -236,7 +236,16 @@ Pour lire trois ensembles de données puis lancer une session interactive de gra
|
||||
Pour lancer l'outil de vérification de la base de données depuis la ligne de commande et obtenir le résultat:
|
||||
\fBgramps\fR \fB\-O\fR \fIfile.grdb\fR \fB-a\fR \fItool\fR \fB-p\fR \fBname\fR=\fIverify\fR
|
||||
.TP
|
||||
Enfin, pour lancer une session interactive normale, entrer : \fBgramps\fR
|
||||
Enfin, pour lancer une session interactive normale, entrer : \fBgramps\fR
|
||||
|
||||
.SH VARIABLES D'ENVIRONMENT
|
||||
Le programme vérifie si ces variables d'environnement sont déclarées:
|
||||
|
||||
\fBLANG\fR - décrit, quelle langue est utilisée:
|
||||
Ex.: pour le français on peut définir fr_FR.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - si défini, force GRAMPS à utiliser un répertoire spécifique pour y conserver ses préférences et bases de données. Par défaut, cette variable n'est pas active et GRAMPS sait que les options et bases de données doivent être créées
|
||||
dans le répertoire par défaut de l'utilisateur (la variable d'environnement HOME pour Linux ou USERPROFILE pour Windows 2000/XP).
|
||||
|
||||
.SH CONCEPTS
|
||||
GRAMPS est un système basé sur le support de plugin-python, permettant d'importer et d'exporter, la saisie,
|
||||
|
@@ -278,6 +278,18 @@ To run the Verify tool from the commandline and output the result to stdout:
|
||||
Finally, to start normal interactive session type:
|
||||
\fBgramps\fR
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
The program checks whether these environment variables are set:
|
||||
|
||||
\fBLANG\fR - describe, which language to use:
|
||||
Ex.: for polish language this variable has to be set to pl_PL.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - if set, force GRAMPS to use the specified directory to keep
|
||||
program settings and databases there. By default, this variable is not set and
|
||||
gramps assumes that the folder with all databases and profile settings
|
||||
should be created within the user profile folder (described by environment
|
||||
variable HOME for Linux or USERPROFILE for Windows 2000/XP).
|
||||
|
||||
.SH CONCEPTS
|
||||
Supports a python\-based plugin system, allowing import and export writers,
|
||||
report generators, tools, and display filters to be added without modification
|
||||
|
14
data/man/pl/Makefile.am
Normal file
14
data/man/pl/Makefile.am
Normal file
@@ -0,0 +1,14 @@
|
||||
# This is the data/man/pl level Makefile for Gramps
|
||||
# $Id: Makefile.am 6189 2006-03-21 19:05:46Z rshura $
|
||||
|
||||
man_IN_FILES = gramps.1.in
|
||||
man_MANS = $(man_IN_FILES:.1.in=.1)
|
||||
|
||||
mandir = @mandir@/pl
|
||||
|
||||
EXTRA_DIST = $(man_MANS) $(man_IN_FILES)
|
||||
|
||||
gramps.1: $(top_builddir)/config.status gramps.1.in
|
||||
cd $(top_builddir) && CONFIG_FILES=data/man/pl/$@ $(SHELL) ./config.status
|
||||
|
||||
CLEANFILES=$(man_MANS)
|
366
data/man/pl/gramps.1.in
Normal file
366
data/man/pl/gramps.1.in
Normal file
@@ -0,0 +1,366 @@
|
||||
.TH gramps 1 "@VERSION@" "January 2008" "@VERSION@"
|
||||
.SH NAME
|
||||
gramps \- Genealogical Research and Analysis Management Programming System.
|
||||
.br
|
||||
(w wolnym tłumaczeniu: System Wspomagania Badań Genealogicznych
|
||||
i Programowego Zarządzania Tą Informacją)
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B gramps
|
||||
.RB [ \-?|\-\^\-help ]
|
||||
.RB [ \-\^\-usage ]
|
||||
.RB [ \-\^\-version ]
|
||||
.RB [ \-l ]
|
||||
.RB [ \-u|\-\^\-force-unlock ]
|
||||
.RB [ \-O|\-\^\-open=
|
||||
.IR BAZA_DANYCH
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR PLIK
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR ... ]
|
||||
.RB [ \-o|\-\^\-output=
|
||||
.IR PLIK
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-a|\-\^\-action=
|
||||
.IR AKCJA ]
|
||||
.RB [ \-p|\-\^\-options=
|
||||
.IR CIĄG_OPCJI ]]
|
||||
.RB [
|
||||
.IR PLIK
|
||||
.RB ]
|
||||
.if 0 .RB [ bonobo\ options ]
|
||||
.if 0 .RB [ sound\ options ]
|
||||
.RB [ \-\-version ]
|
||||
|
||||
.SH OPIS
|
||||
.PP
|
||||
\fIGramps\fP jest wolnym, darmowym programem genealogicznym OpenSource. Jest
|
||||
napisany w Python, przy użyciu interfejsu GTK+/GNOME.
|
||||
Dla każdego, kto wcześniej używał innego programu genealogicznego (np.
|
||||
\fIFamily Tree Maker (TM)\fR, \fIPersonal Ancestral Files (TM)\fR,
|
||||
lub GNU Geneweb), zapoznanie się z interfejsem Gramps'a będzie natychmiastowe.
|
||||
Program obsługuje także import i eksport w popularnym formacie GEDCOM, który
|
||||
jest używany przez większość programów genealogicznych na świecie.
|
||||
|
||||
.SH OPCJE
|
||||
.TP
|
||||
.BI gramps " PLIK"
|
||||
Kiedy \fIPLIK\fR jest podany (bez żadnych flag) jako nazwa drzewa rodzinnego
|
||||
albo nazwa katalogu z drzewem, to wybrane drzewo jest otwierane i rozpoczynana
|
||||
jest sesja interaktywna. Jeśli PLIK jest formatem rozpoznawanym przez GRAMPS,
|
||||
to tworzone jest puste drzewo, którego nazwa bazuje na nazwie \fIPLIKU\fP
|
||||
i dane są do niego importowane. Pozostałe opcje są wtedy ignorowane.
|
||||
Jest to sposób na używanie programu jako uchwytu obsługującego
|
||||
dane genealogiczne, np. w przeglądarce internetowej. Takie wywołanie akceptuje
|
||||
każdy format natywny dla grampsa, zobacz poniżej.
|
||||
.br
|
||||
|
||||
.TP
|
||||
.BI \-f,\-\^\-format= " FORMAT"
|
||||
Jawne określenie formatu \fIPLIKU\fR przez poprzedzenie opcji
|
||||
.ig
|
||||
\fB\-O\fR,
|
||||
..
|
||||
\fB\-i\fR, lub \fB\-o\fR.
|
||||
Jeśli opcja \fB\-f\fR nie jest podana dla żadnego \fIPLIKU\fR,
|
||||
to format pliku jest określany na podstawie rozszerzenia albo typu MIME.
|
||||
.br
|
||||
|
||||
Dostępne formaty wyjściowe to:
|
||||
.br
|
||||
\fBgramps\-xml\fR (używany jeśli \fIPLIK\fR kończy się na \fB.gramps\fR),
|
||||
.br
|
||||
\fBgedcom\fR (przyjmowany jeśli \fIPLIK\fR kończy się na \fB.ged\fR),
|
||||
.br
|
||||
lub dowolny plik eksportu obsługiwany przez system wtyczek GRAMPS.
|
||||
.br
|
||||
|
||||
Formaty
|
||||
dostępne dla importu to:
|
||||
\fBgrdb\fR, \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
.br
|
||||
\fBgramps\-pkg\fR (przyjmowany jeśli \fIPLIK\fR kończy się na \fB.gpkg\fR),
|
||||
.br
|
||||
oraz \fBgeneweb\fR (przyjmowany jeśli \fIPLIK\fR ma rozszerzenie \fB.gw\fR).
|
||||
.br
|
||||
|
||||
Formats dostępne dla eksportu to:
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR, \fBwft\fR (jeśli rozszerzenie \fIPLIKU\fR to \fB.wft\fR),
|
||||
\fBgeneweb\fR, i \fBiso\fR (używany tylko, jeśli jawnie określony przez
|
||||
parametr \fB\-f\fR ).
|
||||
|
||||
.TP
|
||||
.BI \-l
|
||||
Wyświetla listę dosŧępnych drzew genealogicznych.
|
||||
|
||||
.TP
|
||||
.BI \-u,\-\^\-force-unlock
|
||||
Wymusza odblokowanie bazy danych.
|
||||
|
||||
.TP
|
||||
.BI \-O,\-\^\-open= " BAZA_DANYCH"
|
||||
Otwiera \fIBAZĘ_DANYCH\fR, która musi istnieć w katalogu baz lub być nazwą
|
||||
istniejącego drzewa rodzinnego. Jeśli nie podano akcji, to opcje eksportu
|
||||
albo importu są wykonywane, a następnie jest uruchamiana sesja interaktywna
|
||||
z otwarciem wybranej bazy.
|
||||
|
||||
.TP
|
||||
.BI \-i,\-\^\-import= " PLIK"
|
||||
Importuje dane z \fIPLIKU\fR. Jeśli nie określono bazy danych, to
|
||||
tworzona jest tymczasowa baza kasowana po zamknięciu programu.
|
||||
.br
|
||||
|
||||
Kiedy podany jest więcej niż jeden plik do importu, to każdy z nich musi być
|
||||
poprzedzony flagą \fB\-i\fR. Pliki są importowane w kolejności podanej w linii
|
||||
poleceń, np.: \fB\-i\fR \fIPLIK1\fR \fB\-i\fR \fIPLIK2\fR oraz
|
||||
\fB\-i\fR \fIPLIK2\fR \fB\-i\fR \fIPLIK1\fR mogą utworzyć inne identyfikatory
|
||||
(gramps ID) w bazie wynikowej.
|
||||
|
||||
.TP
|
||||
.BI \-o,\-\^\-output= " PLIK"
|
||||
Eksportuje dane do \fIPLIKU\fR. Dla formatu \fBiso\fR, \fIPLIK\fR natomiast
|
||||
nazwą katalogu, do którego baza danych gramps zostanie zapisana.
|
||||
Dla
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR, \fBwft\fR, \fBgramps\-pkg\fR,
|
||||
oraz \fBgeneweb\fR, \fIPLIK\fR jest nazwą pliku wynikowego.
|
||||
.br
|
||||
|
||||
Kiedy więcej niż jeden plik wyjściowy jest podany, każdy musi być poprzedzony
|
||||
flagą \fB\-o\fR. Pliki będą zapisywane kolejno, w podanej przez parametry
|
||||
kolejności.
|
||||
|
||||
.TP
|
||||
.BI \-a,\-\^\-action= " AKCJA"
|
||||
Wykonuje \fIAKCJĘ\fR na zaimportowanych danych. Działanie to jest wykonywane
|
||||
dopiero, gdy wszystkie określone importy zakończą się powodzeniem. Aktualnie
|
||||
dostępne akcje to:
|
||||
.br
|
||||
\fBsummary\fR (taka sama jak Raporty->Wyświetl->Podsumowanie bazy danych),
|
||||
.br
|
||||
\fBcheck\fR (tożsama z Narzędzia->Naprawa bazy danych->Sprawdź i napraw bazę),
|
||||
.br
|
||||
\fBreport\fR (generuje raport), oraz
|
||||
.br
|
||||
\fBtool\fR (uruchamia narzędzie/wtyczkę).
|
||||
Zarówno \fBreport\fR jak i \fBtool\fR wymagają podania \fICIĄGU_OPCJI\fR
|
||||
poprzedzonego flagą \fB\-p\fR ).
|
||||
.br
|
||||
|
||||
\fICIĄG_OPCJI\fR powinien spełniać następujące warunki:
|
||||
.br
|
||||
Nie może zawierać spacji.
|
||||
Jeśli niektóre argumenty wymagają spacji, ciąg powinien być enkapsulowany
|
||||
w znakach cudzysłowu, (zobacz składnię powłoki). Ciąg opcji jest listą
|
||||
parametrów z nazwą i wartością oddzielonymi znakiem równości. Kolejne
|
||||
parametry muszą być oddzielone od siebie znakiem przecinka.
|
||||
.br
|
||||
|
||||
Większość opcji dla raportów czy narzędzi jest specyficzna dla konkretnej opcji,
|
||||
jednak część z opcji jest wspólna, szczególnie dla raportów.
|
||||
|
||||
.BI "name=nazwa"
|
||||
.br
|
||||
Opcja wymagana, określający który raport czy narzędzie będzie uruchamiane.
|
||||
Jeśli podana wartość \fInazwy\fR nie pasuje do żadnego dostępnego raportu czy
|
||||
narzędzia, zostanie wyświetlony komunikat o błędzie oraz lista dostępnych
|
||||
raportów albo opcji (w zależności od wartości parametru \fIAKCJA\fR).
|
||||
|
||||
.BI "show=all"
|
||||
.br
|
||||
Wyświetla listę wszystkich nazw dostępnych opcji wraz z krótkim opisem dla
|
||||
danego raportu albo narzędzia.
|
||||
|
||||
.BI "show=nazwa_opcji"
|
||||
.br
|
||||
Wyświetla opis funkcji udostępnianej przez daną \fInazwę_opcji\fR, jak również
|
||||
listę parametrów, które akceptuje dana opcja.
|
||||
|
||||
.br
|
||||
Używając powyższych opcji jesteś w stanie dowiedzieć się o wszystkich
|
||||
możliwościach danego raportu.
|
||||
|
||||
.LP
|
||||
Kiedy więcej niż jeden akcja wyjściowa jest podana, każda musi być poprzedzona
|
||||
flagą \fB\-a\fR. Akcje są wykonywane jedna po drugiej, w kolejności w jakiej
|
||||
występują w linii poleceń.
|
||||
|
||||
.TP
|
||||
.BI \-d,\-\^\-debug= " NAZWA_LOGGERA"
|
||||
Włącza logi debuggowania dla celów programistycznych i testowych. Zobacz
|
||||
do kodu źródłowego po szczegóły.
|
||||
|
||||
.TP
|
||||
.BI \-\^\-version
|
||||
Wyświetla wersję programu i kończy działanie.
|
||||
\" change 0 to 1 to enable output of OAF options
|
||||
.if 1 \{
|
||||
.PP
|
||||
Następujące opcje są używane przy aktywacji Bonobo:
|
||||
.TP
|
||||
.BI \-\^\-oaf-ior-fd= "FD"
|
||||
Deskryptor pliku, do którego wpisać OAF IOR.
|
||||
.TP
|
||||
.BI \-\^\-oaf-activate-iid= " IID"
|
||||
OAF IID do aktywacji.
|
||||
.TP
|
||||
.BI \-\^\-oaf-private
|
||||
Wstgrzymuje rejestrację serwera przez OAF.
|
||||
\}
|
||||
\" change 0 to 1 to enable output of Gnome sound options
|
||||
.if 1 \{
|
||||
.PP
|
||||
Następujące opcje są używane do kontroli dźwięku generowanego za pomocą
|
||||
Gnome Library.
|
||||
.TP
|
||||
.BI \-\^\-disable-sound
|
||||
Wyłącza użycie serwera dźwięku.
|
||||
.TP
|
||||
.BI \-\^\-enable-sound
|
||||
Włącza użycie serwera dźwięku.
|
||||
.TP
|
||||
.BI \-\^\-espeaker= " HOSTNAME:PORT"
|
||||
Host:port na którym jest uruchomiony serwer dźwięku.
|
||||
\}
|
||||
|
||||
.SH "Działanie"
|
||||
.br
|
||||
Jeśli pierwszy argument nie rozpoczyna się znakiem myślnik, (nie jest flagą),
|
||||
to gramps będzie próbował otworzyć plik podany przez pierwszy argument, a
|
||||
następnie sesję interaktywną a pozostałą część parametrów w linii poleceń
|
||||
zignoruje.
|
||||
|
||||
.LP
|
||||
Jeśli podana jest flaga \fB\-O\fR, będzie próbował otworzyć podaną bazę
|
||||
i pracować na danych w niej zawartych realizując podane później polecenia
|
||||
z linii komend.
|
||||
|
||||
.LP
|
||||
Z flagą \fB\-O\fR czy bez, może występować wiele importów, eksportów oraz
|
||||
akcji określonych za pomocą flag \fB\-i\fR, \fB\-o\fR, oraz \fB\-a\fR .
|
||||
|
||||
.LP
|
||||
Kolejność podawania opcji \fB\-i\fR, \fB\-o\fR, czy \fB\-a\fR nie ma znaczenia.
|
||||
Wykonywane są one zawsze w kolejności: wszystkie importy (jeśli podane) ->
|
||||
wszystkie akcje (jeśli podane) -> wszystkie eksporty (jeśli podane)
|
||||
Ale otwarcie bazy zawsze musi być na pierwszym parametrem !
|
||||
|
||||
.LP
|
||||
Jeśli nie podano opcji \fB\-O\fR lub \fB\-i\fR, gramps uruchomi swoje główne
|
||||
okno i rozpocznie normalną sesję interaktywną z pustą bazą danych (ponieważ
|
||||
nie zdołał przetworzyć do niej żadnych danych).
|
||||
|
||||
.LP
|
||||
Jeśli nie podano opcji\fB\-o\fR albo \fB\-a\fR gramps uruchomi swoje głowne
|
||||
okno i rozpocznie normalną sesję interaktywną z bazą będącą wynikiem wszystkich importów. Ta baza będzie znajdować się w pliku \fBimport_db.grdb\fR
|
||||
w katalogu \fB~/.gramps/import\fR.
|
||||
|
||||
.LP
|
||||
Błąd podczas importu, eksportu albo dowolnej akcji będzie przekierowany na
|
||||
\fIstdout\fR (jeśli wyjątek zostanie obsłużony przez gramps) albo na
|
||||
\fIstderr\fR (jeśli nie jest obsłużony). Użyj standardowych przekierowań
|
||||
strumieni \fIstdout\fR oraz \fIstderr\fR jeśli chcesz zapisać wyświetlane
|
||||
informacje i błędy do pliku.
|
||||
|
||||
.SH PRZYKŁADY
|
||||
.TP
|
||||
Aby otworzyć istniejące drzewo rodzinne i zaimportować dane do niego, można wpisać:
|
||||
\fBgramps\fR \fB\-O\fR \fI'Moje drzewo'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Powyższa opcja otwiera istniejące drzewo, ale gdy chcesz zrobić wykonać taką
|
||||
samą akcję tworząc tymczasowe drzewo: wystarczy wpisać:
|
||||
\fBgramps\fR \fB\-i\fR \fI'Moje drzewo'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Aby zaimportować cztery bazy (których formaty zostaną określone na podstawie
|
||||
ich nazw) i następnie sprawdić powstałą bazę pod kątem błędów, należy wpisać:
|
||||
\fBgramps\fR \fB\-i\fR \fIplik1.ged\fR \fB\-i\fR \fIplik2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-i\fR \fIplik4.wft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Aby jawnie określić formaty w powyższym przykładzie, należy dodać nazwy plików
|
||||
z odpowiednimi opcjami \fB\-f\fR options:
|
||||
\fBgramps\fR \fB\-i\fR \fIplik1.ged\fR \fB\-f\fR \fIgedcom\fR \fB\-i\fR \fIplik2.tgz\fR \fB\-f\fR \fIgramps-pkg\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-f\fR \fIgramps-xml\fR \fB\-i\fR \fIplik4.wft\fR \fB\-f\fR \fIwft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Aby zachować bazę z wynikami wszystkich importów, należy dodać flagę \fB\-o\fR (należy użyć \fB\-f\fR jeśli nazwa pliku nie pozwala gramps'owi na odgadnięcie formatu wyjściowego):
|
||||
\fBgramps\fR \fB\-i\fR \fIplik1.ged\fR \fB\-i\fR \fIplik2.tgz\fR \fB\-o\fR \fI~/nowy-pakiet\fR \fB\-f\fR \fIgramps-pkg\fR
|
||||
.TP
|
||||
W celu zaimportwania trzech baz i rozpoczęcia sesji interaktywnej z wynikiem
|
||||
importu należy użyć polecenia podobnego do poniższego:
|
||||
\fBgramps\fR \fB\-i\fR \fIplik1.ged\fR \fB\-i\fR \fIplik22.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Aby uruchomić narzędzie weryfikacji z linii poleceń i wyświetlić wyniki na
|
||||
stdout:
|
||||
\fBgramps\fR \fB\-O\fR \fI'Moje drzewo'\fR \fB-a\fR \fItool\fR \fB-p\fR \fBname\fR=\fIverify\fR
|
||||
.TP
|
||||
Zawsze można też po prostu uruchomić sesję interaktywną wpisująć:
|
||||
\fBgramps\fR
|
||||
|
||||
.SH ZMIENNE ŚRODOWISKOWE
|
||||
Program sprawdza w systemie istnienie i wartości następujących zmiennych:
|
||||
|
||||
\fBLANG\fR - określa ustawienia, jaki język zostanie wybrany.
|
||||
Np.: polski to pl_PL.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - określa folder, w którym będzie zapisywane ustawienia i bazy
|
||||
programu. Domyślnie jest on nieustawiony, a program przyjmuje, że katalog
|
||||
z danymi zostanie utworzony w profilu użytkownika (zmienna HOME pod Linuxem
|
||||
albo USERPROFILE pod Windows 2000/XP).
|
||||
|
||||
|
||||
.SH KONCEPCJA
|
||||
Obsługa systemu rozszerzeń bazującego na pythonie, pozwalającego na dodawanie
|
||||
formatów importu i eksportu zapisów, generatorów raportów, narzędzi i filtrów
|
||||
wyświetlania bez modyfikowania głównego programu
|
||||
.LP
|
||||
Dodatkowo oprócz generowania standardowego wyjścia na drukarkę, raporty mogą
|
||||
także być generowane dla innch systemów i do innych formatów, takich jak:
|
||||
\fIOpenOffice.org\fR, \fIAbiWord\fR, HTML, lub LaTeX aby umożliwić użytkownikm
|
||||
wybór formatu wyjściowego w zależności od ich potrzeb.
|
||||
|
||||
.SH ZNANE BŁĘDY I OGRANICZENIA
|
||||
Prawdopodobne. Lista błędów i propozycji znajduje się na:
|
||||
\fIhttp://developers.gramps-project.org\fR.
|
||||
|
||||
.SH PLIKI
|
||||
.LP
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.br
|
||||
\fI${PREFIX}/share/gramps\fP
|
||||
.br
|
||||
\fI${HOME}/.gramps\fP (jeśli nie użyta została zmienna środowiskowa GRAMPSHOME)
|
||||
|
||||
.SH AUTORZY
|
||||
Donald Allingham \fI<don@gramps-project.org>\fR
|
||||
.br
|
||||
\fIhttp://gramps.sourceforge.net\fR
|
||||
.LP
|
||||
Ta strona man jest tłumaczeniem strony man napisanej przez:
|
||||
.br
|
||||
Brandon L. Griffith \fI<brandon@debian.org>\fR
|
||||
.br
|
||||
dla systemu Debian GNU/Linux.
|
||||
.LP
|
||||
Ta strona aktualnie jest pod opeką:
|
||||
.br
|
||||
Projekt Gramps\fI<xxx@gramps-project.org>\fR
|
||||
.br
|
||||
Tłumaczenie na polski: Łukasz Rymarczyk <yenidai@poczta.onet.pl>
|
||||
.br
|
||||
|
||||
.SH DOCUMENTATION
|
||||
Dokumentacja użytkownika jest dostępna poprzez standardową przeglądarkę
|
||||
pomocy systemu GNOME. Dokumentacja dostępna jest także w formacie XML jako
|
||||
plik \fBgramps-manual.xml\fR w folderze \fIdoc/gramps-manual/$LANG\fR
|
||||
w głównym źródle dystrybucji.
|
||||
.LP
|
||||
Dokumentacja dla programistów jest dostępna na stronie projektu:
|
||||
\fIhttp://developers.gramps-project.org\fR.
|
@@ -1,4 +1,4 @@
|
||||
.TH gramps 3 "@VERSION@" "Januari 2008" "@VERSION@"
|
||||
.TH gramps 1 "@VERSION@" "Januari 2008" "@VERSION@"
|
||||
.SH NAMN
|
||||
gramps \- Genealogical Research and Analysis Management Programming System.
|
||||
|
||||
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@@ -1,3 +1,9 @@
|
||||
gramps (3.0.0-1) gutsy; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Stephane Charette <stephanecharette@gmail.com> Mon, 31 Mar 2008 19:42:05 -0700
|
||||
|
||||
gramps (2.90.0-0beta) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
19
debian/control
vendored
19
debian/control
vendored
@@ -2,16 +2,16 @@ Source: gramps
|
||||
Section: gnome
|
||||
Priority: optional
|
||||
Maintainer: James A. Treacy <treacy@debian.org>
|
||||
Build-Depends-Indep: debhelper (>=5.0.37.2), python-xml, python-gnome2, python-glade2, scrollkeeper, libglib2.0-dev, libgconf2-dev, build-essential, gnome-doc-utils, intltool, xsltproc, python-central (>= 0.4.17)
|
||||
Build-Depends-Indep: debhelper (>=5.0.37.2), python-xml, python-gnome2, python-glade2, scrollkeeper, libglib2.0-dev, build-essential, gnome-doc-utils, intltool, xsltproc, python-central (>= 0.4.17)
|
||||
Standards-Version: 3.6.2
|
||||
XS-Python-Version: current
|
||||
|
||||
Package: gramps
|
||||
Architecture: all
|
||||
Depends: ${python:Depends}, python-gnome2, python-glade2, ${misc:Depends}
|
||||
Replaces: gramps-manual, gramps-extending-doc
|
||||
Replaces: gramps-manual, gramps-extending-doc, gramps-help
|
||||
Conflicts: gramps-manual, gramps-extending-doc, gramps-common
|
||||
Recommends: gramps-help, graphviz, ttf-freefont, python-reportlab, python-gnome2-extras
|
||||
Recommends: graphviz, ttf-freefont, python-reportlab, python-gnome2-extras
|
||||
Description: Genealogical Research and Analysis Management Program
|
||||
GRAMPS, the Genealogical Research and Analysis Management Programming
|
||||
System, is an Open Source genealogy program written in Python, using
|
||||
@@ -21,16 +21,3 @@ Description: Genealogical Research and Analysis Management Program
|
||||
in various formats such as the popular ABIWord and OpenOffice.org
|
||||
formats as well as HTML and PDF.
|
||||
|
||||
Package: gramps-help
|
||||
Architecture: all
|
||||
Depends: scrollkeeper (>= 0.3.14-9), yelp
|
||||
Replaces: gramps-manual, gramps-extending-doc
|
||||
Conflicts: gramps-manual, gramps-extending-doc, gramps-common
|
||||
Recommends: gramps
|
||||
Description: User manual for gramps
|
||||
GRAMPS, the Genealogical Research and Analysis Management Programming
|
||||
System, is an Open Source genealogy program written in Python, using
|
||||
the GTK/GNOME interface.
|
||||
.
|
||||
This package contains the User Manual on using GRAMPS.
|
||||
|
||||
|
Binary file not shown.
@@ -45528,22 +45528,22 @@
|
||||
</places>
|
||||
<objects>
|
||||
<object id="O0010" handle="_238CGQ939HG18SS5MG" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/1897_expeditionsmannschaft_rio_a.jpg" mime="image/jpeg" description="1897_expeditionsmannschaft_rio_a"/>
|
||||
<file src="1897_expeditionsmannschaft_rio_a.jpg" mime="image/jpeg" description="1897_expeditionsmannschaft_rio_a"/>
|
||||
</object>
|
||||
<object id="O0008" handle="_B1AUFQV7H8R9NR4SZM" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/654px-Aksel_Andersson.jpg" mime="image/jpeg" description="654px-Aksel_Andersson"/>
|
||||
<file src="654px-Aksel_Andersson.jpg" mime="image/jpeg" description="654px-Aksel_Andersson"/>
|
||||
</object>
|
||||
<object id="O0006" handle="_F0QIGQFT275JFJ75E8" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/Alimehemet.jpg" mime="image/jpeg" description="Alimehemet"/>
|
||||
<file src="Alimehemet.jpg" mime="image/jpeg" description="Alimehemet"/>
|
||||
</object>
|
||||
<object id="O0011" handle="_Y3ARGQWE088EQRTTDH" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/AntoineClaudet.png" mime="image/png" description="AntoineClaudet"/>
|
||||
<file src="AntoineClaudet.png" mime="image/png" description="AntoineClaudet"/>
|
||||
</object>
|
||||
<object id="O0007" handle="_F8JYGQFL2PKLSYH79X" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/E_W_Dahlgren.jpg" mime="image/jpeg" description="E_W_Dahlgren"/>
|
||||
<file src="E_W_Dahlgren.jpg" mime="image/jpeg" description="E_W_Dahlgren"/>
|
||||
</object>
|
||||
<object id="O0009" handle="_78V2GQX2FKNSYQ3OHE" change="1185438865">
|
||||
<file src="/home/shura/devel-gramps/example/gramps/Gunnlaugur_Larusson_-_Yawn.jpg" mime="image/jpeg" description="Yawn"/>
|
||||
<file src="Gunnlaugur_Larusson_-_Yawn.jpg" mime="image/jpeg" description="Yawn"/>
|
||||
</object>
|
||||
</objects>
|
||||
<repositories>
|
||||
|
@@ -2,7 +2,6 @@ EXTRA_DIST = \
|
||||
codeset.m4 \
|
||||
gettext.m4 \
|
||||
glibc21.m4 \
|
||||
gnome-doc-utils.m4 \
|
||||
iconv.m4 \
|
||||
intltool.m4 \
|
||||
isc-posix.m4 \
|
||||
|
716
po/ChangeLog
716
po/ChangeLog
@@ -1,716 +0,0 @@
|
||||
2008-03-08 Luigi Toscano <luigi.toscano@tiscali.it>
|
||||
* it.po: massive updates, still far from completion
|
||||
|
||||
2008-03-08 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-03-06 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Updated Norwegian translation (still some work to do)
|
||||
* no.po: Updated Norwegian translation (still some work to do)
|
||||
|
||||
2008-03-03 Mirko Leonhäuser <mirko@leonhaeuser.de>
|
||||
* de.po : Translation update
|
||||
|
||||
2008-03-03 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po : update
|
||||
|
||||
2008-03-01 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* gramps.pot: update
|
||||
* nl.po: Translation update
|
||||
|
||||
2008-02-29 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po : update, will clean up old references soon (RC)
|
||||
|
||||
2008-02-25 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||
* POTFILES.in : add missing plugins/DateParserDisplayTest.py #0001819
|
||||
|
||||
2008-02-23 Bernard Banko <bernard.banko@siol.net>
|
||||
* sl.po: Translation update
|
||||
|
||||
2008-02-22 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* gramps.pot: update to include manual strings
|
||||
* nl.po: Translation update
|
||||
|
||||
2008-02-22 Łukasz Rymarczyk <yenidai@poczta.onet.pl>
|
||||
* pl.po: Translation update
|
||||
|
||||
2008-02-21 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2008-02-21 Stéphane Charette <stephanecharette@gmail.com>
|
||||
* gramps.pot
|
||||
* POTFILES.in: fixed typo (plubins versus plugins)
|
||||
|
||||
2008-02-20 Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
* cs.po Corrections and update of cs translation.
|
||||
|
||||
2008-02-19 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-02-19 Peter Landgren <peter.talken@telia.com>
|
||||
* sv.po: Translation update, mnemonic changes
|
||||
|
||||
2008-02-18 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-02-14 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* gramps.pot: update to include manual strings
|
||||
* nl.po: Translation update
|
||||
|
||||
2008-02-16 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Updated Norwegian translation (still some work to do)
|
||||
* no.po: Updated Norwegian translation (still some work to do)
|
||||
|
||||
2008-02-15 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: some updates on Norwegian translation (still a lot to do)
|
||||
* no.po: some updates on Norwegian translation (still a lot to do)
|
||||
|
||||
2008-02-15 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-02-14 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* gramps.pot: update
|
||||
|
||||
2008-02-08 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2008-02-05 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||
* POTFILES.in: remove checkpoint reference
|
||||
|
||||
2008-02-02 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2008-02-02 Łukasz Rymarczyk <yenidai@poczta.onet.pl>
|
||||
* pl.po: Translation update
|
||||
|
||||
2008-01-31 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
* de.po: Translation update
|
||||
|
||||
2008-01-29 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* gramps.pot: update template
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-01-28 Łukasz Rymarczyk <yenidai@poczta.onet.pl>
|
||||
* pl.po: Translation update
|
||||
|
||||
2008-01-28 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: use correct translation for beta
|
||||
|
||||
2008-01-24 Boril Gourinov <boril.gourinov@gmail.com>
|
||||
* bg.po: Translation update
|
||||
|
||||
2008-01-15 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* POTFILE.in : add missing plugins/References.py
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-01-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
* de.po: Translation update
|
||||
|
||||
2008-01-13 Josip <josip@pisoj.com>
|
||||
* hr.po: Translation update
|
||||
|
||||
2008-01-07 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2008-01-05 Josip <josip@pisoj.com>
|
||||
* hr.po New language, Croatian
|
||||
|
||||
2008-01-02 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* nl.po: Translation update Fuzzy:0 Untranslated: 0
|
||||
|
||||
2007-12-31 Boril Gourinov <boril.gourinov@gmail.com>
|
||||
* bg.po: New language, bulgarian
|
||||
|
||||
2007-12-30 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* POTFILES.in : update
|
||||
* gramps.pot : update template
|
||||
* fr.po: Translation update
|
||||
|
||||
2007-12-28 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2007-12-24 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
|
||||
2007-12-23 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2007-12-23 Stéphane Charette <stephanecharette@gmail.com>
|
||||
* gramps.po: update to get ready for 3.0.0 beta
|
||||
|
||||
2007-12-22 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Translation update
|
||||
|
||||
2007-12-21 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* nl.po: Translation update Fuzzy:98 Untranslated: 4
|
||||
|
||||
2007-12-20 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* POTFILES.in : add plugins/GVRelGraph.py reference
|
||||
* gramps.pot : update template
|
||||
* fr.po: Translation update
|
||||
|
||||
2007-12-19 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation improvements (media is plurial)
|
||||
|
||||
2007-12-17 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update (some untranslated phrases)
|
||||
* no.po: Translation update (some untranslated phrases)
|
||||
|
||||
2007-11-27 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-11-16 Mirko Leonhäuser <mirko@leonhaeuser.de>
|
||||
* de.po: Translation update
|
||||
|
||||
2006-11-16 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||
* de.po: Small updates. Still a lot todo.
|
||||
|
||||
2007-10-30 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
* gramps.pot: commit updated template
|
||||
|
||||
2007-10-25 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update (still some untranslated phrases)
|
||||
* no.po: Translation update (still some untranslated phrases)
|
||||
|
||||
2007-10-14 Frederik De Richter <frederik.de.richter@pandora.be>
|
||||
* nl.po: Translation update (125 fuzzies, 12 untranslated)
|
||||
|
||||
2007-10-10 Bernard Banko <bernard.banko@siol.net>
|
||||
* sl.po: New language, slovenian
|
||||
|
||||
2007-09-17 Luiz Gonzaga <lfilho@gmail.com>
|
||||
* pt_BR.po: Update.
|
||||
|
||||
2007-09-17 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update (still some untranslated phrases)
|
||||
* no.po: Translation update (still some untranslated phrases)
|
||||
|
||||
2007-09-02 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update (still some untranslated phrases)
|
||||
* no.po: Translation update (still some untranslated phrases)
|
||||
|
||||
2007-09-01 Peter Landgren <peter.talken@telia.com>
|
||||
* sv.po: Update.
|
||||
|
||||
2007-08-30 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update (still some untranslated phrases)
|
||||
* no.po: Translation update (still some untranslated phrases)
|
||||
|
||||
2007-08-22 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-07-02 Peter Landgren <peter.talken@telia.com>
|
||||
* sv.po: Update.
|
||||
|
||||
2007-06-23 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2007-06-16 Peter Landgren <peter.talken@telia.com>
|
||||
* sv.po: Update.
|
||||
|
||||
2007-06-16 Matthias Alles <alles@rhrk.uni-kl.de>
|
||||
* de.po: Fixes.
|
||||
|
||||
2007-06-15 Matthias Alles <alles@rhrk.uni-kl.de>
|
||||
* de.po: Fix the "was the son of" problem.
|
||||
|
||||
2007-06-13 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2007-05-24 Lubo Vasko <pgval@inMail.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2007-05-21 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2007-05-21 Stefan Björk <betula@users.sourceforge.net>
|
||||
* sv.po: Translation update; bug #0001058.
|
||||
|
||||
2007-05-17 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-05-14 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-04-17 Lubo Vasko <pgval@inMail.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2007-04-17 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2007-04-17 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation
|
||||
|
||||
2007-03-08 Stefan Björk <betula@users.sourceforge.net>
|
||||
* sv.po: Translation update.
|
||||
|
||||
2007-03-07 Stefan Björk <betula@users.sourceforge.net>
|
||||
* sv.po: Translation update.
|
||||
|
||||
2007-02-20 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-02-15 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2007-02-14 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Translation update
|
||||
* no.po: Translation update
|
||||
|
||||
2007-02-12 Lubo Vasko <pgval@inMail.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2007-02-03 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Minor translation update.
|
||||
|
||||
2007-01-29 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2007-01-28 Alex Roitman <shura@gramps-project.org>
|
||||
* ru.po: Translation update.
|
||||
|
||||
2007-01-27 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2007-01-24 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2007-01-20 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: updated according to template.
|
||||
translation updates.
|
||||
|
||||
2007-01-15 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2007-01-15 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2007-01-14 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2007-01-13 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2007-01-04 Eero Tamminen <eerot@sf>
|
||||
* fi.po: fix some translations
|
||||
|
||||
2007-01-01 Eero Tamminen <eerot@sf>
|
||||
* fi.po: Translation "complete"
|
||||
|
||||
2006-12-27 Eero Tamminen <eerot@sf>
|
||||
* fi.po: merge with latest, fix everything reported by check_po,
|
||||
almost fully translated now
|
||||
|
||||
2006-12-25 Stefan Bj<42>k <betula@users.sourceforge.net>
|
||||
* sv.po: Update.
|
||||
|
||||
2006-12-24 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Update.
|
||||
|
||||
2006-12-23 Alex Roitman <shura@gramps-project.org>
|
||||
* ru.po: Update.
|
||||
|
||||
2006-11-22 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-12-21 Lubo Vasko <pgval@inMail.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2006-12-19 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-12-19 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-12-19 Lubo Vasko <pgval@inMail.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2006-12-17 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-12-13 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: List new files.
|
||||
|
||||
2006-12-10 Eero Tamminen <eerot@sf>
|
||||
* fi.po: merge with latest, fix all % mismatches and repo translations
|
||||
|
||||
2006-12-08 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-12-06 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: List new file.
|
||||
|
||||
2006-12-05 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-12-04 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-12-03 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-12-01 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: List new file.
|
||||
|
||||
2006-11-30 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: List new files.
|
||||
|
||||
2006-11-29 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2006-11-21 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: updated Norwegian translation
|
||||
* no.po: updated Norwegian translation
|
||||
|
||||
2006-11-18 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-11-17 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-11-16 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2006-11-16 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-11-16 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: updated Norwegian translation, cleanup.
|
||||
* no.po: updated Norwegian translation, cleanup.
|
||||
|
||||
2006-11-14 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation, cleanup.
|
||||
|
||||
2006-11-12 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Cleanup.
|
||||
|
||||
2006-11-08 Alex Roitman <shura@gramps-project.org>
|
||||
* ru.po: Cleanup.
|
||||
|
||||
2006-11-08 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Unescaped characters fix.
|
||||
|
||||
2006-11-08 Arpad Horvath <horvath.arpad@szgti.bmf.hu>
|
||||
* hu.po: Translation update.
|
||||
|
||||
2006-11-08 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-11-07 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Translation update.
|
||||
|
||||
2006-11-07 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
* POTFILES.in: Add src/plugins/RemoveUnused.py
|
||||
|
||||
2006-11-06 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||
* tr.po: Fixed some syntax error that made make fail.
|
||||
|
||||
2006-11-05 Mehmet Ugur Kecik <mukecik@yahoo.com>
|
||||
* tr.po: Add Turkish translation.
|
||||
|
||||
2006-11-03 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Update.
|
||||
|
||||
2006-11-03 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update
|
||||
* POTFILES.in: Add src/Reorder.py
|
||||
|
||||
2006-11-02 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Add to SVN.
|
||||
|
||||
2006-10-29 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-10-29 Alexandre Prokoudine <alexandre.prokoudine@gmail.com>
|
||||
* ru.po: Update.
|
||||
|
||||
2006-10-29 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Bug-fix in Norwegian translation.
|
||||
* nn.po: Bug-fix in Norwegian translation.
|
||||
|
||||
2006-10-29 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Update swedish translation.
|
||||
|
||||
2006-10-29 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-10-27 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-10-26 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: merge new string.
|
||||
|
||||
2006-10-27 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-10-27 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Update translation.
|
||||
|
||||
2006-10-26 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: merge new string.
|
||||
|
||||
2006-10-26 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Update translation.
|
||||
|
||||
2006-10-24 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-10-24 Alex Roitman <shura@gramps-project.org>
|
||||
* ru.po: Update translation.
|
||||
|
||||
2006-10-24 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po: Updated Norwegian translation.
|
||||
* no.po: Updated Norwegian translation.
|
||||
|
||||
2006-10-24 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Update translation.
|
||||
|
||||
2006-10-24 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-10-23 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: Translation update.
|
||||
* POTFILES.in: Typo.
|
||||
|
||||
2006-10-19 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-10-19 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Update translation.
|
||||
|
||||
2006-10-17 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-10-15 Piotr Czubaszek <pioterus@gmail.com>
|
||||
* pl.po: Translation update.
|
||||
|
||||
2006-10-15 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po, no.po: Translation update.
|
||||
|
||||
2006-10-13 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: Merge all translations with new strings.
|
||||
* sk.po: Update translation.
|
||||
|
||||
2006-10-11 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Update translation.
|
||||
|
||||
2006-10-10 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Include all of Selectors package.
|
||||
|
||||
2006-10-09 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-10-04 Lubo Vasko <pgval@post.sk>
|
||||
* sk.po: Update translation.
|
||||
|
||||
2006-10-03 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2006-09-30 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-09-27 Stefan Bjork <betula@users.sourceforge.net>
|
||||
* sv.po: Updated Swedish translation (work in progess).
|
||||
|
||||
2006-09-11 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* fr.po: updated French translation.
|
||||
* POTFILES.in: Enable title for selectors.
|
||||
|
||||
2006-09-09 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-09-05 Arpad Horvath <horvath.arpad@szgti.bmf.hu>
|
||||
* hu.po: Translation update.
|
||||
|
||||
2006-09-01 Arpad Horvath <horvath.arpad@szgti.bmf.hu>
|
||||
* hu.po: Translation update.
|
||||
|
||||
2006-08-31 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2006-08-30 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2006-08-29 Arpad Horvath <horvath.arpad@szgti.bmf.hu>
|
||||
* hu.po: Translation update from 2.0.x branch.
|
||||
|
||||
2006-08-29 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2006-08-27 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: Merge all translations with the new template for 2.1.95.
|
||||
|
||||
2006-08-25 Arpad Horvath <horvath.arpad@szgti.bmf.hu>
|
||||
* hu.po: Translation update from 2.0.x branch.
|
||||
|
||||
2006-08-23 Zdenek Hatas <zdenek.hatas@gmail.com>
|
||||
* cs.po: Update translation.
|
||||
|
||||
2006-08-22 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Reflect directory change.
|
||||
|
||||
2006-08-21 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-08-19 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-08-18 Kees Bakker <kees.bakker@xs4all.nl>
|
||||
* nl.po: Translation update.
|
||||
|
||||
2006-08-17 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-08-13 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: update all po files.
|
||||
|
||||
2006-08-09 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-08-07 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-08-06 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-08-05 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-08-04 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Unlist plugins that are not shipped.
|
||||
Add new files.
|
||||
|
||||
2006-08-03 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-08-02 Alex Roitman <shura@gramps-project.org>
|
||||
* ru.po: Translation update.
|
||||
|
||||
2006-07-31 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Remove obsolete file;
|
||||
reflect the name change of Merge -> FindDupes.
|
||||
* ru.po: Start on Russian translation.
|
||||
|
||||
2006-07-30 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add missing file.
|
||||
|
||||
2006-07-25 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add missing files.
|
||||
|
||||
2006-07-23 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-07-16 Morten Bo Johansen <mbj@spamcop.net>
|
||||
* da.po: Translation update.
|
||||
|
||||
2006-07-15 Alex Roitman <shura@gramps-project.org>
|
||||
* check_po: Open correct file.
|
||||
|
||||
2006-06-22 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-06-15 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-06-11 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Remove plugin that is not shipped.
|
||||
* gramps.pot: Update.
|
||||
|
||||
2006-06-04 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add missing files.
|
||||
|
||||
2006-05-30 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Change files due to module split.
|
||||
|
||||
2006-05-28 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Update.
|
||||
|
||||
2006-05-28 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-05-25 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-05-23 Arturas Sleinius <asleinius@users.sourceforge.net>
|
||||
* lt.po: updated Lithuanian translation.
|
||||
|
||||
2006-05-22 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Update.
|
||||
|
||||
2006-05-18 Espen Berg <espenbe@gmail.com>
|
||||
* nb.po, no.po: Translation update.
|
||||
|
||||
2006-05-17 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-05-16 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files; remove old files.
|
||||
|
||||
2006-05-15 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-05-14 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
* gramps.pot: update.
|
||||
|
||||
2006-05-12 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Update.
|
||||
* POTFILES.in: Add missing files.
|
||||
|
||||
2006-05-10 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-05-07 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add missing file.
|
||||
|
||||
2006-05-06 Alex Roitman <shura@gramps-project.org>
|
||||
* gramps.pot: Update template.
|
||||
* POTFILES.in: Add missing files from RelLib.
|
||||
|
||||
2006-05-05 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-05-04 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
Update.
|
||||
* gramps.pot: Update.
|
||||
|
||||
2006-05-02 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-05-01 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new file.
|
||||
|
||||
2006-04-27 Alex Roitman <shura@gramps-project.org>
|
||||
* pt_BR.po: Convert to utf8 encoding.
|
||||
* zh_CN.po: Convert to utf8 encoding.
|
||||
* pl.po: Convert to utf8 encoding.
|
||||
* no.po: Convert to utf8 encoding.
|
||||
* it.po: Convert to utf8 encoding.
|
||||
* sk.po: Convert to utf8 encoding.
|
||||
* da.po: Convert to utf8 encoding.
|
||||
* nb.po: Convert to utf8 encoding.
|
||||
|
||||
2006-04-21 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Remove obsolete file.
|
||||
|
||||
2006-04-19 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files.
|
||||
|
||||
2006-04-06 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Add new files to the list.
|
||||
* gramps.pot: regenerate the template.
|
||||
|
||||
2006-03-18 Alex Roitman <shura@gramps-project.org>
|
||||
* POTFILES.in: Remove RelImage.py from the list.
|
||||
|
||||
2006-03-15 Alex Roitman <shura@gramps-project.org>
|
||||
* *.po: Moved po files from old po directory.
|
@@ -21,6 +21,7 @@ src/Errors.py
|
||||
src/ExportAssistant.py
|
||||
src/ExportOptions.py
|
||||
src/FontScale.py
|
||||
src/GrampsAboutDialog.py
|
||||
src/GrampsCfg.py
|
||||
src/GrampsDisplay.py
|
||||
src/gramps_main.py
|
||||
@@ -633,8 +634,8 @@ src/Filters/Rules/Repository/__init__.py
|
||||
src/Filters/Rules/Note/_AllNotes.py
|
||||
src/Filters/Rules/Note/_HasIdOf.py
|
||||
src/Filters/Rules/Note/_HasMarkerOf.py
|
||||
src/Filters/Rules/Note/_HasNoteMatchingSubstringOf.py
|
||||
src/Filters/Rules/Note/_HasNoteRegexp.py
|
||||
src/Filters/Rules/Note/_MatchesSubstringOf.py
|
||||
src/Filters/Rules/Note/_MatchesRegexpOf.py
|
||||
src/Filters/Rules/Note/_HasNote.py
|
||||
src/Filters/Rules/Note/_HasReferenceCountOf.py
|
||||
src/Filters/Rules/Note/_MatchesFilter.py
|
||||
@@ -699,5 +700,4 @@ src/plugins/writeftree.glade
|
||||
data/gramps.desktop.in
|
||||
data/gramps.keys.in
|
||||
data/gramps.xml.in
|
||||
data/gramps.schemas.in
|
||||
src/data/tips.xml.in
|
||||
|
@@ -1,3 +1,5 @@
|
||||
src/gen/lib/styledtext.py
|
||||
src/gen/lib/styledtexttagtype.py
|
||||
src/LdsUtils.py
|
||||
src/Mime/_WinMime.py
|
||||
src/ReportBase/_DocReportDialog.py
|
||||
|
6587
po/gramps.pot
6587
po/gramps.pot
File diff suppressed because it is too large
Load Diff
14113
po/no.po → po/nn.po
14113
po/no.po → po/nn.po
File diff suppressed because it is too large
Load Diff
19549
po/pt_BR.po
19549
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
19916
po/zh_CN.po
19916
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
@@ -59,6 +59,7 @@ import RecentFiles
|
||||
import Utils
|
||||
import gen.db.exceptions as GX
|
||||
from DbManager import CLIDbManager, NAME_FILE, find_locker_name
|
||||
import gen
|
||||
|
||||
from PluginUtils import Tool, cl_list, cli_tool_list
|
||||
from ReportBase import CATEGORY_BOOK, CATEGORY_CODE, CATEGORY_WEB, cl_report
|
||||
@@ -462,6 +463,8 @@ class ArgHandler:
|
||||
if not self.open:
|
||||
# Create empty dir for imported database(s)
|
||||
self.imp_db_path = Utils.get_empty_tempdir("import_dbdir")
|
||||
newdb = gen.db.GrampsDBDir()
|
||||
newdb.write_version(self.imp_db_path)
|
||||
self.vm.db_loader.read_file(self.imp_db_path)
|
||||
|
||||
for imp in self.imports:
|
||||
|
@@ -27,7 +27,7 @@
|
||||
# Standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
from cStringIO import StringIO
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -54,6 +54,15 @@ import GrampsDisplay
|
||||
from BasicUtils import name_displayer
|
||||
import ListModel
|
||||
import Utils
|
||||
from TransUtils import sgettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Constants
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
WIKI_HELP_PAGE = 'Gramps_3.0_Wiki_Manual_-_Navigation'
|
||||
WIKI_HELP_SEC = _('manual|Bookmarks')
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -192,6 +201,7 @@ class Bookmarks :
|
||||
self.top = gtk.Dialog(title)
|
||||
self.top.set_default_size(400, 350)
|
||||
self.top.set_modal(True)
|
||||
self.top.set_transient_for(self.uistate.window)
|
||||
self.top.set_has_separator(False)
|
||||
self.top.vbox.set_spacing(5)
|
||||
label = gtk.Label('<span size="larger" weight="bold">%s</span>'
|
||||
@@ -245,12 +255,15 @@ class Bookmarks :
|
||||
self.namemodel.connect_model()
|
||||
|
||||
self.modified = False
|
||||
self.response = self.top.run()
|
||||
if self.response == gtk.RESPONSE_HELP:
|
||||
self.help_clicked()
|
||||
if self.modified:
|
||||
self.redraw_and_report_change()
|
||||
self.top.destroy()
|
||||
while True:
|
||||
self.response = self.top.run()
|
||||
if self.response == gtk.RESPONSE_HELP:
|
||||
self.help_clicked()
|
||||
elif self.response == gtk.RESPONSE_CLOSE:
|
||||
if self.modified:
|
||||
self.redraw_and_report_change()
|
||||
self.top.destroy()
|
||||
break
|
||||
|
||||
def delete_clicked(self, obj):
|
||||
"""Remove the current selection from the list."""
|
||||
@@ -293,8 +306,8 @@ class Bookmarks :
|
||||
|
||||
def help_clicked(self):
|
||||
"""Display the relevant portion of GRAMPS manual."""
|
||||
GrampsDisplay.help('gramps-nav')
|
||||
self.response = self.top.run()
|
||||
GrampsDisplay.help('gramps-nav', webpage=WIKI_HELP_PAGE,
|
||||
section=WIKI_HELP_SEC)
|
||||
|
||||
class ListBookmarks(Bookmarks):
|
||||
|
||||
|
@@ -67,8 +67,6 @@ USE_LAST_VIEW = ('preferences', 'use-last-view', 0)
|
||||
FAMILY_SIBLINGS = ('preferences', 'family-siblings', 0)
|
||||
AUTOLOAD = ('behavior', 'autoload', 0)
|
||||
SPELLCHECK = ('behavior', 'spellcheck', 0)
|
||||
BETAWARN = ('behavior', 'betawarn', 0)
|
||||
WELCOME = ('behavior', 'welcome', 1)
|
||||
DATE_FORMAT = ('preferences', 'date-format', 1)
|
||||
DONT_ASK = ('interface', 'dont-ask', 0)
|
||||
RELEDITBTN = ('interface', 'releditbtn', 0)
|
||||
@@ -188,8 +186,6 @@ default_value = {
|
||||
FAMILY_SIBLINGS : True,
|
||||
AUTOLOAD : False,
|
||||
SPELLCHECK : False,
|
||||
BETAWARN : False,
|
||||
WELCOME : 100,
|
||||
DATE_FORMAT : 0,
|
||||
DONT_ASK : False,
|
||||
RELEDITBTN : False,
|
||||
|
@@ -159,9 +159,9 @@ class GrampletWindow(ManagedWindow.ManagedWindow):
|
||||
self.window.show()
|
||||
|
||||
def handle_response(self, object, response):
|
||||
if response == gtk.RESPONSE_CLOSE:
|
||||
if response in [gtk.RESPONSE_CLOSE, gtk.STOCK_CLOSE]:
|
||||
self.close()
|
||||
else:
|
||||
elif response == gtk.RESPONSE_HELP:
|
||||
# translated name:
|
||||
GrampsDisplay.help('gramplet', WIKI_HELP_PAGE,
|
||||
self.gramplet.tname.replace(" ", "_"))
|
||||
|
@@ -419,7 +419,6 @@ class PersonView(PageView.PersonNavView):
|
||||
is no need to store the database, since we will get the value
|
||||
from self.state.db
|
||||
"""
|
||||
self.build_columns()
|
||||
self.setup_filter()
|
||||
self.db = db
|
||||
db.connect('person-add', self.person_added)
|
||||
@@ -534,7 +533,6 @@ class PersonView(PageView.PersonNavView):
|
||||
True)
|
||||
|
||||
self.build_columns()
|
||||
self.setup_filter()
|
||||
self.dbstate.change_active_person(active)
|
||||
self._goto()
|
||||
self.dirty = False
|
||||
@@ -983,7 +981,9 @@ class PersonView(PageView.PersonNavView):
|
||||
|
||||
path = (0, )
|
||||
node = self.model.on_get_iter(path)
|
||||
while node:
|
||||
|
||||
# Node might be null if the surname is not known so test against None
|
||||
while node != None:
|
||||
real_iter = self.model.get_iter(path)
|
||||
for subindex in range(0, self.model.iter_n_children(real_iter)):
|
||||
subpath = ((path[0], subindex))
|
||||
|
@@ -71,8 +71,8 @@ class PlaceView(PageView.ListView):
|
||||
_('County'),
|
||||
_('State'),
|
||||
_('Country'),
|
||||
_('Longitude'),
|
||||
_('Latitude'),
|
||||
_('Longitude'),
|
||||
_('Last Changed'),
|
||||
_('Street'),
|
||||
]
|
||||
|
@@ -19,6 +19,8 @@ pkgdata_PYTHON = \
|
||||
_Date_sk.py\
|
||||
_Date_pl.py\
|
||||
_Date_pt.py\
|
||||
_Date_hr.py\
|
||||
_Date_ca.py\
|
||||
_DateDisplay.py\
|
||||
_DateParser.py\
|
||||
_DateHandler.py\
|
||||
|
@@ -197,8 +197,10 @@ class DateParser:
|
||||
fmt = GrampsLocale.tformat
|
||||
match = self._fmt_parse.match(fmt.lower())
|
||||
if match:
|
||||
self.dmy = (match.groups() == ('d', 'm', 'y'))
|
||||
self.ymd = (match.groups() == ('y', 'm', 'd'))
|
||||
self.dmy = (match.groups() == ('d', 'm', 'y') or \
|
||||
match.groups() == ('d', 'b', 'y'))
|
||||
self.ymd = (match.groups() == ('y', 'm', 'd') or \
|
||||
match.groups() == ('y', 'b', 'd'))
|
||||
else:
|
||||
self.dmy = True
|
||||
self.ymd = False
|
||||
@@ -258,9 +260,9 @@ class DateParser:
|
||||
self._modifier_after = re.compile('(.*)\s+%s' % self._mod_after_str,
|
||||
re.IGNORECASE)
|
||||
self._abt2 = re.compile('<(.*)>', re.IGNORECASE)
|
||||
self._text = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
|
||||
self._text = re.compile('%s\.?\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
|
||||
self._text2 = re.compile('(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
|
178
src/DateHandler/_Date_ca.py
Normal file
178
src/DateHandler/_Date_ca.py
Normal file
@@ -0,0 +1,178 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2004-2006 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# Catalan Version, 2008
|
||||
|
||||
"""
|
||||
Catalan-specific classes for parsing and displaying dates.
|
||||
"""
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import re
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.lib import Date
|
||||
from _DateParser import DateParser
|
||||
from _DateDisplay import DateDisplay
|
||||
from _DateHandler import register_datehandler
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Catalan parser
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class DateParserCA(DateParser):
|
||||
|
||||
modifier_to_int = {
|
||||
u'abans de' : Date.MOD_BEFORE,
|
||||
u'abans' : Date.MOD_BEFORE,
|
||||
u'ab.' : Date.MOD_BEFORE,
|
||||
u'després de' : Date.MOD_AFTER,
|
||||
u'després' : Date.MOD_AFTER,
|
||||
u'desp.' : Date.MOD_AFTER,
|
||||
u'desp' : Date.MOD_AFTER,
|
||||
u'aprox.' : Date.MOD_ABOUT,
|
||||
u'aprox' : Date.MOD_ABOUT,
|
||||
u'circa' : Date.MOD_ABOUT,
|
||||
u'ca.' : Date.MOD_ABOUT,
|
||||
u'ca' : Date.MOD_ABOUT,
|
||||
u'c.' : Date.MOD_ABOUT,
|
||||
u'cap a' : Date.MOD_ABOUT,
|
||||
u'al voltant' : Date.MOD_ABOUT,
|
||||
u'al voltant de': Date.MOD_ABOUT,
|
||||
}
|
||||
|
||||
calendar_to_int = {
|
||||
u'gregorià' : Date.CAL_GREGORIAN,
|
||||
u'g' : Date.CAL_GREGORIAN,
|
||||
u'julià' : Date.CAL_JULIAN,
|
||||
u'j' : Date.CAL_JULIAN,
|
||||
u'hebreu' : Date.CAL_HEBREW,
|
||||
u'h' : Date.CAL_HEBREW,
|
||||
u'islàmic' : Date.CAL_ISLAMIC,
|
||||
u'i' : Date.CAL_ISLAMIC,
|
||||
u'revolucionari': Date.CAL_FRENCH,
|
||||
u'r' : Date.CAL_FRENCH,
|
||||
u'persa' : Date.CAL_PERSIAN,
|
||||
u'p' : Date.CAL_PERSIAN,
|
||||
}
|
||||
|
||||
quality_to_int = {
|
||||
u'estimat' : Date.QUAL_ESTIMATED,
|
||||
u'est.' : Date.QUAL_ESTIMATED,
|
||||
u'est' : Date.QUAL_ESTIMATED,
|
||||
u'calc.' : Date.QUAL_CALCULATED,
|
||||
u'calc' : Date.QUAL_CALCULATED,
|
||||
u'calculat' : Date.QUAL_CALCULATED,
|
||||
}
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
_span_1 = [u'des de']
|
||||
_span_2 = [u'fins a']
|
||||
_range_1 = [u'entre', u'ent\.', u'ent']
|
||||
_range_2 = [u'i']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Catalan display
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class DateDisplayCA(DateDisplay):
|
||||
|
||||
calendar = (
|
||||
"", u" (Julià)", u" (Hebreu)",
|
||||
u" (Revolucionari)", u" (Persa)", u" (Islàmic)"
|
||||
)
|
||||
|
||||
_mod_str = ("", u"abans de ", u"després de ", u"cap a ", "", "", "")
|
||||
|
||||
_qual_str = ("", "estimat ", "calculat ")
|
||||
|
||||
french = (
|
||||
u'',
|
||||
u"Vendemiari",
|
||||
u'Brumari',
|
||||
u'Frimari',
|
||||
u"Nivós",
|
||||
u"Pluviós",
|
||||
u"Ventós",
|
||||
u'Germinal',
|
||||
u"Floreal",
|
||||
u'Pradial',
|
||||
u'Messidor',
|
||||
u'Termidor',
|
||||
u'Fructidor',
|
||||
u'Extra',
|
||||
)
|
||||
|
||||
formats = (
|
||||
"AAAA-MM-DD (ISO)", "Numèrica", "Mes Dia, Any",
|
||||
"MES Dia, Any", "Dia Mes, Any", "Dia MES, Any"
|
||||
)
|
||||
|
||||
def display(self, date):
|
||||
"""
|
||||
Return a text string representing the date.
|
||||
"""
|
||||
mod = date.get_modifier()
|
||||
cal = date.get_calendar()
|
||||
qual = date.get_quality()
|
||||
start = date.get_start_date()
|
||||
|
||||
qual_str = self._qual_str[qual]
|
||||
|
||||
if mod == Date.MOD_TEXTONLY:
|
||||
return date.get_text()
|
||||
elif start == Date.EMPTY:
|
||||
return ""
|
||||
elif mod == Date.MOD_SPAN:
|
||||
d1 = self.display_cal[cal](start)
|
||||
d2 = self.display_cal[cal](date.get_stop_date())
|
||||
return "%s%s %s %s %s%s" % (qual_str, u'des de', d1, u'fins a', d2, self.calendar[cal])
|
||||
elif mod == Date.MOD_RANGE:
|
||||
d1 = self.display_cal[cal](start)
|
||||
d2 = self.display_cal[cal](date.get_stop_date())
|
||||
return "%s%s %s %s %s%s" % (qual_str, u'entre', d1, u'i', d2, self.calendar[cal])
|
||||
else:
|
||||
text = self.display_cal[date.get_calendar()](start)
|
||||
return "%s%s%s%s" % (qual_str, self._mod_str[mod], text, self.calendar[cal])
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('ca_ES', 'ca', 'català','ca_FR','ca_AD','ca_IT',), DateParserCA, DateDisplayCA)
|
@@ -147,4 +147,4 @@ class DateDisplayCZ(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('cs_CZ', 'cs', 'CZ'), DateParserCZ, DateDisplayCZ)
|
||||
register_datehandler(('cs_CZ', 'cs', 'CZ', 'Czech', 'czech'), DateParserCZ, DateDisplayCZ)
|
||||
|
@@ -235,6 +235,6 @@ class DateDisplayDE(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('de_DE', 'german', 'de_AT', 'de_CH',
|
||||
register_datehandler(('de_DE', 'German', 'german', 'de_AT', 'de_CH',
|
||||
'de_LI', 'de_LU', 'de_BE', 'de'),
|
||||
DateParserDE, DateDisplayDE)
|
||||
|
@@ -159,4 +159,4 @@ class DateDisplayES(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('es_ES', 'es', 'spanish'), DateParserES, DateDisplayES)
|
||||
register_datehandler(('es_ES', 'es', 'Spanish', 'spanish'), DateParserES, DateDisplayES)
|
||||
|
@@ -182,4 +182,4 @@ class DateDisplayFI(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('fi_FI', 'fi', 'finnish'), DateParserFI, DateDisplayFI)
|
||||
register_datehandler(('fi_FI', 'fi', 'Finnish', 'finnish'), DateParserFI, DateDisplayFI)
|
||||
|
@@ -322,5 +322,5 @@ class DateDisplayFR(DateDisplay):
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(
|
||||
('fr_FR', 'fr', 'french', 'fr_CA', 'fr_BE', 'fr_CH'),
|
||||
('fr_FR', 'fr', 'french', 'French', 'fr_CA', 'fr_BE', 'fr_CH'),
|
||||
DateParserFR, DateDisplayFR)
|
||||
|
341
src/DateHandler/_Date_hr.py
Normal file
341
src/DateHandler/_Date_hr.py
Normal file
@@ -0,0 +1,341 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2004-2007 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# Croatian version 2008 by Josip
|
||||
|
||||
"""
|
||||
Croatian-specific classes for parsing and displaying dates.
|
||||
"""
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import re
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.lib import Date
|
||||
from _DateParser import DateParser
|
||||
from _DateDisplay import DateDisplay
|
||||
from _DateHandler import register_datehandler
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Croatian parser
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class DateParserHR(DateParser):
|
||||
"""
|
||||
Converts a text string into a Date object
|
||||
"""
|
||||
month_to_int = DateParser.month_to_int
|
||||
|
||||
month_to_int[u"siječanj"] = 1
|
||||
month_to_int[u"siječnja"] = 1
|
||||
month_to_int[u"sij"] = 1
|
||||
month_to_int[u"januar"] = 1
|
||||
month_to_int[u"januara"] = 1
|
||||
month_to_int[u"i"] = 1
|
||||
|
||||
month_to_int[u"veljača"] = 2
|
||||
month_to_int[u"veljače"] = 2
|
||||
month_to_int[u"velj"] = 2
|
||||
month_to_int[u"februar"] = 2
|
||||
month_to_int[u"februara"] = 2
|
||||
month_to_int[u"ii"] = 2
|
||||
|
||||
month_to_int[u"ožujak"] = 3
|
||||
month_to_int[u"ožujka"] = 3
|
||||
month_to_int[u"ožu"] = 3
|
||||
month_to_int[u"mart"] = 3
|
||||
month_to_int[u"marta"] = 3
|
||||
month_to_int[u"iii"] = 3
|
||||
|
||||
month_to_int[u"travanj"] = 4
|
||||
month_to_int[u"travnja"] = 4
|
||||
month_to_int[u"tra"] = 4
|
||||
month_to_int[u"april"] = 4
|
||||
month_to_int[u"aprila"] = 4
|
||||
month_to_int[u"iv"] = 4
|
||||
|
||||
month_to_int[u"svibanj"] = 5
|
||||
month_to_int[u"svibnja"] = 5
|
||||
month_to_int[u"svi"] = 5
|
||||
month_to_int[u"maj"] = 5
|
||||
month_to_int[u"maja"] = 5
|
||||
month_to_int[u"v"] = 5
|
||||
|
||||
month_to_int[u"lipanj"] = 6
|
||||
month_to_int[u"lipnja"] = 6
|
||||
month_to_int[u"lip"] = 6
|
||||
month_to_int[u"jun"] = 6
|
||||
month_to_int[u"juna"] = 6
|
||||
month_to_int[u"vi"] = 6
|
||||
|
||||
month_to_int[u"srpanj"] = 7
|
||||
month_to_int[u"srpnja"] = 7
|
||||
month_to_int[u"srp"] = 7
|
||||
month_to_int[u"juli"] = 7
|
||||
month_to_int[u"jula"] = 7
|
||||
month_to_int[u"vii"] = 7
|
||||
|
||||
month_to_int[u"kolovoz"] = 8
|
||||
month_to_int[u"kolovoza"] = 8
|
||||
month_to_int[u"kol"] = 8
|
||||
month_to_int[u"august"] = 8
|
||||
month_to_int[u"augusta"] = 8
|
||||
month_to_int[u"viii"] = 8
|
||||
|
||||
month_to_int[u"rujan"] = 9
|
||||
month_to_int[u"rujna"] = 9
|
||||
month_to_int[u"ruj"] = 9
|
||||
month_to_int[u"septembar"] = 9
|
||||
month_to_int[u"septembra"] = 9
|
||||
month_to_int[u"ix"] = 9
|
||||
|
||||
month_to_int[u"listopad"] = 10
|
||||
month_to_int[u"listopada"] = 10
|
||||
month_to_int[u"lis"] = 10
|
||||
month_to_int[u"oktobar"] = 10
|
||||
month_to_int[u"oktobra"] = 10
|
||||
month_to_int[u"x"] = 10
|
||||
|
||||
month_to_int[u"studeni"] = 11
|
||||
month_to_int[u"studenog"] = 11
|
||||
month_to_int[u"stu"] = 11
|
||||
month_to_int[u"novembar"] = 11
|
||||
month_to_int[u"novembra"] = 11
|
||||
month_to_int[u"xi"] = 11
|
||||
|
||||
month_to_int[u"prosinac"] = 12
|
||||
month_to_int[u"prosinca"] = 12
|
||||
month_to_int[u"pro"] = 12
|
||||
month_to_int[u"decembar"] = 12
|
||||
month_to_int[u"decembra"] = 12
|
||||
month_to_int[u"xii"] = 12
|
||||
|
||||
modifier_to_int = {
|
||||
u'prije' : Date.MOD_BEFORE,
|
||||
u'pr. ' : Date.MOD_BEFORE,
|
||||
u'poslije' : Date.MOD_AFTER,
|
||||
u'po. ' : Date.MOD_AFTER,
|
||||
u'okolo' : Date.MOD_ABOUT,
|
||||
u'ok. ' : Date.MOD_ABOUT,
|
||||
|
||||
}
|
||||
|
||||
calendar_to_int = {
|
||||
u'gregorijanski' : Date.CAL_GREGORIAN,
|
||||
u'greg.' : Date.CAL_GREGORIAN,
|
||||
u'julijanski' : Date.CAL_JULIAN,
|
||||
u'jul.' : Date.CAL_JULIAN,
|
||||
u'hebrejski' : Date.CAL_HEBREW,
|
||||
u'hebr.' : Date.CAL_HEBREW,
|
||||
u'islamski' : Date.CAL_ISLAMIC,
|
||||
u'isl.' : Date.CAL_ISLAMIC,
|
||||
u'francuski republikanski': Date.CAL_FRENCH,
|
||||
u'franc.' : Date.CAL_FRENCH,
|
||||
u'perzijski' : Date.CAL_PERSIAN,
|
||||
u'perz. ' : Date.CAL_PERSIAN
|
||||
}
|
||||
|
||||
quality_to_int = {
|
||||
u'približno' : Date.QUAL_ESTIMATED,
|
||||
u'prb.' : Date.QUAL_ESTIMATED,
|
||||
u'izračunato' : Date.QUAL_CALCULATED,
|
||||
u'izr.' : Date.QUAL_CALCULATED,
|
||||
}
|
||||
|
||||
bce = ["prije nove ere", "prije Krista",
|
||||
"p.n.e."] + DateParser.bce
|
||||
|
||||
def init_strings(self):
|
||||
"""
|
||||
compiles regular expression strings for matching dates
|
||||
"""
|
||||
DateParser.init_strings(self)
|
||||
# match 'Day. MONTH year.' format with or without dots
|
||||
self._text2 = re.compile('(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
# match Day.Month.Year.
|
||||
self._numeric = re.compile(
|
||||
"((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$"
|
||||
)
|
||||
self._span = re.compile("(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
u"(između)\s+(?P<start>.+)\s+(i)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'\
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Croatian display
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class DateDisplayHR(DateDisplay):
|
||||
"""
|
||||
Croatian date display class
|
||||
"""
|
||||
calendar = (
|
||||
"", u" (julijanski)", u" (hebrejski)",
|
||||
u" (francuski republikanski)", u" (perzijski)", u" (islamski)")
|
||||
|
||||
_mod_str = ("", "prije ", "poslije ", "okolo ", "", "", "")
|
||||
|
||||
_qual_str = ("", "približno ", "izračunato ")
|
||||
|
||||
_bce_str = "%s p.n.e."
|
||||
|
||||
formats = (
|
||||
"GGGG-MM-DD (ISO-8601)",
|
||||
"Numerički",
|
||||
"D.M.GGGG.",
|
||||
"D. MMMM GGGG.",
|
||||
"D. Rb GGGG."
|
||||
)
|
||||
|
||||
roman_months = (
|
||||
"",
|
||||
"I",
|
||||
"II",
|
||||
"III",
|
||||
"IV",
|
||||
"V",
|
||||
"VI",
|
||||
"VII",
|
||||
"VIII",
|
||||
"IX",
|
||||
"X",
|
||||
"XI",
|
||||
"XII"
|
||||
)
|
||||
|
||||
hr_months = ("",
|
||||
u"siječnja",
|
||||
u"veljače",
|
||||
u"ožujka",
|
||||
u"travnja",
|
||||
u"svibnja",
|
||||
u"lipnja",
|
||||
u"srpnja",
|
||||
u"kolovoza",
|
||||
u"rujna",
|
||||
u"listopada",
|
||||
u"studenog",
|
||||
u"prosinca"
|
||||
)
|
||||
|
||||
def _display_gregorian(self, date_val):
|
||||
"""
|
||||
display gregorian calendar date in different format
|
||||
"""
|
||||
year = self._slash_year(date_val[2], date_val[3])
|
||||
if self.format == 0:
|
||||
return self.display_iso(date_val)
|
||||
elif self.format == 1:
|
||||
if date_val[3]:
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
if date_val[0] == 0 and date_val[1] == 0:
|
||||
value = str(date_val[2])
|
||||
else:
|
||||
value = self._tformat.replace('%m', str(date_val[1]))
|
||||
value = value.replace('%d', str(date_val[0]))
|
||||
value = value.replace('%Y', str(abs(date_val[2])))
|
||||
value = value.replace('-', '/')
|
||||
elif self.format == 2:
|
||||
# Day.Month.Year.
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
value = year
|
||||
else:
|
||||
value = "%s.%s." % (date_val[1], year)
|
||||
else:
|
||||
value = "%s.%d.%s." % (date_val[0], date_val[1], year)
|
||||
elif self.format == 3:
|
||||
# Day. MONTH year.
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
value = u"%s." % year
|
||||
else:
|
||||
value = u"%s %s." % (self.hr_months[date_val[1]], year)
|
||||
else:
|
||||
value = u"%d. %s %s." % (date_val[0],
|
||||
self.hr_months[date_val[1]], year)
|
||||
else:
|
||||
# Day RomanMon Year
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
value = u"%s." % year
|
||||
else:
|
||||
value = "%s %s." % (self.roman_months[date_val[1]], year)
|
||||
else:
|
||||
value = "%d. %s %s." % (date_val[0],
|
||||
self.roman_months[date_val[1]], year)
|
||||
if date_val[2] < 0:
|
||||
return self._bce_str % value
|
||||
else:
|
||||
return value
|
||||
|
||||
def display(self, date):
|
||||
"""
|
||||
Return a text string representing the date.
|
||||
"""
|
||||
mod = date.get_modifier()
|
||||
cal = date.get_calendar()
|
||||
qual = date.get_quality()
|
||||
start = date.get_start_date()
|
||||
|
||||
qual_str = self._qual_str[qual]
|
||||
|
||||
if mod == Date.MOD_TEXTONLY:
|
||||
return date.get_text()
|
||||
elif start == Date.EMPTY:
|
||||
return ""
|
||||
elif mod == Date.MOD_SPAN:
|
||||
d_1 = self.display_cal[cal](start)
|
||||
d_2 = self.display_cal[cal](date.get_stop_date())
|
||||
return "%s%s %s %s %s%s" % (qual_str, u'od', d_1, u'do', d_2,
|
||||
self.calendar[cal])
|
||||
elif mod == Date.MOD_RANGE:
|
||||
d_1 = self.display_cal[cal](start)
|
||||
d_2 = self.display_cal[cal](date.get_stop_date())
|
||||
return "%s%s %s %s %s%s" % (qual_str, u'između', d_1, u'i', d_2,
|
||||
self.calendar[cal])
|
||||
else:
|
||||
text = self.display_cal[date.get_calendar()](start)
|
||||
return "%s%s%s%s" % (qual_str, self._mod_str[mod], text,
|
||||
self.calendar[cal])
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('hr', 'HR', 'croatian', 'Croatian', 'hrvatski', 'hr_HR'),
|
||||
DateParserHR, DateDisplayHR)
|
@@ -153,4 +153,4 @@ class DateDisplayLT(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('lt_LT', 'lt', 'lithuanian'), DateParserLT, DateDisplayLT)
|
||||
register_datehandler(('lt_LT', 'lt', 'lithuanian', 'Lithuanian'), DateParserLT, DateDisplayLT)
|
||||
|
@@ -162,4 +162,4 @@ class DateDisplayNb(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('nb_NO', 'nb', 'norsk'), DateParserNb, DateDisplayNb)
|
||||
register_datehandler(('nb_NO', 'nb', 'norsk', 'Norwegian', 'norwegian'), DateParserNb, DateDisplayNb)
|
||||
|
@@ -242,5 +242,5 @@ class DateDisplayNL(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('nl_NL', 'dutch', 'nl_BE', 'nl'),
|
||||
register_datehandler(('nl_NL', 'dutch', 'Dutch', 'nl_BE', 'nl'),
|
||||
DateParserNL, DateDisplayNL)
|
||||
|
@@ -158,4 +158,4 @@ class DateDisplayPT(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('pt', 'pt_PT', 'pt_PT.UTF-8', 'pt_BR', 'pt_BR.UTF-8', 'pt', 'portuguese'), DateParserPT, DateDisplayPT)
|
||||
register_datehandler(('pt', 'pt_PT', 'pt_PT.UTF-8', 'pt_BR', 'pt_BR.UTF-8', 'pt', 'portuguese', 'Portuguese'), DateParserPT, DateDisplayPT)
|
||||
|
@@ -305,4 +305,4 @@ class DateDisplayRU(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('ru_RU', 'ru', 'russian'), DateParserRU, DateDisplayRU)
|
||||
register_datehandler(('ru_RU', 'ru', 'russian', 'Russian'), DateParserRU, DateDisplayRU)
|
||||
|
@@ -149,4 +149,4 @@ class DateDisplaySK(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('sk_SK', 'sk', 'SK'), DateParserSK, DateDisplaySK)
|
||||
register_datehandler(('sk_SK', 'sk', 'SK', 'Slovak'), DateParserSK, DateDisplaySK)
|
||||
|
@@ -167,4 +167,4 @@ class DateDisplaySv(DateDisplay):
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(('sv_SE', 'sv', 'svensk'), DateParserSv, DateDisplaySv)
|
||||
register_datehandler(('sv_SE', 'sv', 'Swedish'), DateParserSv, DateDisplaySv)
|
||||
|
@@ -42,6 +42,8 @@ import _Date_pt
|
||||
import _Date_ru
|
||||
import _Date_sk
|
||||
import _Date_sv
|
||||
import _Date_hr
|
||||
import _Date_ca
|
||||
|
||||
# Initialize global parser
|
||||
try:
|
||||
|
@@ -188,7 +188,7 @@ class DbLoader:
|
||||
_("Could not open file: %s") % filename,
|
||||
_('File type "%s" is unknown to GRAMPS.\n\n'
|
||||
'Valid types are: GRAMPS database, GRAMPS XML, '
|
||||
'GRAMPS package, and GEDCOM.') % filetype)
|
||||
'GRAMPS package, GEDCOM, and others.') % filetype)
|
||||
|
||||
choose_db_dialog.destroy()
|
||||
return False
|
||||
|
133
src/DbManager.py
133
src/DbManager.py
@@ -18,6 +18,8 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
|
||||
"""
|
||||
Provide the management of databases. This includes opening, renaming,
|
||||
creating, and deleting of databases.
|
||||
@@ -42,9 +44,12 @@ import logging
|
||||
LOG = logging.getLogger(".DbManager")
|
||||
|
||||
if os.sys.platform == "win32":
|
||||
RCS_FOUND = os.system("rcs -V >nul 2>nul") == 0
|
||||
_RCS_FOUND = os.system("rcs -V >nul 2>nul") == 0
|
||||
if _RCS_FOUND and not os.environ.has_key("TZ"):
|
||||
# RCS requires the "TZ" variable be set.
|
||||
os.environ["TZ"] = str(time.timezone)
|
||||
else:
|
||||
RCS_FOUND = os.system("rcs -V >/dev/null 2>/dev/null") == 0
|
||||
_RCS_FOUND = os.system("rcs -V >/dev/null 2>/dev/null") == 0
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -192,8 +197,14 @@ class CLIDbManager:
|
||||
name_file.write(title)
|
||||
name_file.close()
|
||||
|
||||
self.current_names.append((title, new_path, path_name, _("Never"), 0,
|
||||
False, ""))
|
||||
# write the version number into metadata
|
||||
newdb = gen.db.GrampsDBDir()
|
||||
newdb.write_version(new_path)
|
||||
|
||||
(tval, last) = time_val(new_path)
|
||||
|
||||
self.current_names.append((title, new_path, path_name,
|
||||
last, tval, False, ""))
|
||||
return new_path, title
|
||||
|
||||
def _create_new_db(self, title=None):
|
||||
@@ -274,7 +285,7 @@ class DbManager(CLIDbManager):
|
||||
if parent:
|
||||
self.top.set_transient_for(parent)
|
||||
|
||||
self.connect = self.glade.get_widget('ok')
|
||||
self.connect = self.glade.get_widget('connect')
|
||||
self.cancel = self.glade.get_widget('cancel')
|
||||
self.new = self.glade.get_widget('new')
|
||||
self.remove = self.glade.get_widget('remove')
|
||||
@@ -313,7 +324,7 @@ class DbManager(CLIDbManager):
|
||||
self.top.connect('drag_motion', drag_motion)
|
||||
self.top.connect('drag_drop', drop_cb)
|
||||
|
||||
if RCS_FOUND:
|
||||
if _RCS_FOUND:
|
||||
self.rcs.connect('clicked', self.__rcs)
|
||||
|
||||
def __button_press(self, obj, event):
|
||||
@@ -324,28 +335,10 @@ class DbManager(CLIDbManager):
|
||||
"""
|
||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||
if self.connect.get_property('sensitive'):
|
||||
return self.__load_selected()
|
||||
self.top.response(gtk.RESPONSE_OK)
|
||||
return True
|
||||
return False
|
||||
|
||||
def __load_selected(self):
|
||||
"""
|
||||
Load the selected family tree if possible, return True
|
||||
if ok, and set RESPONSE_OK
|
||||
"""
|
||||
store, node = self.selection.get_selected()
|
||||
if not node:
|
||||
return
|
||||
# don't open a locked file
|
||||
if store.get_value(node, STOCK_COL) == 'gramps-lock':
|
||||
self.__ask_to_break_lock(store, node)
|
||||
return
|
||||
# don't open a version
|
||||
if len(store.get_path(node)) > 1:
|
||||
return
|
||||
if store.get_value(node, PATH_COL):
|
||||
self.top.response(gtk.RESPONSE_OK)
|
||||
return True
|
||||
|
||||
def __key_press(self, obj, event):
|
||||
"""
|
||||
Grab ENTER so it does not start editing the cell, but behaves
|
||||
@@ -354,7 +347,8 @@ class DbManager(CLIDbManager):
|
||||
if not event.state or event.state in (gtk.gdk.MOD2_MASK,):
|
||||
if event.keyval in (_RETURN, _KP_ENTER):
|
||||
if self.connect.get_property('sensitive'):
|
||||
return self.__load_selected()
|
||||
self.top.response(gtk.RESPONSE_OK)
|
||||
return True
|
||||
return False
|
||||
|
||||
def __selection_changed(self, selection):
|
||||
@@ -390,11 +384,11 @@ class DbManager(CLIDbManager):
|
||||
|
||||
if store.get_value(node, STOCK_COL) == gtk.STOCK_OPEN:
|
||||
self.connect.set_sensitive(False)
|
||||
if RCS_FOUND:
|
||||
if _RCS_FOUND:
|
||||
self.rcs.show()
|
||||
else:
|
||||
self.connect.set_sensitive(not is_rev)
|
||||
if RCS_FOUND and is_rev:
|
||||
if _RCS_FOUND and is_rev:
|
||||
self.rcs.show()
|
||||
else:
|
||||
self.rcs.hide()
|
||||
@@ -428,7 +422,6 @@ class DbManager(CLIDbManager):
|
||||
|
||||
# build the database name column
|
||||
render = gtk.CellRendererText()
|
||||
render.set_property('editable', True)
|
||||
render.set_property('ellipsize', pango.ELLIPSIZE_END)
|
||||
render.connect('edited', self.__change_name)
|
||||
render.connect('editing-canceled', self.__stop_edit)
|
||||
@@ -439,6 +432,7 @@ class DbManager(CLIDbManager):
|
||||
self.column.set_resizable(True)
|
||||
self.column.set_min_width(275)
|
||||
self.dblist.append_column(self.column)
|
||||
self.name_renderer = render
|
||||
|
||||
# build the icon column
|
||||
render = gtk.CellRendererPixbuf()
|
||||
@@ -499,15 +493,24 @@ class DbManager(CLIDbManager):
|
||||
Runs the dialog, returning None if nothing has been chosen,
|
||||
or the path and name if something has been selected
|
||||
"""
|
||||
value = self.top.run()
|
||||
if value == gtk.RESPONSE_OK:
|
||||
(model, node) = self.selection.get_selected()
|
||||
if node:
|
||||
while True:
|
||||
value = self.top.run()
|
||||
if value == gtk.RESPONSE_OK:
|
||||
store, node = self.selection.get_selected()
|
||||
# don't open a locked file
|
||||
if store.get_value(node, STOCK_COL) == 'gramps-lock':
|
||||
self.__ask_to_break_lock(store, node)
|
||||
continue
|
||||
# don't open a version
|
||||
if len(store.get_path(node)) > 1:
|
||||
continue
|
||||
if node:
|
||||
self.top.destroy()
|
||||
return (store.get_value(node, PATH_COL),
|
||||
store.get_value(node, NAME_COL))
|
||||
else:
|
||||
self.top.destroy()
|
||||
return (model.get_value(node, PATH_COL),
|
||||
model.get_value(node, NAME_COL))
|
||||
self.top.destroy()
|
||||
return None
|
||||
return None
|
||||
|
||||
def __ask_to_break_lock(self, store, node):
|
||||
"""
|
||||
@@ -546,6 +549,7 @@ class DbManager(CLIDbManager):
|
||||
return
|
||||
|
||||
def __stop_edit(self, *args):
|
||||
self.name_renderer.set_property('editable', False)
|
||||
self.__update_buttons(self.selection)
|
||||
|
||||
def __start_edit(self, *args):
|
||||
@@ -568,10 +572,13 @@ class DbManager(CLIDbManager):
|
||||
node = self.model.get_iter(path)
|
||||
old_text = self.model.get_value(node, NAME_COL)
|
||||
if not old_text.strip() == new_text.strip():
|
||||
if len(path) > 1 :
|
||||
#If there is a ":" in path, then it is a revison
|
||||
if ":" in path :
|
||||
self.__rename_revision(path, new_text)
|
||||
else:
|
||||
self.__rename_database(path, new_text)
|
||||
|
||||
self.name_renderer.set_property('editable', False)
|
||||
self.__update_buttons(self.selection)
|
||||
|
||||
def __rename_revision(self, path, new_text):
|
||||
@@ -587,7 +594,7 @@ class DbManager(CLIDbManager):
|
||||
rev = self.model.get_value(node, PATH_COL)
|
||||
archive = os.path.join(db_dir, ARCHIVE_V)
|
||||
|
||||
cmd = [ "rcs", "-m%s:%s" % (rev, new_text), archive ]
|
||||
cmd = [ "rcs", "-x,v", "-m%s:%s" % (rev, new_text), archive ]
|
||||
|
||||
proc = subprocess.Popen(cmd, stderr = subprocess.PIPE)
|
||||
status = proc.wait()
|
||||
@@ -740,7 +747,7 @@ class DbManager(CLIDbManager):
|
||||
rev = self.data_to_delete[PATH_COL]
|
||||
archive = os.path.join(db_dir, ARCHIVE_V)
|
||||
|
||||
cmd = [ "rcs", "-o%s" % rev, "-q", archive ]
|
||||
cmd = [ "rcs", "-x,v", "-o%s" % rev, "-q", archive ]
|
||||
|
||||
proc = subprocess.Popen(cmd, stderr = subprocess.PIPE)
|
||||
status = proc.wait()
|
||||
@@ -765,6 +772,7 @@ class DbManager(CLIDbManager):
|
||||
"""
|
||||
store, node = self.selection.get_selected()
|
||||
path = self.model.get_path(node)
|
||||
self.name_renderer.set_property('editable', True)
|
||||
self.dblist.set_cursor(path, focus_column=self.column,
|
||||
start_editing=True)
|
||||
|
||||
@@ -785,6 +793,9 @@ class DbManager(CLIDbManager):
|
||||
fname = os.path.join(dirname, filename)
|
||||
os.unlink(fname)
|
||||
|
||||
newdb = gen.db.GrampsDBDir()
|
||||
newdb.write_version(dirname)
|
||||
|
||||
dbclass = gen.db.GrampsDBDir
|
||||
dbase = dbclass()
|
||||
dbase.set_save_path(dirname)
|
||||
@@ -835,12 +846,12 @@ class DbManager(CLIDbManager):
|
||||
"""
|
||||
new_path, title = self._create_new_db_cli(title)
|
||||
path_name = os.path.join(new_path, NAME_FILE)
|
||||
(tval, last) = time_val(new_path)
|
||||
node = self.model.append(None, [title, new_path, path_name,
|
||||
_("Never"), 0, False, ''])
|
||||
last, tval, False, ''])
|
||||
self.selection.select_iter(node)
|
||||
path = self.model.get_path(node)
|
||||
self.dblist.set_cursor(path, focus_column=self.column,
|
||||
start_editing=True)
|
||||
self.dblist.set_cursor(path)
|
||||
return new_path, title
|
||||
|
||||
def __drag_data_received(self, widget, context, xpos, ypos, selection,
|
||||
@@ -954,10 +965,10 @@ def find_revisions(name):
|
||||
rev = re.compile("\s*revision\s+([\d\.]+)")
|
||||
date = re.compile("date:\s+(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)[-+]\d\d;")
|
||||
|
||||
if not os.path.isfile(name):
|
||||
if not os.path.isfile(name) or not _RCS_FOUND:
|
||||
return []
|
||||
|
||||
rlog = [ "rlog", "-zLT" , name ]
|
||||
rlog = [ "rlog", "-x,v", "-zLT" , name ]
|
||||
|
||||
proc = subprocess.Popen(rlog, stdout = subprocess.PIPE)
|
||||
proc.wait()
|
||||
@@ -1010,8 +1021,8 @@ def check_out(dbase, rev, path, callback):
|
||||
Checks out the revision from rcs, and loads the resulting XML file
|
||||
into the database.
|
||||
"""
|
||||
co_cmd = [ "co", "-q%s" % rev] + [ os.path.join(path, ARCHIVE),
|
||||
os.path.join(path, ARCHIVE_V)]
|
||||
co_cmd = [ "co", "-x,v", "-q%s" % rev] + [ os.path.join(path, ARCHIVE),
|
||||
os.path.join(path, ARCHIVE_V)]
|
||||
|
||||
proc = subprocess.Popen(co_cmd, stderr = subprocess.PIPE)
|
||||
status = proc.wait()
|
||||
@@ -1036,8 +1047,9 @@ def check_in(dbase, filename, callback, cursor_func = None):
|
||||
"""
|
||||
Checks in the specified file into RCS
|
||||
"""
|
||||
init = [ "rcs", '-i', '-U', '-q', '-t-"GRAMPS database"', ]
|
||||
ci_cmd = [ "ci", "-q", "-f" ]
|
||||
init = [ "rcs", '-x,v', '-i', '-U', '-q', '-t-"GRAMPS database"' ]
|
||||
ci_cmd = [ "ci", '-x,v', "-q", "-f" ]
|
||||
archive_name = filename + ",v"
|
||||
|
||||
glade_xml_file = glade.XML(const.GLADE_FILE, "comment", "gramps")
|
||||
top = glade_xml_file.get_widget('comment')
|
||||
@@ -1047,27 +1059,36 @@ def check_in(dbase, filename, callback, cursor_func = None):
|
||||
comment = text.get_text()
|
||||
top.destroy()
|
||||
|
||||
if not os.path.isfile(filename + ",v") :
|
||||
proc = subprocess.Popen(init + [filename + ",v"],
|
||||
if not os.path.isfile(archive_name):
|
||||
cmd = init + [archive_name]
|
||||
proc = subprocess.Popen(cmd,
|
||||
stderr = subprocess.PIPE)
|
||||
status = proc.wait()
|
||||
message = "\n".join(proc.stderr.readlines())
|
||||
proc.stderr.close()
|
||||
del proc
|
||||
|
||||
if status != 0:
|
||||
ErrorDialog(
|
||||
_("Archiving failed"),
|
||||
_("An attempt to create the archive failed "
|
||||
"with the following message:\n\n%s") % message
|
||||
)
|
||||
|
||||
if cursor_func:
|
||||
cursor_func(_("Creating data to be archived..."))
|
||||
xmlwrite = GrampsDbUtils.XmlWriter(dbase, callback, False, 0)
|
||||
xmlwrite.write(filename)
|
||||
|
||||
cmd = ci_cmd + ['-m%s' % comment, filename, filename + ",v" ]
|
||||
|
||||
if cursor_func:
|
||||
cursor_func(_("Saving archive..."))
|
||||
|
||||
cmd = ci_cmd + ['-m%s' % comment, filename, archive_name ]
|
||||
proc = subprocess.Popen(cmd,
|
||||
stderr = subprocess.PIPE)
|
||||
|
||||
proc = subprocess.Popen(cmd, stderr = subprocess.PIPE )
|
||||
message = "\n".join(proc.stderr.readlines())
|
||||
status = proc.wait()
|
||||
message = "\n".join(proc.stderr.readlines())
|
||||
proc.stderr.close()
|
||||
del proc
|
||||
|
||||
|
@@ -211,13 +211,13 @@ class BaseModel(gtk.GenericTreeModel):
|
||||
|
||||
self.total = 0
|
||||
while data:
|
||||
key = locale.strxfrm(self.sort_func(data[1]))
|
||||
self.sort_data.append((key,data[0]))
|
||||
self.sort_data.append((self.sort_func(data[1]),data[0]))
|
||||
self.total += 1
|
||||
data = cursor.next()
|
||||
cursor.close()
|
||||
|
||||
self.sort_data.sort(reverse=self.reverse)
|
||||
self.sort_data.sort(lambda x, y: locale.strcoll(x[0], y[0]),
|
||||
reverse=self.reverse)
|
||||
|
||||
return [ x[1] for x in self.sort_data ]
|
||||
|
||||
@@ -265,9 +265,9 @@ class BaseModel(gtk.GenericTreeModel):
|
||||
(self.search and self.search.match(handle, self.db)):
|
||||
|
||||
data = self.map(handle)
|
||||
key = locale.strxfrm(self.sort_func(data))
|
||||
self.sort_data.append((key, handle))
|
||||
self.sort_data.sort(reverse=self.reverse)
|
||||
self.sort_data.append((self.sort_func(data), handle))
|
||||
self.sort_data.sort(lambda x, y: locale.strcoll(x[0], y[0]),
|
||||
reverse=self.reverse)
|
||||
self.node_map.set_path_map([ x[1] for x in self.sort_data ])
|
||||
|
||||
index = self.node_map.get_path(handle)
|
||||
|
@@ -67,13 +67,6 @@ from Lru import LRU
|
||||
|
||||
_CACHE_SIZE = 250
|
||||
|
||||
def locale_sort(mylist):
|
||||
"""
|
||||
Normal sort routine
|
||||
"""
|
||||
l = [ (locale.strxfrm(x),x) for x in mylist ]
|
||||
l.sort()
|
||||
return [ x[1] for x in l ]
|
||||
|
||||
class NodeTreeMap:
|
||||
|
||||
@@ -99,7 +92,9 @@ class NodeTreeMap:
|
||||
self.temp_sname_sub = {}
|
||||
|
||||
def build_toplevel(self):
|
||||
self.temp_top_path2iter = locale_sort(self.temp_sname_sub.keys())
|
||||
mylist = self.temp_sname_sub.keys()
|
||||
mylist.sort(locale.strcoll)
|
||||
self.temp_top_path2iter = mylist
|
||||
for name in self.temp_top_path2iter:
|
||||
self.build_sub_entry(name)
|
||||
|
||||
@@ -196,9 +191,9 @@ class NodeTreeMap:
|
||||
return None
|
||||
|
||||
def build_sub_entry(self, name):
|
||||
slist = [ (locale.strxfrm(self.sortnames[x]), x) \
|
||||
slist = [ (self.sortnames[x], x) \
|
||||
for x in self.temp_sname_sub[name] ]
|
||||
slist.sort()
|
||||
slist.sort(lambda x, y: locale.strcoll(x[0], y[0]))
|
||||
|
||||
val = 0
|
||||
for (junk, person_handle) in slist:
|
||||
|
@@ -67,8 +67,8 @@ class PlaceModel(BaseModel):
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.column_longitude,
|
||||
self.column_latitude,
|
||||
self.column_longitude,
|
||||
self.column_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
@@ -83,8 +83,8 @@ class PlaceModel(BaseModel):
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.column_longitude,
|
||||
self.column_latitude,
|
||||
self.column_longitude,
|
||||
self.column_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
|
@@ -62,7 +62,7 @@ class DataEmbedList(EmbeddedList):
|
||||
self.obj = obj
|
||||
|
||||
EmbeddedList.__init__(self, dbstate, uistate, track, _('_Data'),
|
||||
DataModel, move_buttons=True)
|
||||
DataModel, move_buttons=False)
|
||||
|
||||
def build_columns(self):
|
||||
EmbeddedList.build_columns(self)
|
||||
|
@@ -173,9 +173,9 @@ class EmbeddedList(ButtonTab):
|
||||
else:
|
||||
dnd_types = [ self._DND_TYPE.target() ]
|
||||
|
||||
self.tree.drag_dest_set(gtk.DEST_DEFAULT_ALL, dnd_types,
|
||||
gtk.gdk.ACTION_COPY)
|
||||
self.tree.drag_source_set(gtk.gdk.BUTTON1_MASK,
|
||||
self.tree.enable_model_drag_dest(dnd_types,
|
||||
gtk.gdk.ACTION_COPY)
|
||||
self.tree.enable_model_drag_source(gtk.gdk.BUTTON1_MASK,
|
||||
[self._DND_TYPE.target()],
|
||||
gtk.gdk.ACTION_COPY)
|
||||
self.tree.connect('drag_data_get', self.drag_data_get)
|
||||
|
@@ -62,7 +62,7 @@ from BasicUtils import name_displayer
|
||||
|
||||
_RETURN = gtk.gdk.keyval_from_name("Return")
|
||||
_KP_ENTER = gtk.gdk.keyval_from_name("KP_Enter")
|
||||
_LEFT_BUTTOGN = 1
|
||||
_LEFT_BUTTON = 1
|
||||
_RIGHT_BUTTON = 3
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
@@ -114,7 +114,7 @@ class ChildEmbedList(EmbeddedList):
|
||||
Create the object, storing the passed family value
|
||||
"""
|
||||
self.family = family
|
||||
EmbeddedList.__init__(self, dbstate, uistate, track, _('_Children'),
|
||||
EmbeddedList.__init__(self, dbstate, uistate, track, _('Chil_dren'),
|
||||
ChildModel, share_button=True, move_buttons=True)
|
||||
|
||||
def get_popup_menu_items(self):
|
||||
@@ -968,10 +968,6 @@ class EditFamily(EditPrimary):
|
||||
|
||||
self.db.add_family(self.obj, trans)
|
||||
self.db.transaction_commit(trans, _("Add Family"))
|
||||
elif original and self.object_is_empty():
|
||||
trans = self.db.transaction_begin()
|
||||
self.db.remove_family(self.obj.handle, trans)
|
||||
self.db.transaction_commit(trans, _("Remove Family"))
|
||||
elif cmp(original.serialize(),self.obj.serialize()):
|
||||
|
||||
trans = self.db.transaction_begin()
|
||||
@@ -1004,7 +1000,7 @@ class EditFamily(EditPrimary):
|
||||
self.db.commit_family(self.obj, trans)
|
||||
self.db.transaction_commit(trans, _("Edit Family"))
|
||||
|
||||
self.close()
|
||||
self._do_close()
|
||||
|
||||
def _cleanup_on_exit(self):
|
||||
(width, height) = self.window.get_size()
|
||||
|
@@ -154,8 +154,7 @@ class EditMedia(EditPrimary):
|
||||
def draw_preview(self):
|
||||
mtype = self.obj.get_mime_type()
|
||||
if mtype:
|
||||
pb = ThumbNails.get_thumbnail_image(Utils.find_file(
|
||||
Utils.media_path_full(self.db, self.obj.get_path())),
|
||||
pb = ThumbNails.get_thumbnail_image(Utils.media_path_full(self.db, self.obj.get_path()),
|
||||
mtype)
|
||||
self.pixmap.set_from_pixbuf(pb)
|
||||
else:
|
||||
@@ -206,11 +205,13 @@ class EditMedia(EditPrimary):
|
||||
|
||||
def view_media(self, obj):
|
||||
ref_obj = self.dbstate.db.get_object_from_handle(self.obj.handle)
|
||||
mime_type = ref_obj.get_mime_type()
|
||||
app = Mime.get_application(mime_type)
|
||||
if app:
|
||||
Utils.launch(app[0], Utils.media_path_full(self.dbstate.db,
|
||||
ref_obj.get_path()))
|
||||
|
||||
if ref_obj:
|
||||
mime_type = ref_obj.get_mime_type()
|
||||
app = Mime.get_application(mime_type)
|
||||
if app:
|
||||
Utils.launch(app[0], Utils.media_path_full(self.dbstate.db,
|
||||
ref_obj.get_path()))
|
||||
|
||||
def select_file(self, val):
|
||||
self.determine_mime()
|
||||
@@ -284,6 +285,29 @@ class EditMedia(EditPrimary):
|
||||
Config.set(Config.MEDIA_HEIGHT, height)
|
||||
Config.sync()
|
||||
|
||||
def data_has_changed(self):
|
||||
"""
|
||||
A date comparison can fail incorrectly because we have made the
|
||||
decision to store entered text in the date. However, there is no
|
||||
entered date when importing from a XML file, so we can get an
|
||||
incorrect fail.
|
||||
"""
|
||||
|
||||
if self.db.readonly:
|
||||
return False
|
||||
elif self.obj.handle:
|
||||
orig = self.get_from_handle(self.obj.handle)
|
||||
if orig:
|
||||
cmp_obj = orig
|
||||
else:
|
||||
cmp_obj = self.empty_object()
|
||||
return cmp(cmp_obj.serialize(True)[1:],
|
||||
self.obj.serialize(True)[1:]) != 0
|
||||
else:
|
||||
cmp_obj = self.empty_object()
|
||||
return cmp(cmp_obj.serialize(True)[1:],
|
||||
self.obj.serialize()[1:]) != 0
|
||||
|
||||
class DeleteMediaQuery:
|
||||
|
||||
def __init__(self, dbstate, uistate, media_handle, the_lists):
|
||||
|
@@ -40,6 +40,7 @@ from gtk import glade
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import const
|
||||
import Config
|
||||
import gen.lib
|
||||
|
||||
from DisplayTabs import (NoteTab, GalleryTab, SourceBackRefList,
|
||||
@@ -54,6 +55,10 @@ from _EditReference import RefTab, EditReference
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class EditSourceRef(EditReference):
|
||||
|
||||
WIDTH_KEY = Config.SOURCE_REF_WIDTH
|
||||
HEIGHT_KEY = Config.SOURCE_REF_HEIGHT
|
||||
|
||||
def __init__(self, state, uistate, track, source, source_ref, update):
|
||||
|
||||
EditReference.__init__(self, state, uistate, track, source,
|
||||
|
@@ -140,12 +140,13 @@ class ValidationError(Exception):
|
||||
pass
|
||||
|
||||
class DbError(Exception):
|
||||
"""Error used to report that the request window is already displayed."""
|
||||
"""Error used to report BerkeleyDB errors"""
|
||||
def __init__(self, value):
|
||||
Exception.__init__(self)
|
||||
if type(value) == tuple:
|
||||
self.value = value[1]
|
||||
else:
|
||||
try:
|
||||
(errnum, errmsg) = value
|
||||
self.value = errmsg
|
||||
except:
|
||||
self.value = value
|
||||
|
||||
def __str__(self):
|
||||
|
@@ -475,7 +475,7 @@ class ExportAssistant(gtk.Assistant, ManagedWindow.ManagedWindow) :
|
||||
'Future editing of the currently opened database will '
|
||||
'not alter the copy you have just made. ')
|
||||
#add test, what is dir
|
||||
conclusion_text += '\n\n' + 'Filename: %s' %self.chooser.get_filename()
|
||||
conclusion_text += '\n\n' + _('Filename: %s') %self.chooser.get_filename()
|
||||
else:
|
||||
conclusion_title = _('Saving failed')
|
||||
conclusion_text = _(
|
||||
|
@@ -116,6 +116,12 @@ class WriterOptionBox:
|
||||
des.add_rule(Rules.Person.IsDescendantOf(
|
||||
[self.person.get_gramps_id(), 1]))
|
||||
|
||||
df = GenericFilter()
|
||||
df.set_name(_("Descendant Families of %s") %
|
||||
name_displayer.display(self.person))
|
||||
df.add_rule(Rules.Person.IsDescendantFamilyOf(
|
||||
[self.person.get_gramps_id(), 1]))
|
||||
|
||||
ans = GenericFilter()
|
||||
ans.set_name(_("Ancestors of %s")
|
||||
% name_displayer.display(self.person))
|
||||
@@ -127,7 +133,7 @@ class WriterOptionBox:
|
||||
name_displayer.display(self.person))
|
||||
com.add_rule(Rules.Person.HasCommonAncestorWith(
|
||||
[self.person.get_gramps_id()]))
|
||||
return [des, ans, com]
|
||||
return [des, df, ans, com]
|
||||
|
||||
def parse_options(self):
|
||||
"""
|
||||
|
@@ -92,7 +92,7 @@ class ShowResults(ManagedWindow.ManagedWindow):
|
||||
self.get_widget('close').connect('clicked', self.close)
|
||||
|
||||
new_list = [self.sort_val_from_handle(h) for h in handle_list]
|
||||
new_list.sort()
|
||||
new_list.sort(lambda x, y: locale.strcoll(x[0], y[0]))
|
||||
handle_list = [ h[1] for h in new_list ]
|
||||
|
||||
for handle in handle_list:
|
||||
@@ -141,27 +141,21 @@ class ShowResults(ManagedWindow.ManagedWindow):
|
||||
def sort_val_from_handle(self, handle):
|
||||
if self.namespace == 'Person':
|
||||
name = self.db.get_person_from_handle(handle).get_primary_name()
|
||||
sortname = locale.strxfrm(_nd.sort_string(name))
|
||||
sortname = _nd.sort_string(name)
|
||||
elif self.namespace == 'Family':
|
||||
name = Utils.family_name(
|
||||
sortname = Utils.family_name(
|
||||
self.db.get_family_from_handle(handle),self.db)
|
||||
sortname = locale.strxfrm(name)
|
||||
elif self.namespace == 'Event':
|
||||
name = self.db.get_event_from_handle(handle).get_description()
|
||||
sortname = locale.strxfrm(name)
|
||||
sortname = self.db.get_event_from_handle(handle).get_description()
|
||||
elif self.namespace == 'Source':
|
||||
name = self.db.get_source_from_handle(handle).get_title()
|
||||
sortname = locale.strxfrm(name)
|
||||
sortname = self.db.get_source_from_handle(handle).get_title()
|
||||
elif self.namespace == 'Place':
|
||||
name = self.db.get_place_from_handle(handle).get_title()
|
||||
sortname = locale.strxfrm(name)
|
||||
sortname = self.db.get_place_from_handle(handle).get_title()
|
||||
elif self.namespace == 'MediaObject':
|
||||
name = self.db.get_object_from_handle(handle).get_description()
|
||||
sortname = locale.strxfrm(name)
|
||||
sortname = self.db.get_object_from_handle(handle).get_description()
|
||||
elif self.namespace == 'Repository':
|
||||
name = self.db.get_repository_from_handle(handle).get_name()
|
||||
sortname = locale.strxfrm(name)
|
||||
sortname = self.db.get_repository_from_handle(handle).get_name()
|
||||
elif self.namespace == 'Note':
|
||||
gid = self.db.get_note_from_handle(handle).get_gramps_id()
|
||||
sortname = locale.strxfrm(gid)
|
||||
sortname = gid
|
||||
return (sortname, handle)
|
||||
|
@@ -6,8 +6,8 @@ pkgdata_PYTHON = \
|
||||
_AllNotes.py\
|
||||
_HasIdOf.py\
|
||||
_HasMarkerOf.py\
|
||||
_HasNoteMatchingSubstringOf.py\
|
||||
_HasNoteRegexp.py\
|
||||
_MatchesSubstringOf.py\
|
||||
_MatchesRegexpOf.py\
|
||||
_HasNote.py\
|
||||
_HasReferenceCountOf.py\
|
||||
_MatchesFilter.py\
|
||||
|
@@ -2,6 +2,7 @@
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2008 Brian G. Matherly
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -18,13 +19,14 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
# $Id: _HasNoteRegexp.py 9912 2008-01-22 09:17:46Z acraphae $
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import re
|
||||
from gettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -32,14 +34,30 @@ from gettext import gettext as _
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from Filters.Rules._HasNoteRegexBase import HasNoteRegexBase
|
||||
from Filters.Rules import Rule
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# "Repos having notes that contain a substring"
|
||||
#-------------------------------------------------------------------------
|
||||
class HasNoteRegexp(HasNoteRegexBase):
|
||||
class MatchesRegexpOf(Rule):
|
||||
|
||||
name = _('Notes having notes '
|
||||
'containing <regular expression>')
|
||||
description = _("Matches notes whose notes contain text "
|
||||
labels = [ _('Regular expression:')]
|
||||
name = _('Notes containing <regular expression>')
|
||||
description = _("Matches notes who contain text "
|
||||
"matching a regular expression")
|
||||
category = _('General filters')
|
||||
|
||||
def __init__(self, list):
|
||||
Rule.__init__(self, list)
|
||||
|
||||
try:
|
||||
self.match = re.compile(list[0], re.I|re.U|re.L)
|
||||
except:
|
||||
self.match = re.compile('')
|
||||
|
||||
def apply(self, db, note):
|
||||
""" Apply the filter """
|
||||
text = unicode(note.get())
|
||||
if self.match.match(text) != None:
|
||||
return True
|
||||
return False
|
@@ -2,6 +2,7 @@
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2008 Brian G. Matherly
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -32,14 +33,23 @@ from gettext import gettext as _
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from Filters.Rules._HasNoteSubstrBase import HasNoteSubstrBase
|
||||
from Filters.Rules import Rule
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# "Events having notes that contain a substring"
|
||||
#-------------------------------------------------------------------------
|
||||
class HasNoteMatchingSubstringOf(HasNoteSubstrBase):
|
||||
class MatchesSubstringOf(Rule):
|
||||
"""Notes having notes containing <subtring>"""
|
||||
|
||||
name = _('Notes having notes containing <substring>')
|
||||
description = _("Matches notes whose notes contain text "
|
||||
labels = [ _('Substring:')]
|
||||
name = _('Notes containing <substring>')
|
||||
description = _("Matches notes who contain text "
|
||||
"matching a substring")
|
||||
category = _('General filters')
|
||||
|
||||
def apply(self, db, note):
|
||||
""" Apply the filter """
|
||||
text = unicode(note.get())
|
||||
if text.upper().find(self.list[0].upper()) != -1:
|
||||
return True
|
||||
return False
|
@@ -29,8 +29,8 @@ from _AllNotes import AllNotes
|
||||
from _HasIdOf import HasIdOf
|
||||
from _HasMarkerOf import HasMarkerOf
|
||||
from _RegExpIdOf import RegExpIdOf
|
||||
from _HasNoteRegexp import HasNoteRegexp
|
||||
from _HasNoteMatchingSubstringOf import HasNoteMatchingSubstringOf
|
||||
from _MatchesRegexpOf import MatchesRegexpOf
|
||||
from _MatchesSubstringOf import MatchesSubstringOf
|
||||
from _HasReferenceCountOf import HasReferenceCountOf
|
||||
from _NotePrivate import NotePrivate
|
||||
from _MatchesFilter import MatchesFilter
|
||||
@@ -42,8 +42,8 @@ editor_rule_list = [
|
||||
HasMarkerOf,
|
||||
RegExpIdOf,
|
||||
HasNote,
|
||||
HasNoteRegexp,
|
||||
HasNoteMatchingSubstringOf,
|
||||
MatchesRegexpOf,
|
||||
MatchesSubstringOf,
|
||||
HasReferenceCountOf,
|
||||
NotePrivate,
|
||||
MatchesFilter,
|
||||
|
@@ -1,7 +1,8 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2002-2007 Donald N. Allingham
|
||||
# Copyright (C) 2007-2008 Brian G. Matherly
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -25,7 +26,7 @@
|
||||
# Standard Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
from TransUtils import sgettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -45,25 +46,37 @@ class HasNameOf(Rule):
|
||||
labels = [ _('Given name:'),
|
||||
_('Family name:'),
|
||||
_('Suffix:'),
|
||||
_('person|Title:')]
|
||||
_('person|Title:'),
|
||||
_('Prefix:'),
|
||||
_('Patronymic:'),
|
||||
_('Call Name:'),]
|
||||
name = _('People with the <name>')
|
||||
description = _("Matches people with a specified (partial) name")
|
||||
category = _('General filters')
|
||||
|
||||
def apply(self,db,person):
|
||||
self.f = self.list[0]
|
||||
self.l = self.list[1]
|
||||
self.s = self.list[2]
|
||||
self.t = self.list[3]
|
||||
self.firstn = self.list[0]
|
||||
self.lastn = self.list[1]
|
||||
self.surn = self.list[2]
|
||||
self.title = self.list[3]
|
||||
self.prefix = self.list[4]
|
||||
self.patr = self.list[5]
|
||||
self.calln = self.list[6]
|
||||
for name in [person.get_primary_name()] + person.get_alternate_names():
|
||||
val = 1
|
||||
if self.f and name.get_first_name().upper().find(self.f.upper()) == -1:
|
||||
if self.firstn and name.get_first_name().upper().find(self.firstn.upper()) == -1:
|
||||
val = 0
|
||||
if self.l and name.get_surname().upper().find(self.l.upper()) == -1:
|
||||
if self.lastn and name.get_surname().upper().find(self.lastn.upper()) == -1:
|
||||
val = 0
|
||||
if self.s and name.get_suffix().upper().find(self.s.upper()) == -1:
|
||||
if self.surn and name.get_suffix().upper().find(self.surn.upper()) == -1:
|
||||
val = 0
|
||||
if self.t and name.get_title().upper().find(self.t.upper()) == -1:
|
||||
if self.title and name.get_title().upper().find(self.title.upper()) == -1:
|
||||
val = 0
|
||||
if self.prefix and name.get_prefix().upper().find(self.prefix.upper()) == -1:
|
||||
val = 0
|
||||
if self.patr and name.get_patronymic().upper().find(self.patr.upper()) == -1:
|
||||
val = 0
|
||||
if self.calln and name.get_call_name().upper().find(self.calln.upper()) == -1:
|
||||
val = 0
|
||||
if val == 1:
|
||||
return True
|
||||
|
@@ -1,7 +1,8 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2002-2007 Donald N. Allingham
|
||||
# Copyright (C) 2007-2008 Brian G. Matherly
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -59,7 +60,7 @@ class RegExpName(Rule):
|
||||
def apply(self,db,person):
|
||||
for name in [person.get_primary_name()] + person.get_alternate_names():
|
||||
for field in [name.first_name, name.surname, name.suffix, name.title,
|
||||
name.prefix, name.patronymic]:
|
||||
name.prefix, name.patronymic, name.call]:
|
||||
if self.match.match(field):
|
||||
return True
|
||||
else:
|
||||
|
@@ -1,7 +1,8 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2002-2006 Donald N. Allingham
|
||||
# Copyright (C) 2002-2007 Donald N. Allingham
|
||||
# Copyright (C) 2007-2008 Brian G. Matherly
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -53,7 +54,7 @@ class SearchName(Rule):
|
||||
|
||||
for name in [person.get_primary_name()] + person.get_alternate_names():
|
||||
for field in [name.first_name, name.surname, name.suffix, name.title,
|
||||
name.prefix, name.patronymic]:
|
||||
name.prefix, name.patronymic, name.call]:
|
||||
if src and field.upper().find(src) != -1:
|
||||
return True
|
||||
else:
|
||||
|
@@ -156,6 +156,7 @@ editor_rule_list = [
|
||||
HasTextMatchingSubstringOf,
|
||||
HasNote,
|
||||
HasNoteRegexp,
|
||||
HasNoteMatchingSubstringOf,
|
||||
RegExpIdOf,
|
||||
Disconnected,
|
||||
]
|
||||
|
@@ -39,7 +39,7 @@ from Filters.Rules._HasNoteRegexBase import HasNoteRegexBase
|
||||
#-------------------------------------------------------------------------
|
||||
class HasNoteRegexp(HasNoteRegexBase):
|
||||
|
||||
name = _('Repositoriess having notes '
|
||||
name = _('Repositories having notes '
|
||||
'containing <regular expression>')
|
||||
description = _("Matches repositories whose notes contain text "
|
||||
"matching a regular expression")
|
||||
|
@@ -46,7 +46,7 @@ class HasMarkerBase(Rule):
|
||||
|
||||
labels = [ _('Marker type:')]
|
||||
name = _('Has marker of')
|
||||
description = _("Matches markers of a partikular type")
|
||||
description = _("Matches markers of a particular type")
|
||||
category = _('General filters')
|
||||
|
||||
def apply(self, db, obj):
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user