Sorry it has taken so long to get back to you on this one. The 0.7.3
release took a lot of my available time, along with a large chunk that
is currently going to getting ZODB up.
I need to dwell on this a bit, but I think the ideas here are pretty
Another alternative might be to return two strings or lists that
indicate the genders back to the common ancestor.
For example, a grandfather/grandson (Pete, son of Joe, son of Fred)
relationship would look like:
[ 'm', 'm', 'm' ] # Pete, Joe, Fred
[ 'm' ] # Fred
A cousin relationship (Mary, daughter of Max, son of Jane, and Alex, son
of Wilbur, son of Jane) would look like:
[ 'f', 'm', 'f' ]
[ 'm', 'm', 'f' ]
This is probably the most generic, but probably is the most awkward
format to use. You would need language/culture specific conversions,
which would be a bit of a pain, but then should be easily extendable.
On Sun, 2002-05-05 at 20:10, Lars Kr.Lundin wrote:
> Several postings to this list have come up with ideas
> on how to handle the Relationship Calculator in various
> I think this comes from the fact that the Relationship
> Calculator in gramps is inspired by the terminology of the
> English language - as is evident in src/plugins/RelCalc.py .
> This gives rise to 2 challenges with translations:
> 1) Some (many?) languages cannot easily express the
> English terms for relationships (frequently
> exemplified by the term 'once removed').
> 2) Other languages may have terms for relationships
> that the current relationship calculator does not
> support. Bernd Schandl gave the example with the
> German gender-specific words for male & female cousins.
> Danish has a large number of special terms for family
> relationships, that the relationship calculator can
> currently not utilize. Example:
> A fathers brother is in English an uncle, whereas
> in Danish he would be called 'farbror' - a combination
> of the words 'far' & 'bror'. This more precise word is
> preferable to the generic 'onkel' - an uncle.
> Indeed, any one of the Danish words for 'father|mother'
> can be combined with any one of the Danish words for
> 'father|mother|brother|sister', to form a word for that
> particular relationship. A similar group of valid Danish
> relationship terms can be formed by combining any one of
> the Danish words for 'sister|brother|son|daughter' with
> any one of the Danish words for 'son|daughter' into pairs
> like the Danish 'datters=F8n'.
> Moreover, more distant relationships can be described
> by a sequences of such combination-words. Example:
> A fathers brothers daughters son is in Danish simply:
> 'Farbrors datters=F8n'.
> A fathers brothers daughters son can in English be
> called a first cousin once removed - but this is a
> less precise description than that possible in Danish.
> Another example: The Danish 'datters=F8n' is grandson in
> English. However, Danish does not have a word for grandson,
> instead we have the word 'oldes=F8n' which means great-grandson.
> And instead of the modifier 'great' we use 'tip' such that
> great-great-grandson in Danish becomes tip-oldes=F8n.
> This difference makes it necessary to use cumbersome
> constructions like '( %(level)d - 1)' in the Danish .po-file.
> I am sure that other languages have their own
> relationship terms that are not adequately covered
> by the English language.
> A third example: The RC can compute a relationship that results in:
> %(p1)s is the %(level)dth cousin %(removed)d times removed of %(p2)s.
> When translating to another language it may be difficult
> to construct a meaningful and naturally sounding sentence that
> maintains the order of the four variables.
> This has made me think about how the Relationship
> Calculator (RC) could be improved. Suppose the RC was modified to
> return some general representation of the relationship between
> two individuals. It could simply return a string consisting
> of characters from the set: [sdfm]. The string 'fmsds' could
> then be the internal representation of the relationship
> 'fathers mothers sons daughters son'.
> There could then some generic catch-all routine for translating
> the internal relationship representation into English.
> And the above 'fathers mothers sons daughters son' could
> in English be presented to the user as 'First cousin once removed'
> - just as it is now.
> Foreign languages could try to provide their own translation
> of that string - just as they have so far.
> What I find useful about this idea is that there in addition
> to this could be language-specific plugins that could provide
> their own (more precise) human language representation of
> the relationship strings.
> The RC could then look for these extra plugins and either
> use them or fall back on the generic less precise catch-all
> F.ex. when running 'in Danish' the RC could determine that there
> was a routine capable of providing a special Danish interpretation
> of 'fmsds' and call this routine which would then provide the user
> with the Danish string 'Farbrors datters=F8n' (or perhaps the simpler
> and less precise 'kusines s=F8n' - I would have to consult with
> (Much) later on, the internal representation could be extended
> to [fmsdhw] to allow for the calculation of relationships
> containing relationships through marriage ('w' being a wife
> and 'h' being a husband).
> With respect to relationship calculation something like this would
> in my mind put gramps way ahead of other genealogical software.
> Lars Lundin.
> Linux user & Danish Amateur Genealogist
> GEDCOMP: An extensive and free database for genealogists with
> interest in Denmark: http://www.lklundin.dk/gedcomp/
> Have big pipes? SourceForge.net is looking for download mirrors. We suppl=
> the hardware. You get the recognition. Email Us: bandwidth@...=
> Gramps-devel mailing list