webtrees icon indicating copy to clipboard operation
webtrees copied to clipboard

Translation logic for "foster-son/-daughter" is missing

Open LarsRabe opened this issue 1 year ago • 26 comments

See discussion in https://www.webtrees.net/index.php/en/forum/help-for-release-2-1-x/37899-upgrading-from-1-8-0-dev-to-latest-when-i-cannot-log-in

As the translation logic for step-son /-daughter for is working, this not the case for foster-son / -daughter. Translation for them ist just plain "son" or "daughter".

LarsRabe avatar Mar 20 '23 16:03 LarsRabe

The translation for adoptive-father, adoptive-mother etc is missing, too.

hartenthaler avatar Mar 20 '23 17:03 hartenthaler

This belongs to the sidebarbar "family navigator" and to the "Family" tab on the individual page.

hartenthaler avatar Mar 20 '23 17:03 hartenthaler

The translation for adoptive-father, adoptive-mother etc is missing, too.

There is a new system for relationship names which does not use translation.

So far, only a few languages are using it. For example, French and English.

You can see the code for French here: https://github.com/fisharebest/webtrees/blob/main/app/Module/LanguageFrench.php#L153-L275

Instead of translating relationships, we create definitions for each relationship name.

To use this system for other languages, it will require a some collaboration between a translator and a programmer.

fisharebest avatar Mar 20 '23 22:03 fisharebest

@fisharebest What ist the best way for doing this? Just make a copy of the english file with the new file structur, change it for the desired language, e.g. Dutch or German and make a PR?

BTW. Is this coming with 2.2 or with 2.1.17? You've allready changed/fixed so much, that a actual release seems to be necessary (at least for the 2.1- branch). And yes, we know you're lately heavily involved in some personal things.

LarsRabe avatar Mar 21 '23 06:03 LarsRabe

Okay, I started to add the primary logic for dutch. So far so good. I'm struggling with the logic for "younger brother/sister" etc for the ancestors. What am I missing there? see attached screenshots and txt-file Thanks for your help

english

dutch

LanguageDutch.txt

LarsRabe avatar Mar 21 '23 17:03 LarsRabe

younger brother = jongere broer older brother = oudere broer younger sister = jongere zus older sister = oudere zus

Is that what you were looking for? These are all in the LanguageDutch.txt file you posted (lines 150/151 and 153/154) and the nl/message.po. Why would it take the right one in English and something else in NL?

jerry1970 avatar Mar 21 '23 18:03 jerry1970

@jerry1970 Please read the statement from @fisharebest! The logic for the relationships are changing. That is why the logic for step-, foster-, adoptive etc in 2.1.16 is working no longer (as you yourself discovered). Please read also the responses in your own forum thread.

So I'm preparing a PR for the new logic in the Dutch language. The screenshots are using the new logic in the LanguageDutch.php on my site. I'm creating the logic step by step and test it there. And as you see, it's not working correctly for the ancestors at this moment.

The respective translations in nl/message.po will be abandoned. As far as I understood Greg correct, it will spare about 1.000 translations.

I do not yet fully understand the new logic in the relationship.php, so that is why I'm asking Greg for some guidance.

As you said, you're a php-programmer, so you might want to dive into this as well. ;)

LarsRabe avatar Mar 21 '23 19:03 LarsRabe

The real pain of the ass however will be to create the dynamic logic for this https://nl.m.wikipedia.org/wiki/Lijst_van_benamingen_voor_generaties and https://www.yory.nl/neven-en-nichten-noem-je-zo/

LarsRabe avatar Mar 21 '23 19:03 LarsRabe

Holy crap, I am Dutch but everything after the groot/over/bet is new to me!

jerry1970 avatar Mar 21 '23 19:03 jerry1970

@jerry1970 As you said, you're a php-programmer, so you might want to dive into this as well. ;)

Don't worry, I'll spend some time first to get to know the system! First some basic stuff, like what framework is being used, etc., then the structure of the code, to find my way around the project. Then a simple bug first... :)

