Compare commits

...

77 Commits

Author SHA1 Message Date
John Ralls b57b8d0b75 Update Gramps & dependencies for 5.1.6 release. 2023-07-02 14:39:41 -07:00
Nick Hall 9fe57a2eb2 Bump to 5.1.7 2023-06-29 21:44:40 +01:00
Nick Hall ddfc88946a Release Gramps 5.1.6 2023-06-29 21:37:13 +01:00
Nick Hall 52e4790753 Update Changelog and NEWS files 2023-06-29 21:28:47 +01:00
Nick Hall 8a2c94a3dd Update copyright date 2023-06-29 18:42:00 +01:00
SNoiraud e40b727a57 Narrative web: problem with small pictures.
Fixes #012884
2023-06-28 21:50:08 +01:00
SNoiraud 160d5952f2 Implement the "<CTRL>J" for the family view
Fixes #012882
2023-06-28 21:42:08 +01:00
Jon Schewe 482199d29c Avoid application crash on invalid user input
If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log.

Fixes #12658.
2023-06-28 20:58:37 +01:00
Nick Hall bfa7c0c9f4 Fix export where private citations are excluded 2023-06-28 19:05:25 +01:00
prculley 614332aac8 Fix Event compare tool to display enclosed places properly 2023-05-14 22:50:01 +01:00
SNoiraud 0a981f0ca6 Check that view exists before calling post_create method
Avoids 'NoneType' object has no attribute 'post_create' error.

Fixes #12638
2023-05-14 22:47:55 +01:00
Jingxuan He 9e81014fc6 Fix a wrong operator bug in the web calendar report 2023-05-14 22:27:59 +01:00
Himanshu Gohel 2da93aad1f Revert "Enclose tree report image path and file name in braces"
Fixes #12437 by reverting commit 75921ceaf4 due to
reports of regression where processing of the generated TeX file fails due to
bad path specificiation for image files.

Change was introduced in bug fix for #10495.

Bugs #12437 and #12697 reported the regression and confirmed that reverting the
change fixes the regression.
2023-05-14 22:13:38 +01:00
SNoiraud 97434a0136 Geography View: Fix number of arguments in add_bookmark method
add_bookmark() takes 2 positional arguments but 3 were given

Fixes #12718
2023-05-14 21:54:33 +01:00
GaryGriffin 181e2d8540 Use date-specific place in report substitution variables
Fix place title in graphical reports which have user-defined display formats
to use date-specific alternate name.

This impacts Ancestor Tree, Descendant Tree, and Family Descendant Tree.

Fixes #12763.
2023-05-14 21:38:49 +01:00
John Ralls 36d03137dd Try to import berkeleydb if bsddb3 isn't found.
berkelydb is usable for python >= 3.6 and required for
python >= 3.10. See https://www.jcea.es/programacion/pybsddb.htm.
2023-05-14 21:11:55 +01:00
Vincent Smeets f6ac1999dd HtmlDoc: Create a unique filename for cropped images 2023-05-14 21:00:28 +01:00
D.A.Lordemann a99b48711f Fix corrupted NOTE tag in Gedcom export
Remove Python2 code obsoleted by Python3, which was corrupting GEDCOM export of Gramps Notes text that includes multi-byte utf-8 characters.

Fixes #12709.
2023-05-14 19:03:52 +01:00
SNoiraud d5d86e9139 Fix IndexError that sometimes occurs when changing view
This occurs when restarting Gramps.

Fixes #12636, #12304, #12429, #12623, #12695.
2023-05-14 18:49:17 +01:00
SNoiraud 4ebba02b6b Fix crash when invalid note link
Fixes #012854
2023-05-12 22:11:29 +01:00
SNoiraud e535fcefa5 Tags with color names don't work in pedigree views
Color tags work correctly in all views except in pedigree views.
These views modify colors:
...
 context.set_source_rgba(*(self.bordercolor[:3] + (0.4,)))
... and
 context.set_source_rgb(*self.bgcolor[:3])

As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags

Fixes #012866
2023-05-12 21:57:24 +01:00
SNoiraud 0170e2b1e6 Crash when invalid event date 2023-04-05 18:41:27 +02:00
SNoiraud 54799df049 ListModel: Only the first level is managed
When we use checkboxes in columns.
The path was converted to int. Why ?
But when we have multiple level, the path format is "x:y" for two levels,
"x:y:z" for three levels, etc
2023-04-04 19:38:10 +02:00
Nick Hall b97facb66f Update Gramps CI workflow to run on Ubuntu 20.04
Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
2023-03-07 21:56:08 +00:00
John Ralls aae38a6861 mac: Patch bsddb to use berkeleydb instead of bsddb3 module. 2022-12-27 15:25:07 -08:00
John Ralls e0ee86c36a Mac build: Patch berkeleydb configure to work on Apple Silicon. 2022-12-27 11:45:08 -08:00
John Ralls e3e89e6592 [mac] Update Exiv2 download URL, moved to github. 2022-12-26 13:56:57 -08:00
John Ralls 2cde1f0cdb Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura. 2022-12-24 14:27:46 -08:00
Nick Hall 2ca3839904 Fix spouse's name and underlined call names in records
Fixes #12391
2022-03-19 17:51:06 +00:00
Nick Hall 66cac5e852 Fix package installation failures in CI 2022-03-16 22:21:22 +00:00
Sam Manzi 99ec8e876b Update INCOMPLETE_TRANSLATIONS
* Remove: he

* Add: zh_HK, zh_TW
2022-02-12 22:44:46 +00:00
Ross Gammon b27480f7a1 Update Debian folder after 5.1.5 release 2022-02-12 21:44:57 +00:00
John Ralls e0e81cf56a Package Gramps 5.1.5 for macOS. 2022-02-05 17:12:38 -08:00
Nick Hall 6df7c46400 Bump to 5.1.6 2022-02-05 23:33:10 +00:00
Nick Hall b98f166a6d Release Gramps 5.1.5 2022-02-05 23:28:04 +00:00
Nick Hall 33e78d47db Update Changelog and NEWS files 2022-02-05 23:23:27 +00:00
Nick Hall c753ca66b0 Remove Travis CI configuration 2022-02-05 22:04:48 +00:00
Nick Hall ff87829b99 Fix badges in README file 2022-02-05 22:01:11 +00:00
Nick Hall a1ec516340 Update copyright date 2022-02-05 19:25:53 +00:00
SNoiraud 60b4866296 Strange behavior for the scrollbar in the bottombar
Fixes #012438
2022-02-04 22:13:05 +00:00
romjerome 3ad5248af0 Fix place object element order in DTD and RNG schemas
Element placeobj content does not follow the DTD and RNG,
expecting (ptitle? , pname+)

Fixes #12500
2022-02-04 21:44:15 +00:00
Nick Hall aa7d9c10c8 Merge pull request #1323 from izikeros/pl 2022-02-01 22:25:43 +00:00
Krystian Safjan 9f458578c0 Fixes suggested after review by @stojex 2022-02-01 22:17:38 +00:00
Krystian Safjan 3418027e50 Update Polish translation
- Consistent usage of "Tag": was "Tag" or "Atrybut", note that
  "Attribute" (atrybut) is something different than tag
- "Magazyn" (repository) renamed to "Repozytorium"
- other fixes and addons
2022-02-01 22:16:17 +00:00
SNoiraud 8eed6b869a Solve InterpolationSyntaxError if "%" in a string
The grampletpane module save data in a config file for all
the gramplets added in the dashboard.
The python configparser module doesn't like if we have a "%"
character in a string.

Fixes #012423
2022-02-01 21:57:37 +00:00
SNoiraud f5202a9ab8 '<' not supported between 2 instances of IndexMark
Fixes #012467
2022-02-01 21:45:32 +00:00
Nick Hall b8e5eacbbe Remove debug sattements in unit tests 2022-02-01 21:36:44 +00:00
Nick Hall 810d2fca24 Fix negative Span when dates are not Gregorian
Fixes #12525
2022-02-01 21:33:53 +00:00
Leonhaeuser 7c0e138ad2 get German translation with manual in sync (Display name editor) 2022-01-29 13:22:40 +01:00
Nick Hall 85535c0f5b Merge pull request #1291 from SNoiraud/B12395 2022-01-28 22:18:50 +00:00
SNoiraud b52d90221f Incorrect grouping if no ma/patronymic surname 2022-01-28 22:05:26 +00:00
SNoiraud bfcbd38610 Group As override is ignored for ma/patronymic surnames
Fixes #12395

discourse:
https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
2022-01-28 22:05:17 +00:00
Nick Hall 2ada529a21 Merge pull request #1290 from SNoiraud/B12374 2022-01-28 21:49:56 +00:00
SNoiraud 8d355ee184 Add comments for the lat-lon field of editplace 2022-01-28 21:41:57 +00:00
SNoiraud d5b28435e0 Place editor, lat and long text are swapped
Fixes #012374
2022-01-28 21:41:57 +00:00
prculley 61189d3930 Fix Statusbar progress being shown before use
Fixes #12373
2022-01-28 21:32:12 +00:00
prculley fec961d992 Fix exception when removing a group name in Sqlite db when group
name is already missing.

Fixes #12367
2022-01-28 21:31:51 +00:00
prculley 8ceccb4a28 Fix error when trying to close name editor during long name group
mapping view rebuild.

