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