Difference between revisions of "Writing a plugin"
(→Internationalize it (3.2 and later)) |
(→Share it) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{out of date|test it - instructions need updating}} | ||
== Write it== | == Write it== | ||
Line 57: | Line 58: | ||
* Add the correct license. Gramps is GPLv2, you use the Gramps plugin system, so make sure you have the correct license at the top of your file. See [[Howto: Contribute to Gramps]] | * Add the correct license. Gramps is GPLv2, you use the Gramps plugin system, so make sure you have the correct license at the top of your file. See [[Howto: Contribute to Gramps]] | ||
* Create a filename.tar.gz or filename.zip file of your plugin code | * Create a filename.tar.gz or filename.zip file of your plugin code | ||
− | * Upload the code to | + | * Upload the code to Github (Fork https://github.com/gramps-project/addons-source ) and submit a Pull Request. |
− | * Add an entry of your plugin to [[ | + | * Add an entry of your plugin to [[Third-party Addons]]. See [[Plugin list legend]] for meaning of columns. Please use these meanings and pay attention to details; this page is machine readable. |
* Create a new wiki page, and refer to that page here, with a short description of what the plugin does | * Create a new wiki page, and refer to that page here, with a short description of what the plugin does | ||
Revision as of 23:21, 3 October 2015
This page's factual accuracy may be compromised due to out-of-date information. Please help improve the Gramps Wiki as a useful resource by updating it. |
Write it
To get started writing a plugin, please see the following tutorials:
- Addons development - for Gramps version 3.2 and later
- Gramplets
- Quick Views
- Report-writing tutorial
For more general Gramps development information, see:
- Simple Access API
- Using database API
- Getting started with Gramps development
- Report API
- Report Generation
Test it
- See Unit Test Quickstart
- Check syntax issues with Pylint
There is some samples of tests for localized Relationships calculators or Date handlers:
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_it.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 Relationship import test RC = RelationshipCalculator() test(RC, True) def _test(rc, onlybirth, inlawa, inlawb, printrelstr): """ this is a generic test suite for the singular relationship TRANSLATORS: do NOT translate, use __main__ ! """ import sys import random ...
cd /home/me/grampssvn export PYTHONPATH=/home/me/grampssvn/src python src/plugins/rel/rel_it.py
cd /home/me/grampssvn export PYTHONPATH=/home/me/grampssvn/src pylint src/plugins/rel/rel_it.py > /home/me/grampssvn/src/plugins/rel/it.txt
Have you written a plugin for Gramps you want to share with the world? Here's how you do it:
- Add the correct license. Gramps is GPLv2, you use the Gramps plugin system, so make sure you have the correct license at the top of your file. See Howto: Contribute to Gramps
- Create a filename.tar.gz or filename.zip file of your plugin code
- Upload the code to Github (Fork https://github.com/gramps-project/addons-source ) and submit a Pull Request.
- Add an entry of your plugin to Third-party Addons. See Plugin list legend for meaning of columns. Please use these meanings and pay attention to details; this page is machine readable.
- Create a new wiki page, and refer to that page here, with a short description of what the plugin does
Internationalize it (3.2 and later)
The previous section describes a new method for Gramps 3.1 and earlier.
This section describes a method of internationalizing your code for versions of Gramps 3.2 and later.
Please see Addons development for complete details.
Also, have a look at Coding for translation.
Considerations
- We support right to left languages like Arabic, so never constructs text parts by concatenation of pieces. Always use full sentences/paragraphs with variable substitution, so that a right to left language can translate it correctly.