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