@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/index.js
CHANGED
|
@@ -5098,14 +5098,15 @@ var Indi = class extends Common {
|
|
|
5098
5098
|
}
|
|
5099
5099
|
return foundPath;
|
|
5100
5100
|
}
|
|
5101
|
-
kinship(other, showMainPerson, lang = "en", entirePath, displayName = "givenname") {
|
|
5101
|
+
kinship(other, showMainPerson, lang = "en", entirePath, displayName = "givenname", nameOrder) {
|
|
5102
5102
|
const KinshipTranslatorClass2 = getKinshipTranslatorClass();
|
|
5103
5103
|
const translator = new KinshipTranslatorClass2(
|
|
5104
5104
|
this,
|
|
5105
5105
|
other,
|
|
5106
5106
|
lang,
|
|
5107
5107
|
entirePath,
|
|
5108
|
-
showMainPerson ? displayName : void 0
|
|
5108
|
+
showMainPerson ? displayName : void 0,
|
|
5109
|
+
nameOrder
|
|
5109
5110
|
);
|
|
5110
5111
|
return translator.translate(!!showMainPerson);
|
|
5111
5112
|
}
|
|
@@ -6036,11 +6037,12 @@ var hungarianOrdinalize = (n) => {
|
|
|
6036
6037
|
|
|
6037
6038
|
// src/kinship-translator/kinship-translator.basic.ts
|
|
6038
6039
|
var KinshipTranslatorBasic = class {
|
|
6039
|
-
constructor(path, displayName = "givenname") {
|
|
6040
|
+
constructor(path, displayName = "givenname", nameOrder = "first-last") {
|
|
6040
6041
|
this.isOfSpouse = false;
|
|
6041
6042
|
this.isSpouseOf = false;
|
|
6042
6043
|
this._path = path;
|
|
6043
6044
|
this.displayName = displayName;
|
|
6045
|
+
this.nameOrder = nameOrder;
|
|
6044
6046
|
}
|
|
6045
6047
|
get path() {
|
|
6046
6048
|
return this._path;
|
|
@@ -6319,7 +6321,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
6319
6321
|
}
|
|
6320
6322
|
return `${hungarianOrdinalize(
|
|
6321
6323
|
degree
|
|
6322
|
-
)}unokatestv\xE9r ${level}x elt\xE1vol\xEDtva`;
|
|
6324
|
+
)}unokatestv\xE9r ${Math.abs(level)}x elt\xE1vol\xEDtva`;
|
|
6323
6325
|
}
|
|
6324
6326
|
auncle() {
|
|
6325
6327
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6363,14 +6365,25 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
6363
6365
|
return `${ordinalized ? `${ordinalized}unoka` : ""}testv\xE9r ${origPrefix.replace(/nagy$/, "")}unok\xE1ja`;
|
|
6364
6366
|
}
|
|
6365
6367
|
parent() {
|
|
6368
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6369
|
+
if (level <= 1) {
|
|
6370
|
+
if (this.personN?.isMale()) {
|
|
6371
|
+
return "apa";
|
|
6372
|
+
}
|
|
6373
|
+
if (this.personN?.isFemale()) {
|
|
6374
|
+
return "anya";
|
|
6375
|
+
}
|
|
6376
|
+
return "sz\xFCl\u0151";
|
|
6377
|
+
}
|
|
6366
6378
|
const prefix = this.directPrefix();
|
|
6379
|
+
const gen = prefix === "nagy" ? "" : prefix;
|
|
6367
6380
|
if (this.personN?.isMale()) {
|
|
6368
|
-
return `${
|
|
6381
|
+
return `${gen}nagyapa`;
|
|
6369
6382
|
}
|
|
6370
6383
|
if (this.personN?.isFemale()) {
|
|
6371
|
-
return `${
|
|
6384
|
+
return `${gen}nagyanya`;
|
|
6372
6385
|
}
|
|
6373
|
-
return `${
|
|
6386
|
+
return `${gen}nagysz\xFCl\u0151`;
|
|
6374
6387
|
}
|
|
6375
6388
|
child() {
|
|
6376
6389
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
@@ -6452,7 +6465,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
6452
6465
|
}
|
|
6453
6466
|
of(relation) {
|
|
6454
6467
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6455
|
-
nameOrder:
|
|
6468
|
+
nameOrder: this.nameOrder
|
|
6456
6469
|
});
|
|
6457
6470
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6458
6471
|
if (this.displayName === "none") {
|
|
@@ -6564,27 +6577,30 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6564
6577
|
if (!degree) {
|
|
6565
6578
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6566
6579
|
}
|
|
6567
|
-
return `${ordinalize(degree)} cousin ${level}x removed`;
|
|
6580
|
+
return `${ordinalize(degree)} cousin ${Math.abs(level)}x removed`;
|
|
6568
6581
|
}
|
|
6569
6582
|
auncle() {
|
|
6570
|
-
const
|
|
6583
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6584
|
+
const greats = level <= 1 ? "" : "great-".repeat(level - 1);
|
|
6571
6585
|
if (this.personN?.isMale()) {
|
|
6572
|
-
return `${
|
|
6586
|
+
return `${greats}uncle`;
|
|
6573
6587
|
}
|
|
6574
6588
|
if (this.personN?.isFemale()) {
|
|
6575
|
-
return `${
|
|
6589
|
+
return `${greats}aunt`;
|
|
6576
6590
|
}
|
|
6577
|
-
return `${
|
|
6591
|
+
return greats ? `${greats}uncle/${greats}aunt` : "uncle/aunt";
|
|
6578
6592
|
}
|
|
6579
6593
|
nibling() {
|
|
6580
|
-
const
|
|
6594
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6595
|
+
const greats = level <= 2 ? "" : "great-".repeat(level - 2);
|
|
6596
|
+
const grand = level <= 1 ? "" : "grand";
|
|
6581
6597
|
if (this.personN?.isMale()) {
|
|
6582
|
-
return `${
|
|
6598
|
+
return `${greats}${grand}nephew`;
|
|
6583
6599
|
}
|
|
6584
6600
|
if (this.personN?.isFemale()) {
|
|
6585
|
-
return `${
|
|
6601
|
+
return `${greats}${grand}niece`;
|
|
6586
6602
|
}
|
|
6587
|
-
return `${
|
|
6603
|
+
return greats || grand ? `${greats}${grand}nephew/${greats}${grand}niece` : "nephew/niece";
|
|
6588
6604
|
}
|
|
6589
6605
|
parent() {
|
|
6590
6606
|
const prefix = this.directPrefix();
|
|
@@ -6663,7 +6679,7 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6663
6679
|
}
|
|
6664
6680
|
of(relation) {
|
|
6665
6681
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6666
|
-
nameOrder:
|
|
6682
|
+
nameOrder: this.nameOrder
|
|
6667
6683
|
});
|
|
6668
6684
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6669
6685
|
if (this.displayName === "none") {
|
|
@@ -6712,45 +6728,64 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6712
6728
|
};
|
|
6713
6729
|
|
|
6714
6730
|
// src/kinship-translator/patterns.de.ts
|
|
6731
|
+
var parentRelationsDe = {
|
|
6732
|
+
step: "Stief",
|
|
6733
|
+
foster: "Pflege",
|
|
6734
|
+
adopted: "Adoptiv"
|
|
6735
|
+
};
|
|
6715
6736
|
var InLawsDe = {
|
|
6716
|
-
"Ehepartner von (
|
|
6717
|
-
"Ehefrau von (
|
|
6718
|
-
"Ehemann von (
|
|
6719
|
-
"
|
|
6720
|
-
"
|
|
6721
|
-
"
|
|
6722
|
-
"Ehefrau von (Halb)
|
|
6723
|
-
"Ehemann von (Halb)
|
|
6724
|
-
"Ehepartner von (Halb)
|
|
6725
|
-
"(Halb)
|
|
6726
|
-
"(Halb)
|
|
6727
|
-
"(Halb)
|
|
6737
|
+
"Ehepartner von (Kind|Tochter|Sohn)": "Schwiegerkind",
|
|
6738
|
+
"Ehefrau von (Kind|Tochter|Sohn)": "Schwiegertochter",
|
|
6739
|
+
"Ehemann von (Kind|Tochter|Sohn)": "Schwiegersohn",
|
|
6740
|
+
"Mutter (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegermutter",
|
|
6741
|
+
"Vater (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegervater",
|
|
6742
|
+
"Elternteil (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegerelternteil",
|
|
6743
|
+
"Ehefrau von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schw\xE4gerin",
|
|
6744
|
+
"Ehemann von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager",
|
|
6745
|
+
"Ehepartner von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager/Schw\xE4gerin",
|
|
6746
|
+
"(Halb)?-?(Schwester|schwester) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schw\xE4gerin",
|
|
6747
|
+
"(Halb)?-?(Bruder|bruder) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager",
|
|
6748
|
+
"(Halb)?-?(Geschwister|geschwister) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager/Schw\xE4gerin"
|
|
6728
6749
|
};
|
|
6729
6750
|
|
|
6730
6751
|
// src/kinship-translator/kinship-translator.de.ts
|
|
6731
|
-
var
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
if (level === 2) {
|
|
6738
|
-
return "Gro\xDF";
|
|
6739
|
-
}
|
|
6740
|
-
if (level === 3) {
|
|
6741
|
-
return "Urgro\xDF";
|
|
6742
|
-
}
|
|
6743
|
-
return `Ur${level - 2}-gro\xDF`;
|
|
6752
|
+
var sexOf = (person) => {
|
|
6753
|
+
if (person?.isMale?.()) {
|
|
6754
|
+
return "m";
|
|
6755
|
+
}
|
|
6756
|
+
if (person?.isFemale?.()) {
|
|
6757
|
+
return "f";
|
|
6744
6758
|
}
|
|
6759
|
+
return "n";
|
|
6760
|
+
};
|
|
6761
|
+
var pick = (sex, male, female, neutral) => {
|
|
6762
|
+
if (sex === "m") {
|
|
6763
|
+
return male;
|
|
6764
|
+
}
|
|
6765
|
+
if (sex === "f") {
|
|
6766
|
+
return female;
|
|
6767
|
+
}
|
|
6768
|
+
return neutral;
|
|
6769
|
+
};
|
|
6770
|
+
var ur = (count) => count > 0 ? "Ur".repeat(count) : "";
|
|
6771
|
+
var genitiveArticle = (spouseType) => {
|
|
6772
|
+
if (spouseType === "Ehefrau") {
|
|
6773
|
+
return `der ${spouseType}`;
|
|
6774
|
+
}
|
|
6775
|
+
return `des ${spouseType}s`;
|
|
6776
|
+
};
|
|
6777
|
+
var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
6745
6778
|
indirect() {
|
|
6746
6779
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6747
6780
|
if (degree > 0) {
|
|
6748
6781
|
degree = degree - 1;
|
|
6749
6782
|
}
|
|
6750
|
-
|
|
6751
|
-
|
|
6783
|
+
const sex = sexOf(this.personN);
|
|
6784
|
+
const cousin = pick(sex, "Cousin", "Cousine", "Cousin/Cousine");
|
|
6785
|
+
if (degree <= 1) {
|
|
6786
|
+
return cousin;
|
|
6752
6787
|
}
|
|
6753
|
-
return
|
|
6788
|
+
return `${cousin} ${degree}. Grades`;
|
|
6754
6789
|
}
|
|
6755
6790
|
removal() {
|
|
6756
6791
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6761,106 +6796,106 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6761
6796
|
if (!degree) {
|
|
6762
6797
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6763
6798
|
}
|
|
6764
|
-
return
|
|
6799
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 entfernt`;
|
|
6765
6800
|
}
|
|
6766
6801
|
auncle() {
|
|
6767
|
-
const
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
if (this.personN?.isFemale()) {
|
|
6772
|
-
return `${prefix}tante`;
|
|
6802
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6803
|
+
const sex = sexOf(this.personN);
|
|
6804
|
+
if (level <= 1) {
|
|
6805
|
+
return pick(sex, "Onkel", "Tante", "Onkel/Tante");
|
|
6773
6806
|
}
|
|
6774
|
-
|
|
6807
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6808
|
+
return pick(
|
|
6809
|
+
sex,
|
|
6810
|
+
`${prefix}onkel`,
|
|
6811
|
+
`${prefix}tante`,
|
|
6812
|
+
`${prefix}onkel/tante`
|
|
6813
|
+
);
|
|
6775
6814
|
}
|
|
6776
6815
|
nibling() {
|
|
6777
|
-
const
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
if (this.personN?.isFemale()) {
|
|
6782
|
-
return `${prefix}nichte`;
|
|
6816
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6817
|
+
const sex = sexOf(this.personN);
|
|
6818
|
+
if (level <= 1) {
|
|
6819
|
+
return pick(sex, "Neffe", "Nichte", "Neffe/Nichte");
|
|
6783
6820
|
}
|
|
6784
|
-
|
|
6821
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6822
|
+
return pick(
|
|
6823
|
+
sex,
|
|
6824
|
+
`${prefix}neffe`,
|
|
6825
|
+
`${prefix}nichte`,
|
|
6826
|
+
`${prefix}neffe/nichte`
|
|
6827
|
+
);
|
|
6785
6828
|
}
|
|
6786
6829
|
parent() {
|
|
6787
|
-
const
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
if (this.personN?.isFemale()) {
|
|
6792
|
-
return `${prefix}mutter`;
|
|
6830
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6831
|
+
const sex = sexOf(this.personN);
|
|
6832
|
+
if (level <= 1) {
|
|
6833
|
+
return pick(sex, "Vater", "Mutter", "Elternteil");
|
|
6793
6834
|
}
|
|
6794
|
-
|
|
6835
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6836
|
+
return pick(
|
|
6837
|
+
sex,
|
|
6838
|
+
`${prefix}vater`,
|
|
6839
|
+
`${prefix}mutter`,
|
|
6840
|
+
`${prefix}elternteil`
|
|
6841
|
+
);
|
|
6795
6842
|
}
|
|
6796
6843
|
child() {
|
|
6797
|
-
const
|
|
6798
|
-
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
if (this.personN?.isFemale()) {
|
|
6802
|
-
return `${prefix}tochter`;
|
|
6844
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6845
|
+
const sex = sexOf(this.personN);
|
|
6846
|
+
if (level <= 1) {
|
|
6847
|
+
return pick(sex, "Sohn", "Tochter", "Kind");
|
|
6803
6848
|
}
|
|
6804
|
-
|
|
6849
|
+
const prefix = ur(level - 2);
|
|
6850
|
+
return pick(
|
|
6851
|
+
sex,
|
|
6852
|
+
`${prefix}Enkel`,
|
|
6853
|
+
`${prefix}Enkelin`,
|
|
6854
|
+
`${prefix}Enkelkind`
|
|
6855
|
+
);
|
|
6805
6856
|
}
|
|
6806
6857
|
sibling() {
|
|
6807
|
-
|
|
6808
|
-
return "bruder";
|
|
6809
|
-
}
|
|
6810
|
-
if (this.personN?.isFemale()) {
|
|
6811
|
-
return "schwester";
|
|
6812
|
-
}
|
|
6813
|
-
return "geschwister";
|
|
6858
|
+
return pick(sexOf(this.personN), "Bruder", "Schwester", "Geschwister");
|
|
6814
6859
|
}
|
|
6815
6860
|
halfBlood(relation) {
|
|
6816
6861
|
if (!relation || !this.isHalfBlood) {
|
|
6817
6862
|
return relation ?? "";
|
|
6818
6863
|
}
|
|
6819
|
-
if (
|
|
6864
|
+
if (/[\s-]/.test(relation) || /^(Groß|Ur)/.test(relation)) {
|
|
6820
6865
|
return `Halb-${relation}`;
|
|
6821
6866
|
}
|
|
6822
|
-
return `Halb${relation}`;
|
|
6867
|
+
return `Halb${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6823
6868
|
}
|
|
6824
6869
|
spouse() {
|
|
6825
|
-
|
|
6826
|
-
return "Ehemann";
|
|
6827
|
-
}
|
|
6828
|
-
if (this.personN?.isFemale()) {
|
|
6829
|
-
return "Ehefrau";
|
|
6830
|
-
}
|
|
6831
|
-
return "Ehepartner";
|
|
6870
|
+
return pick(sexOf(this.personN), "Ehemann", "Ehefrau", "Ehepartner");
|
|
6832
6871
|
}
|
|
6833
6872
|
ofSpouse(relation) {
|
|
6834
6873
|
if (!relation) {
|
|
6835
6874
|
return "";
|
|
6836
6875
|
}
|
|
6837
|
-
const
|
|
6838
|
-
|
|
6839
|
-
|
|
6840
|
-
|
|
6841
|
-
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
}
|
|
6845
|
-
return `${relation} des ${spouseType}s`;
|
|
6876
|
+
const spouseType = pick(
|
|
6877
|
+
sexOf(this.path?.[1].indi),
|
|
6878
|
+
"Ehemann",
|
|
6879
|
+
"Ehefrau",
|
|
6880
|
+
"Ehepartner"
|
|
6881
|
+
);
|
|
6882
|
+
return `${relation} ${genitiveArticle(spouseType)}`;
|
|
6846
6883
|
}
|
|
6847
6884
|
spouseOf(relation) {
|
|
6848
6885
|
if (!relation) {
|
|
6849
6886
|
return "";
|
|
6850
6887
|
}
|
|
6851
|
-
const
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
|
-
spouseType = "Ehefrau";
|
|
6858
|
-
}
|
|
6888
|
+
const spouseType = pick(
|
|
6889
|
+
sexOf(this.path?.[this.path.length - 1].indi),
|
|
6890
|
+
"Ehemann",
|
|
6891
|
+
"Ehefrau",
|
|
6892
|
+
"Ehepartner"
|
|
6893
|
+
);
|
|
6859
6894
|
return `${spouseType} von ${relation}`;
|
|
6860
6895
|
}
|
|
6861
6896
|
of(relation) {
|
|
6862
6897
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
6863
|
-
nameOrder:
|
|
6898
|
+
nameOrder: this.nameOrder
|
|
6864
6899
|
});
|
|
6865
6900
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
6866
6901
|
if (this.displayName === "none") {
|
|
@@ -6873,8 +6908,8 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6873
6908
|
if (!name || !relation) {
|
|
6874
6909
|
return relation ?? "";
|
|
6875
6910
|
}
|
|
6876
|
-
if (relation.includes(" des ") || relation.includes(" von ")) {
|
|
6877
|
-
return relation.replace(/ (des|von) /, ` $1 ${name}s `);
|
|
6911
|
+
if (relation.includes(" des ") || relation.includes(" der ") || relation.includes(" von ")) {
|
|
6912
|
+
return relation.replace(/ (des|der|von) /, ` $1 ${name}s `);
|
|
6878
6913
|
}
|
|
6879
6914
|
return `${name}s ${relation}`;
|
|
6880
6915
|
}
|
|
@@ -6904,50 +6939,82 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6904
6939
|
if (!relation || !this.pathN?.relation) {
|
|
6905
6940
|
return relation ?? "";
|
|
6906
6941
|
}
|
|
6907
|
-
|
|
6942
|
+
const prefix = parentRelationsDe[this.pathN.relation];
|
|
6943
|
+
if (!prefix) {
|
|
6944
|
+
return relation;
|
|
6945
|
+
}
|
|
6946
|
+
if (prefix.endsWith("-") || prefix.endsWith(" ")) {
|
|
6947
|
+
return `${prefix}${relation}`;
|
|
6948
|
+
}
|
|
6949
|
+
return `${prefix}${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6908
6950
|
}
|
|
6909
6951
|
};
|
|
6910
6952
|
|
|
6911
6953
|
// src/kinship-translator/patterns.fr.ts
|
|
6954
|
+
var parentRelationsFr = {
|
|
6955
|
+
step: "step",
|
|
6956
|
+
foster: "foster",
|
|
6957
|
+
adopted: "adopted"
|
|
6958
|
+
};
|
|
6912
6959
|
var InLawsFr = {
|
|
6913
6960
|
"conjoint de (enfant|fille|fils)": "beau-fils/belle-fille",
|
|
6914
6961
|
"\xE9pouse de (enfant|fille|fils)": "belle-fille",
|
|
6915
6962
|
"mari de (enfant|fille|fils)": "gendre",
|
|
6916
|
-
"m\xE8re du
|
|
6917
|
-
"p\xE8re du
|
|
6918
|
-
"parent du
|
|
6963
|
+
"m\xE8re (du mari|du conjoint|de l'\xE9pouse)": "belle-m\xE8re",
|
|
6964
|
+
"p\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-p\xE8re",
|
|
6965
|
+
"parent (du mari|du conjoint|de l'\xE9pouse)": "beau-parent",
|
|
6919
6966
|
"\xE9pouse de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "belle-s\u0153ur",
|
|
6920
6967
|
"mari de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re",
|
|
6921
6968
|
"conjoint de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re/belle-s\u0153ur",
|
|
6922
|
-
"(demi-)?s\u0153ur du
|
|
6923
|
-
"(demi-)?fr\xE8re du
|
|
6924
|
-
"(demi-)?fr\xE8re/s\u0153ur du
|
|
6969
|
+
"(demi-)?s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "belle-s\u0153ur",
|
|
6970
|
+
"(demi-)?fr\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re",
|
|
6971
|
+
"(demi-)?fr\xE8re/s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re/belle-s\u0153ur"
|
|
6925
6972
|
};
|
|
6926
6973
|
|
|
6927
6974
|
// src/kinship-translator/kinship-translator.fr.ts
|
|
6928
|
-
var
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
|
|
6934
|
-
if (level === 2) {
|
|
6935
|
-
return "grand-";
|
|
6936
|
-
}
|
|
6937
|
-
if (level === 3) {
|
|
6938
|
-
return "arri\xE8re-grand-";
|
|
6939
|
-
}
|
|
6940
|
-
return `arri\xE8re${level - 2}-grand-`;
|
|
6975
|
+
var sexOf2 = (person) => {
|
|
6976
|
+
if (person?.isMale?.()) {
|
|
6977
|
+
return "m";
|
|
6978
|
+
}
|
|
6979
|
+
if (person?.isFemale?.()) {
|
|
6980
|
+
return "f";
|
|
6941
6981
|
}
|
|
6982
|
+
return "n";
|
|
6983
|
+
};
|
|
6984
|
+
var pick2 = (sex, male, female, neutral) => {
|
|
6985
|
+
if (sex === "m") {
|
|
6986
|
+
return male;
|
|
6987
|
+
}
|
|
6988
|
+
if (sex === "f") {
|
|
6989
|
+
return female;
|
|
6990
|
+
}
|
|
6991
|
+
return neutral;
|
|
6992
|
+
};
|
|
6993
|
+
var arriere = (count) => count > 0 ? "arri\xE8re-".repeat(count) : "";
|
|
6994
|
+
var frenchOrdinal = (n) => n === 1 ? "1er" : `${n}e`;
|
|
6995
|
+
var isFeminineRelation = (relation) => /mère|fille|sœur|tante|nièce|cousine|épouse/.test(relation);
|
|
6996
|
+
var ofSpousePrep = (spouseType) => {
|
|
6997
|
+
if (spouseType === "\xE9pouse") {
|
|
6998
|
+
return "de l'";
|
|
6999
|
+
}
|
|
7000
|
+
return "du ";
|
|
7001
|
+
};
|
|
7002
|
+
var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
6942
7003
|
indirect() {
|
|
6943
7004
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6944
7005
|
if (degree > 0) {
|
|
6945
7006
|
degree = degree - 1;
|
|
6946
7007
|
}
|
|
6947
|
-
|
|
6948
|
-
|
|
7008
|
+
const cousin = pick2(
|
|
7009
|
+
sexOf2(this.personN),
|
|
7010
|
+
"cousin",
|
|
7011
|
+
"cousine",
|
|
7012
|
+
"cousin/cousine"
|
|
7013
|
+
);
|
|
7014
|
+
if (degree <= 1) {
|
|
7015
|
+
return cousin;
|
|
6949
7016
|
}
|
|
6950
|
-
return
|
|
7017
|
+
return `${cousin} au ${frenchOrdinal(degree)} degr\xE9`;
|
|
6951
7018
|
}
|
|
6952
7019
|
removal() {
|
|
6953
7020
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6958,56 +7025,57 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
6958
7025
|
if (!degree) {
|
|
6959
7026
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6960
7027
|
}
|
|
6961
|
-
return
|
|
7028
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 \xE9loign\xE9`;
|
|
6962
7029
|
}
|
|
6963
7030
|
auncle() {
|
|
6964
|
-
const
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
return `${prefix}tante`;
|
|
7031
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7032
|
+
const sex = sexOf2(this.personN);
|
|
7033
|
+
const base = pick2(sex, "oncle", "tante", "oncle/tante");
|
|
7034
|
+
if (level <= 1) {
|
|
7035
|
+
return base;
|
|
6970
7036
|
}
|
|
6971
|
-
|
|
7037
|
+
const grands = pick2(
|
|
7038
|
+
sex,
|
|
7039
|
+
"grand-oncle",
|
|
7040
|
+
"grand-tante",
|
|
7041
|
+
"grand-oncle/tante"
|
|
7042
|
+
);
|
|
7043
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6972
7044
|
}
|
|
6973
7045
|
nibling() {
|
|
6974
|
-
const
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
if (this.personN?.isFemale()) {
|
|
6979
|
-
return `${prefix}ni\xE8ce`;
|
|
7046
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7047
|
+
const sex = sexOf2(this.personN);
|
|
7048
|
+
if (level <= 1) {
|
|
7049
|
+
return pick2(sex, "neveu", "ni\xE8ce", "neveu/ni\xE8ce");
|
|
6980
7050
|
}
|
|
6981
|
-
|
|
7051
|
+
const grands = pick2(
|
|
7052
|
+
sex,
|
|
7053
|
+
"grand-neveu",
|
|
7054
|
+
"grande-ni\xE8ce",
|
|
7055
|
+
"grand-neveu/grande-ni\xE8ce"
|
|
7056
|
+
);
|
|
7057
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6982
7058
|
}
|
|
6983
7059
|
parent() {
|
|
6984
|
-
const
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
if (this.personN?.isFemale()) {
|
|
6989
|
-
return `${prefix}m\xE8re`;
|
|
7060
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7061
|
+
const sex = sexOf2(this.personN);
|
|
7062
|
+
if (level <= 1) {
|
|
7063
|
+
return pick2(sex, "p\xE8re", "m\xE8re", "parent");
|
|
6990
7064
|
}
|
|
6991
|
-
|
|
7065
|
+
const grands = pick2(sex, "grand-p\xE8re", "grand-m\xE8re", "grand-parent");
|
|
7066
|
+
return `${arriere(level - 2)}${grands}`;
|
|
6992
7067
|
}
|
|
6993
7068
|
child() {
|
|
6994
|
-
const
|
|
6995
|
-
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
if (this.personN?.isFemale()) {
|
|
6999
|
-
return `${prefix}fille`;
|
|
7069
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7070
|
+
const sex = sexOf2(this.personN);
|
|
7071
|
+
if (level <= 1) {
|
|
7072
|
+
return pick2(sex, "fils", "fille", "enfant");
|
|
7000
7073
|
}
|
|
7001
|
-
|
|
7074
|
+
const petits = pick2(sex, "petit-fils", "petite-fille", "petit-enfant");
|
|
7075
|
+
return `${arriere(level - 2)}${petits}`;
|
|
7002
7076
|
}
|
|
7003
7077
|
sibling() {
|
|
7004
|
-
|
|
7005
|
-
return "fr\xE8re";
|
|
7006
|
-
}
|
|
7007
|
-
if (this.personN?.isFemale()) {
|
|
7008
|
-
return "s\u0153ur";
|
|
7009
|
-
}
|
|
7010
|
-
return "fr\xE8re/s\u0153ur";
|
|
7078
|
+
return pick2(sexOf2(this.personN), "fr\xE8re", "s\u0153ur", "fr\xE8re/s\u0153ur");
|
|
7011
7079
|
}
|
|
7012
7080
|
halfBlood(relation) {
|
|
7013
7081
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7016,45 +7084,35 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7016
7084
|
return `demi-${relation}`;
|
|
7017
7085
|
}
|
|
7018
7086
|
spouse() {
|
|
7019
|
-
|
|
7020
|
-
return "mari";
|
|
7021
|
-
}
|
|
7022
|
-
if (this.personN?.isFemale()) {
|
|
7023
|
-
return "\xE9pouse";
|
|
7024
|
-
}
|
|
7025
|
-
return "conjoint";
|
|
7087
|
+
return pick2(sexOf2(this.personN), "mari", "\xE9pouse", "conjoint");
|
|
7026
7088
|
}
|
|
7027
7089
|
ofSpouse(relation) {
|
|
7028
7090
|
if (!relation) {
|
|
7029
7091
|
return "";
|
|
7030
7092
|
}
|
|
7031
|
-
const
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
|
|
7037
|
-
|
|
7038
|
-
}
|
|
7039
|
-
return `${relation} du ${spouseType}`;
|
|
7093
|
+
const spouseType = pick2(
|
|
7094
|
+
sexOf2(this.path?.[1].indi),
|
|
7095
|
+
"mari",
|
|
7096
|
+
"\xE9pouse",
|
|
7097
|
+
"conjoint"
|
|
7098
|
+
);
|
|
7099
|
+
return `${relation} ${ofSpousePrep(spouseType)}${spouseType}`;
|
|
7040
7100
|
}
|
|
7041
7101
|
spouseOf(relation) {
|
|
7042
7102
|
if (!relation) {
|
|
7043
7103
|
return "";
|
|
7044
7104
|
}
|
|
7045
|
-
const
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
spouseType = "\xE9pouse";
|
|
7052
|
-
}
|
|
7105
|
+
const spouseType = pick2(
|
|
7106
|
+
sexOf2(this.path?.[this.path.length - 1].indi),
|
|
7107
|
+
"mari",
|
|
7108
|
+
"\xE9pouse",
|
|
7109
|
+
"conjoint"
|
|
7110
|
+
);
|
|
7053
7111
|
return `${spouseType} de ${relation}`;
|
|
7054
7112
|
}
|
|
7055
7113
|
of(relation) {
|
|
7056
7114
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7057
|
-
nameOrder:
|
|
7115
|
+
nameOrder: this.nameOrder
|
|
7058
7116
|
});
|
|
7059
7117
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7060
7118
|
if (this.displayName === "none") {
|
|
@@ -7070,6 +7128,9 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7070
7128
|
if (relation.includes(" du ") || relation.includes(" de ")) {
|
|
7071
7129
|
return relation.replace(/ (du|de) /, ` $1 ${name} `);
|
|
7072
7130
|
}
|
|
7131
|
+
if (relation.includes(" de l'")) {
|
|
7132
|
+
return relation.replace(" de l'", ` de ${name} l'`);
|
|
7133
|
+
}
|
|
7073
7134
|
return `${relation} de ${name}`;
|
|
7074
7135
|
}
|
|
7075
7136
|
inLaw(relation) {
|
|
@@ -7098,50 +7159,118 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7098
7159
|
if (!relation || !this.pathN?.relation) {
|
|
7099
7160
|
return relation ?? "";
|
|
7100
7161
|
}
|
|
7101
|
-
|
|
7162
|
+
const kind = parentRelationsFr[this.pathN.relation];
|
|
7163
|
+
if (!kind) {
|
|
7164
|
+
return relation;
|
|
7165
|
+
}
|
|
7166
|
+
if (kind === "step") {
|
|
7167
|
+
return `${isFeminineRelation(relation) ? "belle-" : "beau-"}${relation}`;
|
|
7168
|
+
}
|
|
7169
|
+
if (kind === "adopted") {
|
|
7170
|
+
return `${relation} ${isFeminineRelation(relation) ? "adoptive" : "adoptif"}`;
|
|
7171
|
+
}
|
|
7172
|
+
if (kind === "foster") {
|
|
7173
|
+
return `${relation} d'accueil`;
|
|
7174
|
+
}
|
|
7175
|
+
return relation;
|
|
7102
7176
|
}
|
|
7103
7177
|
};
|
|
7104
7178
|
|
|
7105
7179
|
// src/kinship-translator/patterns.es.ts
|
|
7180
|
+
var parentRelationsEs = {
|
|
7181
|
+
step: {
|
|
7182
|
+
padre: "padrastro",
|
|
7183
|
+
madre: "madrastra",
|
|
7184
|
+
hijo: "hijastro",
|
|
7185
|
+
hija: "hijastra",
|
|
7186
|
+
hermano: "hermanastro",
|
|
7187
|
+
hermana: "hermanastra",
|
|
7188
|
+
abuelo: "abuelastro",
|
|
7189
|
+
abuela: "abuelastra"
|
|
7190
|
+
}
|
|
7191
|
+
};
|
|
7106
7192
|
var InLawsEs = {
|
|
7107
7193
|
"c\xF3nyuge de (hijo/hija|hija|hijo)": "yerno/nuera",
|
|
7108
7194
|
"esposa de (hijo/hija|hija|hijo)": "nuera",
|
|
7109
7195
|
"esposo de (hijo/hija|hija|hijo)": "yerno",
|
|
7110
|
-
"madre del
|
|
7111
|
-
"padre del
|
|
7112
|
-
"padre/madre del
|
|
7196
|
+
"madre (del c\xF3nyuge|del esposo|de la esposa)": "suegra",
|
|
7197
|
+
"padre (del c\xF3nyuge|del esposo|de la esposa)": "suegro",
|
|
7198
|
+
"padre/madre (del c\xF3nyuge|del esposo|de la esposa)": "suegro/suegra",
|
|
7113
7199
|
"esposa de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ada",
|
|
7114
7200
|
"esposo de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado",
|
|
7115
7201
|
"c\xF3nyuge de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado/cu\xF1ada",
|
|
7116
|
-
"(medio |media |medio/a )?hermana del
|
|
7117
|
-
"(medio |media |medio/a )?hermano del
|
|
7118
|
-
"(medio |media |medio/a )?hermano/hermana del
|
|
7202
|
+
"(medio |media |medio/a )?hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ada",
|
|
7203
|
+
"(medio |media |medio/a )?hermano (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado",
|
|
7204
|
+
"(medio |media |medio/a )?hermano/hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado/cu\xF1ada"
|
|
7119
7205
|
};
|
|
7120
7206
|
|
|
7121
7207
|
// src/kinship-translator/kinship-translator.es.ts
|
|
7122
|
-
var
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
if (level <= 1) {
|
|
7126
|
-
return "";
|
|
7127
|
-
}
|
|
7128
|
-
if (level === 2) {
|
|
7129
|
-
return "bisabuel";
|
|
7130
|
-
}
|
|
7131
|
-
if (level === 3) {
|
|
7132
|
-
return "tatarabuel";
|
|
7133
|
-
}
|
|
7134
|
-
return `t\xE1tara${level - 2}-abuel`;
|
|
7208
|
+
var sexOf3 = (person) => {
|
|
7209
|
+
if (person?.isMale?.()) {
|
|
7210
|
+
return "m";
|
|
7135
7211
|
}
|
|
7212
|
+
if (person?.isFemale?.()) {
|
|
7213
|
+
return "f";
|
|
7214
|
+
}
|
|
7215
|
+
return "n";
|
|
7216
|
+
};
|
|
7217
|
+
var pick3 = (sex, male, female, neutral) => {
|
|
7218
|
+
if (sex === "m") {
|
|
7219
|
+
return male;
|
|
7220
|
+
}
|
|
7221
|
+
if (sex === "f") {
|
|
7222
|
+
return female;
|
|
7223
|
+
}
|
|
7224
|
+
return neutral;
|
|
7225
|
+
};
|
|
7226
|
+
var SPANISH_ORDINALS_M = [
|
|
7227
|
+
"",
|
|
7228
|
+
"",
|
|
7229
|
+
"segundo",
|
|
7230
|
+
"tercero",
|
|
7231
|
+
"cuarto",
|
|
7232
|
+
"quinto",
|
|
7233
|
+
"sexto",
|
|
7234
|
+
"s\xE9ptimo",
|
|
7235
|
+
"octavo",
|
|
7236
|
+
"noveno",
|
|
7237
|
+
"d\xE9cimo"
|
|
7238
|
+
];
|
|
7239
|
+
var SPANISH_ORDINALS_F = [
|
|
7240
|
+
"",
|
|
7241
|
+
"",
|
|
7242
|
+
"segunda",
|
|
7243
|
+
"tercera",
|
|
7244
|
+
"cuarta",
|
|
7245
|
+
"quinta",
|
|
7246
|
+
"sexta",
|
|
7247
|
+
"s\xE9ptima",
|
|
7248
|
+
"octava",
|
|
7249
|
+
"novena",
|
|
7250
|
+
"d\xE9cima"
|
|
7251
|
+
];
|
|
7252
|
+
var spanishOrdinal = (n, sex) => {
|
|
7253
|
+
const list = sex === "f" ? SPANISH_ORDINALS_F : SPANISH_ORDINALS_M;
|
|
7254
|
+
return list[n] ?? `${n}.\xBA`;
|
|
7255
|
+
};
|
|
7256
|
+
var ofSpousePrep2 = (spouseType) => {
|
|
7257
|
+
if (spouseType === "esposa") {
|
|
7258
|
+
return "de la ";
|
|
7259
|
+
}
|
|
7260
|
+
return "del ";
|
|
7261
|
+
};
|
|
7262
|
+
var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
7136
7263
|
indirect() {
|
|
7137
7264
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
7138
7265
|
if (degree > 0) {
|
|
7139
7266
|
degree = degree - 1;
|
|
7140
7267
|
}
|
|
7141
|
-
|
|
7142
|
-
|
|
7268
|
+
const sex = sexOf3(this.personN);
|
|
7269
|
+
const cousin = pick3(sex, "primo", "prima", "primo/prima");
|
|
7270
|
+
if (degree <= 1) {
|
|
7271
|
+
return cousin;
|
|
7143
7272
|
}
|
|
7144
|
-
return
|
|
7273
|
+
return `${cousin} ${spanishOrdinal(degree, sex)}`;
|
|
7145
7274
|
}
|
|
7146
7275
|
removal() {
|
|
7147
7276
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7152,56 +7281,133 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7152
7281
|
if (!degree) {
|
|
7153
7282
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7154
7283
|
}
|
|
7155
|
-
return
|
|
7284
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 separado`;
|
|
7156
7285
|
}
|
|
7157
7286
|
auncle() {
|
|
7158
|
-
const
|
|
7159
|
-
|
|
7160
|
-
|
|
7287
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7288
|
+
const sex = sexOf3(this.personN);
|
|
7289
|
+
if (level <= 1) {
|
|
7290
|
+
return pick3(sex, "t\xEDo", "t\xEDa", "t\xEDo/t\xEDa");
|
|
7161
7291
|
}
|
|
7162
|
-
if (
|
|
7163
|
-
return
|
|
7292
|
+
if (level === 2) {
|
|
7293
|
+
return pick3(sex, "t\xEDo abuelo", "t\xEDa abuela", "t\xEDo/t\xEDa abuelo");
|
|
7294
|
+
}
|
|
7295
|
+
if (level === 3) {
|
|
7296
|
+
return pick3(
|
|
7297
|
+
sex,
|
|
7298
|
+
"t\xEDo bisabuelo",
|
|
7299
|
+
"t\xEDa bisabuela",
|
|
7300
|
+
"t\xEDo/t\xEDa bisabuelo"
|
|
7301
|
+
);
|
|
7164
7302
|
}
|
|
7165
|
-
return
|
|
7303
|
+
return pick3(
|
|
7304
|
+
sex,
|
|
7305
|
+
`t\xEDo abuelo (${level - 1}.\xBA)`,
|
|
7306
|
+
`t\xEDa abuela (${level - 1}.\xAA)`,
|
|
7307
|
+
`t\xEDo/t\xEDa abuelo (${level - 1}.\xBA)`
|
|
7308
|
+
);
|
|
7166
7309
|
}
|
|
7167
7310
|
nibling() {
|
|
7168
|
-
const
|
|
7169
|
-
|
|
7170
|
-
|
|
7311
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7312
|
+
const sex = sexOf3(this.personN);
|
|
7313
|
+
if (level <= 1) {
|
|
7314
|
+
return pick3(sex, "sobrino", "sobrina", "sobrino/sobrina");
|
|
7171
7315
|
}
|
|
7172
|
-
if (
|
|
7173
|
-
return
|
|
7316
|
+
if (level === 2) {
|
|
7317
|
+
return pick3(
|
|
7318
|
+
sex,
|
|
7319
|
+
"sobrino nieto",
|
|
7320
|
+
"sobrina nieta",
|
|
7321
|
+
"sobrino/sobrina nieto"
|
|
7322
|
+
);
|
|
7323
|
+
}
|
|
7324
|
+
if (level === 3) {
|
|
7325
|
+
return pick3(
|
|
7326
|
+
sex,
|
|
7327
|
+
"sobrino bisnieto",
|
|
7328
|
+
"sobrina bisnieta",
|
|
7329
|
+
"sobrino/sobrina bisnieto"
|
|
7330
|
+
);
|
|
7174
7331
|
}
|
|
7175
|
-
return
|
|
7332
|
+
return pick3(
|
|
7333
|
+
sex,
|
|
7334
|
+
`sobrino nieto (${level - 1}.\xBA)`,
|
|
7335
|
+
`sobrina nieta (${level - 1}.\xAA)`,
|
|
7336
|
+
`sobrino/sobrina nieto (${level - 1}.\xBA)`
|
|
7337
|
+
);
|
|
7176
7338
|
}
|
|
7177
7339
|
parent() {
|
|
7178
|
-
const
|
|
7179
|
-
|
|
7180
|
-
|
|
7340
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7341
|
+
const sex = sexOf3(this.personN);
|
|
7342
|
+
if (level <= 1) {
|
|
7343
|
+
return pick3(sex, "padre", "madre", "padre/madre");
|
|
7181
7344
|
}
|
|
7182
|
-
if (
|
|
7183
|
-
return
|
|
7345
|
+
if (level === 2) {
|
|
7346
|
+
return pick3(sex, "abuelo", "abuela", "abuelo/abuela");
|
|
7347
|
+
}
|
|
7348
|
+
if (level === 3) {
|
|
7349
|
+
return pick3(sex, "bisabuelo", "bisabuela", "bisabuelo/bisabuela");
|
|
7350
|
+
}
|
|
7351
|
+
if (level === 4) {
|
|
7352
|
+
return pick3(
|
|
7353
|
+
sex,
|
|
7354
|
+
"tatarabuelo",
|
|
7355
|
+
"tatarabuela",
|
|
7356
|
+
"tatarabuelo/tatarabuela"
|
|
7357
|
+
);
|
|
7358
|
+
}
|
|
7359
|
+
if (level === 5) {
|
|
7360
|
+
return pick3(
|
|
7361
|
+
sex,
|
|
7362
|
+
"trastatarabuelo",
|
|
7363
|
+
"trastatarabuela",
|
|
7364
|
+
"trastatarabuelo/trastatarabuela"
|
|
7365
|
+
);
|
|
7184
7366
|
}
|
|
7185
|
-
return
|
|
7367
|
+
return pick3(
|
|
7368
|
+
sex,
|
|
7369
|
+
`abuelo (${level}.\xBA)`,
|
|
7370
|
+
`abuela (${level}.\xAA)`,
|
|
7371
|
+
`abuelo/abuela (${level}.\xBA)`
|
|
7372
|
+
);
|
|
7186
7373
|
}
|
|
7187
7374
|
child() {
|
|
7188
|
-
const
|
|
7189
|
-
|
|
7190
|
-
|
|
7375
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7376
|
+
const sex = sexOf3(this.personN);
|
|
7377
|
+
if (level <= 1) {
|
|
7378
|
+
return pick3(sex, "hijo", "hija", "hijo/hija");
|
|
7191
7379
|
}
|
|
7192
|
-
if (
|
|
7193
|
-
return
|
|
7380
|
+
if (level === 2) {
|
|
7381
|
+
return pick3(sex, "nieto", "nieta", "nieto/nieta");
|
|
7194
7382
|
}
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
sibling() {
|
|
7198
|
-
if (this.personN?.isMale()) {
|
|
7199
|
-
return "hermano";
|
|
7383
|
+
if (level === 3) {
|
|
7384
|
+
return pick3(sex, "bisnieto", "bisnieta", "bisnieto/bisnieta");
|
|
7200
7385
|
}
|
|
7201
|
-
if (
|
|
7202
|
-
return
|
|
7386
|
+
if (level === 4) {
|
|
7387
|
+
return pick3(
|
|
7388
|
+
sex,
|
|
7389
|
+
"tataranieto",
|
|
7390
|
+
"tataranieta",
|
|
7391
|
+
"tataranieto/tataranieta"
|
|
7392
|
+
);
|
|
7393
|
+
}
|
|
7394
|
+
if (level === 5) {
|
|
7395
|
+
return pick3(
|
|
7396
|
+
sex,
|
|
7397
|
+
"trastataranieto",
|
|
7398
|
+
"trastataranieta",
|
|
7399
|
+
"trastataranieto/trastataranieta"
|
|
7400
|
+
);
|
|
7203
7401
|
}
|
|
7204
|
-
return
|
|
7402
|
+
return pick3(
|
|
7403
|
+
sex,
|
|
7404
|
+
`nieto (${level}.\xBA)`,
|
|
7405
|
+
`nieta (${level}.\xAA)`,
|
|
7406
|
+
`nieto/nieta (${level}.\xBA)`
|
|
7407
|
+
);
|
|
7408
|
+
}
|
|
7409
|
+
sibling() {
|
|
7410
|
+
return pick3(sexOf3(this.personN), "hermano", "hermana", "hermano/hermana");
|
|
7205
7411
|
}
|
|
7206
7412
|
halfBlood(relation) {
|
|
7207
7413
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7216,45 +7422,35 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7216
7422
|
return `medio/a ${relation}`;
|
|
7217
7423
|
}
|
|
7218
7424
|
spouse() {
|
|
7219
|
-
|
|
7220
|
-
return "esposo";
|
|
7221
|
-
}
|
|
7222
|
-
if (this.personN?.isFemale()) {
|
|
7223
|
-
return "esposa";
|
|
7224
|
-
}
|
|
7225
|
-
return "c\xF3nyuge";
|
|
7425
|
+
return pick3(sexOf3(this.personN), "esposo", "esposa", "c\xF3nyuge");
|
|
7226
7426
|
}
|
|
7227
7427
|
ofSpouse(relation) {
|
|
7228
7428
|
if (!relation) {
|
|
7229
7429
|
return "";
|
|
7230
7430
|
}
|
|
7231
|
-
const
|
|
7232
|
-
|
|
7233
|
-
|
|
7234
|
-
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
}
|
|
7239
|
-
return `${relation} del ${spouseType}`;
|
|
7431
|
+
const spouseType = pick3(
|
|
7432
|
+
sexOf3(this.path?.[1].indi),
|
|
7433
|
+
"esposo",
|
|
7434
|
+
"esposa",
|
|
7435
|
+
"c\xF3nyuge"
|
|
7436
|
+
);
|
|
7437
|
+
return `${relation} ${ofSpousePrep2(spouseType)}${spouseType}`;
|
|
7240
7438
|
}
|
|
7241
7439
|
spouseOf(relation) {
|
|
7242
7440
|
if (!relation) {
|
|
7243
7441
|
return "";
|
|
7244
7442
|
}
|
|
7245
|
-
const
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
spouseType = "esposa";
|
|
7252
|
-
}
|
|
7443
|
+
const spouseType = pick3(
|
|
7444
|
+
sexOf3(this.path?.[this.path.length - 1].indi),
|
|
7445
|
+
"esposo",
|
|
7446
|
+
"esposa",
|
|
7447
|
+
"c\xF3nyuge"
|
|
7448
|
+
);
|
|
7253
7449
|
return `${spouseType} de ${relation}`;
|
|
7254
7450
|
}
|
|
7255
7451
|
of(relation) {
|
|
7256
7452
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7257
|
-
nameOrder:
|
|
7453
|
+
nameOrder: this.nameOrder
|
|
7258
7454
|
});
|
|
7259
7455
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7260
7456
|
if (this.displayName === "none") {
|
|
@@ -7267,8 +7463,8 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7267
7463
|
if (!name || !relation) {
|
|
7268
7464
|
return relation ?? "";
|
|
7269
7465
|
}
|
|
7270
|
-
if (relation.includes(" del ") || relation.includes(" de ")) {
|
|
7271
|
-
return relation.replace(/ (del|de) /, ` $1 ${name} `);
|
|
7466
|
+
if (relation.includes(" del ") || relation.includes(" de la ") || relation.includes(" de ")) {
|
|
7467
|
+
return relation.replace(/ (del|de la|de) /, ` $1 ${name} `);
|
|
7272
7468
|
}
|
|
7273
7469
|
return `${relation} de ${name}`;
|
|
7274
7470
|
}
|
|
@@ -7298,7 +7494,20 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7298
7494
|
if (!relation || !this.pathN?.relation) {
|
|
7299
7495
|
return relation ?? "";
|
|
7300
7496
|
}
|
|
7301
|
-
|
|
7497
|
+
const mapped = parentRelationsEs[this.pathN.relation]?.[relation];
|
|
7498
|
+
if (mapped) {
|
|
7499
|
+
return mapped;
|
|
7500
|
+
}
|
|
7501
|
+
if (this.pathN.relation === "step") {
|
|
7502
|
+
return `${relation} pol\xEDtico`;
|
|
7503
|
+
}
|
|
7504
|
+
if (this.pathN.relation === "adopted") {
|
|
7505
|
+
return `${relation} adoptivo`;
|
|
7506
|
+
}
|
|
7507
|
+
if (this.pathN.relation === "foster") {
|
|
7508
|
+
return `${relation} de acogida`;
|
|
7509
|
+
}
|
|
7510
|
+
return relation;
|
|
7302
7511
|
}
|
|
7303
7512
|
};
|
|
7304
7513
|
|
|
@@ -7307,15 +7516,35 @@ var InLawsRu = {
|
|
|
7307
7516
|
"\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",
|
|
7308
7517
|
"\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",
|
|
7309
7518
|
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
7310
|
-
"\u043C\u0430\u0442\u044C
|
|
7311
|
-
"\
|
|
7312
|
-
"\
|
|
7519
|
+
"\u043C\u0430\u0442\u044C \u0436\u0435\u043D\u044B": "\u0442\u0451\u0449\u0430",
|
|
7520
|
+
"\u043C\u0430\u0442\u044C \u043C\u0443\u0436\u0430": "\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7521
|
+
"\u043C\u0430\u0442\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0451\u0449\u0430/\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7522
|
+
"\u043E\u0442\u0435\u0446 \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C",
|
|
7523
|
+
"\u043E\u0442\u0435\u0446 \u043C\u0443\u0436\u0430": "\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7524
|
+
"\u043E\u0442\u0435\u0446 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7525
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7526
|
+
"\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",
|
|
7527
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7313
7528
|
"\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",
|
|
7314
7529
|
"\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",
|
|
7315
7530
|
"\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",
|
|
7316
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430
|
|
7317
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\
|
|
7318
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\
|
|
7531
|
+
"(\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",
|
|
7532
|
+
"(\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",
|
|
7533
|
+
"(\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",
|
|
7534
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u0436\u0435\u043D\u044B": "\u0448\u0443\u0440\u0438\u043D",
|
|
7535
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u043C\u0443\u0436\u0430": "\u0434\u0435\u0432\u0435\u0440\u044C",
|
|
7536
|
+
"(\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",
|
|
7537
|
+
"(\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",
|
|
7538
|
+
"(\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",
|
|
7539
|
+
"(\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"
|
|
7540
|
+
};
|
|
7541
|
+
var parentRelationsRu = {
|
|
7542
|
+
step: {
|
|
7543
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0447\u0438\u043C",
|
|
7544
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0447\u0435\u0445\u0430",
|
|
7545
|
+
\u0441\u044B\u043D: "\u043F\u0430\u0441\u044B\u043D\u043E\u043A",
|
|
7546
|
+
\u0434\u043E\u0447\u044C: "\u043F\u0430\u0434\u0447\u0435\u0440\u0438\u0446\u0430"
|
|
7547
|
+
}
|
|
7319
7548
|
};
|
|
7320
7549
|
|
|
7321
7550
|
// src/kinship-translator/kinship-translator.ru.ts
|
|
@@ -7346,7 +7575,7 @@ var cousinWord = (degree, sex) => {
|
|
|
7346
7575
|
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
7347
7576
|
};
|
|
7348
7577
|
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
7349
|
-
var
|
|
7578
|
+
var sexOf4 = (person) => {
|
|
7350
7579
|
if (person?.isMale?.()) {
|
|
7351
7580
|
return "m";
|
|
7352
7581
|
}
|
|
@@ -7361,7 +7590,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7361
7590
|
if (degree > 0) {
|
|
7362
7591
|
degree = degree - 1;
|
|
7363
7592
|
}
|
|
7364
|
-
return cousinWord(degree,
|
|
7593
|
+
return cousinWord(degree, sexOf4(this.personN));
|
|
7365
7594
|
}
|
|
7366
7595
|
removal() {
|
|
7367
7596
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7373,35 +7602,53 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7373
7602
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7374
7603
|
}
|
|
7375
7604
|
const removed = Math.abs(level);
|
|
7376
|
-
return `${cousinWord(degree,
|
|
7605
|
+
return `${cousinWord(degree, sexOf4(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
7377
7606
|
}
|
|
7378
7607
|
auncle() {
|
|
7379
7608
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7380
|
-
const
|
|
7381
|
-
|
|
7609
|
+
const sex = sexOf4(this.personN);
|
|
7610
|
+
if (level <= 1) {
|
|
7611
|
+
if (sex === "m") {
|
|
7612
|
+
return "\u0434\u044F\u0434\u044F";
|
|
7613
|
+
}
|
|
7614
|
+
if (sex === "f") {
|
|
7615
|
+
return "\u0442\u0451\u0442\u044F";
|
|
7616
|
+
}
|
|
7617
|
+
return "\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F";
|
|
7618
|
+
}
|
|
7619
|
+
const pra = praRepeat(level - 2);
|
|
7382
7620
|
if (sex === "m") {
|
|
7383
|
-
return
|
|
7621
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434`;
|
|
7384
7622
|
}
|
|
7385
7623
|
if (sex === "f") {
|
|
7386
|
-
return
|
|
7624
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u0430\u044F ${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
7387
7625
|
}
|
|
7388
|
-
return
|
|
7626
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
7389
7627
|
}
|
|
7390
7628
|
nibling() {
|
|
7391
7629
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7392
|
-
const
|
|
7393
|
-
|
|
7630
|
+
const sex = sexOf4(this.personN);
|
|
7631
|
+
if (level <= 1) {
|
|
7632
|
+
if (sex === "m") {
|
|
7633
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A";
|
|
7634
|
+
}
|
|
7635
|
+
if (sex === "f") {
|
|
7636
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7637
|
+
}
|
|
7638
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7639
|
+
}
|
|
7640
|
+
const pra = praRepeat(level - 2);
|
|
7394
7641
|
if (sex === "m") {
|
|
7395
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7642
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u044B\u0439 \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7396
7643
|
}
|
|
7397
7644
|
if (sex === "f") {
|
|
7398
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7645
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u0430\u044F \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7399
7646
|
}
|
|
7400
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7647
|
+
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`;
|
|
7401
7648
|
}
|
|
7402
7649
|
parent() {
|
|
7403
7650
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7404
|
-
const sex =
|
|
7651
|
+
const sex = sexOf4(this.personN);
|
|
7405
7652
|
if (level <= 1) {
|
|
7406
7653
|
if (sex === "m") {
|
|
7407
7654
|
return "\u043E\u0442\u0435\u0446";
|
|
@@ -7431,7 +7678,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7431
7678
|
}
|
|
7432
7679
|
child() {
|
|
7433
7680
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7434
|
-
const sex =
|
|
7681
|
+
const sex = sexOf4(this.personN);
|
|
7435
7682
|
if (level <= 1) {
|
|
7436
7683
|
if (sex === "m") {
|
|
7437
7684
|
return "\u0441\u044B\u043D";
|
|
@@ -7460,14 +7707,14 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7460
7707
|
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
7461
7708
|
}
|
|
7462
7709
|
sibling() {
|
|
7463
|
-
const sex =
|
|
7710
|
+
const sex = sexOf4(this.personN);
|
|
7464
7711
|
if (sex === "m") {
|
|
7465
7712
|
return "\u0431\u0440\u0430\u0442";
|
|
7466
7713
|
}
|
|
7467
7714
|
if (sex === "f") {
|
|
7468
7715
|
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
7469
7716
|
}
|
|
7470
|
-
return "\u0441\
|
|
7717
|
+
return "\u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
7471
7718
|
}
|
|
7472
7719
|
halfBlood(relation) {
|
|
7473
7720
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7481,7 +7728,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7481
7728
|
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
7482
7729
|
}
|
|
7483
7730
|
spouse() {
|
|
7484
|
-
const sex =
|
|
7731
|
+
const sex = sexOf4(this.personN);
|
|
7485
7732
|
if (sex === "m") {
|
|
7486
7733
|
return "\u043C\u0443\u0436";
|
|
7487
7734
|
}
|
|
@@ -7495,7 +7742,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7495
7742
|
return "";
|
|
7496
7743
|
}
|
|
7497
7744
|
const spouse = this.path?.[1].indi;
|
|
7498
|
-
const sex =
|
|
7745
|
+
const sex = sexOf4(spouse);
|
|
7499
7746
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7500
7747
|
return `${relation} ${toGenitive(spouseType)}`;
|
|
7501
7748
|
}
|
|
@@ -7504,13 +7751,13 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7504
7751
|
return "";
|
|
7505
7752
|
}
|
|
7506
7753
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7507
|
-
const sex =
|
|
7754
|
+
const sex = sexOf4(spouse);
|
|
7508
7755
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7509
7756
|
return `${spouseType} ${toGenitive(relation)}`;
|
|
7510
7757
|
}
|
|
7511
7758
|
of(relation) {
|
|
7512
7759
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7513
|
-
nameOrder:
|
|
7760
|
+
nameOrder: this.nameOrder
|
|
7514
7761
|
});
|
|
7515
7762
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7516
7763
|
if (this.displayName === "none") {
|
|
@@ -7541,7 +7788,22 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7541
7788
|
if (!relation || !this.pathN?.relation) {
|
|
7542
7789
|
return relation ?? "";
|
|
7543
7790
|
}
|
|
7544
|
-
|
|
7791
|
+
const mapped = parentRelationsRu[this.pathN.relation]?.[relation];
|
|
7792
|
+
if (mapped) {
|
|
7793
|
+
return mapped;
|
|
7794
|
+
}
|
|
7795
|
+
if (this.pathN.relation === "step") {
|
|
7796
|
+
return `\u043D\u0435\u0440\u043E\u0434\u043D\u043E\u0439 ${relation}`;
|
|
7797
|
+
}
|
|
7798
|
+
if (this.pathN.relation === "adopted") {
|
|
7799
|
+
return /сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
7800
|
+
relation
|
|
7801
|
+
) ? `\u043F\u0440\u0438\u0451\u043C\u043D\u0430\u044F ${relation}` : `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7802
|
+
}
|
|
7803
|
+
if (this.pathN.relation === "foster") {
|
|
7804
|
+
return `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7805
|
+
}
|
|
7806
|
+
return relation;
|
|
7545
7807
|
}
|
|
7546
7808
|
};
|
|
7547
7809
|
|
|
@@ -7565,7 +7827,7 @@ var InLawsJa = {
|
|
|
7565
7827
|
};
|
|
7566
7828
|
|
|
7567
7829
|
// src/kinship-translator/kinship-translator.ja.ts
|
|
7568
|
-
var
|
|
7830
|
+
var sexOf5 = (person) => {
|
|
7569
7831
|
if (person?.isMale?.()) {
|
|
7570
7832
|
return "m";
|
|
7571
7833
|
}
|
|
@@ -7574,7 +7836,7 @@ var sexOf2 = (person) => {
|
|
|
7574
7836
|
}
|
|
7575
7837
|
return "n";
|
|
7576
7838
|
};
|
|
7577
|
-
var
|
|
7839
|
+
var pick4 = (sex, male, female, neutral) => {
|
|
7578
7840
|
if (sex === "m") {
|
|
7579
7841
|
return male;
|
|
7580
7842
|
}
|
|
@@ -7587,18 +7849,18 @@ var lineal = (level, sex, kind) => {
|
|
|
7587
7849
|
const L = Math.max(1, level);
|
|
7588
7850
|
if (kind === "asc") {
|
|
7589
7851
|
if (L <= 1) {
|
|
7590
|
-
return
|
|
7852
|
+
return pick4(sex, "\u7236", "\u6BCD", "\u89AA");
|
|
7591
7853
|
}
|
|
7592
7854
|
if (L === 2) {
|
|
7593
|
-
return
|
|
7855
|
+
return pick4(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7594
7856
|
}
|
|
7595
7857
|
if (L === 3) {
|
|
7596
|
-
return
|
|
7858
|
+
return pick4(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7597
7859
|
}
|
|
7598
7860
|
if (L === 4) {
|
|
7599
|
-
return
|
|
7861
|
+
return pick4(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7600
7862
|
}
|
|
7601
|
-
return
|
|
7863
|
+
return pick4(
|
|
7602
7864
|
sex,
|
|
7603
7865
|
`${L - 1}\u4E16\u306E\u7956\u7236`,
|
|
7604
7866
|
`${L - 1}\u4E16\u306E\u7956\u6BCD`,
|
|
@@ -7606,7 +7868,7 @@ var lineal = (level, sex, kind) => {
|
|
|
7606
7868
|
);
|
|
7607
7869
|
}
|
|
7608
7870
|
if (L <= 1) {
|
|
7609
|
-
return
|
|
7871
|
+
return pick4(sex, "\u606F\u5B50", "\u5A18", "\u5B50");
|
|
7610
7872
|
}
|
|
7611
7873
|
if (L === 2) {
|
|
7612
7874
|
return "\u5B6B";
|
|
@@ -7653,52 +7915,52 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7653
7915
|
}
|
|
7654
7916
|
auncle() {
|
|
7655
7917
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7656
|
-
const sex =
|
|
7657
|
-
if (level <=
|
|
7658
|
-
return
|
|
7918
|
+
const sex = sexOf5(this.personN);
|
|
7919
|
+
if (level <= 1) {
|
|
7920
|
+
return pick4(sex, "\u304A\u3058", "\u304A\u3070", "\u304A\u3058/\u304A\u3070");
|
|
7659
7921
|
}
|
|
7660
|
-
if (level ===
|
|
7661
|
-
return
|
|
7922
|
+
if (level === 2) {
|
|
7923
|
+
return pick4(sex, "\u5927\u304A\u3058", "\u5927\u304A\u3070", "\u5927\u304A\u3058/\u5927\u304A\u3070");
|
|
7662
7924
|
}
|
|
7663
|
-
return
|
|
7925
|
+
return pick4(
|
|
7664
7926
|
sex,
|
|
7665
|
-
`${level -
|
|
7666
|
-
`${level -
|
|
7667
|
-
`${level -
|
|
7927
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058`,
|
|
7928
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3070`,
|
|
7929
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058/\u304A\u3070`
|
|
7668
7930
|
);
|
|
7669
7931
|
}
|
|
7670
7932
|
nibling() {
|
|
7671
7933
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7672
|
-
const sex =
|
|
7673
|
-
if (level <=
|
|
7674
|
-
return
|
|
7934
|
+
const sex = sexOf5(this.personN);
|
|
7935
|
+
if (level <= 1) {
|
|
7936
|
+
return pick4(sex, "\u7525", "\u59EA", "\u7525/\u59EA");
|
|
7675
7937
|
}
|
|
7676
|
-
if (level ===
|
|
7677
|
-
return
|
|
7938
|
+
if (level === 2) {
|
|
7939
|
+
return pick4(sex, "\u5927\u7525", "\u5927\u59EA", "\u5927\u7525/\u5927\u59EA");
|
|
7678
7940
|
}
|
|
7679
|
-
return
|
|
7941
|
+
return pick4(
|
|
7680
7942
|
sex,
|
|
7681
|
-
`${level -
|
|
7682
|
-
`${level -
|
|
7683
|
-
`${level -
|
|
7943
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525`,
|
|
7944
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u59EA`,
|
|
7945
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525/\u59EA`
|
|
7684
7946
|
);
|
|
7685
7947
|
}
|
|
7686
7948
|
parent() {
|
|
7687
7949
|
return lineal(
|
|
7688
7950
|
Math.abs(this.pathN?.level ?? 0),
|
|
7689
|
-
|
|
7951
|
+
sexOf5(this.personN),
|
|
7690
7952
|
"asc"
|
|
7691
7953
|
);
|
|
7692
7954
|
}
|
|
7693
7955
|
child() {
|
|
7694
7956
|
return lineal(
|
|
7695
7957
|
Math.abs(this.pathN?.level ?? 0),
|
|
7696
|
-
|
|
7958
|
+
sexOf5(this.personN),
|
|
7697
7959
|
"desc"
|
|
7698
7960
|
);
|
|
7699
7961
|
}
|
|
7700
7962
|
sibling() {
|
|
7701
|
-
return
|
|
7963
|
+
return pick4(sexOf5(this.personN), "\u5144\u5F1F", "\u59C9\u59B9", "\u5144\u5F1F\u59C9\u59B9");
|
|
7702
7964
|
}
|
|
7703
7965
|
halfBlood(relation) {
|
|
7704
7966
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7707,14 +7969,14 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7707
7969
|
return `\u7570\u7236\u6BCD\u306E${relation}`;
|
|
7708
7970
|
}
|
|
7709
7971
|
spouse() {
|
|
7710
|
-
return
|
|
7972
|
+
return pick4(sexOf5(this.personN), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7711
7973
|
}
|
|
7712
7974
|
ofSpouse(relation) {
|
|
7713
7975
|
if (!relation) {
|
|
7714
7976
|
return "";
|
|
7715
7977
|
}
|
|
7716
|
-
const spouseType =
|
|
7717
|
-
|
|
7978
|
+
const spouseType = pick4(
|
|
7979
|
+
sexOf5(this.path?.[1].indi),
|
|
7718
7980
|
"\u592B",
|
|
7719
7981
|
"\u59BB",
|
|
7720
7982
|
"\u914D\u5076\u8005"
|
|
@@ -7726,12 +7988,12 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7726
7988
|
return "";
|
|
7727
7989
|
}
|
|
7728
7990
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7729
|
-
const spouseType =
|
|
7991
|
+
const spouseType = pick4(sexOf5(spouse), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7730
7992
|
return `${relation}\u306E${spouseType}`;
|
|
7731
7993
|
}
|
|
7732
7994
|
of(relation) {
|
|
7733
7995
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7734
|
-
nameOrder:
|
|
7996
|
+
nameOrder: this.nameOrder
|
|
7735
7997
|
});
|
|
7736
7998
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7737
7999
|
if (this.displayName === "none") {
|
|
@@ -7762,7 +8024,28 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7762
8024
|
if (!relation || !this.pathN?.relation) {
|
|
7763
8025
|
return relation ?? "";
|
|
7764
8026
|
}
|
|
7765
|
-
|
|
8027
|
+
if (this.pathN.relation === "step") {
|
|
8028
|
+
if (relation === "\u7236") {
|
|
8029
|
+
return "\u7EE7\u7236";
|
|
8030
|
+
}
|
|
8031
|
+
if (relation === "\u6BCD") {
|
|
8032
|
+
return "\u7D99\u6BCD";
|
|
8033
|
+
}
|
|
8034
|
+
if (relation === "\u606F\u5B50") {
|
|
8035
|
+
return "\u7D99\u5B50";
|
|
8036
|
+
}
|
|
8037
|
+
if (relation === "\u5A18") {
|
|
8038
|
+
return "\u7D99\u5A18";
|
|
8039
|
+
}
|
|
8040
|
+
return `\u7D99${relation}`;
|
|
8041
|
+
}
|
|
8042
|
+
if (this.pathN.relation === "adopted") {
|
|
8043
|
+
return `\u990A\u5B50\u306E${relation}`;
|
|
8044
|
+
}
|
|
8045
|
+
if (this.pathN.relation === "foster") {
|
|
8046
|
+
return `\u91CC\u89AA\u306E${relation}`;
|
|
8047
|
+
}
|
|
8048
|
+
return relation;
|
|
7766
8049
|
}
|
|
7767
8050
|
};
|
|
7768
8051
|
|
|
@@ -7771,22 +8054,32 @@ var InLawsZh = {
|
|
|
7771
8054
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u914D\u5076": "\u513F\u5AB3/\u5973\u5A7F",
|
|
7772
8055
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u59BB\u5B50": "\u513F\u5AB3",
|
|
7773
8056
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u4E08\u592B": "\u5973\u5A7F",
|
|
7774
|
-
"
|
|
7775
|
-
"
|
|
7776
|
-
"(\u914D\u5076
|
|
8057
|
+
"\u59BB\u5B50\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD",
|
|
8058
|
+
"\u4E08\u592B\u7684\u6BCD\u4EB2": "\u5A46\u5A46",
|
|
8059
|
+
"(\u914D\u5076)\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD/\u5A46\u5A46",
|
|
8060
|
+
"\u59BB\u5B50\u7684\u7236\u4EB2": "\u5CB3\u7236",
|
|
8061
|
+
"\u4E08\u592B\u7684\u7236\u4EB2": "\u516C\u516C",
|
|
8062
|
+
"(\u914D\u5076)\u7684\u7236\u4EB2": "\u5CB3\u7236/\u516C\u516C",
|
|
8063
|
+
"\u59BB\u5B50\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD",
|
|
8064
|
+
"\u4E08\u592B\u7684\u7236\u6BCD": "\u516C\u516C\u5A46\u5A46",
|
|
8065
|
+
"(\u914D\u5076)\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD/\u516C\u516C\u5A46\u5A46",
|
|
7777
8066
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u59BB\u5B50": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7778
8067
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u4E08\u592B": "\u59D0\u592B/\u59B9\u592B",
|
|
7779
8068
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u914D\u5076": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7780
8069
|
"(\u5F02\u7236\u6BCD\u7684)?\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59D0\u592B/\u59B9\u592B",
|
|
7781
8070
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7782
8071
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7783
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7784
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
8072
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u59D0\u59B9": "\u59E8\u5B50",
|
|
8073
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u59D0\u59B9": "\u59D1\u5B50",
|
|
8074
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u59D0\u59B9": "\u59D1\u5B50/\u59E8\u5B50",
|
|
8075
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u5144\u5F1F": "\u5185\u5144/\u5185\u5F1F",
|
|
8076
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4",
|
|
8077
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4/\u5185\u5144/\u5185\u5F1F",
|
|
7785
8078
|
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)\u7684\u5144\u5F1F\u59D0\u59B9": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9"
|
|
7786
8079
|
};
|
|
7787
8080
|
|
|
7788
8081
|
// src/kinship-translator/kinship-translator.zh.ts
|
|
7789
|
-
var
|
|
8082
|
+
var sexOf6 = (person) => {
|
|
7790
8083
|
if (person?.isMale?.()) {
|
|
7791
8084
|
return "m";
|
|
7792
8085
|
}
|
|
@@ -7795,7 +8088,7 @@ var sexOf3 = (person) => {
|
|
|
7795
8088
|
}
|
|
7796
8089
|
return "n";
|
|
7797
8090
|
};
|
|
7798
|
-
var
|
|
8091
|
+
var pick5 = (sex, male, female, neutral) => {
|
|
7799
8092
|
if (sex === "m") {
|
|
7800
8093
|
return male;
|
|
7801
8094
|
}
|
|
@@ -7808,41 +8101,41 @@ var lineal2 = (level, sex, kind) => {
|
|
|
7808
8101
|
const L = Math.max(1, level);
|
|
7809
8102
|
if (kind === "asc") {
|
|
7810
8103
|
if (L <= 1) {
|
|
7811
|
-
return
|
|
8104
|
+
return pick5(sex, "\u7236\u4EB2", "\u6BCD\u4EB2", "\u7236\u6BCD");
|
|
7812
8105
|
}
|
|
7813
8106
|
if (L === 2) {
|
|
7814
|
-
return
|
|
8107
|
+
return pick5(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7815
8108
|
}
|
|
7816
8109
|
if (L === 3) {
|
|
7817
|
-
return
|
|
8110
|
+
return pick5(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7818
8111
|
}
|
|
7819
8112
|
if (L === 4) {
|
|
7820
|
-
return
|
|
8113
|
+
return pick5(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7821
8114
|
}
|
|
7822
|
-
return
|
|
8115
|
+
return pick5(sex, `${L}\u4E16\u7956`, `${L}\u4E16\u7956\u6BCD`, `${L}\u4E16\u7956\u7236\u6BCD`);
|
|
7823
8116
|
}
|
|
7824
8117
|
if (L <= 1) {
|
|
7825
|
-
return
|
|
8118
|
+
return pick5(sex, "\u513F\u5B50", "\u5973\u513F", "\u5B50\u5973");
|
|
7826
8119
|
}
|
|
7827
8120
|
if (L === 2) {
|
|
7828
|
-
return
|
|
8121
|
+
return pick5(sex, "\u5B59\u5B50", "\u5B59\u5973", "\u5B59\u5B50\u5973");
|
|
7829
8122
|
}
|
|
7830
8123
|
if (L === 3) {
|
|
7831
|
-
return
|
|
8124
|
+
return pick5(sex, "\u66FE\u5B59", "\u66FE\u5B59\u5973", "\u66FE\u5B59\u5B50\u5973");
|
|
7832
8125
|
}
|
|
7833
8126
|
if (L === 4) {
|
|
7834
|
-
return
|
|
8127
|
+
return pick5(sex, "\u7384\u5B59", "\u7384\u5B59\u5973", "\u7384\u5B59\u5B50\u5973");
|
|
7835
8128
|
}
|
|
7836
|
-
return
|
|
8129
|
+
return pick5(sex, `${L}\u4E16\u5B59`, `${L}\u4E16\u5B59\u5973`, `${L}\u4E16\u5B59\u5B50\u5973`);
|
|
7837
8130
|
};
|
|
7838
8131
|
var cousinPlain2 = (degree, sex) => {
|
|
7839
8132
|
if (degree <= 1) {
|
|
7840
|
-
return
|
|
8133
|
+
return pick5(sex, "\u5802\u8868\u5144\u5F1F", "\u5802\u8868\u59D0\u59B9", "\u5802\u8868\u4EB2");
|
|
7841
8134
|
}
|
|
7842
8135
|
if (degree === 2) {
|
|
7843
|
-
return
|
|
8136
|
+
return pick5(sex, "\u4ECE\u5802\u8868\u5144\u5F1F", "\u4ECE\u5802\u8868\u59D0\u59B9", "\u4ECE\u5802\u8868\u4EB2");
|
|
7844
8137
|
}
|
|
7845
|
-
return
|
|
8138
|
+
return pick5(
|
|
7846
8139
|
sex,
|
|
7847
8140
|
`${degree}\u4EE3\u5802\u8868\u5144\u5F1F`,
|
|
7848
8141
|
`${degree}\u4EE3\u5802\u8868\u59D0\u59B9`,
|
|
@@ -7855,7 +8148,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7855
8148
|
if (degree > 0) {
|
|
7856
8149
|
degree = degree - 1;
|
|
7857
8150
|
}
|
|
7858
|
-
return cousinPlain2(degree,
|
|
8151
|
+
return cousinPlain2(degree, sexOf6(this.personN));
|
|
7859
8152
|
}
|
|
7860
8153
|
removal() {
|
|
7861
8154
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7867,56 +8160,56 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7867
8160
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7868
8161
|
}
|
|
7869
8162
|
const removed = Math.abs(level);
|
|
7870
|
-
return `${cousinPlain2(degree,
|
|
8163
|
+
return `${cousinPlain2(degree, sexOf6(this.personN))}\uFF08\u9694${removed}\u4EE3\uFF09`;
|
|
7871
8164
|
}
|
|
7872
8165
|
auncle() {
|
|
7873
8166
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7874
|
-
const sex =
|
|
7875
|
-
if (level <=
|
|
7876
|
-
return
|
|
8167
|
+
const sex = sexOf6(this.personN);
|
|
8168
|
+
if (level <= 1) {
|
|
8169
|
+
return pick5(sex, "\u53D4\u53D4", "\u963F\u59E8", "\u53D4\u4F2F/\u59D1\u59E8");
|
|
7877
8170
|
}
|
|
7878
|
-
if (level ===
|
|
7879
|
-
return
|
|
8171
|
+
if (level === 2) {
|
|
8172
|
+
return pick5(sex, "\u4F2F\u53D4\u7956\u7236", "\u59D1\u7956\u6BCD", "\u4F2F\u53D4\u7956\u7236\u6BCD");
|
|
7880
8173
|
}
|
|
7881
|
-
return
|
|
8174
|
+
return pick5(
|
|
7882
8175
|
sex,
|
|
7883
|
-
`${level -
|
|
7884
|
-
`${level -
|
|
7885
|
-
`${level -
|
|
8176
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u53D4`,
|
|
8177
|
+
`${level - 1}\u4EE3\u524D\u7684\u963F\u59E8`,
|
|
8178
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u4F2F/\u59D1\u59E8`
|
|
7886
8179
|
);
|
|
7887
8180
|
}
|
|
7888
8181
|
nibling() {
|
|
7889
8182
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7890
|
-
const sex =
|
|
7891
|
-
if (level <=
|
|
7892
|
-
return
|
|
8183
|
+
const sex = sexOf6(this.personN);
|
|
8184
|
+
if (level <= 1) {
|
|
8185
|
+
return pick5(sex, "\u4F84\u5B50", "\u4F84\u5973", "\u4F84\u5B50\u5973");
|
|
7893
8186
|
}
|
|
7894
|
-
if (level ===
|
|
7895
|
-
return
|
|
8187
|
+
if (level === 2) {
|
|
8188
|
+
return pick5(sex, "\u4F84\u5B59", "\u4F84\u5B59\u5973", "\u4F84\u5B59\u5B50\u5973");
|
|
7896
8189
|
}
|
|
7897
|
-
return
|
|
8190
|
+
return pick5(
|
|
7898
8191
|
sex,
|
|
7899
|
-
`${level -
|
|
7900
|
-
`${level -
|
|
7901
|
-
`${level -
|
|
8192
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50`,
|
|
8193
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5973`,
|
|
8194
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50\u5973`
|
|
7902
8195
|
);
|
|
7903
8196
|
}
|
|
7904
8197
|
parent() {
|
|
7905
8198
|
return lineal2(
|
|
7906
8199
|
Math.abs(this.pathN?.level ?? 0),
|
|
7907
|
-
|
|
8200
|
+
sexOf6(this.personN),
|
|
7908
8201
|
"asc"
|
|
7909
8202
|
);
|
|
7910
8203
|
}
|
|
7911
8204
|
child() {
|
|
7912
8205
|
return lineal2(
|
|
7913
8206
|
Math.abs(this.pathN?.level ?? 0),
|
|
7914
|
-
|
|
8207
|
+
sexOf6(this.personN),
|
|
7915
8208
|
"desc"
|
|
7916
8209
|
);
|
|
7917
8210
|
}
|
|
7918
8211
|
sibling() {
|
|
7919
|
-
return
|
|
8212
|
+
return pick5(sexOf6(this.personN), "\u5144\u5F1F", "\u59D0\u59B9", "\u5144\u5F1F\u59D0\u59B9");
|
|
7920
8213
|
}
|
|
7921
8214
|
halfBlood(relation) {
|
|
7922
8215
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7925,14 +8218,14 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7925
8218
|
return `\u5F02\u7236\u6BCD\u7684${relation}`;
|
|
7926
8219
|
}
|
|
7927
8220
|
spouse() {
|
|
7928
|
-
return
|
|
8221
|
+
return pick5(sexOf6(this.personN), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7929
8222
|
}
|
|
7930
8223
|
ofSpouse(relation) {
|
|
7931
8224
|
if (!relation) {
|
|
7932
8225
|
return "";
|
|
7933
8226
|
}
|
|
7934
|
-
const spouseType =
|
|
7935
|
-
|
|
8227
|
+
const spouseType = pick5(
|
|
8228
|
+
sexOf6(this.path?.[1].indi),
|
|
7936
8229
|
"\u4E08\u592B",
|
|
7937
8230
|
"\u59BB\u5B50",
|
|
7938
8231
|
"\u914D\u5076"
|
|
@@ -7944,12 +8237,12 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7944
8237
|
return "";
|
|
7945
8238
|
}
|
|
7946
8239
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7947
|
-
const spouseType =
|
|
8240
|
+
const spouseType = pick5(sexOf6(spouse), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
7948
8241
|
return `${relation}\u7684${spouseType}`;
|
|
7949
8242
|
}
|
|
7950
8243
|
of(relation) {
|
|
7951
8244
|
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
7952
|
-
nameOrder:
|
|
8245
|
+
nameOrder: this.nameOrder
|
|
7953
8246
|
});
|
|
7954
8247
|
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
7955
8248
|
if (this.displayName === "none") {
|
|
@@ -7980,27 +8273,68 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7980
8273
|
if (!relation || !this.pathN?.relation) {
|
|
7981
8274
|
return relation ?? "";
|
|
7982
8275
|
}
|
|
7983
|
-
|
|
8276
|
+
if (this.pathN.relation === "step") {
|
|
8277
|
+
if (relation === "\u7236\u4EB2") {
|
|
8278
|
+
return "\u7EE7\u7236";
|
|
8279
|
+
}
|
|
8280
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
8281
|
+
return "\u7EE7\u6BCD";
|
|
8282
|
+
}
|
|
8283
|
+
if (relation === "\u513F\u5B50") {
|
|
8284
|
+
return "\u7EE7\u5B50";
|
|
8285
|
+
}
|
|
8286
|
+
if (relation === "\u5973\u513F") {
|
|
8287
|
+
return "\u7EE7\u5973";
|
|
8288
|
+
}
|
|
8289
|
+
return `\u7EE7${relation}`;
|
|
8290
|
+
}
|
|
8291
|
+
if (this.pathN.relation === "adopted") {
|
|
8292
|
+
if (relation === "\u7236\u4EB2") {
|
|
8293
|
+
return "\u517B\u7236";
|
|
8294
|
+
}
|
|
8295
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
8296
|
+
return "\u517B\u6BCD";
|
|
8297
|
+
}
|
|
8298
|
+
if (relation === "\u513F\u5B50") {
|
|
8299
|
+
return "\u517B\u5B50";
|
|
8300
|
+
}
|
|
8301
|
+
if (relation === "\u5973\u513F") {
|
|
8302
|
+
return "\u517B\u5973";
|
|
8303
|
+
}
|
|
8304
|
+
return `\u517B${relation}`;
|
|
8305
|
+
}
|
|
8306
|
+
if (this.pathN.relation === "foster") {
|
|
8307
|
+
return `\u5BC4\u517B${relation}`;
|
|
8308
|
+
}
|
|
8309
|
+
return relation;
|
|
7984
8310
|
}
|
|
7985
8311
|
};
|
|
7986
8312
|
|
|
7987
8313
|
// src/kinship-translator/kinship-translator.ts
|
|
8314
|
+
var nameOrderForLang = (lang) => lang === "hu" || lang === "ja" || lang === "zh" ? "last-first" : "first-last";
|
|
7988
8315
|
var KinshipTranslator = class {
|
|
7989
|
-
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname") {
|
|
8316
|
+
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname", nameOrder) {
|
|
7990
8317
|
this.displayName = displayName;
|
|
7991
8318
|
this.lang = lang;
|
|
7992
8319
|
this.entirePath = entirePath;
|
|
7993
8320
|
this.person1 = person1;
|
|
7994
8321
|
this.person2 = typeof person2 === "string" ? this.person1.getGedcom()?.indi(person2) : person2;
|
|
7995
8322
|
this.path = this.person1.path(this.person2);
|
|
8323
|
+
const order = nameOrder ?? nameOrderForLang(lang);
|
|
8324
|
+
this.nameOrder = order;
|
|
7996
8325
|
if (translators_exports[lang]) {
|
|
7997
8326
|
this.translator = new translators_exports[lang](
|
|
7998
8327
|
this.path ?? [],
|
|
7999
|
-
displayName
|
|
8328
|
+
displayName,
|
|
8329
|
+
order
|
|
8000
8330
|
);
|
|
8001
8331
|
}
|
|
8002
8332
|
if (!this.translator) {
|
|
8003
|
-
this.translator = new KinshipTranslatorEn(
|
|
8333
|
+
this.translator = new KinshipTranslatorEn(
|
|
8334
|
+
this.path ?? [],
|
|
8335
|
+
displayName,
|
|
8336
|
+
order
|
|
8337
|
+
);
|
|
8004
8338
|
}
|
|
8005
8339
|
}
|
|
8006
8340
|
get path0() {
|
|
@@ -8045,14 +8379,16 @@ var KinshipTranslator = class {
|
|
|
8045
8379
|
showMainPerson,
|
|
8046
8380
|
this.lang,
|
|
8047
8381
|
false,
|
|
8048
|
-
this.displayName
|
|
8382
|
+
this.displayName,
|
|
8383
|
+
this.nameOrder
|
|
8049
8384
|
),
|
|
8050
8385
|
relative: this.path?.[index - 1]?.indi.kinship(
|
|
8051
8386
|
path2.indi.id,
|
|
8052
8387
|
showMainPerson,
|
|
8053
8388
|
this.lang,
|
|
8054
8389
|
false,
|
|
8055
|
-
this.displayName
|
|
8390
|
+
this.displayName,
|
|
8391
|
+
this.nameOrder
|
|
8056
8392
|
)
|
|
8057
8393
|
}));
|
|
8058
8394
|
return path;
|
|
@@ -9572,7 +9908,7 @@ var collectExtensionTagsFrom = (node, into = /* @__PURE__ */ new Set()) => {
|
|
|
9572
9908
|
// package.json
|
|
9573
9909
|
var package_default = {
|
|
9574
9910
|
name: "@treeviz/gedcom-parser",
|
|
9575
|
-
version: "2.1.
|
|
9911
|
+
version: "2.1.15"};
|
|
9576
9912
|
|
|
9577
9913
|
// src/utils/get-product-details.ts
|
|
9578
9914
|
var isDevelopment = () => {
|
|
@@ -10976,7 +11312,7 @@ var create = (gedcom, type, id, nodes) => {
|
|
|
10976
11312
|
prevNode = createObje(gedcom, void 0, mainNode, curNode);
|
|
10977
11313
|
} else if (type === "DATE") {
|
|
10978
11314
|
prevNode = createCommonDate(gedcom, void 0, mainNode, curNode);
|
|
10979
|
-
} else if (type === "NOTE" || type === "SNOTE") {
|
|
11315
|
+
} else if (type === "NOTE" || type === "SNOTE" || type === "_TREEVIZ_LIFE_STORY" || type === "_TREEVIZ_FAMILY_STORY") {
|
|
10980
11316
|
prevNode = createCommonNote(gedcom, void 0, mainNode, curNode);
|
|
10981
11317
|
} else if (type === "NAME" && mainNode instanceof Indi) {
|
|
10982
11318
|
prevNode = createCommonName(gedcom, void 0, mainNode, curNode);
|