@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/constants/index.js
CHANGED
|
@@ -5825,7 +5825,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
5825
5825
|
}
|
|
5826
5826
|
return `${hungarianOrdinalize(
|
|
5827
5827
|
degree
|
|
5828
|
-
)}unokatestv\xE9r ${level}x elt\xE1vol\xEDtva`;
|
|
5828
|
+
)}unokatestv\xE9r ${Math.abs(level)}x elt\xE1vol\xEDtva`;
|
|
5829
5829
|
}
|
|
5830
5830
|
auncle() {
|
|
5831
5831
|
const level = this.pathN?.level ?? 0;
|
|
@@ -5869,14 +5869,25 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
5869
5869
|
return `${ordinalized ? `${ordinalized}unoka` : ""}testv\xE9r ${origPrefix.replace(/nagy$/, "")}unok\xE1ja`;
|
|
5870
5870
|
}
|
|
5871
5871
|
parent() {
|
|
5872
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5873
|
+
if (level <= 1) {
|
|
5874
|
+
if (this.personN?.isMale()) {
|
|
5875
|
+
return "apa";
|
|
5876
|
+
}
|
|
5877
|
+
if (this.personN?.isFemale()) {
|
|
5878
|
+
return "anya";
|
|
5879
|
+
}
|
|
5880
|
+
return "sz\xFCl\u0151";
|
|
5881
|
+
}
|
|
5872
5882
|
const prefix = this.directPrefix();
|
|
5883
|
+
const gen = prefix === "nagy" ? "" : prefix;
|
|
5873
5884
|
if (this.personN?.isMale()) {
|
|
5874
|
-
return `${
|
|
5885
|
+
return `${gen}nagyapa`;
|
|
5875
5886
|
}
|
|
5876
5887
|
if (this.personN?.isFemale()) {
|
|
5877
|
-
return `${
|
|
5888
|
+
return `${gen}nagyanya`;
|
|
5878
5889
|
}
|
|
5879
|
-
return `${
|
|
5890
|
+
return `${gen}nagysz\xFCl\u0151`;
|
|
5880
5891
|
}
|
|
5881
5892
|
child() {
|
|
5882
5893
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
@@ -6070,27 +6081,30 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6070
6081
|
if (!degree) {
|
|
6071
6082
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6072
6083
|
}
|
|
6073
|
-
return `${ordinalize(degree)} cousin ${level}x removed`;
|
|
6084
|
+
return `${ordinalize(degree)} cousin ${Math.abs(level)}x removed`;
|
|
6074
6085
|
}
|
|
6075
6086
|
auncle() {
|
|
6076
|
-
const
|
|
6087
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6088
|
+
const greats = level <= 1 ? "" : "great-".repeat(level - 1);
|
|
6077
6089
|
if (this.personN?.isMale()) {
|
|
6078
|
-
return `${
|
|
6090
|
+
return `${greats}uncle`;
|
|
6079
6091
|
}
|
|
6080
6092
|
if (this.personN?.isFemale()) {
|
|
6081
|
-
return `${
|
|
6093
|
+
return `${greats}aunt`;
|
|
6082
6094
|
}
|
|
6083
|
-
return `${
|
|
6095
|
+
return greats ? `${greats}uncle/${greats}aunt` : "uncle/aunt";
|
|
6084
6096
|
}
|
|
6085
6097
|
nibling() {
|
|
6086
|
-
const
|
|
6098
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6099
|
+
const greats = level <= 2 ? "" : "great-".repeat(level - 2);
|
|
6100
|
+
const grand = level <= 1 ? "" : "grand";
|
|
6087
6101
|
if (this.personN?.isMale()) {
|
|
6088
|
-
return `${
|
|
6102
|
+
return `${greats}${grand}nephew`;
|
|
6089
6103
|
}
|
|
6090
6104
|
if (this.personN?.isFemale()) {
|
|
6091
|
-
return `${
|
|
6105
|
+
return `${greats}${grand}niece`;
|
|
6092
6106
|
}
|
|
6093
|
-
return `${
|
|
6107
|
+
return greats || grand ? `${greats}${grand}nephew/${greats}${grand}niece` : "nephew/niece";
|
|
6094
6108
|
}
|
|
6095
6109
|
parent() {
|
|
6096
6110
|
const prefix = this.directPrefix();
|
|
@@ -6218,45 +6232,64 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6218
6232
|
};
|
|
6219
6233
|
|
|
6220
6234
|
// src/kinship-translator/patterns.de.ts
|
|
6235
|
+
var parentRelationsDe = {
|
|
6236
|
+
step: "Stief",
|
|
6237
|
+
foster: "Pflege",
|
|
6238
|
+
adopted: "Adoptiv"
|
|
6239
|
+
};
|
|
6221
6240
|
var InLawsDe = {
|
|
6222
|
-
"Ehepartner von (
|
|
6223
|
-
"Ehefrau von (
|
|
6224
|
-
"Ehemann von (
|
|
6225
|
-
"
|
|
6226
|
-
"
|
|
6227
|
-
"
|
|
6228
|
-
"Ehefrau von (Halb)
|
|
6229
|
-
"Ehemann von (Halb)
|
|
6230
|
-
"Ehepartner von (Halb)
|
|
6231
|
-
"(Halb)
|
|
6232
|
-
"(Halb)
|
|
6233
|
-
"(Halb)
|
|
6241
|
+
"Ehepartner von (Kind|Tochter|Sohn)": "Schwiegerkind",
|
|
6242
|
+
"Ehefrau von (Kind|Tochter|Sohn)": "Schwiegertochter",
|
|
6243
|
+
"Ehemann von (Kind|Tochter|Sohn)": "Schwiegersohn",
|
|
6244
|
+
"Mutter (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegermutter",
|
|
6245
|
+
"Vater (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegervater",
|
|
6246
|
+
"Elternteil (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegerelternteil",
|
|
6247
|
+
"Ehefrau von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schw\xE4gerin",
|
|
6248
|
+
"Ehemann von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager",
|
|
6249
|
+
"Ehepartner von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager/Schw\xE4gerin",
|
|
6250
|
+
"(Halb)?-?(Schwester|schwester) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schw\xE4gerin",
|
|
6251
|
+
"(Halb)?-?(Bruder|bruder) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager",
|
|
6252
|
+
"(Halb)?-?(Geschwister|geschwister) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager/Schw\xE4gerin"
|
|
6234
6253
|
};
|
|
6235
6254
|
|
|
6236
6255
|
// src/kinship-translator/kinship-translator.de.ts
|
|
6237
|
-
var
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
if (level === 2) {
|
|
6244
|
-
return "Gro\xDF";
|
|
6245
|
-
}
|
|
6246
|
-
if (level === 3) {
|
|
6247
|
-
return "Urgro\xDF";
|
|
6248
|
-
}
|
|
6249
|
-
return `Ur${level - 2}-gro\xDF`;
|
|
6256
|
+
var sexOf = (person) => {
|
|
6257
|
+
if (person?.isMale?.()) {
|
|
6258
|
+
return "m";
|
|
6259
|
+
}
|
|
6260
|
+
if (person?.isFemale?.()) {
|
|
6261
|
+
return "f";
|
|
6250
6262
|
}
|
|
6263
|
+
return "n";
|
|
6264
|
+
};
|
|
6265
|
+
var pick = (sex, male, female, neutral) => {
|
|
6266
|
+
if (sex === "m") {
|
|
6267
|
+
return male;
|
|
6268
|
+
}
|
|
6269
|
+
if (sex === "f") {
|
|
6270
|
+
return female;
|
|
6271
|
+
}
|
|
6272
|
+
return neutral;
|
|
6273
|
+
};
|
|
6274
|
+
var ur = (count) => count > 0 ? "Ur".repeat(count) : "";
|
|
6275
|
+
var genitiveArticle = (spouseType) => {
|
|
6276
|
+
if (spouseType === "Ehefrau") {
|
|
6277
|
+
return `der ${spouseType}`;
|
|
6278
|
+
}
|
|
6279
|
+
return `des ${spouseType}s`;
|
|
6280
|
+
};
|
|
6281
|
+
var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
6251
6282
|
indirect() {
|
|
6252
6283
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6253
6284
|
if (degree > 0) {
|
|
6254
6285
|
degree = degree - 1;
|
|
6255
6286
|
}
|
|
6256
|
-
|
|
6257
|
-
|
|
6287
|
+
const sex = sexOf(this.personN);
|
|
6288
|
+
const cousin = pick(sex, "Cousin", "Cousine", "Cousin/Cousine");
|
|
6289
|
+
if (degree <= 1) {
|
|
6290
|
+
return cousin;
|
|
6258
6291
|
}
|
|
6259
|
-
return
|
|
6292
|
+
return `${cousin} ${degree}. Grades`;
|
|
6260
6293
|
}
|
|
6261
6294
|
removal() {
|
|
6262
6295
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6267,101 +6300,101 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6267
6300
|
if (!degree) {
|
|
6268
6301
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6269
6302
|
}
|
|
6270
|
-
return
|
|
6303
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 entfernt`;
|
|
6271
6304
|
}
|
|
6272
6305
|
auncle() {
|
|
6273
|
-
const
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6277
|
-
if (this.personN?.isFemale()) {
|
|
6278
|
-
return `${prefix}tante`;
|
|
6306
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6307
|
+
const sex = sexOf(this.personN);
|
|
6308
|
+
if (level <= 1) {
|
|
6309
|
+
return pick(sex, "Onkel", "Tante", "Onkel/Tante");
|
|
6279
6310
|
}
|
|
6280
|
-
|
|
6311
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6312
|
+
return pick(
|
|
6313
|
+
sex,
|
|
6314
|
+
`${prefix}onkel`,
|
|
6315
|
+
`${prefix}tante`,
|
|
6316
|
+
`${prefix}onkel/tante`
|
|
6317
|
+
);
|
|
6281
6318
|
}
|
|
6282
6319
|
nibling() {
|
|
6283
|
-
const
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
if (this.personN?.isFemale()) {
|
|
6288
|
-
return `${prefix}nichte`;
|
|
6320
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6321
|
+
const sex = sexOf(this.personN);
|
|
6322
|
+
if (level <= 1) {
|
|
6323
|
+
return pick(sex, "Neffe", "Nichte", "Neffe/Nichte");
|
|
6289
6324
|
}
|
|
6290
|
-
|
|
6325
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6326
|
+
return pick(
|
|
6327
|
+
sex,
|
|
6328
|
+
`${prefix}neffe`,
|
|
6329
|
+
`${prefix}nichte`,
|
|
6330
|
+
`${prefix}neffe/nichte`
|
|
6331
|
+
);
|
|
6291
6332
|
}
|
|
6292
6333
|
parent() {
|
|
6293
|
-
const
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
if (this.personN?.isFemale()) {
|
|
6298
|
-
return `${prefix}mutter`;
|
|
6334
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6335
|
+
const sex = sexOf(this.personN);
|
|
6336
|
+
if (level <= 1) {
|
|
6337
|
+
return pick(sex, "Vater", "Mutter", "Elternteil");
|
|
6299
6338
|
}
|
|
6300
|
-
|
|
6339
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6340
|
+
return pick(
|
|
6341
|
+
sex,
|
|
6342
|
+
`${prefix}vater`,
|
|
6343
|
+
`${prefix}mutter`,
|
|
6344
|
+
`${prefix}elternteil`
|
|
6345
|
+
);
|
|
6301
6346
|
}
|
|
6302
6347
|
child() {
|
|
6303
|
-
const
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
if (this.personN?.isFemale()) {
|
|
6308
|
-
return `${prefix}tochter`;
|
|
6348
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6349
|
+
const sex = sexOf(this.personN);
|
|
6350
|
+
if (level <= 1) {
|
|
6351
|
+
return pick(sex, "Sohn", "Tochter", "Kind");
|
|
6309
6352
|
}
|
|
6310
|
-
|
|
6353
|
+
const prefix = ur(level - 2);
|
|
6354
|
+
return pick(
|
|
6355
|
+
sex,
|
|
6356
|
+
`${prefix}Enkel`,
|
|
6357
|
+
`${prefix}Enkelin`,
|
|
6358
|
+
`${prefix}Enkelkind`
|
|
6359
|
+
);
|
|
6311
6360
|
}
|
|
6312
6361
|
sibling() {
|
|
6313
|
-
|
|
6314
|
-
return "bruder";
|
|
6315
|
-
}
|
|
6316
|
-
if (this.personN?.isFemale()) {
|
|
6317
|
-
return "schwester";
|
|
6318
|
-
}
|
|
6319
|
-
return "geschwister";
|
|
6362
|
+
return pick(sexOf(this.personN), "Bruder", "Schwester", "Geschwister");
|
|
6320
6363
|
}
|
|
6321
6364
|
halfBlood(relation) {
|
|
6322
6365
|
if (!relation || !this.isHalfBlood) {
|
|
6323
6366
|
return relation ?? "";
|
|
6324
6367
|
}
|
|
6325
|
-
if (
|
|
6368
|
+
if (/[\s-]/.test(relation) || /^(Groß|Ur)/.test(relation)) {
|
|
6326
6369
|
return `Halb-${relation}`;
|
|
6327
6370
|
}
|
|
6328
|
-
return `Halb${relation}`;
|
|
6371
|
+
return `Halb${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6329
6372
|
}
|
|
6330
6373
|
spouse() {
|
|
6331
|
-
|
|
6332
|
-
return "Ehemann";
|
|
6333
|
-
}
|
|
6334
|
-
if (this.personN?.isFemale()) {
|
|
6335
|
-
return "Ehefrau";
|
|
6336
|
-
}
|
|
6337
|
-
return "Ehepartner";
|
|
6374
|
+
return pick(sexOf(this.personN), "Ehemann", "Ehefrau", "Ehepartner");
|
|
6338
6375
|
}
|
|
6339
6376
|
ofSpouse(relation) {
|
|
6340
6377
|
if (!relation) {
|
|
6341
6378
|
return "";
|
|
6342
6379
|
}
|
|
6343
|
-
const
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
}
|
|
6351
|
-
return `${relation} des ${spouseType}s`;
|
|
6380
|
+
const spouseType = pick(
|
|
6381
|
+
sexOf(this.path?.[1].indi),
|
|
6382
|
+
"Ehemann",
|
|
6383
|
+
"Ehefrau",
|
|
6384
|
+
"Ehepartner"
|
|
6385
|
+
);
|
|
6386
|
+
return `${relation} ${genitiveArticle(spouseType)}`;
|
|
6352
6387
|
}
|
|
6353
6388
|
spouseOf(relation) {
|
|
6354
6389
|
if (!relation) {
|
|
6355
6390
|
return "";
|
|
6356
6391
|
}
|
|
6357
|
-
const
|
|
6358
|
-
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
spouseType = "Ehefrau";
|
|
6364
|
-
}
|
|
6392
|
+
const spouseType = pick(
|
|
6393
|
+
sexOf(this.path?.[this.path.length - 1].indi),
|
|
6394
|
+
"Ehemann",
|
|
6395
|
+
"Ehefrau",
|
|
6396
|
+
"Ehepartner"
|
|
6397
|
+
);
|
|
6365
6398
|
return `${spouseType} von ${relation}`;
|
|
6366
6399
|
}
|
|
6367
6400
|
of(relation) {
|
|
@@ -6379,8 +6412,8 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6379
6412
|
if (!name || !relation) {
|
|
6380
6413
|
return relation ?? "";
|
|
6381
6414
|
}
|
|
6382
|
-
if (relation.includes(" des ") || relation.includes(" von ")) {
|
|
6383
|
-
return relation.replace(/ (des|von) /, ` $1 ${name}s `);
|
|
6415
|
+
if (relation.includes(" des ") || relation.includes(" der ") || relation.includes(" von ")) {
|
|
6416
|
+
return relation.replace(/ (des|der|von) /, ` $1 ${name}s `);
|
|
6384
6417
|
}
|
|
6385
6418
|
return `${name}s ${relation}`;
|
|
6386
6419
|
}
|
|
@@ -6410,50 +6443,82 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6410
6443
|
if (!relation || !this.pathN?.relation) {
|
|
6411
6444
|
return relation ?? "";
|
|
6412
6445
|
}
|
|
6413
|
-
|
|
6446
|
+
const prefix = parentRelationsDe[this.pathN.relation];
|
|
6447
|
+
if (!prefix) {
|
|
6448
|
+
return relation;
|
|
6449
|
+
}
|
|
6450
|
+
if (prefix.endsWith("-") || prefix.endsWith(" ")) {
|
|
6451
|
+
return `${prefix}${relation}`;
|
|
6452
|
+
}
|
|
6453
|
+
return `${prefix}${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6414
6454
|
}
|
|
6415
6455
|
};
|
|
6416
6456
|
|
|
6417
6457
|
// src/kinship-translator/patterns.fr.ts
|
|
6458
|
+
var parentRelationsFr = {
|
|
6459
|
+
step: "step",
|
|
6460
|
+
foster: "foster",
|
|
6461
|
+
adopted: "adopted"
|
|
6462
|
+
};
|
|
6418
6463
|
var InLawsFr = {
|
|
6419
6464
|
"conjoint de (enfant|fille|fils)": "beau-fils/belle-fille",
|
|
6420
6465
|
"\xE9pouse de (enfant|fille|fils)": "belle-fille",
|
|
6421
6466
|
"mari de (enfant|fille|fils)": "gendre",
|
|
6422
|
-
"m\xE8re du
|
|
6423
|
-
"p\xE8re du
|
|
6424
|
-
"parent du
|
|
6467
|
+
"m\xE8re (du mari|du conjoint|de l'\xE9pouse)": "belle-m\xE8re",
|
|
6468
|
+
"p\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-p\xE8re",
|
|
6469
|
+
"parent (du mari|du conjoint|de l'\xE9pouse)": "beau-parent",
|
|
6425
6470
|
"\xE9pouse de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "belle-s\u0153ur",
|
|
6426
6471
|
"mari de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re",
|
|
6427
6472
|
"conjoint de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re/belle-s\u0153ur",
|
|
6428
|
-
"(demi-)?s\u0153ur du
|
|
6429
|
-
"(demi-)?fr\xE8re du
|
|
6430
|
-
"(demi-)?fr\xE8re/s\u0153ur du
|
|
6473
|
+
"(demi-)?s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "belle-s\u0153ur",
|
|
6474
|
+
"(demi-)?fr\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re",
|
|
6475
|
+
"(demi-)?fr\xE8re/s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re/belle-s\u0153ur"
|
|
6431
6476
|
};
|
|
6432
6477
|
|
|
6433
6478
|
// src/kinship-translator/kinship-translator.fr.ts
|
|
6434
|
-
var
|
|
6435
|
-
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
return `arri\xE8re${level - 2}-grand-`;
|
|
6479
|
+
var sexOf2 = (person) => {
|
|
6480
|
+
if (person?.isMale?.()) {
|
|
6481
|
+
return "m";
|
|
6482
|
+
}
|
|
6483
|
+
if (person?.isFemale?.()) {
|
|
6484
|
+
return "f";
|
|
6485
|
+
}
|
|
6486
|
+
return "n";
|
|
6487
|
+
};
|
|
6488
|
+
var pick2 = (sex, male, female, neutral) => {
|
|
6489
|
+
if (sex === "m") {
|
|
6490
|
+
return male;
|
|
6447
6491
|
}
|
|
6492
|
+
if (sex === "f") {
|
|
6493
|
+
return female;
|
|
6494
|
+
}
|
|
6495
|
+
return neutral;
|
|
6496
|
+
};
|
|
6497
|
+
var arriere = (count) => count > 0 ? "arri\xE8re-".repeat(count) : "";
|
|
6498
|
+
var frenchOrdinal = (n) => n === 1 ? "1er" : `${n}e`;
|
|
6499
|
+
var isFeminineRelation = (relation) => /mère|fille|sœur|tante|nièce|cousine|épouse/.test(relation);
|
|
6500
|
+
var ofSpousePrep = (spouseType) => {
|
|
6501
|
+
if (spouseType === "\xE9pouse") {
|
|
6502
|
+
return "de l'";
|
|
6503
|
+
}
|
|
6504
|
+
return "du ";
|
|
6505
|
+
};
|
|
6506
|
+
var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
6448
6507
|
indirect() {
|
|
6449
6508
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6450
6509
|
if (degree > 0) {
|
|
6451
6510
|
degree = degree - 1;
|
|
6452
6511
|
}
|
|
6453
|
-
|
|
6454
|
-
|
|
6512
|
+
const cousin = pick2(
|
|
6513
|
+
sexOf2(this.personN),
|
|
6514
|
+
"cousin",
|
|
6515
|
+
"cousine",
|
|
6516
|
+
"cousin/cousine"
|
|
6517
|
+
);
|
|
6518
|
+
if (degree <= 1) {
|
|
6519
|
+
return cousin;
|
|
6455
6520
|
}
|
|
6456
|
-
return
|
|
6521
|
+
return `${cousin} au ${frenchOrdinal(degree)} degr\xE9`;
|
|
6457
6522
|
}
|
|
6458
6523
|
removal() {
|
|
6459
6524
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6464,56 +6529,57 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6464
6529
|
if (!degree) {
|
|
6465
6530
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6466
6531
|
}
|
|
6467
|
-
return
|
|
6532
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 \xE9loign\xE9`;
|
|
6468
6533
|
}
|
|
6469
6534
|
auncle() {
|
|
6470
|
-
const
|
|
6471
|
-
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
|
|
6475
|
-
return `${prefix}tante`;
|
|
6535
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6536
|
+
const sex = sexOf2(this.personN);
|
|
6537
|
+
const base = pick2(sex, "oncle", "tante", "oncle/tante");
|
|
6538
|
+
if (level <= 1) {
|
|
6539
|
+
return base;
|
|
6476
6540
|
}
|
|
6477
|
-
|
|
6541
|
+
const grands = pick2(
|
|
6542
|
+
sex,
|
|
6543
|
+
"grand-oncle",
|
|
6544
|
+
"grand-tante",
|
|
6545
|
+
"grand-oncle/tante"
|
|
6546
|
+
);
|
|
6547
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6478
6548
|
}
|
|
6479
6549
|
nibling() {
|
|
6480
|
-
const
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
if (this.personN?.isFemale()) {
|
|
6485
|
-
return `${prefix}ni\xE8ce`;
|
|
6550
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6551
|
+
const sex = sexOf2(this.personN);
|
|
6552
|
+
if (level <= 1) {
|
|
6553
|
+
return pick2(sex, "neveu", "ni\xE8ce", "neveu/ni\xE8ce");
|
|
6486
6554
|
}
|
|
6487
|
-
|
|
6555
|
+
const grands = pick2(
|
|
6556
|
+
sex,
|
|
6557
|
+
"grand-neveu",
|
|
6558
|
+
"grande-ni\xE8ce",
|
|
6559
|
+
"grand-neveu/grande-ni\xE8ce"
|
|
6560
|
+
);
|
|
6561
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6488
6562
|
}
|
|
6489
6563
|
parent() {
|
|
6490
|
-
const
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
if (this.personN?.isFemale()) {
|
|
6495
|
-
return `${prefix}m\xE8re`;
|
|
6564
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6565
|
+
const sex = sexOf2(this.personN);
|
|
6566
|
+
if (level <= 1) {
|
|
6567
|
+
return pick2(sex, "p\xE8re", "m\xE8re", "parent");
|
|
6496
6568
|
}
|
|
6497
|
-
|
|
6569
|
+
const grands = pick2(sex, "grand-p\xE8re", "grand-m\xE8re", "grand-parent");
|
|
6570
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6498
6571
|
}
|
|
6499
6572
|
child() {
|
|
6500
|
-
const
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
if (this.personN?.isFemale()) {
|
|
6505
|
-
return `${prefix}fille`;
|
|
6573
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6574
|
+
const sex = sexOf2(this.personN);
|
|
6575
|
+
if (level <= 1) {
|
|
6576
|
+
return pick2(sex, "fils", "fille", "enfant");
|
|
6506
6577
|
}
|
|
6507
|
-
|
|
6578
|
+
const petits = pick2(sex, "petit-fils", "petite-fille", "petit-enfant");
|
|
6579
|
+
return `${arriere(level - 2)}${petits}`;
|
|
6508
6580
|
}
|
|
6509
6581
|
sibling() {
|
|
6510
|
-
|
|
6511
|
-
return "fr\xE8re";
|
|
6512
|
-
}
|
|
6513
|
-
if (this.personN?.isFemale()) {
|
|
6514
|
-
return "s\u0153ur";
|
|
6515
|
-
}
|
|
6516
|
-
return "fr\xE8re/s\u0153ur";
|
|
6582
|
+
return pick2(sexOf2(this.personN), "fr\xE8re", "s\u0153ur", "fr\xE8re/s\u0153ur");
|
|
6517
6583
|
}
|
|
6518
6584
|
halfBlood(relation) {
|
|
6519
6585
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -6522,40 +6588,30 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6522
6588
|
return `demi-${relation}`;
|
|
6523
6589
|
}
|
|
6524
6590
|
spouse() {
|
|
6525
|
-
|
|
6526
|
-
return "mari";
|
|
6527
|
-
}
|
|
6528
|
-
if (this.personN?.isFemale()) {
|
|
6529
|
-
return "\xE9pouse";
|
|
6530
|
-
}
|
|
6531
|
-
return "conjoint";
|
|
6591
|
+
return pick2(sexOf2(this.personN), "mari", "\xE9pouse", "conjoint");
|
|
6532
6592
|
}
|
|
6533
6593
|
ofSpouse(relation) {
|
|
6534
6594
|
if (!relation) {
|
|
6535
6595
|
return "";
|
|
6536
6596
|
}
|
|
6537
|
-
const
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
|
|
6541
|
-
|
|
6542
|
-
|
|
6543
|
-
|
|
6544
|
-
}
|
|
6545
|
-
return `${relation} du ${spouseType}`;
|
|
6597
|
+
const spouseType = pick2(
|
|
6598
|
+
sexOf2(this.path?.[1].indi),
|
|
6599
|
+
"mari",
|
|
6600
|
+
"\xE9pouse",
|
|
6601
|
+
"conjoint"
|
|
6602
|
+
);
|
|
6603
|
+
return `${relation} ${ofSpousePrep(spouseType)}${spouseType}`;
|
|
6546
6604
|
}
|
|
6547
6605
|
spouseOf(relation) {
|
|
6548
6606
|
if (!relation) {
|
|
6549
6607
|
return "";
|
|
6550
6608
|
}
|
|
6551
|
-
const
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
spouseType = "\xE9pouse";
|
|
6558
|
-
}
|
|
6609
|
+
const spouseType = pick2(
|
|
6610
|
+
sexOf2(this.path?.[this.path.length - 1].indi),
|
|
6611
|
+
"mari",
|
|
6612
|
+
"\xE9pouse",
|
|
6613
|
+
"conjoint"
|
|
6614
|
+
);
|
|
6559
6615
|
return `${spouseType} de ${relation}`;
|
|
6560
6616
|
}
|
|
6561
6617
|
of(relation) {
|
|
@@ -6576,6 +6632,9 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6576
6632
|
if (relation.includes(" du ") || relation.includes(" de ")) {
|
|
6577
6633
|
return relation.replace(/ (du|de) /, ` $1 ${name} `);
|
|
6578
6634
|
}
|
|
6635
|
+
if (relation.includes(" de l'")) {
|
|
6636
|
+
return relation.replace(" de l'", ` de ${name} l'`);
|
|
6637
|
+
}
|
|
6579
6638
|
return `${relation} de ${name}`;
|
|
6580
6639
|
}
|
|
6581
6640
|
inLaw(relation) {
|
|
@@ -6604,50 +6663,118 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6604
6663
|
if (!relation || !this.pathN?.relation) {
|
|
6605
6664
|
return relation ?? "";
|
|
6606
6665
|
}
|
|
6607
|
-
|
|
6666
|
+
const kind = parentRelationsFr[this.pathN.relation];
|
|
6667
|
+
if (!kind) {
|
|
6668
|
+
return relation;
|
|
6669
|
+
}
|
|
6670
|
+
if (kind === "step") {
|
|
6671
|
+
return `${isFeminineRelation(relation) ? "belle-" : "beau-"}${relation}`;
|
|
6672
|
+
}
|
|
6673
|
+
if (kind === "adopted") {
|
|
6674
|
+
return `${relation} ${isFeminineRelation(relation) ? "adoptive" : "adoptif"}`;
|
|
6675
|
+
}
|
|
6676
|
+
if (kind === "foster") {
|
|
6677
|
+
return `${relation} d'accueil`;
|
|
6678
|
+
}
|
|
6679
|
+
return relation;
|
|
6608
6680
|
}
|
|
6609
6681
|
};
|
|
6610
6682
|
|
|
6611
6683
|
// src/kinship-translator/patterns.es.ts
|
|
6684
|
+
var parentRelationsEs = {
|
|
6685
|
+
step: {
|
|
6686
|
+
padre: "padrastro",
|
|
6687
|
+
madre: "madrastra",
|
|
6688
|
+
hijo: "hijastro",
|
|
6689
|
+
hija: "hijastra",
|
|
6690
|
+
hermano: "hermanastro",
|
|
6691
|
+
hermana: "hermanastra",
|
|
6692
|
+
abuelo: "abuelastro",
|
|
6693
|
+
abuela: "abuelastra"
|
|
6694
|
+
}
|
|
6695
|
+
};
|
|
6612
6696
|
var InLawsEs = {
|
|
6613
6697
|
"c\xF3nyuge de (hijo/hija|hija|hijo)": "yerno/nuera",
|
|
6614
6698
|
"esposa de (hijo/hija|hija|hijo)": "nuera",
|
|
6615
6699
|
"esposo de (hijo/hija|hija|hijo)": "yerno",
|
|
6616
|
-
"madre del
|
|
6617
|
-
"padre del
|
|
6618
|
-
"padre/madre del
|
|
6700
|
+
"madre (del c\xF3nyuge|del esposo|de la esposa)": "suegra",
|
|
6701
|
+
"padre (del c\xF3nyuge|del esposo|de la esposa)": "suegro",
|
|
6702
|
+
"padre/madre (del c\xF3nyuge|del esposo|de la esposa)": "suegro/suegra",
|
|
6619
6703
|
"esposa de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ada",
|
|
6620
6704
|
"esposo de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado",
|
|
6621
6705
|
"c\xF3nyuge de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado/cu\xF1ada",
|
|
6622
|
-
"(medio |media |medio/a )?hermana del
|
|
6623
|
-
"(medio |media |medio/a )?hermano del
|
|
6624
|
-
"(medio |media |medio/a )?hermano/hermana del
|
|
6706
|
+
"(medio |media |medio/a )?hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ada",
|
|
6707
|
+
"(medio |media |medio/a )?hermano (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado",
|
|
6708
|
+
"(medio |media |medio/a )?hermano/hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado/cu\xF1ada"
|
|
6625
6709
|
};
|
|
6626
6710
|
|
|
6627
6711
|
// src/kinship-translator/kinship-translator.es.ts
|
|
6628
|
-
var
|
|
6629
|
-
|
|
6630
|
-
|
|
6631
|
-
|
|
6632
|
-
|
|
6633
|
-
|
|
6634
|
-
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
return `t\xE1tara${level - 2}-abuel`;
|
|
6712
|
+
var sexOf3 = (person) => {
|
|
6713
|
+
if (person?.isMale?.()) {
|
|
6714
|
+
return "m";
|
|
6715
|
+
}
|
|
6716
|
+
if (person?.isFemale?.()) {
|
|
6717
|
+
return "f";
|
|
6718
|
+
}
|
|
6719
|
+
return "n";
|
|
6720
|
+
};
|
|
6721
|
+
var pick3 = (sex, male, female, neutral) => {
|
|
6722
|
+
if (sex === "m") {
|
|
6723
|
+
return male;
|
|
6641
6724
|
}
|
|
6725
|
+
if (sex === "f") {
|
|
6726
|
+
return female;
|
|
6727
|
+
}
|
|
6728
|
+
return neutral;
|
|
6729
|
+
};
|
|
6730
|
+
var SPANISH_ORDINALS_M = [
|
|
6731
|
+
"",
|
|
6732
|
+
"",
|
|
6733
|
+
"segundo",
|
|
6734
|
+
"tercero",
|
|
6735
|
+
"cuarto",
|
|
6736
|
+
"quinto",
|
|
6737
|
+
"sexto",
|
|
6738
|
+
"s\xE9ptimo",
|
|
6739
|
+
"octavo",
|
|
6740
|
+
"noveno",
|
|
6741
|
+
"d\xE9cimo"
|
|
6742
|
+
];
|
|
6743
|
+
var SPANISH_ORDINALS_F = [
|
|
6744
|
+
"",
|
|
6745
|
+
"",
|
|
6746
|
+
"segunda",
|
|
6747
|
+
"tercera",
|
|
6748
|
+
"cuarta",
|
|
6749
|
+
"quinta",
|
|
6750
|
+
"sexta",
|
|
6751
|
+
"s\xE9ptima",
|
|
6752
|
+
"octava",
|
|
6753
|
+
"novena",
|
|
6754
|
+
"d\xE9cima"
|
|
6755
|
+
];
|
|
6756
|
+
var spanishOrdinal = (n, sex) => {
|
|
6757
|
+
const list = sex === "f" ? SPANISH_ORDINALS_F : SPANISH_ORDINALS_M;
|
|
6758
|
+
return list[n] ?? `${n}.\xBA`;
|
|
6759
|
+
};
|
|
6760
|
+
var ofSpousePrep2 = (spouseType) => {
|
|
6761
|
+
if (spouseType === "esposa") {
|
|
6762
|
+
return "de la ";
|
|
6763
|
+
}
|
|
6764
|
+
return "del ";
|
|
6765
|
+
};
|
|
6766
|
+
var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
6642
6767
|
indirect() {
|
|
6643
6768
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6644
6769
|
if (degree > 0) {
|
|
6645
6770
|
degree = degree - 1;
|
|
6646
6771
|
}
|
|
6647
|
-
|
|
6648
|
-
|
|
6772
|
+
const sex = sexOf3(this.personN);
|
|
6773
|
+
const cousin = pick3(sex, "primo", "prima", "primo/prima");
|
|
6774
|
+
if (degree <= 1) {
|
|
6775
|
+
return cousin;
|
|
6649
6776
|
}
|
|
6650
|
-
return
|
|
6777
|
+
return `${cousin} ${spanishOrdinal(degree, sex)}`;
|
|
6651
6778
|
}
|
|
6652
6779
|
removal() {
|
|
6653
6780
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6658,56 +6785,133 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6658
6785
|
if (!degree) {
|
|
6659
6786
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6660
6787
|
}
|
|
6661
|
-
return
|
|
6788
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 separado`;
|
|
6662
6789
|
}
|
|
6663
6790
|
auncle() {
|
|
6664
|
-
const
|
|
6665
|
-
|
|
6666
|
-
|
|
6791
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6792
|
+
const sex = sexOf3(this.personN);
|
|
6793
|
+
if (level <= 1) {
|
|
6794
|
+
return pick3(sex, "t\xEDo", "t\xEDa", "t\xEDo/t\xEDa");
|
|
6667
6795
|
}
|
|
6668
|
-
if (
|
|
6669
|
-
return
|
|
6796
|
+
if (level === 2) {
|
|
6797
|
+
return pick3(sex, "t\xEDo abuelo", "t\xEDa abuela", "t\xEDo/t\xEDa abuelo");
|
|
6798
|
+
}
|
|
6799
|
+
if (level === 3) {
|
|
6800
|
+
return pick3(
|
|
6801
|
+
sex,
|
|
6802
|
+
"t\xEDo bisabuelo",
|
|
6803
|
+
"t\xEDa bisabuela",
|
|
6804
|
+
"t\xEDo/t\xEDa bisabuelo"
|
|
6805
|
+
);
|
|
6670
6806
|
}
|
|
6671
|
-
return
|
|
6807
|
+
return pick3(
|
|
6808
|
+
sex,
|
|
6809
|
+
`t\xEDo abuelo (${level - 1}.\xBA)`,
|
|
6810
|
+
`t\xEDa abuela (${level - 1}.\xAA)`,
|
|
6811
|
+
`t\xEDo/t\xEDa abuelo (${level - 1}.\xBA)`
|
|
6812
|
+
);
|
|
6672
6813
|
}
|
|
6673
6814
|
nibling() {
|
|
6674
|
-
const
|
|
6675
|
-
|
|
6676
|
-
|
|
6815
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6816
|
+
const sex = sexOf3(this.personN);
|
|
6817
|
+
if (level <= 1) {
|
|
6818
|
+
return pick3(sex, "sobrino", "sobrina", "sobrino/sobrina");
|
|
6677
6819
|
}
|
|
6678
|
-
if (
|
|
6679
|
-
return
|
|
6820
|
+
if (level === 2) {
|
|
6821
|
+
return pick3(
|
|
6822
|
+
sex,
|
|
6823
|
+
"sobrino nieto",
|
|
6824
|
+
"sobrina nieta",
|
|
6825
|
+
"sobrino/sobrina nieto"
|
|
6826
|
+
);
|
|
6680
6827
|
}
|
|
6681
|
-
|
|
6828
|
+
if (level === 3) {
|
|
6829
|
+
return pick3(
|
|
6830
|
+
sex,
|
|
6831
|
+
"sobrino bisnieto",
|
|
6832
|
+
"sobrina bisnieta",
|
|
6833
|
+
"sobrino/sobrina bisnieto"
|
|
6834
|
+
);
|
|
6835
|
+
}
|
|
6836
|
+
return pick3(
|
|
6837
|
+
sex,
|
|
6838
|
+
`sobrino nieto (${level - 1}.\xBA)`,
|
|
6839
|
+
`sobrina nieta (${level - 1}.\xAA)`,
|
|
6840
|
+
`sobrino/sobrina nieto (${level - 1}.\xBA)`
|
|
6841
|
+
);
|
|
6682
6842
|
}
|
|
6683
6843
|
parent() {
|
|
6684
|
-
const
|
|
6685
|
-
|
|
6686
|
-
|
|
6844
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6845
|
+
const sex = sexOf3(this.personN);
|
|
6846
|
+
if (level <= 1) {
|
|
6847
|
+
return pick3(sex, "padre", "madre", "padre/madre");
|
|
6687
6848
|
}
|
|
6688
|
-
if (
|
|
6689
|
-
return
|
|
6849
|
+
if (level === 2) {
|
|
6850
|
+
return pick3(sex, "abuelo", "abuela", "abuelo/abuela");
|
|
6851
|
+
}
|
|
6852
|
+
if (level === 3) {
|
|
6853
|
+
return pick3(sex, "bisabuelo", "bisabuela", "bisabuelo/bisabuela");
|
|
6690
6854
|
}
|
|
6691
|
-
|
|
6855
|
+
if (level === 4) {
|
|
6856
|
+
return pick3(
|
|
6857
|
+
sex,
|
|
6858
|
+
"tatarabuelo",
|
|
6859
|
+
"tatarabuela",
|
|
6860
|
+
"tatarabuelo/tatarabuela"
|
|
6861
|
+
);
|
|
6862
|
+
}
|
|
6863
|
+
if (level === 5) {
|
|
6864
|
+
return pick3(
|
|
6865
|
+
sex,
|
|
6866
|
+
"trastatarabuelo",
|
|
6867
|
+
"trastatarabuela",
|
|
6868
|
+
"trastatarabuelo/trastatarabuela"
|
|
6869
|
+
);
|
|
6870
|
+
}
|
|
6871
|
+
return pick3(
|
|
6872
|
+
sex,
|
|
6873
|
+
`abuelo (${level}.\xBA)`,
|
|
6874
|
+
`abuela (${level}.\xAA)`,
|
|
6875
|
+
`abuelo/abuela (${level}.\xBA)`
|
|
6876
|
+
);
|
|
6692
6877
|
}
|
|
6693
6878
|
child() {
|
|
6694
|
-
const
|
|
6695
|
-
|
|
6696
|
-
|
|
6879
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6880
|
+
const sex = sexOf3(this.personN);
|
|
6881
|
+
if (level <= 1) {
|
|
6882
|
+
return pick3(sex, "hijo", "hija", "hijo/hija");
|
|
6697
6883
|
}
|
|
6698
|
-
if (
|
|
6699
|
-
return
|
|
6884
|
+
if (level === 2) {
|
|
6885
|
+
return pick3(sex, "nieto", "nieta", "nieto/nieta");
|
|
6700
6886
|
}
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
sibling() {
|
|
6704
|
-
if (this.personN?.isMale()) {
|
|
6705
|
-
return "hermano";
|
|
6887
|
+
if (level === 3) {
|
|
6888
|
+
return pick3(sex, "bisnieto", "bisnieta", "bisnieto/bisnieta");
|
|
6706
6889
|
}
|
|
6707
|
-
if (
|
|
6708
|
-
return
|
|
6890
|
+
if (level === 4) {
|
|
6891
|
+
return pick3(
|
|
6892
|
+
sex,
|
|
6893
|
+
"tataranieto",
|
|
6894
|
+
"tataranieta",
|
|
6895
|
+
"tataranieto/tataranieta"
|
|
6896
|
+
);
|
|
6897
|
+
}
|
|
6898
|
+
if (level === 5) {
|
|
6899
|
+
return pick3(
|
|
6900
|
+
sex,
|
|
6901
|
+
"trastataranieto",
|
|
6902
|
+
"trastataranieta",
|
|
6903
|
+
"trastataranieto/trastataranieta"
|
|
6904
|
+
);
|
|
6709
6905
|
}
|
|
6710
|
-
return
|
|
6906
|
+
return pick3(
|
|
6907
|
+
sex,
|
|
6908
|
+
`nieto (${level}.\xBA)`,
|
|
6909
|
+
`nieta (${level}.\xAA)`,
|
|
6910
|
+
`nieto/nieta (${level}.\xBA)`
|
|
6911
|
+
);
|
|
6912
|
+
}
|
|
6913
|
+
sibling() {
|
|
6914
|
+
return pick3(sexOf3(this.personN), "hermano", "hermana", "hermano/hermana");
|
|
6711
6915
|
}
|
|
6712
6916
|
halfBlood(relation) {
|
|
6713
6917
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -6722,40 +6926,30 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6722
6926
|
return `medio/a ${relation}`;
|
|
6723
6927
|
}
|
|
6724
6928
|
spouse() {
|
|
6725
|
-
|
|
6726
|
-
return "esposo";
|
|
6727
|
-
}
|
|
6728
|
-
if (this.personN?.isFemale()) {
|
|
6729
|
-
return "esposa";
|
|
6730
|
-
}
|
|
6731
|
-
return "c\xF3nyuge";
|
|
6929
|
+
return pick3(sexOf3(this.personN), "esposo", "esposa", "c\xF3nyuge");
|
|
6732
6930
|
}
|
|
6733
6931
|
ofSpouse(relation) {
|
|
6734
6932
|
if (!relation) {
|
|
6735
6933
|
return "";
|
|
6736
6934
|
}
|
|
6737
|
-
const
|
|
6738
|
-
|
|
6739
|
-
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
}
|
|
6745
|
-
return `${relation} del ${spouseType}`;
|
|
6935
|
+
const spouseType = pick3(
|
|
6936
|
+
sexOf3(this.path?.[1].indi),
|
|
6937
|
+
"esposo",
|
|
6938
|
+
"esposa",
|
|
6939
|
+
"c\xF3nyuge"
|
|
6940
|
+
);
|
|
6941
|
+
return `${relation} ${ofSpousePrep2(spouseType)}${spouseType}`;
|
|
6746
6942
|
}
|
|
6747
6943
|
spouseOf(relation) {
|
|
6748
6944
|
if (!relation) {
|
|
6749
6945
|
return "";
|
|
6750
6946
|
}
|
|
6751
|
-
const
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
spouseType = "esposa";
|
|
6758
|
-
}
|
|
6947
|
+
const spouseType = pick3(
|
|
6948
|
+
sexOf3(this.path?.[this.path.length - 1].indi),
|
|
6949
|
+
"esposo",
|
|
6950
|
+
"esposa",
|
|
6951
|
+
"c\xF3nyuge"
|
|
6952
|
+
);
|
|
6759
6953
|
return `${spouseType} de ${relation}`;
|
|
6760
6954
|
}
|
|
6761
6955
|
of(relation) {
|
|
@@ -6773,8 +6967,8 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6773
6967
|
if (!name || !relation) {
|
|
6774
6968
|
return relation ?? "";
|
|
6775
6969
|
}
|
|
6776
|
-
if (relation.includes(" del ") || relation.includes(" de ")) {
|
|
6777
|
-
return relation.replace(/ (del|de) /, ` $1 ${name} `);
|
|
6970
|
+
if (relation.includes(" del ") || relation.includes(" de la ") || relation.includes(" de ")) {
|
|
6971
|
+
return relation.replace(/ (del|de la|de) /, ` $1 ${name} `);
|
|
6778
6972
|
}
|
|
6779
6973
|
return `${relation} de ${name}`;
|
|
6780
6974
|
}
|
|
@@ -6804,7 +6998,20 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
6804
6998
|
if (!relation || !this.pathN?.relation) {
|
|
6805
6999
|
return relation ?? "";
|
|
6806
7000
|
}
|
|
6807
|
-
|
|
7001
|
+
const mapped = parentRelationsEs[this.pathN.relation]?.[relation];
|
|
7002
|
+
if (mapped) {
|
|
7003
|
+
return mapped;
|
|
7004
|
+
}
|
|
7005
|
+
if (this.pathN.relation === "step") {
|
|
7006
|
+
return `${relation} pol\xEDtico`;
|
|
7007
|
+
}
|
|
7008
|
+
if (this.pathN.relation === "adopted") {
|
|
7009
|
+
return `${relation} adoptivo`;
|
|
7010
|
+
}
|
|
7011
|
+
if (this.pathN.relation === "foster") {
|
|
7012
|
+
return `${relation} de acogida`;
|
|
7013
|
+
}
|
|
7014
|
+
return relation;
|
|
6808
7015
|
}
|
|
6809
7016
|
};
|
|
6810
7017
|
|
|
@@ -6813,15 +7020,35 @@ var InLawsRu = {
|
|
|
6813
7020
|
"\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",
|
|
6814
7021
|
"\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",
|
|
6815
7022
|
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
6816
|
-
"\u043C\u0430\u0442\u044C
|
|
6817
|
-
"\
|
|
6818
|
-
"\
|
|
7023
|
+
"\u043C\u0430\u0442\u044C \u0436\u0435\u043D\u044B": "\u0442\u0451\u0449\u0430",
|
|
7024
|
+
"\u043C\u0430\u0442\u044C \u043C\u0443\u0436\u0430": "\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7025
|
+
"\u043C\u0430\u0442\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0451\u0449\u0430/\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7026
|
+
"\u043E\u0442\u0435\u0446 \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C",
|
|
7027
|
+
"\u043E\u0442\u0435\u0446 \u043C\u0443\u0436\u0430": "\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7028
|
+
"\u043E\u0442\u0435\u0446 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7029
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7030
|
+
"\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",
|
|
7031
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
6819
7032
|
"\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",
|
|
6820
7033
|
"\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",
|
|
6821
7034
|
"\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",
|
|
6822
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430
|
|
6823
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\
|
|
6824
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\
|
|
7035
|
+
"(\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",
|
|
7036
|
+
"(\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",
|
|
7037
|
+
"(\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",
|
|
7038
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u0436\u0435\u043D\u044B": "\u0448\u0443\u0440\u0438\u043D",
|
|
7039
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u043C\u0443\u0436\u0430": "\u0434\u0435\u0432\u0435\u0440\u044C",
|
|
7040
|
+
"(\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",
|
|
7041
|
+
"(\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",
|
|
7042
|
+
"(\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",
|
|
7043
|
+
"(\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"
|
|
7044
|
+
};
|
|
7045
|
+
var parentRelationsRu = {
|
|
7046
|
+
step: {
|
|
7047
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0447\u0438\u043C",
|
|
7048
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0447\u0435\u0445\u0430",
|
|
7049
|
+
\u0441\u044B\u043D: "\u043F\u0430\u0441\u044B\u043D\u043E\u043A",
|
|
7050
|
+
\u0434\u043E\u0447\u044C: "\u043F\u0430\u0434\u0447\u0435\u0440\u0438\u0446\u0430"
|
|
7051
|
+
}
|
|
6825
7052
|
};
|
|
6826
7053
|
|
|
6827
7054
|
// src/kinship-translator/kinship-translator.ru.ts
|
|
@@ -6852,7 +7079,7 @@ var cousinWord = (degree, sex) => {
|
|
|
6852
7079
|
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
6853
7080
|
};
|
|
6854
7081
|
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
6855
|
-
var
|
|
7082
|
+
var sexOf4 = (person) => {
|
|
6856
7083
|
if (person?.isMale?.()) {
|
|
6857
7084
|
return "m";
|
|
6858
7085
|
}
|
|
@@ -6867,7 +7094,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6867
7094
|
if (degree > 0) {
|
|
6868
7095
|
degree = degree - 1;
|
|
6869
7096
|
}
|
|
6870
|
-
return cousinWord(degree,
|
|
7097
|
+
return cousinWord(degree, sexOf4(this.personN));
|
|
6871
7098
|
}
|
|
6872
7099
|
removal() {
|
|
6873
7100
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6879,35 +7106,53 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6879
7106
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6880
7107
|
}
|
|
6881
7108
|
const removed = Math.abs(level);
|
|
6882
|
-
return `${cousinWord(degree,
|
|
7109
|
+
return `${cousinWord(degree, sexOf4(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
6883
7110
|
}
|
|
6884
7111
|
auncle() {
|
|
6885
7112
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6886
|
-
const
|
|
6887
|
-
|
|
7113
|
+
const sex = sexOf4(this.personN);
|
|
7114
|
+
if (level <= 1) {
|
|
7115
|
+
if (sex === "m") {
|
|
7116
|
+
return "\u0434\u044F\u0434\u044F";
|
|
7117
|
+
}
|
|
7118
|
+
if (sex === "f") {
|
|
7119
|
+
return "\u0442\u0451\u0442\u044F";
|
|
7120
|
+
}
|
|
7121
|
+
return "\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F";
|
|
7122
|
+
}
|
|
7123
|
+
const pra = praRepeat(level - 2);
|
|
6888
7124
|
if (sex === "m") {
|
|
6889
|
-
return
|
|
7125
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434`;
|
|
6890
7126
|
}
|
|
6891
7127
|
if (sex === "f") {
|
|
6892
|
-
return
|
|
7128
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u0430\u044F ${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
6893
7129
|
}
|
|
6894
|
-
return
|
|
7130
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
6895
7131
|
}
|
|
6896
7132
|
nibling() {
|
|
6897
7133
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6898
|
-
const
|
|
6899
|
-
|
|
7134
|
+
const sex = sexOf4(this.personN);
|
|
7135
|
+
if (level <= 1) {
|
|
7136
|
+
if (sex === "m") {
|
|
7137
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A";
|
|
7138
|
+
}
|
|
7139
|
+
if (sex === "f") {
|
|
7140
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7141
|
+
}
|
|
7142
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7143
|
+
}
|
|
7144
|
+
const pra = praRepeat(level - 2);
|
|
6900
7145
|
if (sex === "m") {
|
|
6901
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7146
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u044B\u0439 \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
6902
7147
|
}
|
|
6903
7148
|
if (sex === "f") {
|
|
6904
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7149
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u0430\u044F \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
6905
7150
|
}
|
|
6906
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7151
|
+
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`;
|
|
6907
7152
|
}
|
|
6908
7153
|
parent() {
|
|
6909
7154
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6910
|
-
const sex =
|
|
7155
|
+
const sex = sexOf4(this.personN);
|
|
6911
7156
|
if (level <= 1) {
|
|
6912
7157
|
if (sex === "m") {
|
|
6913
7158
|
return "\u043E\u0442\u0435\u0446";
|
|
@@ -6937,7 +7182,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6937
7182
|
}
|
|
6938
7183
|
child() {
|
|
6939
7184
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6940
|
-
const sex =
|
|
7185
|
+
const sex = sexOf4(this.personN);
|
|
6941
7186
|
if (level <= 1) {
|
|
6942
7187
|
if (sex === "m") {
|
|
6943
7188
|
return "\u0441\u044B\u043D";
|
|
@@ -6966,14 +7211,14 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6966
7211
|
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
6967
7212
|
}
|
|
6968
7213
|
sibling() {
|
|
6969
|
-
const sex =
|
|
7214
|
+
const sex = sexOf4(this.personN);
|
|
6970
7215
|
if (sex === "m") {
|
|
6971
7216
|
return "\u0431\u0440\u0430\u0442";
|
|
6972
7217
|
}
|
|
6973
7218
|
if (sex === "f") {
|
|
6974
7219
|
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
6975
7220
|
}
|
|
6976
|
-
return "\u0441\
|
|
7221
|
+
return "\u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
6977
7222
|
}
|
|
6978
7223
|
halfBlood(relation) {
|
|
6979
7224
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -6987,7 +7232,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
6987
7232
|
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
6988
7233
|
}
|
|
6989
7234
|
spouse() {
|
|
6990
|
-
const sex =
|
|
7235
|
+
const sex = sexOf4(this.personN);
|
|
6991
7236
|
if (sex === "m") {
|
|
6992
7237
|
return "\u043C\u0443\u0436";
|
|
6993
7238
|
}
|
|
@@ -7001,7 +7246,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7001
7246
|
return "";
|
|
7002
7247
|
}
|
|
7003
7248
|
const spouse = this.path?.[1].indi;
|
|
7004
|
-
const sex =
|
|
7249
|
+
const sex = sexOf4(spouse);
|
|
7005
7250
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7006
7251
|
return `${relation} ${toGenitive(spouseType)}`;
|
|
7007
7252
|
}
|
|
@@ -7010,7 +7255,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7010
7255
|
return "";
|
|
7011
7256
|
}
|
|
7012
7257
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7013
|
-
const sex =
|
|
7258
|
+
const sex = sexOf4(spouse);
|
|
7014
7259
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7015
7260
|
return `${spouseType} ${toGenitive(relation)}`;
|
|
7016
7261
|
}
|
|
@@ -7047,7 +7292,22 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7047
7292
|
if (!relation || !this.pathN?.relation) {
|
|
7048
7293
|
return relation ?? "";
|
|
7049
7294
|
}
|
|
7050
|
-
|
|
7295
|
+
const mapped = parentRelationsRu[this.pathN.relation]?.[relation];
|
|
7296
|
+
if (mapped) {
|
|
7297
|
+
return mapped;
|
|
7298
|
+
}
|
|
7299
|
+
if (this.pathN.relation === "step") {
|
|
7300
|
+
return `\u043D\u0435\u0440\u043E\u0434\u043D\u043E\u0439 ${relation}`;
|
|
7301
|
+
}
|
|
7302
|
+
if (this.pathN.relation === "adopted") {
|
|
7303
|
+
return /сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
7304
|
+
relation
|
|
7305
|
+
) ? `\u043F\u0440\u0438\u0451\u043C\u043D\u0430\u044F ${relation}` : `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7306
|
+
}
|
|
7307
|
+
if (this.pathN.relation === "foster") {
|
|
7308
|
+
return `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7309
|
+
}
|
|
7310
|
+
return relation;
|
|
7051
7311
|
}
|
|
7052
7312
|
};
|
|
7053
7313
|
|
|
@@ -7071,7 +7331,7 @@ var InLawsJa = {
|
|
|
7071
7331
|
};
|
|
7072
7332
|
|
|
7073
7333
|
// src/kinship-translator/kinship-translator.ja.ts
|
|
7074
|
-
var
|
|
7334
|
+
var sexOf5 = (person) => {
|
|
7075
7335
|
if (person?.isMale?.()) {
|
|
7076
7336
|
return "m";
|
|
7077
7337
|
}
|
|
@@ -7080,7 +7340,7 @@ var sexOf2 = (person) => {
|
|
|
7080
7340
|
}
|
|
7081
7341
|
return "n";
|
|
7082
7342
|
};
|
|
7083
|
-
var
|
|
7343
|
+
var pick4 = (sex, male, female, neutral) => {
|
|
7084
7344
|
if (sex === "m") {
|
|
7085
7345
|
return male;
|
|
7086
7346
|
}
|
|
@@ -7093,18 +7353,18 @@ var lineal = (level, sex, kind) => {
|
|
|
7093
7353
|
const L = Math.max(1, level);
|
|
7094
7354
|
if (kind === "asc") {
|
|
7095
7355
|
if (L <= 1) {
|
|
7096
|
-
return
|
|
7356
|
+
return pick4(sex, "\u7236", "\u6BCD", "\u89AA");
|
|
7097
7357
|
}
|
|
7098
7358
|
if (L === 2) {
|
|
7099
|
-
return
|
|
7359
|
+
return pick4(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7100
7360
|
}
|
|
7101
7361
|
if (L === 3) {
|
|
7102
|
-
return
|
|
7362
|
+
return pick4(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7103
7363
|
}
|
|
7104
7364
|
if (L === 4) {
|
|
7105
|
-
return
|
|
7365
|
+
return pick4(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7106
7366
|
}
|
|
7107
|
-
return
|
|
7367
|
+
return pick4(
|
|
7108
7368
|
sex,
|
|
7109
7369
|
`${L - 1}\u4E16\u306E\u7956\u7236`,
|
|
7110
7370
|
`${L - 1}\u4E16\u306E\u7956\u6BCD`,
|
|
@@ -7112,7 +7372,7 @@ var lineal = (level, sex, kind) => {
|
|
|
7112
7372
|
);
|
|
7113
7373
|
}
|
|
7114
7374
|
if (L <= 1) {
|
|
7115
|
-
return
|
|
7375
|
+
return pick4(sex, "\u606F\u5B50", "\u5A18", "\u5B50");
|
|
7116
7376
|
}
|
|
7117
7377
|
if (L === 2) {
|
|
7118
7378
|
return "\u5B6B";
|
|
@@ -7159,52 +7419,52 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7159
7419
|
}
|
|
7160
7420
|
auncle() {
|
|
7161
7421
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7162
|
-
const sex =
|
|
7163
|
-
if (level <=
|
|
7164
|
-
return
|
|
7422
|
+
const sex = sexOf5(this.personN);
|
|
7423
|
+
if (level <= 1) {
|
|
7424
|
+
return pick4(sex, "\u304A\u3058", "\u304A\u3070", "\u304A\u3058/\u304A\u3070");
|
|
7165
7425
|
}
|
|
7166
|
-
if (level ===
|
|
7167
|
-
return
|
|
7426
|
+
if (level === 2) {
|
|
7427
|
+
return pick4(sex, "\u5927\u304A\u3058", "\u5927\u304A\u3070", "\u5927\u304A\u3058/\u5927\u304A\u3070");
|
|
7168
7428
|
}
|
|
7169
|
-
return
|
|
7429
|
+
return pick4(
|
|
7170
7430
|
sex,
|
|
7171
|
-
`${level -
|
|
7172
|
-
`${level -
|
|
7173
|
-
`${level -
|
|
7431
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058`,
|
|
7432
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3070`,
|
|
7433
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058/\u304A\u3070`
|
|
7174
7434
|
);
|
|
7175
7435
|
}
|
|
7176
7436
|
nibling() {
|
|
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, "\u7525", "\u59EA", "\u7525/\u59EA");
|
|
7181
7441
|
}
|
|
7182
|
-
if (level ===
|
|
7183
|
-
return
|
|
7442
|
+
if (level === 2) {
|
|
7443
|
+
return pick4(sex, "\u5927\u7525", "\u5927\u59EA", "\u5927\u7525/\u5927\u59EA");
|
|
7184
7444
|
}
|
|
7185
|
-
return
|
|
7445
|
+
return pick4(
|
|
7186
7446
|
sex,
|
|
7187
|
-
`${level -
|
|
7188
|
-
`${level -
|
|
7189
|
-
`${level -
|
|
7447
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525`,
|
|
7448
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u59EA`,
|
|
7449
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525/\u59EA`
|
|
7190
7450
|
);
|
|
7191
7451
|
}
|
|
7192
7452
|
parent() {
|
|
7193
7453
|
return lineal(
|
|
7194
7454
|
Math.abs(this.pathN?.level ?? 0),
|
|
7195
|
-
|
|
7455
|
+
sexOf5(this.personN),
|
|
7196
7456
|
"asc"
|
|
7197
7457
|
);
|
|
7198
7458
|
}
|
|
7199
7459
|
child() {
|
|
7200
7460
|
return lineal(
|
|
7201
7461
|
Math.abs(this.pathN?.level ?? 0),
|
|
7202
|
-
|
|
7462
|
+
sexOf5(this.personN),
|
|
7203
7463
|
"desc"
|
|
7204
7464
|
);
|
|
7205
7465
|
}
|
|
7206
7466
|
sibling() {
|
|
7207
|
-
return
|
|
7467
|
+
return pick4(sexOf5(this.personN), "\u5144\u5F1F", "\u59C9\u59B9", "\u5144\u5F1F\u59C9\u59B9");
|
|
7208
7468
|
}
|
|
7209
7469
|
halfBlood(relation) {
|
|
7210
7470
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7213,14 +7473,14 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7213
7473
|
return `\u7570\u7236\u6BCD\u306E${relation}`;
|
|
7214
7474
|
}
|
|
7215
7475
|
spouse() {
|
|
7216
|
-
return
|
|
7476
|
+
return pick4(sexOf5(this.personN), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7217
7477
|
}
|
|
7218
7478
|
ofSpouse(relation) {
|
|
7219
7479
|
if (!relation) {
|
|
7220
7480
|
return "";
|
|
7221
7481
|
}
|
|
7222
|
-
const spouseType =
|
|
7223
|
-
|
|
7482
|
+
const spouseType = pick4(
|
|
7483
|
+
sexOf5(this.path?.[1].indi),
|
|
7224
7484
|
"\u592B",
|
|
7225
7485
|
"\u59BB",
|
|
7226
7486
|
"\u914D\u5076\u8005"
|
|
@@ -7232,7 +7492,7 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7232
7492
|
return "";
|
|
7233
7493
|
}
|
|
7234
7494
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7235
|
-
const spouseType =
|
|
7495
|
+
const spouseType = pick4(sexOf5(spouse), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7236
7496
|
return `${relation}\u306E${spouseType}`;
|
|
7237
7497
|
}
|
|
7238
7498
|
of(relation) {
|
|
@@ -7268,7 +7528,28 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7268
7528
|
if (!relation || !this.pathN?.relation) {
|
|
7269
7529
|
return relation ?? "";
|
|
7270
7530
|
}
|
|
7271
|
-
|
|
7531
|
+
if (this.pathN.relation === "step") {
|
|
7532
|
+
if (relation === "\u7236") {
|
|
7533
|
+
return "\u7EE7\u7236";
|
|
7534
|
+
}
|
|
7535
|
+
if (relation === "\u6BCD") {
|
|
7536
|
+
return "\u7D99\u6BCD";
|
|
7537
|
+
}
|
|
7538
|
+
if (relation === "\u606F\u5B50") {
|
|
7539
|
+
return "\u7D99\u5B50";
|
|
7540
|
+
}
|
|
7541
|
+
if (relation === "\u5A18") {
|
|
7542
|
+
return "\u7D99\u5A18";
|
|
7543
|
+
}
|
|
7544
|
+
return `\u7D99${relation}`;
|
|
7545
|
+
}
|
|
7546
|
+
if (this.pathN.relation === "adopted") {
|
|
7547
|
+
return `\u990A\u5B50\u306E${relation}`;
|
|
7548
|
+
}
|
|
7549
|
+
if (this.pathN.relation === "foster") {
|
|
7550
|
+
return `\u91CC\u89AA\u306E${relation}`;
|
|
7551
|
+
}
|
|
7552
|
+
return relation;
|
|
7272
7553
|
}
|
|
7273
7554
|
};
|
|
7274
7555
|
|
|
@@ -7277,22 +7558,32 @@ var InLawsZh = {
|
|
|
7277
7558
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u914D\u5076": "\u513F\u5AB3/\u5973\u5A7F",
|
|
7278
7559
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u59BB\u5B50": "\u513F\u5AB3",
|
|
7279
7560
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u4E08\u592B": "\u5973\u5A7F",
|
|
7280
|
-
"
|
|
7281
|
-
"
|
|
7282
|
-
"(\u914D\u5076
|
|
7561
|
+
"\u59BB\u5B50\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD",
|
|
7562
|
+
"\u4E08\u592B\u7684\u6BCD\u4EB2": "\u5A46\u5A46",
|
|
7563
|
+
"(\u914D\u5076)\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD/\u5A46\u5A46",
|
|
7564
|
+
"\u59BB\u5B50\u7684\u7236\u4EB2": "\u5CB3\u7236",
|
|
7565
|
+
"\u4E08\u592B\u7684\u7236\u4EB2": "\u516C\u516C",
|
|
7566
|
+
"(\u914D\u5076)\u7684\u7236\u4EB2": "\u5CB3\u7236/\u516C\u516C",
|
|
7567
|
+
"\u59BB\u5B50\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD",
|
|
7568
|
+
"\u4E08\u592B\u7684\u7236\u6BCD": "\u516C\u516C\u5A46\u5A46",
|
|
7569
|
+
"(\u914D\u5076)\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD/\u516C\u516C\u5A46\u5A46",
|
|
7283
7570
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u59BB\u5B50": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7284
7571
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u4E08\u592B": "\u59D0\u592B/\u59B9\u592B",
|
|
7285
7572
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u914D\u5076": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7286
7573
|
"(\u5F02\u7236\u6BCD\u7684)?\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59D0\u592B/\u59B9\u592B",
|
|
7287
7574
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7288
7575
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7289
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7290
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7576
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u59D0\u59B9": "\u59E8\u5B50",
|
|
7577
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u59D0\u59B9": "\u59D1\u5B50",
|
|
7578
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u59D0\u59B9": "\u59D1\u5B50/\u59E8\u5B50",
|
|
7579
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u5144\u5F1F": "\u5185\u5144/\u5185\u5F1F",
|
|
7580
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4",
|
|
7581
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4/\u5185\u5144/\u5185\u5F1F",
|
|
7291
7582
|
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)\u7684\u5144\u5F1F\u59D0\u59B9": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9"
|
|
7292
7583
|
};
|
|
7293
7584
|
|
|
7294
7585
|
// src/kinship-translator/kinship-translator.zh.ts
|
|
7295
|
-
var
|
|
7586
|
+
var sexOf6 = (person) => {
|
|
7296
7587
|
if (person?.isMale?.()) {
|
|
7297
7588
|
return "m";
|
|
7298
7589
|
}
|
|
@@ -7301,7 +7592,7 @@ var sexOf3 = (person) => {
|
|
|
7301
7592
|
}
|
|
7302
7593
|
return "n";
|
|
7303
7594
|
};
|
|
7304
|
-
var
|
|
7595
|
+
var pick5 = (sex, male, female, neutral) => {
|
|
7305
7596
|
if (sex === "m") {
|
|
7306
7597
|
return male;
|
|
7307
7598
|
}
|
|
@@ -7314,41 +7605,41 @@ var lineal2 = (level, sex, kind) => {
|
|
|
7314
7605
|
const L = Math.max(1, level);
|
|
7315
7606
|
if (kind === "asc") {
|
|
7316
7607
|
if (L <= 1) {
|
|
7317
|
-
return
|
|
7608
|
+
return pick5(sex, "\u7236\u4EB2", "\u6BCD\u4EB2", "\u7236\u6BCD");
|
|
7318
7609
|
}
|
|
7319
7610
|
if (L === 2) {
|
|
7320
|
-
return
|
|
7611
|
+
return pick5(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7321
7612
|
}
|
|
7322
7613
|
if (L === 3) {
|
|
7323
|
-
return
|
|
7614
|
+
return pick5(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7324
7615
|
}
|
|
7325
7616
|
if (L === 4) {
|
|
7326
|
-
return
|
|
7617
|
+
return pick5(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7327
7618
|
}
|
|
7328
|
-
return
|
|
7619
|
+
return pick5(sex, `${L}\u4E16\u7956`, `${L}\u4E16\u7956\u6BCD`, `${L}\u4E16\u7956\u7236\u6BCD`);
|
|
7329
7620
|
}
|
|
7330
7621
|
if (L <= 1) {
|
|
7331
|
-
return
|
|
7622
|
+
return pick5(sex, "\u513F\u5B50", "\u5973\u513F", "\u5B50\u5973");
|
|
7332
7623
|
}
|
|
7333
7624
|
if (L === 2) {
|
|
7334
|
-
return
|
|
7625
|
+
return pick5(sex, "\u5B59\u5B50", "\u5B59\u5973", "\u5B59\u5B50\u5973");
|
|
7335
7626
|
}
|
|
7336
7627
|
if (L === 3) {
|
|
7337
|
-
return
|
|
7628
|
+
return pick5(sex, "\u66FE\u5B59", "\u66FE\u5B59\u5973", "\u66FE\u5B59\u5B50\u5973");
|
|
7338
7629
|
}
|
|
7339
7630
|
if (L === 4) {
|
|
7340
|
-
return
|
|
7631
|
+
return pick5(sex, "\u7384\u5B59", "\u7384\u5B59\u5973", "\u7384\u5B59\u5B50\u5973");
|
|
7341
7632
|
}
|
|
7342
|
-
return
|
|
7633
|
+
return pick5(sex, `${L}\u4E16\u5B59`, `${L}\u4E16\u5B59\u5973`, `${L}\u4E16\u5B59\u5B50\u5973`);
|
|
7343
7634
|
};
|
|
7344
7635
|
var cousinPlain2 = (degree, sex) => {
|
|
7345
7636
|
if (degree <= 1) {
|
|
7346
|
-
return
|
|
7637
|
+
return pick5(sex, "\u5802\u8868\u5144\u5F1F", "\u5802\u8868\u59D0\u59B9", "\u5802\u8868\u4EB2");
|
|
7347
7638
|
}
|
|
7348
7639
|
if (degree === 2) {
|
|
7349
|
-
return
|
|
7640
|
+
return pick5(sex, "\u4ECE\u5802\u8868\u5144\u5F1F", "\u4ECE\u5802\u8868\u59D0\u59B9", "\u4ECE\u5802\u8868\u4EB2");
|
|
7350
7641
|
}
|
|
7351
|
-
return
|
|
7642
|
+
return pick5(
|
|
7352
7643
|
sex,
|
|
7353
7644
|
`${degree}\u4EE3\u5802\u8868\u5144\u5F1F`,
|
|
7354
7645
|
`${degree}\u4EE3\u5802\u8868\u59D0\u59B9`,
|
|
@@ -7361,7 +7652,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7361
7652
|
if (degree > 0) {
|
|
7362
7653
|
degree = degree - 1;
|
|
7363
7654
|
}
|
|
7364
|
-
return cousinPlain2(degree,
|
|
7655
|
+
return cousinPlain2(degree, sexOf6(this.personN));
|
|
7365
7656
|
}
|
|
7366
7657
|
removal() {
|
|
7367
7658
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7373,56 +7664,56 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7373
7664
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7374
7665
|
}
|
|
7375
7666
|
const removed = Math.abs(level);
|
|
7376
|
-
return `${cousinPlain2(degree,
|
|
7667
|
+
return `${cousinPlain2(degree, sexOf6(this.personN))}\uFF08\u9694${removed}\u4EE3\uFF09`;
|
|
7377
7668
|
}
|
|
7378
7669
|
auncle() {
|
|
7379
7670
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7380
|
-
const sex =
|
|
7381
|
-
if (level <=
|
|
7382
|
-
return
|
|
7671
|
+
const sex = sexOf6(this.personN);
|
|
7672
|
+
if (level <= 1) {
|
|
7673
|
+
return pick5(sex, "\u53D4\u53D4", "\u963F\u59E8", "\u53D4\u4F2F/\u59D1\u59E8");
|
|
7383
7674
|
}
|
|
7384
|
-
if (level ===
|
|
7385
|
-
return
|
|
7675
|
+
if (level === 2) {
|
|
7676
|
+
return pick5(sex, "\u4F2F\u53D4\u7956\u7236", "\u59D1\u7956\u6BCD", "\u4F2F\u53D4\u7956\u7236\u6BCD");
|
|
7386
7677
|
}
|
|
7387
|
-
return
|
|
7678
|
+
return pick5(
|
|
7388
7679
|
sex,
|
|
7389
|
-
`${level -
|
|
7390
|
-
`${level -
|
|
7391
|
-
`${level -
|
|
7680
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u53D4`,
|
|
7681
|
+
`${level - 1}\u4EE3\u524D\u7684\u963F\u59E8`,
|
|
7682
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u4F2F/\u59D1\u59E8`
|
|
7392
7683
|
);
|
|
7393
7684
|
}
|
|
7394
7685
|
nibling() {
|
|
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, "\u4F84\u5B50", "\u4F84\u5973", "\u4F84\u5B50\u5973");
|
|
7399
7690
|
}
|
|
7400
|
-
if (level ===
|
|
7401
|
-
return
|
|
7691
|
+
if (level === 2) {
|
|
7692
|
+
return pick5(sex, "\u4F84\u5B59", "\u4F84\u5B59\u5973", "\u4F84\u5B59\u5B50\u5973");
|
|
7402
7693
|
}
|
|
7403
|
-
return
|
|
7694
|
+
return pick5(
|
|
7404
7695
|
sex,
|
|
7405
|
-
`${level -
|
|
7406
|
-
`${level -
|
|
7407
|
-
`${level -
|
|
7696
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50`,
|
|
7697
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5973`,
|
|
7698
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50\u5973`
|
|
7408
7699
|
);
|
|
7409
7700
|
}
|
|
7410
7701
|
parent() {
|
|
7411
7702
|
return lineal2(
|
|
7412
7703
|
Math.abs(this.pathN?.level ?? 0),
|
|
7413
|
-
|
|
7704
|
+
sexOf6(this.personN),
|
|
7414
7705
|
"asc"
|
|
7415
7706
|
);
|
|
7416
7707
|
}
|
|
7417
7708
|
child() {
|
|
7418
7709
|
return lineal2(
|
|
7419
7710
|
Math.abs(this.pathN?.level ?? 0),
|
|
7420
|
-
|
|
7711
|
+
sexOf6(this.personN),
|
|
7421
7712
|
"desc"
|
|
7422
7713
|
);
|
|
7423
7714
|
}
|
|
7424
7715
|
sibling() {
|
|
7425
|
-
return
|
|
7716
|
+
return pick5(sexOf6(this.personN), "\u5144\u5F1F", "\u59D0\u59B9", "\u5144\u5F1F\u59D0\u59B9");
|
|
7426
7717
|
}
|
|
7427
7718
|
halfBlood(relation) {
|
|
7428
7719
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7431,14 +7722,14 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7431
7722
|
return `\u5F02\u7236\u6BCD\u7684${relation}`;
|
|
7432
7723
|
}
|
|
7433
7724
|
spouse() {
|
|
7434
|
-
return
|
|
7725
|
+
return pick5(sexOf6(this.personN), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7435
7726
|
}
|
|
7436
7727
|
ofSpouse(relation) {
|
|
7437
7728
|
if (!relation) {
|
|
7438
7729
|
return "";
|
|
7439
7730
|
}
|
|
7440
|
-
const spouseType =
|
|
7441
|
-
|
|
7731
|
+
const spouseType = pick5(
|
|
7732
|
+
sexOf6(this.path?.[1].indi),
|
|
7442
7733
|
"\u4E08\u592B",
|
|
7443
7734
|
"\u59BB\u5B50",
|
|
7444
7735
|
"\u914D\u5076"
|
|
@@ -7450,7 +7741,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7450
7741
|
return "";
|
|
7451
7742
|
}
|
|
7452
7743
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7453
|
-
const spouseType =
|
|
7744
|
+
const spouseType = pick5(sexOf6(spouse), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7454
7745
|
return `${relation}\u7684${spouseType}`;
|
|
7455
7746
|
}
|
|
7456
7747
|
of(relation) {
|
|
@@ -7486,7 +7777,40 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7486
7777
|
if (!relation || !this.pathN?.relation) {
|
|
7487
7778
|
return relation ?? "";
|
|
7488
7779
|
}
|
|
7489
|
-
|
|
7780
|
+
if (this.pathN.relation === "step") {
|
|
7781
|
+
if (relation === "\u7236\u4EB2") {
|
|
7782
|
+
return "\u7EE7\u7236";
|
|
7783
|
+
}
|
|
7784
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
7785
|
+
return "\u7EE7\u6BCD";
|
|
7786
|
+
}
|
|
7787
|
+
if (relation === "\u513F\u5B50") {
|
|
7788
|
+
return "\u7EE7\u5B50";
|
|
7789
|
+
}
|
|
7790
|
+
if (relation === "\u5973\u513F") {
|
|
7791
|
+
return "\u7EE7\u5973";
|
|
7792
|
+
}
|
|
7793
|
+
return `\u7EE7${relation}`;
|
|
7794
|
+
}
|
|
7795
|
+
if (this.pathN.relation === "adopted") {
|
|
7796
|
+
if (relation === "\u7236\u4EB2") {
|
|
7797
|
+
return "\u517B\u7236";
|
|
7798
|
+
}
|
|
7799
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
7800
|
+
return "\u517B\u6BCD";
|
|
7801
|
+
}
|
|
7802
|
+
if (relation === "\u513F\u5B50") {
|
|
7803
|
+
return "\u517B\u5B50";
|
|
7804
|
+
}
|
|
7805
|
+
if (relation === "\u5973\u513F") {
|
|
7806
|
+
return "\u517B\u5973";
|
|
7807
|
+
}
|
|
7808
|
+
return `\u517B${relation}`;
|
|
7809
|
+
}
|
|
7810
|
+
if (this.pathN.relation === "foster") {
|
|
7811
|
+
return `\u5BC4\u517B${relation}`;
|
|
7812
|
+
}
|
|
7813
|
+
return relation;
|
|
7490
7814
|
}
|
|
7491
7815
|
};
|
|
7492
7816
|
|