@treeviz/gedcom-parser 2.1.11 → 2.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/index.js +732 -396
- package/dist/classes/indi.d.ts +2 -2
- package/dist/classes/indi.d.ts.map +1 -1
- package/dist/cli/index.js +733 -397
- package/dist/constants/index.js +731 -395
- package/dist/factories/index.js +731 -395
- package/dist/factories/kinship-factory.d.ts +2 -2
- package/dist/factories/kinship-factory.d.ts.map +1 -1
- package/dist/index.js +733 -397
- package/dist/kinship-translator/index.js +731 -395
- package/dist/kinship-translator/kinship-translator.basic.d.ts +3 -1
- package/dist/kinship-translator/kinship-translator.basic.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.d.ts +3 -2
- package/dist/kinship-translator/kinship-translator.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.de.d.ts +2 -3
- package/dist/kinship-translator/kinship-translator.de.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.en.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.es.d.ts +2 -3
- package/dist/kinship-translator/kinship-translator.es.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.fr.d.ts +2 -3
- package/dist/kinship-translator/kinship-translator.fr.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.hu.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.ja.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.ru.d.ts +1 -1
- package/dist/kinship-translator/kinship-translator.ru.d.ts.map +1 -1
- package/dist/kinship-translator/kinship-translator.zh.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.de.d.ts +1 -0
- package/dist/kinship-translator/patterns.de.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.es.d.ts +1 -0
- package/dist/kinship-translator/patterns.es.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.fr.d.ts +1 -0
- package/dist/kinship-translator/patterns.fr.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.hu.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.ru.d.ts +1 -0
- package/dist/kinship-translator/patterns.ru.d.ts.map +1 -1
- package/dist/kinship-translator/patterns.zh.d.ts.map +1 -1
- package/dist/structures/gedcom.d.ts +1 -0
- package/dist/structures/gedcom.d.ts.map +1 -1
- package/dist/structures/individual.d.ts +1 -0
- package/dist/structures/individual.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/common-creator.d.ts.map +1 -1
- package/dist/utils/index.js +733 -397
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -4627,14 +4627,15 @@ var Indi = class extends Common {
|
|
|
4627
4627
|
}
|
|
4628
4628
|
return foundPath;
|
|
4629
4629
|
}
|
|
4630
|
-
kinship(other, showMainPerson, lang = "en", entirePath, displayName = "givenname") {
|
|
4630
|
+
kinship(other, showMainPerson, lang = "en", entirePath, displayName = "givenname", nameOrder) {
|
|
4631
4631
|
const KinshipTranslatorClass2 = getKinshipTranslatorClass();
|
|
4632
4632
|
const translator = new KinshipTranslatorClass2(
|
|
4633
4633
|
this,
|
|
4634
4634
|
other,
|
|
4635
4635
|
lang,
|
|
4636
4636
|
entirePath,
|
|
4637
|
-
showMainPerson ? displayName : void 0
|
|
4637
|
+
showMainPerson ? displayName : void 0,
|
|
4638
|
+
nameOrder
|
|
4638
4639
|
);
|
|
4639
4640
|
return translator.translate(!!showMainPerson);
|
|
4640
4641
|
}
|
|
@@ -5558,11 +5559,12 @@ var hungarianOrdinalize = (n) => {
|
|
|
5558
5559
|
|
|
5559
5560
|
// src/kinship-translator/kinship-translator.basic.ts
|
|
5560
5561
|
var KinshipTranslatorBasic = class {
|
|
5561
|
-
constructor(path, displayName = "givenname") {
|
|
5562
|
+
constructor(path, displayName = "givenname", nameOrder = "first-last") {
|
|
5562
5563
|
this.isOfSpouse = false;
|
|
5563
5564
|
this.isSpouseOf = false;
|
|
5564
5565
|
this._path = path;
|
|
5565
5566
|
this.displayName = displayName;
|
|
5567
|
+
this.nameOrder = nameOrder;
|
|
5566
5568
|
}
|
|
5567
5569
|
get path() {
|
|
5568
5570
|
return this._path;
|
|
@@ -5841,7 +5843,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
5841
5843
|
}
|
|
5842
5844
|
return `${hungarianOrdinalize(
|
|
5843
5845
|
degree
|
|
5844
|
-
)}unokatestv\xE9r ${level}x elt\xE1vol\xEDtva`;
|
|
5846
|
+
)}unokatestv\xE9r ${Math.abs(level)}x elt\xE1vol\xEDtva`;
|
|
5845
5847
|
}
|
|
5846
5848
|
auncle() {
|
|
5847
5849
|
const level = this.pathN?.level ?? 0;
|
|
@@ -5885,14 +5887,25 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
5885
5887
|
return `${ordinalized ? `${ordinalized}unoka` : ""}testv\xE9r ${origPrefix.replace(/nagy$/, "")}unok\xE1ja`;
|
|
5886
5888
|
}
|
|
5887
5889
|
parent() {
|
|
5890
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5891
|
+
if (level <= 1) {
|
|
5892
|
+
if (this.personN?.isMale()) {
|
|
5893
|
+
return "apa";
|
|
5894
|
+
}
|
|
5895
|
+
if (this.personN?.isFemale()) {
|
|
5896
|
+
return "anya";
|
|
5897
|
+
}
|
|
5898
|
+
return "sz\xFCl\u0151";
|
|
5899
|
+
}
|
|
5888
5900
|
const prefix = this.directPrefix();
|
|
5901
|
+
const gen = prefix === "nagy" ? "" : prefix;
|
|
5889
5902
|
if (this.personN?.isMale()) {
|
|
5890
|
-
return `${
|
|
5903
|
+
return `${gen}nagyapa`;
|
|
5891
5904
|
}
|
|
5892
5905
|
if (this.personN?.isFemale()) {
|
|
5893
|
-
return `${
|
|
5906
|
+
return `${gen}nagyanya`;
|
|
5894
5907
|
}
|
|
5895
|
-
return `${
|
|
5908
|
+
return `${gen}nagysz\xFCl\u0151`;
|
|
5896
5909
|
}
|
|
5897
5910
|
child() {
|
|
5898
5911
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
@@ -5974,7 +5987,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
5974
5987
|
}
|
|
5975
5988
|
of(relation) {
|
|
5976
5989
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
5977
|
-
nameOrder:
|
|
5990
|
+
nameOrder: this.nameOrder
|
|
5978
5991
|
});
|
|
5979
5992
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
5980
5993
|
if (this.displayName === "none") {
|
|
@@ -6086,27 +6099,30 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6086
6099
|
if (!degree) {
|
|
6087
6100
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6088
6101
|
}
|
|
6089
|
-
return `${ordinalize(degree)} cousin ${level}x removed`;
|
|
6102
|
+
return `${ordinalize(degree)} cousin ${Math.abs(level)}x removed`;
|
|
6090
6103
|
}
|
|
6091
6104
|
auncle() {
|
|
6092
|
-
const
|
|
6105
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6106
|
+
const greats = level <= 1 ? "" : "great-".repeat(level - 1);
|
|
6093
6107
|
if (this.personN?.isMale()) {
|
|
6094
|
-
return `${
|
|
6108
|
+
return `${greats}uncle`;
|
|
6095
6109
|
}
|
|
6096
6110
|
if (this.personN?.isFemale()) {
|
|
6097
|
-
return `${
|
|
6111
|
+
return `${greats}aunt`;
|
|
6098
6112
|
}
|
|
6099
|
-
return `${
|
|
6113
|
+
return greats ? `${greats}uncle/${greats}aunt` : "uncle/aunt";
|
|
6100
6114
|
}
|
|
6101
6115
|
nibling() {
|
|
6102
|
-
const
|
|
6116
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6117
|
+
const greats = level <= 2 ? "" : "great-".repeat(level - 2);
|
|
6118
|
+
const grand = level <= 1 ? "" : "grand";
|
|
6103
6119
|
if (this.personN?.isMale()) {
|
|
6104
|
-
return `${
|
|
6120
|
+
return `${greats}${grand}nephew`;
|
|
6105
6121
|
}
|
|
6106
6122
|
if (this.personN?.isFemale()) {
|
|
6107
|
-
return `${
|
|
6123
|
+
return `${greats}${grand}niece`;
|
|
6108
6124
|
}
|
|
6109
|
-
return `${
|
|
6125
|
+
return greats || grand ? `${greats}${grand}nephew/${greats}${grand}niece` : "nephew/niece";
|
|
6110
6126
|
}
|
|
6111
6127
|
parent() {
|
|
6112
6128
|
const prefix = this.directPrefix();
|
|
@@ -6185,7 +6201,7 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6185
6201
|
}
|
|
6186
6202
|
of(relation) {
|
|
6187
6203
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6188
|
-
nameOrder:
|
|
6204
|
+
nameOrder: this.nameOrder
|
|
6189
6205
|
});
|
|
6190
6206
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6191
6207
|
if (this.displayName === "none") {
|
|
@@ -6234,45 +6250,64 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6234
6250
|
};
|
|
6235
6251
|
|
|
6236
6252
|
// src/kinship-translator/patterns.de.ts
|
|
6253
|
+
var parentRelationsDe = {
|
|
6254
|
+
step: "Stief",
|
|
6255
|
+
foster: "Pflege",
|
|
6256
|
+
adopted: "Adoptiv"
|
|
6257
|
+
};
|
|
6237
6258
|
var InLawsDe = {
|
|
6238
|
-
"Ehepartner von (
|
|
6239
|
-
"Ehefrau von (
|
|
6240
|
-
"Ehemann von (
|
|
6241
|
-
"
|
|
6242
|
-
"
|
|
6243
|
-
"
|
|
6244
|
-
"Ehefrau von (Halb)
|
|
6245
|
-
"Ehemann von (Halb)
|
|
6246
|
-
"Ehepartner von (Halb)
|
|
6247
|
-
"(Halb)
|
|
6248
|
-
"(Halb)
|
|
6249
|
-
"(Halb)
|
|
6259
|
+
"Ehepartner von (Kind|Tochter|Sohn)": "Schwiegerkind",
|
|
6260
|
+
"Ehefrau von (Kind|Tochter|Sohn)": "Schwiegertochter",
|
|
6261
|
+
"Ehemann von (Kind|Tochter|Sohn)": "Schwiegersohn",
|
|
6262
|
+
"Mutter (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegermutter",
|
|
6263
|
+
"Vater (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegervater",
|
|
6264
|
+
"Elternteil (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegerelternteil",
|
|
6265
|
+
"Ehefrau von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schw\xE4gerin",
|
|
6266
|
+
"Ehemann von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager",
|
|
6267
|
+
"Ehepartner von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager/Schw\xE4gerin",
|
|
6268
|
+
"(Halb)?-?(Schwester|schwester) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schw\xE4gerin",
|
|
6269
|
+
"(Halb)?-?(Bruder|bruder) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager",
|
|
6270
|
+
"(Halb)?-?(Geschwister|geschwister) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager/Schw\xE4gerin"
|
|
6250
6271
|
};
|
|
6251
6272
|
|
|
6252
6273
|
// src/kinship-translator/kinship-translator.de.ts
|
|
6253
|
-
var
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
if (level === 2) {
|
|
6260
|
-
return "Gro\xDF";
|
|
6261
|
-
}
|
|
6262
|
-
if (level === 3) {
|
|
6263
|
-
return "Urgro\xDF";
|
|
6264
|
-
}
|
|
6265
|
-
return `Ur${level - 2}-gro\xDF`;
|
|
6274
|
+
var sexOf = (person) => {
|
|
6275
|
+
if (person?.isMale?.()) {
|
|
6276
|
+
return "m";
|
|
6277
|
+
}
|
|
6278
|
+
if (person?.isFemale?.()) {
|
|
6279
|
+
return "f";
|
|
6266
6280
|
}
|
|
6281
|
+
return "n";
|
|
6282
|
+
};
|
|
6283
|
+
var pick = (sex, male, female, neutral) => {
|
|
6284
|
+
if (sex === "m") {
|
|
6285
|
+
return male;
|
|
6286
|
+
}
|
|
6287
|
+
if (sex === "f") {
|
|
6288
|
+
return female;
|
|
6289
|
+
}
|
|
6290
|
+
return neutral;
|
|
6291
|
+
};
|
|
6292
|
+
var ur = (count) => count > 0 ? "Ur".repeat(count) : "";
|
|
6293
|
+
var genitiveArticle = (spouseType) => {
|
|
6294
|
+
if (spouseType === "Ehefrau") {
|
|
6295
|
+
return `der ${spouseType}`;
|
|
6296
|
+
}
|
|
6297
|
+
return `des ${spouseType}s`;
|
|
6298
|
+
};
|
|
6299
|
+
var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
6267
6300
|
indirect() {
|
|
6268
6301
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6269
6302
|
if (degree > 0) {
|
|
6270
6303
|
degree = degree - 1;
|
|
6271
6304
|
}
|
|
6272
|
-
|
|
6273
|
-
|
|
6305
|
+
const sex = sexOf(this.personN);
|
|
6306
|
+
const cousin = pick(sex, "Cousin", "Cousine", "Cousin/Cousine");
|
|
6307
|
+
if (degree <= 1) {
|
|
6308
|
+
return cousin;
|
|
6274
6309
|
}
|
|
6275
|
-
return
|
|
6310
|
+
return `${cousin} ${degree}. Grades`;
|
|
6276
6311
|
}
|
|
6277
6312
|
removal() {
|
|
6278
6313
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6283,106 +6318,106 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6283
6318
|
if (!degree) {
|
|
6284
6319
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6285
6320
|
}
|
|
6286
|
-
return
|
|
6321
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 entfernt`;
|
|
6287
6322
|
}
|
|
6288
6323
|
auncle() {
|
|
6289
|
-
const
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
if (this.personN?.isFemale()) {
|
|
6294
|
-
return `${prefix}tante`;
|
|
6324
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6325
|
+
const sex = sexOf(this.personN);
|
|
6326
|
+
if (level <= 1) {
|
|
6327
|
+
return pick(sex, "Onkel", "Tante", "Onkel/Tante");
|
|
6295
6328
|
}
|
|
6296
|
-
|
|
6329
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6330
|
+
return pick(
|
|
6331
|
+
sex,
|
|
6332
|
+
`${prefix}onkel`,
|
|
6333
|
+
`${prefix}tante`,
|
|
6334
|
+
`${prefix}onkel/tante`
|
|
6335
|
+
);
|
|
6297
6336
|
}
|
|
6298
6337
|
nibling() {
|
|
6299
|
-
const
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
if (this.personN?.isFemale()) {
|
|
6304
|
-
return `${prefix}nichte`;
|
|
6338
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6339
|
+
const sex = sexOf(this.personN);
|
|
6340
|
+
if (level <= 1) {
|
|
6341
|
+
return pick(sex, "Neffe", "Nichte", "Neffe/Nichte");
|
|
6305
6342
|
}
|
|
6306
|
-
|
|
6343
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6344
|
+
return pick(
|
|
6345
|
+
sex,
|
|
6346
|
+
`${prefix}neffe`,
|
|
6347
|
+
`${prefix}nichte`,
|
|
6348
|
+
`${prefix}neffe/nichte`
|
|
6349
|
+
);
|
|
6307
6350
|
}
|
|
6308
6351
|
parent() {
|
|
6309
|
-
const
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
if (this.personN?.isFemale()) {
|
|
6314
|
-
return `${prefix}mutter`;
|
|
6352
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6353
|
+
const sex = sexOf(this.personN);
|
|
6354
|
+
if (level <= 1) {
|
|
6355
|
+
return pick(sex, "Vater", "Mutter", "Elternteil");
|
|
6315
6356
|
}
|
|
6316
|
-
|
|
6357
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6358
|
+
return pick(
|
|
6359
|
+
sex,
|
|
6360
|
+
`${prefix}vater`,
|
|
6361
|
+
`${prefix}mutter`,
|
|
6362
|
+
`${prefix}elternteil`
|
|
6363
|
+
);
|
|
6317
6364
|
}
|
|
6318
6365
|
child() {
|
|
6319
|
-
const
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
if (this.personN?.isFemale()) {
|
|
6324
|
-
return `${prefix}tochter`;
|
|
6366
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6367
|
+
const sex = sexOf(this.personN);
|
|
6368
|
+
if (level <= 1) {
|
|
6369
|
+
return pick(sex, "Sohn", "Tochter", "Kind");
|
|
6325
6370
|
}
|
|
6326
|
-
|
|
6371
|
+
const prefix = ur(level - 2);
|
|
6372
|
+
return pick(
|
|
6373
|
+
sex,
|
|
6374
|
+
`${prefix}Enkel`,
|
|
6375
|
+
`${prefix}Enkelin`,
|
|
6376
|
+
`${prefix}Enkelkind`
|
|
6377
|
+
);
|
|
6327
6378
|
}
|
|
6328
6379
|
sibling() {
|
|
6329
|
-
|
|
6330
|
-
return "bruder";
|
|
6331
|
-
}
|
|
6332
|
-
if (this.personN?.isFemale()) {
|
|
6333
|
-
return "schwester";
|
|
6334
|
-
}
|
|
6335
|
-
return "geschwister";
|
|
6380
|
+
return pick(sexOf(this.personN), "Bruder", "Schwester", "Geschwister");
|
|
6336
6381
|
}
|
|
6337
6382
|
halfBlood(relation) {
|
|
6338
6383
|
if (!relation || !this.isHalfBlood) {
|
|
6339
6384
|
return relation ?? "";
|
|
6340
6385
|
}
|
|
6341
|
-
if (
|
|
6386
|
+
if (/[\s-]/.test(relation) || /^(Groß|Ur)/.test(relation)) {
|
|
6342
6387
|
return `Halb-${relation}`;
|
|
6343
6388
|
}
|
|
6344
|
-
return `Halb${relation}`;
|
|
6389
|
+
return `Halb${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6345
6390
|
}
|
|
6346
6391
|
spouse() {
|
|
6347
|
-
|
|
6348
|
-
return "Ehemann";
|
|
6349
|
-
}
|
|
6350
|
-
if (this.personN?.isFemale()) {
|
|
6351
|
-
return "Ehefrau";
|
|
6352
|
-
}
|
|
6353
|
-
return "Ehepartner";
|
|
6392
|
+
return pick(sexOf(this.personN), "Ehemann", "Ehefrau", "Ehepartner");
|
|
6354
6393
|
}
|
|
6355
6394
|
ofSpouse(relation) {
|
|
6356
6395
|
if (!relation) {
|
|
6357
6396
|
return "";
|
|
6358
6397
|
}
|
|
6359
|
-
const
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
}
|
|
6367
|
-
return `${relation} des ${spouseType}s`;
|
|
6398
|
+
const spouseType = pick(
|
|
6399
|
+
sexOf(this.path?.[1].indi),
|
|
6400
|
+
"Ehemann",
|
|
6401
|
+
"Ehefrau",
|
|
6402
|
+
"Ehepartner"
|
|
6403
|
+
);
|
|
6404
|
+
return `${relation} ${genitiveArticle(spouseType)}`;
|
|
6368
6405
|
}
|
|
6369
6406
|
spouseOf(relation) {
|
|
6370
6407
|
if (!relation) {
|
|
6371
6408
|
return "";
|
|
6372
6409
|
}
|
|
6373
|
-
const
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
spouseType = "Ehefrau";
|
|
6380
|
-
}
|
|
6410
|
+
const spouseType = pick(
|
|
6411
|
+
sexOf(this.path?.[this.path.length - 1].indi),
|
|
6412
|
+
"Ehemann",
|
|
6413
|
+
"Ehefrau",
|
|
6414
|
+
"Ehepartner"
|
|
6415
|
+
);
|
|
6381
6416
|
return `${spouseType} von ${relation}`;
|
|
6382
6417
|
}
|
|
6383
6418
|
of(relation) {
|
|
6384
6419
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6385
|
-
nameOrder:
|
|
6420
|
+
nameOrder: this.nameOrder
|
|
6386
6421
|
});
|
|
6387
6422
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6388
6423
|
if (this.displayName === "none") {
|
|
@@ -6395,8 +6430,8 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6395
6430
|
if (!name || !relation) {
|
|
6396
6431
|
return relation ?? "";
|
|
6397
6432
|
}
|
|
6398
|
-
if (relation.includes(" des ") || relation.includes(" von ")) {
|
|
6399
|
-
return relation.replace(/ (des|von) /, ` $1 ${name}s `);
|
|
6433
|
+
if (relation.includes(" des ") || relation.includes(" der ") || relation.includes(" von ")) {
|
|
6434
|
+
return relation.replace(/ (des|der|von) /, ` $1 ${name}s `);
|
|
6400
6435
|
}
|
|
6401
6436
|
return `${name}s ${relation}`;
|
|
6402
6437
|
}
|
|
@@ -6426,50 +6461,82 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6426
6461
|
if (!relation || !this.pathN?.relation) {
|
|
6427
6462
|
return relation ?? "";
|
|
6428
6463
|
}
|
|
6429
|
-
|
|
6464
|
+
const prefix = parentRelationsDe[this.pathN.relation];
|
|
6465
|
+
if (!prefix) {
|
|
6466
|
+
return relation;
|
|
6467
|
+
}
|
|
6468
|
+
if (prefix.endsWith("-") || prefix.endsWith(" ")) {
|
|
6469
|
+
return `${prefix}${relation}`;
|
|
6470
|
+
}
|
|
6471
|
+
return `${prefix}${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6430
6472
|
}
|
|
6431
6473
|
};
|
|
6432
6474
|
|
|
6433
6475
|
// src/kinship-translator/patterns.fr.ts
|
|
6476
|
+
var parentRelationsFr = {
|
|
6477
|
+
step: "step",
|
|
6478
|
+
foster: "foster",
|
|
6479
|
+
adopted: "adopted"
|
|
6480
|
+
};
|
|
6434
6481
|
var InLawsFr = {
|
|
6435
6482
|
"conjoint de (enfant|fille|fils)": "beau-fils/belle-fille",
|
|
6436
6483
|
"\xE9pouse de (enfant|fille|fils)": "belle-fille",
|
|
6437
6484
|
"mari de (enfant|fille|fils)": "gendre",
|
|
6438
|
-
"m\xE8re du
|
|
6439
|
-
"p\xE8re du
|
|
6440
|
-
"parent du
|
|
6485
|
+
"m\xE8re (du mari|du conjoint|de l'\xE9pouse)": "belle-m\xE8re",
|
|
6486
|
+
"p\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-p\xE8re",
|
|
6487
|
+
"parent (du mari|du conjoint|de l'\xE9pouse)": "beau-parent",
|
|
6441
6488
|
"\xE9pouse de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "belle-s\u0153ur",
|
|
6442
6489
|
"mari de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re",
|
|
6443
6490
|
"conjoint de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re/belle-s\u0153ur",
|
|
6444
|
-
"(demi-)?s\u0153ur du
|
|
6445
|
-
"(demi-)?fr\xE8re du
|
|
6446
|
-
"(demi-)?fr\xE8re/s\u0153ur du
|
|
6491
|
+
"(demi-)?s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "belle-s\u0153ur",
|
|
6492
|
+
"(demi-)?fr\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re",
|
|
6493
|
+
"(demi-)?fr\xE8re/s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re/belle-s\u0153ur"
|
|
6447
6494
|
};
|
|
6448
6495
|
|
|
6449
6496
|
// src/kinship-translator/kinship-translator.fr.ts
|
|
6450
|
-
var
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
if (level === 2) {
|
|
6457
|
-
return "grand-";
|
|
6458
|
-
}
|
|
6459
|
-
if (level === 3) {
|
|
6460
|
-
return "arri\xE8re-grand-";
|
|
6461
|
-
}
|
|
6462
|
-
return `arri\xE8re${level - 2}-grand-`;
|
|
6497
|
+
var sexOf2 = (person) => {
|
|
6498
|
+
if (person?.isMale?.()) {
|
|
6499
|
+
return "m";
|
|
6500
|
+
}
|
|
6501
|
+
if (person?.isFemale?.()) {
|
|
6502
|
+
return "f";
|
|
6463
6503
|
}
|
|
6504
|
+
return "n";
|
|
6505
|
+
};
|
|
6506
|
+
var pick2 = (sex, male, female, neutral) => {
|
|
6507
|
+
if (sex === "m") {
|
|
6508
|
+
return male;
|
|
6509
|
+
}
|
|
6510
|
+
if (sex === "f") {
|
|
6511
|
+
return female;
|
|
6512
|
+
}
|
|
6513
|
+
return neutral;
|
|
6514
|
+
};
|
|
6515
|
+
var arriere = (count) => count > 0 ? "arri\xE8re-".repeat(count) : "";
|
|
6516
|
+
var frenchOrdinal = (n) => n === 1 ? "1er" : `${n}e`;
|
|
6517
|
+
var isFeminineRelation = (relation) => /mère|fille|sœur|tante|nièce|cousine|épouse/.test(relation);
|
|
6518
|
+
var ofSpousePrep = (spouseType) => {
|
|
6519
|
+
if (spouseType === "\xE9pouse") {
|
|
6520
|
+
return "de l'";
|
|
6521
|
+
}
|
|
6522
|
+
return "du ";
|
|
6523
|
+
};
|
|
6524
|
+
var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
6464
6525
|
indirect() {
|
|
6465
6526
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6466
6527
|
if (degree > 0) {
|
|
6467
6528
|
degree = degree - 1;
|
|
6468
6529
|
}
|
|
6469
|
-
|
|
6470
|
-
|
|
6530
|
+
const cousin = pick2(
|
|
6531
|
+
sexOf2(this.personN),
|
|
6532
|
+
"cousin",
|
|
6533
|
+
"cousine",
|
|
6534
|
+
"cousin/cousine"
|
|
6535
|
+
);
|
|
6536
|
+
if (degree <= 1) {
|
|
6537
|
+
return cousin;
|
|
6471
6538
|
}
|
|
6472
|
-
return
|
|
6539
|
+
return `${cousin} au ${frenchOrdinal(degree)} degr\xE9`;
|
|
6473
6540
|
}
|
|
6474
6541
|
removal() {
|
|
6475
6542
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6480,56 +6547,57 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6480
6547
|
if (!degree) {
|
|
6481
6548
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6482
6549
|
}
|
|
6483
|
-
return
|
|
6550
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 \xE9loign\xE9`;
|
|
6484
6551
|
}
|
|
6485
6552
|
auncle() {
|
|
6486
|
-
const
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
return `${prefix}tante`;
|
|
6553
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6554
|
+
const sex = sexOf2(this.personN);
|
|
6555
|
+
const base = pick2(sex, "oncle", "tante", "oncle/tante");
|
|
6556
|
+
if (level <= 1) {
|
|
6557
|
+
return base;
|
|
6492
6558
|
}
|
|
6493
|
-
|
|
6559
|
+
const grands = pick2(
|
|
6560
|
+
sex,
|
|
6561
|
+
"grand-oncle",
|
|
6562
|
+
"grand-tante",
|
|
6563
|
+
"grand-oncle/tante"
|
|
6564
|
+
);
|
|
6565
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6494
6566
|
}
|
|
6495
6567
|
nibling() {
|
|
6496
|
-
const
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
if (this.personN?.isFemale()) {
|
|
6501
|
-
return `${prefix}ni\xE8ce`;
|
|
6568
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6569
|
+
const sex = sexOf2(this.personN);
|
|
6570
|
+
if (level <= 1) {
|
|
6571
|
+
return pick2(sex, "neveu", "ni\xE8ce", "neveu/ni\xE8ce");
|
|
6502
6572
|
}
|
|
6503
|
-
|
|
6573
|
+
const grands = pick2(
|
|
6574
|
+
sex,
|
|
6575
|
+
"grand-neveu",
|
|
6576
|
+
"grande-ni\xE8ce",
|
|
6577
|
+
"grand-neveu/grande-ni\xE8ce"
|
|
6578
|
+
);
|
|
6579
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6504
6580
|
}
|
|
6505
6581
|
parent() {
|
|
6506
|
-
const
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
if (this.personN?.isFemale()) {
|
|
6511
|
-
return `${prefix}m\xE8re`;
|
|
6582
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6583
|
+
const sex = sexOf2(this.personN);
|
|
6584
|
+
if (level <= 1) {
|
|
6585
|
+
return pick2(sex, "p\xE8re", "m\xE8re", "parent");
|
|
6512
6586
|
}
|
|
6513
|
-
|
|
6587
|
+
const grands = pick2(sex, "grand-p\xE8re", "grand-m\xE8re", "grand-parent");
|
|
6588
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6514
6589
|
}
|
|
6515
6590
|
child() {
|
|
6516
|
-
const
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6520
|
-
if (this.personN?.isFemale()) {
|
|
6521
|
-
return `${prefix}fille`;
|
|
6591
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6592
|
+
const sex = sexOf2(this.personN);
|
|
6593
|
+
if (level <= 1) {
|
|
6594
|
+
return pick2(sex, "fils", "fille", "enfant");
|
|
6522
6595
|
}
|
|
6523
|
-
|
|
6596
|
+
const petits = pick2(sex, "petit-fils", "petite-fille", "petit-enfant");
|
|
6597
|
+
return `${arriere(level - 2)}${petits}`;
|
|
6524
6598
|
}
|
|
6525
6599
|
sibling() {
|
|
6526
|
-
|
|
6527
|
-
return "fr\xE8re";
|
|
6528
|
-
}
|
|
6529
|
-
if (this.personN?.isFemale()) {
|
|
6530
|
-
return "s\u0153ur";
|
|
6531
|
-
}
|
|
6532
|
-
return "fr\xE8re/s\u0153ur";
|
|
6600
|
+
return pick2(sexOf2(this.personN), "fr\xE8re", "s\u0153ur", "fr\xE8re/s\u0153ur");
|
|
6533
6601
|
}
|
|
6534
6602
|
halfBlood(relation) {
|
|
6535
6603
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -6538,45 +6606,35 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6538
6606
|
return `demi-${relation}`;
|
|
6539
6607
|
}
|
|
6540
6608
|
spouse() {
|
|
6541
|
-
|
|
6542
|
-
return "mari";
|
|
6543
|
-
}
|
|
6544
|
-
if (this.personN?.isFemale()) {
|
|
6545
|
-
return "\xE9pouse";
|
|
6546
|
-
}
|
|
6547
|
-
return "conjoint";
|
|
6609
|
+
return pick2(sexOf2(this.personN), "mari", "\xE9pouse", "conjoint");
|
|
6548
6610
|
}
|
|
6549
6611
|
ofSpouse(relation) {
|
|
6550
6612
|
if (!relation) {
|
|
6551
6613
|
return "";
|
|
6552
6614
|
}
|
|
6553
|
-
const
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
|
|
6559
|
-
|
|
6560
|
-
}
|
|
6561
|
-
return `${relation} du ${spouseType}`;
|
|
6615
|
+
const spouseType = pick2(
|
|
6616
|
+
sexOf2(this.path?.[1].indi),
|
|
6617
|
+
"mari",
|
|
6618
|
+
"\xE9pouse",
|
|
6619
|
+
"conjoint"
|
|
6620
|
+
);
|
|
6621
|
+
return `${relation} ${ofSpousePrep(spouseType)}${spouseType}`;
|
|
6562
6622
|
}
|
|
6563
6623
|
spouseOf(relation) {
|
|
6564
6624
|
if (!relation) {
|
|
6565
6625
|
return "";
|
|
6566
6626
|
}
|
|
6567
|
-
const
|
|
6568
|
-
|
|
6569
|
-
|
|
6570
|
-
|
|
6571
|
-
|
|
6572
|
-
|
|
6573
|
-
spouseType = "\xE9pouse";
|
|
6574
|
-
}
|
|
6627
|
+
const spouseType = pick2(
|
|
6628
|
+
sexOf2(this.path?.[this.path.length - 1].indi),
|
|
6629
|
+
"mari",
|
|
6630
|
+
"\xE9pouse",
|
|
6631
|
+
"conjoint"
|
|
6632
|
+
);
|
|
6575
6633
|
return `${spouseType} de ${relation}`;
|
|
6576
6634
|
}
|
|
6577
6635
|
of(relation) {
|
|
6578
6636
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6579
|
-
nameOrder:
|
|
6637
|
+
nameOrder: this.nameOrder
|
|
6580
6638
|
});
|
|
6581
6639
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6582
6640
|
if (this.displayName === "none") {
|
|
@@ -6592,6 +6650,9 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6592
6650
|
if (relation.includes(" du ") || relation.includes(" de ")) {
|
|
6593
6651
|
return relation.replace(/ (du|de) /, ` $1 ${name} `);
|
|
6594
6652
|
}
|
|
6653
|
+
if (relation.includes(" de l'")) {
|
|
6654
|
+
return relation.replace(" de l'", ` de ${name} l'`);
|
|
6655
|
+
}
|
|
6595
6656
|
return `${relation} de ${name}`;
|
|
6596
6657
|
}
|
|
6597
6658
|
inLaw(relation) {
|
|
@@ -6620,50 +6681,118 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6620
6681
|
if (!relation || !this.pathN?.relation) {
|
|
6621
6682
|
return relation ?? "";
|
|
6622
6683
|
}
|
|
6623
|
-
|
|
6684
|
+
const kind = parentRelationsFr[this.pathN.relation];
|
|
6685
|
+
if (!kind) {
|
|
6686
|
+
return relation;
|
|
6687
|
+
}
|
|
6688
|
+
if (kind === "step") {
|
|
6689
|
+
return `${isFeminineRelation(relation) ? "belle-" : "beau-"}${relation}`;
|
|
6690
|
+
}
|
|
6691
|
+
if (kind === "adopted") {
|
|
6692
|
+
return `${relation} ${isFeminineRelation(relation) ? "adoptive" : "adoptif"}`;
|
|
6693
|
+
}
|
|
6694
|
+
if (kind === "foster") {
|
|
6695
|
+
return `${relation} d'accueil`;
|
|
6696
|
+
}
|
|
6697
|
+
return relation;
|
|
6624
6698
|
}
|
|
6625
6699
|
};
|
|
6626
6700
|
|
|
6627
6701
|
// src/kinship-translator/patterns.es.ts
|
|
6702
|
+
var parentRelationsEs = {
|
|
6703
|
+
step: {
|
|
6704
|
+
padre: "padrastro",
|
|
6705
|
+
madre: "madrastra",
|
|
6706
|
+
hijo: "hijastro",
|
|
6707
|
+
hija: "hijastra",
|
|
6708
|
+
hermano: "hermanastro",
|
|
6709
|
+
hermana: "hermanastra",
|
|
6710
|
+
abuelo: "abuelastro",
|
|
6711
|
+
abuela: "abuelastra"
|
|
6712
|
+
}
|
|
6713
|
+
};
|
|
6628
6714
|
var InLawsEs = {
|
|
6629
6715
|
"c\xF3nyuge de (hijo/hija|hija|hijo)": "yerno/nuera",
|
|
6630
6716
|
"esposa de (hijo/hija|hija|hijo)": "nuera",
|
|
6631
6717
|
"esposo de (hijo/hija|hija|hijo)": "yerno",
|
|
6632
|
-
"madre del
|
|
6633
|
-
"padre del
|
|
6634
|
-
"padre/madre del
|
|
6718
|
+
"madre (del c\xF3nyuge|del esposo|de la esposa)": "suegra",
|
|
6719
|
+
"padre (del c\xF3nyuge|del esposo|de la esposa)": "suegro",
|
|
6720
|
+
"padre/madre (del c\xF3nyuge|del esposo|de la esposa)": "suegro/suegra",
|
|
6635
6721
|
"esposa de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ada",
|
|
6636
6722
|
"esposo de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado",
|
|
6637
6723
|
"c\xF3nyuge de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado/cu\xF1ada",
|
|
6638
|
-
"(medio |media |medio/a )?hermana del
|
|
6639
|
-
"(medio |media |medio/a )?hermano del
|
|
6640
|
-
"(medio |media |medio/a )?hermano/hermana del
|
|
6724
|
+
"(medio |media |medio/a )?hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ada",
|
|
6725
|
+
"(medio |media |medio/a )?hermano (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado",
|
|
6726
|
+
"(medio |media |medio/a )?hermano/hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado/cu\xF1ada"
|
|
6641
6727
|
};
|
|
6642
6728
|
|
|
6643
6729
|
// src/kinship-translator/kinship-translator.es.ts
|
|
6644
|
-
var
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
if (level <= 1) {
|
|
6648
|
-
return "";
|
|
6649
|
-
}
|
|
6650
|
-
if (level === 2) {
|
|
6651
|
-
return "bisabuel";
|
|
6652
|
-
}
|
|
6653
|
-
if (level === 3) {
|
|
6654
|
-
return "tatarabuel";
|
|
6655
|
-
}
|
|
6656
|
-
return `t\xE1tara${level - 2}-abuel`;
|
|
6730
|
+
var sexOf3 = (person) => {
|
|
6731
|
+
if (person?.isMale?.()) {
|
|
6732
|
+
return "m";
|
|
6657
6733
|
}
|
|
6734
|
+
if (person?.isFemale?.()) {
|
|
6735
|
+
return "f";
|
|
6736
|
+
}
|
|
6737
|
+
return "n";
|
|
6738
|
+
};
|
|
6739
|
+
var pick3 = (sex, male, female, neutral) => {
|
|
6740
|
+
if (sex === "m") {
|
|
6741
|
+
return male;
|
|
6742
|
+
}
|
|
6743
|
+
if (sex === "f") {
|
|
6744
|
+
return female;
|
|
6745
|
+
}
|
|
6746
|
+
return neutral;
|
|
6747
|
+
};
|
|
6748
|
+
var SPANISH_ORDINALS_M = [
|
|
6749
|
+
"",
|
|
6750
|
+
"",
|
|
6751
|
+
"segundo",
|
|
6752
|
+
"tercero",
|
|
6753
|
+
"cuarto",
|
|
6754
|
+
"quinto",
|
|
6755
|
+
"sexto",
|
|
6756
|
+
"s\xE9ptimo",
|
|
6757
|
+
"octavo",
|
|
6758
|
+
"noveno",
|
|
6759
|
+
"d\xE9cimo"
|
|
6760
|
+
];
|
|
6761
|
+
var SPANISH_ORDINALS_F = [
|
|
6762
|
+
"",
|
|
6763
|
+
"",
|
|
6764
|
+
"segunda",
|
|
6765
|
+
"tercera",
|
|
6766
|
+
"cuarta",
|
|
6767
|
+
"quinta",
|
|
6768
|
+
"sexta",
|
|
6769
|
+
"s\xE9ptima",
|
|
6770
|
+
"octava",
|
|
6771
|
+
"novena",
|
|
6772
|
+
"d\xE9cima"
|
|
6773
|
+
];
|
|
6774
|
+
var spanishOrdinal = (n, sex) => {
|
|
6775
|
+
const list = sex === "f" ? SPANISH_ORDINALS_F : SPANISH_ORDINALS_M;
|
|
6776
|
+
return list[n] ?? `${n}.\xBA`;
|
|
6777
|
+
};
|
|
6778
|
+
var ofSpousePrep2 = (spouseType) => {
|
|
6779
|
+
if (spouseType === "esposa") {
|
|
6780
|
+
return "de la ";
|
|
6781
|
+
}
|
|
6782
|
+
return "del ";
|
|
6783
|
+
};
|
|
6784
|
+
var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
6658
6785
|
indirect() {
|
|
6659
6786
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6660
6787
|
if (degree > 0) {
|
|
6661
6788
|
degree = degree - 1;
|
|
6662
6789
|
}
|
|
6663
|
-
|
|
6664
|
-
|
|
6790
|
+
const sex = sexOf3(this.personN);
|
|
6791
|
+
const cousin = pick3(sex, "primo", "prima", "primo/prima");
|
|
6792
|
+
if (degree <= 1) {
|
|
6793
|
+
return cousin;
|
|
6665
6794
|
}
|
|
6666
|
-
return
|
|
6795
|
+
return `${cousin} ${spanishOrdinal(degree, sex)}`;
|
|
6667
6796
|
}
|
|
6668
6797
|
removal() {
|
|
6669
6798
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6674,56 +6803,133 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6674
6803
|
if (!degree) {
|
|
6675
6804
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6676
6805
|
}
|
|
6677
|
-
return
|
|
6806
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 separado`;
|
|
6678
6807
|
}
|
|
6679
6808
|
auncle() {
|
|
6680
|
-
const
|
|
6681
|
-
|
|
6682
|
-
|
|
6809
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6810
|
+
const sex = sexOf3(this.personN);
|
|
6811
|
+
if (level <= 1) {
|
|
6812
|
+
return pick3(sex, "t\xEDo", "t\xEDa", "t\xEDo/t\xEDa");
|
|
6683
6813
|
}
|
|
6684
|
-
if (
|
|
6685
|
-
return
|
|
6814
|
+
if (level === 2) {
|
|
6815
|
+
return pick3(sex, "t\xEDo abuelo", "t\xEDa abuela", "t\xEDo/t\xEDa abuelo");
|
|
6816
|
+
}
|
|
6817
|
+
if (level === 3) {
|
|
6818
|
+
return pick3(
|
|
6819
|
+
sex,
|
|
6820
|
+
"t\xEDo bisabuelo",
|
|
6821
|
+
"t\xEDa bisabuela",
|
|
6822
|
+
"t\xEDo/t\xEDa bisabuelo"
|
|
6823
|
+
);
|
|
6686
6824
|
}
|
|
6687
|
-
return
|
|
6825
|
+
return pick3(
|
|
6826
|
+
sex,
|
|
6827
|
+
`t\xEDo abuelo (${level - 1}.\xBA)`,
|
|
6828
|
+
`t\xEDa abuela (${level - 1}.\xAA)`,
|
|
6829
|
+
`t\xEDo/t\xEDa abuelo (${level - 1}.\xBA)`
|
|
6830
|
+
);
|
|
6688
6831
|
}
|
|
6689
6832
|
nibling() {
|
|
6690
|
-
const
|
|
6691
|
-
|
|
6692
|
-
|
|
6833
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6834
|
+
const sex = sexOf3(this.personN);
|
|
6835
|
+
if (level <= 1) {
|
|
6836
|
+
return pick3(sex, "sobrino", "sobrina", "sobrino/sobrina");
|
|
6693
6837
|
}
|
|
6694
|
-
if (
|
|
6695
|
-
return
|
|
6838
|
+
if (level === 2) {
|
|
6839
|
+
return pick3(
|
|
6840
|
+
sex,
|
|
6841
|
+
"sobrino nieto",
|
|
6842
|
+
"sobrina nieta",
|
|
6843
|
+
"sobrino/sobrina nieto"
|
|
6844
|
+
);
|
|
6845
|
+
}
|
|
6846
|
+
if (level === 3) {
|
|
6847
|
+
return pick3(
|
|
6848
|
+
sex,
|
|
6849
|
+
"sobrino bisnieto",
|
|
6850
|
+
"sobrina bisnieta",
|
|
6851
|
+
"sobrino/sobrina bisnieto"
|
|
6852
|
+
);
|
|
6696
6853
|
}
|
|
6697
|
-
return
|
|
6854
|
+
return pick3(
|
|
6855
|
+
sex,
|
|
6856
|
+
`sobrino nieto (${level - 1}.\xBA)`,
|
|
6857
|
+
`sobrina nieta (${level - 1}.\xAA)`,
|
|
6858
|
+
`sobrino/sobrina nieto (${level - 1}.\xBA)`
|
|
6859
|
+
);
|
|
6698
6860
|
}
|
|
6699
6861
|
parent() {
|
|
6700
|
-
const
|
|
6701
|
-
|
|
6702
|
-
|
|
6862
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6863
|
+
const sex = sexOf3(this.personN);
|
|
6864
|
+
if (level <= 1) {
|
|
6865
|
+
return pick3(sex, "padre", "madre", "padre/madre");
|
|
6703
6866
|
}
|
|
6704
|
-
if (
|
|
6705
|
-
return
|
|
6867
|
+
if (level === 2) {
|
|
6868
|
+
return pick3(sex, "abuelo", "abuela", "abuelo/abuela");
|
|
6869
|
+
}
|
|
6870
|
+
if (level === 3) {
|
|
6871
|
+
return pick3(sex, "bisabuelo", "bisabuela", "bisabuelo/bisabuela");
|
|
6872
|
+
}
|
|
6873
|
+
if (level === 4) {
|
|
6874
|
+
return pick3(
|
|
6875
|
+
sex,
|
|
6876
|
+
"tatarabuelo",
|
|
6877
|
+
"tatarabuela",
|
|
6878
|
+
"tatarabuelo/tatarabuela"
|
|
6879
|
+
);
|
|
6880
|
+
}
|
|
6881
|
+
if (level === 5) {
|
|
6882
|
+
return pick3(
|
|
6883
|
+
sex,
|
|
6884
|
+
"trastatarabuelo",
|
|
6885
|
+
"trastatarabuela",
|
|
6886
|
+
"trastatarabuelo/trastatarabuela"
|
|
6887
|
+
);
|
|
6706
6888
|
}
|
|
6707
|
-
return
|
|
6889
|
+
return pick3(
|
|
6890
|
+
sex,
|
|
6891
|
+
`abuelo (${level}.\xBA)`,
|
|
6892
|
+
`abuela (${level}.\xAA)`,
|
|
6893
|
+
`abuelo/abuela (${level}.\xBA)`
|
|
6894
|
+
);
|
|
6708
6895
|
}
|
|
6709
6896
|
child() {
|
|
6710
|
-
const
|
|
6711
|
-
|
|
6712
|
-
|
|
6897
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6898
|
+
const sex = sexOf3(this.personN);
|
|
6899
|
+
if (level <= 1) {
|
|
6900
|
+
return pick3(sex, "hijo", "hija", "hijo/hija");
|
|
6713
6901
|
}
|
|
6714
|
-
if (
|
|
6715
|
-
return
|
|
6902
|
+
if (level === 2) {
|
|
6903
|
+
return pick3(sex, "nieto", "nieta", "nieto/nieta");
|
|
6716
6904
|
}
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
sibling() {
|
|
6720
|
-
if (this.personN?.isMale()) {
|
|
6721
|
-
return "hermano";
|
|
6905
|
+
if (level === 3) {
|
|
6906
|
+
return pick3(sex, "bisnieto", "bisnieta", "bisnieto/bisnieta");
|
|
6722
6907
|
}
|
|
6723
|
-
if (
|
|
6724
|
-
return
|
|
6908
|
+
if (level === 4) {
|
|
6909
|
+
return pick3(
|
|
6910
|
+
sex,
|
|
6911
|
+
"tataranieto",
|
|
6912
|
+
"tataranieta",
|
|
6913
|
+
"tataranieto/tataranieta"
|
|
6914
|
+
);
|
|
6915
|
+
}
|
|
6916
|
+
if (level === 5) {
|
|
6917
|
+
return pick3(
|
|
6918
|
+
sex,
|
|
6919
|
+
"trastataranieto",
|
|
6920
|
+
"trastataranieta",
|
|
6921
|
+
"trastataranieto/trastataranieta"
|
|
6922
|
+
);
|
|
6725
6923
|
}
|
|
6726
|
-
return
|
|
6924
|
+
return pick3(
|
|
6925
|
+
sex,
|
|
6926
|
+
`nieto (${level}.\xBA)`,
|
|
6927
|
+
`nieta (${level}.\xAA)`,
|
|
6928
|
+
`nieto/nieta (${level}.\xBA)`
|
|
6929
|
+
);
|
|
6930
|
+
}
|
|
6931
|
+
sibling() {
|
|
6932
|
+
return pick3(sexOf3(this.personN), "hermano", "hermana", "hermano/hermana");
|
|
6727
6933
|
}
|
|
6728
6934
|
halfBlood(relation) {
|
|
6729
6935
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -6738,45 +6944,35 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6738
6944
|
return `medio/a ${relation}`;
|
|
6739
6945
|
}
|
|
6740
6946
|
spouse() {
|
|
6741
|
-
|
|
6742
|
-
return "esposo";
|
|
6743
|
-
}
|
|
6744
|
-
if (this.personN?.isFemale()) {
|
|
6745
|
-
return "esposa";
|
|
6746
|
-
}
|
|
6747
|
-
return "c\xF3nyuge";
|
|
6947
|
+
return pick3(sexOf3(this.personN), "esposo", "esposa", "c\xF3nyuge");
|
|
6748
6948
|
}
|
|
6749
6949
|
ofSpouse(relation) {
|
|
6750
6950
|
if (!relation) {
|
|
6751
6951
|
return "";
|
|
6752
6952
|
}
|
|
6753
|
-
const
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
|
|
6758
|
-
|
|
6759
|
-
|
|
6760
|
-
}
|
|
6761
|
-
return `${relation} del ${spouseType}`;
|
|
6953
|
+
const spouseType = pick3(
|
|
6954
|
+
sexOf3(this.path?.[1].indi),
|
|
6955
|
+
"esposo",
|
|
6956
|
+
"esposa",
|
|
6957
|
+
"c\xF3nyuge"
|
|
6958
|
+
);
|
|
6959
|
+
return `${relation} ${ofSpousePrep2(spouseType)}${spouseType}`;
|
|
6762
6960
|
}
|
|
6763
6961
|
spouseOf(relation) {
|
|
6764
6962
|
if (!relation) {
|
|
6765
6963
|
return "";
|
|
6766
6964
|
}
|
|
6767
|
-
const
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
|
|
6772
|
-
|
|
6773
|
-
spouseType = "esposa";
|
|
6774
|
-
}
|
|
6965
|
+
const spouseType = pick3(
|
|
6966
|
+
sexOf3(this.path?.[this.path.length - 1].indi),
|
|
6967
|
+
"esposo",
|
|
6968
|
+
"esposa",
|
|
6969
|
+
"c\xF3nyuge"
|
|
6970
|
+
);
|
|
6775
6971
|
return `${spouseType} de ${relation}`;
|
|
6776
6972
|
}
|
|
6777
6973
|
of(relation) {
|
|
6778
6974
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6779
|
-
nameOrder:
|
|
6975
|
+
nameOrder: this.nameOrder
|
|
6780
6976
|
});
|
|
6781
6977
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6782
6978
|
if (this.displayName === "none") {
|
|
@@ -6789,8 +6985,8 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6789
6985
|
if (!name || !relation) {
|
|
6790
6986
|
return relation ?? "";
|
|
6791
6987
|
}
|
|
6792
|
-
if (relation.includes(" del ") || relation.includes(" de ")) {
|
|
6793
|
-
return relation.replace(/ (del|de) /, ` $1 ${name} `);
|
|
6988
|
+
if (relation.includes(" del ") || relation.includes(" de la ") || relation.includes(" de ")) {
|
|
6989
|
+
return relation.replace(/ (del|de la|de) /, ` $1 ${name} `);
|
|
6794
6990
|
}
|
|
6795
6991
|
return `${relation} de ${name}`;
|
|
6796
6992
|
}
|
|
@@ -6820,7 +7016,20 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6820
7016
|
if (!relation || !this.pathN?.relation) {
|
|
6821
7017
|
return relation ?? "";
|
|
6822
7018
|
}
|
|
6823
|
-
|
|
7019
|
+
const mapped = parentRelationsEs[this.pathN.relation]?.[relation];
|
|
7020
|
+
if (mapped) {
|
|
7021
|
+
return mapped;
|
|
7022
|
+
}
|
|
7023
|
+
if (this.pathN.relation === "step") {
|
|
7024
|
+
return `${relation} pol\xEDtico`;
|
|
7025
|
+
}
|
|
7026
|
+
if (this.pathN.relation === "adopted") {
|
|
7027
|
+
return `${relation} adoptivo`;
|
|
7028
|
+
}
|
|
7029
|
+
if (this.pathN.relation === "foster") {
|
|
7030
|
+
return `${relation} de acogida`;
|
|
7031
|
+
}
|
|
7032
|
+
return relation;
|
|
6824
7033
|
}
|
|
6825
7034
|
};
|
|
6826
7035
|
|
|
@@ -6829,15 +7038,35 @@ var InLawsRu = {
|
|
|
6829
7038
|
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
6830
7039
|
"\u0436\u0435\u043D\u0430 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
6831
7040
|
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
6832
|
-
"\u043C\u0430\u0442\u044C
|
|
6833
|
-
"\
|
|
6834
|
-
"\
|
|
7041
|
+
"\u043C\u0430\u0442\u044C \u0436\u0435\u043D\u044B": "\u0442\u0451\u0449\u0430",
|
|
7042
|
+
"\u043C\u0430\u0442\u044C \u043C\u0443\u0436\u0430": "\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7043
|
+
"\u043C\u0430\u0442\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0451\u0449\u0430/\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7044
|
+
"\u043E\u0442\u0435\u0446 \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C",
|
|
7045
|
+
"\u043E\u0442\u0435\u0446 \u043C\u0443\u0436\u0430": "\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7046
|
+
"\u043E\u0442\u0435\u0446 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7047
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7048
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u043C\u0443\u0436\u0430": "\u0441\u0432\u0451\u043A\u043E\u0440/\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7049
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
6835
7050
|
"\u0436\u0435\u043D\u0430 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
6836
7051
|
"\u043C\u0443\u0436 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C",
|
|
6837
7052
|
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
6838
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430
|
|
6839
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\
|
|
6840
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\
|
|
7053
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430 \u0436\u0435\u043D\u044B": "\u0441\u0432\u043E\u044F\u0447\u0435\u043D\u0438\u0446\u0430",
|
|
7054
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430 \u043C\u0443\u0436\u0430": "\u0437\u043E\u043B\u043E\u0432\u043A\u0430",
|
|
7055
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0441\u0432\u043E\u044F\u0447\u0435\u043D\u0438\u0446\u0430/\u0437\u043E\u043B\u043E\u0432\u043A\u0430",
|
|
7056
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u0436\u0435\u043D\u044B": "\u0448\u0443\u0440\u0438\u043D",
|
|
7057
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u043C\u0443\u0436\u0430": "\u0434\u0435\u0432\u0435\u0440\u044C",
|
|
7058
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0448\u0443\u0440\u0438\u043D/\u0434\u0435\u0432\u0435\u0440\u044C",
|
|
7059
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0438\u0431\u043B\u0438\u043D\u0433 \u0436\u0435\u043D\u044B": "\u0448\u0443\u0440\u0438\u043D/\u0441\u0432\u043E\u044F\u0447\u0435\u043D\u0438\u0446\u0430",
|
|
7060
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0438\u0431\u043B\u0438\u043D\u0433 \u043C\u0443\u0436\u0430": "\u0434\u0435\u0432\u0435\u0440\u044C/\u0437\u043E\u043B\u043E\u0432\u043A\u0430",
|
|
7061
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0438\u0431\u043B\u0438\u043D\u0433 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0448\u0443\u0440\u0438\u043D/\u0437\u043E\u043B\u043E\u0432\u043A\u0430"
|
|
7062
|
+
};
|
|
7063
|
+
var parentRelationsRu = {
|
|
7064
|
+
step: {
|
|
7065
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0447\u0438\u043C",
|
|
7066
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0447\u0435\u0445\u0430",
|
|
7067
|
+
\u0441\u044B\u043D: "\u043F\u0430\u0441\u044B\u043D\u043E\u043A",
|
|
7068
|
+
\u0434\u043E\u0447\u044C: "\u043F\u0430\u0434\u0447\u0435\u0440\u0438\u0446\u0430"
|
|
7069
|
+
}
|
|
6841
7070
|
};
|
|
6842
7071
|
|
|
6843
7072
|
// src/kinship-translator/kinship-translator.ru.ts
|
|
@@ -6868,7 +7097,7 @@ var cousinWord = (degree, sex) => {
|
|
|
6868
7097
|
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
6869
7098
|
};
|
|
6870
7099
|
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
6871
|
-
var
|
|
7100
|
+
var sexOf4 = (person) => {
|
|
6872
7101
|
if (person?.isMale?.()) {
|
|
6873
7102
|
return "m";
|
|
6874
7103
|
}
|
|
@@ -6883,7 +7112,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6883
7112
|
if (degree > 0) {
|
|
6884
7113
|
degree = degree - 1;
|
|
6885
7114
|
}
|
|
6886
|
-
return cousinWord(degree,
|
|
7115
|
+
return cousinWord(degree, sexOf4(this.personN));
|
|
6887
7116
|
}
|
|
6888
7117
|
removal() {
|
|
6889
7118
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6895,35 +7124,53 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6895
7124
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6896
7125
|
}
|
|
6897
7126
|
const removed = Math.abs(level);
|
|
6898
|
-
return `${cousinWord(degree,
|
|
7127
|
+
return `${cousinWord(degree, sexOf4(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
6899
7128
|
}
|
|
6900
7129
|
auncle() {
|
|
6901
7130
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6902
|
-
const
|
|
6903
|
-
|
|
7131
|
+
const sex = sexOf4(this.personN);
|
|
7132
|
+
if (level <= 1) {
|
|
7133
|
+
if (sex === "m") {
|
|
7134
|
+
return "\u0434\u044F\u0434\u044F";
|
|
7135
|
+
}
|
|
7136
|
+
if (sex === "f") {
|
|
7137
|
+
return "\u0442\u0451\u0442\u044F";
|
|
7138
|
+
}
|
|
7139
|
+
return "\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F";
|
|
7140
|
+
}
|
|
7141
|
+
const pra = praRepeat(level - 2);
|
|
6904
7142
|
if (sex === "m") {
|
|
6905
|
-
return
|
|
7143
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434`;
|
|
6906
7144
|
}
|
|
6907
7145
|
if (sex === "f") {
|
|
6908
|
-
return
|
|
7146
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u0430\u044F ${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
6909
7147
|
}
|
|
6910
|
-
return
|
|
7148
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
6911
7149
|
}
|
|
6912
7150
|
nibling() {
|
|
6913
7151
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6914
|
-
const
|
|
6915
|
-
|
|
7152
|
+
const sex = sexOf4(this.personN);
|
|
7153
|
+
if (level <= 1) {
|
|
7154
|
+
if (sex === "m") {
|
|
7155
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A";
|
|
7156
|
+
}
|
|
7157
|
+
if (sex === "f") {
|
|
7158
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7159
|
+
}
|
|
7160
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7161
|
+
}
|
|
7162
|
+
const pra = praRepeat(level - 2);
|
|
6916
7163
|
if (sex === "m") {
|
|
6917
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7164
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u044B\u0439 \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
6918
7165
|
}
|
|
6919
7166
|
if (sex === "f") {
|
|
6920
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7167
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u0430\u044F \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
6921
7168
|
}
|
|
6922
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7169
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u044B\u0439 \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
6923
7170
|
}
|
|
6924
7171
|
parent() {
|
|
6925
7172
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6926
|
-
const sex =
|
|
7173
|
+
const sex = sexOf4(this.personN);
|
|
6927
7174
|
if (level <= 1) {
|
|
6928
7175
|
if (sex === "m") {
|
|
6929
7176
|
return "\u043E\u0442\u0435\u0446";
|
|
@@ -6953,7 +7200,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6953
7200
|
}
|
|
6954
7201
|
child() {
|
|
6955
7202
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6956
|
-
const sex =
|
|
7203
|
+
const sex = sexOf4(this.personN);
|
|
6957
7204
|
if (level <= 1) {
|
|
6958
7205
|
if (sex === "m") {
|
|
6959
7206
|
return "\u0441\u044B\u043D";
|
|
@@ -6982,14 +7229,14 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6982
7229
|
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
6983
7230
|
}
|
|
6984
7231
|
sibling() {
|
|
6985
|
-
const sex =
|
|
7232
|
+
const sex = sexOf4(this.personN);
|
|
6986
7233
|
if (sex === "m") {
|
|
6987
7234
|
return "\u0431\u0440\u0430\u0442";
|
|
6988
7235
|
}
|
|
6989
7236
|
if (sex === "f") {
|
|
6990
7237
|
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
6991
7238
|
}
|
|
6992
|
-
return "\u0441\
|
|
7239
|
+
return "\u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
6993
7240
|
}
|
|
6994
7241
|
halfBlood(relation) {
|
|
6995
7242
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7003,7 +7250,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7003
7250
|
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
7004
7251
|
}
|
|
7005
7252
|
spouse() {
|
|
7006
|
-
const sex =
|
|
7253
|
+
const sex = sexOf4(this.personN);
|
|
7007
7254
|
if (sex === "m") {
|
|
7008
7255
|
return "\u043C\u0443\u0436";
|
|
7009
7256
|
}
|
|
@@ -7017,7 +7264,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7017
7264
|
return "";
|
|
7018
7265
|
}
|
|
7019
7266
|
const spouse = this.path?.[1].indi;
|
|
7020
|
-
const sex =
|
|
7267
|
+
const sex = sexOf4(spouse);
|
|
7021
7268
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7022
7269
|
return `${relation} ${toGenitive(spouseType)}`;
|
|
7023
7270
|
}
|
|
@@ -7026,13 +7273,13 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7026
7273
|
return "";
|
|
7027
7274
|
}
|
|
7028
7275
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7029
|
-
const sex =
|
|
7276
|
+
const sex = sexOf4(spouse);
|
|
7030
7277
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7031
7278
|
return `${spouseType} ${toGenitive(relation)}`;
|
|
7032
7279
|
}
|
|
7033
7280
|
of(relation) {
|
|
7034
7281
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7035
|
-
nameOrder:
|
|
7282
|
+
nameOrder: this.nameOrder
|
|
7036
7283
|
});
|
|
7037
7284
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7038
7285
|
if (this.displayName === "none") {
|
|
@@ -7063,7 +7310,22 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7063
7310
|
if (!relation || !this.pathN?.relation) {
|
|
7064
7311
|
return relation ?? "";
|
|
7065
7312
|
}
|
|
7066
|
-
|
|
7313
|
+
const mapped = parentRelationsRu[this.pathN.relation]?.[relation];
|
|
7314
|
+
if (mapped) {
|
|
7315
|
+
return mapped;
|
|
7316
|
+
}
|
|
7317
|
+
if (this.pathN.relation === "step") {
|
|
7318
|
+
return `\u043D\u0435\u0440\u043E\u0434\u043D\u043E\u0439 ${relation}`;
|
|
7319
|
+
}
|
|
7320
|
+
if (this.pathN.relation === "adopted") {
|
|
7321
|
+
return /сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
7322
|
+
relation
|
|
7323
|
+
) ? `\u043F\u0440\u0438\u0451\u043C\u043D\u0430\u044F ${relation}` : `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7324
|
+
}
|
|
7325
|
+
if (this.pathN.relation === "foster") {
|
|
7326
|
+
return `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7327
|
+
}
|
|
7328
|
+
return relation;
|
|
7067
7329
|
}
|
|
7068
7330
|
};
|
|
7069
7331
|
|
|
@@ -7087,7 +7349,7 @@ var InLawsJa = {
|
|
|
7087
7349
|
};
|
|
7088
7350
|
|
|
7089
7351
|
// src/kinship-translator/kinship-translator.ja.ts
|
|
7090
|
-
var
|
|
7352
|
+
var sexOf5 = (person) => {
|
|
7091
7353
|
if (person?.isMale?.()) {
|
|
7092
7354
|
return "m";
|
|
7093
7355
|
}
|
|
@@ -7096,7 +7358,7 @@ var sexOf2 = (person) => {
|
|
|
7096
7358
|
}
|
|
7097
7359
|
return "n";
|
|
7098
7360
|
};
|
|
7099
|
-
var
|
|
7361
|
+
var pick4 = (sex, male, female, neutral) => {
|
|
7100
7362
|
if (sex === "m") {
|
|
7101
7363
|
return male;
|
|
7102
7364
|
}
|
|
@@ -7109,18 +7371,18 @@ var lineal = (level, sex, kind) => {
|
|
|
7109
7371
|
const L = Math.max(1, level);
|
|
7110
7372
|
if (kind === "asc") {
|
|
7111
7373
|
if (L <= 1) {
|
|
7112
|
-
return
|
|
7374
|
+
return pick4(sex, "\u7236", "\u6BCD", "\u89AA");
|
|
7113
7375
|
}
|
|
7114
7376
|
if (L === 2) {
|
|
7115
|
-
return
|
|
7377
|
+
return pick4(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7116
7378
|
}
|
|
7117
7379
|
if (L === 3) {
|
|
7118
|
-
return
|
|
7380
|
+
return pick4(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7119
7381
|
}
|
|
7120
7382
|
if (L === 4) {
|
|
7121
|
-
return
|
|
7383
|
+
return pick4(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7122
7384
|
}
|
|
7123
|
-
return
|
|
7385
|
+
return pick4(
|
|
7124
7386
|
sex,
|
|
7125
7387
|
`${L - 1}\u4E16\u306E\u7956\u7236`,
|
|
7126
7388
|
`${L - 1}\u4E16\u306E\u7956\u6BCD`,
|
|
@@ -7128,7 +7390,7 @@ var lineal = (level, sex, kind) => {
|
|
|
7128
7390
|
);
|
|
7129
7391
|
}
|
|
7130
7392
|
if (L <= 1) {
|
|
7131
|
-
return
|
|
7393
|
+
return pick4(sex, "\u606F\u5B50", "\u5A18", "\u5B50");
|
|
7132
7394
|
}
|
|
7133
7395
|
if (L === 2) {
|
|
7134
7396
|
return "\u5B6B";
|
|
@@ -7175,52 +7437,52 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7175
7437
|
}
|
|
7176
7438
|
auncle() {
|
|
7177
7439
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7178
|
-
const sex =
|
|
7179
|
-
if (level <=
|
|
7180
|
-
return
|
|
7440
|
+
const sex = sexOf5(this.personN);
|
|
7441
|
+
if (level <= 1) {
|
|
7442
|
+
return pick4(sex, "\u304A\u3058", "\u304A\u3070", "\u304A\u3058/\u304A\u3070");
|
|
7181
7443
|
}
|
|
7182
|
-
if (level ===
|
|
7183
|
-
return
|
|
7444
|
+
if (level === 2) {
|
|
7445
|
+
return pick4(sex, "\u5927\u304A\u3058", "\u5927\u304A\u3070", "\u5927\u304A\u3058/\u5927\u304A\u3070");
|
|
7184
7446
|
}
|
|
7185
|
-
return
|
|
7447
|
+
return pick4(
|
|
7186
7448
|
sex,
|
|
7187
|
-
`${level -
|
|
7188
|
-
`${level -
|
|
7189
|
-
`${level -
|
|
7449
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058`,
|
|
7450
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3070`,
|
|
7451
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058/\u304A\u3070`
|
|
7190
7452
|
);
|
|
7191
7453
|
}
|
|
7192
7454
|
nibling() {
|
|
7193
7455
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7194
|
-
const sex =
|
|
7195
|
-
if (level <=
|
|
7196
|
-
return
|
|
7456
|
+
const sex = sexOf5(this.personN);
|
|
7457
|
+
if (level <= 1) {
|
|
7458
|
+
return pick4(sex, "\u7525", "\u59EA", "\u7525/\u59EA");
|
|
7197
7459
|
}
|
|
7198
|
-
if (level ===
|
|
7199
|
-
return
|
|
7460
|
+
if (level === 2) {
|
|
7461
|
+
return pick4(sex, "\u5927\u7525", "\u5927\u59EA", "\u5927\u7525/\u5927\u59EA");
|
|
7200
7462
|
}
|
|
7201
|
-
return
|
|
7463
|
+
return pick4(
|
|
7202
7464
|
sex,
|
|
7203
|
-
`${level -
|
|
7204
|
-
`${level -
|
|
7205
|
-
`${level -
|
|
7465
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525`,
|
|
7466
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u59EA`,
|
|
7467
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525/\u59EA`
|
|
7206
7468
|
);
|
|
7207
7469
|
}
|
|
7208
7470
|
parent() {
|
|
7209
7471
|
return lineal(
|
|
7210
7472
|
Math.abs(this.pathN?.level ?? 0),
|
|
7211
|
-
|
|
7473
|
+
sexOf5(this.personN),
|
|
7212
7474
|
"asc"
|
|
7213
7475
|
);
|
|
7214
7476
|
}
|
|
7215
7477
|
child() {
|
|
7216
7478
|
return lineal(
|
|
7217
7479
|
Math.abs(this.pathN?.level ?? 0),
|
|
7218
|
-
|
|
7480
|
+
sexOf5(this.personN),
|
|
7219
7481
|
"desc"
|
|
7220
7482
|
);
|
|
7221
7483
|
}
|
|
7222
7484
|
sibling() {
|
|
7223
|
-
return
|
|
7485
|
+
return pick4(sexOf5(this.personN), "\u5144\u5F1F", "\u59C9\u59B9", "\u5144\u5F1F\u59C9\u59B9");
|
|
7224
7486
|
}
|
|
7225
7487
|
halfBlood(relation) {
|
|
7226
7488
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7229,14 +7491,14 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7229
7491
|
return `\u7570\u7236\u6BCD\u306E${relation}`;
|
|
7230
7492
|
}
|
|
7231
7493
|
spouse() {
|
|
7232
|
-
return
|
|
7494
|
+
return pick4(sexOf5(this.personN), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7233
7495
|
}
|
|
7234
7496
|
ofSpouse(relation) {
|
|
7235
7497
|
if (!relation) {
|
|
7236
7498
|
return "";
|
|
7237
7499
|
}
|
|
7238
|
-
const spouseType =
|
|
7239
|
-
|
|
7500
|
+
const spouseType = pick4(
|
|
7501
|
+
sexOf5(this.path?.[1].indi),
|
|
7240
7502
|
"\u592B",
|
|
7241
7503
|
"\u59BB",
|
|
7242
7504
|
"\u914D\u5076\u8005"
|
|
@@ -7248,12 +7510,12 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7248
7510
|
return "";
|
|
7249
7511
|
}
|
|
7250
7512
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7251
|
-
const spouseType =
|
|
7513
|
+
const spouseType = pick4(sexOf5(spouse), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7252
7514
|
return `${relation}\u306E${spouseType}`;
|
|
7253
7515
|
}
|
|
7254
7516
|
of(relation) {
|
|
7255
7517
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7256
|
-
nameOrder:
|
|
7518
|
+
nameOrder: this.nameOrder
|
|
7257
7519
|
});
|
|
7258
7520
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7259
7521
|
if (this.displayName === "none") {
|
|
@@ -7284,7 +7546,28 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7284
7546
|
if (!relation || !this.pathN?.relation) {
|
|
7285
7547
|
return relation ?? "";
|
|
7286
7548
|
}
|
|
7287
|
-
|
|
7549
|
+
if (this.pathN.relation === "step") {
|
|
7550
|
+
if (relation === "\u7236") {
|
|
7551
|
+
return "\u7EE7\u7236";
|
|
7552
|
+
}
|
|
7553
|
+
if (relation === "\u6BCD") {
|
|
7554
|
+
return "\u7D99\u6BCD";
|
|
7555
|
+
}
|
|
7556
|
+
if (relation === "\u606F\u5B50") {
|
|
7557
|
+
return "\u7D99\u5B50";
|
|
7558
|
+
}
|
|
7559
|
+
if (relation === "\u5A18") {
|
|
7560
|
+
return "\u7D99\u5A18";
|
|
7561
|
+
}
|
|
7562
|
+
return `\u7D99${relation}`;
|
|
7563
|
+
}
|
|
7564
|
+
if (this.pathN.relation === "adopted") {
|
|
7565
|
+
return `\u990A\u5B50\u306E${relation}`;
|
|
7566
|
+
}
|
|
7567
|
+
if (this.pathN.relation === "foster") {
|
|
7568
|
+
return `\u91CC\u89AA\u306E${relation}`;
|
|
7569
|
+
}
|
|
7570
|
+
return relation;
|
|
7288
7571
|
}
|
|
7289
7572
|
};
|
|
7290
7573
|
|
|
@@ -7293,22 +7576,32 @@ var InLawsZh = {
|
|
|
7293
7576
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u914D\u5076": "\u513F\u5AB3/\u5973\u5A7F",
|
|
7294
7577
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u59BB\u5B50": "\u513F\u5AB3",
|
|
7295
7578
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u4E08\u592B": "\u5973\u5A7F",
|
|
7296
|
-
"
|
|
7297
|
-
"
|
|
7298
|
-
"(\u914D\u5076
|
|
7579
|
+
"\u59BB\u5B50\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD",
|
|
7580
|
+
"\u4E08\u592B\u7684\u6BCD\u4EB2": "\u5A46\u5A46",
|
|
7581
|
+
"(\u914D\u5076)\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD/\u5A46\u5A46",
|
|
7582
|
+
"\u59BB\u5B50\u7684\u7236\u4EB2": "\u5CB3\u7236",
|
|
7583
|
+
"\u4E08\u592B\u7684\u7236\u4EB2": "\u516C\u516C",
|
|
7584
|
+
"(\u914D\u5076)\u7684\u7236\u4EB2": "\u5CB3\u7236/\u516C\u516C",
|
|
7585
|
+
"\u59BB\u5B50\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD",
|
|
7586
|
+
"\u4E08\u592B\u7684\u7236\u6BCD": "\u516C\u516C\u5A46\u5A46",
|
|
7587
|
+
"(\u914D\u5076)\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD/\u516C\u516C\u5A46\u5A46",
|
|
7299
7588
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u59BB\u5B50": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7300
7589
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u4E08\u592B": "\u59D0\u592B/\u59B9\u592B",
|
|
7301
7590
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u914D\u5076": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7302
7591
|
"(\u5F02\u7236\u6BCD\u7684)?\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59D0\u592B/\u59B9\u592B",
|
|
7303
7592
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7304
7593
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7305
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7306
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7594
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u59D0\u59B9": "\u59E8\u5B50",
|
|
7595
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u59D0\u59B9": "\u59D1\u5B50",
|
|
7596
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u59D0\u59B9": "\u59D1\u5B50/\u59E8\u5B50",
|
|
7597
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u5144\u5F1F": "\u5185\u5144/\u5185\u5F1F",
|
|
7598
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4",
|
|
7599
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4/\u5185\u5144/\u5185\u5F1F",
|
|
7307
7600
|
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)\u7684\u5144\u5F1F\u59D0\u59B9": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9"
|
|
7308
7601
|
};
|
|
7309
7602
|
|
|
7310
7603
|
// src/kinship-translator/kinship-translator.zh.ts
|
|
7311
|
-
var
|
|
7604
|
+
var sexOf6 = (person) => {
|
|
7312
7605
|
if (person?.isMale?.()) {
|
|
7313
7606
|
return "m";
|
|
7314
7607
|
}
|
|
@@ -7317,7 +7610,7 @@ var sexOf3 = (person) => {
|
|
|
7317
7610
|
}
|
|
7318
7611
|
return "n";
|
|
7319
7612
|
};
|
|
7320
|
-
var
|
|
7613
|
+
var pick5 = (sex, male, female, neutral) => {
|
|
7321
7614
|
if (sex === "m") {
|
|
7322
7615
|
return male;
|
|
7323
7616
|
}
|
|
@@ -7330,41 +7623,41 @@ var lineal2 = (level, sex, kind) => {
|
|
|
7330
7623
|
const L = Math.max(1, level);
|
|
7331
7624
|
if (kind === "asc") {
|
|
7332
7625
|
if (L <= 1) {
|
|
7333
|
-
return
|
|
7626
|
+
return pick5(sex, "\u7236\u4EB2", "\u6BCD\u4EB2", "\u7236\u6BCD");
|
|
7334
7627
|
}
|
|
7335
7628
|
if (L === 2) {
|
|
7336
|
-
return
|
|
7629
|
+
return pick5(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7337
7630
|
}
|
|
7338
7631
|
if (L === 3) {
|
|
7339
|
-
return
|
|
7632
|
+
return pick5(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7340
7633
|
}
|
|
7341
7634
|
if (L === 4) {
|
|
7342
|
-
return
|
|
7635
|
+
return pick5(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7343
7636
|
}
|
|
7344
|
-
return
|
|
7637
|
+
return pick5(sex, `${L}\u4E16\u7956`, `${L}\u4E16\u7956\u6BCD`, `${L}\u4E16\u7956\u7236\u6BCD`);
|
|
7345
7638
|
}
|
|
7346
7639
|
if (L <= 1) {
|
|
7347
|
-
return
|
|
7640
|
+
return pick5(sex, "\u513F\u5B50", "\u5973\u513F", "\u5B50\u5973");
|
|
7348
7641
|
}
|
|
7349
7642
|
if (L === 2) {
|
|
7350
|
-
return
|
|
7643
|
+
return pick5(sex, "\u5B59\u5B50", "\u5B59\u5973", "\u5B59\u5B50\u5973");
|
|
7351
7644
|
}
|
|
7352
7645
|
if (L === 3) {
|
|
7353
|
-
return
|
|
7646
|
+
return pick5(sex, "\u66FE\u5B59", "\u66FE\u5B59\u5973", "\u66FE\u5B59\u5B50\u5973");
|
|
7354
7647
|
}
|
|
7355
7648
|
if (L === 4) {
|
|
7356
|
-
return
|
|
7649
|
+
return pick5(sex, "\u7384\u5B59", "\u7384\u5B59\u5973", "\u7384\u5B59\u5B50\u5973");
|
|
7357
7650
|
}
|
|
7358
|
-
return
|
|
7651
|
+
return pick5(sex, `${L}\u4E16\u5B59`, `${L}\u4E16\u5B59\u5973`, `${L}\u4E16\u5B59\u5B50\u5973`);
|
|
7359
7652
|
};
|
|
7360
7653
|
var cousinPlain2 = (degree, sex) => {
|
|
7361
7654
|
if (degree <= 1) {
|
|
7362
|
-
return
|
|
7655
|
+
return pick5(sex, "\u5802\u8868\u5144\u5F1F", "\u5802\u8868\u59D0\u59B9", "\u5802\u8868\u4EB2");
|
|
7363
7656
|
}
|
|
7364
7657
|
if (degree === 2) {
|
|
7365
|
-
return
|
|
7658
|
+
return pick5(sex, "\u4ECE\u5802\u8868\u5144\u5F1F", "\u4ECE\u5802\u8868\u59D0\u59B9", "\u4ECE\u5802\u8868\u4EB2");
|
|
7366
7659
|
}
|
|
7367
|
-
return
|
|
7660
|
+
return pick5(
|
|
7368
7661
|
sex,
|
|
7369
7662
|
`${degree}\u4EE3\u5802\u8868\u5144\u5F1F`,
|
|
7370
7663
|
`${degree}\u4EE3\u5802\u8868\u59D0\u59B9`,
|
|
@@ -7377,7 +7670,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7377
7670
|
if (degree > 0) {
|
|
7378
7671
|
degree = degree - 1;
|
|
7379
7672
|
}
|
|
7380
|
-
return cousinPlain2(degree,
|
|
7673
|
+
return cousinPlain2(degree, sexOf6(this.personN));
|
|
7381
7674
|
}
|
|
7382
7675
|
removal() {
|
|
7383
7676
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7389,56 +7682,56 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7389
7682
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7390
7683
|
}
|
|
7391
7684
|
const removed = Math.abs(level);
|
|
7392
|
-
return `${cousinPlain2(degree,
|
|
7685
|
+
return `${cousinPlain2(degree, sexOf6(this.personN))}\uFF08\u9694${removed}\u4EE3\uFF09`;
|
|
7393
7686
|
}
|
|
7394
7687
|
auncle() {
|
|
7395
7688
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7396
|
-
const sex =
|
|
7397
|
-
if (level <=
|
|
7398
|
-
return
|
|
7689
|
+
const sex = sexOf6(this.personN);
|
|
7690
|
+
if (level <= 1) {
|
|
7691
|
+
return pick5(sex, "\u53D4\u53D4", "\u963F\u59E8", "\u53D4\u4F2F/\u59D1\u59E8");
|
|
7399
7692
|
}
|
|
7400
|
-
if (level ===
|
|
7401
|
-
return
|
|
7693
|
+
if (level === 2) {
|
|
7694
|
+
return pick5(sex, "\u4F2F\u53D4\u7956\u7236", "\u59D1\u7956\u6BCD", "\u4F2F\u53D4\u7956\u7236\u6BCD");
|
|
7402
7695
|
}
|
|
7403
|
-
return
|
|
7696
|
+
return pick5(
|
|
7404
7697
|
sex,
|
|
7405
|
-
`${level -
|
|
7406
|
-
`${level -
|
|
7407
|
-
`${level -
|
|
7698
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u53D4`,
|
|
7699
|
+
`${level - 1}\u4EE3\u524D\u7684\u963F\u59E8`,
|
|
7700
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u4F2F/\u59D1\u59E8`
|
|
7408
7701
|
);
|
|
7409
7702
|
}
|
|
7410
7703
|
nibling() {
|
|
7411
7704
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7412
|
-
const sex =
|
|
7413
|
-
if (level <=
|
|
7414
|
-
return
|
|
7705
|
+
const sex = sexOf6(this.personN);
|
|
7706
|
+
if (level <= 1) {
|
|
7707
|
+
return pick5(sex, "\u4F84\u5B50", "\u4F84\u5973", "\u4F84\u5B50\u5973");
|
|
7415
7708
|
}
|
|
7416
|
-
if (level ===
|
|
7417
|
-
return
|
|
7709
|
+
if (level === 2) {
|
|
7710
|
+
return pick5(sex, "\u4F84\u5B59", "\u4F84\u5B59\u5973", "\u4F84\u5B59\u5B50\u5973");
|
|
7418
7711
|
}
|
|
7419
|
-
return
|
|
7712
|
+
return pick5(
|
|
7420
7713
|
sex,
|
|
7421
|
-
`${level -
|
|
7422
|
-
`${level -
|
|
7423
|
-
`${level -
|
|
7714
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50`,
|
|
7715
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5973`,
|
|
7716
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50\u5973`
|
|
7424
7717
|
);
|
|
7425
7718
|
}
|
|
7426
7719
|
parent() {
|
|
7427
7720
|
return lineal2(
|
|
7428
7721
|
Math.abs(this.pathN?.level ?? 0),
|
|
7429
|
-
|
|
7722
|
+
sexOf6(this.personN),
|
|
7430
7723
|
"asc"
|
|
7431
7724
|
);
|
|
7432
7725
|
}
|
|
7433
7726
|
child() {
|
|
7434
7727
|
return lineal2(
|
|
7435
7728
|
Math.abs(this.pathN?.level ?? 0),
|
|
7436
|
-
|
|
7729
|
+
sexOf6(this.personN),
|
|
7437
7730
|
"desc"
|
|
7438
7731
|
);
|
|
7439
7732
|
}
|
|
7440
7733
|
sibling() {
|
|
7441
|
-
return
|
|
7734
|
+
return pick5(sexOf6(this.personN), "\u5144\u5F1F", "\u59D0\u59B9", "\u5144\u5F1F\u59D0\u59B9");
|
|
7442
7735
|
}
|
|
7443
7736
|
halfBlood(relation) {
|
|
7444
7737
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7447,14 +7740,14 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7447
7740
|
return `\u5F02\u7236\u6BCD\u7684${relation}`;
|
|
7448
7741
|
}
|
|
7449
7742
|
spouse() {
|
|
7450
|
-
return
|
|
7743
|
+
return pick5(sexOf6(this.personN), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7451
7744
|
}
|
|
7452
7745
|
ofSpouse(relation) {
|
|
7453
7746
|
if (!relation) {
|
|
7454
7747
|
return "";
|
|
7455
7748
|
}
|
|
7456
|
-
const spouseType =
|
|
7457
|
-
|
|
7749
|
+
const spouseType = pick5(
|
|
7750
|
+
sexOf6(this.path?.[1].indi),
|
|
7458
7751
|
"\u4E08\u592B",
|
|
7459
7752
|
"\u59BB\u5B50",
|
|
7460
7753
|
"\u914D\u5076"
|
|
@@ -7466,12 +7759,12 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7466
7759
|
return "";
|
|
7467
7760
|
}
|
|
7468
7761
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7469
|
-
const spouseType =
|
|
7762
|
+
const spouseType = pick5(sexOf6(spouse), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7470
7763
|
return `${relation}\u7684${spouseType}`;
|
|
7471
7764
|
}
|
|
7472
7765
|
of(relation) {
|
|
7473
7766
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7474
|
-
nameOrder:
|
|
7767
|
+
nameOrder: this.nameOrder
|
|
7475
7768
|
});
|
|
7476
7769
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7477
7770
|
if (this.displayName === "none") {
|
|
@@ -7502,27 +7795,68 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7502
7795
|
if (!relation || !this.pathN?.relation) {
|
|
7503
7796
|
return relation ?? "";
|
|
7504
7797
|
}
|
|
7505
|
-
|
|
7798
|
+
if (this.pathN.relation === "step") {
|
|
7799
|
+
if (relation === "\u7236\u4EB2") {
|
|
7800
|
+
return "\u7EE7\u7236";
|
|
7801
|
+
}
|
|
7802
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
7803
|
+
return "\u7EE7\u6BCD";
|
|
7804
|
+
}
|
|
7805
|
+
if (relation === "\u513F\u5B50") {
|
|
7806
|
+
return "\u7EE7\u5B50";
|
|
7807
|
+
}
|
|
7808
|
+
if (relation === "\u5973\u513F") {
|
|
7809
|
+
return "\u7EE7\u5973";
|
|
7810
|
+
}
|
|
7811
|
+
return `\u7EE7${relation}`;
|
|
7812
|
+
}
|
|
7813
|
+
if (this.pathN.relation === "adopted") {
|
|
7814
|
+
if (relation === "\u7236\u4EB2") {
|
|
7815
|
+
return "\u517B\u7236";
|
|
7816
|
+
}
|
|
7817
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
7818
|
+
return "\u517B\u6BCD";
|
|
7819
|
+
}
|
|
7820
|
+
if (relation === "\u513F\u5B50") {
|
|
7821
|
+
return "\u517B\u5B50";
|
|
7822
|
+
}
|
|
7823
|
+
if (relation === "\u5973\u513F") {
|
|
7824
|
+
return "\u517B\u5973";
|
|
7825
|
+
}
|
|
7826
|
+
return `\u517B${relation}`;
|
|
7827
|
+
}
|
|
7828
|
+
if (this.pathN.relation === "foster") {
|
|
7829
|
+
return `\u5BC4\u517B${relation}`;
|
|
7830
|
+
}
|
|
7831
|
+
return relation;
|
|
7506
7832
|
}
|
|
7507
7833
|
};
|
|
7508
7834
|
|
|
7509
7835
|
// src/kinship-translator/kinship-translator.ts
|
|
7836
|
+
var nameOrderForLang = (lang) => lang === "hu" || lang === "ja" || lang === "zh" ? "last-first" : "first-last";
|
|
7510
7837
|
var KinshipTranslator = class {
|
|
7511
|
-
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname") {
|
|
7838
|
+
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname", nameOrder) {
|
|
7512
7839
|
this.displayName = displayName;
|
|
7513
7840
|
this.lang = lang;
|
|
7514
7841
|
this.entirePath = entirePath;
|
|
7515
7842
|
this.person1 = person1;
|
|
7516
7843
|
this.person2 = typeof person2 === "string" ? this.person1.getGedcom()?.indi(person2) : person2;
|
|
7517
7844
|
this.path = this.person1.path(this.person2);
|
|
7845
|
+
const order = nameOrder ?? nameOrderForLang(lang);
|
|
7846
|
+
this.nameOrder = order;
|
|
7518
7847
|
if (translators_exports[lang]) {
|
|
7519
7848
|
this.translator = new translators_exports[lang](
|
|
7520
7849
|
this.path ?? [],
|
|
7521
|
-
displayName
|
|
7850
|
+
displayName,
|
|
7851
|
+
order
|
|
7522
7852
|
);
|
|
7523
7853
|
}
|
|
7524
7854
|
if (!this.translator) {
|
|
7525
|
-
this.translator = new KinshipTranslatorEn(
|
|
7855
|
+
this.translator = new KinshipTranslatorEn(
|
|
7856
|
+
this.path ?? [],
|
|
7857
|
+
displayName,
|
|
7858
|
+
order
|
|
7859
|
+
);
|
|
7526
7860
|
}
|
|
7527
7861
|
}
|
|
7528
7862
|
get path0() {
|
|
@@ -7567,14 +7901,16 @@ var KinshipTranslator = class {
|
|
|
7567
7901
|
showMainPerson,
|
|
7568
7902
|
this.lang,
|
|
7569
7903
|
false,
|
|
7570
|
-
this.displayName
|
|
7904
|
+
this.displayName,
|
|
7905
|
+
this.nameOrder
|
|
7571
7906
|
),
|
|
7572
7907
|
relative: this.path?.[index - 1]?.indi.kinship(
|
|
7573
7908
|
path2.indi.id,
|
|
7574
7909
|
showMainPerson,
|
|
7575
7910
|
this.lang,
|
|
7576
7911
|
false,
|
|
7577
|
-
this.displayName
|
|
7912
|
+
this.displayName,
|
|
7913
|
+
this.nameOrder
|
|
7578
7914
|
)
|
|
7579
7915
|
}));
|
|
7580
7916
|
return path;
|
|
@@ -8657,7 +8993,7 @@ var ensureExtensionSchema = (gedcom, extraTags) => {
|
|
|
8657
8993
|
|
|
8658
8994
|
// package.json
|
|
8659
8995
|
var package_default = {
|
|
8660
|
-
version: "2.1.
|
|
8996
|
+
version: "2.1.15"};
|
|
8661
8997
|
|
|
8662
8998
|
// src/utils/get-product-details.ts
|
|
8663
8999
|
var isDevelopment = () => {
|
|
@@ -10024,7 +10360,7 @@ var create = (gedcom, type, id, nodes) => {
|
|
|
10024
10360
|
prevNode = createObje(gedcom, void 0, mainNode, curNode);
|
|
10025
10361
|
} else if (type === "DATE") {
|
|
10026
10362
|
prevNode = createCommonDate(gedcom, void 0, mainNode, curNode);
|
|
10027
|
-
} else if (type === "NOTE" || type === "SNOTE") {
|
|
10363
|
+
} else if (type === "NOTE" || type === "SNOTE" || type === "_TREEVIZ_LIFE_STORY" || type === "_TREEVIZ_FAMILY_STORY") {
|
|
10028
10364
|
prevNode = createCommonNote(gedcom, void 0, mainNode, curNode);
|
|
10029
10365
|
} else if (type === "NAME" && mainNode instanceof Indi) {
|
|
10030
10366
|
prevNode = createCommonName(gedcom, void 0, mainNode, curNode);
|