jerry1970 avatar Mar 21 '23 19:03 jerry1970

Holy crap, I am Dutch but everything after the groot/over/bet is new to me!

Yep, that's what I thought as well, as I learned this a few years ago. :-) I'll probably will stick to the first 17 generations of ancestors at first. I don't think someone ever will have the need to use all of the 513 generation names.

LarsRabe avatar Mar 21 '23 19:03 LarsRabe

@LarsRabe very good that you started with Dutch! When you managed that I can join with German - since German is nearer to Dutch than English. Or you can do it, too ;-)

hartenthaler avatar Mar 21 '23 23:03 hartenthaler

@hartenthaler Well, allthough I speak German nowadays more then Dutch :-) the German grammar still has his mysteries. So probably doing it together will be the best way. I have allready been thinking auf how to handle the genitiv form in German.

Dutch doesn't use a real Genitiv, English only has one, French has two, but German has three. So F und M are simple, while coming from the GEDCOM. But what with e.g. "das Kind"?

LarsRabe avatar Mar 22 '23 06:03 LarsRabe

Yes, we can do it together. And we need @ric2016 ! He has done already similar things and there is maybe a conflict with the Vesta modules.

hartenthaler avatar Mar 22 '23 09:03 hartenthaler

I started to do this in Vesta, but it doesn't make sense to duplicate the logic now that webtrees has a solution for it as well. But I'll update existing languages in Vesta.

ric2016 avatar Mar 22 '23 09:03 ric2016

@fisharebest, @jerry1970 or @ric2016

Hey guys, I could use a litte help with php ;-)

As shown here https://nl.wikipedia.org/wiki/Lijst_van_benamingen_voor_generaties the generations above grandparent use a very specific naming schedule in Dutch. So the simpliest way is to hard coding them, but ... first question: does adding a aditionell ->parent() for every generation really work? second question: if the answer is yes, can there be a function created which adds a extra ->parent() in a simplier way?

I'm thinking of something like Relationship::fixed('x', '%s x') 5 times "->parent()" + ->mother(), Hoping that this is understandable. Thanks

// Great-Grandparents and above follow a specific naming definied all the way down to the 513th generation.

Relationship::fixed('overgrootmoeder', '%s van de overgrootmoeder')->parent()->parent()->mother(),
Relationship::fixed('overgrootvader', '%s van de overgrootvader')->parent()->parent()->father(),
Relationship::fixed('overgrootouder', '%s van de overgrootouder')->parent()->parent()->parent(),
Relationship::fixed('betovergrootmoeder', '%s van de betovergrootmoeder')->parent()->parent()->parent()->mother(),
Relationship::fixed('betovergrootvader', '%s van de betovergrootvader')->parent()->parent()->parent()->father(),
Relationship::fixed('betovergrootouder', '%s van de betovergrootouder')->parent()->parent()->parent()->parent(),
Relationship::fixed('oudmoeder', '%s van de oudmoeder')->parent()->parent()->parent()->parent()->mother(),
Relationship::fixed('oudvader', '%s van de oudvader')->parent()->parent()->parent()->parent()->father(),
Relationship::fixed('oudouder', '%s van de oudouder')->parent()->parent()->parent()->parent()->parent(),
Relationship::fixed('oudgrootmoeder', '%s van de oudgrootmoeder')->parent()->parent()->parent()->parent()->parent()->mother(),
Relationship::fixed('oudgrootvader', '%s van de oudgrootvader')->parent()->parent()->parent()->parent()->parent()->father(),
Relationship::fixed('oudgrootouder', '%s van de oudgrootouder')->parent()->parent()->parent()->parent()->parent()->parent(),

LarsRabe avatar Mar 22 '23 17:03 LarsRabe

the generations above grandparent use a very specific naming schedule in Dutch

Is this scheme actually in use?

In German, there are similar attempts which define specific terms that are neither intuitive nor useful in my opinion, and I don't think they are actually used. I recommend not to implement this: Users won't understand the terms anyway, without looking up the definition.

