From 5c0b6dd02348b33ed50d72ad70a209028b946eea Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Tue, 18 Jun 2013 13:30:44 +0000 Subject: [PATCH 01/25] RU translation update Translated more strings. filters graph layout some other utils load errors configuration gui svn: r22515 --- po/ru.po | 439 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 271 insertions(+), 168 deletions(-) diff --git a/po/ru.po b/po/ru.po index 942187927..497724f93 100644 --- a/po/ru.po +++ b/po/ru.po @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-05-09 12:49+0200\n" -"PO-Revision-Date: 2013-06-12 01:16+0300\n" +"PO-Revision-Date: 2013-06-18 10:28+0300\n" "Last-Translator: Vassilii Khachaturov <vassilii@tarunz.org>\n" "Language-Team: Russian <gramps-devel@lists.sf.net>\n" "Language: ru\n" @@ -92,7 +92,7 @@ msgstr "ОШИБКА: Неопознанный формат для файла э #: ../gramps/cli/arghandler.py:405 msgid "List of known Family Trees in your database path\n" msgstr "" -"Путь к базе данных" +"Путь к базе данных " "с семейным древом\n" #: ../gramps/cli/arghandler.py:410 @@ -218,6 +218,8 @@ msgstr "Неизвестное название книги." #, python-format msgid "Book name not given. Please use one of %(donottranslate)s=bookname." msgstr "" +"Не задано название книги. Пожалуйста, укажите одно из %" +"(donottranslate)s=bookname." #: ../gramps/cli/arghandler.py:706 #, python-format @@ -679,7 +681,7 @@ msgstr "" #: ../gramps/cli/plug/__init__.py:268 msgid "Output file name. MANDATORY" -msgstr "" +msgstr "Имя файла на выходе. ОБЯЗАТЕЛЬНО" #: ../gramps/cli/plug/__init__.py:269 msgid "=format" @@ -699,7 +701,7 @@ msgstr "Название стиля." #: ../gramps/cli/plug/__init__.py:271 msgid "Paper size name." -msgstr "" +msgstr "Формат листа бумаги." #: ../gramps/cli/plug/__init__.py:272 ../gramps/cli/plug/__init__.py:273 #: ../gramps/cli/plug/__init__.py:275 ../gramps/cli/plug/__init__.py:277 @@ -709,7 +711,7 @@ msgstr "" #: ../gramps/cli/plug/__init__.py:272 msgid "Paper orientation number." -msgstr "Paper orientation number." +msgstr "Ориентация страницы." #: ../gramps/cli/plug/__init__.py:273 msgid "Left paper margin" @@ -722,15 +724,15 @@ msgstr "Размер в см" #: ../gramps/cli/plug/__init__.py:275 msgid "Right paper margin" -msgstr "" +msgstr "Правое поле" #: ../gramps/cli/plug/__init__.py:277 msgid "Top paper margin" -msgstr "" +msgstr "Верхнее поле" #: ../gramps/cli/plug/__init__.py:279 msgid "Bottom paper margin" -msgstr "" +msgstr "Нижнее поле" #: ../gramps/cli/plug/__init__.py:281 msgid "=css filename" @@ -738,7 +740,7 @@ msgstr "" #: ../gramps/cli/plug/__init__.py:281 msgid "CSS filename to use, html format only" -msgstr "" +msgstr "Имя файла CSS, только для формата HTML" #: ../gramps/cli/plug/__init__.py:312 ../gramps/gen/plug/report/_paper.py:91 #: ../gramps/gen/plug/report/_paper.py:113 @@ -786,7 +788,7 @@ msgstr " Возможные параметры:" #: ../gramps/cli/plug/__init__.py:585 msgid "(no help available)" -msgstr "" +msgstr "(подсказка отсутствует)" #: ../gramps/cli/plug/__init__.py:594 msgid " Available values are:" @@ -805,19 +807,19 @@ msgstr "Не удалось записать отчет. " #: ../gramps/gen/config.py:285 msgid "Imported %Y/%m/%d %H:%M:%S" -msgstr "" +msgstr "Импортировано %Y/%m/%d %H:%M:%S" #: ../gramps/gen/config.py:294 msgid "Missing Given Name" -msgstr "Отсутствующее имя" +msgstr "Имя отсутствует" #: ../gramps/gen/config.py:295 msgid "Missing Record" -msgstr "Отсутствующая информация" +msgstr "Запись отсутствует" #: ../gramps/gen/config.py:296 msgid "Missing Surname" -msgstr "Отсутствующая Фамилия" +msgstr "Фамилия отсутствует" #: ../gramps/gen/config.py:303 ../gramps/gen/config.py:305 msgid "Living" @@ -900,6 +902,15 @@ msgid "" "computer with that software that created the Family Tree, export it to XML " "and load that XML into the version of Gramps you intend to use." msgstr "" +"Gramps хранит свои данные в базе данных Беркли. Семейное древо, " +"которое Вы пытаетесь загрузить, было записано в формате СУБД Беркли " +"версии %(env_version)s. Текущая же версия Gramps version использкет " +"СУБД Беркли версии %(bdb_version)s. Таким образом, Вы пытаетесь " +"загрузить данные записанные в более новом формате в устаревшую " +"сборку программы, это, скорее всего, не удастся. Правильные способ " +"для решения этой проблемы — использовать экспорт и импорт в формате " +"XML. Попытайтесь открыть это древо на том компьютере, где оно было " +"создано, экспортируйте его в XML, а затем импортируйте его здесь." #: ../gramps/gen/db/exceptions.py:128 #, python-format @@ -916,6 +927,17 @@ msgid "" "If you have made a backup, then you can get Gramps to try to open the tree " "and upgrade it" msgstr "" +"Версию BSDDB древа, которое Вы пытаетесь открыть, надо обновить " +"с %(env_version)s на %(bdb_version)s.\n" +"\n" +"Скорее всего это значит, что это древо было создано в более старой версии " +"Gramps. Открытие его в настоящей версии Gramps может безвозвратно " +"повредить Ваше древо. Настоятельно рекомендуется сделать резервную " +"копию Ваших данных, см.: \n" +"http://www.gramps-project.org/wiki/index.php?title=How_to_make_a_backup\n" +"\n" +"Если Вы уже сделали резервную копию, то Вы можете попробовать открыть " +"это древо, при этом произойдёт обновление версии BSDDB." #: ../gramps/gen/db/exceptions.py:151 msgid "" @@ -956,6 +978,19 @@ msgid "" "See: \n" "http://www.gramps-project.org/wiki/index.php?title=How_to_make_a_backup" msgstr "" +"Структура данных семейного древа, которую использует Gramps, изменилась " +"с тех пор, как данное дерево было создано.\n" +"\n" +"По этой причине, для открытия этого древа необходимо произвести обновление " +"формата структуры данных.\n" +"После обновления использовать предыдущие версии Gramps будет невозможно, " +"даже если делать экспорт в формат .gramps xml!\n" +"\n" +"Обновление — сложная процедура, которую нельзя прерывать, иначе данные " +"могут быть безвозвратно повреждены. Поэтому, перед началом обновления, " +"сделайте резервную копию. " +"См.: \n" +"http://www.gramps-project.org/wiki/index.php?title=How_to_make_a_backup" #: ../gramps/gen/db/undoredo.py:249 ../gramps/gen/db/undoredo.py:286 #: ../gramps/gen/db/write.py:2026 @@ -1015,7 +1050,7 @@ msgstr "" # statistics over import results #: ../gramps/gen/db/upgrade.py:530 msgid "Upgrade Statistics" -msgstr "" +msgstr "Итоги обновления:" #: ../gramps/gen/db/write.py:1023 #, python-format @@ -1035,6 +1070,8 @@ msgid "" "A second transaction is started while there is still a transaction, \"%s\", " "active in the database." msgstr "" +"Начата вторая транзакция с базой данных, хотя текущая транзакция, «%s», ещё " +"не завершилась." #: ../gramps/gen/display/name.py:331 msgid "Default format (defined by Gramps preferences)" @@ -1163,11 +1200,11 @@ msgstr "семпрозвище" #: ../gramps/gen/display/name.py:1067 #, python-format msgid "Wrong name format string %s" -msgstr "" +msgstr "Неверная строка формата имени «%s»" #: ../gramps/gen/display/name.py:1071 msgid "ERROR, Edit Name format in Preferences" -msgstr "" +msgstr "ОШИБКА, Установите строку формата в меню «Настройки»" #: ../gramps/gen/filters/_filterparser.py:120 #, python-format @@ -1267,7 +1304,7 @@ msgstr "Общие фильтры" #: ../gramps/gen/filters/rules/_changedsincebase.py:82 msgid "Wrong format of date-time" -msgstr "" +msgstr "Неверный формат даты/времени" #: ../gramps/gen/filters/rules/_changedsincebase.py:83 #, python-format @@ -1275,6 +1312,8 @@ msgid "" "Only date-times in the iso format of yyyy-mm-dd hh:mm:ss, where the time " "part is optional, are accepted. %s does not satisfy." msgstr "" +"Допускаются только дата/время в формате вида ГГГГ-ММ-ДД ЧЧ:ММ:СС или только " +"ГГГГ-ММ-ДД. «%s» не годится." #: ../gramps/gen/filters/rules/_hascitationbase.py:51 #: ../gramps/gen/filters/rules/citation/_hascitation.py:50 @@ -1325,7 +1364,7 @@ msgstr "Цитаты, удовлетворяющие параметрам" #: ../gramps/gen/filters/rules/_hascitationbase.py:55 #: ../gramps/gen/filters/rules/citation/_hascitation.py:55 msgid "Matches citations with particular parameters" -msgstr "Выбирает цитаты с определёнными параметрами" +msgstr "Выбирает цитаты с данными параметрами" #: ../gramps/gen/filters/rules/_hascitationbase.py:56 #: ../gramps/gen/filters/rules/_hassourcebase.py:54 @@ -1339,7 +1378,7 @@ msgstr "Выбирает цитаты с определёнными параме #: ../gramps/gen/filters/rules/person/_hassourceof.py:49 #: ../gramps/gen/filters/rules/place/_hassourceof.py:49 msgid "Citation/source filters" -msgstr "" +msgstr "Фильтры цитат/источников" #: ../gramps/gen/filters/rules/_haseventbase.py:57 #: ../gramps/gen/filters/rules/person/_familywithincompleteevent.py:47 @@ -1447,7 +1486,7 @@ msgstr "Название:" #: ../gramps/gen/filters/rules/_matchesfilterbase.py:72 #, python-format msgid "Can't find filter %s in the defined custom filters" -msgstr "" +msgstr "Не могу найти фильтр «%s» среди заданных фильтров пользователя." #: ../gramps/gen/filters/rules/_matchessourcefilterbase.py:49 #: ../gramps/gen/filters/rules/citation/_matchessourcefilter.py:50 @@ -1542,7 +1581,7 @@ msgstr "Цитаты с <числом> документов" #: ../gramps/gen/filters/rules/citation/_hasgallery.py:48 msgid "Matches citations with a certain number of items in the gallery" -msgstr "Выбирает цитаты с определенным числом документов в галерее" +msgstr "Выбирает цитаты с данным числом документов в галерее" #: ../gramps/gen/filters/rules/citation/_hasidof.py:47 msgid "Citation with <Id>" @@ -1558,7 +1597,7 @@ msgstr "Цитаты с <числом> заметок" #: ../gramps/gen/filters/rules/citation/_hasnote.py:49 msgid "Matches citations having a certain number of notes" -msgstr "Выбирает цитаты с определённым числом заметок" +msgstr "Выбирает цитаты с данным числом заметок" #: ../gramps/gen/filters/rules/citation/_hasnotematchingsubstringof.py:45 msgid "Citations having notes containing <substring>" @@ -1587,7 +1626,7 @@ msgstr "Цитаты с числом ссылок <число>" #: ../gramps/gen/filters/rules/citation/_hasreferencecountof.py:46 msgid "Matches citations with a certain reference count" -msgstr "" +msgstr "Выбирает цитаты с данным счётчиком ссылок" #: ../gramps/gen/filters/rules/citation/_hassource.py:50 #: ../gramps/gen/filters/rules/media/_hasmedia.py:48 @@ -1633,7 +1672,7 @@ msgstr "Источники, удовлетворяющие параметрам" #: ../gramps/gen/filters/rules/citation/_hassource.py:55 msgid "Matches citations with a source of a particular value" -msgstr "" +msgstr "Выбирает цитаты из данного источника" #: ../gramps/gen/filters/rules/citation/_hassource.py:57 msgid "Source filters" @@ -1674,6 +1713,8 @@ msgid "" "Matches citations with sources with a repository reference that match a " "certain repository filter" msgstr "" +"Выбирает цитаты из источников из хранилищ, соответствующих указанному фильтру " +"хранилищ" #: ../gramps/gen/filters/rules/citation/_matchessourcefilter.py:51 msgid "Citations with source matching the <source filter>" @@ -1739,7 +1780,7 @@ msgstr "События с <атрибутом>" #: ../gramps/gen/filters/rules/event/_hasattribute.py:48 msgid "Matches events with the event attribute of a particular value" -msgstr "Выбирает события с определённым значением атрибута" +msgstr "Выбирает события с данным значением атрибута" #: ../gramps/gen/filters/rules/event/_hascitation.py:53 msgid "Event with the <citation>" @@ -1747,7 +1788,7 @@ msgstr "События с <цитатой>" #: ../gramps/gen/filters/rules/event/_hascitation.py:54 msgid "Matches events with a citation of a particular value" -msgstr "Выбирает события с определённым значением цитаты" +msgstr "Выбирает события с данным значением цитаты" #: ../gramps/gen/filters/rules/event/_hasdata.py:48 #: ../gramps/gen/filters/rules/event/_hastype.py:47 @@ -1785,7 +1826,7 @@ msgstr "События с <данными>" #: ../gramps/gen/filters/rules/event/_hasdata.py:51 msgid "Matches events with data of a particular value" -msgstr "" +msgstr "Выбирает события с указанным значением в поле данных" #: ../gramps/gen/filters/rules/event/_hasgallery.py:47 msgid "Events with <count> media" @@ -1809,7 +1850,7 @@ msgstr "События с <числом> заметок" #: ../gramps/gen/filters/rules/event/_hasnote.py:48 msgid "Matches events having a certain number of notes" -msgstr "Выбирает события с определённым числом заметок" +msgstr "Выбирает события с данным числом заметок" #: ../gramps/gen/filters/rules/event/_hasnotematchingsubstringof.py:44 msgid "Events having notes containing <substring>" @@ -1836,7 +1877,7 @@ msgstr "События с <числом> ссылок" #: ../gramps/gen/filters/rules/event/_hasreferencecountof.py:45 msgid "Matches events with a certain reference count" -msgstr "Выбирает события с определённым числом ссылок на них" +msgstr "Выбирает события с данным числом ссылок на них" #: ../gramps/gen/filters/rules/event/_hassourcecount.py:46 msgid "Events with <count> sources" @@ -1844,7 +1885,7 @@ msgstr "События с <числом> источников" #: ../gramps/gen/filters/rules/event/_hassourcecount.py:47 msgid "Matches events with a certain number of sources connected to it" -msgstr "Выбирает события с определённым числом источников" +msgstr "Выбирает события с данным числом источников" #: ../gramps/gen/filters/rules/event/_hastype.py:48 msgid "Events with the particular type" @@ -1882,11 +1923,11 @@ msgstr "Выбирает события людей, соответствующи #: ../gramps/gen/filters/rules/event/_matchessourceconfidence.py:47 msgid "Events with at least one direct source >= <confidence level>" -msgstr "" +msgstr "События с хоть одним источником >= <достоверность>" #: ../gramps/gen/filters/rules/event/_matchessourceconfidence.py:48 msgid "Matches events with at least one direct source with confidence level(s)" -msgstr "" +msgstr "Выбирает события с хотя бы одним достоверным источником." #: ../gramps/gen/filters/rules/event/_matchessourcefilter.py:51 msgid "Events with source matching the <source filter>" @@ -1999,7 +2040,7 @@ msgstr "Семьи с семейным <атрибутом>" #: ../gramps/gen/filters/rules/family/_hasattribute.py:48 msgid "Matches families with the family attribute of a particular value" -msgstr "Выбирает семьи с определённым значением атрибута" +msgstr "Выбирает семьи с данным значением атрибута" #: ../gramps/gen/filters/rules/family/_hascitation.py:53 msgid "Family with the <citation>" @@ -2007,7 +2048,7 @@ msgstr "Семьи с <цитатой>" #: ../gramps/gen/filters/rules/family/_hascitation.py:54 msgid "Matches families with a citation of a particular value" -msgstr "" +msgstr "Выбирает семьи с цитатами с указанным значением в поле данных" #: ../gramps/gen/filters/rules/family/_hasevent.py:49 #: ../gramps/gen/filters/rules/person/_hasfamilyevent.py:49 @@ -2028,7 +2069,7 @@ msgstr "Семьи с <событием>" #: ../gramps/gen/filters/rules/family/_hasevent.py:55 msgid "Matches families with an event of a particular value" -msgstr "Выбирает семьи с определённым событием" +msgstr "Выбирает семьи с данным событием" #: ../gramps/gen/filters/rules/family/_hasgallery.py:47 msgid "Families with <count> media" @@ -2052,7 +2093,7 @@ msgstr "Семьи с <числом> событий СПД" #: ../gramps/gen/filters/rules/family/_haslds.py:51 msgid "Matches families with a certain number of LDS events" -msgstr "Выбирает семьи с определённым числом числом событий церкви СПД" +msgstr "Выбирает семьи с данным числом числом событий церкви СПД" #: ../gramps/gen/filters/rules/family/_hasnote.py:47 msgid "Families having <count> notes" @@ -2060,7 +2101,7 @@ msgstr "Семьи с <числом> заметок" #: ../gramps/gen/filters/rules/family/_hasnote.py:48 msgid "Matches families having a certain number notes" -msgstr "Выбирает семьи с определённым количеством заметок" +msgstr "Выбирает семьи с данным количеством заметок" #: ../gramps/gen/filters/rules/family/_hasnotematchingsubstringof.py:44 msgid "Families having notes containing <substring>" @@ -2088,7 +2129,7 @@ msgstr "Семьи с числом ссылок <число>" #: ../gramps/gen/filters/rules/family/_hasreferencecountof.py:45 msgid "Matches family objects with a certain reference count" -msgstr "Выбирает семьи с определённым числом ссылок на них" +msgstr "Выбирает семьи с данным числом ссылок на них" #: ../gramps/gen/filters/rules/family/_hasreltype.py:47 #: ../gramps/gen/filters/rules/person/_hasrelationship.py:48 @@ -2102,7 +2143,7 @@ msgstr "Семьи с типом отношений" #: ../gramps/gen/filters/rules/family/_hasreltype.py:49 msgid "Matches families with the relationship type of a particular value" -msgstr "Выбирает семьи с определённым типом отношений" +msgstr "Выбирает семьи с данным типом отношений" #: ../gramps/gen/filters/rules/family/_hassourcecount.py:47 msgid "Families with <count> sources" @@ -2110,7 +2151,7 @@ msgstr "Семьи с <числом> источников" #: ../gramps/gen/filters/rules/family/_hassourcecount.py:48 msgid "Matches families with a certain number of sources connected to it" -msgstr "Выбирает семьи с определённым числом источников" +msgstr "Выбирает семьи с данным числом источников" #: ../gramps/gen/filters/rules/family/_hassourceof.py:48 msgid "Families with the <source>" @@ -2118,7 +2159,7 @@ msgstr "Семьи с <источником>" #: ../gramps/gen/filters/rules/family/_hassourceof.py:50 msgid "Matches families who have a particular source" -msgstr "" +msgstr "Выбирает семьи с указанным источником" #: ../gramps/gen/filters/rules/family/_hastag.py:49 #: ../gramps/gen/filters/rules/media/_hastag.py:49 @@ -2134,15 +2175,15 @@ msgstr "Семьи с <пометкой>" #: ../gramps/gen/filters/rules/family/_hastag.py:51 msgid "Matches families with the particular tag" -msgstr "" +msgstr "Выбирает семьи с указанной меткой" #: ../gramps/gen/filters/rules/family/_hastwins.py:47 msgid "Families with twins" -msgstr "" +msgstr "Семьи с близнецами" #: ../gramps/gen/filters/rules/family/_hastwins.py:48 msgid "Matches families with twins" -msgstr "" +msgstr "Выбирает семьи с близнецами" #: ../gramps/gen/filters/rules/family/_isbookmarked.py:46 msgid "Bookmarked families" @@ -2162,12 +2203,12 @@ msgstr "Выбирает семьи, соответствующие фильтр #: ../gramps/gen/filters/rules/family/_matchessourceconfidence.py:46 msgid "Families with at least one direct source >= <confidence level>" -msgstr "" +msgstr "Семьи с хоть одним источником >= <достоверность>" #: ../gramps/gen/filters/rules/family/_matchessourceconfidence.py:47 msgid "" "Matches families with at least one direct source with confidence level(s)" -msgstr "" +msgstr "Выбирает семьи с хоть одним достоверным источником." #: ../gramps/gen/filters/rules/family/_motherhasidof.py:48 msgid "Families with mother with the <Id>" @@ -2284,7 +2325,7 @@ msgstr "Документ с <атрибутом>" #: ../gramps/gen/filters/rules/media/_hasattribute.py:48 msgid "Matches media objects with the attribute of a particular value" -msgstr "Выбирает документы с определённым значением атрибута" +msgstr "Выбирает документы с данным значением атрибута" #: ../gramps/gen/filters/rules/media/_hascitation.py:52 msgid "Media with the <citation>" @@ -2292,7 +2333,7 @@ msgstr "Документы с <цитатой>" #: ../gramps/gen/filters/rules/media/_hascitation.py:53 msgid "Matches media with a citation of a particular value" -msgstr "Выбирает документы с определённым значением цитаты" +msgstr "Выбирает документы с данным значением цитаты" #: ../gramps/gen/filters/rules/media/_hasidof.py:46 msgid "Media object with <Id>" @@ -2326,7 +2367,7 @@ msgstr "Документ, удовлетворяющий параметрам" #: ../gramps/gen/filters/rules/media/_hasmedia.py:54 msgid "Matches media objects with particular parameters" -msgstr "Выбирает документы с определёнными параметрами" +msgstr "Выбирает документы с данными параметрами" #: ../gramps/gen/filters/rules/media/_hasnotematchingsubstringof.py:44 msgid "Media objects having notes containing <substring>" @@ -2355,7 +2396,7 @@ msgstr "Документы с числом ссылок <число>" #: ../gramps/gen/filters/rules/media/_hasreferencecountof.py:45 msgid "Matches media objects with a certain reference count" -msgstr "Выбирает документы с определёнными количеством ссылок на них" +msgstr "Выбирает документы с данными количеством ссылок на них" #: ../gramps/gen/filters/rules/media/_hassourcecount.py:47 msgid "Media with <count> sources" @@ -2363,7 +2404,7 @@ msgstr "Документы с <числом> источников" #: ../gramps/gen/filters/rules/media/_hassourcecount.py:48 msgid "Matches media with a certain number of sources connected to it" -msgstr "Выбирает документы с определённым числом источников" +msgstr "Выбирает документы с данным числом источников" #: ../gramps/gen/filters/rules/media/_hassourceof.py:48 msgid "Media with the <source>" @@ -2379,7 +2420,7 @@ msgstr "Документы с <пометкой>" #: ../gramps/gen/filters/rules/media/_hastag.py:51 msgid "Matches media objects with the particular tag" -msgstr "" +msgstr "Выбирает документы с указанной меткой" #: ../gramps/gen/filters/rules/media/_matchesfilter.py:46 msgid "Media objects matching the <filter>" @@ -2460,7 +2501,7 @@ msgstr "Заметки, удовлетворяющие параметрам" #: ../gramps/gen/filters/rules/note/_hasnote.py:52 msgid "Matches Notes with particular parameters" -msgstr "Выбирает заметки с определёнными параметрами" +msgstr "Выбирает заметки с данными параметрами" # !!!FIXME!!! #: ../gramps/gen/filters/rules/note/_hasreferencecountof.py:44 @@ -2469,7 +2510,7 @@ msgstr "Заметки с числом ссылок <число>" #: ../gramps/gen/filters/rules/note/_hasreferencecountof.py:45 msgid "Matches notes with a certain reference count" -msgstr "Выбирает заметки с определённым количеством ссылок на них" +msgstr "Выбирает заметки с данным количеством ссылок на них" #: ../gramps/gen/filters/rules/note/_hastag.py:50 msgid "Notes with the <tag>" @@ -2481,11 +2522,11 @@ msgstr "Заметки с определенной пометкой" #: ../gramps/gen/filters/rules/note/_hastype.py:48 msgid "Notes with the particular type" -msgstr "" +msgstr "Заметки указанного типа" #: ../gramps/gen/filters/rules/note/_hastype.py:49 msgid "Matches notes with the particular type " -msgstr "" +msgstr "Выбирает заметки определённого типа " #: ../gramps/gen/filters/rules/note/_matchesfilter.py:46 msgid "Notes matching the <filter>" @@ -2570,6 +2611,12 @@ msgid "" "between the specified person and the target people. Each path is not " "necessarily the shortest path." msgstr "" +"Поиск по базе данных, начиная от указанного лица, выбирает всех родственников " +"между этим лицом и множеством людей, заданным с помощью фильтра. Результат " +"представляет из себя набор цепей родства (как кровного, так и через брак), " +"между " +"указанным лицом и заданным множеством людей. Каждая цепь не обязательно " +"будет кратчайшей." #: ../gramps/gen/filters/rules/person/_deeprelationshippathbetween.py:137 msgid "Finding relationship paths" @@ -2613,7 +2660,7 @@ msgstr "Люди с <числом> адресов" #: ../gramps/gen/filters/rules/person/_hasaddress.py:52 msgid "Matches people with a certain number of personal addresses" -msgstr "Выбирает людей с определённым количеством личных адресов" +msgstr "Выбирает людей с данным количеством личных адресов" #: ../gramps/gen/filters/rules/person/_hasalternatename.py:47 msgid "People with an alternate name" @@ -2629,7 +2676,7 @@ msgstr "Выбирает лиц с <количеством> связей" #: ../gramps/gen/filters/rules/person/_hasassociation.py:52 msgid "Matches people with a certain number of associations" -msgstr "Выбирает лиц с определённым количеством связей" +msgstr "Выбирает лиц с данным количеством связей" #: ../gramps/gen/filters/rules/person/_hasattribute.py:46 #: ../gramps/gui/editors/filtereditor.py:100 @@ -2642,7 +2689,7 @@ msgstr "Люди с личным <атрибутом>" #: ../gramps/gen/filters/rules/person/_hasattribute.py:48 msgid "Matches people with the personal attribute of a particular value" -msgstr "Выбирает людей с определённым значением личного атрибута" +msgstr "Выбирает людей с данным значением личного атрибута" #: ../gramps/gen/filters/rules/person/_hasbirth.py:50 msgid "People with the <birth data>" @@ -2658,7 +2705,7 @@ msgstr "Люди с <цитатой>" #: ../gramps/gen/filters/rules/person/_hascitation.py:53 msgid "Matches people with a citation of a particular value" -msgstr "" +msgstr "Выбирает людей с цитатами с указанным значением" #: ../gramps/gen/filters/rules/person/_hascommonancestorwith.py:48 msgid "People with a common ancestor with <person>" @@ -2709,7 +2756,7 @@ msgstr "Люди с личными <событиями>" #: ../gramps/gen/filters/rules/person/_hasevent.py:56 msgid "Matches people with a personal event of a particular value" -msgstr "Выбирает людей с определённым личным событием" +msgstr "Выбирает людей с данным личным событием" #: ../gramps/gen/filters/rules/person/_hasfamilyattribute.py:47 msgid "People with the family <attribute>" @@ -2717,7 +2764,7 @@ msgstr "Люди с семейным <атрибутом>" #: ../gramps/gen/filters/rules/person/_hasfamilyattribute.py:48 msgid "Matches people with the family attribute of a particular value" -msgstr "Выбирает объекты с определённым значением семейного атрибута" +msgstr "Выбирает объекты с данным значением семейного атрибута" #: ../gramps/gen/filters/rules/person/_hasfamilyevent.py:53 msgid "People with the family <event>" @@ -2725,7 +2772,7 @@ msgstr "Люди с семейными <событиями>" #: ../gramps/gen/filters/rules/person/_hasfamilyevent.py:54 msgid "Matches people with a family event of a particular value" -msgstr "Выбирает людей с определённым семейным событием" +msgstr "Выбирает людей с данным семейным событием" #: ../gramps/gen/filters/rules/person/_hasgallery.py:44 msgid "People with <count> media" @@ -2751,7 +2798,7 @@ msgstr "Лица с <числом> событий СПД" #: ../gramps/gen/filters/rules/person/_haslds.py:51 msgid "Matches people with a certain number of LDS events" -msgstr "Выбирает людей с определённым числом числом событий церкви СПД" +msgstr "Выбирает людей с данным числом числом событий церкви СПД" #: ../gramps/gen/filters/rules/person/_hasnameof.py:49 msgid "Given name:" @@ -2910,7 +2957,7 @@ msgstr "Лица с <числом> источников" #: ../gramps/gen/filters/rules/person/_hassourcecount.py:48 msgid "Matches people with a certain number of sources connected to it" -msgstr "" +msgstr "Выбирает людей, для которых задано указанное количество источников." #: ../gramps/gen/filters/rules/person/_hassourceof.py:48 msgid "People with the <source>" @@ -2926,7 +2973,7 @@ msgstr "Люди с <пометкой>" #: ../gramps/gen/filters/rules/person/_hastag.py:51 msgid "Matches people with the particular tag" -msgstr "" +msgstr "Выбирает людей с указанной меткой" #: ../gramps/gen/filters/rules/person/_hastextmatchingsubstringof.py:49 #: ../gramps/gui/editors/filtereditor.py:540 @@ -3042,13 +3089,14 @@ msgstr "Выбирает потомков и супругов потомков #: ../gramps/gen/filters/rules/person/_isdescendantfamilyoffiltermatch.py:49 msgid "Descendant family members of <filter> match" -msgstr "" +msgstr "Члены семьи потомков тех, кого выбрал <фильтр>" #: ../gramps/gen/filters/rules/person/_isdescendantfamilyoffiltermatch.py:51 msgid "" "Matches people that are descendants or the spouse of anybody matched by a " "filter" msgstr "" +"Выбирает потомков и супругов потомков лиц, выбранных указанным фильтром" #: ../gramps/gen/filters/rules/person/_isdescendantof.py:48 msgid "Descendants of <person>" @@ -3191,11 +3239,11 @@ msgstr "Выбирает предков соответствующих филь #: ../gramps/gen/filters/rules/person/_isrelatedwith.py:47 msgid "People related to <Person>" -msgstr "" +msgstr "Родственники <лица>" #: ../gramps/gen/filters/rules/person/_isrelatedwith.py:49 msgid "Matches people related to a specified person" -msgstr "" +msgstr "Выбирает людей, находящихся в родстве с указанным лицом" #: ../gramps/gen/filters/rules/person/_issiblingoffiltermatch.py:48 msgid "Siblings of <filter> match" @@ -3251,7 +3299,7 @@ msgstr "Лица с хоть одним источником >= <достове #: ../gramps/gen/filters/rules/person/_matchessourceconfidence.py:47 msgid "" "Matches persons with at least one direct source with confidence level(s)" -msgstr "" +msgstr "Выбирает людей с хотя бы одним источником указанной достоверности" #: ../gramps/gen/filters/rules/person/_missingparent.py:45 msgid "People missing parents" @@ -3405,11 +3453,11 @@ msgstr "" #: ../gramps/gen/filters/rules/place/_hascitation.py:53 msgid "Place with the <citation>" -msgstr "" +msgstr "Местоположение с <цитатой>" #: ../gramps/gen/filters/rules/place/_hascitation.py:54 msgid "Matches places with a citation of a particular value" -msgstr "" +msgstr "Выбирает местоположения с цитатой с указанным значением" #: ../gramps/gen/filters/rules/place/_hasgallery.py:47 msgid "Places with <count> media" @@ -3446,7 +3494,7 @@ msgstr "Места, имеющие <число> заметок" #: ../gramps/gen/filters/rules/place/_hasnote.py:48 msgid "Matches places having a certain number of notes" -msgstr "Выбирает места с определённым числом заметок" +msgstr "Выбирает места с данным числом заметок" #: ../gramps/gen/filters/rules/place/_hasnotematchingsubstringof.py:44 msgid "Places having notes containing <substring>" @@ -3517,7 +3565,7 @@ msgstr "Места, соответствующие параметрам" #: ../gramps/gen/filters/rules/place/_hasplace.py:61 msgid "Matches places with particular parameters" -msgstr "Выбирает места с определёнными параметрами" +msgstr "Выбирает места с данными параметрами" # !!!FIXME!!! #: ../gramps/gen/filters/rules/place/_hasreferencecountof.py:44 @@ -3526,23 +3574,23 @@ msgstr "Места с числом ссылок <число>" #: ../gramps/gen/filters/rules/place/_hasreferencecountof.py:45 msgid "Matches places with a certain reference count" -msgstr "Выбирает места с определённым числом ссылок на них" +msgstr "Выбирает места с данным числом ссылок на них" #: ../gramps/gen/filters/rules/place/_hassourcecount.py:47 msgid "Place with <count> sources" -msgstr "" +msgstr "Местоположение с <числом> источников" #: ../gramps/gen/filters/rules/place/_hassourcecount.py:48 msgid "Matches places with a certain number of sources connected to it" -msgstr "" +msgstr "Выбирает местоположения с указанным числом источников" #: ../gramps/gen/filters/rules/place/_hassourceof.py:48 msgid "Places with the <source>" -msgstr "" +msgstr "Местоположения с <источником>" #: ../gramps/gen/filters/rules/place/_hassourceof.py:50 msgid "Matches places who have a particular source" -msgstr "" +msgstr "Выбирает местоположения с указанным источником" #: ../gramps/gen/filters/rules/place/_inlatlonneighborhood.py:51 #: ../gramps/gui/glade/mergeplace.glade:259 @@ -3599,11 +3647,11 @@ msgstr "Выбирает места, соответствующие фильтр #: ../gramps/gen/filters/rules/place/_matchessourceconfidence.py:46 msgid "Place with a direct source >= <confidence level>" -msgstr "" +msgstr "Местоположение с источником >= <достоверность>" #: ../gramps/gen/filters/rules/place/_matchessourceconfidence.py:47 msgid "Matches places with at least one direct source with confidence level(s)" -msgstr "" +msgstr "Выбирает места с хоть одним достоверным источником" #: ../gramps/gen/filters/rules/place/_placeprivate.py:44 msgid "Places marked private" @@ -3678,7 +3726,7 @@ msgstr "Хранилища с количеством ссылок <count>" #: ../gramps/gen/filters/rules/repository/_hasreferencecountof.py:45 msgid "Matches repositories with a certain reference count" -msgstr "Выбирает хранилища с определённым количеством ссылок на них" +msgstr "Выбирает хранилища с данным количеством ссылок на них" #: ../gramps/gen/filters/rules/repository/_hasrepo.py:50 msgid "Address:" @@ -3694,7 +3742,7 @@ msgstr "Хранилище, удовлетворяющее параметрам" #: ../gramps/gen/filters/rules/repository/_hasrepo.py:54 msgid "Matches Repositories with particular parameters" -msgstr "Выбирает хранилища с определёнными параметрами" +msgstr "Выбирает хранилища с данными параметрами" #: ../gramps/gen/filters/rules/repository/_matchesfilter.py:46 msgid "Repositories matching the <filter>" @@ -3801,7 +3849,7 @@ msgstr "Источники с числом ссылок <число>" #: ../gramps/gen/filters/rules/source/_hasreferencecountof.py:45 msgid "Matches sources with a certain reference count" -msgstr "Выбирает источники с определённым числом ссылок на них" +msgstr "Выбирает источники с данным числом ссылок на них" #: ../gramps/gen/filters/rules/source/_hasrepository.py:49 msgid "Sources with <count> Repository references" @@ -3815,12 +3863,15 @@ msgstr "Выбирает источники с определенным числ msgid "" "Sources with repository reference containing <substring> in \"Call Number\"" msgstr "" +"Источники со ссылкой на хранилища с указанной <подстрокой> в поле «Номер»" #: ../gramps/gen/filters/rules/source/_hasrepositorycallnumberref.py:47 msgid "" "Matches sources with a repository reference\n" "containing a substring in \"Call Number\"" msgstr "" +"Выбирает источники со ссылкой на хранилища,\n" +"с данной подстрокой в поле «Номер»" #: ../gramps/gen/filters/rules/source/_matchesfilter.py:46 msgid "Sources matching the <filter>" @@ -3832,17 +3883,19 @@ msgstr "Выбирает источники, соответствующие фи #: ../gramps/gen/filters/rules/source/_matchesrepositoryfilter.py:46 msgid "Sources with repository reference matching the <repository filter>" -msgstr "" +msgstr "Источники со ссылкой на хранилища, соответствующие <фильтру хранилищ>" #: ../gramps/gen/filters/rules/source/_matchesrepositoryfilter.py:47 msgid "" "Matches sources with a repository reference that match a certain\n" "repository filter" msgstr "" +"Выбирает источники со ссылкой на хранилища, которые\n" +"соответствуют указанному фильтру хранилищ" #: ../gramps/gen/filters/rules/source/_matchestitlesubstringof.py:45 msgid "Sources title containing <substring>" -msgstr "" +msgstr "Название источника содержит <подстроку>" #: ../gramps/gen/filters/rules/source/_matchestitlesubstringof.py:46 msgid "Matches sources whose title contains a certain substring" @@ -4984,11 +5037,11 @@ msgstr "Цвет шрифта" #: ../gramps/gen/lib/styledtexttagtype.py:72 msgid "Highlight" -msgstr "" +msgstr "Выделение" #: ../gramps/gen/lib/styledtexttagtype.py:73 msgid "Superscript" -msgstr "" +msgstr "Верхний индекс" #: ../gramps/gen/lib/styledtexttagtype.py:74 #: ../gramps/gui/widgets/styledtextbuffer.py:565 @@ -5110,6 +5163,8 @@ msgid "" "Option '%(opt_name)s' is present in %(file)s\n" " but is not known to the module. Ignoring..." msgstr "" +"Настройка «%(opt_name)s» задана в %(file)s,\n" +" но не поддерживается данным модулем. Игнорирую..." #: ../gramps/gen/plug/_pluginreg.py:62 msgid "Stable" @@ -5183,6 +5238,8 @@ msgid "" "WARNING: Plugin %(plugin_name)s has no translation for any of your " "configured languages, using US English instead" msgstr "" +"ВНИМАНИЕ: Модуль %(plugin_name)s не переведён ни на один из языков, " +"которые указаны у Вас в настройках, будет использован английский язык" #: ../gramps/gen/plug/_pluginreg.py:1108 ../gramps/gen/plug/_pluginreg.py:1113 #, python-format @@ -5334,7 +5391,7 @@ msgstr "Влево, вверх" #: ../gramps/gen/plug/docgen/graphdoc.py:89 msgid "Compress to minimal size" -msgstr "" +msgstr "Сжать до минимального размера" #: ../gramps/gen/plug/docgen/graphdoc.py:90 msgid "Fill the given area" @@ -5342,7 +5399,7 @@ msgstr "Заполнить данную площадь" #: ../gramps/gen/plug/docgen/graphdoc.py:91 msgid "Expand uniformly" -msgstr "" +msgstr "Равномерно растянуть" #: ../gramps/gen/plug/docgen/graphdoc.py:93 msgid "Top" @@ -5451,6 +5508,19 @@ msgid "" "the node spacing.\n" " Expand will shrink the graph uniformly to fit the print area." msgstr "" +"Влияет на размещение узлов и масштабирование графа.\n" +"Если граф меньше, чем область для печати:\n" +" «Сжать» не изменит расстояние между узлами. \n" +" «Заполнить» увеличит расстояние между узлами, \n" +"заполняя область для печати и по горизонтали, и по вертикали.\n" +" «Растянуть» равномерно увеличит расстояние между узлами,\n" +"сохраняя пропорции между сторонами.\n" +"Если граф больше, чем область для печати:\n" +" «Сжать» упакует граф в более плотную форму, пожертвовав симметрией\n" +" «Заполнить» сожмёт граф до размера области для печати,\n" +"предварительно увеличив расстояние между узлами\n" +" «Растянуть» равномерно сожмёт граф до размера области\n" +"для печати, сохраняя пропорции между сторонами.\n" #: ../gramps/gen/plug/docgen/graphdoc.py:219 msgid "DPI" @@ -5782,7 +5852,7 @@ msgstr "'%s' НЕ для этой версии Gramps." #: ../gramps/gen/plug/utils.py:256 #, python-format msgid "It is for version %(v1)d.%(v2)d" -msgstr "" +msgstr "Предназначен для версии %(v1)d.%(v2)d" #: ../gramps/gen/plug/utils.py:266 #, python-format @@ -5969,6 +6039,8 @@ msgid "" "Family relationship translator not available for language '%s'. Using " "'english' instead." msgstr "" +"Перевод терминологии родственных отношений для языка «%s» не осуществлён. " +"Будет использована английская терминология." #: ../gramps/gen/utils/alive.py:114 msgid "death event without date" @@ -6018,7 +6090,7 @@ msgstr "дата, связанная с рождением супруга/-и, " #: ../gramps/gen/utils/alive.py:245 ../gramps/gen/utils/alive.py:256 msgid "a spouse's death-related date, " -msgstr "" +msgstr "дата, связанная со смертью супруга/-и, " #: ../gramps/gen/utils/alive.py:274 msgid "event with spouse" @@ -6231,7 +6303,7 @@ msgstr "семья" #: ../gramps/gen/utils/grampslocale.py:865 msgid "the place" -msgstr "" +msgstr "местоположение" #: ../gramps/gen/utils/grampslocale.py:867 msgid "the event" @@ -6243,20 +6315,20 @@ msgstr "хранилище" #: ../gramps/gen/utils/grampslocale.py:871 msgid "the note" -msgstr "" +msgstr "заметка" # !!!FIXME!!! #: ../gramps/gen/utils/grampslocale.py:873 msgid "the media" -msgstr "" +msgstr "документ" #: ../gramps/gen/utils/grampslocale.py:875 msgid "the source" -msgstr "" +msgstr "источник" #: ../gramps/gen/utils/grampslocale.py:877 msgid "the filter" -msgstr "" +msgstr "фильтр" #: ../gramps/gen/utils/grampslocale.py:879 msgid "See details" @@ -6550,6 +6622,8 @@ msgstr "" #, python-format msgid "Objects referenced by this note were missing in a file imported on %s." msgstr "" +"Объекты, на которые ссылалась эта заметка, отсутствовали в файле, " +"импортированном %s." #: ../gramps/grampsapp.py:137 #, python-format @@ -6572,6 +6646,11 @@ msgid "" "\n" "Gramps will terminate now." msgstr "" +"\n" +"У Вас не установлен пакет python bsddb3. Он требуется для запуска " +"Gramps.\n" +"\n" +"Сейчас Gramps завершит выполнение." #: ../gramps/grampsapp.py:377 ../gramps/grampsapp.py:384 #: ../gramps/grampsapp.py:432 @@ -6788,7 +6867,7 @@ msgstr "ссылка на лицо" #: ../gramps/gui/clipboard.py:690 msgid "Child ref" -msgstr "" +msgstr "Ссылка на ребёнка" #: ../gramps/gui/clipboard.py:699 #, python-format @@ -6965,7 +7044,7 @@ msgstr "Буфер обмена" #: ../gramps/gui/clipboard.py:1484 ../gramps/gui/plug/quick/_quicktable.py:131 #, python-format msgid "the object|See %s details" -msgstr "" +msgstr "См. детали для %s" #: ../gramps/gui/clipboard.py:1490 ../gramps/gui/plug/quick/_quicktable.py:141 #, python-format @@ -7097,6 +7176,9 @@ msgid "" "Enter your information so people can contact you when you distribute your " "Family Tree" msgstr "" +"Введите информацию о себе, чтобы люди могли с Вами связаться, если Вы " +"опубликуете " +"информацию из Вашего древа" #: ../gramps/gui/configure.py:509 #: ../gramps/gui/editors/displaytabs/addrembedlist.py:75 @@ -7178,59 +7260,59 @@ msgstr "Форматы ID" #: ../gramps/gui/configure.py:551 msgid "Set the colors used for boxes in the graphical views" -msgstr "" +msgstr "Настройки цветов, используемых в видах с графическими отображениями" #: ../gramps/gui/configure.py:553 msgid "Gender Male Alive" -msgstr "" +msgstr "Живые мужского пола" #: ../gramps/gui/configure.py:555 msgid "Border Male Alive" -msgstr "" +msgstr "Граница для живых мужского пола" #: ../gramps/gui/configure.py:557 msgid "Gender Male Death" -msgstr "" +msgstr "Умершие мужского пола" #: ../gramps/gui/configure.py:559 msgid "Border Male Death" -msgstr "" +msgstr "Граница для умерших мужского пола" #: ../gramps/gui/configure.py:561 msgid "Gender Female Alive" -msgstr "" +msgstr "Живые женского пола" #: ../gramps/gui/configure.py:563 msgid "Border Female Alive" -msgstr "" +msgstr "Граница для живых женского пола" #: ../gramps/gui/configure.py:565 msgid "Gender Female Death" -msgstr "" +msgstr "Умершие женского пола" #: ../gramps/gui/configure.py:567 msgid "Border Female Death" -msgstr "" +msgstr "Граница для умерших женского пола" #: ../gramps/gui/configure.py:577 msgid "Gender Unknown Alive" -msgstr "" +msgstr "Живые неизвестного пола" #: ../gramps/gui/configure.py:579 msgid "Border Unknown Alive" -msgstr "" +msgstr "Граница для живых неизвестного пола" #: ../gramps/gui/configure.py:581 msgid "Gender Unknown Death" -msgstr "" +msgstr "Умершие неизвестного пола" #: ../gramps/gui/configure.py:583 msgid "Border Unknown Death" -msgstr "" +msgstr "Граница для умерших неизвестного пола" #: ../gramps/gui/configure.py:585 msgid "Colors" -msgstr "" +msgstr "Цвета" #: ../gramps/gui/configure.py:593 msgid "Suppress warning when adding parents to a child." @@ -7299,7 +7381,7 @@ msgstr "Редактировать" #: ../gramps/gui/configure.py:981 msgid "Consider single pa/matronymic as surname" -msgstr "" +msgstr "Использовать одиночное отчество/матроним как фамилию" #: ../gramps/gui/configure.py:995 msgid "Date format" @@ -7307,19 +7389,19 @@ msgstr "Формат дат" #: ../gramps/gui/configure.py:1003 msgid "Years" -msgstr "" +msgstr "Года" #: ../gramps/gui/configure.py:1004 msgid "Years, Months" -msgstr "" +msgstr "Года, месяцы" #: ../gramps/gui/configure.py:1005 msgid "Years, Months, Days" -msgstr "" +msgstr "Года, месяцы, дни" #: ../gramps/gui/configure.py:1017 msgid "Age display precision (requires restart)" -msgstr "" +msgstr "Точность при отображении возраста (требуется перезапуск)" #: ../gramps/gui/configure.py:1030 msgid "Calendar on reports" @@ -7356,7 +7438,7 @@ msgstr "Показывать текст на кнопках боковой па #: ../gramps/gui/configure.py:1093 msgid "Show close button in gramplet bar tabs" -msgstr "" +msgstr "Показывать кнопку для закрытия панели грамплетов" #: ../gramps/gui/configure.py:1105 msgid "Missing surname" @@ -7422,7 +7504,7 @@ msgstr "Среднее количество лет между поколения #: ../gramps/gui/configure.py:1191 msgid "Markup for invalid date format" -msgstr "Пометка для индивидуальных форматов имен" +msgstr "Разметка для индивидуальных форматов имен" #: ../gramps/gui/configure.py:1194 #, python-format @@ -7441,6 +7523,19 @@ msgid "" "For example: <u><b>%s</b></u>\n" "will display <u><b>Underlined bold date</b></u>.\n" msgstr "" +"Возможная разметка:\n" +"<b><b>Жирный шрифт</b></b>\n" +"<big><big>Увеличенный шрифт</big></big>\n" +"<i><i>Курсив</i></i>\n" +"<s><s>Зачёркнутый текст</s></s>\n" +"<sub><sub>Нижний индекс</sub></sub>\n" +"<sup><sup>Верхний индекс</sup></sup>\n" +"<small><small>Уменьшенный шрифт</small></small>\n" +"<tt><tt>Моноширинный шрифт</tt></tt>\n" +"<u><u>Подчёркнутый текст</u></u>\n" +"\n" +"Например: <u><b>%s</b></u>\n" +"отобразит <u><b>подчёркнутую дату жирным шрифтом</b></u>.\n" #: ../gramps/gui/configure.py:1208 msgid "Dates" @@ -7448,11 +7543,11 @@ msgstr "Даты" #: ../gramps/gui/configure.py:1218 msgid "Add default source on GEDCOM import" -msgstr "" +msgstr "Добавлять источник по умолчанию при импорте из GEDCOM" #: ../gramps/gui/configure.py:1222 msgid "Add tag on import" -msgstr "" +msgstr "Добавлять метку при импорте" #: ../gramps/gui/configure.py:1233 msgid "Enable spelling checker" @@ -7569,7 +7664,7 @@ msgstr "С_топ" #: ../gramps/gui/dbloader.py:138 msgid "Gramps: Import Family Tree" -msgstr "" +msgstr "Gramps: Импортировать древо" #: ../gramps/gui/dbloader.py:143 ../gramps/gui/grampsgui.py:203 msgid "Import" @@ -7639,7 +7734,7 @@ msgstr "Необходимо обновить базу данных BSDDB!" #: ../gramps/gui/dbloader.py:332 msgid "I have made a backup, please upgrade my tree" -msgstr "" +msgstr "У меня есть резерная копия, моё древо можно обновить" #: ../gramps/gui/dbloader.py:394 msgid "All files" @@ -8197,7 +8292,7 @@ msgstr "" #: ../gramps/gui/editors/displaytabs/backreflist.py:183 msgid "Cannot open new citation editor" -msgstr "" +msgstr "Не могу редактировать цитату" #: ../gramps/gui/editors/displaytabs/backrefmodel.py:52 #, python-format @@ -8291,7 +8386,7 @@ msgstr "Страница" #: ../gramps/gui/editors/displaytabs/citationembedlist.py:93 msgid "_Source Citations" -msgstr "" +msgstr "Цитаты источника" #: ../gramps/gui/editors/displaytabs/citationembedlist.py:173 #: ../gramps/gui/editors/displaytabs/citationembedlist.py:183 @@ -8894,12 +8989,12 @@ msgstr "Редактирование Источника (%s)" #: ../gramps/gui/editors/editcitation.py:462 #, python-format msgid "Add Citation (%s)" -msgstr "" +msgstr "Добавить цитату (%s)" #: ../gramps/gui/editors/editcitation.py:468 #, python-format msgid "Edit Citation (%s)" -msgstr "" +msgstr "Редактировать цитату (%s)" #: ../gramps/gui/editors/editcitation.py:546 #, python-format @@ -8953,7 +9048,7 @@ msgstr "Выбор даты" #: ../gramps/gui/editors/editevent.py:65 msgid "manual|Editing_Information_About_Events" -msgstr "" +msgstr "Редактирование информации о событиях" #: ../gramps/gui/editors/editevent.py:99 #: ../gramps/gui/editors/editeventref.py:241 @@ -9777,7 +9872,7 @@ msgstr "Удалить Источник (%s)" #: ../gramps/gui/editors/edittaglist.py:50 ../gramps/gui/views/tags.py:88 msgid "manual|Tags" -msgstr "" +msgstr "Метки" #: ../gramps/gui/editors/edittaglist.py:70 #: ../gramps/gui/editors/edittaglist.py:128 @@ -9838,7 +9933,7 @@ msgstr "Фильтры источников" #: ../gramps/gui/editors/filtereditor.py:90 msgid "Media Filters" -msgstr "" +msgstr "Фильтры документов" #: ../gramps/gui/editors/filtereditor.py:91 msgid "Repository Filters" @@ -10113,7 +10208,7 @@ msgstr "Том/Страница" #: ../gramps/gui/filters/sidebar/_citationsidebarfilter.py:107 msgid "Minimum Confidence|Min. Conf." -msgstr "" +msgstr "Мин. достов." #: ../gramps/gui/filters/sidebar/_citationsidebarfilter.py:110 #: ../gramps/gui/filters/sidebar/_eventsidebarfilter.py:110 @@ -10319,7 +10414,7 @@ msgstr "Веерная карта" #: ../gramps/plugins/gramplet/gramplet.gpr.py:135 #: ../gramps/plugins/view/fanchartdescview.py:74 msgid "Descendant Fan Chart" -msgstr "" +msgstr "Веерная карта потомков" #: ../gramps/gui/grampsgui.py:158 msgid "Font" @@ -10799,19 +10894,19 @@ msgstr "Объединить цитаты" #: ../gramps/gui/merge/mergeevent.py:48 msgid "manual|Merge_Events" -msgstr "" +msgstr "Объединение событий" #: ../gramps/gui/merge/mergeevent.py:70 msgid "Merge Events" -msgstr "Объединение событий" +msgstr "Объединить события" #: ../gramps/gui/merge/mergefamily.py:49 msgid "manual|Merge_Families" -msgstr "" +msgstr "Объединение семей" #: ../gramps/gui/merge/mergefamily.py:71 msgid "Merge Families" -msgstr "Объединение семей" +msgstr "Объединить семьи" #: ../gramps/gui/merge/mergefamily.py:225 #: ../gramps/gui/merge/mergeperson.py:340 @@ -10821,11 +10916,11 @@ msgstr "Ошибка объединения людей" #: ../gramps/gui/merge/mergemedia.py:47 msgid "manual|Merge_Media_Objects" -msgstr "" +msgstr "Объединение документов" #: ../gramps/gui/merge/mergenote.py:47 msgid "manual|Merge_Notes" -msgstr "" +msgstr "Объединение заметок" #: ../gramps/gui/merge/mergenote.py:96 msgid "flowed" @@ -10889,7 +10984,7 @@ msgstr "Объединение мест" #: ../gramps/gui/merge/mergerepository.py:46 msgid "manual|Merge_Repositories" -msgstr "" +msgstr "Объединение хранилищ" #: ../gramps/gui/merge/mergesource.py:48 msgid "manual|Merge_Sources" @@ -11302,7 +11397,7 @@ msgstr "" #: ../gramps/gui/plug/export/_exportassistant.py:600 msgid "Error exporting your Family Tree" -msgstr "" +msgstr "Ошибка при экспорте древа" #: ../gramps/gui/plug/export/_exportoptions.py:57 msgid "Selecting Preview Data" @@ -11495,7 +11590,7 @@ msgstr "Запустить" #: ../gramps/gui/plug/report/_bookdialog.py:352 msgid "Name of the book. MANDATORY" -msgstr "" +msgstr "Название книги. ОБЯЗАТЕЛЬНО" #: ../gramps/gui/plug/report/_bookdialog.py:412 msgid "New Book" @@ -11545,11 +11640,11 @@ msgstr "" #: ../gramps/gui/plug/report/_bookdialog.py:584 msgid "No selected book item" -msgstr "" +msgstr "Не выбран элемент книги" #: ../gramps/gui/plug/report/_bookdialog.py:585 msgid "Please select a book item to configure." -msgstr "" +msgstr "Выберите элемент книги для настройки." #: ../gramps/gui/plug/report/_bookdialog.py:648 msgid "Setup" @@ -11565,11 +11660,11 @@ msgstr "Доступные элементы" #: ../gramps/gui/plug/report/_bookdialog.py:699 msgid "No items" -msgstr "" +msgstr "Нет элементов" #: ../gramps/gui/plug/report/_bookdialog.py:699 msgid "This book has no items." -msgstr "" +msgstr "В этой книге нет элементов." #: ../gramps/gui/plug/report/_bookdialog.py:710 msgid "No book name" @@ -11891,6 +11986,9 @@ msgid "" "To build it for Gramps see http://www.gramps-project.org/wiki/index.php?" "title=GEPS_029:_GTK3-GObject_introspection_Conversion#Spell_Check_Install" msgstr "" +"Не загружен GtkSpell. Проверка правописания недоступна.\n" +"Для сборки GtkSpell см. http://www.gramps-project.org/wiki/index.php?" +"title=GEPS_029:_GTK3-GObject_introspection_Conversion#Spell_Check_Install" #: ../gramps/gui/spell.py:96 msgid "Off" @@ -12264,6 +12362,8 @@ msgstr "" #: ../gramps/gui/viewmanager.py:1221 msgid "View failed to load. Check error output." msgstr "" +"Не удалось загрузить вид. Проверьте сообщения об ошибках в окне, из которого " +"запущен Gramps." # statistics over import results #: ../gramps/gui/viewmanager.py:1360 @@ -12733,7 +12833,7 @@ msgstr "Безымянный грамплет" #: ../gramps/gui/widgets/grampletbar.py:342 msgid "Gramplet Bar" -msgstr "" +msgstr "Панель грамплетов" #: ../gramps/gui/widgets/grampletbar.py:344 msgid "" @@ -13033,11 +13133,11 @@ msgstr "Указатель" #: ../gramps/plugins/docgen/svgdrawdoc.py:343 msgid "SVG background color" -msgstr "" +msgstr "Фон SVG" #: ../gramps/plugins/docgen/svgdrawdoc.py:345 msgid "transparent background" -msgstr "" +msgstr "прозрачный фон" #: ../gramps/plugins/docgen/svgdrawdoc.py:346 #: ../gramps/plugins/drawreport/fanchart.py:668 @@ -13046,7 +13146,7 @@ msgstr "белый" #: ../gramps/plugins/docgen/svgdrawdoc.py:347 msgid "black" -msgstr "" +msgstr "чёрный" #: ../gramps/plugins/docgen/svgdrawdoc.py:348 msgid "red" @@ -13058,23 +13158,23 @@ msgstr "зелёный" #: ../gramps/plugins/docgen/svgdrawdoc.py:350 msgid "blue" -msgstr "" +msgstr "синий" #: ../gramps/plugins/docgen/svgdrawdoc.py:351 msgid "cyan" -msgstr "" +msgstr "голубой" #: ../gramps/plugins/docgen/svgdrawdoc.py:352 msgid "magenta" -msgstr "" +msgstr "фиолетовый" #: ../gramps/plugins/docgen/svgdrawdoc.py:353 msgid "yellow" -msgstr "" +msgstr "жёлтый" #: ../gramps/plugins/docgen/svgdrawdoc.py:354 msgid "The color, if any, of the SVG background" -msgstr "" +msgstr "Цвет фона для SVG" #: ../gramps/plugins/drawreport/ancestortree.py:74 #: ../gramps/plugins/drawreport/descendtree.py:61 @@ -13773,7 +13873,7 @@ msgstr "Древо потомков для %(father)s и %(mother)s." #: ../gramps/plugins/drawreport/descendtree.py:214 msgid "Descendant Graph" -msgstr "" +msgstr "Граф потомков" #: ../gramps/plugins/drawreport/descendtree.py:326 #, python-format @@ -14064,7 +14164,7 @@ msgstr "Печатать радиальный текст прямо или по #: ../gramps/plugins/drawreport/fanchart.py:680 msgid "Draw empty boxes" -msgstr "" +msgstr "Рисовать пустые ячейки" #: ../gramps/plugins/drawreport/fanchart.py:681 msgid "Draw the background although there is no information" @@ -14072,7 +14172,7 @@ msgstr "" #: ../gramps/plugins/drawreport/fanchart.py:685 msgid "Use one font style for all generations" -msgstr "" +msgstr "Использовать одинаковый стиль шрифта для всех поколений" #: ../gramps/plugins/drawreport/fanchart.py:687 msgid "" @@ -14466,7 +14566,7 @@ msgstr "" #: ../gramps/plugins/export/export.gpr.py:41 msgid "CSV spreadsheet options" -msgstr "" +msgstr "Настройки CSV" #: ../gramps/plugins/export/export.gpr.py:52 msgid "Web Family Tree" @@ -15423,7 +15523,7 @@ msgstr "Отображает документы для выбранного ис #: ../gramps/plugins/gramplet/gramplet.gpr.py:529 msgid "Citation Gallery" -msgstr "" +msgstr "Галерея цитаты" #: ../gramps/plugins/gramplet/gramplet.gpr.py:530 msgid "Gramplet showing media objects for a citation" @@ -15527,7 +15627,7 @@ msgstr "Отображает заметки для выбранного доку #: ../gramps/plugins/gramplet/gramplet.gpr.py:711 msgid "Person Citations" -msgstr "" +msgstr "Цитаты для лица" #: ../gramps/plugins/gramplet/gramplet.gpr.py:712 msgid "Gramplet showing the citations for a person" @@ -15535,7 +15635,7 @@ msgstr "Отображает все цитаты для выбранного л #: ../gramps/plugins/gramplet/gramplet.gpr.py:725 msgid "Event Citations" -msgstr "" +msgstr "Цитаты для события" #: ../gramps/plugins/gramplet/gramplet.gpr.py:726 msgid "Gramplet showing the citations for an event" @@ -15551,7 +15651,7 @@ msgstr "Отображает все цитаты для выбранной се #: ../gramps/plugins/gramplet/gramplet.gpr.py:753 msgid "Place Citations" -msgstr "" +msgstr "Цитаты для местоположения" #: ../gramps/plugins/gramplet/gramplet.gpr.py:754 msgid "Gramplet showing the citations for a place" @@ -17045,7 +17145,7 @@ msgstr "причина смерти" #: ../gramps/plugins/webreport/narrativeweb.py:4292 #: ../gramps/plugins/webreport/narrativeweb.py:6642 msgid "Gramps ID" -msgstr "Gramps ID" +msgstr "" #: ../gramps/plugins/importer/importcsv.py:226 msgid "Gramps id" @@ -17360,7 +17460,7 @@ msgstr " Заметка %(id)s с %(id2)s\n" #: ../gramps/plugins/importer/importxml.py:298 #, python-format msgid " Citation %(id)s with %(id2)s\n" -msgstr "" +msgstr " Цитата %(id)s с %(id2)s\n" #: ../gramps/plugins/importer/importxml.py:306 #, python-format @@ -17448,6 +17548,9 @@ msgid "" "\n" "Objects that are candidates to be merged:\n" msgstr "" +"\n" +"\n" +"Объекты-кандидаты на объединение:\n" #: ../gramps/plugins/importer/importxml.py:820 #: ../gramps/plugins/importer/importxml.py:1257 @@ -24553,8 +24656,8 @@ msgstr[2] "Найдено %(quantity)d ссылок на несуществую msgid "%(quantity)d tag object was referenced but not found\n" msgid_plural "%(quantity)d tag objects were referenced but not found\n" msgstr[0] "" -msgstr[1] "Найдено %(quantity)d ссылки на несуществующие комментарии\n" -msgstr[2] "Найдено %(quantity)d ссылок на несуществующие комментарии\n" +msgstr[1] "" +msgstr[2] "" #: ../gramps/plugins/tool/check.py:2205 #, python-format From 8b37ca4119dff924ff3116c0c4161e9cd095b409 Mon Sep 17 00:00:00 2001 From: Benny Malengier <benny.malengier@gramps-project.org> Date: Wed, 19 Jun 2013 06:56:06 +0000 Subject: [PATCH 02/25] GTK3: convert deprecated code for the indicator in entryfield svn: r22518 --- gramps/gui/widgets/monitoredwidgets.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gramps/gui/widgets/monitoredwidgets.py b/gramps/gui/widgets/monitoredwidgets.py index 059db661a..f2ab844ad 100644 --- a/gramps/gui/widgets/monitoredwidgets.py +++ b/gramps/gui/widgets/monitoredwidgets.py @@ -180,15 +180,17 @@ class MonitoredEntryIndicator(MonitoredEntry): autolist=None, changed=None): MonitoredEntry.__init__(self, obj, set_val, get_val, read_only, autolist, changed) + self.origcolor = obj.get_style_context().get_color(Gtk.StateType.NORMAL) if get_val(): self.indicatorshown = False else: self.indicatorshown = True self.indicator = indicator self.obj.set_text(indicator) - self.obj.modify_text(Gtk.StateType.NORMAL, - Gdk.color_parse('grey')) - self.obj.modify_font(Pango.FontDescription('sans italic')) + rgba = Gdk.RGBA() + Gdk.RGBA.parse(rgba, 'grey') + self.obj.override_color(Gtk.StateType.NORMAL, rgba) + self.obj.override_font(Pango.FontDescription('sans italic')) self.fockey = self.obj.connect('focus-in-event', self._obj_focus) @@ -203,8 +205,8 @@ class MonitoredEntryIndicator(MonitoredEntry): callback for when prefix obtains focus """ self.set_text('') - self.obj.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse('black')) - self.obj.modify_font(Pango.FontDescription('normal')) + self.obj.override_color(Gtk.StateType.NORMAL, self.origcolor) + self.obj.override_font(Pango.FontDescription('normal')) self.obj.disconnect(self.fockey) self.indicatorshown = False return False From a971eb7d666dbf48b3cc954f0d8409442eac00e4 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Wed, 19 Jun 2013 16:07:16 +0000 Subject: [PATCH 03/25] RU translation update fix a missing newline svn: r22520 --- po/ru.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/ru.po b/po/ru.po index 497724f93..3279790f4 100644 --- a/po/ru.po +++ b/po/ru.po @@ -5520,7 +5520,7 @@ msgstr "" " «Заполнить» сожмёт граф до размера области для печати,\n" "предварительно увеличив расстояние между узлами\n" " «Растянуть» равномерно сожмёт граф до размера области\n" -"для печати, сохраняя пропорции между сторонами.\n" +"для печати, сохраняя пропорции между сторонами." #: ../gramps/gen/plug/docgen/graphdoc.py:219 msgid "DPI" From 8ca5d92883041c95fbf2b5e1830b100e7bb8fb74 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Wed, 19 Jun 2013 20:29:57 +0000 Subject: [PATCH 04/25] Copied my 6812 fix port for gtk3 Integrated from gramps40 branch svn: r22525 --- gramps/plugins/view/pedigreeview.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gramps/plugins/view/pedigreeview.py b/gramps/plugins/view/pedigreeview.py index 05c2451ec..363f93f94 100644 --- a/gramps/plugins/view/pedigreeview.py +++ b/gramps/plugins/view/pedigreeview.py @@ -606,6 +606,11 @@ class PedigreeView(NavigationView): self.scrolledwindow.add_with_viewport(event_box) self.table = Gtk.Grid() + # force LTR layout of the tree, even though the text might be RTL! + # this way the horizontal scroll preferences will be correct always + if self.table.get_direction() == Gtk.TextDirection.RTL: + self.table.set_direction(Gtk.TextDirection.LTR) + self.table.set_halign(Gtk.Align.END) event_box.add(self.table) event_box.get_parent().set_shadow_type(Gtk.ShadowType.NONE) self.table.set_row_spacing(1) @@ -1101,6 +1106,10 @@ class PedigreeView(NavigationView): elif self.tree_direction == 3: child_arrow = Gtk.ArrowType.RIGHT parent_arrow = Gtk.ArrowType.LEFT + # GTK will reverse the icons for RTL locales, but we force LTR layout of the table, + # so reverse the arrows back... + if self.tree_direction in [2,3] and self.scrolledwindow.get_direction() == Gtk.TextDirection.RTL: + child_arrow, parent_arrow = parent_arrow, child_arrow button = Gtk.Button() button.add(Gtk.Arrow.new(child_arrow, Gtk.ShadowType.IN)) From dc690b70711eff847ba93d6541456b4679ec0fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Thu, 20 Jun 2013 07:21:40 +0000 Subject: [PATCH 05/25] Add Ukrainian holidays (contributions by Fedir) svn: r22529 --- gramps/plugins/lib/holidays.xml.in | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gramps/plugins/lib/holidays.xml.in b/gramps/plugins/lib/holidays.xml.in index 30d57d46c..619e0291f 100644 --- a/gramps/plugins/lib/holidays.xml.in +++ b/gramps/plugins/lib/holidays.xml.in @@ -499,4 +499,41 @@ <date value="*/dec/25" type="national" offset="+2" name="Christmas Day Holiday" if="dow(y, m, d) > 5"/> <date value="*/dec/26" type="national" offset="+2" name="Boxing Day Holiday" if="dow(y, m, d) > 5"/> </country> + <country _name="Ukraine"> + <date value="*/1/1" type="national" name="Новий Рік"/> + <date value="*/1/6" type="religious" name="Святий Вечір"/> + <date value="*/1/7" type="religious" name="Різдво"/> + <date value="*/1/13" type="religious" name="Маланка"/> + <date value="*/1/14" type="religious" name="Старий Новий рік, Щедрий вечір"/> + <date value="*/1/19" type="religious" name="Водохреща"/> + <date value="*/1/22" type="national" name="День Соборності України"/> + <date value="*/2/14" type="secular" name="День закоханих"/> + <date value="*/2/15" type="religious" name="Стрітення"/> + <date value="*/3/8" type="secular" name="Міжнародний жіночий день"/> + <date value="*/3/20" type="secular" name="Весняне Рівнодення"/> + <date value="*/4/1" type="secular" name="День сміху"/> + <date value="*/4/7" type="religious" name="Благовіщення"/> + <date value="2010/4/4" type="religious" name="Великдень"/> + <date value="2011/4/24" type="religious" name="Великдень"/> + <date value="2012/4/15" type="religious" name="Великдень"/> + <date value="2013/5/5" type="religious" name="Великдень"/> + <date value="2014/4/20" type="religious" name="Великдень"/> + <date value="2015/4/12" type="religious" name="Великдень"/> + <date value="2016/5/1" type="religious" name="Великдень"/> + <date value="2017/4/16" type="religious" name="Великдень"/> + <date value="2018/4/8" type="religious" name="Великдень"/> + <date value="2019/4/28" type="religious" name="Великдень"/> + <date value="2020/4/19" type="religious" name="Великдень"/> + <date value="*/5/1" type="national" name="День Праці"/> + <date value="*/6/21" type="secular" name="Весняне Сонцестояння"/> + <date value="*/6/28" type="national" name="День Конституції України"/> + <date value="*/7/7" type="religious" name="Івана Купала"/> + <date value="*/8/19" type="religious" name="Спаса"/> + <date value="*/8/24" type="national" name="День Незалежності України"/> + <date value="*/9/22" type="secular" name="Осіннє Рівнодення"/> + <date value="*/10/14" type="religious" name="Покрова, День Українського козацтва"/> + <date value="*/12/13" type="religious" name="Андрія"/> + <date value="*/12/19" type="religious" name="Миколая"/> + <date value="*/12/21" type="secular" name="Осіннє Сонцестояння"/> + </country> </calendar> From 87499c96bcc199212962e6461f6b5c2e4dd9f728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Thu, 20 Jun 2013 07:30:05 +0000 Subject: [PATCH 06/25] Add Ukrainian relationship calculator (contributions by Fedir); not yet included on 4.0.x branch svn: r22530 --- gramps/plugins/rel/rel_uk.py | 908 +++++++++++++++++++++++++++ gramps/plugins/rel/relplugins.gpr.py | 16 + 2 files changed, 924 insertions(+) create mode 100644 gramps/plugins/rel/rel_uk.py diff --git a/gramps/plugins/rel/rel_uk.py b/gramps/plugins/rel/rel_uk.py new file mode 100644 index 000000000..586d7398f --- /dev/null +++ b/gramps/plugins/rel/rel_uk.py @@ -0,0 +1,908 @@ +# -*- coding: utf-8 -*- +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2003-2005 Donald N. Allingham +# Copyright (C) 2008 Brian G. Matherly +# Copyright (C) 2013 Oleh Petriv <olehsbox[at]yahoo.com> +# Copyright (C) 2013 Fedir Zinchuk <fedikw[at]gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# UA: Пояснення щодо родинних відносин див. relationship.py +# EN: Ukrainian relationship calculator. For more information see relationship.py + +""" +Ukrainian-specific definitions of relationships +""" +from __future__ import unicode_literals +#------------------------------------------------------------------------- +# +# GRAMPS modules +# +#------------------------------------------------------------------------- + +from gramps.gen.lib import Person +import gramps.gen.relationship + +#------------------------------------------------------------------------- + + +# Relationship levels + +_level_name = [ + "", + "рідний(-на)", "двоюрідний(-на)", "троюрідний(-на)", + "чотириюрідний(-на)", "п'ятиюрідний(-на)", "шестиюрідний(-на)", + "семиюрідний(-на)", "восьмиюрідний(-на)", "дев'ятиюрідний(-на)", + "десятиюрідний(-на)", "одинадцятиюрідний(-на)", + "дванадцятиюрідний(-на)", "тринадцятиюрідний(-на)", + "чотирнадцятиюрідний(-на)", "п'ятнадцятиюрідний(-на)", + "шістнадцятиюрідний(-на)", "сімнадцятиюрідний(-на)", + "вісімнадцятиюрідний(-на)", "дев'ятнадцятиюрідний(-на)", + "двадцятиюрідний(-на)" +] +_level_name_male = [ + "", + "рідний", "двоюрідний", "троюрідний", + "чотириюрідний", "п'ятиюрідний", "шестиюрідний", + "семиюрідний", "восьмиюрідний", "дев'ятиюрідний", + "десятиюрідний", "одинадцятиюрідний", "дванадцятиюрідний", + "тринадцятиюрідний", "чотирнадцятиюрідний", "п'ятнадцятиюрідний", + "шістнадцятиюрідний", "сімнадцятиюрідний", "вісімнадцятиюрідний", + "дев'ятнадцятиюрідний", "двадцятиюрідний" +] +_level_name_female = [ + "", + "рідна", "двоюрідна", "троюрідна", + "чотириюріднa", "п'ятиюрідна", "шестиюрідна", + "семиюрідна", "восьмиюрідна", "дев'ятиюрідна", + "десятиюрідна", "одинадцятиюрідна", "дванадцятиюрідна", + "тринадцятиюрідна", "чотирнадцятиюрідна", "п'ятнадцятиюрідна", + "шістнадцятиюрідна", "сімнадцятиюрідна", "вісімнадцятиюрідна", + "дев'ятнадцятиюрідна", "двадцятиюрідна" +] + +_son_level = [ + "", + "син", + "внук", + "правнук", + "праправнук", +] + +_daughter_level = [ + "", + "дочка", + "онука", + "правнучка", + "праправнучка", +] + +_father_level = [ + "", + "батько", + "дід", + "прадід", + "прапрадід", +] + +_mother_level = [ + "", + "мати", + "баба", + "прабаба", + "прапрабаба", +] + +_uncle_level = [ + "", + "брат", # not used, just for keep count + "дядько", + "дід", + "прадід", + "прапрадід", +] + +_aunt_level = [ + "", + "сестра", # not used, just for keep count + "тітка", + "баба", + "прабаба", + "прапрабаба", +] + + +#------------------------------------------------------------------------- +# +# +# +#------------------------------------------------------------------------- + +class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): + """ + RelationshipCalculator Class + """ + + def __init__(self): + gramps.gen.relationship.RelationshipCalculator.__init__(self) + + def get_sword_distaff(self, level, reltocommon, gender = gen.lib.Person.UNKNOWN): + """ + Generate relationships 'by male line' or 'by female line', + specific for Ukraine + """ + if level <= 1: + return "" + + # test the relation line + by_line = '' + for g in reltocommon: + if(by_line and by_line != g): + by_line = '' + break + by_line = g + + if by_line == self.REL_FATHER and gender == gen.lib.Person.MALE: + # by male line + return " по чоловічій лінії" + elif by_line == self.REL_MOTHER and gender == gen.lib.Person.FEMALE: + # by male line + return " по жіночій лінії" + elif reltocommon[0] == self.REL_FATHER: + # From father's side + return " по батькові" + elif reltocommon[0] == self.REL_MOTHER: + # From mother's side + return " по матері" + else: + return "" + + + def get_son(self, level, inlaw=''): + """ + Provides information how much male descendant is related to this person + """ + # Define if the person is natural relative or in law + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if level >= 0 and level < len(_son_level): + return t_inlaw +_son_level[level] + else: + return t_inlaw + "пра(пра)внук у %d поколінні" % (level + 1) + + + + def get_daughter(self, level, inlaw=''): + """ + Provides information how much female descendant is related to this person + """ + # Define if the person is natural relative or in law + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названа " + + if level >= 0 and level < len(_daughter_level): + return t_inlaw + _daughter_level[level] + else: + return t_inlaw + "пра(пра)внучка у %d поколінні" % (level + 1) + + + def get_child_unknown(self, level, inlaw=''): + """ + Provides information how much descendant of unknown gender is related to this person + """ + # Define if the person is natural relative or in law + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий(на) " + + if level == 1: + return t_inlaw + "внук(а)" + else: + return t_inlaw + "пра(пра)внук(а) у %d поколінні" % (level + 1) + + + def get_father(self, level, reltocommon, inlaw=''): + """ + Provides information how much male ancestor (for example father) + is related to the given person + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if level >= 0 and level < len(_father_level): + # If you know exact name of relationship - use it + if level == 1: + # Father + return t_inlaw + _father_level[level] + else: + # Grandfather, Greatgrandfather, Greatgreatgrandfather + return t_inlaw + _father_level[level] \ + + self.get_sword_distaff(level, reltocommon, gen.lib.Person.MALE) + else: + # For deep generations + return t_inlaw + "пра(пра)дід у %d поколінні" % (level + 1) \ + + self.get_sword_distaff(level, reltocommon, gen.lib.Person.MALE) + + + def get_mother(self, level, reltocommon, inlaw=''): + """ + Provides information how much female ancestor (for example mother) + is related to the given person + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названа " + + if level >= 0 and level < len(_mother_level): + # If you know exact name of relationship - use it + if level == 1: + # Mother + return t_inlaw + _mother_level[level] + + else: + # Grandmother, Greatgrandmother, Greatgreatgrandmother + return t_inlaw + _mother_level[level] \ + + self.get_sword_distaff(level, reltocommon, gen.lib.Person.FEMALE) + else: + # For deep generations + return t_inlaw + "пра(пра)баба у %d поколінні" % (level + 1) \ + + self.get_sword_distaff(level, reltocommon, gen.lib.Person.FEMALE) + + + + def get_parent_unknown(self, level, reltocommon, inlaw=''): + """ + Provides information how much an ancestor of unknown gender + is related to the given person (unknown sex) + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if level == 1: + return t_inlaw + "батько/мати" + else: + return t_inlaw + "пра(пра)- дід/баба у %d поколінні" % (level + 1) \ + + self.get_sword_distaff(level, reltocommon) + + + def get_uncle(self, level, reltocommon, inlaw = ''): + """ + Return ancle generation name + """ + + if reltocommon[0] == self.REL_FATHER: + # from Father + if level < len(_uncle_level): + if level == 2: + return _uncle_level[level] + " (стрийко)" + else: + return "двоюрідний " + _uncle_level[level] \ + + " по батькові" + else: + return "двоюрідний пра(пра)дід в %d поколінні по батькові" % (level) + elif reltocommon[0] == self.REL_MOTHER: + # from Mother + if level < len(_uncle_level): + if level == 2: + return _uncle_level[level] + " (вуйко)" + else: + return "двоюрідний " + _uncle_level[level] \ + + " по матері" + else: + return "двоюрідний пра(пра)дід в %d поколінні по матері" % (level) + else: + if level == 2: + return "дядько (стрийко/вуйко)" + else: + return "двоюрідний пра(пра)дід в %d поколінні" % (level) + + + def get_aunt(self, level, reltocommon, inlaw = ''): + """ + Return aunt generation name + """ + + if reltocommon[0] == self.REL_FATHER: + # from Father + if level < len(_aunt_level): + if level == 2: + return _aunt_level[level] + " (стрийна)" + else: + return "двоюрідна " + _aunt_level[level] \ + + " по батькові" + else: + return "двоюрідна пра(пра)баба в %d поколінні по батькові" \ + % (level) + elif reltocommon[0] == self.REL_MOTHER: + # from Mother + if level < len(_aunt_level): + if level == 2: + return _aunt_level[level] + " (вуйна)" + else: + return "двоюрідна " + _aunt_level[level] \ + + " по матері" + else: + return "двоюрідна пра(пра)баба в %d поколінні по матері" \ + % (level) + else: + if level == 2: + return "тітка (стрийна/вуйна)" + else: + return "двоюрідна пра(пра)баба в %d поколінні" % (level) + + + def get_uncle_aunt_unknown(self, level, reltocommon, inlaw = ''): + """ + Return uncle/aunt generation name when gender unknown + """ + + if reltocommon[0] == self.REL_FATHER: + # from Father + if level == 2: + return "дядько/тітка (стрийко)" + else: + return "двоюрідний дід/баба в %d поколінні по батькові" \ + % (level) + elif reltocommon[0] == self.REL_MOTHER: + # from Mother + if level == 2: + return "дядько/тітка (вуйко)" + else: + return "двоюрідний дід/баба в %d поколінні по матері" \ + % (level) + else: + if level == 2: + return "дядько/тітка" + else: + return "двоюрідний дід/баба в %d поколінні" % (level) + + + def get_nephew(self, level, reltocommon, inlaw = ''): + """ + Return nephew generation name + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if level == 2: + if reltocommon[0] == self.REL_FATHER : + # Brother's son + return t_inlaw + "небіж (братанець)" + elif reltocommon[0] == self.REL_MOTHER : + # Sister's son + return t_inlaw + "небіж (сестринець)" + else: + return t_inlaw + "небіж (братанець/сестринець)" + elif level >= 2 and level <=6: + if reltocommon[level-2] == self.REL_FATHER : + # Brother's son generation + if reltocommon[level-3] == self.REL_FATHER : + # Son of brother son + return self.get_son((level - 2), inlaw) \ + + " небожа по брату" + elif reltocommon[level-3] == self.REL_MOTHER : + # Son of brother daughter + return self.get_son((level - 2), inlaw) \ + + " небоги по брату" + else: + return self.get_son((level - 2), inlaw) \ + + " небожа/небоги по брату" + elif reltocommon[level-2] == self.REL_MOTHER : + # Sister's son generation + if reltocommon[level-3] == self.REL_FATHER : + # Son of sister son + return self.get_son((level - 2), inlaw) \ + + " небожа по сестрі" + elif reltocommon[level-3] == self.REL_MOTHER : + # Son of sister daughter + return self.get_son((level - 2), inlaw) \ + + " небоги по сестрі" + else: + return self.get_son((level - 2), inlaw) \ + + " небожа/небоги по сестрі" + else: + return self.get_son((level - 2), inlaw) + " небожа/небоги" + else: + if reltocommon[level-2] == self.REL_FATHER : + # Brother's son generation + return t_inlaw + "чоловічий нащадок у %d поколінні брата" \ + % (level) + elif reltocommon[level-2] == self.REL_MOTHER : + # Sister's son generation + return t_inlaw + "чоловічий нащадок у %d поколінні сестри" \ + % (level) + else: + return t_inlaw + "чоловічий нащадок у %d поколінні брата/сестри" \ + % (level) + + + + def get_niece(self, level, reltocommon, inlaw = ''): + """ + Return niece generation name + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if level == 2: + if reltocommon[0] == self.REL_FATHER : + # Brother's daughter + return t_inlaw + "небога (братанка)" + elif reltocommon[0] == self.REL_MOTHER : + # Sister's daughter + return t_inlaw + "небога (сестрениця)" + else: + return t_inlaw + "небога (братанка/сестрениця)" + elif level >= 2 and level <=6: + if reltocommon[level-2] == self.REL_FATHER : + # Brother's daughter generation + if reltocommon[level-3] == self.REL_FATHER : + # daughter of brother son + return self.get_daughter((level - 2), inlaw) \ + + " небожа по брату" + elif reltocommon[level-3] == self.REL_MOTHER : + # daughter of brother daughter + return self.get_daughter((level - 2), inlaw) \ + + " небоги по брату" + else: + return self.get_daughter((level - 2), inlaw) \ + + " небожа/небоги по брату" + elif reltocommon[level-2] == self.REL_MOTHER : + # Sister's daughter generation + if reltocommon[level-3] == self.REL_FATHER : + # daughter of sister son + return self.get_daughter((level - 2), inlaw) \ + + " небожа по сестрі" + elif reltocommon[level-3] == self.REL_MOTHER : + # daughter of sister daughter + return self.get_daughter((level - 2), inlaw) \ + + " небоги по сестрі" + else: + return self.get_daughter((level - 2), inlaw) \ + + " небожа/небоги по сестрі" + else: + return self.get_daughter(level, inlaw) + " небожа/небоги" + else: + if reltocommon[level-2] == self.REL_FATHER : + # Brother's daughter generation + return t_inlaw + "жіночий нащадок у %d поколінні брата" \ + % (level) + elif reltocommon[level-2] == self.REL_MOTHER : + # Sister's daughter generation + return t_inlaw + "жіночий нащадок у %d поколінні сестри" \ + % (level) + else: + return t_inlaw + "жіночий нащадок у %d поколінні брата/сестри" \ + % (level) + + + def get_nephew_niece_unknown (self, level, reltocommon, inlaw = ''): + """ + Return nephew/niece generation name when gender unknown + """ + if inlaw == '': + t_inlaw = "" + else: + t_inlaw = "названий " + + if reltocommon[level-2] == self.REL_FATHER: + # Brother's descendant + return t_inlaw + "нащадок в %d поколінні брата" % (level) + elif (reltocommon[level-2] == self.REL_MOTHER): + # Sister's descendant + return t_inlaw + "нащадок в %d поколінні сестри" % (level) + else : + return t_inlaw + "нащадок в %d поколінні брата aбо сестри" \ + % (level) + + + def get_level(self, level, gender): + """ + Return level name depend of gender + """ + if (gender == gen.lib.Person.MALE): + if level < len(_level_name_male): + return _level_name_male[level] + else: + return "%d-юрідний" % level + elif (gender == gen.lib.Person.FEMALE): + if level < len(_level_name_female): + return _level_name_female[level] + else: + return "%d-юрідна" % level + else: + if level < len(_level_name): + return _level_name[level] + else: + return "%d-юрідний(на)" % level + + + + + def get_single_relationship_string(self, Ga, Gb, gender_a, gender_b, + reltocommon_a, reltocommon_b, + only_birth=True, + in_law_a=False, in_law_b=False): + """ + Provide a string that describes the relationsip between a person, and + another person. E.g. "grandparent" or "child". + + Ga: The number of generations between the main person and the + common ancestor. (кількість поколінь між прямими родичами особи: + сини, батьки, бабусі...) + + Gb: The number of generations between the other person and the + common ancestor. (кількість поколінь між іншою особою + і спільним предком) + + gender_a : gender of person a + + gender_b : gender of person b + + reltocommon_a : relation path to common ancestor or common + Family for person a. + Note that length = Ga + reltocommon_b : relation path to common ancestor or common + Family for person b. + Note that length = Gb + + in_law_a : True if path to common ancestors is via the partner + of person a + + in_law_b : True if path to common ancestors is via the partner + of person b + + only_birth : True if relation between a and b is by birth only + False otherwise + + more see in relationship.py get_single_relationship_string() + """ + + if only_birth: + step = '' + else: + step = self.STEP + + if in_law_a or in_law_b : + inlaw = self.INLAW + else: + inlaw = '' + + t_inlaw = "" + + # b is the same person as a + if Ga == Gb == 0: + rel_str = 'та сама особа' + + elif Ga == 0: + # b is son/descendant of a + + if gender_b == gen.lib.Person.MALE: + if inlaw and Gb == 1 and not step: + rel_str = "зять" + else: + rel_str = self.get_son(Gb, inlaw) + + elif gender_b == gen.lib.Person.FEMALE: + if inlaw and Gb == 1 and not step: + rel_str = "невістка" + else: + rel_str = self.get_daughter(Gb, inlaw) + + else: + rel_str = self.get_child_unknown(Gb, inlaw) + + + elif Gb == 0: + # b is parent/grand parent of a + + if gender_b == gen.lib.Person.MALE: + if inlaw and Gb == 1 and not step: + rel_str = "тесть" + else: + rel_str = self.get_father(Ga, reltocommon_a, inlaw) + + elif gender_b == gen.lib.Person.FEMALE: + if inlaw and Gb == 1 and not step: + rel_str = "теща" + else: + rel_str = self.get_mother(Ga, reltocommon_a, inlaw) + + else: + rel_str = self.get_parent_unknown(Ga, reltocommon_a, inlaw) + + + elif Ga == Gb == 1: + # Family, brother/sister + # not used, leave it just in case + # because should be handled + # by get_sibling_relationship_string + # that called in parent RelationshipCalculator + # see Relationship.py + + if gender_b == gen.lib.Person.MALE: + if inlaw and not step: + rel_str = "рідний брат" + else: + rel_str = "напів рідний брат" + + elif gender_b == gen.lib.Person.FEMALE: + if inlaw and not step: + rel_str = "рідна сестра" + else: + rel_str = "напів рідна сестра" + else: + rel_str = "брат/сестра" + + elif Gb == 1 and Ga > 1: + # b is aunt/uncle of a + + if (gender_b == gen.lib.Person.MALE): + rel_str = self.get_uncle(Ga, reltocommon_a, inlaw) + elif (gender_b == gen.lib.Person.FEMALE): + rel_str = self.get_aunt(Ga, reltocommon_a, inlaw) + else: + rel_str = self.get_uncle_aunt_unknown(Ga, reltocommon_a, inlaw) + + elif Ga == 1 and Gb > 1: + # b is niece/nephew of a + + if (gender_b == gen.lib.Person.MALE): + rel_str = self.get_nephew(Gb, reltocommon_b, inlaw) + elif (gender_b == gen.lib.Person.FEMALE): + rel_str = self.get_niece(Gb, reltocommon_b, inlaw) + else: + rel_str = self.get_nephew_niece_unknown(Gb, reltocommon_b, inlaw) + + + elif Ga > 1 and Gb > 1: + # b is (cousin/far aunt/far uncle/far niece/far nephew) of a + + if Ga > Gb: + # b is far aunt/far uncle of a + level = Ga - Gb + 1 + if level >= 3:#it is right or??? + level_name = self.get_level(Gb + 1, gender_b) + else: + level_name = self.get_level(Gb, gender_b) + + + if (gender_b == gen.lib.Person.MALE): + # b is far uncle + if inlaw != '': + t_inlaw = "названий " + if level < len(_uncle_level): + rel_str = t_inlaw + "%s %s" \ + % (level_name, _uncle_level[level]) + else: + rel_str = t_inlaw + "%s пра(пра)дід в %d поколінні" \ + % (level_name, (level)) + elif (gender_b == gen.lib.Person.FEMALE): + # b is far aunt + if inlaw != '': + t_inlaw = "названа " + if level < len(_aunt_level): + rel_str = t_inlaw + "%s %s" \ + % (level_name, _aunt_level[level]) + else: + rel_str = t_inlaw + "%s пра(пра)баба в %d поколінні" \ + % (level_name, (level)) + else: + if inlaw != '': + t_inlaw = "названий(на) " + if level == 2: + rel_str = t_inlaw + "%s дядько/тітка" % level_name + else: + rel_str = t_inlaw + "%s пра(пра)- дід/баба в %d поколінні" \ + % (level_name, (level)) + + elif Ga < Gb: + # b is far niece/far nephew of a + level_name = self.get_level(Ga, gender_b) + level = Gb - Ga + 1 + + if (gender_b == gen.lib.Person.MALE): + # b is far nephew + if level == 2: + rel_str = "%s небіж" % level_name + else: + rel_str = "%s пра(пра)внук у %d поколінні" \ + % (level_name, level) + #rel_str = "%s %s" % (level_name, self.get_nephew(level, reltocommon_b, inlaw)) + elif (gender_b == gen.lib.Person.FEMALE): + # b is far niece + if level == 2: + rel_str = "%s небога" % level_name + else: + rel_str = "%s пра(пра)внучка у %d поколінні" \ + % (level_name, level) + #rel_str = "%s %s" % (level_name, self.get_niece(level, reltocommon_b, inlaw)) + else: + rel_str = "%s пра(пра)внук(а) у %d поколінні" % level + #rel_str = "%s %s" % (level_name, self.get_nephew_niece_unknown(level, reltocommon_b, inlaw)) + + else: #Gb == Ga + # b is cousin of a + level_name = self.get_level(Ga, gender_b) + + if (gender_b == gen.lib.Person.MALE): + if inlaw != '': + t_inlaw = "названий " + rel_str = t_inlaw + "%s брат" % level_name + elif (gender_b == gen.lib.Person.FEMALE): + if inlaw != '': + t_inlaw = "названа " + rel_str = t_inlaw + "%s сестра" % level_name + else: + if inlaw != '': + t_inlaw = "названий(на) " + rel_str = t_inlaw + "%s брат/сестра" % level_name + + else: + # A program should never goes there, but... + rel_str = "невизначений ступінь спорідненості" + + return rel_str + + def get_plural_relationship_string(self, Ga, Gb, + reltocommon_a='', reltocommon_b='', + only_birth=True, + in_law_a=False, in_law_b=False): + """ + Generate a text with information, how far away is a group of persons + from a main person + """ + + if Ga == Gb == 0: + return 'та сама особа' + if 0 == Ga: + # These are descendants + if 1 == Gb: + return 'діти' + if 2 == Gb: + return 'внуки' + if 3 == Gb: + return 'правнуки' + if 4 == Gb: + return 'праправнуки' + return 'прапрапра(n)внуки' + if 0 == Gb: + # These are parents/grand parents + if 1 == Ga: + return 'батьки' + if 2 == Ga: + return 'діди/баби' + if 3 == Ga: + return 'прадіди/прабаби' + if 4 == Ga: + return 'прапращури' + return 'прапрапра(n)щури' + if 1 == Ga == Gb: + return 'батьки' + if 1 == Gb and Ga > 1: + return 'дядьки (вуйки, стрийки) і тітки' + if 1 < Gb and 1 == Ga: + return 'небожі по братові і сестрі' + if 1 < Ga and 1 < Gb: + return 'дальня родина' + return 'відносини невідомі' + + + + def get_sibling_relationship_string(self, sib_type, gender_a, gender_b, + in_law_a=False, in_law_b=False): + + if in_law_a or in_law_b : + inlaw = self.INLAW + else: + inlaw = '' + + if sib_type == self.NORM_SIB: + if not inlaw: + if gender_b == gen.lib.Person.MALE: + rel_str = 'рідний брат' + elif gender_b == gen.lib.Person.FEMALE: + rel_str = 'рідна сестра' + else: + rel_str = 'рідний(а) брат або сестра' + else: + if gender_b == gen.lib.Person.MALE: + rel_str = "названий брат" + elif gender_b == gen.lib.Person.FEMALE: + rel_str = "названа сестра" + else: + rel_str = "названий(а) брат або сестра" + elif sib_type == self.UNKNOWN_SIB: + if not inlaw: + if gender_b == gen.lib.Person.MALE: + rel_str = 'брат' + elif gender_b == gen.lib.Person.FEMALE: + rel_str = 'сестра' + else: + rel_str = 'брат або сестра' + else: + if gender_b == gen.lib.Person.MALE: + rel_str = "швагро" + elif gender_b == gen.lib.Person.FEMALE: + rel_str = "братова" + else: + rel_str = "швагро або братова" + elif sib_type == self.HALF_SIB_FATHER: + if gender_b == gen.lib.Person.MALE: + rel_str = "єдинокровний(напіврідний) брат" + elif gender_b == gen.lib.Person.FEMALE: + rel_str = "єдинокровна(напіврідна) сестра" + else: + rel_str = "напіврідний(а) брат/сестра" + elif sib_type == self.HALF_SIB_MOTHER: + if gender_b == gen.lib.Person.MALE: + rel_str = "єдинокровний(напіврідний) брат" + elif gender_b == gen.lib.Person.FEMALE: + rel_str = "єдинокровна(напіврідна) сестра" + else: + rel_str = "напіврідний(а) брат/сестра" + elif sib_type == self.STEP_SIB: + if gender_b == gen.lib.Person.MALE: + rel_str = "зведений брат" + elif gender_b == gen.lib.Person.FEMALE: + rel_str = "зведена сестра" + else: + rel_str = "зведений брат або сестра" + else: + rel_str = "невизначена ступінь родинних відносин" + return rel_str + + +if __name__ == "__main__": + # Test function. Call it as follows from the command line (so as to find + # imported modules): + # export PYTHONPATH=/path/to/gramps/src + # python src/plugins/rel/rel_pl.py + + + """ + TRANSLATORS, copy this if statement at the bottom of your + rel_xx.py module, and test your work with: + python src/plugins/rel/rel_xx.py + """ + from gramps.gen.relationship import test + import signal + import sys + # If someone go out + def goodby(signal, frame): + print 'No more Drink!' + sys.exit(0) + signal.signal(signal.SIGINT, goodby) + # Run test + RC = RelationshipCalculator() + test(RC, True) + diff --git a/gramps/plugins/rel/relplugins.gpr.py b/gramps/plugins/rel/relplugins.gpr.py index 0ac99c782..c028a59ac 100644 --- a/gramps/plugins/rel/relplugins.gpr.py +++ b/gramps/plugins/rel/relplugins.gpr.py @@ -295,3 +295,19 @@ plg.relcalcclass = 'RelationshipCalculator' plg.lang_list = ["sv", "SV", "sv_SE", "swedish", "Swedish", "sv_SE.UTF8", "sv_SE@euro", "sv_SE.UTF8@euro", "svenska", "Svenska", "sv_SE.UTF-8", "sv_SE.utf-8", "sv_SE.utf8", "Swedish_Sweden"] +# uk +plg = newplugin() +plg.id = 'relcalc_uk' +plg.name = _("Ukrainian Relationship Calculator") +plg.description = _("Calculates relationships between people") +plg.version = '1.0' +plg.gramps_target_version = '4.1' +plg.status = STABLE +plg.fname = 'rel_uk.py' +plg.ptype = RELCALC +plg.relcalcclass = 'RelationshipCalculator' +plg.lang_list = ["uk", "UA", "uk_UA", "ukrainian", + "Ukrainian", "uk_UA.utf8", + "uk_UA.UTF8", "uk_UA.utf-8", "uk_UA.UTF-8", "uk_UA.iso88595", + "uk_UA.iso8859-5", "uk_UA.iso-8859-5", "koi8u", "uk_koi8u", + "uk_UA.koi8u","uk_UA.KOI8-U",] From fab092f6fd287c8c8206320461d8257f03b17b4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Thu, 20 Jun 2013 10:07:41 +0000 Subject: [PATCH 07/25] 6817: Enhancements for testing localized Relationship handlers (contribution by Fedir) svn: r22535 --- gramps/gen/relationship.py | 696 ++++++++++++++++++++----------------- 1 file changed, 380 insertions(+), 316 deletions(-) diff --git a/gramps/gen/relationship.py b/gramps/gen/relationship.py index f24477e64..2eaae264f 100644 --- a/gramps/gen/relationship.py +++ b/gramps/gen/relationship.py @@ -1840,7 +1840,7 @@ def get_relationship_calculator(reinit=False, clocale=glocale): # #------------------------------------------------------------------------- -def _test(rc, onlybirth, inlawa, inlawb, printrelstr): +def _test(rc, onlybirth, inlawa, inlawb, printrelstr, testNum = None): """ this is a generic test suite for the singular relationship TRANSLATORS: do NOT translate, use __main__ ! """ @@ -1852,7 +1852,7 @@ def _test(rc, onlybirth, inlawa, inlawb, printrelstr): return 'f' else: return 'm' - + def _rand_relstr(len, endstr): if len == 0: return '' @@ -1861,295 +1861,337 @@ def _test(rc, onlybirth, inlawa, inlawb, printrelstr): for i in range(len-1): relstr += _rand_f_m() return relstr + endstr - + FMT = '%+50s' MAX = 30 - - #rc = RelationshipCalculator() - - print('\ntesting sons (Enter to start)\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(0, i, - MALE, - MALE, - '', relstr, - only_birth=onlybirth, - in_law_a=inlawa, - in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting daughters\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(0, i, - MALE, - FEMALE, - '', relstr, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting unknown children\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(0, i, - MALE, - UNKNOWN, - '', relstr, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting grandfathers\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(i, 0, - FEMALE, - MALE, - relstr, '', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting grandmothers\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(i, 0, - FEMALE, - FEMALE, - relstr, '', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting unknown parents\n') - sys.stdin.readline() - for i in range(MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(i, 0, - FEMALE, - UNKNOWN, - relstr, '', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting nieces\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(1, i, - FEMALE, - FEMALE, - 'm', relstr, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting nephews\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(1, i, - FEMALE, - MALE, - 'f', relstr, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting unknown nephews/nieces\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(1, i, - FEMALE, - UNKNOWN, - 'f', relstr, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting uncles\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(i, 1, - FEMALE, - MALE, - relstr, 'f', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting aunts\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(i, 1, - MALE, - FEMALE, - relstr, 'f', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting unknown uncles/aunts\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstr = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(i, 1, - MALE, - UNKNOWN, - relstr, 'm', - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) - print('\n\ntesting male cousins same generation\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstra = _rand_relstr(i,'f') - relstrb = _rand_relstr(i,'f') - rel = FMT % rc.get_single_relationship_string(i, i, - MALE, - MALE, - relstra, - relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) - else: - print(rel) - print('\n\ntesting female cousins same generation\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstra = _rand_relstr(i,'m') - relstrb = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(i, i, - MALE, - FEMALE, - relstra, - relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) - else: - print(rel) - print('\n\ntesting unknown cousins same generation\n') - sys.stdin.readline() - for i in range(1, MAX) : - relstra = _rand_relstr(i,'m') - relstrb = _rand_relstr(i,'m') - rel = FMT % rc.get_single_relationship_string(i, i, - MALE, - UNKNOWN, - relstra, - relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) - else: - print(rel) - print('\n\ntesting some cousins up\n') - sys.stdin.readline() - import random - random.seed() - for i in range(1, MAX) : - for j in range (i, MAX) : - rnd = random.randint(0, 100) - if rnd < 10 : - relstra = _rand_relstr(j,'f') - relstrb = _rand_relstr(i,'f') - if rnd < 5 : - rel = (FMT + ' |info: female, Ga=%2d, Gb=%2d') % ( - rc.get_single_relationship_string(j, i, - MALE, - FEMALE, - relstra, relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb), j, i ) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) + + if testNum == None: + print """ +Select a test: + 0 - all tests + 1 - testing sons + 2 - testing daughters + 3 - testing unknown children + 4 - testing grandfathers + 5 - testing grandmothers + 6 - testing unknown parents + 7 - testing nieces + 8 - testing nephews + 9 - testing unknown nephews/nieces + 10 - testing uncles + 11 - testing aunts + 12 - testing unknown uncles/aunts + 13 - testing male cousins same generation + 14 - testing female cousins same generation + 15 - testing unknown cousins same generation + 16 - testing some cousins up + 17 - testing some cousins down + +Please enter a test number and press Enter for continue: + """ + testNum = sys.stdin.readline().strip() + testNum = int(testNum) + + if testNum == 0 or testNum == 1: + print '\ntesting sons' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(0, i, + MALE, + MALE, + '', relstr, + only_birth=onlybirth, + in_law_a=inlawa, + in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 2: + print '\ntesting daughters\n' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(0, i, + MALE, + FEMALE, + '', relstr, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 3: + print '\ntesting unknown children\n' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(0, i, + MALE, + UNKNOWN, + '', relstr, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 4: + print '\ntesting grandfathers\n' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(i, 0, + FEMALE, + MALE, + relstr, '', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 5: + print '\ntesting grandmothers\n' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(i, 0, + FEMALE, + FEMALE, + relstr, '', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 6: + print '\ntesting unknown parents\n' + #sys.stdin.readline() + for i in range(MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(i, 0, + FEMALE, + UNKNOWN, + relstr, '', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 7: + print '\ntesting nieces\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(1, i, + FEMALE, + FEMALE, + 'm', relstr, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 8: + print '\ntesting nephews\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(1, i, + FEMALE, + MALE, + 'f', relstr, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 9: + print '\ntesting unknown nephews/nieces\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(1, i, + FEMALE, + UNKNOWN, + 'f', relstr, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 10: + print '\ntesting uncles\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(i, 1, + FEMALE, + MALE, + relstr, 'f', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 11: + print '\ntesting aunts\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(i, 1, + MALE, + FEMALE, + relstr, 'f', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 12: + print '\ntesting unknown uncles/aunts\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstr = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(i, 1, + MALE, + UNKNOWN, + relstr, 'm', + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstr + else: + print rel + if testNum == 0 or testNum == 13: + print '\ntesting male cousins same generation\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstra = _rand_relstr(i,'f') + relstrb = _rand_relstr(i,'f') + rel = FMT % rc.get_single_relationship_string(i, i, + MALE, + MALE, + relstra, + relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel + if testNum == 0 or testNum == 14: + print '\ntesting female cousins same generation\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstra = _rand_relstr(i,'m') + relstrb = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(i, i, + MALE, + FEMALE, + relstra, + relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel + if testNum == 0 or testNum == 15: + print '\ntesting unknown cousins same generation\n' + #sys.stdin.readline() + for i in range(1, MAX) : + relstra = _rand_relstr(i,'m') + relstrb = _rand_relstr(i,'m') + rel = FMT % rc.get_single_relationship_string(i, i, + MALE, + UNKNOWN, + relstra, + relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel + if testNum == 0 or testNum == 16: + print '\ntesting some cousins up\n' + #sys.stdin.readline() + import random + random.seed() + for i in range(1, MAX) : + for j in range (i, MAX) : + rnd = random.randint(0, 100) + if rnd < 10 : + relstra = _rand_relstr(j,'f') + relstrb = _rand_relstr(i,'f') + if rnd < 5 : + rel = (FMT + ' |info: female, Ga=%2d, Gb=%2d') % ( + rc.get_single_relationship_string(j, i, + MALE, + FEMALE, + relstra, relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb), j, i ) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel else: - print(rel) - else: - rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( - rc.get_single_relationship_string(j, i, - MALE, - MALE, - relstra, relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb), j, i ) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) + rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( + rc.get_single_relationship_string(j, i, + MALE, + MALE, + relstra, relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb), j, i ) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel + if testNum == 0 or testNum == 17: + print '\ntesting some cousins down\n' + #sys.stdin.readline() + for i in range(1, MAX) : + for j in range (i, MAX) : + rnd = random.randint(0, 100) + if rnd < 10 : + relstra = _rand_relstr(i,'f') + relstrb = _rand_relstr(j,'f') + if rnd < 5 : + rel = (FMT + ' |info: female, Ga=%2d, Gb=%2d') % ( + rc.get_single_relationship_string(i, j, + MALE, + FEMALE, + relstra, relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb), i, j) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel else: - print(rel) - print('\n\ntesting some cousins down\n') - sys.stdin.readline() - for i in range(1, MAX) : - for j in range (i, MAX) : - rnd = random.randint(0, 100) - if rnd < 10 : - relstra = _rand_relstr(i,'f') - relstrb = _rand_relstr(j,'f') - if rnd < 5 : - rel = (FMT + ' |info: female, Ga=%2d, Gb=%2d') % ( - rc.get_single_relationship_string(i, j, - MALE, - FEMALE, - relstra, relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb), i, j) - if printrelstr : - print(rel + ' |info:', relstra, relstrb) - else: - print(rel) - else: - rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( - rc.get_single_relationship_string(i, j, - MALE, - MALE, - relstra, relstrb, - only_birth=onlybirth, - in_law_a=inlawa, in_law_b=inlawb), i, j) - if printrelstr : - print(rel + ' |info:', relstr) - else: - print(rel) + rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( + rc.get_single_relationship_string(i, j, + MALE, + MALE, + relstra, relstrb, + only_birth=onlybirth, + in_law_a=inlawa, in_law_b=inlawb), i, j) + if printrelstr : + print rel + ' |info:', relstra, relstrb + else: + print rel def _testsibling(rc): vals = [(rc.NORM_SIB, 'sibling'), @@ -2162,9 +2204,9 @@ def _testsibling(rc): (UNKNOWN, 'unknown')]: for inlaw in [False, True]: for sibt, str in vals: - print(FMT % rc.get_sibling_relationship_string( + print FMT % rc.get_sibling_relationship_string( sibt, MALE, gendr, - in_law_a = inlaw) + ' |info:', str, strgen) + in_law_a = inlaw) + ' |info:', str, strgen def _test_spouse(rc): FMT = '%+50s' @@ -2180,41 +2222,63 @@ def _test_spouse(rc): (FEMALE, 'female'), (UNKNOWN, 'unknown')] : for spouse_type, str in vals: - print(FMT % rc.get_partner_relationship_string( + print FMT % rc.get_partner_relationship_string( spouse_type, MALE, gender) + \ - ' |info: gender='+strgen+', rel='+str) + ' |info: gender='+strgen+', rel='+str def test(rc, printrelstr): """ this is a generic test suite for the singular relationship - TRANSLATORS: do NOT translate, call this from + TRANSLATORS: do NOT translate, call this from __main__ in the rel_xx.py module. """ import sys - - print('\nType y to do a test\n\n') - print('Test normal relations?') - data = sys.stdin.readline() - if data == 'y\n': - _test(rc, True, False, False, printrelstr) - print('\n\nTest step relations?') - data = sys.stdin.readline() - if data == 'y\n': - _test(rc, False, False, False, printrelstr) - print('\n\nTest in-law relations (first pers)?') - data = sys.stdin.readline() - if data == 'y\n': - _test(rc, True, True, False, printrelstr) - print('\n\nTest step and in-law relations?') - data = sys.stdin.readline() - if data == 'y\n': - _test(rc, False, True, False, printrelstr) - print('\n\nTest sibling types?') - data = sys.stdin.readline() - if data == 'y\n': + import argparse + + parser = argparse.ArgumentParser(description='Test the Relationship Calculator') + parser.add_argument('-r', type=int, help = 'type of the relations test') + parser.add_argument('-s', type=int, help = 'type of the singular relationship test') + + args = parser.parse_args() + testNum = args.r + + if testNum == None: + print """ +Select a test: + 0 - all tests + 1 - Test normal relations + 2 - Test step relations + 3 - Test in-law relations (first pers) + 4 - Test step and in-law relations + 5 - Test sibling types + 6 - Test partner types + +Please enter a test number and press Enter for continue: + """ + testNum = sys.stdin.readline().strip() + testNum = int(testNum) + + if testNum == 0 or testNum == 1: + print '\n\n=== Test normal relations ===' + _test(rc, True, False, False, printrelstr, args.s) + + if testNum == 0 or testNum == 2: + print '\n\n=== Test step relations ===' + _test(rc, False, False, False, printrelstr, args.s) + + if testNum == 0 or testNum == 3: + print '\n\n=== Test in-law relations (first pers) ===' + _test(rc, True, True, False, printrelstr, args.s) + + if testNum == 0 or testNum == 4: + print '\n\n=== Test step and in-law relations ===' + _test(rc, False, True, False, printrelstr, args.s) + + if testNum == 0 or testNum == 5: + print '\n\n=== Test sibling types ===' _testsibling(rc) - print('\n\nTest partner types?') - data = sys.stdin.readline() - if data == 'y\n': + + if testNum == 0 or testNum == 6: + print '\n\n=== Test partner types ===' _test_spouse(rc) if __name__ == "__main__": From aa7516cbb4761b08bdb578fcddc8ef478b607648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Thu, 20 Jun 2013 14:27:33 +0000 Subject: [PATCH 08/25] 6817: print should be now a function svn: r22537 --- gramps/gen/relationship.py | 142 ++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/gramps/gen/relationship.py b/gramps/gen/relationship.py index 2eaae264f..ffd938e5a 100644 --- a/gramps/gen/relationship.py +++ b/gramps/gen/relationship.py @@ -900,9 +900,9 @@ class RelationshipCalculator(object): if depth > self.__max_depth: self.__maxDepthReached = True - #print 'Maximum ancestor generations ('+str(depth)+') reached', \ + #print('Maximum ancestor generations ('+str(depth)+') reached', \ # '(' + rel_str + ').',\ - # 'Stopping relation algorithm.' + # 'Stopping relation algorithm.') return depth += 1 @@ -1866,7 +1866,7 @@ def _test(rc, onlybirth, inlawa, inlawb, printrelstr, testNum = None): MAX = 30 if testNum == None: - print """ + print(""" Select a test: 0 - all tests 1 - testing sons @@ -1888,12 +1888,12 @@ Select a test: 17 - testing some cousins down Please enter a test number and press Enter for continue: - """ + """) testNum = sys.stdin.readline().strip() testNum = int(testNum) if testNum == 0 or testNum == 1: - print '\ntesting sons' + print('\ntesting sons') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'f') @@ -1905,11 +1905,11 @@ Please enter a test number and press Enter for continue: in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 2: - print '\ntesting daughters\n' + print('\ntesting daughters\n') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'m') @@ -1920,11 +1920,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 3: - print '\ntesting unknown children\n' + print('\ntesting unknown children\n') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'f') @@ -1935,11 +1935,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 4: - print '\ntesting grandfathers\n' + print('\ntesting grandfathers\n') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'f') @@ -1950,11 +1950,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 5: - print '\ntesting grandmothers\n' + print('\ntesting grandmothers\n') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'m') @@ -1965,11 +1965,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 6: - print '\ntesting unknown parents\n' + print('\ntesting unknown parents\n') #sys.stdin.readline() for i in range(MAX) : relstr = _rand_relstr(i,'f') @@ -1980,11 +1980,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 7: - print '\ntesting nieces\n' + print('\ntesting nieces\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'m') @@ -1995,11 +1995,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 8: - print '\ntesting nephews\n' + print('\ntesting nephews\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'f') @@ -2010,11 +2010,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 9: - print '\ntesting unknown nephews/nieces\n' + print('\ntesting unknown nephews/nieces\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'f') @@ -2025,11 +2025,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 10: - print '\ntesting uncles\n' + print('\ntesting uncles\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'f') @@ -2040,11 +2040,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 11: - print '\ntesting aunts\n' + print('\ntesting aunts\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'f') @@ -2055,11 +2055,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 12: - print '\ntesting unknown uncles/aunts\n' + print('\ntesting unknown uncles/aunts\n') #sys.stdin.readline() for i in range(1, MAX) : relstr = _rand_relstr(i,'m') @@ -2070,11 +2070,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstr + print(rel + ' |info:', relstr) else: - print rel + print(rel) if testNum == 0 or testNum == 13: - print '\ntesting male cousins same generation\n' + print('\ntesting male cousins same generation\n') #sys.stdin.readline() for i in range(1, MAX) : relstra = _rand_relstr(i,'f') @@ -2087,11 +2087,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) if testNum == 0 or testNum == 14: - print '\ntesting female cousins same generation\n' + print('\ntesting female cousins same generation\n') #sys.stdin.readline() for i in range(1, MAX) : relstra = _rand_relstr(i,'m') @@ -2104,11 +2104,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) if testNum == 0 or testNum == 15: - print '\ntesting unknown cousins same generation\n' + print('\ntesting unknown cousins same generation\n') #sys.stdin.readline() for i in range(1, MAX) : relstra = _rand_relstr(i,'m') @@ -2121,11 +2121,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) if testNum == 0 or testNum == 16: - print '\ntesting some cousins up\n' + print('\ntesting some cousins up\n') #sys.stdin.readline() import random random.seed() @@ -2144,9 +2144,9 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb), j, i ) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) else: rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( rc.get_single_relationship_string(j, i, @@ -2156,11 +2156,11 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb), j, i ) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) if testNum == 0 or testNum == 17: - print '\ntesting some cousins down\n' + print('\ntesting some cousins down\n') #sys.stdin.readline() for i in range(1, MAX) : for j in range (i, MAX) : @@ -2177,9 +2177,9 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb), i, j) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) else: rel = (FMT + ' |info: male, Ga=%2d, Gb=%2d') % ( rc.get_single_relationship_string(i, j, @@ -2189,9 +2189,9 @@ Please enter a test number and press Enter for continue: only_birth=onlybirth, in_law_a=inlawa, in_law_b=inlawb), i, j) if printrelstr : - print rel + ' |info:', relstra, relstrb + print(rel + ' |info:', relstra, relstrb) else: - print rel + print(rel) def _testsibling(rc): vals = [(rc.NORM_SIB, 'sibling'), @@ -2204,9 +2204,9 @@ def _testsibling(rc): (UNKNOWN, 'unknown')]: for inlaw in [False, True]: for sibt, str in vals: - print FMT % rc.get_sibling_relationship_string( + print(FMT % rc.get_sibling_relationship_string( sibt, MALE, gendr, - in_law_a = inlaw) + ' |info:', str, strgen + in_law_a = inlaw) + ' |info:', str, strgen) def _test_spouse(rc): FMT = '%+50s' @@ -2222,9 +2222,9 @@ def _test_spouse(rc): (FEMALE, 'female'), (UNKNOWN, 'unknown')] : for spouse_type, str in vals: - print FMT % rc.get_partner_relationship_string( + print(FMT % rc.get_partner_relationship_string( spouse_type, MALE, gender) + \ - ' |info: gender='+strgen+', rel='+str + ' |info: gender='+strgen+', rel='+str) def test(rc, printrelstr): """ this is a generic test suite for the singular relationship @@ -2242,7 +2242,7 @@ def test(rc, printrelstr): testNum = args.r if testNum == None: - print """ + print(""" Select a test: 0 - all tests 1 - Test normal relations @@ -2253,32 +2253,32 @@ Select a test: 6 - Test partner types Please enter a test number and press Enter for continue: - """ + """) testNum = sys.stdin.readline().strip() testNum = int(testNum) if testNum == 0 or testNum == 1: - print '\n\n=== Test normal relations ===' + print('\n\n=== Test normal relations ===') _test(rc, True, False, False, printrelstr, args.s) if testNum == 0 or testNum == 2: - print '\n\n=== Test step relations ===' + print('\n\n=== Test step relations ===') _test(rc, False, False, False, printrelstr, args.s) if testNum == 0 or testNum == 3: - print '\n\n=== Test in-law relations (first pers) ===' + print('\n\n=== Test in-law relations (first pers) ===') _test(rc, True, True, False, printrelstr, args.s) if testNum == 0 or testNum == 4: - print '\n\n=== Test step and in-law relations ===' + print('\n\n=== Test step and in-law relations ===') _test(rc, False, True, False, printrelstr, args.s) if testNum == 0 or testNum == 5: - print '\n\n=== Test sibling types ===' + print('\n\n=== Test sibling types ===') _testsibling(rc) if testNum == 0 or testNum == 6: - print '\n\n=== Test partner types ===' + print('\n\n=== Test partner types ===') _test_spouse(rc) if __name__ == "__main__": From f3fc5c525755dee1c0b0e5c37a9bf3e6dbf24a58 Mon Sep 17 00:00:00 2001 From: Paul Franklin <pf98052@gmail.com> Date: Thu, 20 Jun 2013 16:34:22 +0000 Subject: [PATCH 09/25] 6821: CLI asks forever when trying to overwrite while exporting svn: r22542 --- gramps/cli/arghandler.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/gramps/cli/arghandler.py b/gramps/cli/arghandler.py index 0ceb74e77..eac93953a 100644 --- a/gramps/cli/arghandler.py +++ b/gramps/cli/arghandler.py @@ -8,7 +8,7 @@ # Copyright (C) 2008 Brian G. Matherly # Copyright (C) 2010 Jakim Friant # Copyright (C) 2012 Doug Blank -# Copyright (C) 2012 Paul Franklin +# Copyright (C) 2012-2013 Paul Franklin # # 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 @@ -286,23 +286,20 @@ class ArgHandler(object): self.__error(_("WARNING: Output file already exists!\n" "WARNING: It will be overwritten:\n %s") % fullpath) - answer = None - while not answer: - try: - if sys.version_info[0] < 3: - ask = raw_input - else: - ask = input - ans = ask(_('OK to overwrite? (yes/no) ')) - except EOFError: - print() - sys.exit(0) - if ans.upper() in ('Y', 'YES', _('YES').upper()): - self.__error(_("Will overwrite the existing file: %s") - % fullpath) - answer = "ok" + try: + if sys.version_info[0] < 3: + ask = raw_input else: - sys.exit(0) + ask = input + answer = ask(_('OK to overwrite? (yes/no) ')) + except EOFError: + print() + sys.exit(0) + if answer.upper() in ('Y', 'YES', _('YES').upper()): + self.__error(_("Will overwrite the existing file: %s") + % fullpath) + else: + sys.exit(0) if family_tree_format is None: # Guess the file format based on the file extension. From 4ba97726a25746c33ec782066d496944b8cd9ec5 Mon Sep 17 00:00:00 2001 From: Tim G L Lyons <tim.g.lyons@gmail.com> Date: Thu, 20 Jun 2013 16:43:43 +0000 Subject: [PATCH 10/25] 0006352: Bookmarking a source in the citation tree creates a blank bookmark. Disallow bookmarking a source in the Citation Tree View, and do not add sources to the history in the Citation Tree View. svn: r22545 --- gramps/gui/views/bookmarks.py | 23 +++++++++++++++++++++++ gramps/plugins/view/citationtreeview.py | 11 +++++++++++ 2 files changed, 34 insertions(+) diff --git a/gramps/gui/views/bookmarks.py b/gramps/gui/views/bookmarks.py index fad945ce7..1d9daa200 100644 --- a/gramps/gui/views/bookmarks.py +++ b/gramps/gui/views/bookmarks.py @@ -394,6 +394,29 @@ class CitationBookmarks(ListBookmarks) : def make_label(self, handle): return navigation_label(self.dbstate.db, 'Citation', handle) + # Override add from ListBookmarks, so that when self.bookmarks.add is called + # from ListView.add_bookmark, it will not add a Source bookmark to a + # Citation view. + def add(self, handle): + """Append the citation to the bottom of the bookmarks.""" + if self.dbstate.db.get_citation_from_handle(handle): + ListBookmarks.add(self, handle) + else: + # Probably trying to bookmark a source when the navigation type is + # citation. This can occur when in the Citation Tree View and we + # bookmark a source. + + # FIXME: See http://www.gramps-project.org/bugs/view.php?id=6352 a + # more comprehensive solution is needed in the long term. See also + # change_active in CitatinTreeView + from gramps.gui.dialog import WarningDialog + WarningDialog(_("Cannot bookmark this reference"), + "Only Citations can be bookmarked in this view. " + "You are probably trying to bookmark a Source in the " + "Citation Tree View. In this view, only Citations " + "can be bookmarked. To bookmark a Source, switch to " + "the Source View") + def connect_signals(self): self.dbstate.db.connect('citation-delete', self.remove_handles) diff --git a/gramps/plugins/view/citationtreeview.py b/gramps/plugins/view/citationtreeview.py index 43717959d..a6dc6b1ed 100644 --- a/gramps/plugins/view/citationtreeview.py +++ b/gramps/plugins/view/citationtreeview.py @@ -156,6 +156,17 @@ class CitationTreeView(ListView): self.additional_uis.append(self.additional_ui()) + # Override change_active from NavigationView, so that only Citations can be + # put in the history list for the CitationTreeView + def change_active(self, handle): + if self.dbstate.db.get_citation_from_handle(handle): + super(CitationTreeView, self).change_active(handle) + else: + # FIXME: See http://www.gramps-project.org/bugs/view.php?id=6352 a + # more comprehensive solution is needed in the long term. See also + # add in Bookmarks.CitationBookmarks + pass + def setup_filter(self): """ Override the setup of the default Search Bar in listview, so that only From face94275ccaa096277664d66f41da18d0694356 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Fri, 21 Jun 2013 14:13:40 +0000 Subject: [PATCH 11/25] 4571: RTL support in fan chart gramps/gui/utilscairo.py: new file, currently holds just the warpPath() function, taken from /usr/share/doc/python-cairo/examples/warpedtext.py, with explanatory docs added. gramps/gui/widgets/fanchart.py, class FanChartBaseWidget: draw_text() method: previous logic using cairo toy text API didn't support CTL text. It has been removed, and replaced with a call to a new method, draw_arc_text(). Flagged a subtle Unicode issue in the remaining old code, for radial-oriented text, with a FIXME, I'll probably fix it later as a separate issue. create_map_rect_to_sector() static method: create a transform to use with gui.utilscairo.warpPath(), currently used in draw_arc_text(). Following Benny's code review I have annotated the algorithm and made it hopefully clear, but I guess it could be reworked into a better form if re-expressed with stacked transforms / complex numbers / matrices for easier later maintenance. Meanwhile I have used the same approach as the older code in the file, good enough for a patch under this feature request. The only issue remaining from the code review is whether the create_map_rect_to_sector() function should be moved to gui.utilscairo; see the bug thread. svn: r22548 --- gramps/gui/utilscairo.py | 87 +++++++++++++++++++ gramps/gui/widgets/fanchart.py | 147 +++++++++++++++++++++------------ 2 files changed, 182 insertions(+), 52 deletions(-) create mode 100644 gramps/gui/utilscairo.py diff --git a/gramps/gui/utilscairo.py b/gramps/gui/utilscairo.py new file mode 100644 index 000000000..a2dc276c0 --- /dev/null +++ b/gramps/gui/utilscairo.py @@ -0,0 +1,87 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2001-2007 Donald N. Allingham, Martin Hawlisch +# Copyright (C) 2009 Douglas S. Blank +# Copyright (C) 2012 Benny Malengier +# Copyright (C) 2013 Vassilii Khachaturov +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# $Id$ + +from __future__ import division + +#------------------------------------------------------------------------- +# +# Python modules +# +#------------------------------------------------------------------------- +#from gi.repository import Pango +#from gi.repository import GObject +#from gi.repository import Gdk +#from gi.repository import Gtk +#from gi.repository import PangoCairo +import cairo +#import math +#import colorsys +#import sys +#if sys.version_info[0] < 3: +# import cPickle as pickle +#else: +# import pickle + +#------------------------------------------------------------------------- +# +# Functions +# +#------------------------------------------------------------------------- +def warpPath(ctx, function): + """Transform a path given a 2D transformation function. + + ctx -- a cairo.Context, on which the path is set + function -- a 2D transform (x,y) |-> (x_new,y_new) + + The transformed path replaces the original one on the context. + + Taken from /usr/share/doc/python-cairo/examples/warpedtext.py + According to /usr/share/doc/python-cairo/copyright, licensed + under MOZILLA PUBLIC LICENSE 1.1, see that file for more detail. + """ + + first = True + + for type, points in ctx.copy_path(): + if type == cairo.PATH_MOVE_TO: + if first: + ctx.new_path() + first = False + x, y = function(*points) + ctx.move_to(x, y) + + elif type == cairo.PATH_LINE_TO: + x, y = function(*points) + ctx.line_to(x, y) + + elif type == cairo.PATH_CURVE_TO: + x1, y1, x2, y2, x3, y3 = points + x1, y1 = function(x1, y1) + x2, y2 = function(x2, y2) + x3, y3 = function(x3, y3) + ctx.curve_to(x1, y1, x2, y2, x3, y3) + + elif type == cairo.PATH_CLOSE_PATH: + ctx.close_path() diff --git a/gramps/gui/widgets/fanchart.py b/gramps/gui/widgets/fanchart.py index 14e7dbf78..bbade751d 100644 --- a/gramps/gui/widgets/fanchart.py +++ b/gramps/gui/widgets/fanchart.py @@ -4,6 +4,7 @@ # Copyright (C) 2001-2007 Donald N. Allingham, Martin Hawlisch # Copyright (C) 2009 Douglas S. Blank # Copyright (C) 2012 Benny Malengier +# Copyright (C) 2013 Vassilii Khachaturov # # 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 @@ -72,6 +73,7 @@ from gramps.gen.utils.db import (find_children, find_parents, find_witnessed_peo get_age, get_timeperiod, preset_name) from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext +from gramps.gui.utilscairo import warpPath #------------------------------------------------------------------------- # @@ -601,6 +603,10 @@ class FanChartBaseWidget(Gtk.DrawingArea): txlen = int(w/height * txlen) cont = True while cont: + # FIXME this can make an invalid Unicode truncation + # if it comes in between CTL text. Should use the approach + # similar to draw_arc_text() and use layout wrapping logic + # instead, and then reset to proper length. layout = self.create_pango_layout(text[:txlen]) layout.set_font_description(font) w, h = layout.get_size() @@ -629,60 +635,97 @@ class FanChartBaseWidget(Gtk.DrawingArea): PangoCairo.show_layout(cr, layout) cr.restore() else: - # center text: - # 1. determine degrees of the text we can draw - degpadding = PAD_TEXT / radius * (180 / math.pi) # degrees for padding - degneed = degpadding - maxlen = len(text) - hoffset = 0 - for i in range(len(text)): - layout = self.create_pango_layout(text[i]) - layout.set_font_description(font) - w, h = layout.get_size() - w = w / Pango.SCALE + 2 # 2 pixel padding after letter - h = h / Pango.SCALE + 2 # 2 pixel padding - if h/2 > hoffset: - hoffset = h/2 - degneed += w / radius * (180 / math.pi) - if degneed > stop - start - degpadding: - #outside of the box - maxlen = i - break - # 2. determine degrees over we can distribute before and after - if degneed > stop - start - degpadding: - degover = 0 - else: - degover = stop - start - degneed - degpadding - # 3. now draw this text, letter per letter - text = text[:maxlen] - - # offset for cairo-font system is 90, padding used is 5: - pos = start + 90 + degpadding + degover / 2 - # Create a PangoLayout, set the font and text - # Draw the layout N_WORDS times in a circle - for i in range(len(text)): - layout = self.create_pango_layout(text[i]) - layout.set_font_description(font) - w, h = layout.get_size() - w = w / Pango.SCALE + 2 # 4 pixel padding after word - h = h / Pango.SCALE + 2 # 4 pixel padding - degneed = w / radius * (180 / math.pi) - if pos+degneed > stop + 90: - #failsafe, outside of the box, redo - break - - cr.save() - cr.rotate(pos * math.pi / 180) - pos = pos + degneed - # Inform Pango to re-layout the text with the new transformation - layout.context_changed() - #width, height = layout.get_size() - #r.move_to(- (width / Pango.SCALE) / 2.0, - radius) - cr.move_to(0, - radius - hoffset) - PangoCairo.show_layout(cr, layout) - cr.restore() + self.draw_arc_text(cr, text, radius, start, stop, font) cr.restore() + def draw_arc_text(self, cr, text, radius, start, stop, font): + """ + Display text at a particular radius, between start and stop + degrees, setting it up along the arc, center-justified. + + Text not fitting a single line will be word-wrapped away. + """ + + # 1. determine the spread of text we can draw, in radians + degpadding = PAD_TEXT / radius * (180 / math.pi) # degrees for padding + # offset for cairo-font system is 90, padding used is 5: + pos = start + 90 + degpadding/2 + cr.save() + cr.rotate(math.radians(pos)) + cr.new_path() + cr.move_to(0, -radius) + rad_spread = math.radians(stop - start - degpadding) + + # 2. use Pango.Layout to set up the text for us, and do + # the hard work in CTL text handling and line wrapping. + layout = self.create_pango_layout(text) + layout.set_font_description(font) + layout.set_width(Pango.SCALE * radius * rad_spread) + layout.set_wrap(Pango.WrapMode.WORD) + + # 3. clip to the top line only so the text looks nice + # all around the circle at the same radius. + # NOTE: one may not truncate the text var here, + # because the truncation can create invalid Unicode. + if layout.get_line_count() > 1: + layout.set_text(text, layout.get_line(0).length) + + # 4. Use the layout to provide us the metrics of the text box + PangoCairo.layout_path(cr, layout) + w, h = layout.get_pixel_size() + #le = layout.get_line(0).get_pixel_extents()[0] + pe = cr.path_extents() + arc_used_ratio = w / (radius * rad_spread) + rad_mid = math.radians(pos) + rad_spread/2 + + # 5. The moment of truth: map the text box onto the sector, and render! + warpPath(cr, \ + self.create_map_rect_to_sector(radius, pe, \ + arc_used_ratio, rad_mid - rad_spread/2, rad_mid + rad_spread/2)) + cr.fill() + cr.restore() + + @staticmethod + def create_map_rect_to_sector(radius, rect, arc_used_ratio, start_rad, stop_rad): + """Create a 2D-transform, mapping a rectangle onto a circle sector. + + radius -- average radius of the target sector + rect -- (x1, y1, x2, y2) + arc_used_ratio -- From 0.0 to 1.0. Rather than stretching onto the + whole sector, only the middle arc_used_ratio part will be mapped onto. + start_rad -- start radial angle of the sector, in radians + stop_rad -- stop radial angle of the sector, in radians + + Returns a lambda (x,y)|->(xNew,yNew) to feed to warpPath. + """ + + x0, y0, w, h = rect[0], rect[1], rect[2]-rect[0], rect[3]-rect[1] + + radiusin = radius - h/2 + radiusout = radius + h/2 + drho = h + dphi = (stop_rad - start_rad) + + # There has to be a clearer way to express this transform, + # by stacking a set of transforms on cr around using this function + # and doing a mapping between unit squares of rectangular and polar + # coordinates. + + def phi(x): + return (x - x0) * dphi * arc_used_ratio / w \ + + (1 - arc_used_ratio) * dphi / 2 \ + - math.pi/2 + def rho(y): + return (y - y0) * (radiusin - radiusout)/h + radiusout + + # In (user coordinates units - pixels): + # x from x0 to x0 + w + # y from y0 to y0 + h + # Out: + # (x, y) within the arc_used_ratio of a box like drawn by draw_radbox + return lambda x, y: \ + (rho(y) * math.cos(phi(x)), rho(y) * math.sin(phi(x))) + def draw_gradient(self, cr, widget, halfdist): gradwidth = 10 gradheight = 10 From 1dc1f6c0c2e55e089f3535ba4cf31d52e566a5b2 Mon Sep 17 00:00:00 2001 From: Paul Franklin <pf98052@gmail.com> Date: Fri, 21 Jun 2013 20:28:39 +0000 Subject: [PATCH 12/25] added SVN Id property, and SVN Id line if needed svn: r22552 --- gramps/plugins/rel/rel_uk.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gramps/plugins/rel/rel_uk.py b/gramps/plugins/rel/rel_uk.py index 586d7398f..353337ea0 100644 --- a/gramps/plugins/rel/rel_uk.py +++ b/gramps/plugins/rel/rel_uk.py @@ -21,6 +21,9 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# gramps/plugins/rel/rel_uk.py +# $Id$ +# # UA: Пояснення щодо родинних відносин див. relationship.py # EN: Ukrainian relationship calculator. For more information see relationship.py From d03fc191889da0962b1192132dc89356aee3bcb6 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Sat, 22 Jun 2013 15:23:06 +0000 Subject: [PATCH 13/25] Fix minor ugliness due to precision loss. Change an integer division into a floating one, now the rendered text looks better. svn: r22553 --- gramps/gui/widgets/fanchart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/gui/widgets/fanchart.py b/gramps/gui/widgets/fanchart.py index bbade751d..7b049c6f1 100644 --- a/gramps/gui/widgets/fanchart.py +++ b/gramps/gui/widgets/fanchart.py @@ -701,8 +701,8 @@ class FanChartBaseWidget(Gtk.DrawingArea): x0, y0, w, h = rect[0], rect[1], rect[2]-rect[0], rect[3]-rect[1] - radiusin = radius - h/2 - radiusout = radius + h/2 + radiusin = radius - h/2.0 + radiusout = radius + h/2.0 drho = h dphi = (stop_rad - start_rad) From d30ade0488ae100ec47340c51db163c44a3c1578 Mon Sep 17 00:00:00 2001 From: Nick Hall <nick__hall@hotmail.com> Date: Sat, 22 Jun 2013 21:01:04 +0000 Subject: [PATCH 14/25] 6814: Fix gramplet positioning when using RTL locale svn: r22557 --- gramps/gui/widgets/grampletpane.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gramps/gui/widgets/grampletpane.py b/gramps/gui/widgets/grampletpane.py index 6e2f1567a..d80c10797 100644 --- a/gramps/gui/widgets/grampletpane.py +++ b/gramps/gui/widgets/grampletpane.py @@ -1272,6 +1272,9 @@ class GrampletPane(Gtk.ScrolledWindow): mainframe = mframe.get_parent() # actually a vbox rect = source.get_allocation() sx, sy = rect.width, rect.height + # Convert to LTR co-ordinates when using RTL locale + if source.get_direction() == Gtk.TextDirection.RTL: + x = sx - x # first, find column: col = 0 for i in range(len(self.columns)): From 8bbbae41aa61c256954756631c5fa4d296e4383b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Sun, 23 Jun 2013 09:15:33 +0000 Subject: [PATCH 15/25] support Arabic on installation and lang_map (reports) svn: r22565 --- gramps/gen/utils/grampslocale.py | 1 + setup.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gramps/gen/utils/grampslocale.py b/gramps/gen/utils/grampslocale.py index 5d6da0c77..afedd396d 100644 --- a/gramps/gen/utils/grampslocale.py +++ b/gramps/gen/utils/grampslocale.py @@ -601,6 +601,7 @@ class GrampsLocale(object): _ = self.translation.gettext if not self._lang_map: self._lang_map = { + "ar" : _("Arabic"), "bg" : _("Bulgarian"), "ca" : _("Catalan"), "cs" : _("Czech"), diff --git a/setup.py b/setup.py index caa819f1c..6c03cb958 100644 --- a/setup.py +++ b/setup.py @@ -49,8 +49,8 @@ from stat import ST_MODE import io from gramps.version import VERSION -ALL_LINGUAS = ('bg', 'ca', 'cs', 'da', 'de', 'el', 'en_GB', 'es', 'fi', 'fr', 'he', - 'hr', 'hu', 'it', 'ja', 'lt', 'nb', 'nl', 'nn', 'pl', 'pt_BR', +ALL_LINGUAS = ('ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en_GB', 'es', 'fi', 'fr', + 'he', 'hr', 'hu', 'it', 'ja', 'lt', 'nb', 'nl', 'nn', 'pl', 'pt_BR', 'pt_PT', 'ru', 'sk', 'sl', 'sq', 'sv', 'uk', 'vi', 'zh_CN') INTLTOOL_FILES = ('data/tips.xml', 'gramps/plugins/lib/holidays.xml') From a4558b3cccfeb1fb568faf73d26e0a271d8ead66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Sun, 23 Jun 2013 09:16:54 +0000 Subject: [PATCH 16/25] enable Ukrainian date handler (by Fedir) svn: r22566 --- gramps/gen/datehandler/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gramps/gen/datehandler/__init__.py b/gramps/gen/datehandler/__init__.py index 74338a496..9ef1cd442 100644 --- a/gramps/gen/datehandler/__init__.py +++ b/gramps/gen/datehandler/__init__.py @@ -58,6 +58,7 @@ from . import _date_sk from . import _date_sl from . import _date_sr from . import _date_sv +from . import _date_uk # Initialize global parser try: From 32172f1168a65accfb53fe85d4959280e8bb88a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Sun, 23 Jun 2013 09:18:57 +0000 Subject: [PATCH 17/25] do not limit family's actors to mother and father, no relation between age of the person and child svn: r22567 --- po/fr.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/fr.po b/po/fr.po index 5b450108c..68d2f90c2 100644 --- a/po/fr.po +++ b/po/fr.po @@ -3880,11 +3880,11 @@ msgstr "Âge" #: ../gramps/gen/lib/attrtype.py:75 msgid "Father's Age" -msgstr "Âge du père" +msgstr "Âge du mari / compagnon" #: ../gramps/gen/lib/attrtype.py:76 msgid "Mother's Age" -msgstr "Âge de la mère" +msgstr "Âge de la femme / compagne" #: ../gramps/gen/lib/attrtype.py:77 #: ../gramps/gen/lib/eventroletype.py:66 @@ -31137,7 +31137,7 @@ msgstr "<b>Organisation des vues</b><br/>Quelques vues peuvent représenter vos #: ../gramps/data/tips.xml.in.h:23 msgid "<b>Navigating Back and Forward</b><br/>Gramps maintains a list of previous active objects such as People, Events and . You can move forward and backward through the list using "Go > Forward" and "Go > Back" or the arrow buttons." -msgstr "<b>Navigation Précédent et Suivant</b><br/>Gramps conserve une liste des objets actifs tels que les individus, événements lorsque vous naviguez dans votre base de données. Vous pouvez avancer et reculer dans la liste à l'aide de « Aller à > Suivant" et "Aller à > Précédent »." +msgstr "<b>Navigation Précédent et Suivant</b><br/>Gramps conserve une liste des objets actifs tels que les individus, événements lorsque vous naviguez dans votre base de données. Vous pouvez avancer et reculer dans la liste à l'aide de « Aller à > Suivant" et "Aller à > Précédent »." #: ../gramps/data/tips.xml.in.h:24 msgid "<b>Keyboard Shortcuts</b><br/>Tired of having to take your hand off the keyboard to use the mouse? Many functions in Gramps have keyboard shortcuts. If one exists for a function it is displayed on the right side of the menu." From 8af57bcf0708776add4bef6946bac3c85853d6bb Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Sun, 23 Jun 2013 11:12:13 +0000 Subject: [PATCH 18/25] 4571: RTL support in fanchart: cleanup older code Use math.degrees() / math.radians() where able Follow-up to CR by Benny: Removed redundant forced conversion to float, the from future import division handles that already. See PEP-238 for details. draw_text: Remove manual layout wrapping, use pango Layout logic. Refactored wrap_truncate_layout from draw_arc_text, and it's now reused in draw_text, here with CHAR wrapping mode as opposed to WORD in draw_arc_text. This replaces the (Unicode-wrong) implementation of manual char-by-char code with text truncation. svn: r22569 --- gramps/gui/widgets/fanchart.py | 101 +++++++++++++++------------------ 1 file changed, 45 insertions(+), 56 deletions(-) diff --git a/gramps/gui/widgets/fanchart.py b/gramps/gui/widgets/fanchart.py index 7b049c6f1..0a2025a86 100644 --- a/gramps/gui/widgets/fanchart.py +++ b/gramps/gui/widgets/fanchart.py @@ -555,6 +555,22 @@ class FanChartBaseWidget(Gtk.DrawingArea): cr.set_source_rgba(r/255., g/255., b/255., a) cr.fill() + def wrap_truncate_layout(self, layout, font, width_pixels): + """Uses the layout to wrap and truncate its text to given width + + Returns: (w,h) as returned by layout.get_pixel_size() + """ + + layout.set_font_description(font) + layout.set_width(Pango.SCALE * width_pixels) + + # NOTE: one may not truncate the text to just the 1st line's text, + # because the truncation can create invalid Unicode. + if layout.get_line_count() > 1: + layout.set_text(layout.get_text(), layout.get_line(0).length) + + return layout.get_pixel_size() + def draw_text(self, cr, text, radius, start, stop, height=PIXELS_PER_GENERATION, radial=False, fontcolor=(0, 0, 0), bold=False): @@ -568,29 +584,31 @@ class FanChartBaseWidget(Gtk.DrawingArea): font.set_size(fontsize * Pango.SCALE) if bold: font.set_weight(Pango.Weight.BOLD) - cr.set_source_rgb(fontcolor[0], fontcolor[1], fontcolor[2]) + cr.set_source_rgb(*fontcolor) if radial and self.radialtext: cr.save() layout = self.create_pango_layout(text) layout.set_font_description(font) - w, h = layout.get_size() - w = w / Pango.SCALE + 5 # 5 pixel padding - h = h / Pango.SCALE + 4 # 4 pixel padding + layout.set_wrap(Pango.WrapMode.CHAR) + + # NOTE: for radial text, the sector radius height is the text width + w, h = self.wrap_truncate_layout(layout, font, height - 2*PAD_TEXT) + + w = w + 5 # 5 pixel padding + h = h + 4 # 4 pixel padding #first we check if height is ok - degneedheight = h / radius * (180 / math.pi) + degneedheight = math.degrees(h / radius) degavailheight = stop-start degoffsetheight = 0 if degneedheight > degavailheight: #reduce height fontsize = degavailheight / degneedheight * fontsize / 2 font.set_size(fontsize * Pango.SCALE) - layout = self.create_pango_layout(text) - layout.set_font_description(font) - w, h = layout.get_size() - w = w / Pango.SCALE + 5 # 5 pixel padding - h = h / Pango.SCALE + 4 # 4 pixel padding + w, h = self.wrap_truncate_layout(layout, font, height - 2*PAD_TEXT) + w = w + 5 # 5 pixel padding + h = h + 4 # 4 pixel padding #first we check if height is ok - degneedheight = h / radius * (180 / math.pi) + degneedheight = math.degrees(h / radius) degavailheight = stop-start if degneedheight > degavailheight: #we could not fix it, no text @@ -598,35 +616,13 @@ class FanChartBaseWidget(Gtk.DrawingArea): if text: #spread rest degoffsetheight = (degavailheight - degneedheight) / 2 - txlen = len(text) - if w > height - PAD_TEXT: - txlen = int(w/height * txlen) - cont = True - while cont: - # FIXME this can make an invalid Unicode truncation - # if it comes in between CTL text. Should use the approach - # similar to draw_arc_text() and use layout wrapping logic - # instead, and then reset to proper length. - layout = self.create_pango_layout(text[:txlen]) - layout.set_font_description(font) - w, h = layout.get_size() - w = w / Pango.SCALE + 2*PAD_TEXT # padding before/after - h = h / Pango.SCALE + 4 # padding in height text - if w > height: - if txlen <= 1: - cont = False - txlen = 0 - else: - txlen -= 1 - else: - cont = False # offset for cairo-font system is 90 rotval = self.rotate_value % 360 - 90 if (start + rotval) % 360 > 179: pos = start + degoffsetheight + 90 - 90 else: pos = stop - degoffsetheight + 180 - cr.rotate(pos * math.pi / 180) + cr.rotate(math.radians(pos)) layout.context_changed() if (start + rotval) % 360 > 179: cr.move_to(radius + PAD_TEXT, 0) @@ -647,7 +643,7 @@ class FanChartBaseWidget(Gtk.DrawingArea): """ # 1. determine the spread of text we can draw, in radians - degpadding = PAD_TEXT / radius * (180 / math.pi) # degrees for padding + degpadding = math.degrees(PAD_TEXT / radius) # offset for cairo-font system is 90, padding used is 5: pos = start + 90 + degpadding/2 cr.save() @@ -656,29 +652,22 @@ class FanChartBaseWidget(Gtk.DrawingArea): cr.move_to(0, -radius) rad_spread = math.radians(stop - start - degpadding) - # 2. use Pango.Layout to set up the text for us, and do + # 2. Use Pango.Layout to set up the text for us, and do # the hard work in CTL text handling and line wrapping. - layout = self.create_pango_layout(text) - layout.set_font_description(font) - layout.set_width(Pango.SCALE * radius * rad_spread) - layout.set_wrap(Pango.WrapMode.WORD) - - # 3. clip to the top line only so the text looks nice + # Clip to the top line only so the text looks nice # all around the circle at the same radius. - # NOTE: one may not truncate the text var here, - # because the truncation can create invalid Unicode. - if layout.get_line_count() > 1: - layout.set_text(text, layout.get_line(0).length) + layout = self.create_pango_layout(text) + layout.set_wrap(Pango.WrapMode.WORD) + w, h = self.wrap_truncate_layout(layout, font, radius * rad_spread) - # 4. Use the layout to provide us the metrics of the text box + # 3. Use the layout to provide us the metrics of the text box PangoCairo.layout_path(cr, layout) - w, h = layout.get_pixel_size() #le = layout.get_line(0).get_pixel_extents()[0] pe = cr.path_extents() arc_used_ratio = w / (radius * rad_spread) rad_mid = math.radians(pos) + rad_spread/2 - # 5. The moment of truth: map the text box onto the sector, and render! + # 4. The moment of truth: map the text box onto the sector, and render! warpPath(cr, \ self.create_map_rect_to_sector(radius, pe, \ arc_used_ratio, rad_mid - rad_spread/2, rad_mid + rad_spread/2)) @@ -701,8 +690,8 @@ class FanChartBaseWidget(Gtk.DrawingArea): x0, y0, w, h = rect[0], rect[1], rect[2]-rect[0], rect[3]-rect[1] - radiusin = radius - h/2.0 - radiusout = radius + h/2.0 + radiusin = radius - h/2 + radiusout = radius + h/2 drho = h dphi = (stop_rad - start_rad) @@ -938,7 +927,7 @@ class FanChartBaseWidget(Gtk.DrawingArea): end_angle = math.pi + (math.pi + end_angle) # now look at change in angle: diff_angle = (end_angle - start_angle) % (math.pi * 2.0) - self.rotate_value -= diff_angle * 180.0/ math.pi + self.rotate_value -= math.degrees(diff_angle) self.last_x, self.last_y = event.x, event.y self.queue_draw() return True @@ -1270,7 +1259,7 @@ class FanChartWidget(FanChartBaseWidget): cr.translate(self.center_x, self.center_y) cr.save() - cr.rotate(self.rotate_value * math.pi/180) + cr.rotate(math.radians(self.rotate_value)) for generation in range(self.generations - 1, 0, -1): for p in range(len(self.data[generation])): (text, person, parents, child, userdata) = self.data[generation][p] @@ -1327,8 +1316,8 @@ class FanChartWidget(FanChartBaseWidget): position in the chart """ cr.save() - start_rad = start * math.pi/180 - stop_rad = stop * math.pi/180 + start_rad = math.radians(start) + stop_rad = math.radians(stop) r, g, b, a = self.background_box(person, generation, userdata) radius = generation * PIXELS_PER_GENERATION + self.CENTER # If max generation, and they have parents: @@ -1382,7 +1371,7 @@ class FanChartWidget(FanChartBaseWidget): radial = False radstart = radius - PIXELS_PER_GENERATION/2 if self.radialtext: ## and generation >= 6: - spacepolartext = radstart * (stop-start)*math.pi/180 + spacepolartext = radstart * math.radians(stop-start) if spacepolartext < PIXELS_PER_GENERATION * 1.1: # more space to print it radial radial = True From b8a18b02b5a69c3156a8f8980cab4e570b676aa8 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Sun, 23 Jun 2013 14:16:22 +0000 Subject: [PATCH 19/25] 6740: root cursor corruption Use get_window() not get_root_window() to set the cursor. svn: r22571 --- gramps/plugins/view/pedigreeview.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/plugins/view/pedigreeview.py b/gramps/plugins/view/pedigreeview.py index 363f93f94..9a4f75f7b 100644 --- a/gramps/plugins/view/pedigreeview.py +++ b/gramps/plugins/view/pedigreeview.py @@ -1333,7 +1333,7 @@ class PedigreeView(NavigationView): or call option menu. """ if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS: - widget.get_root_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.FLEUR)) + widget.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.FLEUR)) self._last_x = event.x self._last_y = event.y self._in_move = True @@ -1347,7 +1347,7 @@ class PedigreeView(NavigationView): """Exit from scroll mode when button release.""" if event.button == 1 and event.type == Gdk.EventType.BUTTON_RELEASE: self.cb_bg_motion_notify_event(widget, event) - widget.get_root_window().set_cursor(None) + widget.get_window().set_cursor(None) self._in_move = False return True return False From 3fd0762ae03436e7bdc8f4275003d034574427ca Mon Sep 17 00:00:00 2001 From: John Ralls <jralls@ceridwen.us> Date: Sun, 23 Jun 2013 22:47:25 +0000 Subject: [PATCH 20/25] Move the HTML resources from gramps/plugins/webstuff to data and images So that they're together with the other resources instead of in site-package/gramps. Aside from a better source and installation layout, this makes it easier to bundle them. svn: r22576 --- .../plugins/webstuff => data}/css/GeoView.css | 0 .../webstuff => data}/css/Web_Basic-Ash.css | 0 .../webstuff => data}/css/Web_Basic-Blue.css | 0 .../css/Web_Basic-Cypress.css | 0 .../webstuff => data}/css/Web_Basic-Lilac.css | 0 .../webstuff => data}/css/Web_Basic-Peach.css | 0 .../css/Web_Basic-Spruce.css | 0 .../css/Web_Citations-Animated.css | 0 .../css/Web_Citations-Outline.css | 0 .../css/Web_DropDown-Menus.css | 0 .../webstuff => data}/css/Web_Fade-Menus.css | 0 .../css/Web_Horizontal-Menus.css | 0 .../webstuff => data}/css/Web_Mainz.css | 0 .../webstuff => data}/css/Web_Nebraska.css | 0 .../css/Web_Print-Default.css | 0 .../css/Web_Vertical-Menus.css | 0 .../webstuff => data}/css/Web_Visually.css | 0 .../webstuff => data}/css/ancestortree.css | 0 .../webstuff => data}/css/behaviour.css | 0 .../webstuff => data}/css/jquery.flexbox.css | 0 .../webstuff => data}/css/narrative-maps.css | 0 .../images/ui-bg_diamond_10_4f4221_10x8.png | Bin .../images/ui-bg_diamond_20_372806_10x8.png | Bin .../images/ui-bg_diamond_25_675423_10x8.png | Bin .../images/ui-bg_diamond_25_d5ac5d_10x8.png | Bin .../images/ui-bg_diamond_8_261803_10x8.png | Bin .../images/ui-bg_diamond_8_443113_10x8.png | Bin .../images/ui-bg_flat_75_ddd4b0_40x100.png | Bin .../ui-bg_highlight-hard_65_fee4bd_1x100.png | Bin .../images/ui-icons_070603_256x240.png | Bin .../images/ui-icons_e8e2b5_256x240.png | Bin .../images/ui-icons_e9cd86_256x240.png | Bin .../images/ui-icons_efec9f_256x240.png | Bin .../images/ui-icons_f2ec64_256x240.png | Bin .../images/ui-icons_f9f2bd_256x240.png | Bin .../images/ui-icons_ff7519_256x240.png | Bin .../swanky-purse/jquery-ui-1.7.2.custom.css | 0 .../swanky-purse/jquery-ui-1.7.3.custom.css | 0 .../javascript/jquery-1.3.2.min.js | 0 .../javascript/jquery-1.7.1.js | 0 .../javascript/jquery-1.7.1.min.js | 0 .../javascript/jquery-ui-1.7.2.custom.min.js | 0 .../javascript/jquery.flexbox.js | 0 .../javascript/jquery.flexbox.min.js | 0 gramps/gen/const.py | 2 - gramps/plugins/docgen/htmldoc.py | 4 +- gramps/plugins/webstuff/images/document.png | Bin 2855 -> 0 bytes .../webstuff/images/gramps-geo-altmap.svg | 177 -- .../webstuff/images/gramps-geo-birth.svg | 1370 ---------------- .../webstuff/images/gramps-geo-death.svg | 1438 ----------------- .../webstuff/images/gramps-geo-mainmap.svg | 162 -- .../webstuff/images/gramps-geo-marriage.svg | 1052 ------------ gramps/plugins/webstuff/webstuff.py | 11 +- .../webstuff}/Web_Gender_Female.png | Bin .../webstuff}/Web_Gender_Male.png | Bin .../webstuff}/Web_Mainz_Bkgd.png | Bin .../webstuff}/Web_Mainz_Header.png | Bin .../webstuff}/Web_Mainz_Mid.png | Bin .../webstuff}/Web_Mainz_MidLight.png | Bin .../images => images/webstuff}/blank.gif | Bin .../images => images/webstuff}/crosshairs.png | Bin .../images => images/webstuff}/favicon.ico | Bin .../images => images/webstuff}/favicon2.ico | Bin .../webstuff}/gramps-geo-altmap.png | Bin .../webstuff}/gramps-geo-birth.png | Bin .../webstuff}/gramps-geo-death.png | Bin .../webstuff}/gramps-geo-mainmap.png | Bin .../webstuff}/gramps-geo-marriage.png | Bin .../webstuff}/somerights20.gif | Bin mac/gramps.bundle | 4 - setup.py | 20 +- 71 files changed, 19 insertions(+), 4221 deletions(-) rename {gramps/plugins/webstuff => data}/css/GeoView.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Ash.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Blue.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Cypress.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Lilac.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Peach.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Basic-Spruce.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Citations-Animated.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Citations-Outline.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_DropDown-Menus.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Fade-Menus.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Horizontal-Menus.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Mainz.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Nebraska.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Print-Default.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Vertical-Menus.css (100%) rename {gramps/plugins/webstuff => data}/css/Web_Visually.css (100%) rename {gramps/plugins/webstuff => data}/css/ancestortree.css (100%) rename {gramps/plugins/webstuff => data}/css/behaviour.css (100%) rename {gramps/plugins/webstuff => data}/css/jquery.flexbox.css (100%) rename {gramps/plugins/webstuff => data}/css/narrative-maps.css (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_070603_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_e9cd86_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_efec9f_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_f2ec64_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/images/ui-icons_ff7519_256x240.png (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/jquery-ui-1.7.2.custom.css (100%) rename {gramps/plugins/webstuff => data}/css/swanky-purse/jquery-ui-1.7.3.custom.css (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery-1.3.2.min.js (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery-1.7.1.js (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery-1.7.1.min.js (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery-ui-1.7.2.custom.min.js (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery.flexbox.js (100%) rename {gramps/plugins/webstuff => data}/javascript/jquery.flexbox.min.js (100%) delete mode 100644 gramps/plugins/webstuff/images/document.png delete mode 100644 gramps/plugins/webstuff/images/gramps-geo-altmap.svg delete mode 100644 gramps/plugins/webstuff/images/gramps-geo-birth.svg delete mode 100644 gramps/plugins/webstuff/images/gramps-geo-death.svg delete mode 100644 gramps/plugins/webstuff/images/gramps-geo-mainmap.svg delete mode 100644 gramps/plugins/webstuff/images/gramps-geo-marriage.svg rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Gender_Female.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Gender_Male.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Mainz_Bkgd.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Mainz_Header.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Mainz_Mid.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/Web_Mainz_MidLight.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/blank.gif (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/crosshairs.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/favicon.ico (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/favicon2.ico (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/gramps-geo-altmap.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/gramps-geo-birth.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/gramps-geo-death.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/gramps-geo-mainmap.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/gramps-geo-marriage.png (100%) rename {gramps/plugins/webstuff/images => images/webstuff}/somerights20.gif (100%) diff --git a/gramps/plugins/webstuff/css/GeoView.css b/data/css/GeoView.css similarity index 100% rename from gramps/plugins/webstuff/css/GeoView.css rename to data/css/GeoView.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Ash.css b/data/css/Web_Basic-Ash.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Ash.css rename to data/css/Web_Basic-Ash.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Blue.css b/data/css/Web_Basic-Blue.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Blue.css rename to data/css/Web_Basic-Blue.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Cypress.css b/data/css/Web_Basic-Cypress.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Cypress.css rename to data/css/Web_Basic-Cypress.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Lilac.css b/data/css/Web_Basic-Lilac.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Lilac.css rename to data/css/Web_Basic-Lilac.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Peach.css b/data/css/Web_Basic-Peach.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Peach.css rename to data/css/Web_Basic-Peach.css diff --git a/gramps/plugins/webstuff/css/Web_Basic-Spruce.css b/data/css/Web_Basic-Spruce.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Basic-Spruce.css rename to data/css/Web_Basic-Spruce.css diff --git a/gramps/plugins/webstuff/css/Web_Citations-Animated.css b/data/css/Web_Citations-Animated.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Citations-Animated.css rename to data/css/Web_Citations-Animated.css diff --git a/gramps/plugins/webstuff/css/Web_Citations-Outline.css b/data/css/Web_Citations-Outline.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Citations-Outline.css rename to data/css/Web_Citations-Outline.css diff --git a/gramps/plugins/webstuff/css/Web_DropDown-Menus.css b/data/css/Web_DropDown-Menus.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_DropDown-Menus.css rename to data/css/Web_DropDown-Menus.css diff --git a/gramps/plugins/webstuff/css/Web_Fade-Menus.css b/data/css/Web_Fade-Menus.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Fade-Menus.css rename to data/css/Web_Fade-Menus.css diff --git a/gramps/plugins/webstuff/css/Web_Horizontal-Menus.css b/data/css/Web_Horizontal-Menus.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Horizontal-Menus.css rename to data/css/Web_Horizontal-Menus.css diff --git a/gramps/plugins/webstuff/css/Web_Mainz.css b/data/css/Web_Mainz.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Mainz.css rename to data/css/Web_Mainz.css diff --git a/gramps/plugins/webstuff/css/Web_Nebraska.css b/data/css/Web_Nebraska.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Nebraska.css rename to data/css/Web_Nebraska.css diff --git a/gramps/plugins/webstuff/css/Web_Print-Default.css b/data/css/Web_Print-Default.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Print-Default.css rename to data/css/Web_Print-Default.css diff --git a/gramps/plugins/webstuff/css/Web_Vertical-Menus.css b/data/css/Web_Vertical-Menus.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Vertical-Menus.css rename to data/css/Web_Vertical-Menus.css diff --git a/gramps/plugins/webstuff/css/Web_Visually.css b/data/css/Web_Visually.css similarity index 100% rename from gramps/plugins/webstuff/css/Web_Visually.css rename to data/css/Web_Visually.css diff --git a/gramps/plugins/webstuff/css/ancestortree.css b/data/css/ancestortree.css similarity index 100% rename from gramps/plugins/webstuff/css/ancestortree.css rename to data/css/ancestortree.css diff --git a/gramps/plugins/webstuff/css/behaviour.css b/data/css/behaviour.css similarity index 100% rename from gramps/plugins/webstuff/css/behaviour.css rename to data/css/behaviour.css diff --git a/gramps/plugins/webstuff/css/jquery.flexbox.css b/data/css/jquery.flexbox.css similarity index 100% rename from gramps/plugins/webstuff/css/jquery.flexbox.css rename to data/css/jquery.flexbox.css diff --git a/gramps/plugins/webstuff/css/narrative-maps.css b/data/css/narrative-maps.css similarity index 100% rename from gramps/plugins/webstuff/css/narrative-maps.css rename to data/css/narrative-maps.css diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png b/data/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png rename to data/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png b/data/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png rename to data/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/data/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png rename to data/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_070603_256x240.png b/data/css/swanky-purse/images/ui-icons_070603_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_070603_256x240.png rename to data/css/swanky-purse/images/ui-icons_070603_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png b/data/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png rename to data/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_e9cd86_256x240.png b/data/css/swanky-purse/images/ui-icons_e9cd86_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_e9cd86_256x240.png rename to data/css/swanky-purse/images/ui-icons_e9cd86_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_efec9f_256x240.png b/data/css/swanky-purse/images/ui-icons_efec9f_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_efec9f_256x240.png rename to data/css/swanky-purse/images/ui-icons_efec9f_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_f2ec64_256x240.png b/data/css/swanky-purse/images/ui-icons_f2ec64_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_f2ec64_256x240.png rename to data/css/swanky-purse/images/ui-icons_f2ec64_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png b/data/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png rename to data/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_ff7519_256x240.png b/data/css/swanky-purse/images/ui-icons_ff7519_256x240.png similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/images/ui-icons_ff7519_256x240.png rename to data/css/swanky-purse/images/ui-icons_ff7519_256x240.png diff --git a/gramps/plugins/webstuff/css/swanky-purse/jquery-ui-1.7.2.custom.css b/data/css/swanky-purse/jquery-ui-1.7.2.custom.css similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/jquery-ui-1.7.2.custom.css rename to data/css/swanky-purse/jquery-ui-1.7.2.custom.css diff --git a/gramps/plugins/webstuff/css/swanky-purse/jquery-ui-1.7.3.custom.css b/data/css/swanky-purse/jquery-ui-1.7.3.custom.css similarity index 100% rename from gramps/plugins/webstuff/css/swanky-purse/jquery-ui-1.7.3.custom.css rename to data/css/swanky-purse/jquery-ui-1.7.3.custom.css diff --git a/gramps/plugins/webstuff/javascript/jquery-1.3.2.min.js b/data/javascript/jquery-1.3.2.min.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery-1.3.2.min.js rename to data/javascript/jquery-1.3.2.min.js diff --git a/gramps/plugins/webstuff/javascript/jquery-1.7.1.js b/data/javascript/jquery-1.7.1.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery-1.7.1.js rename to data/javascript/jquery-1.7.1.js diff --git a/gramps/plugins/webstuff/javascript/jquery-1.7.1.min.js b/data/javascript/jquery-1.7.1.min.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery-1.7.1.min.js rename to data/javascript/jquery-1.7.1.min.js diff --git a/gramps/plugins/webstuff/javascript/jquery-ui-1.7.2.custom.min.js b/data/javascript/jquery-ui-1.7.2.custom.min.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery-ui-1.7.2.custom.min.js rename to data/javascript/jquery-ui-1.7.2.custom.min.js diff --git a/gramps/plugins/webstuff/javascript/jquery.flexbox.js b/data/javascript/jquery.flexbox.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery.flexbox.js rename to data/javascript/jquery.flexbox.js diff --git a/gramps/plugins/webstuff/javascript/jquery.flexbox.min.js b/data/javascript/jquery.flexbox.min.js similarity index 100% rename from gramps/plugins/webstuff/javascript/jquery.flexbox.min.js rename to data/javascript/jquery.flexbox.min.js diff --git a/gramps/gen/const.py b/gramps/gen/const.py index 5b67fba57..485be18b2 100644 --- a/gramps/gen/const.py +++ b/gramps/gen/const.py @@ -160,8 +160,6 @@ RULE_GLADE = os.path.join(GLADE_DIR, "rule.glade") PLUGINS_DIR = os.path.join(ROOT_DIR, "plugins") WEB_DIR = os.path.join(ROOT_DIR, 'webapp') -WEBSTUFF_DIR = os.path.join(PLUGINS_DIR, "webstuff") -WEBSTUFF_IMAGE_DIR = os.path.join(WEBSTUFF_DIR, "images") USE_TIPS = False diff --git a/gramps/plugins/docgen/htmldoc.py b/gramps/plugins/docgen/htmldoc.py index 2c0a9d24a..4371c52ae 100644 --- a/gramps/plugins/docgen/htmldoc.py +++ b/gramps/plugins/docgen/htmldoc.py @@ -48,7 +48,7 @@ import time from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.utils.image import resize_to_jpeg -from gramps.gen.const import DATA_DIR, WEBSTUFF_IMAGE_DIR, PROGRAM_NAME, URL_HOMEPAGE +from gramps.gen.const import DATA_DIR, IMAGE_DIR, PROGRAM_NAME, URL_HOMEPAGE from gramps.version import VERSION from gramps.gen.plug.docgen import BaseDoc, TextDoc, FONT_SANS_SERIF, URL_PATTERN from gramps.plugins.lib.libhtmlbackend import HtmlBackend, process_spaces @@ -298,7 +298,7 @@ class HtmlDoc(BaseDoc, TextDoc): if os.path.exists(fullpath): self.copy_file(fullpath, _HTMLSCREEN) #favicon - self.copy_file(os.path.join(WEBSTUFF_IMAGE_DIR, 'favicon.ico'), + self.copy_file(os.path.join(IMAGE_DIR, 'favicon.ico'), 'favicon.ico') def __reduce_list(self): diff --git a/gramps/plugins/webstuff/images/document.png b/gramps/plugins/webstuff/images/document.png deleted file mode 100644 index bfe4bad56cecfb2fb3dd3b1a21a0f7a79bf8f96e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2855 zcmV+?3)u9DP)<h;3K|Lk000e1NJLTq001xm001-y1^@s6%#*v300004XF*Lt006O% z3;baP00006VoOIv0RI600RN!9r;`8x010qNS#tmY3lRVS3lRZ-WM7d0000McNliru z(g6z%2qzp!6$JnQ3ZzLyK~#9!)tYNiROcDTf84yZ<LWMIGD#Cl)=c^(S{u<^W@74$ z)rOdWz#@$#pE5R)$}a3KyTBp};T9p+nS5zJxGIV!<}%exs?#V2+(9kYvFXGMCNwCb ztK0&HWzX9WuxBsloL$Hyt$k<CxSVs|bDrn<|KI=fJns>p01$V=VKf@AEm*K%H;@L* z29lV>5a-XI7k9!K9v&7Q9Ua1KHV2$q0Q?MykLo~R96NUGM>R;2q$wRfpHB=A4-2o? zD~=vL8gL>dniKK-1Vadc5Ms*n#>U3@=9_OY7z`{~vV>1R{S=@RxC@w}W$*ti;*rP5 z$cQ+5_N@Fouh%OM95^7RPoJ)dMA#oKEiM1mh)2#BLU85E6#yhj!eB74Xwf3xd+*Qa zbUIZeVp7QMc8C27kdcugzj()v9jf<7j)H;$Rf9tv7ed1C_sewh`~4V=Mjm?TSG@b~ zyODH?Q#kPClTRvM?D2R2Xl!i6?RMjKyGc(^=jE4Q24KgI9kOu&<6SNnZnv9_8#l6X z<3<2{KA-Gxd3kxj<OpYAWMl-d*GqeQI~^SzeD>LAjEs!1aG{aCd-np^0ewJXV^Zj= zufF1yS6(4GIhph4&y$yz2Ovl4#TQ@X_U+pMyzs&ccsw2+eDFc?^7456@yF$eFJHb~ z4nV+Qw|i$Okz|Kndg&#qs;Ve0Eupcok*caH-g)O8;^N`}{s_ziW&-hX6N^}OKn;b- z@>~7B@yKe-kgo|LxPALJadB~+K7E?r-d=`>zoWPJI$d2|axf1cJ`C_%;9tOvFbAe; z_|)eqof*GZO#FuU_;|*~#sKK+>*Mm}P7)Fl=<o06=+R?TS62h92L1{3s8UEvRkRjg zB$t&&2RR<PU?oYC&kHfGJbwS!#2g8oPRHWKzoxIRpH-`V$Ku6{1JmOIKN4d_?#GC7 zkmDdpN(UuLk`aKokb8tIsQ@!(%uqZvG1Q<HD^|!i2Zq^f#^>{qoNQq0)@_uRm*e$% zdGygo$;->bY&N6Q>F|2JoH}(1gTX*<ZZ3IwdF1DB;=+ZCEL^yd<m6;3Dk>-}EX3#Y z0r18fZ(y}r*}i?dj7o4#1cR|=%^HS=21!gzR5&270ZEc*X=&l9r=ALl$PbHhI8}li z4_pfml9FD5bAj>27hkYu&F?vM=n!dXX#i`0b3jj`x>-n>K9%ASo${*I$1ffc*S? zmM>pUUfu@s^Yak`o_OL3a&vRB+wJIdI!a4RsH>~TU@#CLA5U^}GDnUaAt@<|?b}~t z>(*@;jYckByhwR@IX0V>B}<l&o0}UEgy>mbM!@g)laP=g>-$uq9O=ALX(W|J9Epqw zGdlGBI^Asg`}=8aZB-x;A8NqopZ|@7goLn%SuAF@Y$=~eJZ{Wp3qrt_En5JA#bUu? zu^>r8zE)UR$mY#|V&~4C`2Bt=Dz>tDa{&bf1qdOrd-pDEHtWRwf`S4w+qPAP^*55l zggOZh9z4kG*|Vb~Fg7+uOG^tYSFU7i%ojDvq1S@&29XJuQ!Qkq2t<^T4?L%>t&Oy_ zXJV}Z!OE2@WrYX~i^VdbLgOk@QBi@{>t)%pR5onbKw)8#tU{+xpT=O&V>0FN{PTaH zpuo(fOBXR37h*8zak*UBY<Bq_jg5`i?RM(x>%t5Vmr+4l+B4j|>5Yzn&*$U#@#7Ot zjB4^fnqsIWD`g@KM>1ge_#vq(U2AI_YuB!gjX=<l;JJ#53i|s8XlQ6)*REY$x^#&x zTgoXavf}fNVlX7*a=9>@%`97%3P5gdE=^5MoH*g(t+(Eysi}$F-1SsdRbez50cdYO z2|z=`cJ}Pq1Hk(A>q86|5!8yILZhRjOq({1(b4Z!I3E6h0K~DCBs{{A3KJeMp{jC1 z2<Fb6$Bi4;X>UKNtwKTwjvP6{v}x02IL9FktyRQC{StXiAW0&`p<rn|t|lTvVS@K7 z=b)&oKKbNh=FXj`ihu@%Bvme}Q7pWpQYuL}I+CigDJi2Y9<@edC@og4TE)o7h$170 z7hpog8KIi|g7u7+WU3i16z_ZPxpaDadx){EA~<~bugsh|GlUXQRAi;HavLCMYTAv> zW<!z$m6eqUA+X!+*zLs=za0o6C@wChu&{_ddzuhJ;?-BHv0ANItyY8(G&k?X>2zYV z*$@J(RvR@nHAs@AFkT4w=%WvrKmYFNi+Ff=nB&KfvwHPvzWZ)Sl^W4{1ZC-<U5-R1 zxlp6k`iT=KJfx>*M3+$^Bv!9p&Ct+b7@QVMAs|RhOrpNNPA(NvQ<t)S{d$UutN=Xr z*ki0)mqA6vR%XqbMNyH3H{X04y?zey@d@blb2xUag`}h;Dl4~AQ&USyN(!Bwoj4rD zl$MsUXwf1}CX<4W>FF6<z1kfefx*E+T3g4<*1^GnC_Go5S1TvfqaPY^p}Hp23PF#@ zLq<ks>_nzUi>j(u85|s>uCA7*rag3aUZSL=1c$?k&*#Hn&{I<4#A>y%bm=1im`ph| zH#gJX-cCb91AF&2laphjrly7m9!LS;)TzG%g1Wj|_U+pbKz4SvYQ~S&n#%|b3=E*t z>FDq8)8uPp0jC~$H8m1ZGix{k%4gkk&o8)g<y+32IU9Wq96EH6r=L!vukV)paEHTz z&*ww0H{f(SsIIQz)~%Z?UAmN<91~7w3A1L+;^xhpbab4-V9>K}T_!m>CTuo4moImc zlJWq0y&i|dPFa~tF6L@$YbYyoQB_r`Nmqaa2i|Ahx-8C|IjfC8U*9cSTiZxW3pfx= zFv><;D~V~{FEnz18k)*+;)I9H%&gcgWm;Mqw{G3kG$e8>CDI@*!<F@sR%NPAtIW(S zy1V}!J&}!fK7T>4H-sb<wf&y(^P#m(<h5WCC&HWzubaY+4i<UAYae{@KKI^xU-VKU zu+gNIOw{04mqRqGO0BL=jcSwKAq+!c?b>I#apQUz$DPg+s;g@e0-BqfDJdyKk|e6D zYXCu6nTyg=7eYW;S=q$7GK!0x?Ax~=Ap~`GbvT_)oK7bI`}Vz$%T<okSptl|qrSdg zGs|aXW%KQ~UD0Lq#*JRu+D`E7v(It;dap(Tl43?Cdf5@ZInjEq$KxR@%M`1WP>0`c zFXoX)euK%BO>J!*LqkJ6{P4q^Jb9AT)KpBSY#a_JbLPyUxY&-v;Y6?3W4GI=uYZk{ zloYbEGACiQT7HP_tc<|*>(`h!?=E_KuSH2f+Ao>PzN%KhwC3G+-vYY2zUJJyFQav2 z@bSkVF@OGDsyoM_N)oCT%FjfEwTsbJMrf8Wp?~k+-^~5@|1x$*7VLG2p%~gpOgqwI z(wv{l2g9(AEF&X>o}MdH+&Y}RVL#OH?Cc!6y1tIxk$w2#0q(y0o(Re)8*w%Gr}EiV ziz-@UQWVnaQ`Iu&PaW~8jCg<x7cKyTjEqdKUhO9Ey&$l45=;Jm?1*bosJpvc9f6*n z9tH;o>FD?ecj7pA?n}D6yBQc5P+fR;%>Ngf<go)-G4aJdA@H>?75F(YE%XcE9XJH= zJ#Y=U0t^L=)lV3o@PFWd9~c3Kfw8!d#e63luI7jY@E^b7Pkx$QZXo~w002ovPDHLk FV1jOyTQdLv diff --git a/gramps/plugins/webstuff/images/gramps-geo-altmap.svg b/gramps/plugins/webstuff/images/gramps-geo-altmap.svg deleted file mode 100644 index 1b92d4c26..000000000 --- a/gramps/plugins/webstuff/images/gramps-geo-altmap.svg +++ /dev/null @@ -1,177 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg3906" - version="1.1" - inkscape:version="0.47pre0 r21549" - sodipodi:docname="gramps-geo-altmap.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <title - id="title2916">gramps-geo-altmap</title> - <defs - id="defs3908"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective3914" /> - <inkscape:perspective - id="perspective3891" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3668" - id="linearGradient6262" - gradientUnits="userSpaceOnUse" - x1="288.36801" - y1="423.65311" - x2="359.15457" - y2="423.65311" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3668"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3670" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop3672" /> - </linearGradient> - <inkscape:perspective - id="perspective4035" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3668-1" - id="linearGradient2933" - gradientUnits="userSpaceOnUse" - x1="288.36801" - y1="423.65311" - x2="359.15457" - y2="423.65311" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3668-1"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3670-0" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop3672-6" /> - </linearGradient> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="7" - inkscape:cx="32.471316" - inkscape:cy="23.449345" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1078" - inkscape:window-height="707" - inkscape:window-x="260" - inkscape:window-y="117" - inkscape:window-maximized="0" /> - <metadata - id="metadata3911"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>gramps-geo-altmap</dc:title> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> - <dc:date>2009-09-07</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Serge Noiraud</dc:title> - </cc:Agent> - </dc:creator> - <dc:description>used to select the proprietary map.</dc:description> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <path - d="m 20.680283,39.12631 c 10.271495,2.159013 8.307555,-3.123848 8.307555,-3.123848 l 5.071932,-3.401433 c 0,0 2.637138,0.21373 4.387829,0.09533 0.999233,-0.06758 2.680145,-1.046411 2.357227,-2.201648 -1.218455,-4.359011 -7.427195,-6.950657 -11.550556,-7.138293 -2.033311,-0.09253 -2.952564,0.696822 -2.952564,0.696822 -1.539345,0.969216 0.08748,3.894222 0.08748,3.894222 l -4.049411,4.019562 c -9.725562,-0.791858 -4.950964,4.931448 -4.950964,4.931448 l -9.8557157,9.159757 c 0,0 -0.087216,1.528401 2.7064097,-0.01094 l 10.440776,-6.920977 0,-6e-6 z" - id="path2453-3" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.17199267px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - sodipodi:nodetypes="cccssscccccccc" /> - <g - id="g2893-2" - style="fill:#ef2929;fill-opacity:1" - transform="matrix(0.17199268,0,0,0.17199268,-43.009698,-36.289865)"> - <path - sodipodi:nodetypes="ccccc" - style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path3225-0" - d="M 319.44354,366.56878 292.72208,469.6616 c -2.1317,22.81794 12.07963,3.30695 12.07963,3.30695 l 50.2167,-93.83671 -35.57487,-12.56306 z" /> - </g> - <path - d="m 26.452623,25.877284 c -0.54896,1.377469 -2.093603,2.400406 -4.197855,2.780016 -2.10425,0.37961 -4.742193,0.111221 -7.169094,-0.729399 C 12.658773,27.087284 10.472803,25.68479 9.1448974,24.116365 7.8169918,22.547941 7.3635056,20.832901 7.912465,19.455432 c 0.5489593,-1.37747 2.496221,-2.014627 4.624013,-2.098162 2.502928,-0.09826 4.54825,0.12749 6.413449,0.75797 1.865198,0.630481 3.550276,1.665691 5.332716,3.186344 1.562225,1.33278 2.718939,3.198232 2.16998,4.5757 z" - id="path3227-6" - style="fill:#ef2929;fill-opacity:1;stroke:#000000;stroke-width:1.03195608000000005;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" - sodipodi:nodetypes="csssssssc" /> - <path - d="m 14.977112,10.44911 -3.106086,10.037413 c 0.969617,3.707123 8.377748,6.060349 10.998278,3.660376 l 3.733123,-8.867937" - id="path3233-1" - style="fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.04616748999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - sodipodi:nodetypes="cccc" /> - <path - d="M 14.235182,3.0499825 12.793997,6.865199 c 0.1135,5.058298 13.043976,10.582035 18.529149,7.01257 l 1.653369,-3.9908943" - id="path3231-5" - style="fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03195608000000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - sodipodi:nodetypes="cccc" /> - <path - d="M 32.671194,10.721426 C 32.017559,11.57151 30.3835,12.0047 28.23049,11.898659 26.077481,11.792617 23.432054,11.148649 21.041311,10.148622 18.650568,9.1485944 16.543969,7.8048294 15.316445,6.4968233 14.08892,5.1888156 13.585133,4.0179161 14.240144,3.1684081 14.893779,2.3183239 16.698302,1.7999036 18.851311,1.905944 c 2.15301,0.1060421 4.798436,0.7500102 7.189179,1.7500375 2.390743,1.0000274 4.497342,2.3437933 5.724866,3.6517994 1.227526,1.3080077 1.560849,2.5641373 0.905838,3.4136451 z" - id="path3229-5" - style="fill:#ef2929;fill-opacity:1;stroke:#000000;stroke-width:1.03195608000000005;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" - sodipodi:nodetypes="cssscsssc" /> - </g> -</svg> diff --git a/gramps/plugins/webstuff/images/gramps-geo-birth.svg b/gramps/plugins/webstuff/images/gramps-geo-birth.svg deleted file mode 100644 index e88c5000a..000000000 --- a/gramps/plugins/webstuff/images/gramps-geo-birth.svg +++ /dev/null @@ -1,1370 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:export-ydpi="30" - inkscape:export-xdpi="30" - inkscape:export-filename="/home/gramps/trunk/src/images/16x16/gramps-geo-birth.png" - sodipodi:docname="gramps-geo-birth.svg" - inkscape:version="0.47pre0 r21549" - sodipodi:version="0.32" - id="svg249" - height="48.000000px" - width="48.000000px" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - sodipodi:modified="TRUE" - version="1.1"> - <defs - id="defs3"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective83" /> - <linearGradient - inkscape:collect="always" - id="linearGradient23434"> - <stop - style="stop-color:#2e3436" - offset="0" - id="stop23436" /> - <stop - style="stop-color:#555753" - offset="1" - id="stop23438" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19914"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop19916" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop19918" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19900"> - <stop - style="stop-color:#888a85" - offset="0" - id="stop19902" /> - <stop - style="stop-color:#d3d7cf" - offset="1" - id="stop19904" /> - </linearGradient> - <linearGradient - id="linearGradient15493"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient11102"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop11104" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop11106" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4952"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4954" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4956" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4931"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop4933" /> - <stop - style="stop-color:#888a85" - offset="1" - id="stop4935" /> - </linearGradient> - <linearGradient - id="linearGradient4919"> - <stop - style="stop-color:#429eff;stop-opacity:1;" - offset="0" - id="stop4921" /> - <stop - style="stop-color:#0044a7;stop-opacity:1;" - offset="1" - id="stop4923" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2980"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop2982" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop2984" /> - </linearGradient> - <linearGradient - id="linearGradient2609" - inkscape:collect="always"> - <stop - id="stop2611" - offset="0" - style="stop-color:#ffffff;stop-opacity:1" /> - <stop - id="stop2613" - offset="1" - style="stop-color:#eeeeec" /> - </linearGradient> - <linearGradient - id="linearGradient2617"> - <stop - id="stop2619" - offset="0" - style="stop-color:#fbfbfa;stop-opacity:1;" /> - <stop - id="stop2621" - offset="1" - style="stop-color:#d3d7cf" /> - </linearGradient> - <linearGradient - id="linearGradient2690" - inkscape:collect="always"> - <stop - id="stop2692" - offset="0" - style="stop-color:#2e3436" /> - <stop - id="stop2694" - offset="1" - style="stop-color:#555753" /> - </linearGradient> - <linearGradient - id="linearGradient2698"> - <stop - id="stop2700" - offset="0" - style="stop-color:#555753" /> - <stop - style="stop-color:#a3a5a2;stop-opacity:1;" - offset="0.70238096" - id="stop2706" /> - <stop - id="stop2702" - offset="1" - style="stop-color:#888a85" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient1409" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-3.294293e-16,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient1411" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(4.928248e-11,-1.686609,1.66336,-1.770202e-15,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient1421" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient1423" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient4925" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" - gradientTransform="matrix(1.459545,-9.027299e-15,-5.118666e-17,1.345339,-7.403138,-10.82184)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient4937" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient4960" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient11108" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,-1.897043e-16,1.897043e-16,0.946826,0.469351,0.499261)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient17263" - gradientUnits="userSpaceOnUse" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" - gradientTransform="translate(2,-1)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient19906" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient19920" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient23426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,1.362626e-15,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient23432" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,-4.196543e-16,-3.619011e-17,0.34,1.860387e-15,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient23440" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient2907" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient2909" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient2911" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient2913" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient2915" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient2917" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient2919" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient2921" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient2923" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient2925" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient2927" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient2929" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient2931" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3206" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3208" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3210" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3212" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3214" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3216" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3218" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3220" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3222" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3224" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3226" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3228" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3230" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3232" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3254" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3256" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3258" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3260" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3262" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3264" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3268" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3270" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3272" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3274" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3276" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98026983,0.19766401,0.19766401,0.98026983,38.692291,-5.5216756)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98026983,0.19766401,0.19766401,0.98026983,38.692291,-5.5216756)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3297" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3054431,-0.14503035,-0.12861137,2.0447787,64.592927,-27.574036)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3300" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3320" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3322" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3054431,-0.14503035,-0.12861137,2.0447787,64.592927,-27.574036)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3324" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3326" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3328" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3330" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98026983,0.19766401,0.19766401,0.98026983,38.692291,-5.5216756)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3332" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98026983,0.19766401,0.19766401,0.98026983,38.692291,-5.5216756)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3334" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3336" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3338" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3340" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3342" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3355" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3358" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3365" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.309533,0.04558854,0.04123214,2.0097849,58.49315,-30.714192)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3259" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3261" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.309533,0.04558854,0.04123214,2.0097849,58.49315,-30.714192)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3265" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3267" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3269" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3271" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3273" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3275" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3277" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3279" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3281" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3294" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3297" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3304" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.2840124,0.3325768,0.30212738,1.9135354,50.674567,-34.252822)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3307" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - </defs> - <sodipodi:namedview - inkscape:window-y="0" - inkscape:window-x="178" - inkscape:window-height="791" - inkscape:window-width="929" - inkscape:document-units="px" - inkscape:grid-bbox="false" - showgrid="false" - inkscape:current-layer="layer5" - inkscape:cy="23.88245" - inkscape:cx="32.311989" - inkscape:zoom="10.854545" - inkscape:pageshadow="2" - inkscape:pageopacity="0" - borderopacity="1" - bordercolor="#666666" - pagecolor="#b6b6b6" - id="base" - inkscape:showpageshadow="false" - showborder="true" - showguides="false" - inkscape:guide-bbox="true" - inkscape:grid-points="true" - fill="#729fcf" - stroke="#2e3436" - inkscape:window-maximized="0"> - <sodipodi:guide - orientation="horizontal" - position="28" - id="guide1415" /> - <sodipodi:guide - orientation="vertical" - position="19" - id="guide1417" /> - <inkscape:grid - id="GridFromPre046Settings" - type="xygrid" - originx="0px" - originy="0px" - spacingx="0.5px" - spacingy="0.5px" - color="#0000ff" - empcolor="#0000ff" - opacity="0.2" - empopacity="0.4" - empspacing="2" /> - </sodipodi:namedview> - <metadata - id="metadata4"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Find</dc:title> - <dc:subject> - <rdf:Bag> - <rdf:li>document</rdf:li> - <rdf:li>search</rdf:li> - <rdf:li>find</rdf:li> - </rdf:Bag> - </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>Lapo Calamandrei</dc:title> - </cc:Agent> - </dc:creator> - <dc:source /> - <dc:contributor> - <cc:Agent> - <dc:title>Jakub Steiner</dc:title> - </cc:Agent> - </dc:contributor> - <dc:date>2006-04-21</dc:date> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Shadow" /> - <g - style="display:inline" - inkscape:groupmode="layer" - inkscape:label="Base" - id="layer1" /> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Text" - style="display:inline"> - <g - transform="translate(-12.26513,47.49999)" - style="display:inline" - inkscape:label="base" - id="g2637" /> - <path - sodipodi:type="arc" - style="opacity:0.04705882;color:#000000;fill:url(#radialGradient3206);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path23418" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(1.0028608,-0.02269424,0.0156831,0.69306327,3.8134156,19.801095)" /> - <g - id="g3309"> - <path - transform="matrix(-1.0866903,0.45131417,0.46351946,1.0064111,28.322765,-9.2459198)" - d="m 31,18.25 a 13.5,13.75 0 1 1 -27,0 13.5,13.75 0 1 1 27,0 z" - sodipodi:ry="13.75" - sodipodi:rx="13.5" - sodipodi:cy="18.25" - sodipodi:cx="17.5" - id="path1425" - style="opacity:0.6;color:#000000;fill:url(#radialGradient3259);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="cscsscsc" - id="path4939" - d="m 11.714247,2.5317397 c 7.937506,-2.9626651 16.982489,0.5191617 20.406201,7.9528563 0.962747,2.090354 0.594348,4.618103 0.389319,6.753677 C 30.780361,12.363758 28.164001,12.229439 26.932162,13.237759 23.194847,16.296935 16.228058,20.560146 6.7793575,19.965655 3.4669804,19.757248 3.3929972,23.669107 2.1522268,20.696059 -0.09127673,13.596908 3.7525247,5.8383287 11.149899,2.7661198 11.339036,2.6875692 11.523747,2.6028406 11.714247,2.5317397 z" - style="opacity:0.5;color:#000000;fill:url(#radialGradient3304);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#radialGradient3263);stroke-width:1.87499988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2607" - sodipodi:cx="52.5" - sodipodi:cy="4.5" - sodipodi:rx="10" - sodipodi:ry="10" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - transform="matrix(-1.4670322,0.60927423,0.63733892,1.3838146,91.916076,-21.194987)" /> - <g - id="g2708" - transform="matrix(-1.4157337,0.58796943,0.61185172,1.3284758,89.814475,-79.302861)"> - <path - sodipodi:nodetypes="cczzzcc" - id="path2682" - d="m 76.796351,49.768459 0.647647,3.255175 5.181173,5.213494 c 0.192503,0.193704 0.97147,0.320302 1.942939,-0.65625 0.97147,-0.976552 0.895574,-1.70388 0.647647,-1.953105 l -5.181173,-5.208279 -3.238233,-0.651035 z" - style="color:#000000;fill:url(#linearGradient3265);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3267);stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:nodetypes="csccc" - id="path2687" - d="m 79.567301,51.320041 c -0.003,0.0112 0.294101,0.324318 -0.245291,0.864982 -0.539399,0.540663 -1.007144,0.373988 -0.993486,0.360259 l -0.269149,-1.521577 1.507926,0.296336 z" - style="opacity:0.19215686;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999964;marker:none;visibility:visible;display:inline;overflow:visible" /> - </g> - <path - style="color:#000000;fill:none;stroke:url(#linearGradient3297);stroke-width:0.97195268;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 10.873637,33.562267 0.704333,3.005757 -3.8693881,9.384635 c -0.1902944,0.46154 -0.7694377,0.544068 -1.9976635,0.092 -1.2282284,-0.45206 -1.6351962,-0.76466 -1.3958441,-1.34461 l 3.871373,-9.380322 2.6871897,-1.75746 z" - id="path17267" - sodipodi:nodetypes="cczzzcc" /> - <path - sodipodi:nodetypes="cccccsssccccc" - id="path19908" - d="m 11.493817,31.463571 c 0.273091,-0.02327 0.516911,0.15628 0.558257,0.411074 l 1.059484,4.703394 c 0.01332,0.08891 4.94e-4,0.179769 -0.03712,0.262696 l -4.1068203,9.96471 C 8.7827275,47.250222 8.3304309,47.545624 7.6857263,47.684018 7.0410207,47.822412 6.1768744,47.757557 5.1152384,47.366807 4.0623656,46.979285 3.3987797,46.516966 3.0160546,46.013112 2.6333291,45.509257 2.5123532,44.952706 2.6947747,44.514502 l 4.170137,-9.94156 c 0.041413,-0.09682 0.1142759,-0.179037 0.2080896,-0.234788 l 4.1553657,-2.764339 c 0.0759,-0.05949 0.167922,-0.09771 0.265448,-0.110252 z" - style="opacity:0.15294118;color:#000000;fill:url(#linearGradient3294);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#radialGradient3273);stroke-width:0.60606074;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2605" - sodipodi:cx="52.5" - sodipodi:cy="4.5" - sodipodi:rx="10" - sodipodi:ry="10" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - transform="matrix(-1.5128769,0.62831404,0.65725577,1.4270588,94.233291,-22.389175)" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#linearGradient3275);stroke-width:0.57142824;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2599" - sodipodi:cx="52.5" - sodipodi:cy="4.5" - sodipodi:rx="10" - sodipodi:ry="10" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - transform="matrix(-1.6045665,0.6663937,0.69708944,1.5135472,98.867744,-24.777554)" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#linearGradient3277);stroke-width:0.68814939;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path4927" - sodipodi:cx="52.5" - sodipodi:cy="4.5" - sodipodi:rx="10" - sodipodi:ry="10" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - transform="matrix(-1.3324064,0.55336266,0.57885311,1.256828,85.111411,-17.688195)" /> - <path - transform="matrix(-1.2147411,0.50449504,0.52773334,1.1458348,25.96978,-4.0482826)" - d="m 22.1875,12.9375 a 9.8125,9.8125 0 1 1 -19.625,0 9.8125,9.8125 0 1 1 19.625,0 z" - sodipodi:ry="9.8125" - sodipodi:rx="9.8125" - sodipodi:cy="12.9375" - sodipodi:cx="12.375" - id="path11092" - style="opacity:0.16078431;color:#000000;fill:url(#radialGradient3279);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <g - transform="matrix(-0.99911273,9.3164654e-5,0.01345994,0.94553095,38.490539,-0.94796776)" - style="opacity:0.76078431" - id="g1399"> - <path - style="color:#000000;fill:url(#linearGradient3307);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 18.5,10.5 0,6 -6,0 0,5 6,0 0,6 5,0 0,-6 6,0 0,-5 -6,0 0,-6 -5,0 z" - id="rect8466" - sodipodi:nodetypes="ccccccccccccc" /> - <path - style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 19.5,11.5 0,6 -6,0 0,3 6,0 0,6 3,0 0,-6 6,0 0,-3 -6,0 0,-6 -3,0 z" - id="rect12861" - sodipodi:nodetypes="ccccccccccccc" /> - </g> - <path - transform="matrix(-1.4540417,0.60387911,0.47985407,1.0418775,48.518503,-11.911116)" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - sodipodi:ry="4.5078058" - sodipodi:rx="13.258252" - sodipodi:cy="30.145554" - sodipodi:cx="28.284271" - id="path2970" - style="opacity:0.072;color:#000000;fill:url(#radialGradient3283);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - </g> -</svg> diff --git a/gramps/plugins/webstuff/images/gramps-geo-death.svg b/gramps/plugins/webstuff/images/gramps-geo-death.svg deleted file mode 100644 index 37c9fdc71..000000000 --- a/gramps/plugins/webstuff/images/gramps-geo-death.svg +++ /dev/null @@ -1,1438 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="/home/gramps/trunk/src/images/48x48/gramps-geo-death.png" - sodipodi:docname="gramps-geo-death.svg" - inkscape:version="0.47pre0 r21549" - sodipodi:version="0.32" - id="svg249" - height="48.000000px" - width="48.000000px" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - sodipodi:modified="TRUE" - version="1.1"> - <defs - id="defs3"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective83" /> - <linearGradient - inkscape:collect="always" - id="linearGradient23434"> - <stop - style="stop-color:#2e3436" - offset="0" - id="stop23436" /> - <stop - style="stop-color:#555753" - offset="1" - id="stop23438" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19914"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop19916" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop19918" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19900"> - <stop - style="stop-color:#888a85" - offset="0" - id="stop19902" /> - <stop - style="stop-color:#d3d7cf" - offset="1" - id="stop19904" /> - </linearGradient> - <linearGradient - id="linearGradient15493"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient11102"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop11104" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop11106" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4952"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4954" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4956" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4931"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop4933" /> - <stop - style="stop-color:#888a85" - offset="1" - id="stop4935" /> - </linearGradient> - <linearGradient - id="linearGradient4919"> - <stop - style="stop-color:#429eff;stop-opacity:1;" - offset="0" - id="stop4921" /> - <stop - style="stop-color:#0044a7;stop-opacity:1;" - offset="1" - id="stop4923" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2980"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop2982" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop2984" /> - </linearGradient> - <linearGradient - id="linearGradient2609" - inkscape:collect="always"> - <stop - id="stop2611" - offset="0" - style="stop-color:#ffffff;stop-opacity:1" /> - <stop - id="stop2613" - offset="1" - style="stop-color:#eeeeec" /> - </linearGradient> - <linearGradient - id="linearGradient2617"> - <stop - id="stop2619" - offset="0" - style="stop-color:#fbfbfa;stop-opacity:1;" /> - <stop - id="stop2621" - offset="1" - style="stop-color:#d3d7cf" /> - </linearGradient> - <linearGradient - id="linearGradient2690" - inkscape:collect="always"> - <stop - id="stop2692" - offset="0" - style="stop-color:#2e3436" /> - <stop - id="stop2694" - offset="1" - style="stop-color:#555753" /> - </linearGradient> - <linearGradient - id="linearGradient2698"> - <stop - id="stop2700" - offset="0" - style="stop-color:#555753" /> - <stop - style="stop-color:#a3a5a2;stop-opacity:1;" - offset="0.70238096" - id="stop2706" /> - <stop - id="stop2702" - offset="1" - style="stop-color:#888a85" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient1409" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-3.294293e-16,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient1411" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(4.928248e-11,-1.686609,1.66336,-1.770202e-15,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient1421" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient1423" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient4925" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" - gradientTransform="matrix(1.459545,-9.027299e-15,-5.118666e-17,1.345339,-7.403138,-10.82184)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient4937" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient4960" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient11108" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,-1.897043e-16,1.897043e-16,0.946826,0.469351,0.499261)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient17263" - gradientUnits="userSpaceOnUse" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" - gradientTransform="translate(2,-1)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient19906" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient19920" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient23426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,1.362626e-15,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient23432" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,-4.196543e-16,-3.619011e-17,0.34,1.860387e-15,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient23440" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient2913" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98079911,0.19502081,0.19502081,0.98079911,39.379173,-5.6628154)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient2917" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98079911,0.19502081,0.19502081,0.98079911,39.379173,-5.6628154)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient2925" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3050437,-0.15124454,-0.13412295,2.0444246,65.339161,-27.645276)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient2928" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient2930" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient2932" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient2934" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient2936" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient2938" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient2940" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient2942" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient2944" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient2946" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient2948" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3391" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3050437,-0.15124454,-0.13412295,2.0444246,65.339161,-27.645276)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3393" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3397" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3399" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98079911,0.19502081,0.19502081,0.98079911,39.379173,-5.6628154)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3403" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.98079911,0.19502081,0.19502081,0.98079911,39.379173,-5.6628154)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3407" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3409" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3411" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3413" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3415" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.27426562,0.27426562,0.96165399,36.807125,-7.0700945)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3429" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.27426562,0.27426562,0.96165399,36.807125,-7.0700945)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3437" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3097037,0.03701987,0.03285533,2.048556,60.890221,-31.094126)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3440" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3462" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3097037,0.03701987,0.03285533,2.048556,60.890221,-31.094126)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3464" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3466" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3468" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3470" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.27426562,0.27426562,0.96165399,36.807125,-7.0700945)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3472" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.27426562,0.27426562,0.96165399,36.807125,-7.0700945)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3474" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3476" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3478" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3480" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3482" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3484" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3336" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.26929861,0.27426562,0.94423823,34.774193,-7.0269589)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3339" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.96165399,0.26929861,0.27426562,0.94423823,34.774193,-7.0269589)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.3097037,0.03634943,0.03285533,2.0114562,58.857289,-30.61591)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <inkscape:perspective - id="perspective3357" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493-0" - id="linearGradient3482-1" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <linearGradient - id="linearGradient15493-0"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495-6" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497-3" /> - </linearGradient> - <inkscape:perspective - id="perspective3468" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919-2" - id="radialGradient3259" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <linearGradient - id="linearGradient4919-2"> - <stop - style="stop-color:#429eff;stop-opacity:1;" - offset="0" - id="stop4921-0" /> - <stop - style="stop-color:#0044a7;stop-opacity:1;" - offset="1" - id="stop4923-6" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952-1" - id="radialGradient3304" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.2840124,0.3325768,0.30212738,1.9135354,50.674567,-34.252822)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924616" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4952-1"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4954-5" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4956-5" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617-4" - id="radialGradient3263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - id="linearGradient2617-4"> - <stop - id="stop2619-7" - offset="0" - style="stop-color:#fbfbfa;stop-opacity:1;" /> - <stop - id="stop2621-6" - offset="1" - style="stop-color:#d3d7cf" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698-5" - id="linearGradient3265" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - id="linearGradient2698-5"> - <stop - id="stop2700-6" - offset="0" - style="stop-color:#555753" /> - <stop - style="stop-color:#a3a5a2;stop-opacity:1;" - offset="0.70238096" - id="stop2706-9" /> - <stop - id="stop2702-3" - offset="1" - style="stop-color:#888a85" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690-7" - id="linearGradient3267" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - id="linearGradient2690-7" - inkscape:collect="always"> - <stop - id="stop2692-4" - offset="0" - style="stop-color:#2e3436" /> - <stop - id="stop2694-5" - offset="1" - style="stop-color:#555753" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900-2" - id="linearGradient3297" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - id="linearGradient19900-2"> - <stop - style="stop-color:#888a85" - offset="0" - id="stop19902-5" /> - <stop - style="stop-color:#d3d7cf" - offset="1" - id="stop19904-4" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914-7" - id="linearGradient3294" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - id="linearGradient19914-7"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop19916-4" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop19918-4" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609-3" - id="radialGradient3273" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - id="linearGradient2609-3" - inkscape:collect="always"> - <stop - id="stop2611-0" - offset="0" - style="stop-color:#ffffff;stop-opacity:1" /> - <stop - id="stop2613-7" - offset="1" - style="stop-color:#eeeeec" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434-8" - id="linearGradient3275" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - id="linearGradient23434-8"> - <stop - style="stop-color:#2e3436" - offset="0" - id="stop23436-6" /> - <stop - style="stop-color:#555753" - offset="1" - id="stop23438-8" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931-8" - id="linearGradient3277" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4931-8"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop4933-4" /> - <stop - style="stop-color:#888a85" - offset="1" - id="stop4935-3" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102-1" - id="radialGradient3279" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - id="linearGradient11102-1"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop11104-4" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop11106-9" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493-2" - id="linearGradient3307" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <linearGradient - id="linearGradient15493-2"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495-0" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497-6" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980-8" - id="radialGradient3283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - id="linearGradient2980-8"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop2982-9" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop2984-2" /> - </linearGradient> - <radialGradient - r="13.258252" - fy="30.145554" - fx="28.284271" - cy="30.145554" - cx="28.284271" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - gradientUnits="userSpaceOnUse" - id="radialGradient3542" - xlink:href="#linearGradient2980-8" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914-7" - id="linearGradient3702" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,30.222013,-8.4833955)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900-2" - id="linearGradient3705" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,30.222013,-8.4833955)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952-1" - id="radialGradient3712" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.2840124,0.3325768,0.30212738,1.9135354,50.926714,-34.080091)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924616" /> - </defs> - <sodipodi:namedview - inkscape:window-y="0" - inkscape:window-x="510" - inkscape:window-height="791" - inkscape:window-width="1078" - inkscape:document-units="px" - inkscape:grid-bbox="false" - showgrid="false" - inkscape:current-layer="layer5" - inkscape:cy="23.409659" - inkscape:cx="25.310324" - inkscape:zoom="11.313708" - inkscape:pageshadow="2" - inkscape:pageopacity="0" - borderopacity="1" - bordercolor="#666666" - pagecolor="#b6b6b6" - id="base" - inkscape:showpageshadow="false" - showborder="true" - showguides="false" - inkscape:guide-bbox="true" - inkscape:grid-points="true" - fill="#729fcf" - stroke="#2e3436" - inkscape:window-maximized="0"> - <sodipodi:guide - orientation="horizontal" - position="28" - id="guide1415" /> - <sodipodi:guide - orientation="vertical" - position="19" - id="guide1417" /> - <inkscape:grid - id="GridFromPre046Settings" - type="xygrid" - originx="0px" - originy="0px" - spacingx="0.5px" - spacingy="0.5px" - color="#0000ff" - empcolor="#0000ff" - opacity="0.2" - empopacity="0.4" - empspacing="2" /> - </sodipodi:namedview> - <metadata - id="metadata4"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Find</dc:title> - <dc:subject> - <rdf:Bag> - <rdf:li>document</rdf:li> - <rdf:li>search</rdf:li> - <rdf:li>find</rdf:li> - </rdf:Bag> - </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>Lapo Calamandrei</dc:title> - </cc:Agent> - </dc:creator> - <dc:source /> - <dc:contributor> - <cc:Agent> - <dc:title>Jakub Steiner</dc:title> - </cc:Agent> - </dc:contributor> - <dc:date>2006-04-21</dc:date> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Shadow" /> - <g - style="display:inline" - inkscape:groupmode="layer" - inkscape:label="Base" - id="layer1" /> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Text" - style="display:inline"> - <g - transform="translate(-12.26513,47.49999)" - style="display:inline" - inkscape:label="base" - id="g2637" /> - <path - sodipodi:type="arc" - style="opacity:0.04705882;color:#000000;fill:url(#radialGradient3395);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path23418" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(-0.90142492,0.44008851,0.30413963,0.62296208,29.61965,13.623553)" /> - <path - sodipodi:type="arc" - style="opacity:0.072;color:#000000;fill:url(#radialGradient3484);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2970" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(-1.5250217,0.42706236,0.33039244,1.1374709,53.608655,-7.89289)" /> - <path - sodipodi:type="arc" - style="opacity:0.6;color:#000000;fill:url(#radialGradient3259);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - id="path1425" - sodipodi:cx="17.5" - sodipodi:cy="18.25" - sodipodi:rx="13.5" - sodipodi:ry="13.75" - d="m 31,18.25 a 13.5,13.75 0 1 1 -27,0 13.5,13.75 0 1 1 27,0 z" - transform="matrix(-1.0866903,0.45131417,0.46351946,1.0064111,28.574912,-9.0731886)" /> - <path - style="opacity:0.5;color:#000000;fill:url(#radialGradient3712);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 11.966394,2.7044709 c 7.937506,-2.96266512 16.982489,0.5191617 20.406201,7.9528561 0.962747,2.090354 0.594348,4.618103 0.389319,6.753677 C 31.032508,12.536489 28.416148,12.40217 27.184309,13.41049 23.446994,16.469666 16.480205,20.732877 7.0315048,20.138386 3.7191277,19.929979 3.6451445,23.841838 2.4043741,20.86879 0.16087055,13.769639 4.004672,6.0110599 11.402046,2.938851 11.591183,2.8603004 11.775894,2.7755718 11.966394,2.7044709 z" - id="path4939" - sodipodi:nodetypes="cscsscsc" /> - <path - transform="matrix(-1.4670322,0.60927423,0.63733892,1.3838146,92.168223,-21.022256)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2607" - style="color:#000000;fill:none;stroke:url(#radialGradient3263);stroke-width:1.87499988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <g - transform="matrix(-1.4157337,0.58796943,0.61185172,1.3284758,90.066622,-79.13013)" - id="g2708"> - <path - style="color:#000000;fill:url(#linearGradient3265);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3267);stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 76.796351,49.768459 0.647647,3.255175 5.181173,5.213494 c 0.192503,0.193704 0.97147,0.320302 1.942939,-0.65625 0.97147,-0.976552 0.895574,-1.70388 0.647647,-1.953105 l -5.181173,-5.208279 -3.238233,-0.651035 z" - id="path2682" - sodipodi:nodetypes="cczzzcc" /> - <path - style="opacity:0.19215686;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999964;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 79.567301,51.320041 c -0.003,0.0112 0.294101,0.324318 -0.245291,0.864982 -0.539399,0.540663 -1.007144,0.373988 -0.993486,0.360259 l -0.269149,-1.521577 1.507926,0.296336 z" - id="path2687" - sodipodi:nodetypes="csccc" /> - </g> - <path - sodipodi:nodetypes="cczzzcc" - id="path17267" - d="m 11.125784,33.734998 0.704333,3.005757 -3.8693878,9.384635 C 7.7704348,46.58693 7.1912915,46.669458 5.9630657,46.21739 4.7348373,45.76533 4.3278695,45.45273 4.5672216,44.87278 l 3.871373,-9.380322 2.6871894,-1.75746 z" - style="color:#000000;fill:none;stroke:url(#linearGradient3705);stroke-width:0.97195268;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - style="opacity:0.15294118;color:#000000;fill:url(#linearGradient3702);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 11.745964,31.636302 c 0.273091,-0.02327 0.516911,0.15628 0.558257,0.411074 l 1.059484,4.703394 c 0.01332,0.08891 4.94e-4,0.179769 -0.03712,0.262696 l -4.10682,9.96471 C 9.0348748,47.422953 8.5825782,47.718355 7.9378736,47.856749 7.293168,47.995143 6.4290217,47.930288 5.3673857,47.539538 4.3145129,47.152016 3.650927,46.689697 3.2682019,46.185843 2.8854764,45.681988 2.7645005,45.125437 2.946922,44.687233 l 4.170137,-9.94156 c 0.041413,-0.09682 0.1142759,-0.179037 0.2080896,-0.234788 l 4.1553654,-2.764339 c 0.0759,-0.05949 0.167922,-0.09771 0.265448,-0.110252 z" - id="path19908" - sodipodi:nodetypes="cccccsssccccc" /> - <path - transform="matrix(-1.5128769,0.62831404,0.65725577,1.4270588,94.485438,-22.216444)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2605" - style="color:#000000;fill:none;stroke:url(#radialGradient3273);stroke-width:0.60606074;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(-1.6045665,0.6663937,0.69708944,1.5135472,99.119891,-24.604823)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2599" - style="color:#000000;fill:none;stroke:url(#linearGradient3275);stroke-width:0.57142824;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(-1.3324064,0.55336266,0.57885311,1.256828,85.363558,-17.515464)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path4927" - style="color:#000000;fill:none;stroke:url(#linearGradient3277);stroke-width:0.68814939;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:0.16078431;color:#000000;fill:url(#radialGradient3279);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path11092" - sodipodi:cx="12.375" - sodipodi:cy="12.9375" - sodipodi:rx="9.8125" - sodipodi:ry="9.8125" - d="m 22.1875,12.9375 a 9.8125,9.8125 0 1 1 -19.625,0 9.8125,9.8125 0 1 1 19.625,0 z" - transform="matrix(-1.2147411,0.50449504,0.52773334,1.1458348,26.221927,-3.8755514)" /> - <path - sodipodi:type="arc" - style="opacity:0.072;color:#000000;fill:url(#radialGradient3542);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2970-9" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(-1.4540417,0.60387911,0.47985407,1.0418775,48.77065,-11.738385)" /> - <g - id="g1399" - style="opacity:0.76078431;display:inline" - transform="matrix(-0.99999986,-5.5191206e-4,-5.6209166e-4,0.98188965,39.0419,-1.4034595)"> - <path - sodipodi:nodetypes="ccccc" - id="rect8466" - d="m 12.5,16.5 0,5 17,0 0,-5 -17,0 z" - style="color:#000000;fill:url(#linearGradient3482-1);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:nodetypes="ccccc" - id="rect12861" - d="m 13.5,17.5 0,3 15,0 0,-3 -15,0 z" - style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - </g> - </g> -</svg> diff --git a/gramps/plugins/webstuff/images/gramps-geo-mainmap.svg b/gramps/plugins/webstuff/images/gramps-geo-mainmap.svg deleted file mode 100644 index 09814069c..000000000 --- a/gramps/plugins/webstuff/images/gramps-geo-mainmap.svg +++ /dev/null @@ -1,162 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg2885" - version="1.1" - inkscape:version="0.47pre0 r21549" - sodipodi:docname="gramps-geo-mainmap.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <title - id="title2826">gramps-geo-mainmap</title> - <defs - id="defs2887"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective2893" /> - <inkscape:perspective - id="perspective2870" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3668" - id="linearGradient3678" - x1="288.36801" - y1="423.65311" - x2="359.15457" - y2="423.65311" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3668"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3670" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop3672" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3668" - id="linearGradient2933" - gradientUnits="userSpaceOnUse" - x1="288.36801" - y1="423.65311" - x2="359.15457" - y2="423.65311" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="7" - inkscape:cx="24" - inkscape:cy="35.428571" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1078" - inkscape:window-height="778" - inkscape:window-x="49" - inkscape:window-y="0" - inkscape:window-maximized="0" /> - <metadata - id="metadata2890"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>gramps-geo-mainmap</dc:title> - <dc:date>2009-09-07</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Serge Noiraud</dc:title> - </cc:Agent> - </dc:creator> - <dc:description>used to select the openstreetmap map.</dc:description> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g2924" - transform="matrix(0.17199268,0,0,0.17199268,22.498415,21.978915)"> - <path - sodipodi:nodetypes="cccssscccccccc" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path2453" - d="M -7.3280437,99.688239 C 52.392489,112.24117 40.973749,81.525559 40.973749,81.525559 l 29.48923,-19.77662 c 0,0 15.33285,1.24267 25.51172,0.55428 5.809741,-0.39292 15.582901,-6.08404 13.705391,-12.80082 C 102.59575,24.158229 66.496889,9.0898787 42.522839,7.9989287 c -11.82208,-0.53797 -17.1668,4.0514603 -17.1668,4.0514603 -8.95006,5.63522 0.50864,22.64179 0.50864,22.64179 L 2.3205863,58.062719 c -56.5463703,-4.60402 -28.7859003,28.67243 -28.7859003,28.67243 l -57.30311,53.256671 c 0,0 -0.50709,8.88643 15.73561,-0.0636 l 60.7047703,-40.239951 0,-3e-5 z" /> - <g - transform="translate(-377.63439,-338.79656)" - style="fill:url(#linearGradient2933);fill-opacity:1" - id="g2893"> - <path - d="M 319.44354,366.56878 292.72208,469.6616 c -2.1317,22.81794 12.07963,3.30695 12.07963,3.30695 l 50.2167,-93.83671 -35.57487,-12.56306 z" - id="path3225" - style="fill:#8ae234;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - sodipodi:nodetypes="ccccc" /> - </g> - <path - sodipodi:nodetypes="csssssssc" - style="fill:#8ae234;fill-opacity:1;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" - id="path3227" - d="m 26.233499,22.655739 c -3.19176,8.00888 -12.17263,13.95644 -24.4071727,16.16357 -12.2345303,2.20713 -27.5720603,0.64666 -41.6825503,-4.24087 -14.11049,-4.88752 -26.82016,-13.0419 -34.54087,-22.16104 -7.72071,-9.1191303 -10.35737,-19.0907203 -7.16561,-27.0996 3.19176,-8.008884 14.51353,-11.713444 26.88494,-12.199134 14.55253,-0.57132 26.44444,0.74125 37.28908,4.40699 10.8446403,3.665744 20.6420203,9.684664 31.005483,18.5260437 9.08309,7.74905 15.80846,18.5951603 12.6167,26.6040403 z" /> - <path - sodipodi:nodetypes="cccc" - style="fill:#8ae234;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:6.08262777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path3233" - d="m -40.487424,-67.046765 -18.05941,58.3595337 C -52.909284,12.866729 -9.8369237,26.548859 5.3993663,12.594929 L 27.104489,-38.965035" /> - <path - sodipodi:nodetypes="cccc" - style="fill:#8ae234;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path3231" - d="m -44.801154,-110.06678 -8.37934,22.182435 c 0.65991,29.40996 75.840293,61.52608 107.732193,40.77249 l 9.61302,-23.20386" /> - <path - sodipodi:nodetypes="cssscsssc" - style="fill:#8ae234;fill-opacity:1;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" - id="path3229" - d="m 62.389519,-65.463465 c -3.80036,4.94256 -13.30111,7.46121 -25.81914,6.84467 -12.51803,-0.61655 -27.8990727,-4.36071 -41.7993327,-10.17507 -13.9002603,-5.81436 -26.1484503,-13.62728 -33.2855203,-21.23229 -7.13708,-7.60502 -10.0662,-14.412865 -6.25783,-19.352075 3.80036,-4.94256 14.29222,-7.95676 26.81025,-7.34022 12.5180303,0.61655 27.8990703,4.36071 41.799333,10.17507 13.90026,5.81436 26.14845,13.627285 33.28552,21.232295 7.13708,7.60502 9.07509,14.90841 5.26672,19.84762 z" /> - </g> - </g> -</svg> diff --git a/gramps/plugins/webstuff/images/gramps-geo-marriage.svg b/gramps/plugins/webstuff/images/gramps-geo-marriage.svg deleted file mode 100644 index 2087e3a62..000000000 --- a/gramps/plugins/webstuff/images/gramps-geo-marriage.svg +++ /dev/null @@ -1,1052 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:export-ydpi="30" - inkscape:export-xdpi="30" - inkscape:export-filename="/home/gramps/trunk/src/images/16x16/gramps-geo-marriage.png" - sodipodi:docname="gramps-geo-marriage.svg" - inkscape:version="0.47pre0 r21549" - sodipodi:version="0.32" - id="svg249" - height="48.000000px" - width="48.000000px" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - sodipodi:modified="TRUE" - version="1.1"> - <defs - id="defs3"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective83" /> - <linearGradient - inkscape:collect="always" - id="linearGradient23434"> - <stop - style="stop-color:#2e3436" - offset="0" - id="stop23436" /> - <stop - style="stop-color:#555753" - offset="1" - id="stop23438" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19914"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop19916" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop19918" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient19900"> - <stop - style="stop-color:#888a85" - offset="0" - id="stop19902" /> - <stop - style="stop-color:#d3d7cf" - offset="1" - id="stop19904" /> - </linearGradient> - <linearGradient - id="linearGradient15493"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient11102"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop11104" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop11106" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4952"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4954" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4956" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient4931"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop4933" /> - <stop - style="stop-color:#888a85" - offset="1" - id="stop4935" /> - </linearGradient> - <linearGradient - id="linearGradient4919"> - <stop - style="stop-color:#429eff;stop-opacity:1;" - offset="0" - id="stop4921" /> - <stop - style="stop-color:#0044a7;stop-opacity:1;" - offset="1" - id="stop4923" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2980"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop2982" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop2984" /> - </linearGradient> - <linearGradient - id="linearGradient2609" - inkscape:collect="always"> - <stop - id="stop2611" - offset="0" - style="stop-color:#ffffff;stop-opacity:1" /> - <stop - id="stop2613" - offset="1" - style="stop-color:#eeeeec" /> - </linearGradient> - <linearGradient - id="linearGradient2617"> - <stop - id="stop2619" - offset="0" - style="stop-color:#fbfbfa;stop-opacity:1;" /> - <stop - id="stop2621" - offset="1" - style="stop-color:#d3d7cf" /> - </linearGradient> - <linearGradient - id="linearGradient2690" - inkscape:collect="always"> - <stop - id="stop2692" - offset="0" - style="stop-color:#2e3436" /> - <stop - id="stop2694" - offset="1" - style="stop-color:#555753" /> - </linearGradient> - <linearGradient - id="linearGradient2698"> - <stop - id="stop2700" - offset="0" - style="stop-color:#555753" /> - <stop - style="stop-color:#a3a5a2;stop-opacity:1;" - offset="0.70238096" - id="stop2706" /> - <stop - id="stop2702" - offset="1" - style="stop-color:#888a85" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient1409" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-3.294293e-16,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient1411" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(4.928248e-11,-1.686609,1.66336,-1.770202e-15,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient1421" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient1423" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient4925" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" - gradientTransform="matrix(1.459545,-9.027299e-15,-5.118666e-17,1.345339,-7.403138,-10.82184)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient4937" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient4960" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" - gradientTransform="matrix(2.231289,-0.597872,0.530253,1.979013,-30.74857,-16.49764)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient11108" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,-1.897043e-16,1.897043e-16,0.946826,0.469351,0.499261)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient17263" - gradientUnits="userSpaceOnUse" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" - gradientTransform="translate(2,-1)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient19906" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient19920" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient23426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,1.362626e-15,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient23440" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3206" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919" - id="radialGradient3320" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617" - id="radialGradient3324" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698" - id="linearGradient3326" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690" - id="linearGradient3328" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609" - id="radialGradient3334" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434" - id="linearGradient3336" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931" - id="linearGradient3338" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102" - id="radialGradient3340" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980" - id="radialGradient3344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914" - id="linearGradient3355" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900" - id="linearGradient3358" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.9605244,0.27295083,0.27819578,0.94241516,34.508497,-7.0466694)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952" - id="radialGradient3365" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.309533,0.04558854,0.04123214,2.0097849,58.49315,-30.714192)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924615" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <inkscape:perspective - id="perspective3921" - inkscape:persp3d-origin="0.5 : 0.33333333 : 1" - inkscape:vp_z="1 : 0.5 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 0.5 : 1" - sodipodi:type="inkscape:persp3d" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4919-5" - id="radialGradient3259" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.459545,0,0,1.345339,-7.403138,-10.82184)" - cx="17.062258" - cy="28.851427" - fx="17.062258" - fy="28.851427" - r="13.5" /> - <linearGradient - id="linearGradient4919-5"> - <stop - style="stop-color:#429eff;stop-opacity:1;" - offset="0" - id="stop4921-0" /> - <stop - style="stop-color:#0044a7;stop-opacity:1;" - offset="1" - id="stop4923-4" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952-8" - id="radialGradient3304" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.2840124,0.3325768,0.30212738,1.9135354,50.674567,-34.252822)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924616" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4952-8"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4954-7" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4956-1" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2617-7" - id="radialGradient3263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,-1.686609,1.66336,0,41.65431,111.7396)" - cx="59.787472" - cy="10.901535" - fx="59.787472" - fy="10.901535" - r="10.55559" /> - <linearGradient - id="linearGradient2617-7"> - <stop - id="stop2619-2" - offset="0" - style="stop-color:#fbfbfa;stop-opacity:1;" /> - <stop - id="stop2621-7" - offset="1" - style="stop-color:#d3d7cf" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2698-2" - id="linearGradient3265" - gradientUnits="userSpaceOnUse" - x1="81.332451" - y1="55.106758" - x2="82.919647" - y2="53.511261" /> - <linearGradient - id="linearGradient2698-2"> - <stop - id="stop2700-2" - offset="0" - style="stop-color:#555753" /> - <stop - style="stop-color:#a3a5a2;stop-opacity:1;" - offset="0.70238096" - id="stop2706-6" /> - <stop - id="stop2702-1" - offset="1" - style="stop-color:#888a85" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2690-0" - id="linearGradient3267" - gradientUnits="userSpaceOnUse" - x1="81.096306" - y1="57.148193" - x2="83.629295" - y2="54.615208" /> - <linearGradient - id="linearGradient2690-0" - inkscape:collect="always"> - <stop - id="stop2692-6" - offset="0" - style="stop-color:#2e3436" /> - <stop - id="stop2694-1" - offset="1" - style="stop-color:#555753" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900-5" - id="linearGradient3297" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <linearGradient - inkscape:collect="always" - id="linearGradient19900-5"> - <stop - style="stop-color:#888a85" - offset="0" - id="stop19902-9" /> - <stop - style="stop-color:#d3d7cf" - offset="1" - id="stop19904-4" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914-9" - id="linearGradient3294" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,29.969866,-8.6561267)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - id="linearGradient19914-9"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop19916-0" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop19918-9" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2609-1" - id="radialGradient3273" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1.143443,-1.247217,-1.248581e-6,41.735,-54.25682)" - cx="45.094624" - cy="-2.6936908" - fx="45.094624" - fy="-2.6936908" - r="10.498367" /> - <linearGradient - id="linearGradient2609-1" - inkscape:collect="always"> - <stop - id="stop2611-7" - offset="0" - style="stop-color:#ffffff;stop-opacity:1" /> - <stop - id="stop2613-7" - offset="1" - style="stop-color:#eeeeec" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient23434-1" - id="linearGradient3275" - gradientUnits="userSpaceOnUse" - x1="55.878288" - y1="12.472493" - x2="52.5" - y2="-4.6213989" /> - <linearGradient - inkscape:collect="always" - id="linearGradient23434-1"> - <stop - style="stop-color:#2e3436" - offset="0" - id="stop23436-1" /> - <stop - style="stop-color:#555753" - offset="1" - id="stop23438-5" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4931-9" - id="linearGradient3277" - gradientUnits="userSpaceOnUse" - x1="54.1129" - y1="12.846775" - x2="50.079948" - y2="-3.8813655" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4931-9"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop4933-7" /> - <stop - style="stop-color:#888a85" - offset="1" - id="stop4935-7" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient11102-6" - id="radialGradient3279" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.946826,0,0,0.946826,0.469351,0.499261)" - cx="8.0402098" - cy="9.5280285" - fx="8.0402098" - fy="9.5280285" - r="9.8125" /> - <linearGradient - inkscape:collect="always" - id="linearGradient11102-6"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop11104-7" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop11106-3" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493-6" - id="linearGradient3307" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - <linearGradient - id="linearGradient15493-6"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop15495-5" /> - <stop - style="stop-color:#ffffff;stop-opacity:1" - offset="1" - id="stop15497-6" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2980-3" - id="radialGradient3283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - cx="28.284271" - cy="30.145554" - fx="28.284271" - fy="30.145554" - r="13.258252" /> - <linearGradient - inkscape:collect="always" - id="linearGradient2980-3"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop2982-9" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop2984-4" /> - </linearGradient> - <radialGradient - r="13.258252" - fy="30.145554" - fx="28.284271" - cy="30.145554" - cx="28.284271" - gradientTransform="matrix(1,0,0,0.34,0,19.89607)" - gradientUnits="userSpaceOnUse" - id="radialGradient3995" - xlink:href="#linearGradient2980-3" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19914-9" - id="linearGradient4155" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,30.271522,-8.4832521)" - x1="33.985317" - y1="32.045906" - x2="37.211494" - y2="35.272079" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient19900-5" - id="linearGradient4158" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.91689513,0.3807964,0.39833682,0.86488415,30.271522,-8.4832521)" - x1="40.25" - y1="41" - x2="43.0625" - y2="38.434578" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4952-8" - id="radialGradient4165" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-2.2840124,0.3325768,0.30212738,1.9135354,50.976223,-34.079947)" - cx="16.829521" - cy="24.743624" - fx="16.829521" - fy="24.743624" - r="16.924616" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15493-6" - id="linearGradient4168" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2,-1)" - x1="19" - y1="14.875" - x2="19.65625" - y2="29" /> - </defs> - <sodipodi:namedview - inkscape:window-y="0" - inkscape:window-x="375" - inkscape:window-height="791" - inkscape:window-width="929" - inkscape:document-units="px" - inkscape:grid-bbox="false" - showgrid="false" - inkscape:current-layer="layer5" - inkscape:cy="22.95852" - inkscape:cx="32.311989" - inkscape:zoom="10.854545" - inkscape:pageshadow="2" - inkscape:pageopacity="0" - borderopacity="1" - bordercolor="#666666" - pagecolor="#b6b6b6" - id="base" - inkscape:showpageshadow="false" - showborder="true" - showguides="false" - inkscape:guide-bbox="true" - inkscape:grid-points="true" - fill="#729fcf" - stroke="#2e3436" - inkscape:window-maximized="0"> - <sodipodi:guide - orientation="horizontal" - position="28" - id="guide1415" /> - <sodipodi:guide - orientation="vertical" - position="19" - id="guide1417" /> - <inkscape:grid - id="GridFromPre046Settings" - type="xygrid" - originx="0px" - originy="0px" - spacingx="0.5px" - spacingy="0.5px" - color="#0000ff" - empcolor="#0000ff" - opacity="0.2" - empopacity="0.4" - empspacing="2" /> - </sodipodi:namedview> - <metadata - id="metadata4"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - <dc:subject> - <rdf:Bag> - <rdf:li>document</rdf:li> - <rdf:li>search</rdf:li> - <rdf:li>find</rdf:li> - </rdf:Bag> - </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>Lapo Calamandrei</dc:title> - </cc:Agent> - </dc:creator> - <dc:source /> - <dc:contributor> - <cc:Agent> - <dc:title>Jakub Steiner</dc:title> - </cc:Agent> - </dc:contributor> - <dc:date>2006-04-21</dc:date> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Shadow" /> - <g - style="display:inline" - inkscape:groupmode="layer" - inkscape:label="Base" - id="layer1" /> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Text" - style="display:inline"> - <g - transform="translate(-12.26513,47.49999)" - style="display:inline" - inkscape:label="base" - id="g2637" /> - <path - sodipodi:type="arc" - style="opacity:0.04705882;color:#000000;fill:url(#radialGradient3206);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path23418" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(1.0028608,-0.02269424,0.0156831,0.69306327,3.8134156,19.801095)" /> - <path - sodipodi:type="arc" - style="opacity:0.6;color:#000000;fill:url(#radialGradient3259);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - id="path1425" - sodipodi:cx="17.5" - sodipodi:cy="18.25" - sodipodi:rx="13.5" - sodipodi:ry="13.75" - d="m 31,18.25 a 13.5,13.75 0 1 1 -27,0 13.5,13.75 0 1 1 27,0 z" - transform="matrix(-1.0866903,0.45131417,0.46351946,1.0064111,28.624421,-9.0730452)" /> - <path - style="opacity:0.5;color:#000000;fill:url(#radialGradient4165);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 12.015903,2.7046143 c 7.937506,-2.96266511 16.982489,0.5191617 20.406201,7.9528567 0.962747,2.090354 0.594348,4.618103 0.389319,6.753677 C 31.082017,12.536633 28.465657,12.402314 27.233818,13.410634 23.496503,16.46981 16.529714,20.733021 7.0810135,20.13853 3.7686364,19.930123 3.6946532,23.841982 2.4538828,20.868934 0.21037928,13.769783 4.0541807,6.0112033 11.451555,2.9389944 11.640692,2.8604438 11.825403,2.7757152 12.015903,2.7046143 z" - id="path4939" - sodipodi:nodetypes="cscsscsc" /> - <path - transform="matrix(-1.4670322,0.60927423,0.63733892,1.3838146,92.217732,-21.022112)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2607" - style="color:#000000;fill:none;stroke:url(#radialGradient3263);stroke-width:1.87499988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <g - transform="matrix(-1.4157337,0.58796943,0.61185172,1.3284758,90.116131,-79.129986)" - id="g2708"> - <path - style="color:#000000;fill:url(#linearGradient3265);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3267);stroke-width:0.67653471;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 76.796351,49.768459 0.647647,3.255175 5.181173,5.213494 c 0.192503,0.193704 0.97147,0.320302 1.942939,-0.65625 0.97147,-0.976552 0.895574,-1.70388 0.647647,-1.953105 l -5.181173,-5.208279 -3.238233,-0.651035 z" - id="path2682" - sodipodi:nodetypes="cczzzcc" /> - <path - style="opacity:0.19215686;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999964;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 79.567301,51.320041 c -0.003,0.0112 0.294101,0.324318 -0.245291,0.864982 -0.539399,0.540663 -1.007144,0.373988 -0.993486,0.360259 l -0.269149,-1.521577 1.507926,0.296336 z" - id="path2687" - sodipodi:nodetypes="csccc" /> - </g> - <path - sodipodi:nodetypes="cczzzcc" - id="path17267" - d="m 11.175293,33.735142 0.704333,3.005757 -3.8693881,9.384635 c -0.1902944,0.46154 -0.7694377,0.544068 -1.9976635,0.092 -1.2282284,-0.45206 -1.6351962,-0.76466 -1.3958441,-1.34461 l 3.871373,-9.380322 2.6871897,-1.75746 z" - style="color:#000000;fill:none;stroke:url(#linearGradient4158);stroke-width:0.97195268;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - style="opacity:0.15294118;color:#000000;fill:url(#linearGradient4155);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.67653471;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 11.795473,31.636446 c 0.273091,-0.02327 0.516911,0.15628 0.558257,0.411074 l 1.059484,4.703394 c 0.01332,0.08891 4.94e-4,0.179769 -0.03712,0.262696 L 9.2692737,46.97832 C 9.0843835,47.423097 8.6320869,47.718499 7.9873823,47.856893 7.3426767,47.995287 6.4785304,47.930432 5.4168944,47.539682 4.3640216,47.15216 3.7004357,46.689841 3.3177106,46.185987 2.9349851,45.682132 2.8140092,45.125581 2.9964307,44.687377 l 4.170137,-9.94156 c 0.041413,-0.09682 0.1142759,-0.179037 0.2080896,-0.234788 L 11.530023,31.74669 c 0.0759,-0.05949 0.167922,-0.09771 0.265448,-0.110252 z" - id="path19908" - sodipodi:nodetypes="cccccsssccccc" /> - <path - transform="matrix(-1.5128769,0.62831404,0.65725577,1.4270588,94.534947,-22.2163)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2605" - style="color:#000000;fill:none;stroke:url(#radialGradient3273);stroke-width:0.60606074;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(-1.6045665,0.6663937,0.69708944,1.5135472,99.1694,-24.604679)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path2599" - style="color:#000000;fill:none;stroke:url(#linearGradient3275);stroke-width:0.57142824;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(-1.3324064,0.55336266,0.57885311,1.256828,85.413067,-17.51532)" - d="m 62.5,4.5 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z" - sodipodi:ry="10" - sodipodi:rx="10" - sodipodi:cy="4.5" - sodipodi:cx="52.5" - id="path4927" - style="color:#000000;fill:none;stroke:url(#linearGradient3277);stroke-width:0.68814939;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:0.16078431;color:#000000;fill:url(#radialGradient3279);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path11092" - sodipodi:cx="12.375" - sodipodi:cy="12.9375" - sodipodi:rx="9.8125" - sodipodi:ry="9.8125" - d="m 22.1875,12.9375 a 9.8125,9.8125 0 1 1 -19.625,0 9.8125,9.8125 0 1 1 19.625,0 z" - transform="matrix(-1.2147411,0.50449504,0.52773334,1.1458348,26.271436,-3.875408)" /> - <path - sodipodi:type="arc" - style="opacity:0.072;color:#000000;fill:url(#radialGradient3995);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" - id="path2970" - sodipodi:cx="28.284271" - sodipodi:cy="30.145554" - sodipodi:rx="13.258252" - sodipodi:ry="4.5078058" - d="m 41.542523,30.145554 a 13.258252,4.5078058 0 1 1 -26.516504,0 13.258252,4.5078058 0 1 1 26.516504,0 z" - transform="matrix(-1.4540417,0.60387911,0.47985407,1.0418775,48.820159,-11.738241)" /> - <g - id="g1399" - style="opacity:0.76078431" - transform="matrix(-0.70467682,-0.7093291,-0.69387045,0.69388405,46.001355,18.68952)"> - <path - sodipodi:nodetypes="ccccccccccccc" - id="rect8466" - d="m 18.5,10.5 0,6 -6,0 0,5 6,0 0,6 5,0 0,-6 6,0 0,-5 -6,0 0,-6 -5,0 z" - style="color:#000000;fill:url(#linearGradient3368);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:nodetypes="ccccccccccccc" - id="rect12861" - d="m 19.5,11.5 0,6 -6,0 0,3 6,0 0,6 3,0 0,-6 6,0 0,-3 -6,0 0,-6 -3,0 z" - style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> - </g> - </g> -</svg> diff --git a/gramps/plugins/webstuff/webstuff.py b/gramps/plugins/webstuff/webstuff.py index 5aebfe56a..12741be46 100644 --- a/gramps/plugins/webstuff/webstuff.py +++ b/gramps/plugins/webstuff/webstuff.py @@ -25,7 +25,7 @@ # python modules #------------------------------------------------ import os -from gramps.gen.const import VERSION_DIR +from gramps.gen.const import VERSION_DIR, IMAGE_DIR, DATA_DIR from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext @@ -47,11 +47,10 @@ def load_on_reg(dbstate, uistate, plugin): """ Runs when plugin is registered. """ - dir, fname = os.path.split(__file__) from functools import partial - path_css = partial(os.path.join, dir, "css") - path_img = partial(os.path.join, dir, "images") - path_js = partial(os.path.join, dir, "js") + path_css = partial(os.path.join, DATA_DIR, "css") + path_img = partial(os.path.join, IMAGE_DIR, "webstuff") + path_js = partial(os.path.join, DATA_DIR, "javascript") CSS_FILES = [ # id, user selectable?, translated_name, option name, fullpath, @@ -160,7 +159,7 @@ def load_on_reg(dbstate, uistate, plugin): # Document image ["Document", 0, "Document", - path_img("document.png"), None, [], [] ], + os.path.join(IMAGE_DIR, "document.png"), None, [], [] ], # blank ["Blank", 0, "Blank", diff --git a/gramps/plugins/webstuff/images/Web_Gender_Female.png b/images/webstuff/Web_Gender_Female.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Gender_Female.png rename to images/webstuff/Web_Gender_Female.png diff --git a/gramps/plugins/webstuff/images/Web_Gender_Male.png b/images/webstuff/Web_Gender_Male.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Gender_Male.png rename to images/webstuff/Web_Gender_Male.png diff --git a/gramps/plugins/webstuff/images/Web_Mainz_Bkgd.png b/images/webstuff/Web_Mainz_Bkgd.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Mainz_Bkgd.png rename to images/webstuff/Web_Mainz_Bkgd.png diff --git a/gramps/plugins/webstuff/images/Web_Mainz_Header.png b/images/webstuff/Web_Mainz_Header.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Mainz_Header.png rename to images/webstuff/Web_Mainz_Header.png diff --git a/gramps/plugins/webstuff/images/Web_Mainz_Mid.png b/images/webstuff/Web_Mainz_Mid.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Mainz_Mid.png rename to images/webstuff/Web_Mainz_Mid.png diff --git a/gramps/plugins/webstuff/images/Web_Mainz_MidLight.png b/images/webstuff/Web_Mainz_MidLight.png similarity index 100% rename from gramps/plugins/webstuff/images/Web_Mainz_MidLight.png rename to images/webstuff/Web_Mainz_MidLight.png diff --git a/gramps/plugins/webstuff/images/blank.gif b/images/webstuff/blank.gif similarity index 100% rename from gramps/plugins/webstuff/images/blank.gif rename to images/webstuff/blank.gif diff --git a/gramps/plugins/webstuff/images/crosshairs.png b/images/webstuff/crosshairs.png similarity index 100% rename from gramps/plugins/webstuff/images/crosshairs.png rename to images/webstuff/crosshairs.png diff --git a/gramps/plugins/webstuff/images/favicon.ico b/images/webstuff/favicon.ico similarity index 100% rename from gramps/plugins/webstuff/images/favicon.ico rename to images/webstuff/favicon.ico diff --git a/gramps/plugins/webstuff/images/favicon2.ico b/images/webstuff/favicon2.ico similarity index 100% rename from gramps/plugins/webstuff/images/favicon2.ico rename to images/webstuff/favicon2.ico diff --git a/gramps/plugins/webstuff/images/gramps-geo-altmap.png b/images/webstuff/gramps-geo-altmap.png similarity index 100% rename from gramps/plugins/webstuff/images/gramps-geo-altmap.png rename to images/webstuff/gramps-geo-altmap.png diff --git a/gramps/plugins/webstuff/images/gramps-geo-birth.png b/images/webstuff/gramps-geo-birth.png similarity index 100% rename from gramps/plugins/webstuff/images/gramps-geo-birth.png rename to images/webstuff/gramps-geo-birth.png diff --git a/gramps/plugins/webstuff/images/gramps-geo-death.png b/images/webstuff/gramps-geo-death.png similarity index 100% rename from gramps/plugins/webstuff/images/gramps-geo-death.png rename to images/webstuff/gramps-geo-death.png diff --git a/gramps/plugins/webstuff/images/gramps-geo-mainmap.png b/images/webstuff/gramps-geo-mainmap.png similarity index 100% rename from gramps/plugins/webstuff/images/gramps-geo-mainmap.png rename to images/webstuff/gramps-geo-mainmap.png diff --git a/gramps/plugins/webstuff/images/gramps-geo-marriage.png b/images/webstuff/gramps-geo-marriage.png similarity index 100% rename from gramps/plugins/webstuff/images/gramps-geo-marriage.png rename to images/webstuff/gramps-geo-marriage.png diff --git a/gramps/plugins/webstuff/images/somerights20.gif b/images/webstuff/somerights20.gif similarity index 100% rename from gramps/plugins/webstuff/images/somerights20.gif rename to images/webstuff/somerights20.gif diff --git a/mac/gramps.bundle b/mac/gramps.bundle index 8b2bc4a30..d09962cec 100644 --- a/mac/gramps.bundle +++ b/mac/gramps.bundle @@ -72,10 +72,6 @@ ${prefix}/lib/enchant </binary> - <binary> - ${prefix}/lib/libgettextpo.0.dylib - </binary> - <binary> ${prefix}/lib/libosmgpsmap.3.dylib </binary> diff --git a/setup.py b/setup.py index 6c03cb958..1d1802dc8 100644 --- a/setup.py +++ b/setup.py @@ -358,13 +358,6 @@ for (dirpath, dirnames, filenames) in os.walk(basedir): #we add to data_list so glade , xml, files are found, we don't need the gramps/ part package_data_core.append(dirpath[7:] + '/' + dirname + '/*.glade') package_data_core.append(dirpath[7:] + '/' + dirname + '/*.xml') - package_data_core.append(dirpath[7:] + '/' + dirname + '/*.png') - package_data_core.append(dirpath[7:] + '/' + dirname + '/*.svg') - package_data_core.append(dirpath[7:] + '/' + dirname + '/*.css') - package_data_core.append(dirpath[7:] + '/' + dirname + '/*.html') - package_data_core.append(dirpath[7:] + '/' + dirname + '/*.js') -package_data_core.append('plugins/webstuff/images/*.gif') -package_data_core.append('plugins/webstuff/images/*.ico') package_data_core.append('gen/utils/resource-path') package_data_gui = ['gui/glade/*.glade'] @@ -387,9 +380,20 @@ DOC_FILES = ['AUTHORS', 'COPYING', 'FAQ', 'INSTALL', 'LICENSE', 'NEWS', 'README', 'TODO'] GEDCOM_FILES = glob.glob(os.path.join('example', 'gedcom', '*.*')) GRAMPS_FILES = glob.glob(os.path.join('example', 'gramps', '*.*')) +IMAGE_WEB = glob.glob(os.path.join('images', 'webstuff', '*.png')) +IMAGE_WEB.extend(glob.glob(os.path.join('images', 'webstuff','*.ico'))) +IMAGE_WEB.extend(glob.glob(os.path.join('images', 'webstuff', '*.gif'))) +JS_FILES = glob.glob(os.path.join('data', 'javascript', '*.js')) +CSS_FILES = glob.glob(os.path.join('data', 'css', '*.css')) +SWANKY_PURSE = glob.glob(os.path.join('data', 'css', 'swanky-purse', '*.css')) +SWANKY_IMG = glob.glob(os.path.join('data', 'css', 'swanky-purse', 'images', '*.png')) data_files_core.append(('share/doc/gramps', DOC_FILES)) data_files_core.append(('share/doc/gramps/example/gedcom', GEDCOM_FILES)) -data_files_core.append(('share/doc/gramps/example/gramps', GRAMPS_FILES)) +data_files_core.append(('share/doc/gramps/example/gramps', GRAMPS_FILES)) +data_files_core.append(('share/gramps/images', IMAGE_WEB)) +data_files_core.append(('share/gramps/css', CSS_FILES)) +data_files_core.append(('share/gramps/css/swanky-purse', SWANKY_PURSE)) +data_files_core.append(('share/gramps/css/swanky-purse/images', SWANKY_IMG)) PNG_FILES = glob.glob(os.path.join('data', '*.png')) SVG_FILES = glob.glob(os.path.join('data', '*.svg')) From 1158e77e135227723cb8de9a5bc06905abbfcb96 Mon Sep 17 00:00:00 2001 From: John Ralls <jralls@ceridwen.us> Date: Sun, 23 Jun 2013 23:24:02 +0000 Subject: [PATCH 21/25] Correctly set images/webstuff path in htmldoc.py and setup.py svn: r22578 --- gramps/plugins/docgen/htmldoc.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gramps/plugins/docgen/htmldoc.py b/gramps/plugins/docgen/htmldoc.py index 4371c52ae..a2a460ef2 100644 --- a/gramps/plugins/docgen/htmldoc.py +++ b/gramps/plugins/docgen/htmldoc.py @@ -298,7 +298,7 @@ class HtmlDoc(BaseDoc, TextDoc): if os.path.exists(fullpath): self.copy_file(fullpath, _HTMLSCREEN) #favicon - self.copy_file(os.path.join(IMAGE_DIR, 'favicon.ico'), + self.copy_file(os.path.join(IMAGE_DIR, 'webstuff', 'favicon.ico'), 'favicon.ico') def __reduce_list(self): diff --git a/setup.py b/setup.py index 1d1802dc8..ca08f5cb1 100644 --- a/setup.py +++ b/setup.py @@ -390,7 +390,7 @@ SWANKY_IMG = glob.glob(os.path.join('data', 'css', 'swanky-purse', 'images', '*. data_files_core.append(('share/doc/gramps', DOC_FILES)) data_files_core.append(('share/doc/gramps/example/gedcom', GEDCOM_FILES)) data_files_core.append(('share/doc/gramps/example/gramps', GRAMPS_FILES)) -data_files_core.append(('share/gramps/images', IMAGE_WEB)) +data_files_core.append(('share/gramps/images/webstuff', IMAGE_WEB)) data_files_core.append(('share/gramps/css', CSS_FILES)) data_files_core.append(('share/gramps/css/swanky-purse', SWANKY_PURSE)) data_files_core.append(('share/gramps/css/swanky-purse/images', SWANKY_IMG)) From 39395150f742505f405aa2f9c0436a27818c5ea8 Mon Sep 17 00:00:00 2001 From: Paul Franklin <pf98052@gmail.com> Date: Mon, 24 Jun 2013 01:59:25 +0000 Subject: [PATCH 22/25] make sure relationship calculator tool's relationships are in the UI language svn: r22581 --- gramps/plugins/tool/relcalc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gramps/plugins/tool/relcalc.py b/gramps/plugins/tool/relcalc.py index ca7fd0716..ae5a1e4dd 100644 --- a/gramps/plugins/tool/relcalc.py +++ b/gramps/plugins/tool/relcalc.py @@ -95,7 +95,7 @@ class RelCalc(tool.Tool, ManagedWindow): self.colord.append((0, col, size)) self.dbstate = dbstate - self.relationship = get_relationship_calculator() + self.relationship = get_relationship_calculator(glocale) self.relationship.connect_db_signals(dbstate) self.glade = Glade() From 6d9fbe02381b2f7f51fcd4363b3bb1c3690a81dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Rapinat?= <romjerome@yahoo.fr> Date: Mon, 24 Jun 2013 06:41:23 +0000 Subject: [PATCH 23/25] update Ukrainian relationship calculator (by Fedir) svn: r22582 --- gramps/plugins/rel/rel_uk.py | 78 ++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/gramps/plugins/rel/rel_uk.py b/gramps/plugins/rel/rel_uk.py index 353337ea0..dd6c16a05 100644 --- a/gramps/plugins/rel/rel_uk.py +++ b/gramps/plugins/rel/rel_uk.py @@ -143,7 +143,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): def __init__(self): gramps.gen.relationship.RelationshipCalculator.__init__(self) - def get_sword_distaff(self, level, reltocommon, gender = gen.lib.Person.UNKNOWN): + def get_sword_distaff(self, level, reltocommon, gender = Person.UNKNOWN): """ Generate relationships 'by male line' or 'by female line', specific for Ukraine @@ -159,10 +159,10 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): break by_line = g - if by_line == self.REL_FATHER and gender == gen.lib.Person.MALE: + if by_line == self.REL_FATHER and gender == Person.MALE: # by male line return " по чоловічій лінії" - elif by_line == self.REL_MOTHER and gender == gen.lib.Person.FEMALE: + elif by_line == self.REL_MOTHER and gender == Person.FEMALE: # by male line return " по жіночій лінії" elif reltocommon[0] == self.REL_FATHER: @@ -242,11 +242,11 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): else: # Grandfather, Greatgrandfather, Greatgreatgrandfather return t_inlaw + _father_level[level] \ - + self.get_sword_distaff(level, reltocommon, gen.lib.Person.MALE) + + self.get_sword_distaff(level, reltocommon, Person.MALE) else: # For deep generations return t_inlaw + "пра(пра)дід у %d поколінні" % (level + 1) \ - + self.get_sword_distaff(level, reltocommon, gen.lib.Person.MALE) + + self.get_sword_distaff(level, reltocommon, Person.MALE) def get_mother(self, level, reltocommon, inlaw=''): @@ -268,11 +268,11 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): else: # Grandmother, Greatgrandmother, Greatgreatgrandmother return t_inlaw + _mother_level[level] \ - + self.get_sword_distaff(level, reltocommon, gen.lib.Person.FEMALE) + + self.get_sword_distaff(level, reltocommon, Person.FEMALE) else: # For deep generations return t_inlaw + "пра(пра)баба у %d поколінні" % (level + 1) \ - + self.get_sword_distaff(level, reltocommon, gen.lib.Person.FEMALE) + + self.get_sword_distaff(level, reltocommon, Person.FEMALE) @@ -532,12 +532,12 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): """ Return level name depend of gender """ - if (gender == gen.lib.Person.MALE): + if (gender == Person.MALE): if level < len(_level_name_male): return _level_name_male[level] else: return "%d-юрідний" % level - elif (gender == gen.lib.Person.FEMALE): + elif (gender == Person.FEMALE): if level < len(_level_name_female): return _level_name_female[level] else: @@ -609,13 +609,13 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): elif Ga == 0: # b is son/descendant of a - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: if inlaw and Gb == 1 and not step: rel_str = "зять" else: rel_str = self.get_son(Gb, inlaw) - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: if inlaw and Gb == 1 and not step: rel_str = "невістка" else: @@ -628,13 +628,13 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): elif Gb == 0: # b is parent/grand parent of a - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: if inlaw and Gb == 1 and not step: rel_str = "тесть" else: rel_str = self.get_father(Ga, reltocommon_a, inlaw) - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: if inlaw and Gb == 1 and not step: rel_str = "теща" else: @@ -652,13 +652,13 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): # that called in parent RelationshipCalculator # see Relationship.py - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: if inlaw and not step: rel_str = "рідний брат" else: rel_str = "напів рідний брат" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: if inlaw and not step: rel_str = "рідна сестра" else: @@ -669,9 +669,9 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): elif Gb == 1 and Ga > 1: # b is aunt/uncle of a - if (gender_b == gen.lib.Person.MALE): + if (gender_b == Person.MALE): rel_str = self.get_uncle(Ga, reltocommon_a, inlaw) - elif (gender_b == gen.lib.Person.FEMALE): + elif (gender_b == Person.FEMALE): rel_str = self.get_aunt(Ga, reltocommon_a, inlaw) else: rel_str = self.get_uncle_aunt_unknown(Ga, reltocommon_a, inlaw) @@ -679,9 +679,9 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): elif Ga == 1 and Gb > 1: # b is niece/nephew of a - if (gender_b == gen.lib.Person.MALE): + if (gender_b == Person.MALE): rel_str = self.get_nephew(Gb, reltocommon_b, inlaw) - elif (gender_b == gen.lib.Person.FEMALE): + elif (gender_b == Person.FEMALE): rel_str = self.get_niece(Gb, reltocommon_b, inlaw) else: rel_str = self.get_nephew_niece_unknown(Gb, reltocommon_b, inlaw) @@ -699,7 +699,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): level_name = self.get_level(Gb, gender_b) - if (gender_b == gen.lib.Person.MALE): + if (gender_b == Person.MALE): # b is far uncle if inlaw != '': t_inlaw = "названий " @@ -709,7 +709,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): else: rel_str = t_inlaw + "%s пра(пра)дід в %d поколінні" \ % (level_name, (level)) - elif (gender_b == gen.lib.Person.FEMALE): + elif (gender_b == Person.FEMALE): # b is far aunt if inlaw != '': t_inlaw = "названа " @@ -733,7 +733,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): level_name = self.get_level(Ga, gender_b) level = Gb - Ga + 1 - if (gender_b == gen.lib.Person.MALE): + if (gender_b == Person.MALE): # b is far nephew if level == 2: rel_str = "%s небіж" % level_name @@ -741,7 +741,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): rel_str = "%s пра(пра)внук у %d поколінні" \ % (level_name, level) #rel_str = "%s %s" % (level_name, self.get_nephew(level, reltocommon_b, inlaw)) - elif (gender_b == gen.lib.Person.FEMALE): + elif (gender_b == Person.FEMALE): # b is far niece if level == 2: rel_str = "%s небога" % level_name @@ -757,11 +757,11 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): # b is cousin of a level_name = self.get_level(Ga, gender_b) - if (gender_b == gen.lib.Person.MALE): + if (gender_b == Person.MALE): if inlaw != '': t_inlaw = "названий " rel_str = t_inlaw + "%s брат" % level_name - elif (gender_b == gen.lib.Person.FEMALE): + elif (gender_b == Person.FEMALE): if inlaw != '': t_inlaw = "названа " rel_str = t_inlaw + "%s сестра" % level_name @@ -831,52 +831,52 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator): if sib_type == self.NORM_SIB: if not inlaw: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = 'рідний брат' - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = 'рідна сестра' else: rel_str = 'рідний(а) брат або сестра' else: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = "названий брат" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = "названа сестра" else: rel_str = "названий(а) брат або сестра" elif sib_type == self.UNKNOWN_SIB: if not inlaw: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = 'брат' - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = 'сестра' else: rel_str = 'брат або сестра' else: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = "швагро" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = "братова" else: rel_str = "швагро або братова" elif sib_type == self.HALF_SIB_FATHER: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = "єдинокровний(напіврідний) брат" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = "єдинокровна(напіврідна) сестра" else: rel_str = "напіврідний(а) брат/сестра" elif sib_type == self.HALF_SIB_MOTHER: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = "єдинокровний(напіврідний) брат" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = "єдинокровна(напіврідна) сестра" else: rel_str = "напіврідний(а) брат/сестра" elif sib_type == self.STEP_SIB: - if gender_b == gen.lib.Person.MALE: + if gender_b == Person.MALE: rel_str = "зведений брат" - elif gender_b == gen.lib.Person.FEMALE: + elif gender_b == Person.FEMALE: rel_str = "зведена сестра" else: rel_str = "зведений брат або сестра" From 242fd1372d600284ab2ee6a92fcceeeb73defade Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov <vassilii@tarunz.org> Date: Mon, 24 Jun 2013 18:17:15 +0000 Subject: [PATCH 24/25] 6838: report cli crash ignoring unknown param merge from gramps40 branch svn: r22596 --- gramps/cli/plug/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gramps/cli/plug/__init__.py b/gramps/cli/plug/__init__.py index 979eaa675..c9aef488b 100644 --- a/gramps/cli/plug/__init__.py +++ b/gramps/cli/plug/__init__.py @@ -422,7 +422,7 @@ class CommandLineReport(object): self.options_help[name].append(option.get_help()) else: print(_("Unknown option: %s") % option, file=sys.stderr) - print(_(" Valid options are:"), + print(_(" Valid options are:") + ", ".join(list(self.options_dict.keys())), file=sys.stderr) print(_(" Use '%(donottranslate)s' to see description " From 6e22f8078487cf16e87bca46d26005f8ec3e50db Mon Sep 17 00:00:00 2001 From: Paul Franklin <pf98052@gmail.com> Date: Mon, 24 Jun 2013 19:31:17 +0000 Subject: [PATCH 25/25] added GPL "boilerplate", SVN properties, and SVN Id line as needed svn: r22598 --- test/GrampsDb/Cursor_Test.py | 23 +++++++++++++++++++ test/GrampsDb/GrampsDbBase_Test.py | 23 +++++++++++++++++++ test/GrampsDb/GrampsDbTestBase.py | 23 +++++++++++++++++++ .../GrampsLogger/ErrorReportAssistant_Test.py | 23 +++++++++++++++++++ test/GrampsLogger/GtkHandler_Test.py | 23 +++++++++++++++++++ test/GrampsLogger/RotateLogger_Test.py | 23 +++++++++++++++++++ test/LosHawlos_bsddbtest.py | 23 +++++++++++++++++++ test/LosHawlos_dbtest.py | 23 +++++++++++++++++++ test/RelLib/RelLib_Test.py | 23 +++++++++++++++++++ test/dates.sh | 2 +- 10 files changed, 208 insertions(+), 1 deletion(-) diff --git a/test/GrampsDb/Cursor_Test.py b/test/GrampsDb/Cursor_Test.py index 7532e15c8..e2ea924e8 100644 --- a/test/GrampsDb/Cursor_Test.py +++ b/test/GrampsDb/Cursor_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsDb/Cursor_Test.py +# $Id$ + import unittest import logging import os diff --git a/test/GrampsDb/GrampsDbBase_Test.py b/test/GrampsDb/GrampsDbBase_Test.py index 7d2d6099d..729264aee 100644 --- a/test/GrampsDb/GrampsDbBase_Test.py +++ b/test/GrampsDb/GrampsDbBase_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsDb/GrampsDbBase_Test.py +# $Id$ + import unittest import logging import os diff --git a/test/GrampsDb/GrampsDbTestBase.py b/test/GrampsDb/GrampsDbTestBase.py index 58b28fee9..1be53775f 100644 --- a/test/GrampsDb/GrampsDbTestBase.py +++ b/test/GrampsDb/GrampsDbTestBase.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsDb/GrampsDbTestBase.py +# $Id$ + import unittest import logging import os diff --git a/test/GrampsLogger/ErrorReportAssistant_Test.py b/test/GrampsLogger/ErrorReportAssistant_Test.py index f1d1a07ad..259215bc6 100644 --- a/test/GrampsLogger/ErrorReportAssistant_Test.py +++ b/test/GrampsLogger/ErrorReportAssistant_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsLogger/ErrorReportAssistant_Test.py +# $Id$ + import unittest import logging import sys diff --git a/test/GrampsLogger/GtkHandler_Test.py b/test/GrampsLogger/GtkHandler_Test.py index 500390e78..f62fe2e6c 100644 --- a/test/GrampsLogger/GtkHandler_Test.py +++ b/test/GrampsLogger/GtkHandler_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsLogger/GtkHandler_Test.py +# $Id$ + import unittest import logging import sys diff --git a/test/GrampsLogger/RotateLogger_Test.py b/test/GrampsLogger/RotateLogger_Test.py index 2b10c077a..301998b71 100644 --- a/test/GrampsLogger/RotateLogger_Test.py +++ b/test/GrampsLogger/RotateLogger_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/GrampsLogger/RotateLogger_Test.py +# $Id$ + import unittest import logging import sys diff --git a/test/LosHawlos_bsddbtest.py b/test/LosHawlos_bsddbtest.py index c49401738..037021419 100644 --- a/test/LosHawlos_bsddbtest.py +++ b/test/LosHawlos_bsddbtest.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/LosHawlos_bsddbtest.py +# $Id$ + from bsddb import dbshelve, db import os import sys diff --git a/test/LosHawlos_dbtest.py b/test/LosHawlos_dbtest.py index c50d52dc9..5c9d53d16 100644 --- a/test/LosHawlos_dbtest.py +++ b/test/LosHawlos_dbtest.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/LosHawlos_dbtest.py +# $Id$ + import os import tempfile import shutil diff --git a/test/RelLib/RelLib_Test.py b/test/RelLib/RelLib_Test.py index 9f363bca3..50e795363 100644 --- a/test/RelLib/RelLib_Test.py +++ b/test/RelLib/RelLib_Test.py @@ -1,3 +1,26 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2000-2007 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# test/RelLib/RelLib_Test.py +# $Id$ + import unittest import logging import os diff --git a/test/dates.sh b/test/dates.sh index efc03ea01..8b0374866 100755 --- a/test/dates.sh +++ b/test/dates.sh @@ -3,7 +3,7 @@ # Date Handler test for GRAMPS: # o Run date_test.py for every available locale. -# $Id: dates.sh,v 1.1.2.2 2006/04/15 20:21:03 loshawlos Exp $ +# $Id$ TOP_DIR=`dirname $PWD` SRC_DIR=$TOP_DIR/src