Fixes #12328
2022-01-28 21:30:27 +00:00
SNoiraud 6ba9722dee OsmGpsMap-CRITICAL: Map source setup called twice
Fixes #012352
2022-01-28 21:17:30 +00:00
Ross Gammon 4a9f658dd4 Fix probably alive test
The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
2022-01-28 19:52:42 +00:00
Nick Hall c9537b355e Use GitHub Actions to run continuous integration checks 2022-01-28 19:46:52 +00:00
John Ralls 49c3fa0f3f Update Exiv2, PYExiv2, and json-glib. 2022-01-28 09:06:08 -08:00
Ross Gammon eb002718b1 Update Debian folder for Gramps 5.1.4 release 2022-01-27 21:45:22 +00:00
pehlm 19c714d57a Minor update of Swedish translation 2022-01-25 17:56:25 +01:00
Tian Shixiong b392ce01e0 Minor update to zh_CN translation 2022-01-24 15:40:16 +00:00
Leonhaeuser b43b6bdd6d small German translation fixes 2021-11-03 19:43:17 +01:00
Leonhaeuser c027276466 Fixed German translation error of "Character set encoding" 2021-11-01 22:16:40 +01:00
Leonhaeuser 898b6b26e8 Fixed German translation error of "Graph generations" 2021-10-25 21:54:26 +02:00
John Ralls ab2df73268 Repackage Gramps.app to work with macOS 12. 2021-10-16 13:51:55 -07:00
John Ralls e1794090e1 [macOS]Add entitlements path to bundle-file so Gramps.app is signed with it. 2021-10-16 13:51:55 -07:00
Leonhaeuser 87860fcfd2 Fixed German translation error of "filter person" 2021-09-19 13:15:21 +02:00
Leonhaeuser 79986e1f5e fixed error in German translation found during manual translation also fixed in master 2021-08-30 18:06:20 +02:00
Leonhaeuser 0f38a1a645 fixed German translation of 'Descendant families of' already done in trunk Weblate 2021-08-11 22:36:58 +02:00
John Ralls 14618917c2 Add python-fontconfig to the macOS build.
Needed to enable using genealogical symbols.
2021-08-10 16:18:41 -07:00
John Ralls ae7a2500de Inlude fontconfig's etc/fonts in macOS app bundle.
Graphviz now uses fontconfig to find its fonts.
Fixes #12370
2021-07-29 15:13:45 -07:00
John Ralls 358a6b118b Bundle release of Gramps 5.1.4. 2021-07-26 13:23:19 -07:00
Nick Hall 9352f0c438 Bump to 5.1.5 2021-07-26 20:53:53 +01:00
73 changed files with 2136 additions and 1966 deletions
+77
View File
@@ -0,0 +1,77 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2022 Nick Hall
#
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
name: Gramps CI
on:
push:
branches: [ maintenance/gramps51 ]
pull_request:
branches: [ maintenance/gramps51 ]
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gir1.2-pango-1.0
sudo apt-get install gir1.2-gtk-3.0
sudo apt-get install xdg-utils
sudo apt-get install librsvg2-common
sudo apt-get install libglib2.0-dev
sudo apt-get install intltool
sudo apt-get install python3-gi
sudo apt-get install python3-cairo
sudo apt-get install python3-gi-cairo
sudo apt-get install python3-bsddb3
sudo apt-get install python3-dev
sudo apt-get install python3-nose
sudo apt-get install python3-mock
sudo apt-get install python3-icu
sudo apt-get install python3-coverage
sudo apt-get install python3-jsonschema
sudo apt-get install libxml2-utils
sudo apt-get install python3-lxml
sudo apt-get install python-libxml2
sudo apt-get install zlib1g-dev
sudo apt-get install python3-setuptools
- name: Install addons
run: |
mkdir -p ~/.gramps/gramps51/plugins/
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
- name: Build
run: |
python3 setup.py build
- name: Run unit test suite
run: |
python3 setup.py test
- name: Trailing whitespace check
run: |
if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
-129
View File
@@ -1,129 +0,0 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2015-2015 Doug Blank
# Copyright (C) 2016 DaAwesomeP
# Copyright (C) 2016 QuLogic
# Copyright (C) 2016 Tim G L Lyons
#
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# After changing this file, check it on:
# http://lint.travis-ci.org/
sudo: required
dist: trusty
language: python
python:
- 3.3 # This is irrelevant, because the virtualenv is not used at all
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
# for Python 3.2 should be added to this environment which is Python 3.3. It
# will not be possible to run coverage under Python 3.2, because coverage is
# Python 3.3 (or above) only.
addons:
apt:
packages:
- gir1.2-pango-1.0
- gir1.2-gtk-3.0
- xdg-utils
- librsvg2-common
- libglib2.0-dev
- intltool
# - python3-gobject Provided by python3-gi
- python3-gi
- python3-cairo
- python3-gi-cairo
- python3-bsddb3
- python3-dev
- python3-nose
- python3-mock
- python3-pyicu
- python3-coverage
- python3-jsonschema
# lxml dependencies. for merge_ref_test to work
# - libxml2-dev
# - libxslt1-dev
- libxml2-utils
- python3-lxml
- python-libxml2
# ubuntu 14.04 requires this in addition to libxml2-dev and
# libxslt1-dev for compiling lxml.
# https://github.com/deanmalmgren/textract/issues/19
- zlib1g-dev
before_install:
install:
# The working directory is set to /home/travis/build/gramps-project/gramps
# by the automatic git checkout.
# Download Sean Ross-Ross's Pure Python module containing a framework to
# manipulate and analyze python asts and bytecode. This is loaded to
# /home/travis/build/gramps-project/gramps/meta
# FIXME: This should be loaded from the release directory at
# https://pypi.python.org/pypi/meta
- git clone -b master https://github.com/srossross/meta
# Build Gramps package. This seems to copy everything to
# /home/travis/build/scripts-3.3
- python setup.py build
before_script:
# Create the Gramps database directory.
- mkdir -p ~/.gramps/grampsdb/
# set PYTHONPATH so the directly installed module (meta) is picked up from
# /home/travis/build/gramps-project/gramps/meta
- export PYTHONPATH=meta
# set module exclusions. --exclude=TestUser because of older version of mock
# without configure_mock
- export EXCLUDE="--exclude=TestcaseGenerator"
# --exclude=merge_ref_test"
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps51/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
# from /usr/bin. Use libraries from /usr/lib/python3.4,
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
gramps
# FIXME: This should have run from the current directory, rather than from
# gramps, because there is some test code in that directory.
# give an error for any trailing whitespace
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
after_success:
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
# a link
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
# We have to use the bash script because the apt-get coverage does not install
# codecov. If we used pip to install codecov, it would run inside the
# virtualenv, and that doesn't work. Change the path to ensure that codecov
# picks up coverage from /usr/bin, rather than from
# /home/travis/virtualenv/python3.3.6/bin/
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
+114 -398
View File
@@ -1,458 +1,174 @@
2021-07-26 Nick Hall <nick-h@gramps-project.org>
2023-06-29 Nick Hall <nick-h@gramps-project.org>
* gramps/gen/const.py: Update copyright date
* docs/conf.py, gramps/gen/const.py: Update copyright date
2021-07-23 SNoiraud <Serge.Noiraud@free.fr>
2023-05-13 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/utils/alive.py: Probably alive incorrect if death
without date
* gramps/plugins/webreport/media.py: Narrative web: problem with
small pictures. Fixes #012884
2021-07-10 SNoiraud <Serge.Noiraud@free.fr>
2023-05-09 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/editors/editplace.py,
gramps/gui/editors/editplaceref.py: Place editor, copy and paste of
lat and long text no longer auto-populating latitude and longitude fields.
Fixes #12349
* gramps/plugins/view/familyview.py: Implement the "<CTRL>J" for the
family view Fixes #012882
2021-06-25 prculley <paulr2787@gmail.com>
2022-07-11 Jon Schewe <jpschewe@mtu.net>
* gramps/gui/viewmanager.py: Fix for crash when changing views if
part of toolbar is not shown because of a small screen when changing
views. Fixes #12048
* gramps/plugins/webreport/basepage.py: Avoid application crash on
invalid user input If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log. Fixes #12658.
2021-06-25 prculley <paulr2787@gmail.com>
2023-05-13 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/views/pageview.py: Fix bottombar always showing after
restart, even when not wanted. Fixes #12338
* gramps/plugins/export/exportgedcom.py: Fix export where private
citations are excluded
2021-07-09 Tian Shixiong <tiansworld@fedoraproject.org>
2022-06-01 prculley <paulr2787@gmail.com>
* po/zh_CN.po: Update and fix Simplified Chinese translation
* gramps/plugins/tool/eventcmp.py: Fix Event compare tool to display
enclosed places properly
2021-07-16 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-06-08 SNoiraud <Serge.Noiraud@free.fr>
* po/de.po: fixed small German translation error for item also fixed
in Weblate GUI for master
* gramps/gui/viewmanager.py: Check that view exists before calling
post_create method Avoids 'NoneType' object has no attribute 'post_create' error. Fixes #12638
2021-06-28 Tian Shixiong <tiansworld@fedoraproject.org>
2022-06-15 Jingxuan He <LostBenjamin@users.noreply.github.com>
* po/zh_CN.po: Update Simplified Chinese translation
* gramps/plugins/webreport/webcal.py: Fix a wrong operator bug in
the web calendar report
2021-07-05 pehlm <par.ekholm@pekholm.org>
2022-10-08 Himanshu Gohel <1551217+hgohel@users.noreply.github.com>
* po/sv.po: One update Swedish translation
* gramps/gen/plug/docgen/treedoc.py: Revert "Enclose tree report
image path and file name in braces" Fixes #12437 by reverting commit
75921ceaf40f3ced597d99c43794b98f81e49957 due to reports of
regression where processing of the generated TeX file fails due to
bad path specificiation for image files. Change was introduced in bug fix for #10495. Bugs #12437 and #12697 reported the regression and confirmed that
reverting the change fixes the regression.
2021-07-03 John Ralls <jralls@ceridwen.us>
2022-10-22 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/db/dbapi/dbapi.py: Better to use
locale.get_collation than locale.collation.
* gramps/plugins/lib/maps/geography.py: Geography View: Fix number
of arguments in add_bookmark method add_bookmark() takes 2 positional arguments but 3 were given Fixes #12718
2021-07-03 John Ralls <jralls@ceridwen.us>
2022-12-08 GaryGriffin <genealogy@garygriffin.net>
* gramps/plugins/db/dbapi/dbapi.py: Wrap call to
dbapi.check_collection to prevent a forced API change.
* gramps/plugins/lib/libsubstkeyword.py: Use date-specific place in
report substitution variables Fix place title in graphical reports which have user-defined display
formats to use date-specific alternate name. This impacts Ancestor Tree, Descendant Tree, and Family Descendant
Tree. Fixes #12763.
2021-07-01 John Ralls <jralls@ceridwen.us>
2022-12-27 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Fix URL for berkeleydb patch.
* gramps/grampsapp.py, gramps/gui/aboutdialog.py,
gramps/gui/logger/_errorreportassistant.py,
gramps/plugins/db/bsddb/bsddbtxn.py,
gramps/plugins/db/bsddb/cursor.py, gramps/plugins/db/bsddb/read.py,
gramps/plugins/db/bsddb/summary.py,
gramps/plugins/db/bsddb/test/cursor_test.py,
gramps/plugins/db/bsddb/undoredo.py,
gramps/plugins/db/bsddb/upgrade.py,
gramps/plugins/db/bsddb/write.py, gramps/plugins/gramplet/leak.py,
mac/patches/gramps-berkeleydb.patch: Try to import berkeleydb if
bsddb3 isn't found. berkelydb is usable for python >= 3.6 and required for python >=
3.10. See https://www.jcea.es/programacion/pybsddb.htm.
2021-07-01 John Ralls <jralls@ceridwen.us>
2023-02-12 Vincent Smeets <Vincent.VSmeets@GMail.com>
* gramps/plugins/db/dbapi/dbapi.py,
gramps/plugins/db/dbapi/sqlite.py: Always use filtered collation
names. Store the Sqlite3 collations in the __collations array to
short-circuit re-creation. Fixes #12343
* gramps/plugins/docgen/htmldoc.py: HtmlDoc: Create a unique
filename for cropped images
2021-06-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-10-24 D.A.Lordemann <LordemannD@gmail.com>
* po/de.po: Fixed different German translations for "What's next"
also fixed in master (Weblate)
* gramps/plugins/export/exportgedcom.py: Fix corrupted NOTE tag in
Gedcom export Remove Python2 code obsoleted by Python3, which was corrupting
GEDCOM export of Gramps Notes text that includes multi-byte utf-8
characters. Fixes #12709.
2021-06-23 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-09-27 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/rel/rel_de.py: German relation calculator fixed
issue if more then 24 generations between the two person
* gramps/gui/viewmanager.py: Fix IndexError that sometimes occurs
when changing view This occurs when restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
2021-06-22 Matti Niemelä <matti.u.niemela@gmail.com>
2023-03-18 SNoiraud <Serge.Noiraud@free.fr>
* po/fi.po: Fix translation in Finnish
* gramps/gen/proxy/referencedbyselection.py,
gramps/gui/widgets/styledtexteditor.py,
gramps/plugins/lib/libhtmlbackend.py: Fix crash when invalid note
link Fixes #012854
2021-06-17 Tian Shixiong <tiansworld@fedoraproject.org>
2023-04-17 SNoiraud <Serge.Noiraud@free.fr>
* po/zh_CN.po: Correct and improve Simplified Chinese translation.
Correct some terribly wrong and low quality translation, even machine
translation. Improve some existing translation for better user experience
as a software, use more written language.
* gramps/gui/utils.py: Tags with color names don't work in pedigree
views Color tags work correctly in all views except in pedigree views.
These views modify colors: ... context.set_source_rgba(*(self.bordercolor[:3] + (0.4,))) ... and context.set_source_rgb(*self.bgcolor[:3]) As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags Fixes #012866
2021-05-31 Tian Shixiong <tiansworld@fedoraproject.org>
2023-04-05 SNoiraud <Serge.Noiraud@free.fr>
* po/zh_CN.po: Improve and correct Simplified Chinese translation
* gramps/gui/views/treemodels/eventmodel.py: Crash when invalid
event date
2021-05-27 Tian Shixiong <tiansworld@fedoraproject.org>
2023-04-04 SNoiraud <Serge.Noiraud@free.fr>
* po/zh_CN.po: Improve and correct the Simplified Chinese
translation
* gramps/gui/listmodel.py: ListModel: Only the first level is
managed When we use checkboxes in columns. The path was converted to int.
Why ? But when we have multiple level, the path format is "x:y" for
two levels, "x:y:z" for three levels, etc
2021-05-21 Tian Shixiong <tiansworld@fedoraproject.org>
2023-03-07 Nick Hall <nick-h@gramps-project.org>
* po/zh_CN.po: Update and improve Simplified Chinese translation
* .github/workflows/gramps-ci.yml: Update Gramps CI workflow to run
on Ubuntu 20.04 Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
2021-05-17 Tian Shixiong <tiansworld@fedoraproject.org>
2022-12-27 John Ralls <jralls@ceridwen.us>
* po/zh_CN.po: Update Simplified Chinese translation
* mac/gramps.modules: mac: Patch bsddb to use berkeleydb instead of
bsddb3 module.
2020-09-26 Jan Sparreboom <jan@sparreboom.net>
2022-12-27 John Ralls <jralls@ceridwen.us>
* gramps/gen/datehandler/_date_nl.py, gramps/plugins/rel/rel_nl.py,
po/nl.po: Update Dutch translation
* mac/gramps.modules, mac/patches/berkeleydb-4.8-mutex.patch: Mac
build: Patch berkeleydb configure to work on Apple Silicon.
2021-05-07 Tian Shixiong <tiansworld@fedoraproject.org>
2022-12-26 John Ralls <jralls@ceridwen.us>
* po/zh_CN.po: Correct and Update Simplified Chinese translation
* mac/gramps.modules: [mac] Update Exiv2 download URL, moved to
github.
2020-10-13 Tian Shixiong <tiansworld@fedoraproject.org>
2022-12-24 John Ralls <jralls@ceridwen.us>
* po/zh_CN.po: Update Simplified Chinese translation
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules: Repackage
Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
2021-05-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-03-08 Nick Hall <nick-h@gramps-project.org>
* po/de.po: Corrected some German translation errors found during
handbook revision
* gramps/plugins/lib/librecords.py: Fix spouse's name and underlined
call names in records Fixes #12391
2021-05-04 John Ralls <jralls@ceridwen.us>
2022-03-16 Nick Hall <nick-h@gramps-project.org>
* gramps/grampsapp.py: Add file logging for macOS. When Gramps is launched
from macOS's LaunchServices it doesn't have a sys.stderr attached so the
default stream logger goes to /dev/null. Use a FileHandler in tht case,
writing the log to $TMPDIR/gramps-pid.log. This will help particularly in
analyzing crashes where python shuts down as there's no crash report in
that case.
* .github/workflows/gramps-ci.yml: Fix package installation failures
in CI
2021-05-06 John Ralls <jralls@ceridwen.us>
2019-12-09 Sam Manzi <manzi.sam@gmail.com>
* mac/gramps.modules: Update PyICU to 2.7.2 in macOS build.
* gramps/gen/utils/grampslocale.py: Update INCOMPLETE_TRANSLATIONS * Remove: he * Add: zh_HK, zh_TW
2021-05-06 Paul Culley <paulr2787@gmail.com>
2022-02-12 Ross Gammon <rossgammon@debian.org>
* gramps/plugins/lib/libplaceview.py: Fix libplaceview to avoid
exception when mapservice is no longer present (#1193) Fixes #12263
* debian/changelog, debian/copyright,
debian/patches/fix-probably_alive_test.patch, debian/patches/series:
Update Debian folder after 5.1.5 release
2021-05-06 Paul Culley <paulr2787@gmail.com>
2022-02-05 John Ralls <jralls@ceridwen.us>
* gramps/plugins/gramplet/backlinks.py: Fix References Gramplet for
inadequate updates when other objects change (#1192) Fixes #12248
* mac/Info.plist, mac/gramps.modules: Package Gramps 5.1.5 for
macOS.
2021-05-06 Serge Noiraud <Serge.Noiraud@free.fr>
2022-02-05 Nick Hall <nick-h@gramps-project.org>
* gramps/plugins/view/geofamily.py: geofamily crashes if a family
has no father (#1188)
* Bump to 5.1.6
2021-05-06 Serge Noiraud <Serge.Noiraud@free.fr>
* gramps/gen/merge/mergepersonquery.py: Home Person setting does not
convey in a merge. Fixes #12235
2021-05-06 Paul Culley <paulr2787@gmail.com>
* gramps/gen/utils/docgen/csvtab.py: Fix CSV export of view to only
put single CR character. (#1186) Fixes #12158
2021-05-06 Paul Culley <paulr2787@gmail.com>
* gramps/gen/filters/rules/media/__init__.py: Add Media filter rule
'HasMedia' to list of media rules for editor (#1182) Fixes #12212
2021-04-28 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: corrected German translation of "confidence"
2021-04-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German corrected translation of 'attribute'
2021-04-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed translation error of "display name editor" into
German
2021-04-24 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: some translation fixes for German
2021-04-24 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Changed immigration too, Swedish
2021-04-24 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Correction of Swedish translation
2021-04-22 Helder Geovane Gomes de Lima <he7d3r@gmail.com>
* po/pt_BR.po: Update Portuguese translation (pt_BR) (#1199)
This pull request is an updated version of the patch I've provided
at <https://gramps-project.org/bugs/view.php?id=10547> in 2018, now
based on branch 5.1
2021-04-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Corrected translation of markup in German translation
2021-04-17 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed translation of tags in German translation
2021-04-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation for type unified
2021-04-13 romjerome <romjerome@yahoo.fr>
* po/fr.po: 11656: typo, spelling correction contribution by Philippe
2021-04-13 romjerome <romjerome@yahoo.fr>
* gramps/gen/utils/grampslocale.py: Need to set locale.textdomain
under linux (#1198) _build_popup_ui() ignores translated strings without
locale.textdomain set.
2021-04-13 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed German translation of number for places
2021-04-11 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle, mac/gramps.modules,
mac/patches/berkeleydb-4.8-atomic.patch: Update dependencies.
Includes moving berkeleydb and pybsddb over from gtk-osx.
2021-03-21 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Some small fixes in German translation
2021-03-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Update German translation for csv import/export
2021-03-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small fix in German translation
2021-02-19 Matthias Kemmer <49940207+Mattkmmr@users.noreply.github.com>
* gramps/gen/filters/rules/person/_matcheseventfilter.py: Change
category of 'MatchesEventFilter' (#1130)
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py, gramps/gui/views/pageview.py: Fix issue
where separator between top and bottom bar of View creeps up.
(#1122) Fixes #11973
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/gramplet/locations.py: Fix Locations Gramplet
(Enclosed by) to properly display certain nested places. (#1127)
when the smallest place has undated enclosure and larger places are dated.
Issue #11691
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gui/dbman.py: Fix Family Tree Manager drop error on Windows
(#1132) Fixes #10734
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/export/exportvcalendar.py: Fix exportvcalendar
error is "is not" with a literal (Python 3.8 issue) (#1135) Fixes #12000
2021-02-19 Serge Noiraud <Serge.Noiraud@free.fr>
* gramps/gui/clipboard.py: Handle not found when copying source from
the citation tree (#1175) Fixes #12170
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gui/dbloader.py: DbLoader: Fix call to 'file' function,
which doesn't exist in Python3 (#1173)
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gen/db/utils.py: Fix write_lock_file exception when
USERNAME is missing (#1171) Fixes #12150
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gui/glade/editplace.glade: Fix EditPlace so Tab key doesn't
get stuck on Private icon (#1168) Fixes #12139
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/textreport/tagreport.py: Fix Tag report for places
that have a hierarchy. (#1162) Fixes #12124
2021-02-19 Paul Culley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py: Fix exception when cancelling out of a
db upgrade in GUI (#1154) Fixes #12063
2021-02-12 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: additional small German translation fixes
2021-02-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Small fixes German translation
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fix wrong translation of source text in German
translation
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fixed small error in German translation
2021-01-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small fixes German translation
2020-11-06 Chris Mayo <aklhfex@gmail.com>
* setup.py: Install 128x128 and 256x256 application icons created with
ImageMagick using e.g.:
convert -background none ../../../gramps.svg -geometry 256x256 gramps.png
2020-11-06 Chris Mayo <aklhfex@gmail.com>
* data/{gnome-mime-application-x-gedcom.svg =>
application-x-gedcom.svg},
data/{gnome-mime-application-x-geneweb.svg =>
application-x-geneweb.svg},
data/{gnome-mime-application-x-gramps-package.svg =>
application-x-gramps-package.svg},
data/{gnome-mime-application-x-gramps-xml.svg =>
application-x-gramps-xml.svg},
data/{gnome-mime-application-x-gramps.svg =>
application-x-gramps.svg},
setup.py: Install MIME type icons into the hicolor theme.
The gnome theme is defunct. Remove gnome-mime- prefix from icon filenames.
2020-08-20 Nick Hall <nick-h@gramps-project.org>
* images/hicolor/scalable/{actions => apps}/gramps.svg, setup.py:
Install application icons into correct directories
2020-10-15 vantu5z <vantu5z@mail.ru>
* po/ru.po: Update Russian translation
2020-09-25 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation - typo fixes
2020-09-06 Tian Shixiong <tiansworld@fedoraproject.org>
* po/zh_CN.po: Update Simplified Chinese translation
2020-08-16 Jan Sparreboom <jan@sparreboom.net>
* po/nl.po: Update Dutch translation
2020-04-21 Lajos Nemeséri <nemeseril@gmail.com>
* po/hu.po: Revised and updated hu translation
2020-09-13 Juan Saavedra <jcsaaver@gmail.com>
* po/es.po: Update Spanish translation
2020-09-15 bokfink <62996239+bokfink@users.noreply.github.com>
* gramps/plugins/textreport/birthdayreport.py: Fix error in Birthday
and Anniversary report (#1113) Fixes an error triggered when the first
person_handle in the list has a death event, but no birth event
(get_birth_ref() == None) and does not have family relationships
(spouse_handle == None). These conditions lead to the local variable
short_name not being declared before it comes time to process death events.
Fixes #11766
2020-09-14 Paul Culley <paulr2787@gmail.com>
* gramps/gen/plug/docgen/graphdoc.py: Fix graphdoc to properly
escape characters in ids for Graphviz (#1111) Fixes #11741
2020-09-14 John Ralls <jralls@ceridwen.us>
* gramps/gen/db/dummydb.py, gramps/gen/db/txn.py,
gramps/gen/db/utils.py, gramps/gen/dbstate.py,
gramps/gen/filters/rules/test/person_rules_test.py,
gramps/gen/utils/callback.py, gramps/plugins/db/bsddb/bsddbtxn.py:
Replace inspect.stack() with inspect.currentframe() (#1104)
* Replace inspect.stack() with inspect.currentframe() Fixes #11874
Works around https://bugs.python.org/issue12920 which causes every
call to inspect.trace() to fail because __main__ is always the
starting point. * Fix a few Codecov complaints from files touched by
previous commit. Ignoring the "duplicate code" issue caused by the empty
comment line at the beginning of every file.
2020-09-14 RossGammon <rossgammon@mail.dk>
* debian/changelog, debian/copyright: Update Debian directory after
producing the deb file for the 5.1.3 (#1100) Release.
2020-09-14 Paul Culley <paulr2787@gmail.com>
* gramps/gui/selectors/baseselector.py: Fix crash sorting on columns
in Selectors with TreeModels (#1099) Fixes #11750
2020-09-14 Paul Culley <paulr2787@gmail.com>
* gramps/gui/dbloader.py, gramps/gui/displaystate.py,
gramps/gui/uimanager.py, gramps/gui/utils.py,
gramps/gui/viewmanager.py: Fix progress bar freeze due to changes in
Gtk (#1103) Fixes #11642
2020-09-14 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/docgen/svgdrawdoc.py: Fix svgdrawdoc for text
containing XML invalid characters (#1110) Fixes #11929
2020-08-30 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle: Further changes for bundling with Python 3.8.
2020-08-30 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle: Add libgeocode-glib to bundle so that it
actually works.
2020-08-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation two small corrections
2020-08-25 John Ralls <jralls@ceridwen.us>
* mac/gramps_launcher.py: [mac] Set __file__ if gramps_launcher.py
is run as __main__. Fixes #11874.
2020-08-21 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2020-08-20 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Bundle release of Gramps
5.1.3.
2020-08-20 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Add geocode-glib to build.
2020-08-12 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Update Swedish translation
2020-08-12 prculley <paulr2787@gmail.com>
* Bump to 5.1.4
+86
View File
@@ -1,3 +1,89 @@
2023-06-29
Version 5.1.6
* Update copyright date.
* Narrative web: problem with small pictures. Fixes #12884.
* Implement the "<CTRL>J" for the family view. Fixes #12882.
* Avoid application crash on invalid user input. If the user inputs an invalid
date this change keeps the application from crashing. The invalid date
information is reported to the user in the log. Fixes #12658.
* Fix export where private citations are excluded.
* Fix Event Compare tool to display enclosed places properly.
* Check that view exists before calling post_create method. Avoids 'NoneType'
object has no attribute 'post_create' error. Fixes #12638.
* Fix a wrong operator bug in the web calendar report.
* Revert "Enclose tree report image path and file name in braces" due to reports
of regression where processing of the generated TeX file fails due to bad path
specificiation for image files. Fixes #12437 and #12697.
* Geography View: Fix number of arguments in add_bookmark method. Fixes #12718.
* Use date-specific place in report substitution variables. Fix place title in
graphical reports which have user-defined display formats to use date-specific
alternate name. This impacts the Ancestor Tree, Descendant Tree, and Family
Descendant Tree reports. Fixes #12763.
* Try to import berkeleydb if bsddb3 isn't found. berkelydb is usable for
python >= 3.6 and required for python >= 3.10.
See https://www.jcea.es/programacion/pybsddb.htm.
* HtmlDoc: Create a unique filename for cropped images.
* Fix corrupted NOTE tag in Gedcom export. Remove Python2 code obsoleted by
Python3, which was corrupting Gedcom export of Gramps Notes text that includes
multi-byte utf-8 characters. Fixes #12709.
* Fix IndexError that sometimes occurs when changing view This occurs when
restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
* Fix crash when invalid note link. Fixes #12854.
* Fix tags with color names in pedigree views. Fixes #12866.
* Crash when invalid event date.
* ListModel: Fix multiple level paths when we use checkboxes in columns.
The path was previously converted to int.
* Update Gramps CI workflow to run on Ubuntu 20.04. Ubuntu 18.04 became fully
unsupported on 1 Dec 2022.
* Fix package installation failures in CI.
* Fix spouse's name and underlined call names in records. Fixes #12391.
* Update INCOMPLETE_TRANSLATIONS list. Remove: he, Add: zh_HK, zh_TW.
* Update Debian folder after 5.1.5 release.
* Mac:
* Patch bsddb to use berkeleydb instead of bsddb3 module.
* Patch berkeleydb configure to work on Apple Silicon.
* Update Exiv2 download URL, moved to github.
* Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
2022-02-05
Version 5.1.5
* Update translations: de, pl, sv, zh_CN.
* Remove Travis CI configuration.
* Fix badges in README file.
* Update copyright date.
* Strange behavior for the scrollbar in the bottombar. Fixes #12438.
* Fix place object element order in DTD and RNG schemas. Element placeobj
content does not follow the DTD and RNG, expecting (ptitle? , pname+).
Fixes #12500.
* Solve InterpolationSyntaxError if "%" in a string. The grampletpane module
saves data in a config file for all the gramplets added in the dashboard. The
python configparser module doesn't like if we have a "%" character in a string.
Fixes #12423.
* '<' not supported between 2 instances of IndexMark. Fixes #12467.
* Remove debug statements in unit tests.
* Fix negative Span when dates are not Gregorian. Fixes #12525.
* Incorrect grouping if no ma/patronymic surname.
* Group As override is ignored for ma/patronymic surnames. Fixes #12395.
See: https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
* Add comments for the lat-lon field of editplace.
* Place editor, lat and long text are swapped. Fixes #12374.
* Fix Statusbar progress being shown before use. Fixes #12373.
* Fix exception when removing a group name in Sqlite db when group name is
already missing. Fixes #12367.
* Fix error when trying to close name editor during long name group mapping
view rebuild. Fixes #12328.
* OsmGpsMap-CRITICAL: Map source setup called twice Fixes #12352.
* Fix probably alive function unit test.
* Use GitHub Actions to run continuous integration checks.
* Mac:
* Update Exiv2, PYExiv2, and json-glib.
* Repackage Gramps.app to work with macOS 12.
* Add entitlements path to bundle-file so Gramps.app is signed with it.
* Add python-fontconfig to the macOS build. Needed to enable using
genealogical symbols.
* Inlude fontconfig's etc/fonts in macOS app bundle. Graphviz now uses
fontconfig to find its fonts. Fixes #12370.
2021-07-26
Version 5.1.4
* Update translations: cs, de, es, fi, fr, hu, nl, pt_BR, ru, sv, zh_CN.
+6 -3
View File
@@ -1,5 +1,8 @@
The Gramps Project ( https://gramps-project.org ) [![Build Status](https://travis-ci.org/gramps-project/gramps.svg?branch=master)](https://travis-ci.org/gramps-project/gramps)[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=master)](https://codecov.io/github/gramps-project/gramps?branch=master)
The Gramps Project ( https://gramps-project.org )
===================
[![GitHub CI](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml/badge.svg?event=push&branch=maintenance/gramps51)](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml?query=branch%3Amaintenance%2Fgramps51)
[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=maintenance/gramps51)](https://app.codecov.io/gh/gramps-project/gramps/branch/maintenance%2Fgramps51)
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
Please read the **COPYING** file first.
@@ -63,7 +66,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
sorting is done through built-in libraries. PyICU is
fairly widely available through the package managers of
distributions. See http://pyicu.osafoundation.org/
(These are Python bindings for the ICU package.
(These are Python bindings for the ICU package.
https://pypi.python.org/pypi/PyICU/)
* **Ghostscript**
@@ -72,7 +75,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
The following packages are optional:
------------------------------------
* **gtkspell**
* **gtkspell**
Enable spell checking in the notes. Gtkspell depends on
enchant. A version of gtkspell with gobject introspection
+1 -1
View File
@@ -251,7 +251,7 @@ PLACES
<!ELEMENT places (placeobj)*>
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
<!ELEMENT placeobj (ptitle?, code?, pname+, coord?, placeref*, location*,
objref*, url*, noteref*, citationref*, tagref*)>
<!ATTLIST placeobj
id CDATA #IMPLIED
+1 -1
View File
@@ -453,10 +453,10 @@
<ref name="primary-object"/>
<attribute name="type"><text/></attribute>
<optional><element name="ptitle"><text/></element></optional>
<optional><element name="code"><text/></element></optional>
<oneOrMore><element name="pname">
<ref name="placename-content"/>
</element></oneOrMore>
<optional><element name="code"><text/></element></optional>
<optional><element name="coord">
<attribute name="long"><text/></attribute>
<attribute name="lat"><text/></attribute>
+17
View File
@@ -1,3 +1,20 @@
gramps (5.1.5-1) unstable; urgency=medium
* New release
* Update copyright file
* Drop patch, incorporated upstream
-- Ross Gammon <rossgammon@debian.org> Sat, 12 Feb 2022 17:01:21 +0100
gramps (5.1.4-1) unstable; urgency=medium
* New release
* Add new copyrights
* Update watch file
* Patch probably alive test to fix FTBFS
-- Ross Gammon <rossgammon@debian.org> Sun, 15 Aug 2021 18:31:56 +0200
gramps (5.1.3-1) focal; urgency=medium
* New release
+4 -2
View File
@@ -3,7 +3,7 @@ Upstream-Name: Gramps
Source: https://gramps-project.org
Files: *
Copyright: 2000-2007, 2020 Alex Roitman
Copyright: 2000-2007, Alex Roitman
2000-2002, Bruce J. DeGrasse
2000-2008, Donald N. Allingham
2000-2007, Martin Hawlisch
@@ -46,7 +46,7 @@ Copyright: 2000-2007, 2020 Alex Roitman
2009, Florian Heinle
2009, Gerald W. Britton
2009, Igal Shapira
2009-2018, Nick Hall
2009-2022, Nick Hall
2009, Pander Musubi
2009, Robert Ham
2009, Swoon on bug tracker
@@ -92,6 +92,8 @@ Copyright: 2000-2007, 2020 Alex Roitman
2018, Robin van der Vliet
2018, Theo van Rijn
2019, Matthias Kemmer
2020, Jan Sparreboom
2021, Mirko Leonhaeuser
License: GPL-2+
Files: debian/*
+3 -5
View File
@@ -1,8 +1,6 @@
version=3
version=4
opts=\
dversionmangle=s/(\~|\+)(debian|dfsg|ds|deb)(\.\d+)?$//,\
filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/$1\.tar\.gz/,\
filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/gramps-project-$1\.tar\.gz/,\
repacksuffix=~dfsg \
https://github.com/gramps-project/gramps/tags \
.*/archive/v?([\d\.]+).tar.gz
.*/v?(\d\S+)\.tar\.gz
+1 -1
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2019, The Gramps Project'
copyright = '2001-2023, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
+2 -2
View File
@@ -145,7 +145,7 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
@@ -225,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2021 The Gramps Developers"
"© 2007-2023 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
+21 -2
View File
@@ -999,6 +999,8 @@ class NameDisplay:
1. if group name is defined, use that
2. if group name is defined for the primary surname, use that
3. use primary surname itself otherwise
4. if no primary surname, do we have a ma/patronymic surname ?
in this case, group name will be the ma/patronymic name.
:param pn: raw unserialized data of name
:type pn: tuple
@@ -1007,8 +1009,25 @@ class NameDisplay:
"""
if pn[_GROUP]:
return pn[_GROUP]
return db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
name = pn[_GROUP]
if not name:
# if we have no primary surname, perhaps we have a
# patronymic/matronynic name ?
srnme = pn[_ORIGINPATRO]
surname = []
for _surname in srnme:
if (_surname[_TYPE_IN_LIST][0] == _ORIGINPATRO
or _surname[_TYPE_IN_LIST][0] == _ORIGINMATRO):
# Yes, we have one.
surname = [_surname]
# name1 is the ma/patronymic name.
name1 = _raw_patro_surname_only(surname)
if name1 and len(srnme) == 1:
name = db.get_name_group_mapping(name1)
if not name:
name = db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
return name
def _make_fn(self, format_str, d, args):
"""
@@ -98,10 +98,10 @@ class BaseTest(unittest.TestCase):
filter_.set_invert(invert)
stime = perf_counter()
results = filter_.apply(self.db)
if __debug__:
frame = inspect.currentframe()
rulename = frame.f_back.f_code.co_name
print("%s: %.2f\n" % (rulename, perf_counter() - stime))
# if __debug__:
# frame = inspect.currentframe()
# rulename = frame.f_back.f_code.co_name
# print("%s: %.2f\n" % (rulename, perf_counter() - stime))
return set(results)
def test_Complex_1(self):
@@ -347,7 +347,7 @@ class BaseTest(unittest.TestCase):
"""
rule = ProbablyAlive(['1900'])
res = self.filter_with_rule(rule)
self.assertEqual(len(res), 766)
self.assertEqual(len(res), 733)
def test_RegExpName(self):
"""
+4 -4
View File
@@ -77,14 +77,14 @@ class Span:
self.precision = 2
self.negative = False
if self.valid:
if self.date1.calendar != Date.CAL_GREGORIAN:
self.date1 = self.date1.to_calendar("gregorian")
if self.date2.calendar != Date.CAL_GREGORIAN:
self.date2 = self.date2.to_calendar("gregorian")
if self.date1.sortval < self.date2.sortval:
self.date1 = date2
self.date2 = date1
self.negative = True
if self.date1.calendar != Date.CAL_GREGORIAN:
self.date1 = self.date1.to_calendar("gregorian")
if self.date2.calendar != Date.CAL_GREGORIAN:
self.date2 = self.date2.to_calendar("gregorian")
if self.date1.get_modifier() == Date.MOD_NONE:
if self.date2.get_modifier() == Date.MOD_NONE:
val = self.date1.sortval - self.date2.sortval
+31 -1
View File
@@ -38,7 +38,7 @@ from ...datehandler import get_date_formats, set_format
from ...datehandler import parser as _dp
from ...datehandler import displayer as _dd
from ...datehandler._datedisplay import DateDisplayEn
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear, Span
date_tests = {}
@@ -432,6 +432,36 @@ class ArithmeticDateTest(BaseDateTest):
self.assertEqual(val1, val2,
"'%s' should be '%s' but was '%s'" % (exp1, val2, val1))
#-------------------------------------------------------------------------
#
# SpanTest
#
#-------------------------------------------------------------------------
class SpanTest(BaseDateTest):
"""
Test spans.
"""
tests = [((2000, 1, 31), (2000, 1, 1), 30),
((1799, 11, 19), (8, 2, 18, Date.CAL_FRENCH), 10),
((8, 2, 18, Date.CAL_FRENCH), (1799, 11, 4), 5),
((8, 2, 18, Date.CAL_FRENCH), (3, 2, 9, Date.CAL_FRENCH), 1836)]
def test_evaluate(self):
for value1, value2, duration in self.tests:
date1 = self._get_date(value1)
date2 = self._get_date(value2)
span1 = Span(date1, date2)
self.assertEqual(int(span1), duration)
span2 = Span(date2, date1)
self.assertEqual(int(span2), -duration)
def _get_date(self, value):
date = Date()
if len(value) == 4:
date.set_calendar(value[3])
date.set_yr_mon_day(value[0], value[1], value[2])
return date
#-------------------------------------------------------------------------
#
# SwedishDateTest
+1 -2
View File
@@ -460,8 +460,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
if os.path.isfile(path):
if win():
path = path.replace('\\', '/')
self.write(level+1, 'image = {{%s}%s},\n' %
os.path.splitext(path))
self.write(level+1, 'image = {%s},\n' % path)
break # first image only
self.write(level, '}\n')
+1 -1
View File
@@ -346,7 +346,7 @@ class ReferencedBySelectionProxyDb(ProxyDbBase):
for tag in note.text.get_tags():
if tag.name == 'Link':
if tag.value.startswith("gramps://"):
obj_class, prop, value = tag.value[9:].split("/")
obj_class, prop, value = tag.value[9:].split("/", 2)
if obj_class == "Media": # bug6493
obj_class = "Media"
if prop == "handle":
+1 -1
View File
@@ -117,7 +117,7 @@ _LOCALE_NAMES = {
_RTL_LOCALES = ('ar', 'he')
# locales with less than 70% currently translated
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'he', 'sq', 'ta', 'tr')
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'sq', 'ta', 'tr', 'zh_HK', 'zh_TW')
def _check_mswin_locale(locale):
msloc = None
+10 -3
View File
@@ -325,9 +325,16 @@ def show_settings():
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import berkeleydb as bsddb
bsddb_str = bsddb.__version__
bsddb_db_str = str(bsddb.db.version()).replace(', ', '.')\
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import sqlite3
+5 -1
View File
@@ -68,7 +68,11 @@ try:
import bsddb3 as bsddb ## ok, in try/except
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+9 -3
View File
@@ -366,6 +366,7 @@ class EditName(EditSecondary):
5/ local set, not global set --> set (change local)
6/ local set, global set --> set (set to global if possible)
"""
ngm = False # name group mapping setting
closeit = True
surname = self.obj.get_primary_surname().get_surname()
group_as= self.obj.get_group_as()
@@ -388,7 +389,7 @@ class EditName(EditSecondary):
val = q.run()
if val:
#delete the grouping link on database
self.db.set_name_group_mapping(surname, None)
ngm = None # delay setting until dialog closes
self.obj.set_group_as("")
else :
closeit = False
@@ -421,9 +422,9 @@ class EditName(EditSecondary):
val = q.run()
if val:
if group_as == surname :
self.db.set_name_group_mapping(surname, None)
ngm = None # delay setting until dialog closes
else:
self.db.set_name_group_mapping(surname, group_as)
ngm = group_as # delay setting until dialog closes
self.obj.set_group_as("")
else:
if self.global_group_set :
@@ -455,10 +456,15 @@ class EditName(EditSecondary):
pass
if closeit:
db = self.db # close cleanup loses self.db, so save for later
if self.callback:
self.callback(self.obj)
self.callback = None
self.close()
# bug 12328 to avoid gui interaction during view rebuild, delay
# the rebuild until closeing this dialog
if ngm is not False:
db.set_name_group_mapping(surname, ngm)
def _cleanup_on_exit(self):
"""
+30 -4
View File
@@ -186,14 +186,40 @@ class EditPlace(EditPrimary):
self.db.readonly)
def set_latlongitude(self, value):
"""
This method is useful for directly copying the coordinates
of openstreetmap, googlemaps, and perhaps other if they
provide coordinates like it is define in conv_lat_lon
(see gramps/gen/utils/place.py)
To copy the coordinates:
- openstreetmap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select "show address"
4 - On the left side of the map, copy the coordinates of
"Result from internal"
5 - In the latlon field of the edit place window of gramps,
type <CTRL> V
- googlemap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select the coordinates at the top of the popup window.
They are automaticaly copied.
4 - In the latlon field of the edit place window of gramps,
type <CTRL> V
"""
try:
# Bug 12349
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
longitude = parts[0].strip().replace(',', '.')
latitude = parts[1].strip().replace(',', '.')
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
longitude, latitude = value.split(',')
latitude, longitude = value.split(',')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
+4 -4
View File
@@ -180,13 +180,13 @@ class EditPlaceRef(EditReference):
def set_latlongitude(self, value):
try:
# Bug 12349
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
longitude = parts[0].strip().replace(',', '.')
latitude = parts[1].strip().replace(',', '.')
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
longitude, latitude = value.split(',')
latitude, longitude = value.split(',')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
+2 -2
View File
@@ -233,7 +233,7 @@ class ListModel:
new_value = not self.model[path][col]
self.model[path][col] = new_value
if col in self.function:
self.function[col](int(path), new_value)
self.function[col](path, new_value)
def __edited_cb(self, cell, path, new_text, col):
"""
@@ -241,7 +241,7 @@ class ListModel:
"""
self.model[path][col] = new_text
if col in self.function:
self.function[col](int(path), new_text)
self.function[col](path, new_text)
def unselect(self):
"""
+5 -1
View File
@@ -37,7 +37,11 @@ try:
import bsddb3 as bsddb # ok, in try/except
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+16
View File
@@ -549,11 +549,26 @@ def color_graph_box(alive=False, gender=Person.MALE):
# color functions. For hsv and hls values, use import colorsys !
def name_to_hex(value):
"""
Convert a named color to a 6 digit hexadecimal value to rgb.
"""
if value[:1] != "#":
# We have color names like "green", "orange", "yellow",...
# We need to convert them to hex format
Color = Gdk.RGBA()
Color.parse(value)
value = "#%02x%02x%02x" % (int(Color.red * 255),
int(Color.green * 255),
int(Color.blue * 255))
return value
def hex_to_rgb_float(value):
"""
Convert a 6 or 12 digit hexademical value to rgb. Returns tuple of floats
between 0 and 1.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16)/16.0**(lenv//3)
@@ -563,6 +578,7 @@ def hex_to_rgb(value):
"""
Convert a 6 or 12 digit hexadecimal value to rgb. Returns tuple of integers.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16) for i in range(0, lenv, lenv//3))
+16 -4
View File
@@ -291,12 +291,13 @@ class ViewManager(CLIManager):
self.hpane.add2(self.notebook)
toolbar = self.uimanager.get_widget('ToolBar')
toolbar.show_all()
self.statusbar = Statusbar()
self.statusbar.show()
vbox.pack_end(self.statusbar, False, True, 0)
vbox.pack_start(toolbar, False, True, 0)
vbox.pack_end(self.hpane, True, True, 0)
vbox.show_all()
vbox.show()
self.uistate = DisplayState(self.window, self.statusbar,
self.uimanager, self)
@@ -785,7 +786,12 @@ class ViewManager(CLIManager):
self.__create_page(page_def[0], page_def[1])
self.notebook.set_current_page(page_num)
return self.pages[page_num]
try:
return self.pages[page_num]
except IndexError:
# The following is to avoid 'IndexError: list index out of range'
# Should solve bug 12636
return self.pages[0]
def get_category(self, cat_name):
"""
@@ -836,7 +842,8 @@ class ViewManager(CLIManager):
hbox.add(Gtk.Label(label=pdata.name))
hbox.show_all()
page_num = self.notebook.append_page(page.get_display(), hbox)
self.active_page.post_create()
if self.active_page:
self.active_page.post_create()
if not self.file_loaded:
self.uimanager.set_actions_visible(self.actiongroup, False)
self.uimanager.set_actions_visible(self.readonlygroup, False)
@@ -879,7 +886,12 @@ class ViewManager(CLIManager):
"""
self.__disconnect_previous_page()
self.active_page = self.pages[page_num]
# The following is to avoid 'IndexError: list index out of range'
# Bugs: 12304, 12429, 12623, 12695
try:
self.active_page = self.pages[page_num]
except IndexError:
self.active_page = self.pages[0]
self.__connect_active_page(page_num)
self.active_page.set_active()
while Gtk.events_pending():
+1 -1
View File
@@ -165,7 +165,7 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.widget.show_all()
self.widget.set_name('view')
self.vpane.pack1(self.widget, resize=True, shrink=False)
self.vpane.pack2(self.bottombar, resize=False, shrink=True)
self.vpane.pack2(self.bottombar, resize=False, shrink=False)
self.vpane.show()
self._config.register('vpane.slider-position', -1)
self.vpane.set_position(self._config.get('vpane.slider-position'))
@@ -160,6 +160,8 @@ class EventModel(FlatBaseModel):
date_str = get_date(event)
if date_str != "":
retval = escape(date_str)
else:
retval = ""
if not get_date_valid(event):
return INVALID_DATE_FORMAT % retval
else:
-4
View File
@@ -371,10 +371,6 @@ class GrampletBar(Gtk.Notebook):
"""
Add a tab to the notebook for the given gramplet.
"""
width = -1 # Allow tab width to adjust (smaller) to sidebar
height = min(int(self.uistate.screen_height() * 0.20), 400)
gramplet.set_size_request(width, height)
label = self.__create_tab_label(gramplet)
page_num = self.append_page(gramplet, label)
return page_num
+6
View File
@@ -1239,6 +1239,12 @@ class GrampletPane(Gtk.ScrolledWindow):
else:
cnt = 0
for item in base_opts["data"]:
# If we have a "%" in a string,
# escape it by writing "%%"
# to avoid InterpolationSyntaxError
# in python configparser module.
if isinstance(item, str):
item = item.replace("%", "%%")
fp.write("data[%d]=%s\n" % (cnt, item))
cnt += 1
else:
+2 -2
View File
@@ -396,7 +396,7 @@ class StyledTextEditor(Gtk.TextView):
simple_access = SimpleAccess(win_obj.dbstate.db)
url = link_tag.data
if url.startswith("gramps://"):
obj_class, prop, value = url[9:].split("/")
obj_class, prop, value = url[9:].split("/", 2)
display = simple_access.display(obj_class, prop, value) or url
return display + ((_("\nCommand-Click to follow link") if mac() else
_("\nCtrl-Click to follow link"))
@@ -809,7 +809,7 @@ class StyledTextEditor(Gtk.TextView):
win_obj = find_parent_with_attr(self, attr="dbstate")
if win_obj:
# Edit the object:
obj_class, prop, value = url[9:].split("/")
obj_class, prop, value = url[9:].split("/", 2)
from ..editors import EditObject
EditObject(win_obj.dbstate,
win_obj.uistate,
+4 -1
View File
@@ -218,7 +218,10 @@ class BSDDBTxn:
# test code
if __name__ == "__main__":
print("1")
from bsddb3 import db, dbshelve
try:
from bsddb3 import db, dbshelve
except:
from berkeleydb import db, dbshelve
print("2")
x = db.DBEnv()
print("3")
+10 -7
View File
@@ -29,14 +29,17 @@ from pickle import dumps, loads
try:
from bsddb3 import db
except:
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DB_RMW = 0
DB_FIRST = 0
DB_LAST = 0
DB_CURRENT = 0
DB_PREV = 0
DB_NEXT = 0
class db:
DB_RMW = 0
DB_FIRST = 0
DB_LAST = 0
DB_CURRENT = 0
DB_PREV = 0
DB_NEXT = 0
#-------------------------------------------------------------------------
#
+9 -6
View File
@@ -41,12 +41,15 @@ from functools import partial
try:
from bsddb3 import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
import re
import logging
+4 -2
View File
@@ -22,8 +22,10 @@
## specific to bsddb
import os
from bsddb3 import dbshelve, db
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
from gramps.gen.db import META, PERSON_TBL
from gramps.gen.db.dbconst import BDBVERSFN
+4 -2
View File
@@ -23,8 +23,10 @@ import os
import tempfile
import shutil
from bsddb3 import dbshelve, db
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
from ..read import DbBsddbTreeCursor
class Data:
+8 -5
View File
@@ -36,12 +36,15 @@ from collections import deque
try:
from bsddb3 import db
except:
try:
from berkeleydb import db
except:
# FIXME: make this more abstract to deal with other backends
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
class db:
DBRunRecoveryError = 0
DBAccessError = 0
DBPageNotFoundError = 0
DBInvalidArgError = 0
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
+4 -2
View File
@@ -32,8 +32,10 @@ import os
import re
import time
import logging
from bsddb3 import db
try:
from bsddb3 import db
except:
from berkeleydb import db
#-------------------------------------------------------------------------
#
# Gramps modules
+8 -2
View File
@@ -40,8 +40,14 @@ import logging
from sys import maxsize, getfilesystemencoding, version_info
from ast import literal_eval as safe_eval
from bsddb3 import dbshelve, db
from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
try:
from bsddb3 import dbshelve, db
except:
from berkeleydb import db, dbshelve
try:
from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
except:
from berkeleydb.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
DBFLAGS_O = DB_CREATE | DB_AUTO_COMMIT # Default flags for database open
DBFLAGS_R = DB_RDONLY # Flags to open a database read-only
+2 -1
View File
@@ -577,12 +577,13 @@ class DBAPI(DbGeneric):
"WHERE name = ?", [grouping, name])
elif row and grouping is None:
self.dbapi.execute("DELETE FROM name_group WHERE name = ?", [name])
grouping = ''
else:
self.dbapi.execute(
"INSERT INTO name_group (name, grouping) VALUES (?, ?)",
[name, grouping])
self._txn_commit()
if grouping is None:
grouping = ''
self.emit('person-groupname-rebuild', (name, grouping))
def _commit_base(self, obj, obj_key, trans, change_time):
+4 -1
View File
@@ -556,7 +556,10 @@ class HtmlDoc(BaseDoc, TextDoc):
"""
self._empty = 0
size = int(max(w_cm, h_cm) * float(150.0/2.54))
refname = "is%s" % os.path.basename(name)
if crop:
refname = "is-%d-%d-%d-%d-%s" % (crop[0], crop[1], crop[2], crop[3], os.path.basename(name))
else:
refname = "is%s" % os.path.basename(name)
imdir = self._backend.datadirfull()
+2 -1
View File
@@ -267,7 +267,8 @@ class Calendar(Report):
day_col * cell_width + cell_width/2,
header + week_row * cell_height)
list_ = self.calendar.get(month, {}).get(thisday.day, [])
list_.sort() # to get CAL-Holiday on bottom
# sort the list to get CAL-Holiday on bottom
list_.sort(key=lambda x: (x[0], x[1]))
position = spacing
for (format, p, m_list) in list_:
for line in reversed(p.split("\n")):
+4 -3
View File
@@ -160,10 +160,9 @@ def breakup(txt, limit):
data = []
while len(txt) > limit:
# look for non-space pair to break between
# do not break within a UTF-8 byte sequence, i. e. first char >127
# fix issue #0012709 by removing Python2 code obsoleted by Python3
idx = limit
while (idx > 0 and (txt[idx - 1].isspace() or txt[idx].isspace() or
ord(txt[idx - 1]) > 127)):
while (idx > 0 and (txt[idx - 1].isspace() or txt[idx].isspace())):
idx -= 1
if idx == 0:
#no words to break on, just break at limit anyway
@@ -1344,6 +1343,8 @@ class GedcomWriter(UpdateCallback):
"""
citation = self.dbase.get_citation_from_handle(citation_handle)
if citation is None: # removed by proxy
return
src_handle = citation.get_reference_handle()
if src_handle is None:
+7 -4
View File
@@ -184,10 +184,13 @@ class Leak(Gramplet):
try:
from bsddb3.db import DBError
except:
class DBError(Exception):
"""
Dummy.
"""
try:
from berkeleydb.db import DBError
except:
class DBError(Exception):
"""
Dummy.
"""
self.parent = self.top.get_toplevel()
progress = ProgressMeter(
_('Updating display...'), '', parent=self.parent, can_cancel=True)
+1 -1
View File
@@ -300,7 +300,7 @@ class HtmlBackend(DocBackend):
"""
if value.startswith("gramps://"):
if self.build_link:
obj_class, prop, handle = value[9:].split("/", 3)
obj_class, prop, handle = value[9:].split("/", 2)
if prop in ["handle", "gramps_id"]:
value = self.build_link(prop, handle, obj_class)
if not value:
+10 -7
View File
@@ -314,13 +314,16 @@ def find_records(db, filter, top_size, callname,
if mother is None:
continue
name = StyledText(trans_text("%(father)s and %(mother)s")) % {
'father': _get_styled_primary_name(father, callname,
trans_text=trans_text,
name_format=name_format),
'mother': _get_styled_primary_name(mother, callname,
trans_text=trans_text,
name_format=name_format)}
father_name = _get_styled_primary_name(father, callname,
trans_text=trans_text,
name_format=name_format)
mother_name = _get_styled_primary_name(mother, callname,
trans_text=trans_text,
name_format=name_format)
name = StyledText(trans_text("%(father)s and %(mother)s"))
name = name.replace('%(father)s', father_name)
name = name.replace('%(mother)s', mother_name)
if (living_mode == LivingProxyDb.MODE_INCLUDE_ALL
or (not probably_alive(unfil_father, db) and
+5 -1
View File
@@ -346,7 +346,7 @@ class PlaceFormat(GenericFormat):
return None
def _default_format(self, place):
return _pd.display(self.database, place)
return _pd.display(self.database, place, place.event_date)
def parse_format(self, database, place):
""" Parse the place """
@@ -432,6 +432,8 @@ class EventFormat(GenericFormat):
""" start formatting a place in this event """
place_format = PlaceFormat(self.database, self.string_in)
place = place_format.get_place(self.database, event)
if event and place:
place.event_date = event.get_date_object()
return place_format.parse_format(self.database, place)
def format_attrib():
@@ -889,6 +891,8 @@ class VariableParse:
return the result """
place_f = PlaceFormat(self.database, self._in)
place = place_f.get_place(self.database, event)
if event and place:
place.event_date = event.get_date_object()
if self.empty_item(place):
return
return place_f.parse_format(self.database, place)
+2 -4
View File
@@ -193,11 +193,12 @@ class GeoGraphyView(OsmGps, NavigationView):
"""
self.build_tree()
def add_bookmark(self, menu):
def add_bookmark(self, menu, handle):
"""
Add the place to the bookmark
"""
dummy_menu = menu
dummy_hdle = handle
mlist = self.selected_handles()
if mlist:
self.bookmarks.add(mlist[0])
@@ -289,9 +290,6 @@ class GeoGraphyView(OsmGps, NavigationView):
if self.active:
self.bookmarks.redraw()
self.build_tree()
if self.osm:
self.osm.grab_focus()
self.set_crosshair(config.get("geography.show_cross"))
def can_configure(self):
"""
+4 -7
View File
@@ -182,14 +182,11 @@ class OsmGps:
self.osm = DummyMapNoGpsPoint()
else:
if http_proxy:
self.osm = osmgpsmap.Map(tile_cache=tiles_path,
proxy_uri=http_proxy,
map_source=constants.MAP_TYPE[
map_type])
self.osm = osmgpsmap.Map(proxy_uri=http_proxy)
else:
self.osm = osmgpsmap.Map(tile_cache=tiles_path,
map_source=constants.MAP_TYPE[
map_type])
self.osm = osmgpsmap.Map()
self.osm.set_property("tile_cache", tiles_path)
self.osm.set_property("map_source", constants.MAP_TYPE[map_type])
self.osm.props.tile_cache = osmgpsmap.MAP_CACHE_AUTO
current_map = osmgpsmap.MapOsd(show_dpad=False, show_zoom=True)
self.end_selection = None
@@ -132,7 +132,7 @@ class DbTestClassBase(object):
self._log_sig("note-delete", args)
def _log_sig(self, sig, args):
print("('%s', %s)," % (sig, args))
# print("('%s', %s)," % (sig, args))
self.sigs.append((sig, args[0]))
def _cm_pers_add(self, *args):
+5 -3
View File
@@ -60,6 +60,7 @@ _ = glocale.translation.sgettext
from gramps.gui.glade import Glade
from gramps.gui.editors import FilterEditor
from gramps.gen.constfunc import get_curr_dir
from gramps.gen.display.place import displayer as _pd
#-------------------------------------------------------------------------
#
@@ -332,7 +333,7 @@ class EventComparisonResults(ManagedWindow):
if ename in the_map and len(the_map[ename]) > 0:
event_handle = the_map[ename][0]
del the_map[ename][0]
date = place = ""
date = p_title = ""
if event_handle:
event = self.db.get_event_from_handle(event_handle)
@@ -343,8 +344,9 @@ class EventComparisonResults(ManagedWindow):
place_handle = event.get_place_handle()
if place_handle:
place = self.db.get_place_from_handle(
place_handle).get_title()
tlist += [date, sortdate, place]
place_handle)
p_title = _pd.display(self.dbstate.db, place)
tlist += [date, sortdate, p_title]
added = True
else:
tlist += [""]*3
+10
View File
@@ -348,6 +348,16 @@ class FamilyView(ListView):
_("A bookmark could not be set because "
"no one was selected."), parent=self.uistate.window)
def get_handle_from_gramps_id(self, gid):
"""
Return the handle of the family having the given Gramps ID.
"""
obj = self.dbstate.db.get_family_from_gramps_id(gid)
if obj:
return obj.get_handle()
else:
return None
def add(self, *obj):
family = Family()
try:
+8
View File
@@ -246,6 +246,14 @@ class GeoClose(GeoGraphyView):
self.add_item = None
self.newmenu = None
self.config_meeting_slider = None
self.dbstate.connect('database-changed', self.reset_change_db)
def reset_change_db(self, dummy_dbase):
"""
Used to reset the family reference
"""
self.refperson = None
def get_title(self):
"""
+7
View File
@@ -243,6 +243,13 @@ class GeoFamClose(GeoGraphyView):
self.cal = config.get('preferences.calendar-format-report')
self.no_show_places_in_status_bar = False
self.config_meeting_slider = None
self.dbstate.connect('database-changed', self.reset_change_db)
def reset_change_db(self, dummy_dbase):
"""
Used to reset the family reference
"""
self.reffamily = None
def get_title(self):
"""
+10 -2
View File
@@ -2873,9 +2873,17 @@ class BasePage: # pylint: disable=C1001
if self.reference_sort:
role = ""
elif role[1:2] == ':':
# format of role is role_type:ISO date string
if role.count(':') > 1:
print("Invalid date :", role[2:], " for individual with ID:", gid,
". Please, use the 'verify the data' tool to correct this.")
cal, role = role.split(':', 1)
else:
cal, role = role.split(':')
# cal is the original calendar
cal, role = role.split(':')
# conver ISO date to Date for translation.
# convert ISO date to Date for translation.
# all modifiers are in english, so convert them
# to the local language
if len(role.split(' - ')) > 1:
+7 -1
View File
@@ -472,7 +472,13 @@ class MediaPages(BasePage):
if orig_image_path != newpath:
url = self.report.build_url_fname(
newpath, None, self.uplink)
s_width = 'width: %dpx;' % max_width
regions = self.media_ref_rect_regions(media_handle)
if regions:
s_width = 'width: %dpx;' % max_width
elif width < max_width:
s_width = 'width: %dpx;' % width
else:
s_width = 'width: %dpx;' % max_width
mediadisplay += Html("a", href=url) + (
Html("img", src=url,
style=s_width,
+1 -1
View File
@@ -1307,7 +1307,7 @@ class WebCalReport(Report):
age_at_death = age_at_death.format(dlocale=self.rlocale)
# determine birthday information???
if (self.birthday and birth_date is not Date()
if (self.birthday and birth_date != Date()
and birth_date.is_valid()):
birth_date = gregorian(birth_date)
+1 -1
View File
@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
VERSION_TUPLE = (5, 1, 4)
VERSION_TUPLE = (5, 1, 7)
VERSION_QUALIFIER = ""
VERSION = '.'.join(map(str,VERSION_TUPLE)) + VERSION_QUALIFIER
major_version = "%s.%s" % (VERSION_TUPLE[0], VERSION_TUPLE[1])
+5 -5
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>Gramps-5.1.3-1, (C) 1997-2020 The Gramps Team http://www.gramps-project.org</string>
<string>Gramps-5.1.6-1, (C) 1997-2023 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
@@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>Gramps-5.1.3-1</string>
<string>Gramps-5.1.6-1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>Gramps-5.1.3-1</string>
<string>Gramps-5.1.6-1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2020 The Gramps Team, GNU General Public License.</string>
<string>Copyright 1997 - 2023 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>
<string>10.9</string>
<string>10.13</string>
<key>GtkOSXLaunchScriptFile</key>
<string>gramps_launcher.py</string>
<key>NSHighResolutionCapable</key>
+18 -8
View File
@@ -12,8 +12,9 @@
</meta>
<plist>${project}/Info.plist</plist>
<entitlements>${project}/release.entitlements.plist</entitlements>
<!-- Build gramps-launcher with:
gcc -L$PREFIX/lib `python-config -\-cflags -\-ldflags -\-embed` \
gcc -L$PREFIX/lib `python3-config -\-cflags -\-ldflags -\-embed` \
-o $PREFIX/bin/gramps-launcher \
path/to/gtk-mac-bundler/examples/python-launcher.c
with the obvious substitution.
@@ -41,7 +42,7 @@
</binary>
<binary recurse="True">
${prefix}/lib/python3.9/*.so
${prefix}/lib/python3.11/*.so
</binary>
<binary>
@@ -77,7 +78,7 @@
</binary>
<binary>
${prefix}/lib/libtiff.5.dylib
${prefix}/lib/libtiff.6.dylib
</binary>
<binary dest="${bundle}/Contents/MacOS/">
@@ -96,6 +97,10 @@
${prefix}/lib/libgeocode-glib.dylib
</binary>
<binary>
${prefix}/lib/gio/modules/libgiognutls.so
</binary>
<gir>
${prefix}/share/gir-1.0/*.gir
</gir>
@@ -137,6 +142,10 @@
${project}/gramps_launcher.py
</data>
<data>
${prefix}/etc/fonts
</data>
<data>
${prefix}/share/glib-2.0/schemas
</data>
@@ -144,19 +153,19 @@
<!-- We have to pull in the python modules, which are mixed python
and loadable modules. -->
<data recurse="True">
${prefix}/lib/python3.9/*.py
${prefix}/lib/python3.11/*.py
</data>
<data>
${prefix}/lib/python3.9/config-3.9-darwin/
${prefix}/lib/python3.11/config-3.11-darwin/
</data>
<data>
${prefix}/lib/python3.9/site-packages/gramps/gen/utils/resource-path
${prefix}/lib/python3.11/site-packages/gramps/gen/utils/resource-path
</data>
<data>
${prefix}/include/python3.9/pyconfig.h
${prefix}/include/python3.11/pyconfig.h
</data>
@@ -173,7 +182,7 @@
</data>
<data recurse="True">
${prefix}/lib/python3.9/site-packages/gramps/*.glade
${prefix}/lib/python3.11/site-packages/gramps/*.glade
</data>
<data>
@@ -205,6 +214,7 @@
<data>
${prefix}/share/icons
</data>
<!-- Copy icons. Note that the .icns file is an Apple format which
contains up to 4 sizes of icon. You can use
/Developer/Applications/Utilities/Icon Composer.app to import
+48 -30
View File
@@ -13,7 +13,7 @@
href="http://download.oracle.com/"/>
<repository type="tarball" name="pymodules"
href="https://pypi.python.org/packages/"/>
<repository type="git" name="github" href="git://github.com/"/>
<repository type="git" name="github" href="https://github.com/"/>
<repository type="tarball" name="github-tarball" href="https://github.com/"/>
<repository type="tarball" name="exiv2.org"
href="http://www.exiv2.org/releases/"/>
@@ -42,8 +42,8 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
-->
<include href="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules"/>
<!--include href="/Users/john/Development/GTK-OSX/gtk-osx-build/modulesets-stable/gtk-osx.modules"/-->
<!--include href="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules"/-->
<include href="/Users/john/Development/GTK-OSX/gtk-osx-build/modulesets-stable/gtk-osx.modules"/>
<distutils id="gramps-git" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps.git" repo="github"
@@ -55,9 +55,10 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</distutils>
<distutils id="gramps" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps/archive/v5.1.3.tar.gz"
repo="github-tarball" version="5.1.3"
checkoutdir="gramps-gramps-5.1.3"/>
<branch module="gramps-project/gramps/archive/v5.1.6.tar.gz"
repo="github-tarball" version="5.1.6"
checkoutdir="gramps-gramps-5.1.6">
</branch>
<dependencies>
<dep package="meta-gramps-modules"/>
</dependencies>
@@ -72,18 +73,18 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</distutils>
<meson id="json-glib" mesonargs="-Dgtk_doc=disabled -Dman=false -Dtests=false">
<branch module="json-glib/1.6/json-glib-1.6.2.tar.xz"
version="1.6.2" repo="ftp.gnome.org"
hash="sha256:a33d66c6d038bda46b910c6c6d59c4e15db014e363dc997a0414c2e07d134f24"/>
<branch module="json-glib/1.6/json-glib-1.6.6.tar.xz"
version="1.6.6" repo="ftp.gnome.org"
hash="sha256:96ec98be7a91f6dde33636720e3da2ff6ecbb90e76ccaa49497f31a6855a490e"/>
<dependencies>
<dep package="gobject-introspection"/>
</dependencies>
</meson>
<meson id="geocode-glib" mesonargs="-Denable-gtk-doc=false">
<branch module="geocode-glib/3.26/geocode-glib-3.26.2.tar.xz"
version="3.26.2" repo="ftp.gnome.org"
hash="sha256:01fe84cfa0be50c6e401147a2bc5e2f1574326e2293b55c69879be3e82030fd1"/>
<branch module="geocode-glib/3.26/geocode-glib-3.26.4.tar.xz"
version="3.26.4" repo="ftp.gnome.org"
hash="sha256:2d9a6826d158470449a173871221596da0f83ebdcff98b90c7049089056a37aa"/>
<dependencies>
<dep package="json-glib"/>
<dep package="libsoup"/>
@@ -100,26 +101,32 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</dependencies>
</autotools>
<cmake id="exiv2" cmakeargs="-DEXIV2_ENABLE_PNG=ON">
<branch module="exiv2-0.27.3-Source.tar.gz" repo="exiv2.org"
checkoutdir="exiv2-0.27.3-Source" version="0.27.3"
hash="sha256:a79f5613812aa21755d578a297874fb59a85101e793edc64ec2c6bd994e3e778"/>
<!-- Exiv v0.28 requires std::filesystem, not available on macOS until v10.15. -->
<cmake id="exiv2"
cmakeargs="-DEXIV2_ENABLE_PNG=ON -DCMAKE_CXX_STANDARD=14">
<branch module="Exiv2/exiv2/releases/download/v0.27.4/exiv2-0.27.4-Source.tar.gz" repo="github-tarball"
checkoutdir="exiv2-0.27.4-Source" version="0.27.4"
>
<!-- patch file="exiv-2.27-autoptr.patch"
strip="1"/ -->
</branch>
</cmake>
<meson id="gexiv2" mesonargs="-Dvapi=false">
<branch module="gexiv2/0.12/gexiv2-0.12.2.tar.xz"
repo="ftp.gnome.org" version="0.12.2"
hash="sha256:2322b552aca330eef79724a699c51a302345d5e074738578b398b7f2ff97944c">
<branch module="gexiv2/0.14/gexiv2-0.14.0.tar.xz"
repo="ftp.gnome.org" version="0.14.0"
hash="sha256:e58279a6ff20b6f64fa499615da5e9b57cf65ba7850b72fafdf17221a9d6d69e">
</branch>
<dependencies>
<dep package="exiv2"/>
<dep package="pygobject3"/>
</dependencies>
</meson>
https://files.pythonhosted.org/packages/
<distutils id="pillow">
<branch module="21/23/af6bac2a601be6670064a817273d4190b79df6f74d8012926a39bc7aa77f/Pillow-8.2.0.tar.gz" version="8.2.0"
<branch module="00/d5/4903f310765e0ff2b8e91ffe55031ac6af77d982f0156061e20a4d1a8b2d/Pillow-9.5.0.tar.gz"
version="9.5.0"
repo="pymodules"
hash="sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1">
hash="sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1">
</branch>
<dependencies>
<!--dep package="setuptools"/-->
@@ -127,9 +134,9 @@ https://files.pythonhosted.org/packages/
</distutils>
<distutils id='pyicu'>
<branch version='2.7.2' repo='pymodules'
module='17/0f/9d6b7eb01650960239a5d4dc21cd6e7a96921807c043d287bae4b2f440e1/PyICU-2.7.2.tar.gz'
hash="sha256:1382869b22d91cc99274f9b525fa7d9199b44d9007ff0036a09747839a01e9dc"/>
<branch version='2.11' repo='pymodules'
module="03/1b/800fce0236be0b8a99b3ccbb797786dd178028960b3fd65544e2d8bad5ac/PyICU-2.11.tar.gz"
hash="sha256:3ab531264cfe9132b3d2ac5d708da9a4649d25f6e6813730ac88cf040a08a844"/>
<dependencies>
<dep package='icu'/>
@@ -145,7 +152,8 @@ https://files.pythonhosted.org/packages/
<branch module="berkeley-db/db-4.8.30.NC.tar.gz" version="4.8.30"
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef" >
<patch file="https://raw.githubusercontent.com/gramps-project/gramps/master/mac/patches/berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-mutex.patch" strip='1'/>
</branch>
</autotools>
@@ -161,7 +169,8 @@ https://files.pythonhosted.org/packages/
<branch module="berkeley-db/db-4.8.30.NC.tar.gz" version="4.8.30"
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef">
<patch file="https://raw.githubusercontent.com/gramps-project/gramps/maintenance/gramps51/mac/patches/berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
<patch file="berkeleydb-4.8-mutex.patch" strip='1'/>
</branch>
</autotools>
@@ -179,12 +188,22 @@ https://files.pythonhosted.org/packages/
</after>
</distutils>
<distutils id='pyfontconfig'>
<branch repo='pymodules' version="0.5.1"
module="e6/01/a28b0160f82ca5e946e315251c797f07c74e5c5a53f2a9e706eebc680191/Python-fontconfig-0.5.1.tar.gz"
hash="sha256:b7cfe366242f83b8cd7175b7d4dd95d19f42d619c58a51914f72b1e741739994">
<patch file="pyfontconfig-curexc.patch" strip="1"/>
</branch>
<dependencies>
<dep package="python3"/>
<dep package="fontconfig"/>
</dependencies>
</distutils>
<metamodule id="meta-gramps-modules">
<dependencies>
<dep package="python3"/>
<dep package="meta-gtk-osx-gtk3"/>
<dep package="meta-gtk-osx-gtk3-core-themes"/>
<dep package="goocanvas2"/>
<dep package="librsvg"/>
<dep package="shared-mime-info"/>
@@ -194,12 +213,11 @@ https://files.pythonhosted.org/packages/
<dep package="osmgpsmap"/>
<dep package="graphviz"/>
<dep package="gexiv2"/>
<dep package="berkeleydb"/>
<dep package="pybsddb"/>
<dep package="gtk-mac-integration-python"/>
<dep package="pycairo"/>
<dep package="pygobject3"/>
<dep package='pyicu'/>
<dep package='pybsddb'/>
<dep package="pillow"/>
</dependencies>
</metamodule>
+1
View File
@@ -24,6 +24,7 @@ environ['GTK_PATH'] = bundle_res
environ['PANGO_RC_FILE'] = join(bundle_etc, 'pango', 'pangorc')
environ['PANGO_SYSCONFDIR'] = bundle_etc
environ['PANGO_LIBDIR'] = bundle_lib
environ['GIO_MODULE_DIR'] = join(bundle_lib, 'gio', 'modules')
environ['GDK_PIXBUF_MODULE_FILE'] = join(bundle_lib, 'gdk-pixbuf-2.0',
'2.10.0', 'loaders.cache')
environ['GI_TYPELIB_PATH'] = join(bundle_lib, 'girepository-1.0')
+115
View File
@@ -0,0 +1,115 @@
--- a/dist/configure 2022-12-26 13:46:24.000000000 -0800
+++ b/dist/configure 2022-12-27 11:35:26.000000000 -0800
@@ -18756,6 +18756,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18792,7 +18793,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18828,6 +18830,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18864,7 +18867,7 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18899,6 +18902,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -18933,7 +18937,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -18967,6 +18972,7 @@
/* end confdefs.h. */
#include <pthread.h>
+#include <stdlib.h>
int
main ()
{
@@ -19001,7 +19007,8 @@
/* end confdefs.h. */
#include <pthread.h>
-main() {
+#include <stdlib.h>
+int main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
@@ -19038,6 +19045,7 @@
/* end confdefs.h. */
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -19069,6 +19077,7 @@
#include <thread.h>
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -19099,6 +19108,7 @@
#include <thread.h>
#include <synch.h>
+#include <stdlib.h>
int
main ()
{
@@ -20743,7 +20753,7 @@
/* end confdefs.h. */
#include <sys/time.h>
-main() {
+int main() {
struct timespec t;
return (clock_gettime(CLOCK_MONOTONIC, &t) != 0);
}
@@ -21634,7 +21644,7 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- main() {
+ int main() {
$db_cv_seq_type l;
unsigned $db_cv_seq_type u;
char buf[100];
+273
View File
@@ -0,0 +1,273 @@
From 9ea0164f1f84f92deea7a0bde0343e2f0e485525 Mon Sep 17 00:00:00 2001
From: John Ralls <jralls@ceridwen.us>
Date: Tue, 27 Dec 2022 12:50:14 -0800
Subject: [PATCH] Try to import berkeleydb if bsddb3 isn't found.
berkelydb is usable for python >= 3.6 and required for
python >= 3.10. See https://www.jcea.es/programacion/pybsddb.htm.
---
gramps/grampsapp.py | 13 ++++++++++---
gramps/gui/aboutdialog.py | 6 +++++-
gramps/gui/logger/_errorreportassistant.py | 6 +++++-
gramps/plugins/db/bsddb/bsddbtxn.py | 5 ++++-
gramps/plugins/db/bsddb/cursor.py | 17 ++++++++++-------
gramps/plugins/db/bsddb/read.py | 15 +++++++++------
gramps/plugins/db/bsddb/summary.py | 6 ++++--
gramps/plugins/db/bsddb/test/cursor_test.py | 6 ++++--
gramps/plugins/db/bsddb/undoredo.py | 13 ++++++++-----
gramps/plugins/db/bsddb/upgrade.py | 6 ++++--
gramps/plugins/db/bsddb/write.py | 10 ++++++++--
gramps/plugins/gramplet/leak.py | 11 +++++++----
12 files changed, 78 insertions(+), 36 deletions(-)
diff --git a/gramps/grampsapp.py b/gramps/grampsapp.py
index 2163edc8a..fed06207d 100644
--- a/gramps/grampsapp.py
+++ b/gramps/grampsapp.py
@@ -325,9 +325,16 @@ def show_settings():
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
- bsddb_str = 'not found'
- bsddb_db_str = 'not found'
- bsddb_location_str = 'not found'
+ try:
+ import berkeleydb as bsddb
+ bsddb_str = bsddb.__version__
+ bsddb_db_str = str(bsddb.db.version()).replace(', ', '.')\
+ .replace('(', '').replace(')', '')
+ bsddb_location_str = bsddb.__file__
+ except:
+ bsddb_str = 'not found'
+ bsddb_db_str = 'not found'
+ bsddb_location_str = 'not found'
try:
import sqlite3
diff --git a/gramps/gui/aboutdialog.py b/gramps/gui/aboutdialog.py
index f2b28a036..2afb77816 100644
--- a/gramps/gui/aboutdialog.py
+++ b/gramps/gui/aboutdialog.py
@@ -68,7 +68,11 @@ try:
import bsddb3 as bsddb ## ok, in try/except
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
- BSDDB_STR = 'not found'
+ try:
+ import berkeleydb as bsddb
+ BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
+ except:
+ BSDDB_STR = 'not found'
try:
import sqlite3
diff --git a/gramps/gui/logger/_errorreportassistant.py b/gramps/gui/logger/_errorreportassistant.py
index af9979693..1924701e2 100644
--- a/gramps/gui/logger/_errorreportassistant.py
+++ b/gramps/gui/logger/_errorreportassistant.py
@@ -37,7 +37,11 @@ try:
import bsddb3 as bsddb # ok, in try/except
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
- BSDDB_STR = 'not found'
+ try:
+ import berkeleydb as bsddb
+ BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
+ except:
+ BSDDB_STR = 'not found'
try:
import sqlite3
diff --git a/gramps/plugins/db/bsddb/bsddbtxn.py b/gramps/plugins/db/bsddb/bsddbtxn.py
index 7af99494e..0f3fe0de4 100644
--- a/gramps/plugins/db/bsddb/bsddbtxn.py
+++ b/gramps/plugins/db/bsddb/bsddbtxn.py
@@ -218,7 +218,10 @@ class BSDDBTxn:
# test code
if __name__ == "__main__":
print("1")
- from bsddb3 import db, dbshelve
+ try:
+ from bsddb3 import db, dbshelve
+ except:
+ from berkeleydb import db, dbshelve
print("2")
x = db.DBEnv()
print("3")
diff --git a/gramps/plugins/db/bsddb/cursor.py b/gramps/plugins/db/bsddb/cursor.py
index 1eecffc03..4ddd9a64c 100644
--- a/gramps/plugins/db/bsddb/cursor.py
+++ b/gramps/plugins/db/bsddb/cursor.py
@@ -29,14 +29,17 @@ from pickle import dumps, loads
try:
from bsddb3 import db
except:
+ try:
+ from berkeleydb import db
+ except:
# FIXME: make this more abstract to deal with other backends
- class db:
- DB_RMW = 0
- DB_FIRST = 0
- DB_LAST = 0
- DB_CURRENT = 0
- DB_PREV = 0
- DB_NEXT = 0
+ class db:
+ DB_RMW = 0
+ DB_FIRST = 0
+ DB_LAST = 0
+ DB_CURRENT = 0
+ DB_PREV = 0
+ DB_NEXT = 0
#-------------------------------------------------------------------------
#
diff --git a/gramps/plugins/db/bsddb/read.py b/gramps/plugins/db/bsddb/read.py
index 57906b795..6b0b6a7a8 100644
--- a/gramps/plugins/db/bsddb/read.py
+++ b/gramps/plugins/db/bsddb/read.py
@@ -41,12 +41,15 @@ from functools import partial
try:
from bsddb3 import db
except:
- # FIXME: make this more abstract to deal with other backends
- class db:
- DBRunRecoveryError = 0
- DBAccessError = 0
- DBPageNotFoundError = 0
- DBInvalidArgError = 0
+ try:
+ from berkeleydb import db
+ except:
+ # FIXME: make this more abstract to deal with other backends
+ class db:
+ DBRunRecoveryError = 0
+ DBAccessError = 0
+ DBPageNotFoundError = 0
+ DBInvalidArgError = 0
import re
import logging
diff --git a/gramps/plugins/db/bsddb/summary.py b/gramps/plugins/db/bsddb/summary.py
index e73908128..a911d666f 100644
--- a/gramps/plugins/db/bsddb/summary.py
+++ b/gramps/plugins/db/bsddb/summary.py
@@ -22,8 +22,10 @@
## specific to bsddb
import os
-from bsddb3 import dbshelve, db
-
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
from gramps.gen.db import META, PERSON_TBL
from gramps.gen.db.dbconst import BDBVERSFN
diff --git a/gramps/plugins/db/bsddb/test/cursor_test.py b/gramps/plugins/db/bsddb/test/cursor_test.py
index e90e16fd4..1411aca43 100644
--- a/gramps/plugins/db/bsddb/test/cursor_test.py
+++ b/gramps/plugins/db/bsddb/test/cursor_test.py
@@ -23,8 +23,10 @@ import os
import tempfile
import shutil
-from bsddb3 import dbshelve, db
-
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
from ..read import DbBsddbTreeCursor
class Data:
diff --git a/gramps/plugins/db/bsddb/undoredo.py b/gramps/plugins/db/bsddb/undoredo.py
index 53ab39a60..729f21eb9 100644
--- a/gramps/plugins/db/bsddb/undoredo.py
+++ b/gramps/plugins/db/bsddb/undoredo.py
@@ -36,12 +36,15 @@ from collections import deque
try:
from bsddb3 import db
except:
+ try:
+ from berkeleydb import db
+ except:
# FIXME: make this more abstract to deal with other backends
- class db:
- DBRunRecoveryError = 0
- DBAccessError = 0
- DBPageNotFoundError = 0
- DBInvalidArgError = 0
+ class db:
+ DBRunRecoveryError = 0
+ DBAccessError = 0
+ DBPageNotFoundError = 0
+ DBInvalidArgError = 0
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
diff --git a/gramps/plugins/db/bsddb/upgrade.py b/gramps/plugins/db/bsddb/upgrade.py
index 48fd189dd..6861fcd5c 100644
--- a/gramps/plugins/db/bsddb/upgrade.py
+++ b/gramps/plugins/db/bsddb/upgrade.py
@@ -32,8 +32,10 @@ import os
import re
import time
import logging
-from bsddb3 import db
-
+try:
+ from bsddb3 import db
+except:
+ from berkeleydb import db
#-------------------------------------------------------------------------
#
# Gramps modules
diff --git a/gramps/plugins/db/bsddb/write.py b/gramps/plugins/db/bsddb/write.py
index f1743fd21..809b77383 100644
--- a/gramps/plugins/db/bsddb/write.py
+++ b/gramps/plugins/db/bsddb/write.py
@@ -40,8 +40,14 @@ import logging
from sys import maxsize, getfilesystemencoding, version_info
from ast import literal_eval as safe_eval
-from bsddb3 import dbshelve, db
-from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
+try:
+ from bsddb3 import dbshelve, db
+except:
+ from berkeleydb import db, dbshelve
+try:
+ from bsddb3.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
+except:
+ from berkeleydb.db import DB_CREATE, DB_AUTO_COMMIT, DB_DUP, DB_DUPSORT, DB_RDONLY
DBFLAGS_O = DB_CREATE | DB_AUTO_COMMIT # Default flags for database open
DBFLAGS_R = DB_RDONLY # Flags to open a database read-only
diff --git a/gramps/plugins/gramplet/leak.py b/gramps/plugins/gramplet/leak.py
index 949531cf7..0c09c0c4e 100644
--- a/gramps/plugins/gramplet/leak.py
+++ b/gramps/plugins/gramplet/leak.py
@@ -184,10 +184,13 @@ class Leak(Gramplet):
try:
from bsddb3.db import DBError
except:
- class DBError(Exception):
- """
- Dummy.
- """
+ try:
+ from berkeleydb.db import DBError
+ except:
+ class DBError(Exception):
+ """
+ Dummy.
+ """
self.parent = self.top.get_toplevel()
progress = ProgressMeter(
_('Updating display...'), '', parent=self.parent, can_cancel=True)
--
2.37.1 (Apple Git-137.1)
+56
View File
@@ -0,0 +1,56 @@
--- a/fontconfig.c 2011-11-02 07:59:41.000000000 -0700
+++ b/fontconfig.c 2021-08-09 18:07:50.000000000 -0700
@@ -4525,12 +4525,12 @@
Py_INCREF(local_type);
Py_INCREF(local_value);
Py_INCREF(local_tb);
- tmp_type = tstate->exc_type;
- tmp_value = tstate->exc_value;
- tmp_tb = tstate->exc_traceback;
- tstate->exc_type = local_type;
- tstate->exc_value = local_value;
- tstate->exc_traceback = local_tb;
+ tmp_type = tstate->curexc_type;
+ tmp_value = tstate->curexc_value;
+ tmp_tb = tstate->curexc_traceback;
+ tstate->curexc_type = local_type;
+ tstate->curexc_value = local_value;
+ tstate->curexc_traceback = local_tb;
/* Make sure tstate is in a consistent state when we XDECREF
these objects (XDECREF may run arbitrary code). */
Py_XDECREF(tmp_type);
@@ -4735,9 +4735,9 @@
static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
PyThreadState *tstate = PyThreadState_GET();
- *type = tstate->exc_type;
- *value = tstate->exc_value;
- *tb = tstate->exc_traceback;
+ *type = tstate->curexc_type;
+ *value = tstate->curexc_value;
+ *tb = tstate->curexc_traceback;
Py_XINCREF(*type);
Py_XINCREF(*value);
Py_XINCREF(*tb);
@@ -4746,12 +4746,12 @@
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
PyObject *tmp_type, *tmp_value, *tmp_tb;
PyThreadState *tstate = PyThreadState_GET();
- tmp_type = tstate->exc_type;
- tmp_value = tstate->exc_value;
- tmp_tb = tstate->exc_traceback;
- tstate->exc_type = type;
- tstate->exc_value = value;
- tstate->exc_traceback = tb;
+ tmp_type = tstate->curexc_type;
+ tmp_value = tstate->curexc_value;
+ tmp_tb = tstate->curexc_traceback;
+ tstate->curexc_type = type;
+ tstate->curexc_value = value;
+ tstate->curexc_traceback = tb;
Py_XDECREF(tmp_type);
Py_XDECREF(tmp_value);
Py_XDECREF(tmp_tb);
Diff finished. Mon Aug 9 18:09:16 2021
+26 -165
View File
@@ -1,187 +1,48 @@
2021-07-09 Tian Shixiong <tiansworld@fedoraproject.org>
2022-01-31 Krystian Safjan <ksafjan@gmail.com>
* po/zh_CN.po: Update and fix Simplified Chinese translation
* po/pl.po: Fixes suggested after review by @stojex
2021-07-16 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-01-07 Krystian Safjan <ksafjan@gmail.com>
* po/de.po: fixed small German translation error for item also fixed
in Weblate GUI for master
* po/pl.po: Update Polish translation - Consistent usage of "Tag": was "Tag" or "Atrybut", note that "Attribute" (atrybut) is something different than tag - "Magazyn" (repository) renamed to "Repozytorium" - other fixes and addons
2021-06-28 Tian Shixiong <tiansworld@fedoraproject.org>
2022-01-29 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Update Simplified Chinese translation
* po/de.po: get German translation with manual in sync (Display name
editor)
2021-07-05 pehlm <par.ekholm@pekholm.org>
2022-01-25 pehlm <github1@m.pekholm.org>
* po/sv.po: One update Swedish translation
* po/sv.po: Minor update of Swedish translation
2021-06-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2022-01-04 Tian Shixiong <tiansworld@fedoraproject.org>
* po/de.po: Fixed different German translations for "What's next"
also fixed in master (Weblate)
* po/zh_CN.po: Minor update to zh_CN translation
2021-06-22 Matti Niemelä <matti.u.niemela@gmail.com>
2021-11-03 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/fi.po: Fix translation in Finnish
* po/de.po: small German translation fixes
2021-06-17 Tian Shixiong <tiansworld@fedoraproject.org>
2021-11-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Correct and improve Simplified Chinese translation.
Correct some terribly wrong and low quality translation, even machine
translation. Improve some existing translation for better user experience
as a software, use more written language.
* po/de.po: Fixed German translation error of "Character set
encoding"
2021-05-31 Tian Shixiong <tiansworld@fedoraproject.org>
2021-10-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Improve and correct Simplified Chinese translation
* po/de.po: Fixed German translation error of "Graph generations"
2021-05-27 Tian Shixiong <tiansworld@fedoraproject.org>
2021-09-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Improve and correct the Simplified Chinese
translation
* po/de.po: Fixed German translation error of "filter person"
2021-05-21 Tian Shixiong <tiansworld@fedoraproject.org>
2021-08-30 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Update and improve Simplified Chinese translation
* po/de.po: fixed error in German translation found during manual
translation also fixed in master
2021-05-17 Tian Shixiong <tiansworld@fedoraproject.org>
2021-08-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/zh_CN.po: Update Simplified Chinese translation
* fixed German translation of 'Descendant families of' already done in
trunk Weblate
2020-09-26 Jan Sparreboom <jan@sparreboom.net>
* po/nl.po: Update Dutch translation
2021-05-07 Tian Shixiong <tiansworld@fedoraproject.org>
* po/zh_CN.po: Correct and Update Simplified Chinese translation
2020-10-13 Tian Shixiong <tiansworld@fedoraproject.org>
* po/zh_CN.po: Update Simplified Chinese translation
2021-05-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Corrected some German translation errors found during
handbook revision
2021-04-28 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: corrected German translation of "confidence"
2021-04-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German corrected translation of 'attribute'
2021-04-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed translation error of "display name editor" into
German
2021-04-24 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: some translation fixes for German
2021-04-24 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Changed immigration too, Swedish
2021-04-24 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Correction of Swedish translation
2021-04-22 Helder Geovane Gomes de Lima <he7d3r@gmail.com>
* po/pt_BR.po: Update Portuguese translation (pt_BR) (#1199)
This pull request is an updated version of the patch I've provided
at <https://gramps-project.org/bugs/view.php?id=10547> in 2018, now
based on branch 5.1
2021-04-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Corrected translation of markup in German translation
2021-04-17 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed translation of tags in German translation
2021-04-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation for type unified
2021-04-13 romjerome <romjerome@yahoo.fr>
* po/fr.po: 11656: typo, spelling correction contribution by Philippe
2021-04-13 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Fixed German translation of number for places
2021-03-21 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Some small fixes in German translation
2021-03-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Update German translation for csv import/export
2021-03-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small fix in German translation
2021-02-12 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: additional small German translation fixes
2021-02-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Small fixes German translation
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fix wrong translation of source text in German
translation
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fixed small error in German translation
2021-01-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small fixes German translation
2020-10-15 vantu5z <vantu5z@mail.ru>
* po/ru.po: Update Russian translation
2020-09-25 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation - typo fixes
2020-09-06 Tian Shixiong <tiansworld@fedoraproject.org>
* po/zh_CN.po: Update Simplified Chinese translation
2020-08-16 Jan Sparreboom <jan@sparreboom.net>
* po/nl.po: Update Dutch translation
2020-04-21 Lajos Nemeséri <nemeseril@gmail.com>
* po/hu.po: Revised and updated hu translation
2020-09-13 Juan Saavedra <jcsaaver@gmail.com>
* po/es.po: Update Spanish translation
2020-08-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation two small corrections
2020-08-21 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2020-08-12 pehlm <par.ekholm@pekholm.org>
* Update Swedish translation
+100 -100
View File
@@ -8,21 +8,21 @@
# Sebastian Vöcking <voeck@web.de>, 2005.
# Martin Hawlisch <martin@hawlisch.de>, 2005, 2006.
# Alex Roitman <shura@gramps-project.org>, 2006.
# Mirko Leonhäuser <mirko@leonhaeuser.de>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021.
# Mirko Leonhäuser <mirko@leonhaeuser.de>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022.
# Alois Pöttker <alois.poettker@gmx.de>, 2017.
msgid ""
msgstr ""
"Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-16 22:22+0200\n"
"PO-Revision-Date: 2021-07-16 22:24+0200\n"
"POT-Creation-Date: 2021-08-11 22:31+0200\n"
"PO-Revision-Date: 2022-01-29 13:19+0100\n"
"Last-Translator: Mirko Leonhäuser <mirko@leonhaeuser.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 20.12.3\n"
"X-Generator: Lokalize 21.08.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/gramps.appdata.xml.in.h:1
@@ -3452,7 +3452,7 @@ msgstr "primär"
#: ../gramps/gen/display/name.py:623 ../gramps/gen/display/name.py:719
msgid "primary[pre]"
msgstr "primär[pri]"
msgstr "primär[Prä]"
#: ../gramps/gen/display/name.py:626 ../gramps/gen/display/name.py:721
msgid "primary[sur]"
@@ -3460,7 +3460,7 @@ msgstr "primär[Nach]"
#: ../gramps/gen/display/name.py:629 ../gramps/gen/display/name.py:723
msgid "primary[con]"
msgstr "primär[übl]"
msgstr "primär[Verb]"
#: ../gramps/gen/display/name.py:631 ../gramps/gen/display/name.py:725
msgid "patronymic"
@@ -3468,7 +3468,7 @@ msgstr "Patronymikon"
#: ../gramps/gen/display/name.py:633 ../gramps/gen/display/name.py:727
msgid "patronymic[pre]"
msgstr "Patronymikon[pri]"
msgstr "Patronymikon[Prä]"
#: ../gramps/gen/display/name.py:635 ../gramps/gen/display/name.py:729
msgid "patronymic[sur]"
@@ -3476,11 +3476,11 @@ msgstr "Patronymikon[Nach]"
#: ../gramps/gen/display/name.py:637 ../gramps/gen/display/name.py:731
msgid "patronymic[con]"
msgstr "Patronymikon[übl]"
msgstr "Patronymikon[Verb]"
#: ../gramps/gen/display/name.py:639 ../gramps/gen/display/name.py:733
msgid "notpatronymic"
msgstr "Kein Patronymikon"
msgstr "Nichtpatronymisch "
#: ../gramps/gen/display/name.py:642 ../gramps/gen/display/name.py:735
msgid "Remaining names|rest"
@@ -3494,7 +3494,7 @@ msgstr "Präfix"
#: ../gramps/gen/display/name.py:648 ../gramps/gen/display/name.py:739
msgid "rawsurnames"
msgstr "unbearbeitete Nachnamen"
msgstr "OriginalNachnamen"
#: ../gramps/gen/display/name.py:650 ../gramps/gen/display/name.py:741
msgid "nickname"
@@ -4716,11 +4716,11 @@ msgstr "Liefert den Familien aus der Lesezeichenliste"
#: ../gramps/gen/filters/rules/family/_isdescendantof.py:45
msgid "Descendant families of <family>"
msgstr "Nachkommenfamilie von <Familie>"
msgstr "Nachkommenfamilien von <Familie>"
#: ../gramps/gen/filters/rules/family/_isdescendantof.py:47
msgid "Matches descendant families of the specified family"
msgstr "Liefert Familien, die Nachkommen der angegebenen Familie sind"
msgstr "Liefert Nachkommenfamilien der angegebenen Familie"
#: ../gramps/gen/filters/rules/family/_matchesfilter.py:44
msgid "Families matching the <filter>"
@@ -4894,7 +4894,7 @@ msgstr "Art:"
#: ../gramps/gen/filters/rules/media/_hasmedia.py:48
#: ../gramps/gui/glade/mergemedia.glade:245
#: ../gramps/gui/glade/mergemedia.glade:261 ../gramps/gui/viewmanager.py:1621
#: ../gramps/gui/glade/mergemedia.glade:261 ../gramps/gui/viewmanager.py:1627
msgid "Path:"
msgstr "Pfad:"
@@ -10048,7 +10048,7 @@ msgstr "Gültige Werte:"
#.
#. -------------------------------------------------------------------------
#: ../gramps/gen/plug/report/_book.py:71 ../gramps/gui/plug/_dialogs.py:59
#: ../gramps/gui/plug/report/_bookdialog.py:86 ../gramps/gui/viewmanager.py:112
#: ../gramps/gui/plug/report/_bookdialog.py:86 ../gramps/gui/viewmanager.py:113
msgid "Unsupported"
msgstr "Nicht unterstützt"
@@ -10240,7 +10240,7 @@ msgstr "Nicht aufnehmen"
#: ../gramps/gen/plug/report/stdoptions.py:324
msgid "Share an existing line"
msgstr "An einem existierenden Linie teilnehmen"
msgstr "Eine bestehende Linie teilen"
#: ../gramps/gen/plug/report/stdoptions.py:325
msgid "On a line of its own"
@@ -10256,7 +10256,7 @@ msgstr "Ob (und wo) Gramps-IDs enthalten sind"
#. #########################
#. ###############################
#: ../gramps/gen/plug/report/stdoptions.py:328
#: ../gramps/gui/viewmanager.py:1680
#: ../gramps/gui/viewmanager.py:1686
#: ../gramps/plugins/graph/gvfamilylines.py:219
#: ../gramps/plugins/graph/gvrelgraph.py:862
#: ../gramps/plugins/textreport/detancestralreport.py:900
@@ -10319,7 +10319,7 @@ msgstr "Nachkommen von %s"
#: ../gramps/gui/plug/export/_exportoptions.py:460
#, python-format
msgid "Descendant Families of %s"
msgstr "Nachkommen von %s und deren Partner"
msgstr "Nachkommenfamilien von %s"
#. feature request 2356: avoid genitive form
#: ../gramps/gen/plug/report/utils.py:309
@@ -10575,86 +10575,86 @@ msgstr ""
"Für diese Sprache '%s' ist keine Übersetzung der Familienbeziehungen "
"verfügbar.Verwende stattdessen Englisch."
#: ../gramps/gen/utils/alive.py:145 ../gramps/plugins/importer/importcsv.py:202
#: ../gramps/gen/utils/alive.py:147 ../gramps/plugins/importer/importcsv.py:202
msgid "death date"
msgstr "Sterbedatum"
#: ../gramps/gen/utils/alive.py:150 ../gramps/plugins/importer/importcsv.py:178
#: ../gramps/gen/utils/alive.py:152 ../gramps/plugins/importer/importcsv.py:178
msgid "birth date"
msgstr "Geburtsdatum"
#: ../gramps/gen/utils/alive.py:183
#: ../gramps/gen/utils/alive.py:185
msgid "sibling birth date"
msgstr "Geschwister Geburtsdatum"
#: ../gramps/gen/utils/alive.py:195
#: ../gramps/gen/utils/alive.py:197
msgid "sibling death date"
msgstr "Geschwister Todesdatum"
#: ../gramps/gen/utils/alive.py:209
#: ../gramps/gen/utils/alive.py:211
msgid "sibling birth-related date"
msgstr "Geschwister geburtsbezogenes Datum"
#: ../gramps/gen/utils/alive.py:220
#: ../gramps/gen/utils/alive.py:222
msgid "sibling death-related date"
msgstr "Geschwister todesbezogenes Datum"
#: ../gramps/gen/utils/alive.py:235 ../gramps/gen/utils/alive.py:246
#: ../gramps/gen/utils/alive.py:237 ../gramps/gen/utils/alive.py:248
msgid "a spouse's birth-related date, "
msgstr "Partner(in) geburtsbezogenes Datum, "
#: ../gramps/gen/utils/alive.py:239 ../gramps/gen/utils/alive.py:250
#: ../gramps/gen/utils/alive.py:241 ../gramps/gen/utils/alive.py:252
msgid "a spouse's death-related date, "
msgstr "Partner(in) todesbezogenes Datum, "
#: ../gramps/gen/utils/alive.py:268
#: ../gramps/gen/utils/alive.py:270
msgid "event with spouse"
msgstr "Ereignisse mit Partner(in)"
#: ../gramps/gen/utils/alive.py:295
#: ../gramps/gen/utils/alive.py:297
msgid "descendant birth date"
msgstr "Nachfahre Geburtsdatum"
#: ../gramps/gen/utils/alive.py:304
#: ../gramps/gen/utils/alive.py:306
msgid "descendant death date"
msgstr "Nachfahre Todesdatum"
#: ../gramps/gen/utils/alive.py:320
#: ../gramps/gen/utils/alive.py:322
msgid "descendant birth-related date"
msgstr "Nachfahre geburtsbezogenes Datum"
#: ../gramps/gen/utils/alive.py:328
#: ../gramps/gen/utils/alive.py:330
msgid "descendant death-related date"
msgstr "Nachfahre todesbezogenes Datum"
#: ../gramps/gen/utils/alive.py:341
#: ../gramps/gen/utils/alive.py:343
#, python-format
msgid "Database error: loop in %s's descendants"
msgstr "Datenbankfehler: Schleife in %s's Nachkommen"
#: ../gramps/gen/utils/alive.py:370 ../gramps/gen/utils/alive.py:416
#: ../gramps/gen/utils/alive.py:372 ../gramps/gen/utils/alive.py:418
msgid "ancestor birth date"
msgstr "Vorfahre Geburtsdatum"
#: ../gramps/gen/utils/alive.py:380 ../gramps/gen/utils/alive.py:426
#: ../gramps/gen/utils/alive.py:382 ../gramps/gen/utils/alive.py:428
msgid "ancestor death date"
msgstr "Vorfahre Sterbedatum"
#: ../gramps/gen/utils/alive.py:391 ../gramps/gen/utils/alive.py:437
#: ../gramps/gen/utils/alive.py:393 ../gramps/gen/utils/alive.py:439
msgid "ancestor birth-related date"
msgstr "Nachfahre geburtsbezogenes Datum"
#: ../gramps/gen/utils/alive.py:399 ../gramps/gen/utils/alive.py:445
#: ../gramps/gen/utils/alive.py:401 ../gramps/gen/utils/alive.py:447
msgid "ancestor death-related date"
msgstr "Nachfahre todesbezogenes Datum"
#: ../gramps/gen/utils/alive.py:460
#: ../gramps/gen/utils/alive.py:462
#, python-format
msgid "Database error: loop in %s's ancestors"
msgstr "Datenbankfehler: Schleife in %s's Vorfahren"
#. no evidence, must consider alive
#: ../gramps/gen/utils/alive.py:507
#: ../gramps/gen/utils/alive.py:509
msgid "no evidence"
msgstr "kein Beleg"
@@ -11464,7 +11464,7 @@ msgstr "Für eine andere Reihenfolge ziehe die Spalte an eine neue Position."
#: ../gramps/gui/columnorder.py:107 ../gramps/gui/configure.py:1835
#: ../gramps/gui/configure.py:1859 ../gramps/gui/configure.py:1885
#: ../gramps/gui/plug/_dialogs.py:130 ../gramps/gui/viewmanager.py:1752
#: ../gramps/gui/plug/_dialogs.py:130 ../gramps/gui/viewmanager.py:1758
#: ../gramps/plugins/lib/maps/geography.py:997
#: ../gramps/plugins/lib/maps/geography.py:1294
msgid "_Apply"
@@ -11512,7 +11512,7 @@ msgstr "Anzeigename-Editor"
#: ../gramps/gui/plug/_windows.py:105 ../gramps/gui/plug/_windows.py:693
#: ../gramps/gui/plug/_windows.py:749
#: ../gramps/gui/plug/quick/_textbufdoc.py:60 ../gramps/gui/undohistory.py:90
#: ../gramps/gui/viewmanager.py:1615 ../gramps/gui/views/bookmarks.py:298
#: ../gramps/gui/viewmanager.py:1621 ../gramps/gui/views/bookmarks.py:298
#: ../gramps/gui/views/tags.py:466 ../gramps/gui/widgets/grampletbar.py:637
#: ../gramps/gui/widgets/grampletpane.py:240
#: ../gramps/plugins/lib/maps/placeselection.py:120
@@ -12375,7 +12375,7 @@ msgstr "Wähle ein Medienverzeichnis"
#: ../gramps/gui/plug/_guioptions.py:1744 ../gramps/gui/plug/_windows.py:440
#: ../gramps/gui/plug/report/_fileentry.py:64
#: ../gramps/gui/plug/report/_reportdialog.py:162 ../gramps/gui/utils.py:180
#: ../gramps/gui/viewmanager.py:1750 ../gramps/gui/views/listview.py:1065
#: ../gramps/gui/viewmanager.py:1756 ../gramps/gui/views/listview.py:1065
#: ../gramps/gui/views/navigationview.py:348 ../gramps/gui/views/tags.py:682
#: ../gramps/gui/widgets/progressdialog.py:437
#: ../gramps/plugins/importer/importprogen.glade:1714
@@ -12391,7 +12391,7 @@ msgstr "_Abbrechen"
msgid "Select database directory"
msgstr "Wähle ein Datenbankverzeichnis."
#: ../gramps/gui/configure.py:1880 ../gramps/gui/viewmanager.py:1747
#: ../gramps/gui/configure.py:1880 ../gramps/gui/viewmanager.py:1753
msgid "Select backup directory"
msgstr "Sicherungsverzeichnis wählen"
@@ -12536,7 +12536,7 @@ msgstr ""
#: ../gramps/gui/glade/dialog.glade:701
#: ../gramps/gui/plug/report/_bookdialog.py:250
#: ../gramps/gui/plug/report/_bookdialog.py:751
#: ../gramps/gui/viewmanager.py:624
#: ../gramps/gui/viewmanager.py:625
msgid "Cancel"
msgstr "Abbrechen"
@@ -12690,7 +12690,7 @@ msgstr "Datumsinformation"
#: ../gramps/gui/glade/styleeditor.glade:1754
#: ../gramps/gui/plug/_guioptions.py:80
#: ../gramps/gui/plug/report/_reportdialog.py:166 ../gramps/gui/utils.py:194
#: ../gramps/gui/viewmanager.py:1617 ../gramps/gui/views/tags.py:683
#: ../gramps/gui/viewmanager.py:1623 ../gramps/gui/views/tags.py:683
#: ../gramps/plugins/tool/check.py:781 ../gramps/plugins/tool/patchnames.py:118
#: ../gramps/plugins/tool/populatesources.py:91
#: ../gramps/plugins/tool/testcasegenerator.py:328
@@ -13509,14 +13509,14 @@ msgstr "Als Standardnamen setzen"
#.
#. -------------------------------------------------------------------------
#: ../gramps/gui/editors/displaytabs/namemodel.py:56
#: ../gramps/gui/plug/_guioptions.py:1258 ../gramps/gui/viewmanager.py:1028
#: ../gramps/gui/plug/_guioptions.py:1258 ../gramps/gui/viewmanager.py:1034
#: ../gramps/gui/views/tags.py:532
#: ../gramps/plugins/quickview/all_relations.py:306
msgid "Yes"
msgstr "Ja"
#: ../gramps/gui/editors/displaytabs/namemodel.py:57
#: ../gramps/gui/plug/_guioptions.py:1257 ../gramps/gui/viewmanager.py:1028
#: ../gramps/gui/plug/_guioptions.py:1257 ../gramps/gui/viewmanager.py:1034
#: ../gramps/gui/views/tags.py:533
#: ../gramps/plugins/quickview/all_relations.py:310
msgid "No"
@@ -13872,7 +13872,7 @@ msgstr "Die Fundstelle kann nicht gespeichert werden. ID existiert bereits."
#: ../gramps/gui/editors/editevent.py:251
#: ../gramps/gui/editors/editmedia.py:300
#: ../gramps/gui/editors/editperson.py:845
#: ../gramps/gui/editors/editplace.py:326
#: ../gramps/gui/editors/editplace.py:331
#: ../gramps/gui/editors/editreference.py:288
#: ../gramps/gui/editors/editrepository.py:189
#: ../gramps/gui/editors/editsource.py:210
@@ -14687,8 +14687,8 @@ msgid "New Place"
msgstr "Neuer Ort"
#. translators: translate the "S" too (and the "or" of course)
#: ../gramps/gui/editors/editplace.py:209
#: ../gramps/gui/editors/editplaceref.py:202
#: ../gramps/gui/editors/editplace.py:214
#: ../gramps/gui/editors/editplaceref.py:207
msgid ""
"Invalid latitude\n"
"(syntax: 18\\u00b09'48.21\"S, -18.2412 or -18:9:48.21)"
@@ -14697,8 +14697,8 @@ msgstr ""
"(Syntax: 18\\u00b09'48.21\"S, -18.2412 oder -18:9:48.21)"
#. translators: translate the "E" too (and the "or" of course)
#: ../gramps/gui/editors/editplace.py:214
#: ../gramps/gui/editors/editplaceref.py:207
#: ../gramps/gui/editors/editplace.py:219
#: ../gramps/gui/editors/editplaceref.py:212
msgid ""
"Invalid longitude\n"
"(syntax: 18\\u00b09'48.21\"E, -18.2412 or -18:9:48.21)"
@@ -14706,38 +14706,38 @@ msgstr ""
"Ungültiger Längengrad\n"
"(Syntax: 18\\u00b09'48.21\"E, -18.2412 oder -18:9:48.21)"
#: ../gramps/gui/editors/editplace.py:225
#: ../gramps/gui/editors/editplace.py:230
#: ../gramps/plugins/lib/maps/geography.py:891
#: ../gramps/plugins/view/geoplaces.py:496
#: ../gramps/plugins/view/geoplaces.py:522
msgid "Edit Place"
msgstr "Ort bearbeiten"
#: ../gramps/gui/editors/editplace.py:315
#: ../gramps/gui/editors/editplaceref.py:310
#: ../gramps/gui/editors/editplace.py:320
#: ../gramps/gui/editors/editplaceref.py:315
msgid "Cannot save place. Name not entered."
msgstr "Kann Ort nicht speichern. Name nicht eingegeben."
#: ../gramps/gui/editors/editplace.py:316
#: ../gramps/gui/editors/editplaceref.py:311
#: ../gramps/gui/editors/editplace.py:321
#: ../gramps/gui/editors/editplaceref.py:316
msgid "You must enter a name before saving."
msgstr "Du musst einen Namen eingeben bevor du speicherst."
#: ../gramps/gui/editors/editplace.py:325
#: ../gramps/gui/editors/editplace.py:330
msgid "Cannot save place. ID already exists."
msgstr "Der Ort kann nicht gespeichert werden. ID besteht bereits."
#: ../gramps/gui/editors/editplace.py:337
#: ../gramps/gui/editors/editplace.py:342
#, python-format
msgid "Add Place (%s)"
msgstr "Ort (%s) hinzufügen"
#: ../gramps/gui/editors/editplace.py:342
#: ../gramps/gui/editors/editplace.py:347
#, python-format
msgid "Edit Place (%s)"
msgstr "Ort (%s) bearbeiten"
#: ../gramps/gui/editors/editplace.py:370
#: ../gramps/gui/editors/editplace.py:375
#, python-format
msgid "Delete Place (%s)"
msgstr "Ort (%s) löschen"
@@ -14776,11 +14776,11 @@ msgstr "Der Ortsname darf nicht leer sein"
msgid "Place Reference Editor"
msgstr "Ortsreferenzeditor"
#: ../gramps/gui/editors/editplaceref.py:317
#: ../gramps/gui/editors/editplaceref.py:322
msgid "Modify Place"
msgstr "Ort ändern"
#: ../gramps/gui/editors/editplaceref.py:322
#: ../gramps/gui/editors/editplaceref.py:327
msgid "Add Place"
msgstr "Ort hinzufügen"
@@ -19560,11 +19560,11 @@ msgstr ""
"\n"
"%s"
#: ../gramps/gui/undohistory.py:84 ../gramps/gui/viewmanager.py:1078
#: ../gramps/gui/undohistory.py:84 ../gramps/gui/viewmanager.py:1084
msgid "_Undo"
msgstr "_Rückgängig"
#: ../gramps/gui/undohistory.py:86 ../gramps/gui/viewmanager.py:1098
#: ../gramps/gui/undohistory.py:86 ../gramps/gui/viewmanager.py:1104
msgid "_Redo"
msgstr "_Wiederherstellen"
@@ -19647,24 +19647,24 @@ msgstr ""
msgid "Cannot open new citation editor"
msgstr "Der neue Fundstelleneditor kann nicht geöffnet werden."
#: ../gramps/gui/viewmanager.py:331 ../gramps/gui/viewmanager.py:1055
#: ../gramps/gui/viewmanager.py:332 ../gramps/gui/viewmanager.py:1061
msgid "No Family Tree"
msgstr "Kein Stammbaum"
#. registering plugins
#: ../gramps/gui/viewmanager.py:557
#: ../gramps/gui/viewmanager.py:558
msgid "Registering plugins..."
msgstr "Zusatzmodule registrieren..."
#: ../gramps/gui/viewmanager.py:565
#: ../gramps/gui/viewmanager.py:566
msgid "Ready"
msgstr "Bereit"
#: ../gramps/gui/viewmanager.py:620
#: ../gramps/gui/viewmanager.py:621
msgid "Abort changes?"
msgstr "Änderungen verwerfen?"
#: ../gramps/gui/viewmanager.py:621
#: ../gramps/gui/viewmanager.py:622
msgid ""
"Aborting changes will return the database to the state it was before you "
"started this editing session."
@@ -19672,15 +19672,15 @@ msgstr ""
"Änderungen verwerfen bringt die Datenbank in den Stand vor Beginn dieser "
"Bearbeitungssitzung zurück."
#: ../gramps/gui/viewmanager.py:623
#: ../gramps/gui/viewmanager.py:624
msgid "Abort changes"
msgstr "Änderungen verwerfen"
#: ../gramps/gui/viewmanager.py:634
#: ../gramps/gui/viewmanager.py:635
msgid "Cannot abandon session's changes"
msgstr "Die Sitzungsänderungen können nicht zurückgenommen werden."
#: ../gramps/gui/viewmanager.py:635
#: ../gramps/gui/viewmanager.py:636
msgid ""
"Changes cannot be completely abandoned because the number of changes made in "
"the session exceeded the limit."
@@ -19688,40 +19688,40 @@ msgstr ""
"Die Änderungen können nicht vollständig zurück genommen werden, da die "
"Anzahl der Änderungen das Limit der Sitzung überschritten hat."
#: ../gramps/gui/viewmanager.py:802
#: ../gramps/gui/viewmanager.py:803
msgid "View failed to load. Check error output."
msgstr "Ansicht konnte nicht geladen werden. Fehlerbericht kontrollieren."
#: ../gramps/gui/viewmanager.py:946
#: ../gramps/gui/viewmanager.py:952
#: ../gramps/plugins/importer/importprogen.py:195
msgid "Import Statistics"
msgstr "Importstatistiken"
#: ../gramps/gui/viewmanager.py:1022
#: ../gramps/gui/viewmanager.py:1028
msgid "Read Only"
msgstr "Nur lesen"
#: ../gramps/gui/viewmanager.py:1026
#: ../gramps/gui/viewmanager.py:1032
msgid "Gramps had a problem the last time it was run."
msgstr "Gramps hatte ein Problem als es das letzte mal gelaufen ist."
#: ../gramps/gui/viewmanager.py:1027
#: ../gramps/gui/viewmanager.py:1033
msgid "Would you like to run the Check and Repair tool?"
msgstr "Möchtest du Werkzeug \"Datenbank prüfen und reparieren\" starten?"
#: ../gramps/gui/viewmanager.py:1147
#: ../gramps/gui/viewmanager.py:1153
msgid "Autobackup..."
msgstr "Automatisches Backup..."
#: ../gramps/gui/viewmanager.py:1152
#: ../gramps/gui/viewmanager.py:1158
msgid "Error saving backup data"
msgstr "Fehler beim Speichern der Sicherungsdaten."
#: ../gramps/gui/viewmanager.py:1439
#: ../gramps/gui/viewmanager.py:1445
msgid "Failed Loading View"
msgstr "Laden der Ansicht fehlgeschlagen"
#: ../gramps/gui/viewmanager.py:1440
#: ../gramps/gui/viewmanager.py:1446
#, python-format
msgid ""
"The view %(name)s did not load and reported an error.\n"
@@ -19746,11 +19746,11 @@ msgstr ""
"Wenn du nicht willst, das Gramps weiter versucht diese Ansicht zu laden, "
"kannst du sie in der Zusatzmodulverwaltung über das Hilfemenü verstecken."
#: ../gramps/gui/viewmanager.py:1532
#: ../gramps/gui/viewmanager.py:1538
msgid "Failed Loading Plugin"
msgstr "Laden des Zusatzmodul fehlgeschlagen"
#: ../gramps/gui/viewmanager.py:1533
#: ../gramps/gui/viewmanager.py:1539
#, python-format
msgid ""
"The plugin %(name)s did not load and reported an error.\n"
@@ -19776,55 +19776,55 @@ msgstr ""
"laden, kannst du es in der Zusatzmodulverwaltung über das Hilfemenü "
"verstecken."
#: ../gramps/gui/viewmanager.py:1613
#: ../gramps/gui/viewmanager.py:1619
msgid "Gramps XML Backup"
msgstr "Gramps XML Sicherung"
#: ../gramps/gui/viewmanager.py:1642
#: ../gramps/gui/viewmanager.py:1648
msgid "File:"
msgstr "Datei:"
#: ../gramps/gui/viewmanager.py:1674
#: ../gramps/gui/viewmanager.py:1680
msgid "Media:"
msgstr "Medien:"
#: ../gramps/gui/viewmanager.py:1681
#: ../gramps/gui/viewmanager.py:1687
#: ../gramps/plugins/gramplet/statsgramplet.py:196
#: ../gramps/plugins/webreport/statistics.py:145
msgid "Megabyte|MB"
msgstr "MB"
#: ../gramps/gui/viewmanager.py:1683
#: ../gramps/gui/viewmanager.py:1689
msgid "Exclude"
msgstr "Ausschließen"
#: ../gramps/gui/viewmanager.py:1703
#: ../gramps/gui/viewmanager.py:1709
msgid "Backup file already exists! Overwrite?"
msgstr "Sicherungsdatei existiert bereits! Überschreiben?"
#: ../gramps/gui/viewmanager.py:1704
#: ../gramps/gui/viewmanager.py:1710
#, python-format
msgid "The file '%s' exists."
msgstr "Die Datei '%s' existiert."
#: ../gramps/gui/viewmanager.py:1705
#: ../gramps/gui/viewmanager.py:1711
msgid "Proceed and overwrite"
msgstr "Fortsetzen und überschreiben"
#: ../gramps/gui/viewmanager.py:1706
#: ../gramps/gui/viewmanager.py:1712
msgid "Cancel the backup"
msgstr "Sicherung abbrechen"
#: ../gramps/gui/viewmanager.py:1721
#: ../gramps/gui/viewmanager.py:1727
msgid "Making backup..."
msgstr "Erstelle Sicherung..."
#: ../gramps/gui/viewmanager.py:1734
#: ../gramps/gui/viewmanager.py:1740
#, python-format
msgid "Backup saved to '%s'"
msgstr "Sicherung gespeichert in '%s'"
#: ../gramps/gui/viewmanager.py:1737
#: ../gramps/gui/viewmanager.py:1743
msgid "Backup aborted"
msgstr "Sicherung abgebrochen"
@@ -22036,7 +22036,7 @@ msgstr "Legt fest, welche Personen im Bericht enthalten sind."
#: ../gramps/plugins/webreport/narrativeweb.py:1649
#: ../gramps/plugins/webreport/webcal.py:1678
msgid "Filter Person"
msgstr "Personenfilter"
msgstr "Person filtern"
#: ../gramps/plugins/drawreport/statisticschart.py:1019
#: ../gramps/plugins/textreport/birthdayreport.py:481
@@ -37506,12 +37506,12 @@ msgstr "Das Copyright, das für die Webdateien verwendet wird."
#: ../gramps/plugins/webreport/narrativeweb.py:1690
#: ../gramps/plugins/webreport/webcal.py:1700
msgid "StyleSheet"
msgstr "Layoutvorlage"
msgstr "Formatvorlage"
#: ../gramps/plugins/webreport/narrativeweb.py:1696
#: ../gramps/plugins/webreport/webcal.py:1703
msgid "The stylesheet to be used for the web pages"
msgstr "Die Layoutvorlage, für die Webseiten verwendet wird."
msgstr "Die Formatvorlage, die für die Webseiten verwendet wird."
#: ../gramps/plugins/webreport/narrativeweb.py:1701
msgid "Horizontal -- Default"
@@ -37625,7 +37625,7 @@ msgstr ""
#: ../gramps/plugins/webreport/narrativeweb.py:1800
msgid "Graph generations"
msgstr "Generationengrafik"
msgstr "Grafik Generationen"
#: ../gramps/plugins/webreport/narrativeweb.py:1801
msgid "The number of generations to include in the ancestor graph"
@@ -37826,7 +37826,7 @@ msgstr "Erweiterte Optionen"
#: ../gramps/plugins/webreport/narrativeweb.py:1952
#: ../gramps/plugins/webreport/webcal.py:1871
msgid "Character set encoding"
msgstr "Codierung der Zeichensetzung"
msgstr "Zeichensatzcodierung"
#: ../gramps/plugins/webreport/narrativeweb.py:1956
#: ../gramps/plugins/webreport/webcal.py:1875
@@ -38651,7 +38651,7 @@ msgstr "Nebraska"
#. no style sheet option
#: ../gramps/plugins/webstuff/webstuff.py:143
msgid "No style sheet"
msgstr "Kein Stylesheet"
msgstr "Keine Formatvorlage"
#~ msgid ""
#~ "This allows you to set the maximum width of the image shown on the media "
+839 -990
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -21,14 +21,14 @@
# Jens Arvidsson <jya@sverige.nu>, 2002-2005.
# Stefan Björk <betula@users.sourceforge.net>, 2005-2006.
# Peter Landgren <peter.talken@telia.com>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017.
# Pär Ekholm <pehlm@pekholm.org>, 2018, 2019, 2020, 2021.
# Pär Ekholm <pehlm@pekholm.org>, 2018, 2019, 2020, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: sv\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-15 22:20+0200\n"
"PO-Revision-Date: 2021-07-05 15:42+0200\n"
"Last-Translator: Pär Ekholm <pehlm@pekholm.se>\n"
"PO-Revision-Date: 2022-01-25 17:50+0100\n"
"Last-Translator: Pär Ekholm <pehlm@pekholm.org>\n"
"Language-Team: \n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -11225,7 +11225,7 @@ msgstr "OS: %s"
#: ../gramps/gui/clipboard.py:70
msgid "manual|Using_the_Clipboard"
msgstr "Hur använda urklipp"
msgstr "Använda urklipp"
#: ../gramps/gui/clipboard.py:401
#: ../gramps/gui/filters/sidebar/_familysidebarfilter.py:126
@@ -12258,7 +12258,7 @@ msgstr ""
#: ../gramps/gui/configure.py:1980
msgid "Try to find"
msgstr "Försök hitta"
msgstr "Försöka hitta"
#: ../gramps/gui/configure.py:1991 ../gramps/gui/configure.py:2092
msgid "Choose font"
+21 -9
View File
@@ -15,7 +15,7 @@ msgstr ""
"Project-Id-Version: Gramps 4.2.0-dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-15 22:20+0200\n"
"PO-Revision-Date: 2021-07-16 15:31+0800\n"
"PO-Revision-Date: 2022-01-04 10:34+0800\n"
"Last-Translator: Shixiong Tian <tiansworld@fedoraproject.org>\n"
"Language-Team: Chinese (simplified)\n"
"Language: zh_CN\n"
@@ -735,8 +735,9 @@ msgid ""
"see which individuals reference each source. You can use filters to group "
"your sources."
msgstr ""
"<b>管理信息源</b><br/>来源视图在一个窗口列出了所有的来源清单. 双击可以编辑"
"添加注释,并查看每个个体来源的索引.您可以使用筛查器分组您的来源信息。"
"<b>管理信息源</b><br/>来源视图在一个窗口列出了所有的来源。您可以在此处编辑"
"源,合并重复项目及查看每个人员所参照的来源。您还可以用筛选功能对来源进行分"
"组。"
#: ../data/tips.xml.in.h:39
msgid ""
@@ -3978,9 +3979,8 @@ msgid ""
msgstr "匹配特定来源筛选名称的来源事件"
#: ../gramps/gen/filters/rules/citation/_regexpidof.py:48
#, fuzzy
msgid "Citations with Id containing <text>"
msgstr "拥有笔记中包含 <substring> 的家庭"
msgstr "id 包含 <text> 的引用"
#: ../gramps/gen/filters/rules/citation/_regexpidof.py:49
msgid "Matches citations whose Gramps ID matches the regular expression"
@@ -5694,7 +5694,7 @@ msgstr "可能健在的成员"
#: ../gramps/gen/filters/rules/person/_probablyalive.py:46
msgid "Matches people without indications of death that are not too old"
msgstr ""
msgstr "匹配年龄没有大到可能已故的人员"
#: ../gramps/gen/filters/rules/person/_regexpidof.py:46
msgid "People with Id containing <text>"
@@ -35043,7 +35043,7 @@ msgstr "参照家庭(_F)"
#: ../gramps/plugins/view/geofamclose.py:220
#: ../gramps/plugins/view/geography.gpr.py:142
msgid "Have these two families been able to meet?"
msgstr ""
msgstr "这两个家庭曾遇见过吗?"
#: ../gramps/plugins/view/geofamclose.py:251
#, fuzzy
@@ -35114,6 +35114,12 @@ msgid ""
"The value 1 means about 4.6 miles or 7.5 kms.\n"
"The value is in tenth of degree."
msgstr ""
"遇见区域的可能半径。\n"
"彩色区域为估计值。\n"
"只显示参照家庭的遇见区域。\n"
"9 表示 42 英里或 67 公里。\n"
"1 表示 4.6 英里或 7.5 公里。\n"
"值的大小为十分之一度。"
#: ../gramps/plugins/view/geofamily.py:164
msgid "Family places map"
@@ -36853,7 +36859,7 @@ msgstr ""
#: ../gramps/plugins/webreport/surname.py:94
#: ../gramps/plugins/webreport/surnamelist.py:192
msgid "<absent>"
msgstr ""
msgstr "<absent>"
#: ../gramps/plugins/webreport/person.py:281
#, python-format
@@ -36874,6 +36880,9 @@ msgid ""
"any?). Clicking on a place&#8217;s name in the Reference section will take "
"you to that place&#8217;s page."
msgstr ""
"该地图页面显示了与该人员及其后代相关的所有事件或地点。将鼠标置于标记处可显示"
"地点名称。(如果存在日期的话)标记和参照列表按日期排序。在参考部分中点击地点"
"的名称可跳转到地点页面。"
#: ../gramps/plugins/webreport/person.py:873
msgid "Drop Markers"
@@ -36916,8 +36925,9 @@ msgid "Relation to main person"
msgstr "与主人翁的关系"
#: ../gramps/plugins/webreport/person.py:1870
#, fuzzy
msgid "Relation within this family (if not by birth)"
msgstr ""
msgstr "此家庭中的关系(不按出生)"
#: ../gramps/plugins/webreport/place.py:116
msgid "Creating place pages"
@@ -37318,6 +37328,8 @@ msgid ""
"Show data only after this year. Default is current year - 'maximum age "
"probably alive' which is defined in the dates preference tab."
msgstr ""
"仅显示这一年之后的数据。默认为当前年份 - ‘可能健在的最大年龄’ 在日期设置选项"
"栏中定义。"
#: ../gramps/plugins/webreport/webcal.py:1913
msgid "Link prefix"
+3 -1
View File
@@ -306,7 +306,9 @@ class test(Command):
raise RuntimeError("No build directory. Run `python setup.py build` before trying to run tests.")
os.environ['GRAMPS_RESOURCES'] = '.'
all_tests = unittest.TestLoader().discover('.', pattern='*_test.py')
unittest.TextTestRunner(verbosity=self.verbose).run(all_tests)
result = unittest.TextTestRunner(verbosity=self.verbose).run(all_tests)
if not result.wasSuccessful():
raise SystemExit('ERROR: Unit test failure.')
#-------------------------------------------------------------------------
#