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