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