Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b57b8d0b75 | |||
| 9fe57a2eb2 | |||
| ddfc88946a | |||
| 52e4790753 | |||
| 8a2c94a3dd | |||
| e40b727a57 | |||
| 160d5952f2 | |||
| 482199d29c | |||
| bfa7c0c9f4 | |||
| 614332aac8 | |||
| 0a981f0ca6 | |||
| 9e81014fc6 | |||
| 2da93aad1f | |||
| 97434a0136 | |||
| 181e2d8540 | |||
| 36d03137dd | |||
| f6ac1999dd | |||
| a99b48711f | |||
| d5d86e9139 | |||
| 4ebba02b6b | |||
| e535fcefa5 | |||
| 0170e2b1e6 | |||
| 54799df049 | |||
| b97facb66f | |||
| aae38a6861 | |||
| e0ee86c36a | |||
| e3e89e6592 | |||
| 2cde1f0cdb | |||
| 2ca3839904 | |||
| 66cac5e852 | |||
| 99ec8e876b | |||
| b27480f7a1 | |||
| e0e81cf56a | |||
| 6df7c46400 | |||
| b98f166a6d | |||
| 33e78d47db | |||
| c753ca66b0 | |||
| ff87829b99 | |||
| a1ec516340 | |||
| 60b4866296 | |||
| 3ad5248af0 | |||
| aa7d9c10c8 | |||
| 9f458578c0 | |||
| 3418027e50 | |||
| 8eed6b869a | |||
| f5202a9ab8 | |||
| b8e5eacbbe | |||
| 810d2fca24 | |||
| 7c0e138ad2 | |||
| 85535c0f5b | |||
| b52d90221f | |||
| bfcbd38610 | |||
| 2ada529a21 | |||
| 8d355ee184 | |||
| d5b28435e0 | |||
| 61189d3930 | |||
| fec961d992 | |||
| 8ceccb4a28 | |||
| 6ba9722dee | |||
| 4a9f658dd4 | |||
| c9537b355e | |||
| 49c3fa0f3f | |||
| eb002718b1 | |||
| 19c714d57a | |||
| b392ce01e0 | |||
| b43b6bdd6d | |||
| c027276466 | |||
| 898b6b26e8 | |||
| ab2df73268 | |||
| e1794090e1 | |||
| 87860fcfd2 | |||
| 79986e1f5e | |||
| 0f38a1a645 | |||
| 14618917c2 | |||
| ae7a2500de | |||
| 358a6b118b | |||
| 9352f0c438 |
@@ -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
@@ -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 ast�s 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)
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
The Gramps Project ( https://gramps-project.org ) [](https://travis-ci.org/gramps-project/gramps)[](https://codecov.io/github/gramps-project/gramps?branch=master)
|
||||
The Gramps Project ( https://gramps-project.org )
|
||||
===================
|
||||
[](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml?query=branch%3Amaintenance%2Fgramps51)
|
||||
[](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
@@ -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
@@ -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>
|
||||
|
||||
Vendored
+17
@@ -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
|
||||
|
||||
Vendored
+4
-2
@@ -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/*
|
||||
|
||||
Vendored
+3
-5
@@ -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
@@ -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
@@ -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.")
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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")):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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];
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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 "
|
||||
|
||||
@@ -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
@@ -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’s name in the Reference section will take "
|
||||
"you to that place’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"
|
||||
|
||||
@@ -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.')
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user