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