5621: start an alternative tool for translation stuff
svn: r19067
This commit is contained in:
parent
f2ad220878
commit
c094b007e0
647
po/gramps
Normal file
647
po/gramps
Normal file
@ -0,0 +1,647 @@
|
|||||||
|
./../src/Assistant.py
|
||||||
|
./../src/Bookmarks.py
|
||||||
|
./../src/config.py
|
||||||
|
./../src/const.py
|
||||||
|
./../src/DateEdit.py
|
||||||
|
./../src/DisplayState.py
|
||||||
|
./../src/ExportAssistant.py
|
||||||
|
./../src/ExportOptions.py
|
||||||
|
./../src/gramps.py
|
||||||
|
./../src/LdsUtils.py
|
||||||
|
./../src/PlaceUtils.py
|
||||||
|
./../src/QuestionDialog.py
|
||||||
|
./../src/QuickReports.py
|
||||||
|
./../src/Relationship.py
|
||||||
|
./../src/Reorder.py
|
||||||
|
./../src/ScratchPad.py
|
||||||
|
./../src/Spell.py
|
||||||
|
./../src/TipOfDay.py
|
||||||
|
./../src/ToolTips.py
|
||||||
|
./../src/TransUtils.py
|
||||||
|
./../src/Utils.py
|
||||||
|
./../src/UndoHistory.py
|
||||||
|
./../src/cli/arghandler.py
|
||||||
|
./../src/cli/argparser.py
|
||||||
|
./../src/cli/clidbman.py
|
||||||
|
./../src/cli/grampscli.py
|
||||||
|
./../src/cli/plug/__init__.py
|
||||||
|
./../src/gen/db/base.py
|
||||||
|
./../src/gen/db/exceptions.py
|
||||||
|
./../src/gen/db/undoredo.py
|
||||||
|
./../src/gen/display/name.py
|
||||||
|
./../src/gen/lib/attrtype.py
|
||||||
|
./../src/gen/lib/childreftype.py
|
||||||
|
./../src/gen/lib/date.py
|
||||||
|
./../src/gen/lib/eventroletype.py
|
||||||
|
./../src/gen/lib/eventtype.py
|
||||||
|
./../src/gen/lib/familyreltype.py
|
||||||
|
./../src/gen/lib/grampstype.py
|
||||||
|
./../src/gen/lib/ldsord.py
|
||||||
|
./../src/gen/lib/markertype.py
|
||||||
|
./../src/gen/lib/nametype.py
|
||||||
|
./../src/gen/lib/nameorigintype.py
|
||||||
|
./../src/gen/lib/notetype.py
|
||||||
|
./../src/gen/lib/person.py
|
||||||
|
./../src/gen/lib/repotype.py
|
||||||
|
./../src/gen/lib/srcmediatype.py
|
||||||
|
./../src/gen/lib/surnamebase.py
|
||||||
|
./../src/gen/lib/urltype.py
|
||||||
|
./../src/gen/mime/_gnomemime.py
|
||||||
|
./../src/gen/mime/_pythonmime.py
|
||||||
|
./../src/gen/plug/_gramplet.py
|
||||||
|
./../src/gen/plug/_manager.py
|
||||||
|
./../src/gen/plug/_pluginreg.py
|
||||||
|
./../src/gen/plug/docbackend/docbackend.py
|
||||||
|
./../src/gen/plug/utils.py
|
||||||
|
./../src/gen/plug/docgen/graphdoc.py
|
||||||
|
./../src/gen/plug/report/_constants.py
|
||||||
|
./../src/gen/plug/report/_paper.py
|
||||||
|
./../src/gen/plug/report/endnotes.py
|
||||||
|
./../src/gen/plug/report/utils.py
|
||||||
|
./../src/gen/proxy/private.py
|
||||||
|
./../src/gui/aboutdialog.py
|
||||||
|
./../src/gui/columnorder.py
|
||||||
|
./../src/gui/configure.py
|
||||||
|
./../src/gui/dbloader.py
|
||||||
|
./../src/gui/dbman.py
|
||||||
|
./../src/gui/filtereditor.py
|
||||||
|
./../src/gui/grampsbar.py
|
||||||
|
./../src/gui/grampsgui.py
|
||||||
|
./../src/gui/makefilter.py
|
||||||
|
./../src/gui/utils.py
|
||||||
|
./../src/gui/viewmanager.py
|
||||||
|
./../src/gui/editors/addmedia.py
|
||||||
|
./../src/gui/editors/objectentries.py
|
||||||
|
./../src/gui/editors/editaddress.py
|
||||||
|
./../src/gui/editors/editattribute.py
|
||||||
|
./../src/gui/editors/editchildref.py
|
||||||
|
./../src/gui/editors/editcitation.py
|
||||||
|
./../src/gui/editors/editevent.py
|
||||||
|
./../src/gui/editors/editeventref.py
|
||||||
|
./../src/gui/editors/editfamily.py
|
||||||
|
./../src/gui/editors/editldsord.py
|
||||||
|
./../src/gui/editors/editlocation.py
|
||||||
|
./../src/gui/editors/editlink.py
|
||||||
|
./../src/gui/editors/editmedia.py
|
||||||
|
./../src/gui/editors/editmediaref.py
|
||||||
|
./../src/gui/editors/editname.py
|
||||||
|
./../src/gui/editors/editnote.py
|
||||||
|
./../src/gui/editors/editperson.py
|
||||||
|
./../src/gui/editors/editpersonref.py
|
||||||
|
./../src/gui/editors/editplace.py
|
||||||
|
./../src/gui/editors/editprimary.py
|
||||||
|
./../src/gui/editors/editreporef.py
|
||||||
|
./../src/gui/editors/editrepository.py
|
||||||
|
./../src/gui/editors/editsource.py
|
||||||
|
./../src/gui/editors/editurl.py
|
||||||
|
./../src/gui/editors/displaytabs/addrembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/attrembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/backreflist.py
|
||||||
|
./../src/gui/editors/displaytabs/backrefmodel.py
|
||||||
|
./../src/gui/editors/displaytabs/buttontab.py
|
||||||
|
./../src/gui/editors/displaytabs/citationembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/dataembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/embeddedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/eventembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/eventrefmodel.py
|
||||||
|
./../src/gui/editors/displaytabs/familyldsembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/gallerytab.py
|
||||||
|
./../src/gui/editors/displaytabs/ldsembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/locationembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/nameembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/namemodel.py
|
||||||
|
./../src/gui/editors/displaytabs/notetab.py
|
||||||
|
./../src/gui/editors/displaytabs/personeventembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/personrefembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/repoembedlist.py
|
||||||
|
./../src/gui/editors/displaytabs/surnametab.py
|
||||||
|
./../src/gui/editors/displaytabs/webembedlist.py
|
||||||
|
./../src/gui/plug/_dialogs.py
|
||||||
|
./../src/gui/plug/_guioptions.py
|
||||||
|
./../src/gui/plug/_windows.py
|
||||||
|
./../src/gui/plug/report/_docreportdialog.py
|
||||||
|
./../src/gui/plug/report/_graphvizreportdialog.py
|
||||||
|
./../src/gui/plug/report/_papermenu.py
|
||||||
|
./../src/gui/plug/report/_reportdialog.py
|
||||||
|
./../src/gui/plug/report/_stylecombobox.py
|
||||||
|
./../src/gui/plug/report/_styleeditor.py
|
||||||
|
./../src/gui/plug/tool.py
|
||||||
|
./../src/gui/selectors/selectcitation.py
|
||||||
|
./../src/gui/selectors/selectevent.py
|
||||||
|
./../src/gui/selectors/selectfamily.py
|
||||||
|
./../src/gui/selectors/selectnote.py
|
||||||
|
./../src/gui/selectors/selectobject.py
|
||||||
|
./../src/gui/selectors/selectperson.py
|
||||||
|
./../src/gui/selectors/selectplace.py
|
||||||
|
./../src/gui/selectors/selectrepository.py
|
||||||
|
./../src/gui/selectors/selectsource.py
|
||||||
|
./../src/gui/views/listview.py
|
||||||
|
./../src/gui/views/navigationview.py
|
||||||
|
./../src/gui/views/pageview.py
|
||||||
|
./../src/gui/views/tags.py
|
||||||
|
./../src/gui/views/treemodels/citationtreemodel.py
|
||||||
|
./../src/gui/views/treemodels/mediamodel.py
|
||||||
|
./../src/gui/views/treemodels/peoplemodel.py
|
||||||
|
./../src/gui/views/treemodels/placemodel.py
|
||||||
|
./../src/gui/views/treemodels/treebasemodel.py
|
||||||
|
./../src/gui/widgets/buttons.py
|
||||||
|
./../src/gui/widgets/expandcollapsearrow.py
|
||||||
|
./../src/gui/widgets/grampletpane.py
|
||||||
|
./../src/gui/widgets/labels.py
|
||||||
|
./../src/gui/widgets/monitoredwidgets.py
|
||||||
|
./../src/gui/widgets/photo.py
|
||||||
|
./../src/gui/widgets/progressdialog.py
|
||||||
|
./../src/gui/widgets/styledtexteditor.py
|
||||||
|
./../src/gui/widgets/tageditor.py
|
||||||
|
./../src/gui/widgets/undoableentry.py
|
||||||
|
./../src/gui/widgets/validatedmaskedentry.py
|
||||||
|
./../src/Simple/_SimpleTable.py
|
||||||
|
./../src/Merge/mergecitation.py
|
||||||
|
./../src/Merge/mergeevent.py
|
||||||
|
./../src/Merge/mergefamily.py
|
||||||
|
./../src/Merge/mergemedia.py
|
||||||
|
./../src/Merge/mergenote.py
|
||||||
|
./../src/Merge/mergeperson.py
|
||||||
|
./../src/Merge/mergeplace.py
|
||||||
|
./../src/Merge/mergerepository.py
|
||||||
|
./../src/Merge/mergesource.py
|
||||||
|
./../src/docgen/ODSTab.py
|
||||||
|
./../src/docgen/TextBufDoc.py
|
||||||
|
./../src/GrampsLogger/_ErrorReportAssistant.py
|
||||||
|
./../src/GrampsLogger/_ErrorView.py
|
||||||
|
./../src/plugins/BookReport.py
|
||||||
|
./../src/plugins/bookreport.gpr.py
|
||||||
|
./../src/plugins/records.gpr.py
|
||||||
|
./../src/plugins/Records.py
|
||||||
|
./../src/plugins/docgen/AsciiDoc.py
|
||||||
|
./../src/plugins/docgen/docgen.gpr.py
|
||||||
|
./../src/plugins/docgen/GtkPrint.py
|
||||||
|
./../src/plugins/docgen/HtmlDoc.py
|
||||||
|
./../src/plugins/docgen/LaTeXDoc.py
|
||||||
|
./../src/plugins/docgen/ODFDoc.py
|
||||||
|
./../src/plugins/docgen/PSDrawDoc.py
|
||||||
|
./../src/plugins/docgen/RTFDoc.py
|
||||||
|
./../src/plugins/docgen/SvgDrawDoc.py
|
||||||
|
./../src/plugins/drawreport/AncestorTree.py
|
||||||
|
./../src/plugins/drawreport/Calendar.py
|
||||||
|
./../src/plugins/drawreport/DescendTree.py
|
||||||
|
./../src/plugins/drawreport/drawplugins.gpr.py
|
||||||
|
./../src/plugins/drawreport/FanChart.py
|
||||||
|
./../src/plugins/drawreport/StatisticsChart.py
|
||||||
|
./../src/plugins/drawreport/TimeLine.py
|
||||||
|
./../src/plugins/export/export.gpr.py
|
||||||
|
./../src/plugins/export/ExportCsv.py
|
||||||
|
./../src/plugins/export/ExportFtree.py
|
||||||
|
./../src/plugins/export/ExportGedcom.py
|
||||||
|
./../src/plugins/export/ExportGeneWeb.py
|
||||||
|
./../src/plugins/export/ExportPkg.py
|
||||||
|
./../src/plugins/export/ExportVCalendar.py
|
||||||
|
./../src/plugins/export/ExportVCard.py
|
||||||
|
./../src/plugins/export/ExportXml.py
|
||||||
|
./../src/plugins/gramplet/AgeOnDateGramplet.py
|
||||||
|
./../src/plugins/gramplet/AgeStats.py
|
||||||
|
./../src/plugins/gramplet/Attributes.py
|
||||||
|
./../src/plugins/gramplet/AttributesGramplet.py
|
||||||
|
./../src/plugins/gramplet/Backlinks.py
|
||||||
|
./../src/plugins/gramplet/bottombar.gpr.py
|
||||||
|
./../src/plugins/gramplet/CalendarGramplet.py
|
||||||
|
./../src/plugins/gramplet/Children.py
|
||||||
|
./../src/plugins/gramplet/Citations.py
|
||||||
|
./../src/plugins/gramplet/DescendGramplet.py
|
||||||
|
./../src/plugins/gramplet/EditExifMetadata.py
|
||||||
|
./../src/plugins/gramplet/Events.py
|
||||||
|
./../src/plugins/gramplet/FanChartGramplet.py
|
||||||
|
./../src/plugins/gramplet/FaqGramplet.py
|
||||||
|
./../src/plugins/gramplet/GivenNameGramplet.py
|
||||||
|
./../src/plugins/gramplet/gramplet.gpr.py
|
||||||
|
./../src/plugins/gramplet/Notes.py
|
||||||
|
./../src/plugins/gramplet/PedigreeGramplet.py
|
||||||
|
./../src/plugins/gramplet/PersonDetails.py
|
||||||
|
./../src/plugins/gramplet/PersonResidence.py
|
||||||
|
./../src/plugins/gramplet/PlaceDetails.py
|
||||||
|
./../src/plugins/gramplet/QuickViewGramplet.py
|
||||||
|
./../src/plugins/gramplet/RelativeGramplet.py
|
||||||
|
./../src/plugins/gramplet/RepositoryDetails.py
|
||||||
|
./../src/plugins/gramplet/SessionLogGramplet.py
|
||||||
|
./../src/plugins/gramplet/StatsGramplet.py
|
||||||
|
./../src/plugins/gramplet/SurnameCloudGramplet.py
|
||||||
|
./../src/plugins/gramplet/ToDoGramplet.py
|
||||||
|
./../src/plugins/gramplet/TopSurnamesGramplet.py
|
||||||
|
./../src/plugins/gramplet/WelcomeGramplet.py
|
||||||
|
./../src/plugins/gramplet/WhatsNext.py
|
||||||
|
./../src/plugins/graph/graphplugins.gpr.py
|
||||||
|
./../src/plugins/graph/GVFamilyLines.py
|
||||||
|
./../src/plugins/graph/GVHourGlass.py
|
||||||
|
./../src/plugins/graph/GVRelGraph.py
|
||||||
|
./../src/plugins/import/import.gpr.py
|
||||||
|
./../src/plugins/import/ImportCsv.py
|
||||||
|
./../src/plugins/import/ImportGedcom.py
|
||||||
|
./../src/plugins/import/ImportGeneWeb.py
|
||||||
|
./../src/plugins/import/ImportGrdb.py
|
||||||
|
./../src/plugins/import/ImportProGen.py
|
||||||
|
./../src/plugins/import/ImportVCard.py
|
||||||
|
./../src/plugins/import/ImportGpkg.py
|
||||||
|
./../src/plugins/import/ImportXml.py
|
||||||
|
./../src/plugins/lib/libcairodoc.py
|
||||||
|
./../src/plugins/lib/libgedcom.py
|
||||||
|
./../src/plugins/lib/libgrdb.py
|
||||||
|
./../src/plugins/lib/libholiday.py
|
||||||
|
./../src/plugins/lib/libhtmlconst.py
|
||||||
|
./../src/plugins/lib/libmetadata.py
|
||||||
|
./../src/plugins/lib/libnarrate.py
|
||||||
|
./../src/plugins/lib/libpersonview.py
|
||||||
|
./../src/plugins/lib/libplaceview.py
|
||||||
|
./../src/plugins/lib/libplugins.gpr.py
|
||||||
|
./../src/plugins/lib/libtranslate.py
|
||||||
|
./../src/plugins/lib/libtreebase.py
|
||||||
|
./../src/plugins/lib/maps/constants.py
|
||||||
|
./../src/plugins/lib/maps/geography.py
|
||||||
|
./../src/plugins/lib/maps/grampsmaps.py
|
||||||
|
./../src/plugins/mapservices/eniroswedenmap.py
|
||||||
|
./../src/plugins/mapservices/googlemap.py
|
||||||
|
./../src/plugins/mapservices/mapservice.gpr.py
|
||||||
|
./../src/plugins/mapservices/openstreetmap.py
|
||||||
|
./../src/plugins/quickview/AgeOnDate.py
|
||||||
|
./../src/plugins/quickview/all_events.py
|
||||||
|
./../src/plugins/quickview/all_relations.py
|
||||||
|
./../src/plugins/quickview/AttributeMatch.py
|
||||||
|
./../src/plugins/quickview/FilterByName.py
|
||||||
|
./../src/plugins/quickview/lineage.py
|
||||||
|
./../src/plugins/quickview/OnThisDay.py
|
||||||
|
./../src/plugins/quickview/quickview.gpr.py
|
||||||
|
./../src/plugins/quickview/References.py
|
||||||
|
./../src/plugins/quickview/LinkReferences.py
|
||||||
|
./../src/plugins/quickview/Reporef.py
|
||||||
|
./../src/plugins/quickview/SameSurnames.py
|
||||||
|
./../src/plugins/quickview/siblings.py
|
||||||
|
./../src/plugins/rel/relplugins.gpr.py
|
||||||
|
./../src/plugins/sidebar/sidebar.gpr.py
|
||||||
|
./../src/plugins/textreport/AlphabeticalIndex.py
|
||||||
|
./../src/plugins/textreport/AncestorReport.py
|
||||||
|
./../src/plugins/textreport/BirthdayReport.py
|
||||||
|
./../src/plugins/textreport/CustomBookText.py
|
||||||
|
./../src/plugins/textreport/DescendReport.py
|
||||||
|
./../src/plugins/textreport/DetAncestralReport.py
|
||||||
|
./../src/plugins/textreport/DetDescendantReport.py
|
||||||
|
./../src/plugins/textreport/EndOfLineReport.py
|
||||||
|
./../src/plugins/textreport/FamilyGroup.py
|
||||||
|
./../src/plugins/textreport/IndivComplete.py
|
||||||
|
./../src/plugins/textreport/KinshipReport.py
|
||||||
|
./../src/plugins/textreport/NumberOfAncestorsReport.py
|
||||||
|
./../src/plugins/textreport/PlaceReport.py
|
||||||
|
./../src/plugins/textreport/SimpleBookTitle.py
|
||||||
|
./../src/plugins/textreport/Summary.py
|
||||||
|
./../src/plugins/textreport/TableOfContents.py
|
||||||
|
./../src/plugins/textreport/TagReport.py
|
||||||
|
./../src/plugins/textreport/textplugins.gpr.py
|
||||||
|
./../src/plugins/tool/ChangeNames.py
|
||||||
|
./../src/plugins/tool/ChangeTypes.py
|
||||||
|
./../src/plugins/tool/Check.py
|
||||||
|
./../src/plugins/tool/Desbrowser.py
|
||||||
|
./../src/plugins/tool/Eval.py
|
||||||
|
./../src/plugins/tool/EventCmp.py
|
||||||
|
./../src/plugins/tool/EventNames.py
|
||||||
|
./../src/plugins/tool/ExtractCity.py
|
||||||
|
./../src/plugins/tool/FindDupes.py
|
||||||
|
./../src/plugins/tool/Leak.py
|
||||||
|
./../src/plugins/tool/MediaManager.py
|
||||||
|
./../src/plugins/tool/MergeCitations.py
|
||||||
|
./../src/plugins/tool/NotRelated.py
|
||||||
|
./../src/plugins/tool/OwnerEditor.py
|
||||||
|
./../src/plugins/tool/PatchNames.py
|
||||||
|
./../src/plugins/tool/Rebuild.py
|
||||||
|
./../src/plugins/tool/RebuildRefMap.py
|
||||||
|
./../src/plugins/tool/RelCalc.py
|
||||||
|
./../src/plugins/tool/RemoveUnused.py
|
||||||
|
./../src/plugins/tool/ReorderIds.py
|
||||||
|
./../src/plugins/tool/SortEvents.py
|
||||||
|
./../src/plugins/tool/SoundGen.py
|
||||||
|
./../src/plugins/tool/tools.gpr.py
|
||||||
|
./../src/plugins/tool/Verify.py
|
||||||
|
./../src/plugins/view/citationtreeview.py
|
||||||
|
./../src/plugins/view/citationlistview.py
|
||||||
|
./../src/plugins/view/eventview.py
|
||||||
|
./../src/plugins/view/familyview.py
|
||||||
|
./../src/plugins/view/fanchartview.py
|
||||||
|
./../src/plugins/view/fanchartview.gpr.py
|
||||||
|
./../src/plugins/view/geography.gpr.py
|
||||||
|
./../src/plugins/view/geoevents.py
|
||||||
|
./../src/plugins/view/geofamily.py
|
||||||
|
./../src/plugins/view/geoperson.py
|
||||||
|
./../src/plugins/view/geoplaces.py
|
||||||
|
./../src/plugins/view/grampletview.py
|
||||||
|
./../src/plugins/view/htmlrenderer.py
|
||||||
|
./../src/plugins/view/htmlrenderer.gpr.py
|
||||||
|
./../src/plugins/view/mediaview.py
|
||||||
|
./../src/plugins/view/noteview.py
|
||||||
|
./../src/plugins/view/pedigreeview.py
|
||||||
|
./../src/plugins/view/personlistview.py
|
||||||
|
./../src/plugins/view/persontreeview.py
|
||||||
|
./../src/plugins/view/placelistview.py
|
||||||
|
./../src/plugins/view/placetreeview.gpr.py
|
||||||
|
./../src/plugins/view/placetreeview.py
|
||||||
|
./../src/plugins/view/relview.py
|
||||||
|
./../src/plugins/view/repoview.py
|
||||||
|
./../src/plugins/view/sourceview.py
|
||||||
|
./../src/plugins/view/view.gpr.py
|
||||||
|
./../src/plugins/webreport/NarrativeWeb.py
|
||||||
|
./../src/plugins/webreport/WebCal.py
|
||||||
|
./../src/plugins/webreport/webplugins.gpr.py
|
||||||
|
./../src/plugins/webstuff/webstuff.gpr.py
|
||||||
|
./../src/plugins/webstuff/webstuff.py
|
||||||
|
./../src/Simple/_SimpleAccess.py
|
||||||
|
./../src/Filters/_FilterParser.py
|
||||||
|
./../src/Filters/_FilterStore.py
|
||||||
|
./../src/Filters/_SearchBar.py
|
||||||
|
./../src/Filters/Rules/_Everything.py
|
||||||
|
./../src/Filters/Rules/_HasGrampsId.py
|
||||||
|
./../src/Filters/Rules/_HasTextMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/_IsPrivate.py
|
||||||
|
./../src/Filters/Rules/_Rule.py
|
||||||
|
./../src/Filters/Rules/Person/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Person/_DeepRelationshipPathBetween.py
|
||||||
|
./../src/Filters/Rules/Person/_Disconnected.py
|
||||||
|
./../src/Filters/Rules/Person/_Everyone.py
|
||||||
|
./../src/Filters/Rules/Person/_FamilyWithIncompleteEvent.py
|
||||||
|
./../src/Filters/Rules/Person/_HasAddress.py
|
||||||
|
./../src/Filters/Rules/Person/_HasAlternateName.py
|
||||||
|
./../src/Filters/Rules/Person/_HasAssociation.py
|
||||||
|
./../src/Filters/Rules/Person/_HasAttribute.py
|
||||||
|
./../src/Filters/Rules/Person/_HasBirth.py
|
||||||
|
./../src/Filters/Rules/Person/_HasCitation.py
|
||||||
|
./../src/Filters/Rules/Person/_HasCommonAncestorWithFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_HasCommonAncestorWith.py
|
||||||
|
./../src/Filters/Rules/Person/_HasDeath.py
|
||||||
|
./../src/Filters/Rules/Person/_HasEvent.py
|
||||||
|
./../src/Filters/Rules/Person/_HasFamilyAttribute.py
|
||||||
|
./../src/Filters/Rules/Person/_HasFamilyEvent.py
|
||||||
|
./../src/Filters/Rules/Person/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Person/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Person/_HasLDS.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNameOf.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNameOriginType.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNameType.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNickname.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Person/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Person/_HasRelationship.py
|
||||||
|
./../src/Filters/Rules/Person/_HasSourceCount.py
|
||||||
|
./../src/Filters/Rules/Person/_HasSourceOf.py
|
||||||
|
./../src/Filters/Rules/Person/_HasTag.py
|
||||||
|
./../src/Filters/Rules/Person/_HasTextMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Person/_HasUnknownGender.py
|
||||||
|
./../src/Filters/Rules/Person/_HaveAltFamilies.py
|
||||||
|
./../src/Filters/Rules/Person/_HaveChildren.py
|
||||||
|
./../src/Filters/Rules/Person/_IncompleteNames.py
|
||||||
|
./../src/Filters/Rules/Person/_IsAncestorOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_IsAncestorOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsBookmarked.py
|
||||||
|
./../src/Filters/Rules/Person/_IsChildOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_IsDefaultPerson.py
|
||||||
|
./../src/Filters/Rules/Person/_IsDescendantFamilyOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsDescendantOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_IsDescendantOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsDuplicatedAncestorOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsFemale.py
|
||||||
|
./../src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfBookmarked.py
|
||||||
|
./../src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfDefaultPerson.py
|
||||||
|
./../src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsLessThanNthGenerationDescendantOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsMale.py
|
||||||
|
./../src/Filters/Rules/Person/_IsMoreThanNthGenerationAncestorOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsMoreThanNthGenerationDescendantOf.py
|
||||||
|
./../src/Filters/Rules/Person/_IsParentOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_PeoplePublic.py
|
||||||
|
./../src/Filters/Rules/Person/_IsRelatedWith.py
|
||||||
|
./../src/Filters/Rules/Person/_IsSiblingOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_IsSpouseOfFilterMatch.py
|
||||||
|
./../src/Filters/Rules/Person/_IsWitness.py
|
||||||
|
./../src/Filters/Rules/Person/_MatchesEventFilter.py
|
||||||
|
./../src/Filters/Rules/Person/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Person/_MatchesSourceConfidence.py
|
||||||
|
./../src/Filters/Rules/Person/_MatchIdOf.py
|
||||||
|
./../src/Filters/Rules/Person/_MissingParent.py
|
||||||
|
./../src/Filters/Rules/Person/_MultipleMarriages.py
|
||||||
|
./../src/Filters/Rules/Person/_NeverMarried.py
|
||||||
|
./../src/Filters/Rules/Person/_NoBirthdate.py
|
||||||
|
./../src/Filters/Rules/Person/_NoDeathdate.py
|
||||||
|
./../src/Filters/Rules/Person/_PeoplePrivate.py
|
||||||
|
./../src/Filters/Rules/Person/_PersonWithIncompleteEvent.py
|
||||||
|
./../src/Filters/Rules/Person/_ProbablyAlive.py
|
||||||
|
./../src/Filters/Rules/Person/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Person/_RegExpName.py
|
||||||
|
./../src/Filters/Rules/Person/_RelationshipPathBetween.py
|
||||||
|
./../src/Filters/Rules/Person/_RelationshipPathBetweenBookmarks.py
|
||||||
|
./../src/Filters/Rules/Person/_SearchName.py
|
||||||
|
./../src/Filters/Rules/Family/_AllFamilies.py
|
||||||
|
./../src/Filters/Rules/Family/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Family/_ChildHasIdOf.py
|
||||||
|
./../src/Filters/Rules/Family/_ChildHasNameOf.py
|
||||||
|
./../src/Filters/Rules/Family/_FamilyPrivate.py
|
||||||
|
./../src/Filters/Rules/Family/_FatherHasIdOf.py
|
||||||
|
./../src/Filters/Rules/Family/_FatherHasNameOf.py
|
||||||
|
./../src/Filters/Rules/Family/_HasAttribute.py
|
||||||
|
./../src/Filters/Rules/Family/_HasCitation.py
|
||||||
|
./../src/Filters/Rules/Family/_HasEvent.py
|
||||||
|
./../src/Filters/Rules/Family/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Family/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Family/_HasLDS.py
|
||||||
|
./../src/Filters/Rules/Family/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Family/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Family/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Family/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Family/_HasRelType.py
|
||||||
|
./../src/Filters/Rules/Family/_HasSourceCount.py
|
||||||
|
./../src/Filters/Rules/Family/_HasTag.py
|
||||||
|
./../src/Filters/Rules/Family/_IsBookmarked.py
|
||||||
|
./../src/Filters/Rules/Family/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Family/_MatchesSourceConfidence.py
|
||||||
|
./../src/Filters/Rules/Family/_MotherHasIdOf.py
|
||||||
|
./../src/Filters/Rules/Family/_MotherHasNameOf.py
|
||||||
|
./../src/Filters/Rules/Family/_SearchFatherName.py
|
||||||
|
./../src/Filters/Rules/Family/_SearchChildName.py
|
||||||
|
./../src/Filters/Rules/Family/_SearchMotherName.py
|
||||||
|
./../src/Filters/Rules/Family/_RegExpFatherName.py
|
||||||
|
./../src/Filters/Rules/Family/_RegExpMotherName.py
|
||||||
|
./../src/Filters/Rules/Family/_RegExpChildName.py
|
||||||
|
./../src/Filters/Rules/Family/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Event/_AllEvents.py
|
||||||
|
./../src/Filters/Rules/Event/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Event/_EventPrivate.py
|
||||||
|
./../src/Filters/Rules/Event/_HasAttribute.py
|
||||||
|
./../src/Filters/Rules/Event/_HasCitation.py
|
||||||
|
./../src/Filters/Rules/Event/_HasData.py
|
||||||
|
./../src/Filters/Rules/Event/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Event/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Event/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Event/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Event/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Event/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Event/_HasSourceCount.py
|
||||||
|
./../src/Filters/Rules/Event/_HasType.py
|
||||||
|
./../src/Filters/Rules/Event/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Event/_MatchesPersonFilter.py
|
||||||
|
./../src/Filters/Rules/Event/_MatchesSourceFilter.py
|
||||||
|
./../src/Filters/Rules/Event/_MatchesSourceConfidence.py
|
||||||
|
./../src/Filters/Rules/Event/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Place/_AllPlaces.py
|
||||||
|
./../src/Filters/Rules/Place/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Place/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Place/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Place/_HasNoLatOrLon.py
|
||||||
|
./../src/Filters/Rules/Place/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Place/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Place/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Place/_HasPlace.py
|
||||||
|
./../src/Filters/Rules/Place/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Place/_InLatLonNeighborhood.py
|
||||||
|
./../src/Filters/Rules/Place/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Place/_MatchesEventFilter.py
|
||||||
|
./../src/Filters/Rules/Place/_PlacePrivate.py
|
||||||
|
./../src/Filters/Rules/Place/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Source/_AllSources.py
|
||||||
|
./../src/Filters/Rules/Source/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Source/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Source/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Source/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Source/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Source/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Source/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Source/_HasRepository.py
|
||||||
|
./../src/Filters/Rules/Source/_HasRepositoryCallNumberRef.py
|
||||||
|
./../src/Filters/Rules/Source/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Source/_MatchesRepositoryFilter.py
|
||||||
|
./../src/Filters/Rules/Source/_MatchesTitleSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Source/_SourcePrivate.py
|
||||||
|
./../src/Filters/Rules/Source/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_AllCitations.py
|
||||||
|
./../src/Filters/Rules/Citation/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Citation/_CitationPrivate.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasGallery.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_HasSource.py
|
||||||
|
./../src/Filters/Rules/Citation/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Citation/_MatchesPageSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Citation/_MatchesRepositoryFilter.py
|
||||||
|
./../src/Filters/Rules/Citation/_MatchesSourceFilter.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_AllMedia.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasAttribute.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasMedia.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_HasTag.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_MediaPrivate.py
|
||||||
|
./../src/Filters/Rules/MediaObject/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_AllRepos.py
|
||||||
|
./../src/Filters/Rules/Repository/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Repository/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_HasNoteMatchingSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_HasNoteRegexp.py
|
||||||
|
./../src/Filters/Rules/Repository/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_HasRepo.py
|
||||||
|
./../src/Filters/Rules/Repository/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Repository/_MatchesNameSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Repository/_RepoPrivate.py
|
||||||
|
./../src/Filters/Rules/Note/_AllNotes.py
|
||||||
|
./../src/Filters/Rules/Note/_ChangedSince.py
|
||||||
|
./../src/Filters/Rules/Note/_HasIdOf.py
|
||||||
|
./../src/Filters/Rules/Note/_MatchesSubstringOf.py
|
||||||
|
./../src/Filters/Rules/Note/_MatchesRegexpOf.py
|
||||||
|
./../src/Filters/Rules/Note/_HasNote.py
|
||||||
|
./../src/Filters/Rules/Note/_HasTag.py
|
||||||
|
./../src/Filters/Rules/Note/_HasReferenceCountOf.py
|
||||||
|
./../src/Filters/Rules/Note/_MatchesFilter.py
|
||||||
|
./../src/Filters/Rules/Note/_RegExpIdOf.py
|
||||||
|
./../src/Filters/Rules/Note/_NotePrivate.py
|
||||||
|
./../src/Filters/SideBar/_CitationSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_EventSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_FamilySidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_PersonSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_SidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_SourceSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_PlaceSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_MediaSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_RepoSidebarFilter.py
|
||||||
|
./../src/Filters/SideBar/_NoteSidebarFilter.py
|
||||||
|
../src/plugins/docgen/gtkprint.glade
|
||||||
|
../src/glade/editperson.glade
|
||||||
|
../src/glade/grampletpane.glade
|
||||||
|
../src/glade/baseselector.glade
|
||||||
|
../src/glade/reorder.glade
|
||||||
|
../src/glade/tipofday.glade
|
||||||
|
../src/glade/displaystate.glade
|
||||||
|
../src/glade/addmedia.glade
|
||||||
|
../src/glade/questiondialog.glade
|
||||||
|
../src/glade/configure.glade
|
||||||
|
../src/glade/dateedit.glade
|
||||||
|
../src/glade/editsource.glade
|
||||||
|
../src/glade/styleeditor.glade
|
||||||
|
../src/glade/dbman.glade
|
||||||
|
../src/glade/editcitation.glade
|
||||||
|
../src/glade/editurl.glade
|
||||||
|
../src/glade/editrepository.glade
|
||||||
|
../src/glade/editreporef.glade
|
||||||
|
../src/glade/editpersonref.glade
|
||||||
|
../src/glade/editlocation.glade
|
||||||
|
../src/glade/editlink.glade
|
||||||
|
../src/glade/editfamily.glade
|
||||||
|
../src/glade/editchildref.glade
|
||||||
|
../src/glade/editattribute.glade
|
||||||
|
../src/glade/editaddress.glade
|
||||||
|
../src/glade/editmedia.glade
|
||||||
|
../src/glade/editmediaref.glade
|
||||||
|
../src/glade/editeventref.glade
|
||||||
|
../src/glade/editldsord.glade
|
||||||
|
../src/glade/editnote.glade
|
||||||
|
../src/glade/editplace.glade
|
||||||
|
../src/glade/editsourceref.glade
|
||||||
|
../src/glade/editname.glade
|
||||||
|
../src/glade/editevent.glade
|
||||||
|
../src/glade/mergecitation.glade
|
||||||
|
../src/glade/mergedata.glade
|
||||||
|
../src/glade/mergeevent.glade
|
||||||
|
../src/glade/mergefamily.glade
|
||||||
|
../src/glade/mergemedia.glade
|
||||||
|
../src/glade/mergenote.glade
|
||||||
|
../src/glade/mergeperson.glade
|
||||||
|
../src/glade/mergeplace.glade
|
||||||
|
../src/glade/mergerepository.glade
|
||||||
|
../src/glade/mergesource.glade
|
||||||
|
../src/glade/plugins.glade
|
||||||
|
../src/glade/rule.glade
|
||||||
|
../src/glade/scratchpad.glade
|
||||||
|
../src/glade/papermenu.glade
|
||||||
|
../src/glade/updateaddons.glade
|
||||||
|
../src/plugins/tool/notrelated.glade
|
||||||
|
../src/plugins/bookreport.glade
|
||||||
|
../src/plugins/tool/changenames.glade
|
||||||
|
../src/plugins/tool/changetypes.glade
|
||||||
|
../src/plugins/tool/desbrowser.glade
|
||||||
|
../src/plugins/tool/eval.glade
|
||||||
|
../src/plugins/tool/eventcmp.glade
|
||||||
|
../src/plugins/tool/leak.glade
|
||||||
|
../src/plugins/tool/finddupes.glade
|
||||||
|
../src/plugins/tool/mergecitations.glade
|
||||||
|
../src/plugins/tool/ownereditor.glade
|
||||||
|
../src/plugins/tool/patchnames.glade
|
||||||
|
../src/plugins/tool/relcalc.glade
|
||||||
|
../src/plugins/tool/soundgen.glade
|
||||||
|
../src/plugins/tool/removeunused.glade
|
||||||
|
../src/plugins/tool/verify.glade
|
||||||
|
../src/plugins/import/importgedcom.glade
|
||||||
|
../src/plugins/lib/holidays.xml.in
|
||||||
|
../data/gramps.desktop.in
|
||||||
|
../data/gramps.keys.in
|
||||||
|
../data/gramps.xml.in
|
||||||
|
../src/data/tips.xml.in
|
313
po/update_po.py
313
po/update_po.py
@ -1,6 +1,6 @@
|
|||||||
#! /usr/bin/env python
|
#! /usr/bin/env python
|
||||||
#
|
#
|
||||||
# update_po - a gramps tool to update a po file
|
# update_po - a gramps tool to update translations
|
||||||
#
|
#
|
||||||
# Copyright (C) 2006-2006 Kees Bakker
|
# Copyright (C) 2006-2006 Kees Bakker
|
||||||
# Copyright (C) 2006 Brian Matherly
|
# Copyright (C) 2006 Brian Matherly
|
||||||
@ -27,42 +27,301 @@ import sys
|
|||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
|
|
||||||
|
if sys.platform == 'win32':
|
||||||
|
# GetText Win 32 obtained from http://gnuwin32.sourceforge.net/packages/gettext.htm
|
||||||
|
# ....\gettext\bin\msgmerge.exe needs to be on the path
|
||||||
|
msgmergeCmd = 'msgmerge.exe'
|
||||||
|
msgfmtCmd = 'msgfmt.exe'
|
||||||
|
pythonCmd = 'python.exe'
|
||||||
|
elif sys.platform == 'linux2':
|
||||||
|
msgmergeCmd = 'msgmerge'
|
||||||
|
msgfmtCmd = 'msgfmt'
|
||||||
|
pythonCmd = 'python'
|
||||||
|
|
||||||
|
def tests():
|
||||||
|
"""
|
||||||
|
Testing installed programs.
|
||||||
|
We made tests (-t flag) by displaying versions of tools if properly
|
||||||
|
installed. Cannot run all commands without 'gettext' and 'python'.
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("====='msgmerge'=(merge our translation)=================")
|
||||||
|
os.system('''%(program)s -V''' % {'program': msgmergeCmd})
|
||||||
|
except:
|
||||||
|
print('Please, install %(program)s for updating your translation' % {'program': msgmergeCmd})
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("===='msgfmt'=(format our translation for installation)==")
|
||||||
|
os.system('''%(program)s -V''' % {'program': msgfmtCmd})
|
||||||
|
except:
|
||||||
|
print('Please, install %(program)s for checking your translation' % {'program': msgfmtCmd})
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("=================='python'============================")
|
||||||
|
os.system('''%(program)s -V''' % {'program': pythonCmd})
|
||||||
|
except:
|
||||||
|
print('Please, install python')
|
||||||
|
|
||||||
|
|
||||||
|
def XMLParse(filename, mark):
|
||||||
|
"""
|
||||||
|
Experimental alternative to 'intltool-extract' for XML based files.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# in progress ...
|
||||||
|
from xml.etree import ElementTree
|
||||||
|
|
||||||
|
tree = ElementTree.parse(filename)
|
||||||
|
root = tree.getroot()
|
||||||
|
|
||||||
|
tips = names = []
|
||||||
|
|
||||||
|
for key in root:
|
||||||
|
if key.tag == mark:
|
||||||
|
tips.append((key.attrib, ElementTree.tostring(key, encoding="UTF-8")))
|
||||||
|
|
||||||
|
if mark == '_tip':
|
||||||
|
for tip in tips:
|
||||||
|
print(tip)
|
||||||
|
|
||||||
|
if mark == '_name':
|
||||||
|
print(names)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
"""
|
||||||
|
The utility for handling translation stuff.
|
||||||
|
What is need by Gramps, nothing more.
|
||||||
|
"""
|
||||||
|
|
||||||
parser = OptionParser(
|
parser = OptionParser(
|
||||||
description='This program updates the PO file(s) for Gramps,'
|
description='This program generates a new template and '
|
||||||
' by generating a new file for translator',
|
'also provide some common features.',
|
||||||
usage='%prog [options] lang.po'
|
usage='%prog [options]'
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_option("-a", "--all",
|
parser.add_option("-t", "--test",
|
||||||
action="store_true", dest="all", default=False,
|
action="store_true", dest="test", default=False,
|
||||||
help="update all translations (not active)")
|
help="test if 'python' and 'gettext' are properly installed")
|
||||||
|
|
||||||
|
parser.add_option("-x", "--xml",
|
||||||
|
action="store_true", dest="xml", default=False,
|
||||||
|
help="extract messages from xml based file formats")
|
||||||
|
parser.add_option("-g", "--glade",
|
||||||
|
action="store_true", dest="glade", default=False,
|
||||||
|
help="extract messages from glade file format only")
|
||||||
|
parser.add_option("-c", "--clean",
|
||||||
|
action="store_true", dest="clean", default=False,
|
||||||
|
help="remove created files")
|
||||||
|
parser.add_option("-p", "--pot",
|
||||||
|
action="store_true", dest="catalog", default=False,
|
||||||
|
help="create a new catalog")
|
||||||
|
|
||||||
|
# need at least one argument (sv.po, de.po, etc ...)
|
||||||
|
parser.add_option("-m", "--merge",
|
||||||
|
action="store_true", dest="merge", default=False,
|
||||||
|
help="merge lang.po files with last catalog")
|
||||||
|
parser.add_option("-k", "--check",
|
||||||
|
action="store_true", dest="check", default=False,
|
||||||
|
help="check lang.po files")
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
if options.all:
|
|
||||||
print('Not implemented yet')
|
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
|
||||||
# GetText Win 32 obtained from http://gnuwin32.sourceforge.net/packages/gettext.htm
|
|
||||||
# ....\gettext\bin\msgmerge.exe needs to be on the path
|
|
||||||
msgfmtCmd = 'msgmerge.exe'
|
|
||||||
elif sys.platform == 'linux2':
|
|
||||||
msgfmtCmd = 'msgmerge'
|
|
||||||
|
|
||||||
try:
|
|
||||||
os.system('''intltool-update -g gramps -o gramps.pot -p''')
|
|
||||||
print('New template')
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
for po in args:
|
if options.test:
|
||||||
print('Merge %(lang)s with last template' % {'lang': po})
|
tests()
|
||||||
os.system('''%s --no-wrap %s gramps.pot -o %s_updated''' % (msgfmtCmd, po, po))
|
|
||||||
print('Updated file: %(lang)s_updated' % {'lang': po})
|
if options.xml:
|
||||||
|
extract_xml()
|
||||||
|
|
||||||
|
if options.glade:
|
||||||
|
extract_glade()
|
||||||
|
|
||||||
|
if options.catalog:
|
||||||
|
retrieve()
|
||||||
|
|
||||||
|
if options.clean:
|
||||||
|
clean()
|
||||||
|
|
||||||
|
if options.merge:
|
||||||
|
merge(args)
|
||||||
|
|
||||||
|
if options.check:
|
||||||
|
check(args)
|
||||||
|
|
||||||
|
def listing(name, extension):
|
||||||
|
"""
|
||||||
|
List files according to extensions.
|
||||||
|
Parsing from a textual file (gramps) is faster and easy for maintenance.
|
||||||
|
Like POTFILES.in and POTFILES.skip
|
||||||
|
"""
|
||||||
|
|
||||||
|
f = open('gramps')
|
||||||
|
files = [file.strip() for file in f]
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
temp = open(name, 'w')
|
||||||
|
|
||||||
|
for entry in files:
|
||||||
|
(module, ext) = os.path.splitext(entry)
|
||||||
|
if ext == extension:
|
||||||
|
temp.write(entry)
|
||||||
|
temp.write('\n')
|
||||||
|
|
||||||
|
temp.close()
|
||||||
|
|
||||||
|
|
||||||
|
def headers():
|
||||||
|
"""
|
||||||
|
Look at existing C file format headers.
|
||||||
|
Generated by 'intltool-extract' but want to get rid of this
|
||||||
|
dependency (perl, just a set of tools).
|
||||||
|
"""
|
||||||
|
|
||||||
|
headers = []
|
||||||
|
|
||||||
|
# in.h; extract_xml
|
||||||
|
if os.path.isfile('''../src/data/tips.xml.in.h'''):
|
||||||
|
headers.append('''../src/data/tips.xml.in.h''')
|
||||||
|
if os.path.isfile('''../src/plugins/lib/holidays.xml.in.h'''):
|
||||||
|
headers.append('''../src/plugins/lib/holidays.xml.in.h''')
|
||||||
|
|
||||||
|
# cosmetic
|
||||||
|
if os.path.isfile('''../data/gramps.xml.in.h'''):
|
||||||
|
headers.append('''../data/gramps.xml.in.h''')
|
||||||
|
if os.path.isfile('''../data/gramps.desktop.in.h'''):
|
||||||
|
headers.append('''../data/gramps.desktop.in.h''')
|
||||||
|
if os.path.isfile('''../data/gramps.keys.in.h'''):
|
||||||
|
headers.append('''../data/gramps.keys.in.h''')
|
||||||
|
|
||||||
|
return headers
|
||||||
|
|
||||||
|
|
||||||
|
def extract_xml():
|
||||||
|
"""
|
||||||
|
Extract translation strings from XML based, keys, mime and desktop
|
||||||
|
files. Still performed by 'intltool-update'.
|
||||||
|
Need to look at own XML files parsing and custom translation marks.
|
||||||
|
"""
|
||||||
|
|
||||||
|
os.system('''intltool-extract --type=gettext/xml ../src/data/tips.xml.in''')
|
||||||
|
#XMLParse('../src/data/tips.xml.in', '_tip')
|
||||||
|
os.system('''intltool-extract --type=gettext/xml ../src/plugins/lib/holidays.xml.in''')
|
||||||
|
#XMLParse('../src/data/tips.xml.in', '_name')
|
||||||
|
|
||||||
|
# cosmetic
|
||||||
|
# could be simple copies without .in extension
|
||||||
|
os.system('''intltool-extract --type=gettext/xml ../data/gramps.xml.in''')
|
||||||
|
os.system('''intltool-extract --type=gettext/ini ../data/gramps.desktop.in''')
|
||||||
|
os.system('''intltool-extract --type=gettext/keys ../data/gramps.keys.in''')
|
||||||
|
|
||||||
|
|
||||||
|
def create_template():
|
||||||
|
"""
|
||||||
|
Create a new file for template, if it does not exist.
|
||||||
|
"""
|
||||||
|
|
||||||
|
template = open('gramps.pot', 'w')
|
||||||
|
template.close()
|
||||||
|
|
||||||
|
|
||||||
|
def extract_glade():
|
||||||
|
"""
|
||||||
|
Extract messages from a temp file with all .glade
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not os.path.isfile('gramps.pot'):
|
||||||
|
create_template()
|
||||||
|
|
||||||
|
listing('glade.txt', '.glade')
|
||||||
|
os.system('''xgettext --add-comments -j -L Glade '''
|
||||||
|
'''--from-code=UTF-8 -o gramps.pot --files-from=glade.txt'''
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def retrieve():
|
||||||
|
"""
|
||||||
|
Extract messages from all files used by Gramps (python, glade, xml)
|
||||||
|
"""
|
||||||
|
|
||||||
|
extract_xml()
|
||||||
|
|
||||||
|
if not os.path.isfile('gramps.pot'):
|
||||||
|
create_template()
|
||||||
|
|
||||||
|
listing('python.txt', '.py')
|
||||||
|
os.system('''xgettext --add-comments -j --directory=. -d gramps '''
|
||||||
|
'''-L Python -o gramps.pot --files-from=python.txt '''
|
||||||
|
'''--keyword=_ --keyword=ngettext '''
|
||||||
|
'''--keyword=sgettext --from-code=UTF-8'''
|
||||||
|
)
|
||||||
|
|
||||||
|
extract_glade()
|
||||||
|
|
||||||
|
# C format header (.h extension)
|
||||||
|
for h in headers():
|
||||||
|
print('xgettext for %s') % h
|
||||||
|
os.system('''xgettext --add-comments -j -o gramps.pot '''
|
||||||
|
'''--keyword=N_ --from-code=UTF-8 %(head)s''' % {'head': h}
|
||||||
|
)
|
||||||
|
|
||||||
|
clean()
|
||||||
|
|
||||||
|
|
||||||
|
def clean():
|
||||||
|
"""
|
||||||
|
Remove created files (C format headers, temp listings)
|
||||||
|
"""
|
||||||
|
|
||||||
|
for h in headers():
|
||||||
|
if os.path.isfile(h):
|
||||||
|
os.system('''rm %s''' % h)
|
||||||
|
print('Remove %(head)s' % {'head': h})
|
||||||
|
|
||||||
|
if os.path.isfile('python.txt'):
|
||||||
|
os.system('''rm python.txt''')
|
||||||
|
print("Remove 'python.txt'")
|
||||||
|
|
||||||
|
if os.path.isfile('glade.txt'):
|
||||||
|
os.system('''rm glade.txt''')
|
||||||
|
print("Remove 'glade.txt'")
|
||||||
|
|
||||||
|
|
||||||
|
def merge(args):
|
||||||
|
"""
|
||||||
|
Merge messages with 'gramps.pot'
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not args:
|
||||||
|
print('Please, add at least one argument (sv.po, de.po).')
|
||||||
|
|
||||||
|
for arg in args:
|
||||||
|
if arg[-3:] == '.po':
|
||||||
|
print('Merge %(lang)s with current template' % {'lang': arg})
|
||||||
|
os.system('''%(msgmerge)s --no-wrap %(lang)s gramps.pot -o updated_%(lang)s''' \
|
||||||
|
% {'msgmerge': msgmergeCmd, 'lang': arg})
|
||||||
|
print("Updated file: 'updated_%(lang)s'." % {'lang': arg})
|
||||||
|
else:
|
||||||
|
print("Please, try to set an argument with .po extension like '%(arg)s.po'." % {'arg': arg})
|
||||||
|
|
||||||
|
|
||||||
|
def check(args):
|
||||||
|
"""
|
||||||
|
Check the translation file
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not args:
|
||||||
|
print('Please, add at least one argument (sv.po, de.po).')
|
||||||
|
|
||||||
|
for arg in args:
|
||||||
|
if arg[-3:] == '.po':
|
||||||
|
print("Checked file: '%(lang.po)s'. See '%(txt)s.txt'." \
|
||||||
|
% {'lang.po': arg, 'txt': arg[:2]})
|
||||||
|
os.system('''%(python)s ./check_po ./%(lang.po)s > %(lang)s.txt''' \
|
||||||
|
% {'python': pythonCmd, 'lang.po': arg, 'lang': arg[:2]})
|
||||||
|
os.system('''%(msgfmt)s -c -v %(lang.po)s''' % {'msgfmt': msgfmtCmd, 'lang.po': arg})
|
||||||
|
else:
|
||||||
|
print("Please, try to set an argument with .po extension like '%(arg)s.po'." % {'arg': arg})
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user