ric2016 avatar Mar 22 '23 17:03 ric2016

I agree with @ric2016 there. I have never seen that list and even if I had, it would not make sense to me. What is mostly used in Dutch, though apparently not super-official, is to repeat the "over" part. father = vader grandfather = grootvader great grandfather = overgrootvader great great grandfather = overovergrootvader, but also betovergrootvader (In Dutch there is no difference between paternal/maternal.)

Now that betovergrootvader is heard now and then, but for the next one, I have heard people say overbetovergrootvader and also betoverovergrootvader - both make no sense. So if you take one "over" for every generation above grand father I think most users would understand.

It doesn't look nice, though. In Dutch it is allowed to add a hyphen to make a word more readable. So over-overgrootvader is correct, and over-over-overgrootvader too. But I hope there is some rule to make it look nicer, like over(6x)-overgrootvader for the 9th generation or something.

(Now I am wondering about the Swedish translations. The logic is to say mother and father for every generation going up, so farfar is father's father, farmor is father's mother. After every second combination there is an s: farfarsfar for great grandfather.)

jerry1970 avatar Mar 22 '23 18:03 jerry1970

Well it's the official definition used by the "Nederlandse Genealogische Vereniging" and the "Centrum voor Familiegeschiedenis" and can be found also in the major dutch publications for genealogy. And at least the naming for the first 4 ancestor generations are quit common used.

So that is point of discussion if we use the official dutch scheme or the inofficial scheme as definied by the genealogists of The Church of Jesus Christ of Latter-day Saints (that is where the "multiple times great-" originates from)? If we go for the latter we would find us in the arbritary situation of how many "over-" or "ur-" we use before switching to "5 times great-".

LarsRabe avatar Mar 22 '23 18:03 LarsRabe

Edit: I've asked for a opinion on this by the dutch users of wt. https://www.webtrees.net/index.php/en/forum/2-open-discussion/37928-question-for-the-dutch-users

LarsRabe avatar Mar 22 '23 19:03 LarsRabe

For German I will not use those strange and not used academic definitions. For me it is

  • Vater
  • Großvater
  • Urgroßvater
  • Ururgroßvater
  • Urururgroßvater
  • 4xUrgroßvater
  • 5x...

hartenthaler avatar Mar 22 '23 21:03 hartenthaler

As a language enthusiast and as a software developer, I always try and find the balance between following the rules exactly and doing what seems best for the user. Sometimes you need the language, but those technical terms, although correct, are not helping any user in our case.

For me, @hartenthaler 's suggestion would work perfectly in Dutch as well and, most importantly, would be clear to most if not all users.

vader, grootvader, overgrootvader, overovergrootvader, 3xovergrootvader, 4xovergrootvader

Spelling-wise it would be better to add a few hyphens to make it clear: 3-x-overgrootvader. Yes, that would get my vote.

jerry1970 avatar Mar 22 '23 22:03 jerry1970

Norwegian is similar to the above. far farfar oldefar tippoldefar tipp-tippoldefar tipp-tipp-tippoldefar

Norwegian-Sardines avatar Mar 25 '23 15:03 Norwegian-Sardines

Just found this https://www.alexander-stolpmann.de/Genealogie%20-%20Benennungen%20in%20anderen%20Sprachen.html

LarsRabe avatar Mar 25 '23 16:03 LarsRabe

After a vivid discussion in the wt-forum, I've decided to go for the following scheme for now, because the the Dutch terms, from the 5th generation on, seems not to be common knowledge amongst the wider public.

-? x achterkleinkind
-3 achterkleinkind
-2 kleinkind
-1 kind
 0 PROBANDUS
 1 ouder
 2 grootouder
 3 overgrootouder
 4 betovergrootouder
 ? x overgrootouder

LarsRabe avatar Mar 26 '23 11:03 LarsRabe

@LarsRabe have you finished this activity already? Should or can I copy your code in order to use it for German?

hartenthaler avatar Jun 24 '23 00:06 hartenthaler