@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/utils/index.js
CHANGED
|
@@ -6439,7 +6439,7 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
6439
6439
|
}
|
|
6440
6440
|
return `${hungarianOrdinalize(
|
|
6441
6441
|
degree
|
|
6442
|
-
)}unokatestv\xE9r ${level}x elt\xE1vol\xEDtva`;
|
|
6442
|
+
)}unokatestv\xE9r ${Math.abs(level)}x elt\xE1vol\xEDtva`;
|
|
6443
6443
|
}
|
|
6444
6444
|
auncle() {
|
|
6445
6445
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6483,14 +6483,25 @@ var KinshipTranslatorHU = class extends KinshipTranslatorBasic {
|
|
|
6483
6483
|
return `${ordinalized ? `${ordinalized}unoka` : ""}testv\xE9r ${origPrefix.replace(/nagy$/, "")}unok\xE1ja`;
|
|
6484
6484
|
}
|
|
6485
6485
|
parent() {
|
|
6486
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6487
|
+
if (level <= 1) {
|
|
6488
|
+
if (this.personN?.isMale()) {
|
|
6489
|
+
return "apa";
|
|
6490
|
+
}
|
|
6491
|
+
if (this.personN?.isFemale()) {
|
|
6492
|
+
return "anya";
|
|
6493
|
+
}
|
|
6494
|
+
return "sz\xFCl\u0151";
|
|
6495
|
+
}
|
|
6486
6496
|
const prefix = this.directPrefix();
|
|
6497
|
+
const gen = prefix === "nagy" ? "" : prefix;
|
|
6487
6498
|
if (this.personN?.isMale()) {
|
|
6488
|
-
return `${
|
|
6499
|
+
return `${gen}nagyapa`;
|
|
6489
6500
|
}
|
|
6490
6501
|
if (this.personN?.isFemale()) {
|
|
6491
|
-
return `${
|
|
6502
|
+
return `${gen}nagyanya`;
|
|
6492
6503
|
}
|
|
6493
|
-
return `${
|
|
6504
|
+
return `${gen}nagysz\xFCl\u0151`;
|
|
6494
6505
|
}
|
|
6495
6506
|
child() {
|
|
6496
6507
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
@@ -6684,27 +6695,30 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6684
6695
|
if (!degree) {
|
|
6685
6696
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6686
6697
|
}
|
|
6687
|
-
return `${ordinalize(degree)} cousin ${level}x removed`;
|
|
6698
|
+
return `${ordinalize(degree)} cousin ${Math.abs(level)}x removed`;
|
|
6688
6699
|
}
|
|
6689
6700
|
auncle() {
|
|
6690
|
-
const
|
|
6701
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6702
|
+
const greats = level <= 1 ? "" : "great-".repeat(level - 1);
|
|
6691
6703
|
if (this.personN?.isMale()) {
|
|
6692
|
-
return `${
|
|
6704
|
+
return `${greats}uncle`;
|
|
6693
6705
|
}
|
|
6694
6706
|
if (this.personN?.isFemale()) {
|
|
6695
|
-
return `${
|
|
6707
|
+
return `${greats}aunt`;
|
|
6696
6708
|
}
|
|
6697
|
-
return `${
|
|
6709
|
+
return greats ? `${greats}uncle/${greats}aunt` : "uncle/aunt";
|
|
6698
6710
|
}
|
|
6699
6711
|
nibling() {
|
|
6700
|
-
const
|
|
6712
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6713
|
+
const greats = level <= 2 ? "" : "great-".repeat(level - 2);
|
|
6714
|
+
const grand = level <= 1 ? "" : "grand";
|
|
6701
6715
|
if (this.personN?.isMale()) {
|
|
6702
|
-
return `${
|
|
6716
|
+
return `${greats}${grand}nephew`;
|
|
6703
6717
|
}
|
|
6704
6718
|
if (this.personN?.isFemale()) {
|
|
6705
|
-
return `${
|
|
6719
|
+
return `${greats}${grand}niece`;
|
|
6706
6720
|
}
|
|
6707
|
-
return `${
|
|
6721
|
+
return greats || grand ? `${greats}${grand}nephew/${greats}${grand}niece` : "nephew/niece";
|
|
6708
6722
|
}
|
|
6709
6723
|
parent() {
|
|
6710
6724
|
const prefix = this.directPrefix();
|
|
@@ -6832,45 +6846,64 @@ var KinshipTranslatorEn = class extends KinshipTranslatorBasic {
|
|
|
6832
6846
|
};
|
|
6833
6847
|
|
|
6834
6848
|
// src/kinship-translator/patterns.de.ts
|
|
6849
|
+
var parentRelationsDe = {
|
|
6850
|
+
step: "Stief",
|
|
6851
|
+
foster: "Pflege",
|
|
6852
|
+
adopted: "Adoptiv"
|
|
6853
|
+
};
|
|
6835
6854
|
var InLawsDe = {
|
|
6836
|
-
"Ehepartner von (
|
|
6837
|
-
"Ehefrau von (
|
|
6838
|
-
"Ehemann von (
|
|
6839
|
-
"
|
|
6840
|
-
"
|
|
6841
|
-
"
|
|
6842
|
-
"Ehefrau von (Halb)
|
|
6843
|
-
"Ehemann von (Halb)
|
|
6844
|
-
"Ehepartner von (Halb)
|
|
6845
|
-
"(Halb)
|
|
6846
|
-
"(Halb)
|
|
6847
|
-
"(Halb)
|
|
6855
|
+
"Ehepartner von (Kind|Tochter|Sohn)": "Schwiegerkind",
|
|
6856
|
+
"Ehefrau von (Kind|Tochter|Sohn)": "Schwiegertochter",
|
|
6857
|
+
"Ehemann von (Kind|Tochter|Sohn)": "Schwiegersohn",
|
|
6858
|
+
"Mutter (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegermutter",
|
|
6859
|
+
"Vater (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegervater",
|
|
6860
|
+
"Elternteil (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwiegerelternteil",
|
|
6861
|
+
"Ehefrau von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schw\xE4gerin",
|
|
6862
|
+
"Ehemann von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager",
|
|
6863
|
+
"Ehepartner von (Halb)?-?(Geschwister|Schwester|Bruder)": "Schwager/Schw\xE4gerin",
|
|
6864
|
+
"(Halb)?-?(Schwester|schwester) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schw\xE4gerin",
|
|
6865
|
+
"(Halb)?-?(Bruder|bruder) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager",
|
|
6866
|
+
"(Halb)?-?(Geschwister|geschwister) (des Ehepartners|des Ehemanns|der Ehefrau)": "Schwager/Schw\xE4gerin"
|
|
6848
6867
|
};
|
|
6849
6868
|
|
|
6850
6869
|
// src/kinship-translator/kinship-translator.de.ts
|
|
6851
|
-
var
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
|
-
if (level === 2) {
|
|
6858
|
-
return "Gro\xDF";
|
|
6859
|
-
}
|
|
6860
|
-
if (level === 3) {
|
|
6861
|
-
return "Urgro\xDF";
|
|
6862
|
-
}
|
|
6863
|
-
return `Ur${level - 2}-gro\xDF`;
|
|
6870
|
+
var sexOf = (person) => {
|
|
6871
|
+
if (person?.isMale?.()) {
|
|
6872
|
+
return "m";
|
|
6873
|
+
}
|
|
6874
|
+
if (person?.isFemale?.()) {
|
|
6875
|
+
return "f";
|
|
6864
6876
|
}
|
|
6877
|
+
return "n";
|
|
6878
|
+
};
|
|
6879
|
+
var pick = (sex, male, female, neutral) => {
|
|
6880
|
+
if (sex === "m") {
|
|
6881
|
+
return male;
|
|
6882
|
+
}
|
|
6883
|
+
if (sex === "f") {
|
|
6884
|
+
return female;
|
|
6885
|
+
}
|
|
6886
|
+
return neutral;
|
|
6887
|
+
};
|
|
6888
|
+
var ur = (count) => count > 0 ? "Ur".repeat(count) : "";
|
|
6889
|
+
var genitiveArticle = (spouseType) => {
|
|
6890
|
+
if (spouseType === "Ehefrau") {
|
|
6891
|
+
return `der ${spouseType}`;
|
|
6892
|
+
}
|
|
6893
|
+
return `des ${spouseType}s`;
|
|
6894
|
+
};
|
|
6895
|
+
var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
6865
6896
|
indirect() {
|
|
6866
6897
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
6867
6898
|
if (degree > 0) {
|
|
6868
6899
|
degree = degree - 1;
|
|
6869
6900
|
}
|
|
6870
|
-
|
|
6871
|
-
|
|
6901
|
+
const sex = sexOf(this.personN);
|
|
6902
|
+
const cousin = pick(sex, "Cousin", "Cousine", "Cousin/Cousine");
|
|
6903
|
+
if (degree <= 1) {
|
|
6904
|
+
return cousin;
|
|
6872
6905
|
}
|
|
6873
|
-
return
|
|
6906
|
+
return `${cousin} ${degree}. Grades`;
|
|
6874
6907
|
}
|
|
6875
6908
|
removal() {
|
|
6876
6909
|
const level = this.pathN?.level ?? 0;
|
|
@@ -6881,101 +6914,101 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6881
6914
|
if (!degree) {
|
|
6882
6915
|
return level < 0 ? this.nibling() : this.auncle();
|
|
6883
6916
|
}
|
|
6884
|
-
return
|
|
6917
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 entfernt`;
|
|
6885
6918
|
}
|
|
6886
6919
|
auncle() {
|
|
6887
|
-
const
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
if (this.personN?.isFemale()) {
|
|
6892
|
-
return `${prefix}tante`;
|
|
6920
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6921
|
+
const sex = sexOf(this.personN);
|
|
6922
|
+
if (level <= 1) {
|
|
6923
|
+
return pick(sex, "Onkel", "Tante", "Onkel/Tante");
|
|
6893
6924
|
}
|
|
6894
|
-
|
|
6925
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6926
|
+
return pick(
|
|
6927
|
+
sex,
|
|
6928
|
+
`${prefix}onkel`,
|
|
6929
|
+
`${prefix}tante`,
|
|
6930
|
+
`${prefix}onkel/tante`
|
|
6931
|
+
);
|
|
6895
6932
|
}
|
|
6896
6933
|
nibling() {
|
|
6897
|
-
const
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
if (this.personN?.isFemale()) {
|
|
6902
|
-
return `${prefix}nichte`;
|
|
6934
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6935
|
+
const sex = sexOf(this.personN);
|
|
6936
|
+
if (level <= 1) {
|
|
6937
|
+
return pick(sex, "Neffe", "Nichte", "Neffe/Nichte");
|
|
6903
6938
|
}
|
|
6904
|
-
|
|
6939
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6940
|
+
return pick(
|
|
6941
|
+
sex,
|
|
6942
|
+
`${prefix}neffe`,
|
|
6943
|
+
`${prefix}nichte`,
|
|
6944
|
+
`${prefix}neffe/nichte`
|
|
6945
|
+
);
|
|
6905
6946
|
}
|
|
6906
6947
|
parent() {
|
|
6907
|
-
const
|
|
6908
|
-
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
if (this.personN?.isFemale()) {
|
|
6912
|
-
return `${prefix}mutter`;
|
|
6948
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6949
|
+
const sex = sexOf(this.personN);
|
|
6950
|
+
if (level <= 1) {
|
|
6951
|
+
return pick(sex, "Vater", "Mutter", "Elternteil");
|
|
6913
6952
|
}
|
|
6914
|
-
|
|
6953
|
+
const prefix = `${ur(level - 2)}Gro\xDF`;
|
|
6954
|
+
return pick(
|
|
6955
|
+
sex,
|
|
6956
|
+
`${prefix}vater`,
|
|
6957
|
+
`${prefix}mutter`,
|
|
6958
|
+
`${prefix}elternteil`
|
|
6959
|
+
);
|
|
6915
6960
|
}
|
|
6916
6961
|
child() {
|
|
6917
|
-
const
|
|
6918
|
-
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
if (this.personN?.isFemale()) {
|
|
6922
|
-
return `${prefix}tochter`;
|
|
6962
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
6963
|
+
const sex = sexOf(this.personN);
|
|
6964
|
+
if (level <= 1) {
|
|
6965
|
+
return pick(sex, "Sohn", "Tochter", "Kind");
|
|
6923
6966
|
}
|
|
6924
|
-
|
|
6967
|
+
const prefix = ur(level - 2);
|
|
6968
|
+
return pick(
|
|
6969
|
+
sex,
|
|
6970
|
+
`${prefix}Enkel`,
|
|
6971
|
+
`${prefix}Enkelin`,
|
|
6972
|
+
`${prefix}Enkelkind`
|
|
6973
|
+
);
|
|
6925
6974
|
}
|
|
6926
6975
|
sibling() {
|
|
6927
|
-
|
|
6928
|
-
return "bruder";
|
|
6929
|
-
}
|
|
6930
|
-
if (this.personN?.isFemale()) {
|
|
6931
|
-
return "schwester";
|
|
6932
|
-
}
|
|
6933
|
-
return "geschwister";
|
|
6976
|
+
return pick(sexOf(this.personN), "Bruder", "Schwester", "Geschwister");
|
|
6934
6977
|
}
|
|
6935
6978
|
halfBlood(relation) {
|
|
6936
6979
|
if (!relation || !this.isHalfBlood) {
|
|
6937
6980
|
return relation ?? "";
|
|
6938
6981
|
}
|
|
6939
|
-
if (
|
|
6982
|
+
if (/[\s-]/.test(relation) || /^(Groß|Ur)/.test(relation)) {
|
|
6940
6983
|
return `Halb-${relation}`;
|
|
6941
6984
|
}
|
|
6942
|
-
return `Halb${relation}`;
|
|
6985
|
+
return `Halb${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
6943
6986
|
}
|
|
6944
6987
|
spouse() {
|
|
6945
|
-
|
|
6946
|
-
return "Ehemann";
|
|
6947
|
-
}
|
|
6948
|
-
if (this.personN?.isFemale()) {
|
|
6949
|
-
return "Ehefrau";
|
|
6950
|
-
}
|
|
6951
|
-
return "Ehepartner";
|
|
6988
|
+
return pick(sexOf(this.personN), "Ehemann", "Ehefrau", "Ehepartner");
|
|
6952
6989
|
}
|
|
6953
6990
|
ofSpouse(relation) {
|
|
6954
6991
|
if (!relation) {
|
|
6955
6992
|
return "";
|
|
6956
6993
|
}
|
|
6957
|
-
const
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
}
|
|
6965
|
-
return `${relation} des ${spouseType}s`;
|
|
6994
|
+
const spouseType = pick(
|
|
6995
|
+
sexOf(this.path?.[1].indi),
|
|
6996
|
+
"Ehemann",
|
|
6997
|
+
"Ehefrau",
|
|
6998
|
+
"Ehepartner"
|
|
6999
|
+
);
|
|
7000
|
+
return `${relation} ${genitiveArticle(spouseType)}`;
|
|
6966
7001
|
}
|
|
6967
7002
|
spouseOf(relation) {
|
|
6968
7003
|
if (!relation) {
|
|
6969
7004
|
return "";
|
|
6970
7005
|
}
|
|
6971
|
-
const
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
spouseType = "Ehefrau";
|
|
6978
|
-
}
|
|
7006
|
+
const spouseType = pick(
|
|
7007
|
+
sexOf(this.path?.[this.path.length - 1].indi),
|
|
7008
|
+
"Ehemann",
|
|
7009
|
+
"Ehefrau",
|
|
7010
|
+
"Ehepartner"
|
|
7011
|
+
);
|
|
6979
7012
|
return `${spouseType} von ${relation}`;
|
|
6980
7013
|
}
|
|
6981
7014
|
of(relation) {
|
|
@@ -6993,8 +7026,8 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
6993
7026
|
if (!name || !relation) {
|
|
6994
7027
|
return relation ?? "";
|
|
6995
7028
|
}
|
|
6996
|
-
if (relation.includes(" des ") || relation.includes(" von ")) {
|
|
6997
|
-
return relation.replace(/ (des|von) /, ` $1 ${name}s `);
|
|
7029
|
+
if (relation.includes(" des ") || relation.includes(" der ") || relation.includes(" von ")) {
|
|
7030
|
+
return relation.replace(/ (des|der|von) /, ` $1 ${name}s `);
|
|
6998
7031
|
}
|
|
6999
7032
|
return `${name}s ${relation}`;
|
|
7000
7033
|
}
|
|
@@ -7024,50 +7057,82 @@ var KinshipTranslatorDe = class extends KinshipTranslatorBasic {
|
|
|
7024
7057
|
if (!relation || !this.pathN?.relation) {
|
|
7025
7058
|
return relation ?? "";
|
|
7026
7059
|
}
|
|
7027
|
-
|
|
7060
|
+
const prefix = parentRelationsDe[this.pathN.relation];
|
|
7061
|
+
if (!prefix) {
|
|
7062
|
+
return relation;
|
|
7063
|
+
}
|
|
7064
|
+
if (prefix.endsWith("-") || prefix.endsWith(" ")) {
|
|
7065
|
+
return `${prefix}${relation}`;
|
|
7066
|
+
}
|
|
7067
|
+
return `${prefix}${relation.charAt(0).toLowerCase()}${relation.slice(1)}`;
|
|
7028
7068
|
}
|
|
7029
7069
|
};
|
|
7030
7070
|
|
|
7031
7071
|
// src/kinship-translator/patterns.fr.ts
|
|
7072
|
+
var parentRelationsFr = {
|
|
7073
|
+
step: "step",
|
|
7074
|
+
foster: "foster",
|
|
7075
|
+
adopted: "adopted"
|
|
7076
|
+
};
|
|
7032
7077
|
var InLawsFr = {
|
|
7033
7078
|
"conjoint de (enfant|fille|fils)": "beau-fils/belle-fille",
|
|
7034
7079
|
"\xE9pouse de (enfant|fille|fils)": "belle-fille",
|
|
7035
7080
|
"mari de (enfant|fille|fils)": "gendre",
|
|
7036
|
-
"m\xE8re du
|
|
7037
|
-
"p\xE8re du
|
|
7038
|
-
"parent du
|
|
7081
|
+
"m\xE8re (du mari|du conjoint|de l'\xE9pouse)": "belle-m\xE8re",
|
|
7082
|
+
"p\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-p\xE8re",
|
|
7083
|
+
"parent (du mari|du conjoint|de l'\xE9pouse)": "beau-parent",
|
|
7039
7084
|
"\xE9pouse de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "belle-s\u0153ur",
|
|
7040
7085
|
"mari de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re",
|
|
7041
7086
|
"conjoint de (demi-)?(fr\xE8re/s\u0153ur|s\u0153ur|fr\xE8re)": "beau-fr\xE8re/belle-s\u0153ur",
|
|
7042
|
-
"(demi-)?s\u0153ur du
|
|
7043
|
-
"(demi-)?fr\xE8re du
|
|
7044
|
-
"(demi-)?fr\xE8re/s\u0153ur du
|
|
7087
|
+
"(demi-)?s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "belle-s\u0153ur",
|
|
7088
|
+
"(demi-)?fr\xE8re (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re",
|
|
7089
|
+
"(demi-)?fr\xE8re/s\u0153ur (du mari|du conjoint|de l'\xE9pouse)": "beau-fr\xE8re/belle-s\u0153ur"
|
|
7045
7090
|
};
|
|
7046
7091
|
|
|
7047
7092
|
// src/kinship-translator/kinship-translator.fr.ts
|
|
7048
|
-
var
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7059
|
-
|
|
7060
|
-
return `arri\xE8re${level - 2}-grand-`;
|
|
7093
|
+
var sexOf2 = (person) => {
|
|
7094
|
+
if (person?.isMale?.()) {
|
|
7095
|
+
return "m";
|
|
7096
|
+
}
|
|
7097
|
+
if (person?.isFemale?.()) {
|
|
7098
|
+
return "f";
|
|
7099
|
+
}
|
|
7100
|
+
return "n";
|
|
7101
|
+
};
|
|
7102
|
+
var pick2 = (sex, male, female, neutral) => {
|
|
7103
|
+
if (sex === "m") {
|
|
7104
|
+
return male;
|
|
7061
7105
|
}
|
|
7106
|
+
if (sex === "f") {
|
|
7107
|
+
return female;
|
|
7108
|
+
}
|
|
7109
|
+
return neutral;
|
|
7110
|
+
};
|
|
7111
|
+
var arriere = (count) => count > 0 ? "arri\xE8re-".repeat(count) : "";
|
|
7112
|
+
var frenchOrdinal = (n) => n === 1 ? "1er" : `${n}e`;
|
|
7113
|
+
var isFeminineRelation = (relation) => /mère|fille|sœur|tante|nièce|cousine|épouse/.test(relation);
|
|
7114
|
+
var ofSpousePrep = (spouseType) => {
|
|
7115
|
+
if (spouseType === "\xE9pouse") {
|
|
7116
|
+
return "de l'";
|
|
7117
|
+
}
|
|
7118
|
+
return "du ";
|
|
7119
|
+
};
|
|
7120
|
+
var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
7062
7121
|
indirect() {
|
|
7063
7122
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
7064
7123
|
if (degree > 0) {
|
|
7065
7124
|
degree = degree - 1;
|
|
7066
7125
|
}
|
|
7067
|
-
|
|
7068
|
-
|
|
7126
|
+
const cousin = pick2(
|
|
7127
|
+
sexOf2(this.personN),
|
|
7128
|
+
"cousin",
|
|
7129
|
+
"cousine",
|
|
7130
|
+
"cousin/cousine"
|
|
7131
|
+
);
|
|
7132
|
+
if (degree <= 1) {
|
|
7133
|
+
return cousin;
|
|
7069
7134
|
}
|
|
7070
|
-
return
|
|
7135
|
+
return `${cousin} au ${frenchOrdinal(degree)} degr\xE9`;
|
|
7071
7136
|
}
|
|
7072
7137
|
removal() {
|
|
7073
7138
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7078,56 +7143,57 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7078
7143
|
if (!degree) {
|
|
7079
7144
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7080
7145
|
}
|
|
7081
|
-
return
|
|
7146
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 \xE9loign\xE9`;
|
|
7082
7147
|
}
|
|
7083
7148
|
auncle() {
|
|
7084
|
-
const
|
|
7085
|
-
|
|
7086
|
-
|
|
7087
|
-
|
|
7088
|
-
|
|
7089
|
-
return `${prefix}tante`;
|
|
7149
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7150
|
+
const sex = sexOf2(this.personN);
|
|
7151
|
+
const base = pick2(sex, "oncle", "tante", "oncle/tante");
|
|
7152
|
+
if (level <= 1) {
|
|
7153
|
+
return base;
|
|
7090
7154
|
}
|
|
7091
|
-
|
|
7155
|
+
const grands = pick2(
|
|
7156
|
+
sex,
|
|
7157
|
+
"grand-oncle",
|
|
7158
|
+
"grand-tante",
|
|
7159
|
+
"grand-oncle/tante"
|
|
7160
|
+
);
|
|
7161
|
+
return `${arriere(level - 2)}${grands}`;
|
|
7092
7162
|
}
|
|
7093
7163
|
nibling() {
|
|
7094
|
-
const
|
|
7095
|
-
|
|
7096
|
-
|
|
7097
|
-
|
|
7098
|
-
if (this.personN?.isFemale()) {
|
|
7099
|
-
return `${prefix}ni\xE8ce`;
|
|
7164
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7165
|
+
const sex = sexOf2(this.personN);
|
|
7166
|
+
if (level <= 1) {
|
|
7167
|
+
return pick2(sex, "neveu", "ni\xE8ce", "neveu/ni\xE8ce");
|
|
7100
7168
|
}
|
|
7101
|
-
|
|
7169
|
+
const grands = pick2(
|
|
7170
|
+
sex,
|
|
7171
|
+
"grand-neveu",
|
|
7172
|
+
"grande-ni\xE8ce",
|
|
7173
|
+
"grand-neveu/grande-ni\xE8ce"
|
|
7174
|
+
);
|
|
7175
|
+
return `${arriere(level - 2)}${grands}`;
|
|
7102
7176
|
}
|
|
7103
7177
|
parent() {
|
|
7104
|
-
const
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
if (this.personN?.isFemale()) {
|
|
7109
|
-
return `${prefix}m\xE8re`;
|
|
7178
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7179
|
+
const sex = sexOf2(this.personN);
|
|
7180
|
+
if (level <= 1) {
|
|
7181
|
+
return pick2(sex, "p\xE8re", "m\xE8re", "parent");
|
|
7110
7182
|
}
|
|
7111
|
-
|
|
7183
|
+
const grands = pick2(sex, "grand-p\xE8re", "grand-m\xE8re", "grand-parent");
|
|
7184
|
+
return `${arriere(level - 2)}${grands}`;
|
|
7112
7185
|
}
|
|
7113
7186
|
child() {
|
|
7114
|
-
const
|
|
7115
|
-
|
|
7116
|
-
|
|
7117
|
-
|
|
7118
|
-
if (this.personN?.isFemale()) {
|
|
7119
|
-
return `${prefix}fille`;
|
|
7187
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7188
|
+
const sex = sexOf2(this.personN);
|
|
7189
|
+
if (level <= 1) {
|
|
7190
|
+
return pick2(sex, "fils", "fille", "enfant");
|
|
7120
7191
|
}
|
|
7121
|
-
|
|
7192
|
+
const petits = pick2(sex, "petit-fils", "petite-fille", "petit-enfant");
|
|
7193
|
+
return `${arriere(level - 2)}${petits}`;
|
|
7122
7194
|
}
|
|
7123
7195
|
sibling() {
|
|
7124
|
-
|
|
7125
|
-
return "fr\xE8re";
|
|
7126
|
-
}
|
|
7127
|
-
if (this.personN?.isFemale()) {
|
|
7128
|
-
return "s\u0153ur";
|
|
7129
|
-
}
|
|
7130
|
-
return "fr\xE8re/s\u0153ur";
|
|
7196
|
+
return pick2(sexOf2(this.personN), "fr\xE8re", "s\u0153ur", "fr\xE8re/s\u0153ur");
|
|
7131
7197
|
}
|
|
7132
7198
|
halfBlood(relation) {
|
|
7133
7199
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7136,40 +7202,30 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7136
7202
|
return `demi-${relation}`;
|
|
7137
7203
|
}
|
|
7138
7204
|
spouse() {
|
|
7139
|
-
|
|
7140
|
-
return "mari";
|
|
7141
|
-
}
|
|
7142
|
-
if (this.personN?.isFemale()) {
|
|
7143
|
-
return "\xE9pouse";
|
|
7144
|
-
}
|
|
7145
|
-
return "conjoint";
|
|
7205
|
+
return pick2(sexOf2(this.personN), "mari", "\xE9pouse", "conjoint");
|
|
7146
7206
|
}
|
|
7147
7207
|
ofSpouse(relation) {
|
|
7148
7208
|
if (!relation) {
|
|
7149
7209
|
return "";
|
|
7150
7210
|
}
|
|
7151
|
-
const
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
}
|
|
7159
|
-
return `${relation} du ${spouseType}`;
|
|
7211
|
+
const spouseType = pick2(
|
|
7212
|
+
sexOf2(this.path?.[1].indi),
|
|
7213
|
+
"mari",
|
|
7214
|
+
"\xE9pouse",
|
|
7215
|
+
"conjoint"
|
|
7216
|
+
);
|
|
7217
|
+
return `${relation} ${ofSpousePrep(spouseType)}${spouseType}`;
|
|
7160
7218
|
}
|
|
7161
7219
|
spouseOf(relation) {
|
|
7162
7220
|
if (!relation) {
|
|
7163
7221
|
return "";
|
|
7164
7222
|
}
|
|
7165
|
-
const
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
spouseType = "\xE9pouse";
|
|
7172
|
-
}
|
|
7223
|
+
const spouseType = pick2(
|
|
7224
|
+
sexOf2(this.path?.[this.path.length - 1].indi),
|
|
7225
|
+
"mari",
|
|
7226
|
+
"\xE9pouse",
|
|
7227
|
+
"conjoint"
|
|
7228
|
+
);
|
|
7173
7229
|
return `${spouseType} de ${relation}`;
|
|
7174
7230
|
}
|
|
7175
7231
|
of(relation) {
|
|
@@ -7190,6 +7246,9 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7190
7246
|
if (relation.includes(" du ") || relation.includes(" de ")) {
|
|
7191
7247
|
return relation.replace(/ (du|de) /, ` $1 ${name} `);
|
|
7192
7248
|
}
|
|
7249
|
+
if (relation.includes(" de l'")) {
|
|
7250
|
+
return relation.replace(" de l'", ` de ${name} l'`);
|
|
7251
|
+
}
|
|
7193
7252
|
return `${relation} de ${name}`;
|
|
7194
7253
|
}
|
|
7195
7254
|
inLaw(relation) {
|
|
@@ -7218,50 +7277,118 @@ var KinshipTranslatorFr = class extends KinshipTranslatorBasic {
|
|
|
7218
7277
|
if (!relation || !this.pathN?.relation) {
|
|
7219
7278
|
return relation ?? "";
|
|
7220
7279
|
}
|
|
7221
|
-
|
|
7280
|
+
const kind = parentRelationsFr[this.pathN.relation];
|
|
7281
|
+
if (!kind) {
|
|
7282
|
+
return relation;
|
|
7283
|
+
}
|
|
7284
|
+
if (kind === "step") {
|
|
7285
|
+
return `${isFeminineRelation(relation) ? "belle-" : "beau-"}${relation}`;
|
|
7286
|
+
}
|
|
7287
|
+
if (kind === "adopted") {
|
|
7288
|
+
return `${relation} ${isFeminineRelation(relation) ? "adoptive" : "adoptif"}`;
|
|
7289
|
+
}
|
|
7290
|
+
if (kind === "foster") {
|
|
7291
|
+
return `${relation} d'accueil`;
|
|
7292
|
+
}
|
|
7293
|
+
return relation;
|
|
7222
7294
|
}
|
|
7223
7295
|
};
|
|
7224
7296
|
|
|
7225
7297
|
// src/kinship-translator/patterns.es.ts
|
|
7298
|
+
var parentRelationsEs = {
|
|
7299
|
+
step: {
|
|
7300
|
+
padre: "padrastro",
|
|
7301
|
+
madre: "madrastra",
|
|
7302
|
+
hijo: "hijastro",
|
|
7303
|
+
hija: "hijastra",
|
|
7304
|
+
hermano: "hermanastro",
|
|
7305
|
+
hermana: "hermanastra",
|
|
7306
|
+
abuelo: "abuelastro",
|
|
7307
|
+
abuela: "abuelastra"
|
|
7308
|
+
}
|
|
7309
|
+
};
|
|
7226
7310
|
var InLawsEs = {
|
|
7227
7311
|
"c\xF3nyuge de (hijo/hija|hija|hijo)": "yerno/nuera",
|
|
7228
7312
|
"esposa de (hijo/hija|hija|hijo)": "nuera",
|
|
7229
7313
|
"esposo de (hijo/hija|hija|hijo)": "yerno",
|
|
7230
|
-
"madre del
|
|
7231
|
-
"padre del
|
|
7232
|
-
"padre/madre del
|
|
7314
|
+
"madre (del c\xF3nyuge|del esposo|de la esposa)": "suegra",
|
|
7315
|
+
"padre (del c\xF3nyuge|del esposo|de la esposa)": "suegro",
|
|
7316
|
+
"padre/madre (del c\xF3nyuge|del esposo|de la esposa)": "suegro/suegra",
|
|
7233
7317
|
"esposa de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ada",
|
|
7234
7318
|
"esposo de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado",
|
|
7235
7319
|
"c\xF3nyuge de (medio |media |medio/a )?(hermano/hermana|hermana|hermano)": "cu\xF1ado/cu\xF1ada",
|
|
7236
|
-
"(medio |media |medio/a )?hermana del
|
|
7237
|
-
"(medio |media |medio/a )?hermano del
|
|
7238
|
-
"(medio |media |medio/a )?hermano/hermana del
|
|
7320
|
+
"(medio |media |medio/a )?hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ada",
|
|
7321
|
+
"(medio |media |medio/a )?hermano (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado",
|
|
7322
|
+
"(medio |media |medio/a )?hermano/hermana (del c\xF3nyuge|del esposo|de la esposa)": "cu\xF1ado/cu\xF1ada"
|
|
7239
7323
|
};
|
|
7240
7324
|
|
|
7241
7325
|
// src/kinship-translator/kinship-translator.es.ts
|
|
7242
|
-
var
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
return `t\xE1tara${level - 2}-abuel`;
|
|
7326
|
+
var sexOf3 = (person) => {
|
|
7327
|
+
if (person?.isMale?.()) {
|
|
7328
|
+
return "m";
|
|
7329
|
+
}
|
|
7330
|
+
if (person?.isFemale?.()) {
|
|
7331
|
+
return "f";
|
|
7332
|
+
}
|
|
7333
|
+
return "n";
|
|
7334
|
+
};
|
|
7335
|
+
var pick3 = (sex, male, female, neutral) => {
|
|
7336
|
+
if (sex === "m") {
|
|
7337
|
+
return male;
|
|
7255
7338
|
}
|
|
7339
|
+
if (sex === "f") {
|
|
7340
|
+
return female;
|
|
7341
|
+
}
|
|
7342
|
+
return neutral;
|
|
7343
|
+
};
|
|
7344
|
+
var SPANISH_ORDINALS_M = [
|
|
7345
|
+
"",
|
|
7346
|
+
"",
|
|
7347
|
+
"segundo",
|
|
7348
|
+
"tercero",
|
|
7349
|
+
"cuarto",
|
|
7350
|
+
"quinto",
|
|
7351
|
+
"sexto",
|
|
7352
|
+
"s\xE9ptimo",
|
|
7353
|
+
"octavo",
|
|
7354
|
+
"noveno",
|
|
7355
|
+
"d\xE9cimo"
|
|
7356
|
+
];
|
|
7357
|
+
var SPANISH_ORDINALS_F = [
|
|
7358
|
+
"",
|
|
7359
|
+
"",
|
|
7360
|
+
"segunda",
|
|
7361
|
+
"tercera",
|
|
7362
|
+
"cuarta",
|
|
7363
|
+
"quinta",
|
|
7364
|
+
"sexta",
|
|
7365
|
+
"s\xE9ptima",
|
|
7366
|
+
"octava",
|
|
7367
|
+
"novena",
|
|
7368
|
+
"d\xE9cima"
|
|
7369
|
+
];
|
|
7370
|
+
var spanishOrdinal = (n, sex) => {
|
|
7371
|
+
const list = sex === "f" ? SPANISH_ORDINALS_F : SPANISH_ORDINALS_M;
|
|
7372
|
+
return list[n] ?? `${n}.\xBA`;
|
|
7373
|
+
};
|
|
7374
|
+
var ofSpousePrep2 = (spouseType) => {
|
|
7375
|
+
if (spouseType === "esposa") {
|
|
7376
|
+
return "de la ";
|
|
7377
|
+
}
|
|
7378
|
+
return "del ";
|
|
7379
|
+
};
|
|
7380
|
+
var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
7256
7381
|
indirect() {
|
|
7257
7382
|
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
7258
7383
|
if (degree > 0) {
|
|
7259
7384
|
degree = degree - 1;
|
|
7260
7385
|
}
|
|
7261
|
-
|
|
7262
|
-
|
|
7386
|
+
const sex = sexOf3(this.personN);
|
|
7387
|
+
const cousin = pick3(sex, "primo", "prima", "primo/prima");
|
|
7388
|
+
if (degree <= 1) {
|
|
7389
|
+
return cousin;
|
|
7263
7390
|
}
|
|
7264
|
-
return
|
|
7391
|
+
return `${cousin} ${spanishOrdinal(degree, sex)}`;
|
|
7265
7392
|
}
|
|
7266
7393
|
removal() {
|
|
7267
7394
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7272,56 +7399,133 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7272
7399
|
if (!degree) {
|
|
7273
7400
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7274
7401
|
}
|
|
7275
|
-
return
|
|
7402
|
+
return `${this.indirect()} ${Math.abs(level)}\xD7 separado`;
|
|
7276
7403
|
}
|
|
7277
7404
|
auncle() {
|
|
7278
|
-
const
|
|
7279
|
-
|
|
7280
|
-
|
|
7405
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7406
|
+
const sex = sexOf3(this.personN);
|
|
7407
|
+
if (level <= 1) {
|
|
7408
|
+
return pick3(sex, "t\xEDo", "t\xEDa", "t\xEDo/t\xEDa");
|
|
7281
7409
|
}
|
|
7282
|
-
if (
|
|
7283
|
-
return
|
|
7410
|
+
if (level === 2) {
|
|
7411
|
+
return pick3(sex, "t\xEDo abuelo", "t\xEDa abuela", "t\xEDo/t\xEDa abuelo");
|
|
7412
|
+
}
|
|
7413
|
+
if (level === 3) {
|
|
7414
|
+
return pick3(
|
|
7415
|
+
sex,
|
|
7416
|
+
"t\xEDo bisabuelo",
|
|
7417
|
+
"t\xEDa bisabuela",
|
|
7418
|
+
"t\xEDo/t\xEDa bisabuelo"
|
|
7419
|
+
);
|
|
7284
7420
|
}
|
|
7285
|
-
return
|
|
7421
|
+
return pick3(
|
|
7422
|
+
sex,
|
|
7423
|
+
`t\xEDo abuelo (${level - 1}.\xBA)`,
|
|
7424
|
+
`t\xEDa abuela (${level - 1}.\xAA)`,
|
|
7425
|
+
`t\xEDo/t\xEDa abuelo (${level - 1}.\xBA)`
|
|
7426
|
+
);
|
|
7286
7427
|
}
|
|
7287
7428
|
nibling() {
|
|
7288
|
-
const
|
|
7289
|
-
|
|
7290
|
-
|
|
7429
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7430
|
+
const sex = sexOf3(this.personN);
|
|
7431
|
+
if (level <= 1) {
|
|
7432
|
+
return pick3(sex, "sobrino", "sobrina", "sobrino/sobrina");
|
|
7291
7433
|
}
|
|
7292
|
-
if (
|
|
7293
|
-
return
|
|
7434
|
+
if (level === 2) {
|
|
7435
|
+
return pick3(
|
|
7436
|
+
sex,
|
|
7437
|
+
"sobrino nieto",
|
|
7438
|
+
"sobrina nieta",
|
|
7439
|
+
"sobrino/sobrina nieto"
|
|
7440
|
+
);
|
|
7294
7441
|
}
|
|
7295
|
-
|
|
7442
|
+
if (level === 3) {
|
|
7443
|
+
return pick3(
|
|
7444
|
+
sex,
|
|
7445
|
+
"sobrino bisnieto",
|
|
7446
|
+
"sobrina bisnieta",
|
|
7447
|
+
"sobrino/sobrina bisnieto"
|
|
7448
|
+
);
|
|
7449
|
+
}
|
|
7450
|
+
return pick3(
|
|
7451
|
+
sex,
|
|
7452
|
+
`sobrino nieto (${level - 1}.\xBA)`,
|
|
7453
|
+
`sobrina nieta (${level - 1}.\xAA)`,
|
|
7454
|
+
`sobrino/sobrina nieto (${level - 1}.\xBA)`
|
|
7455
|
+
);
|
|
7296
7456
|
}
|
|
7297
7457
|
parent() {
|
|
7298
|
-
const
|
|
7299
|
-
|
|
7300
|
-
|
|
7458
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7459
|
+
const sex = sexOf3(this.personN);
|
|
7460
|
+
if (level <= 1) {
|
|
7461
|
+
return pick3(sex, "padre", "madre", "padre/madre");
|
|
7301
7462
|
}
|
|
7302
|
-
if (
|
|
7303
|
-
return
|
|
7463
|
+
if (level === 2) {
|
|
7464
|
+
return pick3(sex, "abuelo", "abuela", "abuelo/abuela");
|
|
7465
|
+
}
|
|
7466
|
+
if (level === 3) {
|
|
7467
|
+
return pick3(sex, "bisabuelo", "bisabuela", "bisabuelo/bisabuela");
|
|
7304
7468
|
}
|
|
7305
|
-
|
|
7469
|
+
if (level === 4) {
|
|
7470
|
+
return pick3(
|
|
7471
|
+
sex,
|
|
7472
|
+
"tatarabuelo",
|
|
7473
|
+
"tatarabuela",
|
|
7474
|
+
"tatarabuelo/tatarabuela"
|
|
7475
|
+
);
|
|
7476
|
+
}
|
|
7477
|
+
if (level === 5) {
|
|
7478
|
+
return pick3(
|
|
7479
|
+
sex,
|
|
7480
|
+
"trastatarabuelo",
|
|
7481
|
+
"trastatarabuela",
|
|
7482
|
+
"trastatarabuelo/trastatarabuela"
|
|
7483
|
+
);
|
|
7484
|
+
}
|
|
7485
|
+
return pick3(
|
|
7486
|
+
sex,
|
|
7487
|
+
`abuelo (${level}.\xBA)`,
|
|
7488
|
+
`abuela (${level}.\xAA)`,
|
|
7489
|
+
`abuelo/abuela (${level}.\xBA)`
|
|
7490
|
+
);
|
|
7306
7491
|
}
|
|
7307
7492
|
child() {
|
|
7308
|
-
const
|
|
7309
|
-
|
|
7310
|
-
|
|
7493
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7494
|
+
const sex = sexOf3(this.personN);
|
|
7495
|
+
if (level <= 1) {
|
|
7496
|
+
return pick3(sex, "hijo", "hija", "hijo/hija");
|
|
7311
7497
|
}
|
|
7312
|
-
if (
|
|
7313
|
-
return
|
|
7498
|
+
if (level === 2) {
|
|
7499
|
+
return pick3(sex, "nieto", "nieta", "nieto/nieta");
|
|
7314
7500
|
}
|
|
7315
|
-
|
|
7316
|
-
|
|
7317
|
-
sibling() {
|
|
7318
|
-
if (this.personN?.isMale()) {
|
|
7319
|
-
return "hermano";
|
|
7501
|
+
if (level === 3) {
|
|
7502
|
+
return pick3(sex, "bisnieto", "bisnieta", "bisnieto/bisnieta");
|
|
7320
7503
|
}
|
|
7321
|
-
if (
|
|
7322
|
-
return
|
|
7504
|
+
if (level === 4) {
|
|
7505
|
+
return pick3(
|
|
7506
|
+
sex,
|
|
7507
|
+
"tataranieto",
|
|
7508
|
+
"tataranieta",
|
|
7509
|
+
"tataranieto/tataranieta"
|
|
7510
|
+
);
|
|
7511
|
+
}
|
|
7512
|
+
if (level === 5) {
|
|
7513
|
+
return pick3(
|
|
7514
|
+
sex,
|
|
7515
|
+
"trastataranieto",
|
|
7516
|
+
"trastataranieta",
|
|
7517
|
+
"trastataranieto/trastataranieta"
|
|
7518
|
+
);
|
|
7323
7519
|
}
|
|
7324
|
-
return
|
|
7520
|
+
return pick3(
|
|
7521
|
+
sex,
|
|
7522
|
+
`nieto (${level}.\xBA)`,
|
|
7523
|
+
`nieta (${level}.\xAA)`,
|
|
7524
|
+
`nieto/nieta (${level}.\xBA)`
|
|
7525
|
+
);
|
|
7526
|
+
}
|
|
7527
|
+
sibling() {
|
|
7528
|
+
return pick3(sexOf3(this.personN), "hermano", "hermana", "hermano/hermana");
|
|
7325
7529
|
}
|
|
7326
7530
|
halfBlood(relation) {
|
|
7327
7531
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7336,40 +7540,30 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7336
7540
|
return `medio/a ${relation}`;
|
|
7337
7541
|
}
|
|
7338
7542
|
spouse() {
|
|
7339
|
-
|
|
7340
|
-
return "esposo";
|
|
7341
|
-
}
|
|
7342
|
-
if (this.personN?.isFemale()) {
|
|
7343
|
-
return "esposa";
|
|
7344
|
-
}
|
|
7345
|
-
return "c\xF3nyuge";
|
|
7543
|
+
return pick3(sexOf3(this.personN), "esposo", "esposa", "c\xF3nyuge");
|
|
7346
7544
|
}
|
|
7347
7545
|
ofSpouse(relation) {
|
|
7348
7546
|
if (!relation) {
|
|
7349
7547
|
return "";
|
|
7350
7548
|
}
|
|
7351
|
-
const
|
|
7352
|
-
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7356
|
-
|
|
7357
|
-
|
|
7358
|
-
}
|
|
7359
|
-
return `${relation} del ${spouseType}`;
|
|
7549
|
+
const spouseType = pick3(
|
|
7550
|
+
sexOf3(this.path?.[1].indi),
|
|
7551
|
+
"esposo",
|
|
7552
|
+
"esposa",
|
|
7553
|
+
"c\xF3nyuge"
|
|
7554
|
+
);
|
|
7555
|
+
return `${relation} ${ofSpousePrep2(spouseType)}${spouseType}`;
|
|
7360
7556
|
}
|
|
7361
7557
|
spouseOf(relation) {
|
|
7362
7558
|
if (!relation) {
|
|
7363
7559
|
return "";
|
|
7364
7560
|
}
|
|
7365
|
-
const
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
|
|
7369
|
-
|
|
7370
|
-
|
|
7371
|
-
spouseType = "esposa";
|
|
7372
|
-
}
|
|
7561
|
+
const spouseType = pick3(
|
|
7562
|
+
sexOf3(this.path?.[this.path.length - 1].indi),
|
|
7563
|
+
"esposo",
|
|
7564
|
+
"esposa",
|
|
7565
|
+
"c\xF3nyuge"
|
|
7566
|
+
);
|
|
7373
7567
|
return `${spouseType} de ${relation}`;
|
|
7374
7568
|
}
|
|
7375
7569
|
of(relation) {
|
|
@@ -7387,8 +7581,8 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7387
7581
|
if (!name || !relation) {
|
|
7388
7582
|
return relation ?? "";
|
|
7389
7583
|
}
|
|
7390
|
-
if (relation.includes(" del ") || relation.includes(" de ")) {
|
|
7391
|
-
return relation.replace(/ (del|de) /, ` $1 ${name} `);
|
|
7584
|
+
if (relation.includes(" del ") || relation.includes(" de la ") || relation.includes(" de ")) {
|
|
7585
|
+
return relation.replace(/ (del|de la|de) /, ` $1 ${name} `);
|
|
7392
7586
|
}
|
|
7393
7587
|
return `${relation} de ${name}`;
|
|
7394
7588
|
}
|
|
@@ -7418,7 +7612,20 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
7418
7612
|
if (!relation || !this.pathN?.relation) {
|
|
7419
7613
|
return relation ?? "";
|
|
7420
7614
|
}
|
|
7421
|
-
|
|
7615
|
+
const mapped = parentRelationsEs[this.pathN.relation]?.[relation];
|
|
7616
|
+
if (mapped) {
|
|
7617
|
+
return mapped;
|
|
7618
|
+
}
|
|
7619
|
+
if (this.pathN.relation === "step") {
|
|
7620
|
+
return `${relation} pol\xEDtico`;
|
|
7621
|
+
}
|
|
7622
|
+
if (this.pathN.relation === "adopted") {
|
|
7623
|
+
return `${relation} adoptivo`;
|
|
7624
|
+
}
|
|
7625
|
+
if (this.pathN.relation === "foster") {
|
|
7626
|
+
return `${relation} de acogida`;
|
|
7627
|
+
}
|
|
7628
|
+
return relation;
|
|
7422
7629
|
}
|
|
7423
7630
|
};
|
|
7424
7631
|
|
|
@@ -7427,15 +7634,35 @@ var InLawsRu = {
|
|
|
7427
7634
|
"\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",
|
|
7428
7635
|
"\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",
|
|
7429
7636
|
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
7430
|
-
"\u043C\u0430\u0442\u044C
|
|
7431
|
-
"\
|
|
7432
|
-
"\
|
|
7637
|
+
"\u043C\u0430\u0442\u044C \u0436\u0435\u043D\u044B": "\u0442\u0451\u0449\u0430",
|
|
7638
|
+
"\u043C\u0430\u0442\u044C \u043C\u0443\u0436\u0430": "\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7639
|
+
"\u043C\u0430\u0442\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0451\u0449\u0430/\u0441\u0432\u0435\u043A\u0440\u043E\u0432\u044C",
|
|
7640
|
+
"\u043E\u0442\u0435\u0446 \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C",
|
|
7641
|
+
"\u043E\u0442\u0435\u0446 \u043C\u0443\u0436\u0430": "\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7642
|
+
"\u043E\u0442\u0435\u0446 \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0441\u0432\u0451\u043A\u043E\u0440",
|
|
7643
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0436\u0435\u043D\u044B": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7644
|
+
"\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",
|
|
7645
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C \u0441\u0443\u043F\u0440\u0443\u0433\u0430": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
7433
7646
|
"\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",
|
|
7434
7647
|
"\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",
|
|
7435
7648
|
"\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",
|
|
7436
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430
|
|
7437
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\
|
|
7438
|
-
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\
|
|
7649
|
+
"(\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",
|
|
7650
|
+
"(\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",
|
|
7651
|
+
"(\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",
|
|
7652
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u0436\u0435\u043D\u044B": "\u0448\u0443\u0440\u0438\u043D",
|
|
7653
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 \u043C\u0443\u0436\u0430": "\u0434\u0435\u0432\u0435\u0440\u044C",
|
|
7654
|
+
"(\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",
|
|
7655
|
+
"(\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",
|
|
7656
|
+
"(\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",
|
|
7657
|
+
"(\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"
|
|
7658
|
+
};
|
|
7659
|
+
var parentRelationsRu = {
|
|
7660
|
+
step: {
|
|
7661
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0447\u0438\u043C",
|
|
7662
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0447\u0435\u0445\u0430",
|
|
7663
|
+
\u0441\u044B\u043D: "\u043F\u0430\u0441\u044B\u043D\u043E\u043A",
|
|
7664
|
+
\u0434\u043E\u0447\u044C: "\u043F\u0430\u0434\u0447\u0435\u0440\u0438\u0446\u0430"
|
|
7665
|
+
}
|
|
7439
7666
|
};
|
|
7440
7667
|
|
|
7441
7668
|
// src/kinship-translator/kinship-translator.ru.ts
|
|
@@ -7466,7 +7693,7 @@ var cousinWord = (degree, sex) => {
|
|
|
7466
7693
|
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
7467
7694
|
};
|
|
7468
7695
|
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
7469
|
-
var
|
|
7696
|
+
var sexOf4 = (person) => {
|
|
7470
7697
|
if (person?.isMale?.()) {
|
|
7471
7698
|
return "m";
|
|
7472
7699
|
}
|
|
@@ -7481,7 +7708,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7481
7708
|
if (degree > 0) {
|
|
7482
7709
|
degree = degree - 1;
|
|
7483
7710
|
}
|
|
7484
|
-
return cousinWord(degree,
|
|
7711
|
+
return cousinWord(degree, sexOf4(this.personN));
|
|
7485
7712
|
}
|
|
7486
7713
|
removal() {
|
|
7487
7714
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7493,35 +7720,53 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7493
7720
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7494
7721
|
}
|
|
7495
7722
|
const removed = Math.abs(level);
|
|
7496
|
-
return `${cousinWord(degree,
|
|
7723
|
+
return `${cousinWord(degree, sexOf4(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
7497
7724
|
}
|
|
7498
7725
|
auncle() {
|
|
7499
7726
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7500
|
-
const
|
|
7501
|
-
|
|
7727
|
+
const sex = sexOf4(this.personN);
|
|
7728
|
+
if (level <= 1) {
|
|
7729
|
+
if (sex === "m") {
|
|
7730
|
+
return "\u0434\u044F\u0434\u044F";
|
|
7731
|
+
}
|
|
7732
|
+
if (sex === "f") {
|
|
7733
|
+
return "\u0442\u0451\u0442\u044F";
|
|
7734
|
+
}
|
|
7735
|
+
return "\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F";
|
|
7736
|
+
}
|
|
7737
|
+
const pra = praRepeat(level - 2);
|
|
7502
7738
|
if (sex === "m") {
|
|
7503
|
-
return
|
|
7739
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434`;
|
|
7504
7740
|
}
|
|
7505
7741
|
if (sex === "f") {
|
|
7506
|
-
return
|
|
7742
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u0430\u044F ${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
7507
7743
|
}
|
|
7508
|
-
return
|
|
7744
|
+
return `\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D\u044B\u0439 ${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
7509
7745
|
}
|
|
7510
7746
|
nibling() {
|
|
7511
7747
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7512
|
-
const
|
|
7513
|
-
|
|
7748
|
+
const sex = sexOf4(this.personN);
|
|
7749
|
+
if (level <= 1) {
|
|
7750
|
+
if (sex === "m") {
|
|
7751
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A";
|
|
7752
|
+
}
|
|
7753
|
+
if (sex === "f") {
|
|
7754
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7755
|
+
}
|
|
7756
|
+
return "\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430";
|
|
7757
|
+
}
|
|
7758
|
+
const pra = praRepeat(level - 2);
|
|
7514
7759
|
if (sex === "m") {
|
|
7515
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7760
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u044B\u0439 \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
7516
7761
|
}
|
|
7517
7762
|
if (sex === "f") {
|
|
7518
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7763
|
+
return `${pra}\u0432\u043D\u0443\u0447\u0430\u0442\u0430\u044F \u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7519
7764
|
}
|
|
7520
|
-
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
7765
|
+
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`;
|
|
7521
7766
|
}
|
|
7522
7767
|
parent() {
|
|
7523
7768
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7524
|
-
const sex =
|
|
7769
|
+
const sex = sexOf4(this.personN);
|
|
7525
7770
|
if (level <= 1) {
|
|
7526
7771
|
if (sex === "m") {
|
|
7527
7772
|
return "\u043E\u0442\u0435\u0446";
|
|
@@ -7551,7 +7796,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7551
7796
|
}
|
|
7552
7797
|
child() {
|
|
7553
7798
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7554
|
-
const sex =
|
|
7799
|
+
const sex = sexOf4(this.personN);
|
|
7555
7800
|
if (level <= 1) {
|
|
7556
7801
|
if (sex === "m") {
|
|
7557
7802
|
return "\u0441\u044B\u043D";
|
|
@@ -7580,14 +7825,14 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7580
7825
|
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
7581
7826
|
}
|
|
7582
7827
|
sibling() {
|
|
7583
|
-
const sex =
|
|
7828
|
+
const sex = sexOf4(this.personN);
|
|
7584
7829
|
if (sex === "m") {
|
|
7585
7830
|
return "\u0431\u0440\u0430\u0442";
|
|
7586
7831
|
}
|
|
7587
7832
|
if (sex === "f") {
|
|
7588
7833
|
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
7589
7834
|
}
|
|
7590
|
-
return "\u0441\
|
|
7835
|
+
return "\u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
7591
7836
|
}
|
|
7592
7837
|
halfBlood(relation) {
|
|
7593
7838
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7601,7 +7846,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7601
7846
|
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
7602
7847
|
}
|
|
7603
7848
|
spouse() {
|
|
7604
|
-
const sex =
|
|
7849
|
+
const sex = sexOf4(this.personN);
|
|
7605
7850
|
if (sex === "m") {
|
|
7606
7851
|
return "\u043C\u0443\u0436";
|
|
7607
7852
|
}
|
|
@@ -7615,7 +7860,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7615
7860
|
return "";
|
|
7616
7861
|
}
|
|
7617
7862
|
const spouse = this.path?.[1].indi;
|
|
7618
|
-
const sex =
|
|
7863
|
+
const sex = sexOf4(spouse);
|
|
7619
7864
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7620
7865
|
return `${relation} ${toGenitive(spouseType)}`;
|
|
7621
7866
|
}
|
|
@@ -7624,7 +7869,7 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7624
7869
|
return "";
|
|
7625
7870
|
}
|
|
7626
7871
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7627
|
-
const sex =
|
|
7872
|
+
const sex = sexOf4(spouse);
|
|
7628
7873
|
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
7629
7874
|
return `${spouseType} ${toGenitive(relation)}`;
|
|
7630
7875
|
}
|
|
@@ -7661,7 +7906,22 @@ var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
|
7661
7906
|
if (!relation || !this.pathN?.relation) {
|
|
7662
7907
|
return relation ?? "";
|
|
7663
7908
|
}
|
|
7664
|
-
|
|
7909
|
+
const mapped = parentRelationsRu[this.pathN.relation]?.[relation];
|
|
7910
|
+
if (mapped) {
|
|
7911
|
+
return mapped;
|
|
7912
|
+
}
|
|
7913
|
+
if (this.pathN.relation === "step") {
|
|
7914
|
+
return `\u043D\u0435\u0440\u043E\u0434\u043D\u043E\u0439 ${relation}`;
|
|
7915
|
+
}
|
|
7916
|
+
if (this.pathN.relation === "adopted") {
|
|
7917
|
+
return /сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
7918
|
+
relation
|
|
7919
|
+
) ? `\u043F\u0440\u0438\u0451\u043C\u043D\u0430\u044F ${relation}` : `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7920
|
+
}
|
|
7921
|
+
if (this.pathN.relation === "foster") {
|
|
7922
|
+
return `\u043F\u0440\u0438\u0451\u043C\u043D\u044B\u0439 ${relation}`;
|
|
7923
|
+
}
|
|
7924
|
+
return relation;
|
|
7665
7925
|
}
|
|
7666
7926
|
};
|
|
7667
7927
|
|
|
@@ -7685,7 +7945,7 @@ var InLawsJa = {
|
|
|
7685
7945
|
};
|
|
7686
7946
|
|
|
7687
7947
|
// src/kinship-translator/kinship-translator.ja.ts
|
|
7688
|
-
var
|
|
7948
|
+
var sexOf5 = (person) => {
|
|
7689
7949
|
if (person?.isMale?.()) {
|
|
7690
7950
|
return "m";
|
|
7691
7951
|
}
|
|
@@ -7694,7 +7954,7 @@ var sexOf2 = (person) => {
|
|
|
7694
7954
|
}
|
|
7695
7955
|
return "n";
|
|
7696
7956
|
};
|
|
7697
|
-
var
|
|
7957
|
+
var pick4 = (sex, male, female, neutral) => {
|
|
7698
7958
|
if (sex === "m") {
|
|
7699
7959
|
return male;
|
|
7700
7960
|
}
|
|
@@ -7707,18 +7967,18 @@ var lineal = (level, sex, kind) => {
|
|
|
7707
7967
|
const L = Math.max(1, level);
|
|
7708
7968
|
if (kind === "asc") {
|
|
7709
7969
|
if (L <= 1) {
|
|
7710
|
-
return
|
|
7970
|
+
return pick4(sex, "\u7236", "\u6BCD", "\u89AA");
|
|
7711
7971
|
}
|
|
7712
7972
|
if (L === 2) {
|
|
7713
|
-
return
|
|
7973
|
+
return pick4(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7714
7974
|
}
|
|
7715
7975
|
if (L === 3) {
|
|
7716
|
-
return
|
|
7976
|
+
return pick4(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7717
7977
|
}
|
|
7718
7978
|
if (L === 4) {
|
|
7719
|
-
return
|
|
7979
|
+
return pick4(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7720
7980
|
}
|
|
7721
|
-
return
|
|
7981
|
+
return pick4(
|
|
7722
7982
|
sex,
|
|
7723
7983
|
`${L - 1}\u4E16\u306E\u7956\u7236`,
|
|
7724
7984
|
`${L - 1}\u4E16\u306E\u7956\u6BCD`,
|
|
@@ -7726,7 +7986,7 @@ var lineal = (level, sex, kind) => {
|
|
|
7726
7986
|
);
|
|
7727
7987
|
}
|
|
7728
7988
|
if (L <= 1) {
|
|
7729
|
-
return
|
|
7989
|
+
return pick4(sex, "\u606F\u5B50", "\u5A18", "\u5B50");
|
|
7730
7990
|
}
|
|
7731
7991
|
if (L === 2) {
|
|
7732
7992
|
return "\u5B6B";
|
|
@@ -7773,52 +8033,52 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7773
8033
|
}
|
|
7774
8034
|
auncle() {
|
|
7775
8035
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7776
|
-
const sex =
|
|
7777
|
-
if (level <=
|
|
7778
|
-
return
|
|
8036
|
+
const sex = sexOf5(this.personN);
|
|
8037
|
+
if (level <= 1) {
|
|
8038
|
+
return pick4(sex, "\u304A\u3058", "\u304A\u3070", "\u304A\u3058/\u304A\u3070");
|
|
7779
8039
|
}
|
|
7780
|
-
if (level ===
|
|
7781
|
-
return
|
|
8040
|
+
if (level === 2) {
|
|
8041
|
+
return pick4(sex, "\u5927\u304A\u3058", "\u5927\u304A\u3070", "\u5927\u304A\u3058/\u5927\u304A\u3070");
|
|
7782
8042
|
}
|
|
7783
|
-
return
|
|
8043
|
+
return pick4(
|
|
7784
8044
|
sex,
|
|
7785
|
-
`${level -
|
|
7786
|
-
`${level -
|
|
7787
|
-
`${level -
|
|
8045
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058`,
|
|
8046
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3070`,
|
|
8047
|
+
`${level - 1}\u4EE3\u524D\u306E\u304A\u3058/\u304A\u3070`
|
|
7788
8048
|
);
|
|
7789
8049
|
}
|
|
7790
8050
|
nibling() {
|
|
7791
8051
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7792
|
-
const sex =
|
|
7793
|
-
if (level <=
|
|
7794
|
-
return
|
|
8052
|
+
const sex = sexOf5(this.personN);
|
|
8053
|
+
if (level <= 1) {
|
|
8054
|
+
return pick4(sex, "\u7525", "\u59EA", "\u7525/\u59EA");
|
|
7795
8055
|
}
|
|
7796
|
-
if (level ===
|
|
7797
|
-
return
|
|
8056
|
+
if (level === 2) {
|
|
8057
|
+
return pick4(sex, "\u5927\u7525", "\u5927\u59EA", "\u5927\u7525/\u5927\u59EA");
|
|
7798
8058
|
}
|
|
7799
|
-
return
|
|
8059
|
+
return pick4(
|
|
7800
8060
|
sex,
|
|
7801
|
-
`${level -
|
|
7802
|
-
`${level -
|
|
7803
|
-
`${level -
|
|
8061
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525`,
|
|
8062
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u59EA`,
|
|
8063
|
+
`${level - 1}\u4EE3\u4E0B\u306E\u7525/\u59EA`
|
|
7804
8064
|
);
|
|
7805
8065
|
}
|
|
7806
8066
|
parent() {
|
|
7807
8067
|
return lineal(
|
|
7808
8068
|
Math.abs(this.pathN?.level ?? 0),
|
|
7809
|
-
|
|
8069
|
+
sexOf5(this.personN),
|
|
7810
8070
|
"asc"
|
|
7811
8071
|
);
|
|
7812
8072
|
}
|
|
7813
8073
|
child() {
|
|
7814
8074
|
return lineal(
|
|
7815
8075
|
Math.abs(this.pathN?.level ?? 0),
|
|
7816
|
-
|
|
8076
|
+
sexOf5(this.personN),
|
|
7817
8077
|
"desc"
|
|
7818
8078
|
);
|
|
7819
8079
|
}
|
|
7820
8080
|
sibling() {
|
|
7821
|
-
return
|
|
8081
|
+
return pick4(sexOf5(this.personN), "\u5144\u5F1F", "\u59C9\u59B9", "\u5144\u5F1F\u59C9\u59B9");
|
|
7822
8082
|
}
|
|
7823
8083
|
halfBlood(relation) {
|
|
7824
8084
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -7827,14 +8087,14 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7827
8087
|
return `\u7570\u7236\u6BCD\u306E${relation}`;
|
|
7828
8088
|
}
|
|
7829
8089
|
spouse() {
|
|
7830
|
-
return
|
|
8090
|
+
return pick4(sexOf5(this.personN), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7831
8091
|
}
|
|
7832
8092
|
ofSpouse(relation) {
|
|
7833
8093
|
if (!relation) {
|
|
7834
8094
|
return "";
|
|
7835
8095
|
}
|
|
7836
|
-
const spouseType =
|
|
7837
|
-
|
|
8096
|
+
const spouseType = pick4(
|
|
8097
|
+
sexOf5(this.path?.[1].indi),
|
|
7838
8098
|
"\u592B",
|
|
7839
8099
|
"\u59BB",
|
|
7840
8100
|
"\u914D\u5076\u8005"
|
|
@@ -7846,7 +8106,7 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7846
8106
|
return "";
|
|
7847
8107
|
}
|
|
7848
8108
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
7849
|
-
const spouseType =
|
|
8109
|
+
const spouseType = pick4(sexOf5(spouse), "\u592B", "\u59BB", "\u914D\u5076\u8005");
|
|
7850
8110
|
return `${relation}\u306E${spouseType}`;
|
|
7851
8111
|
}
|
|
7852
8112
|
of(relation) {
|
|
@@ -7882,7 +8142,28 @@ var KinshipTranslatorJa = class extends KinshipTranslatorBasic {
|
|
|
7882
8142
|
if (!relation || !this.pathN?.relation) {
|
|
7883
8143
|
return relation ?? "";
|
|
7884
8144
|
}
|
|
7885
|
-
|
|
8145
|
+
if (this.pathN.relation === "step") {
|
|
8146
|
+
if (relation === "\u7236") {
|
|
8147
|
+
return "\u7EE7\u7236";
|
|
8148
|
+
}
|
|
8149
|
+
if (relation === "\u6BCD") {
|
|
8150
|
+
return "\u7D99\u6BCD";
|
|
8151
|
+
}
|
|
8152
|
+
if (relation === "\u606F\u5B50") {
|
|
8153
|
+
return "\u7D99\u5B50";
|
|
8154
|
+
}
|
|
8155
|
+
if (relation === "\u5A18") {
|
|
8156
|
+
return "\u7D99\u5A18";
|
|
8157
|
+
}
|
|
8158
|
+
return `\u7D99${relation}`;
|
|
8159
|
+
}
|
|
8160
|
+
if (this.pathN.relation === "adopted") {
|
|
8161
|
+
return `\u990A\u5B50\u306E${relation}`;
|
|
8162
|
+
}
|
|
8163
|
+
if (this.pathN.relation === "foster") {
|
|
8164
|
+
return `\u91CC\u89AA\u306E${relation}`;
|
|
8165
|
+
}
|
|
8166
|
+
return relation;
|
|
7886
8167
|
}
|
|
7887
8168
|
};
|
|
7888
8169
|
|
|
@@ -7891,22 +8172,32 @@ var InLawsZh = {
|
|
|
7891
8172
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u914D\u5076": "\u513F\u5AB3/\u5973\u5A7F",
|
|
7892
8173
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u59BB\u5B50": "\u513F\u5AB3",
|
|
7893
8174
|
"(\u5B50\u5973|\u5973\u513F|\u513F\u5B50)\u7684\u4E08\u592B": "\u5973\u5A7F",
|
|
7894
|
-
"
|
|
7895
|
-
"
|
|
7896
|
-
"(\u914D\u5076
|
|
8175
|
+
"\u59BB\u5B50\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD",
|
|
8176
|
+
"\u4E08\u592B\u7684\u6BCD\u4EB2": "\u5A46\u5A46",
|
|
8177
|
+
"(\u914D\u5076)\u7684\u6BCD\u4EB2": "\u5CB3\u6BCD/\u5A46\u5A46",
|
|
8178
|
+
"\u59BB\u5B50\u7684\u7236\u4EB2": "\u5CB3\u7236",
|
|
8179
|
+
"\u4E08\u592B\u7684\u7236\u4EB2": "\u516C\u516C",
|
|
8180
|
+
"(\u914D\u5076)\u7684\u7236\u4EB2": "\u5CB3\u7236/\u516C\u516C",
|
|
8181
|
+
"\u59BB\u5B50\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD",
|
|
8182
|
+
"\u4E08\u592B\u7684\u7236\u6BCD": "\u516C\u516C\u5A46\u5A46",
|
|
8183
|
+
"(\u914D\u5076)\u7684\u7236\u6BCD": "\u5CB3\u7236\u5CB3\u6BCD/\u516C\u516C\u5A46\u5A46",
|
|
7897
8184
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u59BB\u5B50": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7898
8185
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u4E08\u592B": "\u59D0\u592B/\u59B9\u592B",
|
|
7899
8186
|
"(\u5F02\u7236\u6BCD\u7684)?(\u5144\u5F1F\u59D0\u59B9|\u59D0\u59B9|\u5144\u5F1F)\u7684\u914D\u5076": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7900
8187
|
"(\u5F02\u7236\u6BCD\u7684)?\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59D0\u592B/\u59B9\u592B",
|
|
7901
8188
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u5AC2\u5B50/\u5F1F\u59B9",
|
|
7902
8189
|
"(\u5F02\u7236\u6BCD\u7684)?\u5144\u5F1F\u59D0\u59B9\u7684(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9",
|
|
7903
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
7904
|
-
"(\u5F02\u7236\u6BCD\u7684)
|
|
8190
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u59D0\u59B9": "\u59E8\u5B50",
|
|
8191
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u59D0\u59B9": "\u59D1\u5B50",
|
|
8192
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u59D0\u59B9": "\u59D1\u5B50/\u59E8\u5B50",
|
|
8193
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u59BB\u5B50\u7684\u5144\u5F1F": "\u5185\u5144/\u5185\u5F1F",
|
|
8194
|
+
"(\u5F02\u7236\u6BCD\u7684)?\u4E08\u592B\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4",
|
|
8195
|
+
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076)\u7684\u5144\u5F1F": "\u5927\u4F2F/\u5C0F\u53D4/\u5185\u5144/\u5185\u5F1F",
|
|
7905
8196
|
"(\u5F02\u7236\u6BCD\u7684)?(\u914D\u5076|\u59BB\u5B50|\u4E08\u592B)\u7684\u5144\u5F1F\u59D0\u59B9": "\u59FB\u4EB2\u5144\u5F1F\u59D0\u59B9"
|
|
7906
8197
|
};
|
|
7907
8198
|
|
|
7908
8199
|
// src/kinship-translator/kinship-translator.zh.ts
|
|
7909
|
-
var
|
|
8200
|
+
var sexOf6 = (person) => {
|
|
7910
8201
|
if (person?.isMale?.()) {
|
|
7911
8202
|
return "m";
|
|
7912
8203
|
}
|
|
@@ -7915,7 +8206,7 @@ var sexOf3 = (person) => {
|
|
|
7915
8206
|
}
|
|
7916
8207
|
return "n";
|
|
7917
8208
|
};
|
|
7918
|
-
var
|
|
8209
|
+
var pick5 = (sex, male, female, neutral) => {
|
|
7919
8210
|
if (sex === "m") {
|
|
7920
8211
|
return male;
|
|
7921
8212
|
}
|
|
@@ -7928,41 +8219,41 @@ var lineal2 = (level, sex, kind) => {
|
|
|
7928
8219
|
const L = Math.max(1, level);
|
|
7929
8220
|
if (kind === "asc") {
|
|
7930
8221
|
if (L <= 1) {
|
|
7931
|
-
return
|
|
8222
|
+
return pick5(sex, "\u7236\u4EB2", "\u6BCD\u4EB2", "\u7236\u6BCD");
|
|
7932
8223
|
}
|
|
7933
8224
|
if (L === 2) {
|
|
7934
|
-
return
|
|
8225
|
+
return pick5(sex, "\u7956\u7236", "\u7956\u6BCD", "\u7956\u7236\u6BCD");
|
|
7935
8226
|
}
|
|
7936
8227
|
if (L === 3) {
|
|
7937
|
-
return
|
|
8228
|
+
return pick5(sex, "\u66FE\u7956\u7236", "\u66FE\u7956\u6BCD", "\u66FE\u7956\u7236\u6BCD");
|
|
7938
8229
|
}
|
|
7939
8230
|
if (L === 4) {
|
|
7940
|
-
return
|
|
8231
|
+
return pick5(sex, "\u9AD8\u7956\u7236", "\u9AD8\u7956\u6BCD", "\u9AD8\u7956\u7236\u6BCD");
|
|
7941
8232
|
}
|
|
7942
|
-
return
|
|
8233
|
+
return pick5(sex, `${L}\u4E16\u7956`, `${L}\u4E16\u7956\u6BCD`, `${L}\u4E16\u7956\u7236\u6BCD`);
|
|
7943
8234
|
}
|
|
7944
8235
|
if (L <= 1) {
|
|
7945
|
-
return
|
|
8236
|
+
return pick5(sex, "\u513F\u5B50", "\u5973\u513F", "\u5B50\u5973");
|
|
7946
8237
|
}
|
|
7947
8238
|
if (L === 2) {
|
|
7948
|
-
return
|
|
8239
|
+
return pick5(sex, "\u5B59\u5B50", "\u5B59\u5973", "\u5B59\u5B50\u5973");
|
|
7949
8240
|
}
|
|
7950
8241
|
if (L === 3) {
|
|
7951
|
-
return
|
|
8242
|
+
return pick5(sex, "\u66FE\u5B59", "\u66FE\u5B59\u5973", "\u66FE\u5B59\u5B50\u5973");
|
|
7952
8243
|
}
|
|
7953
8244
|
if (L === 4) {
|
|
7954
|
-
return
|
|
8245
|
+
return pick5(sex, "\u7384\u5B59", "\u7384\u5B59\u5973", "\u7384\u5B59\u5B50\u5973");
|
|
7955
8246
|
}
|
|
7956
|
-
return
|
|
8247
|
+
return pick5(sex, `${L}\u4E16\u5B59`, `${L}\u4E16\u5B59\u5973`, `${L}\u4E16\u5B59\u5B50\u5973`);
|
|
7957
8248
|
};
|
|
7958
8249
|
var cousinPlain2 = (degree, sex) => {
|
|
7959
8250
|
if (degree <= 1) {
|
|
7960
|
-
return
|
|
8251
|
+
return pick5(sex, "\u5802\u8868\u5144\u5F1F", "\u5802\u8868\u59D0\u59B9", "\u5802\u8868\u4EB2");
|
|
7961
8252
|
}
|
|
7962
8253
|
if (degree === 2) {
|
|
7963
|
-
return
|
|
8254
|
+
return pick5(sex, "\u4ECE\u5802\u8868\u5144\u5F1F", "\u4ECE\u5802\u8868\u59D0\u59B9", "\u4ECE\u5802\u8868\u4EB2");
|
|
7964
8255
|
}
|
|
7965
|
-
return
|
|
8256
|
+
return pick5(
|
|
7966
8257
|
sex,
|
|
7967
8258
|
`${degree}\u4EE3\u5802\u8868\u5144\u5F1F`,
|
|
7968
8259
|
`${degree}\u4EE3\u5802\u8868\u59D0\u59B9`,
|
|
@@ -7975,7 +8266,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7975
8266
|
if (degree > 0) {
|
|
7976
8267
|
degree = degree - 1;
|
|
7977
8268
|
}
|
|
7978
|
-
return cousinPlain2(degree,
|
|
8269
|
+
return cousinPlain2(degree, sexOf6(this.personN));
|
|
7979
8270
|
}
|
|
7980
8271
|
removal() {
|
|
7981
8272
|
const level = this.pathN?.level ?? 0;
|
|
@@ -7987,56 +8278,56 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
7987
8278
|
return level < 0 ? this.nibling() : this.auncle();
|
|
7988
8279
|
}
|
|
7989
8280
|
const removed = Math.abs(level);
|
|
7990
|
-
return `${cousinPlain2(degree,
|
|
8281
|
+
return `${cousinPlain2(degree, sexOf6(this.personN))}\uFF08\u9694${removed}\u4EE3\uFF09`;
|
|
7991
8282
|
}
|
|
7992
8283
|
auncle() {
|
|
7993
8284
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
7994
|
-
const sex =
|
|
7995
|
-
if (level <=
|
|
7996
|
-
return
|
|
8285
|
+
const sex = sexOf6(this.personN);
|
|
8286
|
+
if (level <= 1) {
|
|
8287
|
+
return pick5(sex, "\u53D4\u53D4", "\u963F\u59E8", "\u53D4\u4F2F/\u59D1\u59E8");
|
|
7997
8288
|
}
|
|
7998
|
-
if (level ===
|
|
7999
|
-
return
|
|
8289
|
+
if (level === 2) {
|
|
8290
|
+
return pick5(sex, "\u4F2F\u53D4\u7956\u7236", "\u59D1\u7956\u6BCD", "\u4F2F\u53D4\u7956\u7236\u6BCD");
|
|
8000
8291
|
}
|
|
8001
|
-
return
|
|
8292
|
+
return pick5(
|
|
8002
8293
|
sex,
|
|
8003
|
-
`${level -
|
|
8004
|
-
`${level -
|
|
8005
|
-
`${level -
|
|
8294
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u53D4`,
|
|
8295
|
+
`${level - 1}\u4EE3\u524D\u7684\u963F\u59E8`,
|
|
8296
|
+
`${level - 1}\u4EE3\u524D\u7684\u53D4\u4F2F/\u59D1\u59E8`
|
|
8006
8297
|
);
|
|
8007
8298
|
}
|
|
8008
8299
|
nibling() {
|
|
8009
8300
|
const level = Math.abs(this.pathN?.level ?? 0);
|
|
8010
|
-
const sex =
|
|
8011
|
-
if (level <=
|
|
8012
|
-
return
|
|
8301
|
+
const sex = sexOf6(this.personN);
|
|
8302
|
+
if (level <= 1) {
|
|
8303
|
+
return pick5(sex, "\u4F84\u5B50", "\u4F84\u5973", "\u4F84\u5B50\u5973");
|
|
8013
8304
|
}
|
|
8014
|
-
if (level ===
|
|
8015
|
-
return
|
|
8305
|
+
if (level === 2) {
|
|
8306
|
+
return pick5(sex, "\u4F84\u5B59", "\u4F84\u5B59\u5973", "\u4F84\u5B59\u5B50\u5973");
|
|
8016
8307
|
}
|
|
8017
|
-
return
|
|
8308
|
+
return pick5(
|
|
8018
8309
|
sex,
|
|
8019
|
-
`${level -
|
|
8020
|
-
`${level -
|
|
8021
|
-
`${level -
|
|
8310
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50`,
|
|
8311
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5973`,
|
|
8312
|
+
`${level - 1}\u4EE3\u4E0B\u7684\u4F84\u5B50\u5973`
|
|
8022
8313
|
);
|
|
8023
8314
|
}
|
|
8024
8315
|
parent() {
|
|
8025
8316
|
return lineal2(
|
|
8026
8317
|
Math.abs(this.pathN?.level ?? 0),
|
|
8027
|
-
|
|
8318
|
+
sexOf6(this.personN),
|
|
8028
8319
|
"asc"
|
|
8029
8320
|
);
|
|
8030
8321
|
}
|
|
8031
8322
|
child() {
|
|
8032
8323
|
return lineal2(
|
|
8033
8324
|
Math.abs(this.pathN?.level ?? 0),
|
|
8034
|
-
|
|
8325
|
+
sexOf6(this.personN),
|
|
8035
8326
|
"desc"
|
|
8036
8327
|
);
|
|
8037
8328
|
}
|
|
8038
8329
|
sibling() {
|
|
8039
|
-
return
|
|
8330
|
+
return pick5(sexOf6(this.personN), "\u5144\u5F1F", "\u59D0\u59B9", "\u5144\u5F1F\u59D0\u59B9");
|
|
8040
8331
|
}
|
|
8041
8332
|
halfBlood(relation) {
|
|
8042
8333
|
if (!relation || !this.isHalfBlood) {
|
|
@@ -8045,14 +8336,14 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
8045
8336
|
return `\u5F02\u7236\u6BCD\u7684${relation}`;
|
|
8046
8337
|
}
|
|
8047
8338
|
spouse() {
|
|
8048
|
-
return
|
|
8339
|
+
return pick5(sexOf6(this.personN), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
8049
8340
|
}
|
|
8050
8341
|
ofSpouse(relation) {
|
|
8051
8342
|
if (!relation) {
|
|
8052
8343
|
return "";
|
|
8053
8344
|
}
|
|
8054
|
-
const spouseType =
|
|
8055
|
-
|
|
8345
|
+
const spouseType = pick5(
|
|
8346
|
+
sexOf6(this.path?.[1].indi),
|
|
8056
8347
|
"\u4E08\u592B",
|
|
8057
8348
|
"\u59BB\u5B50",
|
|
8058
8349
|
"\u914D\u5076"
|
|
@@ -8064,7 +8355,7 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
8064
8355
|
return "";
|
|
8065
8356
|
}
|
|
8066
8357
|
const spouse = this.path?.[this.path.length - 1].indi;
|
|
8067
|
-
const spouseType =
|
|
8358
|
+
const spouseType = pick5(sexOf6(spouse), "\u4E08\u592B", "\u59BB\u5B50", "\u914D\u5076");
|
|
8068
8359
|
return `${relation}\u7684${spouseType}`;
|
|
8069
8360
|
}
|
|
8070
8361
|
of(relation) {
|
|
@@ -8100,7 +8391,40 @@ var KinshipTranslatorZh = class extends KinshipTranslatorBasic {
|
|
|
8100
8391
|
if (!relation || !this.pathN?.relation) {
|
|
8101
8392
|
return relation ?? "";
|
|
8102
8393
|
}
|
|
8103
|
-
|
|
8394
|
+
if (this.pathN.relation === "step") {
|
|
8395
|
+
if (relation === "\u7236\u4EB2") {
|
|
8396
|
+
return "\u7EE7\u7236";
|
|
8397
|
+
}
|
|
8398
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
8399
|
+
return "\u7EE7\u6BCD";
|
|
8400
|
+
}
|
|
8401
|
+
if (relation === "\u513F\u5B50") {
|
|
8402
|
+
return "\u7EE7\u5B50";
|
|
8403
|
+
}
|
|
8404
|
+
if (relation === "\u5973\u513F") {
|
|
8405
|
+
return "\u7EE7\u5973";
|
|
8406
|
+
}
|
|
8407
|
+
return `\u7EE7${relation}`;
|
|
8408
|
+
}
|
|
8409
|
+
if (this.pathN.relation === "adopted") {
|
|
8410
|
+
if (relation === "\u7236\u4EB2") {
|
|
8411
|
+
return "\u517B\u7236";
|
|
8412
|
+
}
|
|
8413
|
+
if (relation === "\u6BCD\u4EB2") {
|
|
8414
|
+
return "\u517B\u6BCD";
|
|
8415
|
+
}
|
|
8416
|
+
if (relation === "\u513F\u5B50") {
|
|
8417
|
+
return "\u517B\u5B50";
|
|
8418
|
+
}
|
|
8419
|
+
if (relation === "\u5973\u513F") {
|
|
8420
|
+
return "\u517B\u5973";
|
|
8421
|
+
}
|
|
8422
|
+
return `\u517B${relation}`;
|
|
8423
|
+
}
|
|
8424
|
+
if (this.pathN.relation === "foster") {
|
|
8425
|
+
return `\u5BC4\u517B${relation}`;
|
|
8426
|
+
}
|
|
8427
|
+
return relation;
|
|
8104
8428
|
}
|
|
8105
8429
|
};
|
|
8106
8430
|
|
|
@@ -9406,7 +9730,7 @@ var collectExtensionTagsFrom = (node, into = /* @__PURE__ */ new Set()) => {
|
|
|
9406
9730
|
// package.json
|
|
9407
9731
|
var package_default = {
|
|
9408
9732
|
name: "@treeviz/gedcom-parser",
|
|
9409
|
-
version: "2.1.
|
|
9733
|
+
version: "2.1.12"};
|
|
9410
9734
|
|
|
9411
9735
|
// src/utils/get-product-details.ts
|
|
9412
9736
|
var isDevelopment = () => {
|