strom-research 1.22.0-beta.8 → 1.22.0

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.
Files changed (61) hide show
  1. package/CHANGELOG.cs.md +41 -8
  2. package/CHANGELOG.de.md +49 -9
  3. package/CHANGELOG.md +43 -11
  4. package/assets/lang/cs.json +146 -7
  5. package/assets/lang/de.json +146 -7
  6. package/assets/method/recording.md +6 -3
  7. package/assets/terms/participants.json +39 -0
  8. package/assets/terms/streets.json +23 -0
  9. package/dist/brief/brief.js +42 -5
  10. package/dist/brief/history.js +2 -3
  11. package/dist/cli/main.js +2 -0
  12. package/dist/cli/menu-links.js +40 -24
  13. package/dist/cli/menu-settings.js +32 -16
  14. package/dist/cli/menu.js +6 -7
  15. package/dist/cli/ui.js +114 -6
  16. package/dist/commands/analysis.js +4 -1
  17. package/dist/commands/checks.js +9 -1
  18. package/dist/commands/fixchecks.js +76 -13
  19. package/dist/commands/fixes.js +255 -18
  20. package/dist/commands/guide.js +15 -0
  21. package/dist/commands/history.js +192 -3
  22. package/dist/commands/index.js +2 -0
  23. package/dist/commands/intake.js +3 -1
  24. package/dist/commands/output.js +5 -2
  25. package/dist/commands/people.js +36 -12
  26. package/dist/commands/quality.js +111 -0
  27. package/dist/commands/research.js +2 -0
  28. package/dist/commands/session.js +11 -1
  29. package/dist/commands/setup.js +22 -14
  30. package/dist/commands/surname.js +116 -0
  31. package/dist/commands/sync.js +8 -0
  32. package/dist/core/actions.js +26 -10
  33. package/dist/core/afterdeath.js +139 -0
  34. package/dist/core/appshapefix.js +304 -0
  35. package/dist/core/appshapes.js +42 -0
  36. package/dist/core/changelog.js +43 -0
  37. package/dist/core/check.js +38 -0
  38. package/dist/core/config.js +39 -10
  39. package/dist/core/document.js +10 -6
  40. package/dist/core/duplicates.js +121 -0
  41. package/dist/core/gdate.js +39 -0
  42. package/dist/core/indexfirst.js +3 -2
  43. package/dist/core/integrity.js +12 -8
  44. package/dist/core/links.js +6 -2
  45. package/dist/core/live.js +233 -76
  46. package/dist/core/participantlinks.js +69 -0
  47. package/dist/core/participants.js +373 -0
  48. package/dist/core/pastevents.js +152 -30
  49. package/dist/core/people.js +11 -2
  50. package/dist/core/phrases.js +33 -1
  51. package/dist/core/placehistory.js +25 -12
  52. package/dist/core/quality.js +195 -0
  53. package/dist/core/streetfix.js +120 -0
  54. package/dist/core/streets.js +244 -0
  55. package/dist/core/stromapp.js +35 -0
  56. package/dist/core/surnames.js +837 -0
  57. package/dist/core/sync.js +101 -2
  58. package/dist/core/tree.js +50 -1
  59. package/dist/gedcom/export.js +11 -0
  60. package/dist/gedcom/parse.js +7 -2
  61. package/package.json +1 -4
package/CHANGELOG.cs.md CHANGED
@@ -7,7 +7,7 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
7
7
 
8
8
  ## 1.22.0
9
9
 
10
- *Připravuje se: bety do 1.22.0-beta.8. Oddíl bude úplný s vydáním.*
10
+ *29. 10. 2026 · patří k aplikaci Strom 3.17.0.*
11
11
 
12
12
  - **Jméno jednou v tom, co čeká.** Úkol k materiálu poslanému z aplikace Strom jmenoval ve widgetu a na stránce
13
13
  telefonu každého člověka dvakrát (podruhé v hranatých závorkách) a jeho text bez jmen nechal prázdné závorky; menu,
@@ -23,18 +23,22 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
23
23
  okamžitý, doctor ukazuje průběh a řekne, když výzkum leží v cloudu nebo na síťovém disku; `strom doctor --timing`
24
24
  ukáže, co trvalo dlouho. Na dlouhém výzkumu (stovky lidí, desítky tisíc skenů) ukáže menu hned, co čeká: počet se
25
25
  drží vedle výzkumu, dokud se nezmění nic, z čeho vychází, a pak se spočítá znovu za zlomek sekundy.
26
- - **Archiv, který neodpovídá, zastaví smyčku agenta.** `strom fetch` řekne, kdy to zkusit znovu a co dělat mezitím;
27
- stejný dotaz ve stejném sezení skončí hned (exit 8) a nic neodešle. Úkol, jehož archiv má pauzu, počká mimo frontu
28
- (plán ho ukáže odložený do té doby) a `strom run --loop` do té doby počká, místo aby pouštěl sezení bez práce.
29
- - **Čtenáři nečekají na umlklou službu.** Čtenář, jehož agent po opakovaném pokusu služby zmlkne, se jednou obnoví
30
- tam, kde skončil; když mlčí dál, hned skončí. Takový výpadek už nezmenšuje dávky čtení.
26
+ - **Archiv, který neodpovídá, zastaví smyčku agenta; čtenáři nečekají na umlklou službu.** `strom fetch` řekne, kdy to
27
+ zkusit znovu a co dělat mezitím; stejný dotaz ve stejném sezení skončí hned (exit 8) a nic neodešle. Úkol, jehož
28
+ archiv má pauzu, počká mimo frontu (plán ho ukáže odložený do té doby) a `strom run --loop` do té doby počká, místo
29
+ aby pouštěl sezení bez práce. Čtenář, jehož agent po opakovaném pokusu služby zmlkne, se jednou obnoví tam, kde
30
+ skončil; když mlčí dál, hned skončí. Takový výpadek už nezmenšuje dávky čtení.
31
31
  - **Brána týdne předplatného pustí víc sezení za sebou.** Když jednou čeká na náskok, pustí znovu až se dvěma body navíc
32
32
  (při 15: 17), místo jednoho sezení po každém čekání.
33
33
  - **Co předek zažil.** Události v místech stromu – dějiny kraje ze stránek, které strom sám stáhl a ověřil, místní
34
34
  události z přečtených záznamů – ukáže aplikace Strom; úvodní nastavení ho nabízí zapnuté, instalace nastavená dřív
35
35
  se zeptá jednou, v prvním menu po aktualizaci (Enter: teď ne), a samo se nic nezapne. Zapnout ho může jen člověk –
36
- tehdy, nebo později v menu Nastavení → Samostatná práce agenta → Dějiny míst, z aplikace Strom, nebo
37
- `strom config set experiments.history on`; dokud je vypnuté, nic se nehledá. Po zapnutí se místa zmapují hned v dalším sezení a regiony se
36
+ tehdy, nebo později v menu Nastavení → Samostatná práce agenta → Dějiny, z aplikace Strom, nebo
37
+ `strom config set experiments.history on`; dokud je vypnuté, nic se nehledá. Dějiny regionů a dějiny míst jsou
38
+ dva vypínače, každý i jen pro jeden výzkum (Nastavení → Samostatná práce agenta, `strom config set
39
+ experiments.history|experiments.placeHistory on|off --for-tree`, nebo vypnutí z aplikace Strom) – volba výzkumu
40
+ platí oběma směry; s vypnutými místy se nehledá ani místo, o které se požádá. Co bylo zapnuté, zůstává zapnuté
41
+ obojí, co vypnuté, obojí vypnuté. Po zapnutí se místa zmapují hned v dalším sezení a regiony se
38
42
  prohledávají průběžně mezi sezeními rodinného výzkumu: zhruba každé 5. sezení (výchozí), každé 10., nebo jen když
39
43
  není co jiného (`strom config set experiments.historyPace`, úvodní nastavení, Nastavení); kdy, řekne `strom plan`,
40
44
  a na slovo člověka mohou jít všechny napřed (`strom run --history`, v menu „Hledat dějiny teď“).
@@ -49,6 +53,8 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
49
53
  `strom history status` a `strom plan` ukážou roky každého regionu a co čeká.
50
54
  Co se ukazuje, spravuje člověk v aplikaci Strom nebo přes `strom history`: událost skrytá, nebo smazaná – ze všech
51
55
  výzkumů na tomto počítači, znovu se nezapíše – a obnovená; region nebo místo vynechané; regiony místa přiřazené ručně.
56
+ `strom history list [--place L…] [--region <id>]` vypíše události v terminálu: roky, druh, text v jazyce výzkumu,
57
+ zdroj, co je skryté nebo smazané.
52
58
  Dějiny jednoho místa a okolí – požáry, povodně, bitvy poblíž, panství, farnost, škola – se hledají na slovo
53
59
  člověka (z karty osoby v aplikaci Strom), první při nejbližším sezení, a zůstanou pro všechny výzkumy na tomto
54
60
  počítači s tímto místem. Každé místo se souřadnicemi se může hledat samo, nejdřív místa s nejvíc osobami: Nastavení
@@ -58,6 +64,33 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
58
64
  nikdy jako to, co dělal (u páru jen z let, kdy žili oba); nic skrytého ani smazaného. Schválené vyprávění zůstane, jak je – dějiny přijdou až s jeho
59
65
  další verzí, která čeká na schválení. Vypnout se dá v nastavení nebo v aplikaci Strom
60
66
  (`strom config set stories.history no`).
67
+ - **Tvary jednoho příjmení.** `strom surname suggest` navrhne, které zapsané tvary příjmení patří jedné rodině: táž
68
+ osoba zapsaná v záznamech různě (s citacemi), nebo táž hláska zapsaná jinak na stejném místě ve stejných letech –
69
+ nikdy rodina manžela a otce téže ženy; značka čtení za jménem (`[?]`, `[!]`, `[…]`) není samostatný tvar. O nich
70
+ rozhoduje jen člověk, v terminálu
71
+ (`strom surname accept|reject|group`); agent jen navrhuje. Tvary jedné rodiny rozšíří hledání záznamů i lidí, kteří
72
+ mohou být jedna osoba. `strom person compare` řekne o dvou lidech, zda jsou jedna osoba, dvě, nebo nejisté, a proč
73
+ (už sloučení, jiné pohlaví, roky daleko od sebe, život skončený dřív, než druhý začal, jiní rodiče, jeden zápis pro
74
+ oba…). Nález označený jako není chyba tak zůstane: `strom quality dismiss|undo|list`, jen rozhodnutí člověka – dva
75
+ lidé takto označení se už nikdy nenavrhnou jako jedna osoba. `strom check` upozorní na událost nebo sňatek datovaný
76
+ jistě po smrti (přibližné datum nikdy) a plán výzkumu založí úkol to prověřit, sám hotový, jakmile se datum opraví
77
+ nebo se nález označí jako není chyba. Účastník události (kmotr, svědek) je jméno a co o něm záznam říká, patří do
78
+ závorky na konci jako poznámka: `--with "godparent:Jan Lhoták (sedlák, Lhota č. 12)"`; jméno delší než čtyři slova
79
+ nebo s číslem se odmítne s tím, co dát do závorky, kněz zapsaný jako svědek se má zapsat jako oddávající nebo křtící
80
+ (`officiant`) a účastník, který může být někdo z rodiny okolo zápisu, se navrhne svým číslem, nikdy se nenapojí sám.
81
+ Takto zapsaná dřívější jména najde `strom check` a rozdělí `strom fixes show|run participant-names` – zdarma, podle
82
+ pravidel, i v archivu, vše jedním krokem, vrátí `strom fixes undo participant-names`; rozhoduje jen člověk.
83
+ Aplikace Strom před 3.17 vrací období jako rozpětí (od–do jako mezi–a) a věk bez nulových jednotek (0y 2m 26d jako
84
+ 2m 26d); synchronizace to brala jako úpravu uživatele – rozpor, nebo bydliště přidané jako vodítko vedle téhož. Teď
85
+ se neupravený strom vrátí beze změny; z aplikace, která je zachová (3.17), je rozpětí místo období zase úprava
86
+ uživatele, a věk ze samých nul (0y 0m 0d) je totéž co 0y. Co takto zapsaly dřívější synchronizace, najde `strom fixes show app-shapes`
87
+ a opraví `strom fixes run app-shapes` – zdarma, podle pravidel, i v archivu, vše jedním krokem, vrátí `strom fixes
88
+ undo app-shapes`; rozhoduje jen člověk.
89
+ Ulice není místo: místo zapsané s ulicí nebo číslem domu („Lhota, Lhotákova 12“) se při zápisu odmítne s obcí, kterou
90
+ zapsat, a ulicí a číslem pro `--house`, v kterémkoli jazyce a písmu; dějiny míst se řídí obcí, takže místa lišící
91
+ se jen ulicí jsou jedno. Co se takto zapsalo dřív, najde `strom check` a opraví `strom fixes show|run street-places`
92
+ (ulice k domu, kde je prázdný nebo jmenuje tutéž) – zdarma, i v archivu, vše jedním krokem, vrátí `strom fixes
93
+ undo street-places`; rozhoduje jen člověk.
61
94
 
62
95
  ## 1.21.0
63
96
 
package/CHANGELOG.de.md CHANGED
@@ -7,7 +7,7 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
7
7
 
8
8
  ## 1.22.0
9
9
 
10
- *In Vorbereitung: die Betas bis 1.22.0-beta.8. Der Abschnitt ist mit dem Release vollständig.*
10
+ *29.10.2026 · gehört zur Strom-App 3.17.0.*
11
11
 
12
12
  - **Jeder Name einmal in dem, was wartet.** Eine Aufgabe zu Material, das aus der Strom-App gesendet wurde, nannte im
13
13
  Widget und auf der Seite des Telefons jede Person zweimal (das zweite Mal in eckigen Klammern), und ihr Text ohne
@@ -26,11 +26,11 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
26
26
  oder auf einem Netzlaufwerk liegt; `strom doctor --timing` zeigt, was lange dauerte. Bei einer langen Forschung
27
27
  (viele hundert Personen, Zehntausende Scans) zeigt das Menü sofort, was wartet: Die Zahl wird neben der Forschung
28
28
  gehalten, bis sich etwas ändert, worauf sie beruht, und dann in einem Bruchteil einer Sekunde neu gezählt.
29
- - **Ein Archiv, das nicht antwortet, beendet die Schleife des Agenten.** `strom fetch` sagt, wann es wieder zu
30
- versuchen ist und was bis dahin zu tun ist; dieselbe Anfrage in derselben Sitzung endet sofort (Exit 8) und sendet
31
- nichts. Eine Aufgabe, deren Archiv pausiert, wartet bis dahin außerhalb der Warteschlange (der Plan zeigt sie bis zu
32
- dieser Zeit zurückgestellt), und `strom run --loop` wartet bis dahin, statt Sitzungen ohne Arbeit zu starten.
33
- - **Leser warten nicht mehr auf einen verstummten Dienst.** Ein Leser, dessen Agent nach einem erneuten Versuch seines
29
+ - **Ein Archiv, das nicht antwortet, beendet die Schleife des Agenten; Leser warten nicht mehr auf einen verstummten
30
+ Dienst.** `strom fetch` sagt, wann es wieder zu versuchen ist und was bis dahin zu tun ist; dieselbe Anfrage in
31
+ derselben Sitzung endet sofort (Exit 8) und sendet nichts. Eine Aufgabe, deren Archiv pausiert, wartet bis dahin
32
+ außerhalb der Warteschlange (der Plan zeigt sie bis zu dieser Zeit zurückgestellt), und `strom run --loop` wartet
33
+ bis dahin, statt Sitzungen ohne Arbeit zu starten. Ein Leser, dessen Agent nach einem erneuten Versuch seines
34
34
  Dienstes verstummt, wird einmal dort fortgesetzt, wo er aufhörte; bleibt er still, endet er sofort. Ein solcher
35
35
  Ausfall verkleinert die Lesestapel nicht mehr.
36
36
  - **Das Tor der Abo-Woche lässt mehrere Sitzungen hintereinander laufen.** Wartet es einmal auf Vorsprung, lässt es
@@ -39,8 +39,12 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
39
39
  die strom selbst geladen und geprüft hat, örtliche Ereignisse aus gelesenen Einträgen – zeigt die Strom-App. Die
40
40
  Ersteinrichtung schlägt es eingeschaltet vor; eine früher eingerichtete Installation fragt einmal, im ersten Menü
41
41
  nach dem Update (Enter: jetzt nicht), und nichts schaltet sich von selbst ein. Einschalten kann es nur ein Mensch –
42
- dann oder später im Menü Einstellungen → Der Agent allein → Geschichte der Orte, aus der Strom-App oder mit
43
- `strom config set experiments.history on`; solange es aus ist, wird nichts gesucht. Eingeschaltet, werden die Orte in der nächsten Sitzung zugeordnet und die Regionen ab und zu zwischen den
42
+ dann oder später im Menü Einstellungen → Der Agent allein → Geschichte, aus der Strom-App oder mit
43
+ `strom config set experiments.history on`; solange es aus ist, wird nichts gesucht. Die Geschichte der Regionen
44
+ und die der Orte sind zwei Schalter, jeder auch nur für eine Forschung (Einstellungen → Der Agent allein, `strom
45
+ config set experiments.history|experiments.placeHistory on|off --for-tree`, oder aus der Strom-App ausgeschaltet) –
46
+ die Wahl einer Forschung gilt in beide Richtungen; mit ausgeschalteten Orten wird auch ein erfragter Ort nicht
47
+ gesucht. Was eingeschaltet war, bleibt es für beide, was aus war, für beide aus. Eingeschaltet, werden die Orte in der nächsten Sitzung zugeordnet und die Regionen ab und zu zwischen den
44
48
  Sitzungen der Familienforschung durchsucht: etwa jede 5. Sitzung (Standard), jede 10. oder nur, wenn nichts anderes
45
49
  ansteht (`strom config set experiments.historyPace`, die Ersteinrichtung, die Einstellungen); wann, sagt `strom plan`,
46
50
  und auf das Wort eines Menschen können alle zuerst laufen (`strom run --history`, im Menü „Geschichte jetzt suchen“).
@@ -57,7 +61,9 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
57
61
  und `strom plan` zeigen die Jahre jeder Region und was wartet.
58
62
  Was gezeigt wird, verwaltet der Mensch in der Strom-App oder mit `strom history`: ein Ereignis ausgeblendet, oder
59
63
  gelöscht – aus jeder Forschung auf diesem Computer, nie wieder eingetragen – und wiederhergestellt; eine Region oder
60
- ein Ort übersprungen; die Regionen eines Orts von Hand zugeordnet.
64
+ ein Ort übersprungen; die Regionen eines Orts von Hand zugeordnet. `strom history list [--place L…] [--region <id>]`
65
+ listet die Ereignisse im Terminal: die Jahre, die Art, den Text in der Sprache der Forschung, die Quelle, was
66
+ verborgen oder gelöscht ist.
61
67
  Die Geschichte eines einzelnen Ortes und seiner Umgebung – Brände, Hochwasser, Schlachten in der Nähe, die
62
68
  Herrschaft, die Pfarrei, die Schule – wird auf das Wort eines Menschen gesucht (aus der Personenkarte der
63
69
  Strom-App), zuerst in der nächsten Sitzung, und bleibt für jede Forschung auf diesem Computer mit diesem Ort. Jeder
@@ -69,6 +75,40 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
69
75
  beide lebten); nichts Ausgeblendetes oder Gelöschtes. Eine
70
76
  freigegebene Erzählung bleibt, wie sie ist – die Geschichte kommt erst mit ihrer nächsten Fassung, die auf Freigabe
71
77
  wartet. Abschaltbar in den Einstellungen oder in der Strom-App (`strom config set stories.history no`).
78
+ - **Die Formen eines Familiennamens.** `strom surname suggest` schlägt vor, welche geschriebenen Formen eines
79
+ Familiennamens zu einer Familie gehören: dieselbe Person in den Einträgen verschieden geschrieben (mit den Belegen),
80
+ oder derselbe Laut anders geschrieben am selben Ort in denselben Jahren – nie die Familien von Ehemann und Vater
81
+ einer Frau; eine Lesemarke nach einem Namen (`[?]`, `[!]`, `[…]`) ist keine eigene Form. Entscheiden kann nur ein
82
+ Mensch, im Terminal (`strom surname accept|reject|group`); ein Agent schlägt
83
+ nur vor. Die Formen einer Familie erweitern die Suche nach Einträgen und nach Personen, die eine sein können.
84
+ `strom person compare` sagt von zwei Personen, ob sie eine sind, zwei oder unsicher, und warum (schon
85
+ zusammengeführt, ein anderes Geschlecht, Jahre weit auseinander, ein Leben, das endete, bevor das andere begann,
86
+ andere Eltern, ein Eintrag für beide…). Ein als kein Fehler markierter Befund bleibt es:
87
+ `strom quality dismiss|undo|list`, allein die Entscheidung eines Menschen – zwei so markierte Personen werden nie
88
+ wieder als eine vorgeschlagen. `strom check` warnt vor einem Ereignis oder einer Heirat, die sicher nach dem Tod
89
+ einer Person datiert ist (ein ungefähres Datum nie), und der Plan einer Forschung legt eine Aufgabe an, das zu
90
+ prüfen – von selbst erledigt, sobald das Datum berichtigt oder der Befund als kein Fehler markiert ist. Ein
91
+ Beteiligter eines Ereignisses (ein Pate, ein Zeuge) ist ein Name, und was der Eintrag über ihn sagt, steht als
92
+ Notiz in Klammern am Ende: `--with "godparent:Jan Lhoták (sedlák, Lhota č. 12)"`; ein Name aus mehr als vier
93
+ Wörtern oder mit einer Zahl wird abgelehnt, mit dem, was in die Klammern gehört, ein als Zeuge genannter Geistlicher
94
+ wird als Amtsträger (`officiant`) erfasst, und ein Beteiligter, der jemand aus der Familie um den Eintrag sein kann,
95
+ wird mit seiner Nummer vorgeschlagen, nie von selbst verknüpft. So früher geschriebene Namen findet `strom check`,
96
+ und `strom fixes show|run participant-names` trennt sie – kostenlos, nach Regeln, auch in einem Archiv, alles in
97
+ einem Schritt, zurück mit `strom fixes undo participant-names`; entscheiden kann nur ein Mensch.
98
+ Eine Strom-App vor 3.17 gibt einen Zeitraum als Spanne zurück (von–bis als zwischen–und) und ein Alter ohne
99
+ Einheiten von null (0y 2m 26d als 2m 26d); eine Synchronisation nahm das als Änderung – ein Widerspruch oder ein
100
+ Wohnort als Hinweis neben demselben. Nun kommt ein unveränderter Baum ohne Änderung zurück; von einer App, die sie
101
+ behält (3.17), ist eine Spanne statt eines Zeitraums wieder eine Änderung, und ein Alter aus lauter Nullen
102
+ (0y 0m 0d) ist dasselbe wie 0y. Was frühere
103
+ Synchronisationen so schrieben, findet `strom fixes show app-shapes` und korrigiert `strom fixes run app-shapes` –
104
+ kostenlos, nach Regeln, auch in einem Archiv, alles in einem Schritt, zurück mit `strom fixes undo app-shapes`;
105
+ entscheiden kann nur ein Mensch.
106
+ Eine Straße ist kein Ort: ein Ort mit Straße oder Nummer („Lhota, Lhotákweg 12“) wird beim Schreiben
107
+ abgelehnt, mit der Gemeinde zum Schreiben und Straße und Nummer für `--house`, in jeder Sprache und jedem Alphabet; die
108
+ Geschichte der Orte richtet sich nach der Gemeinde, Orte, die sich nur in der Straße unterscheiden, sind einer. Was
109
+ früher so geschrieben wurde, findet `strom check` und korrigiert `strom fixes show|run street-places` (die Straße
110
+ zum Haus, wo es leer ist oder dieselbe nennt) – kostenlos, auch in einem Archiv, alles in einem Schritt, zurück mit
111
+ `strom fixes undo street-places`; entscheiden kann nur ein Mensch.
72
112
 
73
113
  ## 1.21.0
74
114
 
package/CHANGELOG.md CHANGED
@@ -7,7 +7,7 @@ The changes of each version in short. The full notes and the install lines are o
7
7
 
8
8
  ## 1.22.0
9
9
 
10
- *In preparation: the betas up to 1.22.0-beta.8. The section is complete with the release.*
10
+ *2026-10-29 · goes with the Strom app 3.17.0.*
11
11
 
12
12
  - **Each name once in what waits.** A task for material sent from the Strom app named each person twice in the
13
13
  widget and on the phone's page (the second time in brackets), and its text without names kept empty brackets; the
@@ -24,21 +24,23 @@ The changes of each version in short. The full notes and the install lines are o
24
24
  network drive; `strom doctor --timing` tells what took long. On a long research (hundreds of people, tens of
25
25
  thousands of scans) the menu shows what waits at once: its count is kept beside the research until something it
26
26
  stands on changes, and counted again in a fraction of a second.
27
- - **An archive that stops answering stops the agent's loop.** `strom fetch` says when to try again and what to do
28
- meanwhile; asked again in the same session it ends at once (exit 8) and sends nothing. A task whose archive is left
29
- alone waits out of the queue until then (the plan shows it put off until that time), and `strom run --loop` waits
30
- for that time instead of starting sessions with nothing to do.
31
- - **Readers no longer wait out a silent service.** A reader whose agent goes silent after a retry of its service is
32
- resumed once where it stopped; still silent, it ends at once. Such a failure no longer makes the reading batches
33
- smaller.
27
+ - **An archive that stops answering stops the agent's loop; readers no longer wait out a silent service.** `strom
28
+ fetch` says when to try again and what to do meanwhile; asked again in the same session it ends at once (exit 8) and
29
+ sends nothing. A task whose archive is left alone waits out of the queue until then (the plan shows it put off until
30
+ that time), and `strom run --loop` waits for that time instead of starting sessions with nothing to do. A reader
31
+ whose agent goes silent after a retry of its service is resumed once where it stopped; still silent, it ends at
32
+ once. Such a failure no longer makes the reading batches smaller.
34
33
  - **The gate of the subscription's week lets several sessions run in a row.** Once it waits for points in hand, it goes again only
35
34
  with two more (at 15: 17), instead of one session after every wait.
36
35
  - **What the ancestors lived through.** The events at the places of the tree — the history of a region from pages
37
36
  strom downloaded and checked itself, local events from the records read — shown by the Strom app. The first setup
38
37
  suggests it on; an installation set up before is asked once, at the first menu after the update (Enter: not now),
39
38
  and nothing turns on by itself. Only a person turns it on — then or later in the menu's Settings → The agent working
40
- alone → History of the places, from the Strom app, or with `strom config set experiments.history on`; while it is
41
- off, nothing is looked for. Once on, the
39
+ alone → History, from the Strom app, or with `strom config set experiments.history on`; while it is
40
+ off, nothing is looked for. The history of the regions and of the places are two switches, each also for one
41
+ research alone (Settings → The agent working alone, `strom config set experiments.history|experiments.placeHistory
42
+ on|off --for-tree`, or off from the Strom app) — a research's own choice wins both ways; with the places off, not
43
+ even a place asked for is looked for. What was on before stays on for both, what was off for both. Once on, the
42
44
  places are mapped in the next session, and the regions are searched now and then between the family research's
43
45
  sessions: about every 5th (the default), every 10th, or only when nothing else is left
44
46
  (`strom config set experiments.historyPace`, the setup, the settings); `strom plan` says when, and all of them
@@ -55,7 +57,8 @@ The changes of each version in short. The full notes and the install lines are o
55
57
  those years. `strom history status` and `strom plan` show each region's years and what waits.
56
58
  What is shown is the person's to manage, in the Strom app or with `strom history`: an event hidden, or deleted —
57
59
  from every research on this computer, never written again — and restored; a region or a place skipped; a place's
58
- regions assigned by hand.
60
+ regions assigned by hand. `strom history list [--place L…] [--region <id>]` lists the events in the terminal: the
61
+ years, the kind, the text in the research's language, the source, what is hidden or deleted.
59
62
  The history of a single place and its surroundings — fires, floods, battles nearby, the estate, the parish, the
60
63
  school — is looked for at a person's word (from a person's card in the Strom app), first at the next session, and
61
64
  kept for every research on this computer with that place. Each place with coordinates can be looked for by itself,
@@ -67,6 +70,35 @@ The changes of each version in short. The full notes and the install lines are o
67
70
  deleted. An approved story stays as it is —
68
71
  the history comes only with its next version, waiting for approval. Off in the settings or in the Strom app
69
72
  (`strom config set stories.history no`).
73
+ - **The forms of one surname.** `strom surname suggest` suggests which written forms of a surname are one family's: one
74
+ person written so in the records (with the citations), or one sound spelled otherwise at one place in the same years
75
+ — never the families of a woman's husband and her father; a reading mark after a name (`[?]`, `[!]`, `[…]`) is no
76
+ form of its own. Only a person decides, in the terminal
77
+ (`strom surname accept|reject|group`); an agent only suggests. The forms of one family widen the search of records
78
+ and of people who may be one. `strom person compare` says of two people whether they are one, two or unsure, and why
79
+ (merged already, a different sex, years far apart, a life that ended before the other began, other parents, one
80
+ entry for both…). A finding marked no error stays so: `strom quality dismiss|undo|list`, the person's alone — two
81
+ people marked so are never suggested as one again. `strom check` warns of an event or a marriage dated certainly
82
+ after a person's death (an approximate date never), and the plan of a research raises a task to look into it, done
83
+ by itself once the date is corrected or the finding marked no error. A participant of an event (a godparent, a
84
+ witness) is a name, and what the record says of them goes in closing parentheses as the note:
85
+ `--with "godparent:Jan Lhoták (sedlák, Lhota č. 12)"`; a name of more than four words or with a number is refused
86
+ with what to put in the parentheses, a priest named as a witness is told to be the officiant, and a participant
87
+ who may be one of the family around the entry is suggested by their number, never linked by itself. Names written
88
+ so before are found by `strom check` and set apart by `strom fixes show|run participant-names` — free, by rules,
89
+ in an archive too, all in one step, put back with `strom fixes undo participant-names`; only a person decides.
90
+ A Strom app before 3.17 sends a period back as a range (from–to as between–and) and an age without its zero units
91
+ (0y 2m 26d as 2m 26d); a sync took that for the user's edit — a disagreement, or a residence added as a lead beside
92
+ the same one. Now an unedited tree comes back with no change; from an app that keeps them (3.17), a period made a
93
+ range is the user's edit again, and an age of nothing (0y 0m 0d) is the same as 0y. What earlier syncs wrote so is found by `strom fixes
94
+ show app-shapes` and set right by `strom fixes run app-shapes` — free, by rules, in an archive too, all in one
95
+ step, put back with `strom fixes undo app-shapes`; only a person decides.
96
+ A street is no place: a place written with a street or a house number ("Lhota, Lhotak Street 12") is refused on
97
+ writing with the municipality to write and the street and number for `--house`, in any language and script; the
98
+ history of places goes by the municipality, so places that differ only by their street are one. What was written
99
+ so before is found by `strom check` and set right by `strom fixes show|run street-places` (the street to the house
100
+ where it is empty or names the same) — free, in an archive too, all in one step, put back with `strom fixes undo
101
+ street-places`; only a person decides.
70
102
 
71
103
  ## 1.21.0
72
104
 
@@ -733,6 +733,38 @@
733
733
  "history.why.archive": "Dokud je výzkum vedený jako archiv, nic se nehledá.",
734
734
  "history.why.held": "Události regionu {region} hledá jiný výzkum na tomto počítači.",
735
735
  "history.why.nobody": "V těch letech tu nikdo ze stromu nežil.",
736
+ "surname.suggest.person": "Tatáž osoba je v záznamech zapsaná jako {forms}.",
737
+ "surname.suggest.phonetic": "{forms}: tatáž hláska zapsaná jinak ({keys}), na stejném místě ve stejných letech.",
738
+ "surname.suggest.spelling": "{forms}: jiný pravopis ({keys}) na stejném místě ve stejných letech.",
739
+ "surname.key.double": "zdvojené písmeno",
740
+ "surname.key.diacritics": "diakritika",
741
+ "log.surname.group": "Tvary příjmení jedné rodiny: {forms}",
742
+ "log.surname.ungroup": "Tvary příjmení rozděleny: {forms}",
743
+ "log.surname.reject": "Tvary příjmení nejsou jedné rodiny: {forms}",
744
+ "log.surname.unreject": "Tvary příjmení se smějí znovu navrhnout: {forms}",
745
+ "log.surname.undo": "Tvary příjmení vráceny, jak byly",
746
+ "log.participant.fix": "Jména kmotrů a svědků oddělena od poznámek: {n}",
747
+ "log.participant.unfix": "Jména kmotrů a svědků vrácena, jak byla: {n}",
748
+ "fix.appshape.resolution": "Platí údaj výzkumu: {value}",
749
+ "fix.appshape.reasoning": "Aplikace Strom ho jen vrátila ve vlastním tvaru ({value}): období jako rozpětí, věk bez nulových jednotek. Není to úprava.",
750
+ "fix.appshape.added": "Totéž co {event}, jen vrácené aplikací Strom ve vlastním tvaru: žádný nový údaj.",
751
+ "fix.appshape.undone": "Znovu staženo, jak to nechala synchronizace (oprava app-shapes vrácena).",
752
+ "log.appshape.fix": "Období a věky vrácené aplikací Strom vzaty tak, jak je má výzkum: {n}",
753
+ "log.appshape.unfix": "Období a věky z aplikace Strom vráceny, jak je nechaly synchronizace: {n}",
754
+ "log.streetplace.fix": "Ulice a čísla domů přesunuty z míst údajů do jejich domů: {n}",
755
+ "log.streetplace.unfix": "Místa a domy údajů vráceny, jak byly: {n}",
756
+ "afterdeath.what": "{name}: prověřit událost datovanou po smrti ({year})",
757
+ "afterdeath.wedding.what": "{name}: prověřit sňatek datovaný po smrti ({year})",
758
+ "afterdeath.why": "Smrt: {death}. Datováno po ní: {event}. Jedno z dat je špatně přečtené, nebo jde o záznamy dvou lidí.",
759
+ "afterdeath.done": "oba záznamy přečtené znovu: špatně přečtené datum opravené i se záznamem, dva lidé rozlišení, nebo poznámka, proč platí obě data",
760
+ "afterdeath.fact": "{kind} {id} {date}{place} ({cites})",
761
+ "afterdeath.fact.uncited": "{kind} {id} {date}{place} (bez citovaného pramene)",
762
+ "afterdeath.result.dismissed": "Označeno jako není chyba ({event}): není co prověřovat.",
763
+ "afterdeath.result.gone": "{event} už není datováno po smrti: není co prověřovat.",
764
+ "log.quality.two": "Dva lidé, ne jeden: {persons}",
765
+ "log.quality.afterdeath": "{persons}: datováno po smrti ({subject}), není chyba",
766
+ "log.quality.dismiss": "Označeno jako není chyba: {what}",
767
+ "log.quality.undo": "Už neoznačeno jako není chyba: {what}",
736
768
  "history.places.what": "Místa údajů pro dějiny předků ({n}): regiony, kam které patřilo, i s roky",
737
769
  "history.places.why": "události dějin (války, epidemie, sčítání lidu, změny státu) se ukazují u míst údajů podle regionů, kam patřila",
738
770
  "history.places.done": "každé místo přiřazené k regionům i s roky, nebo označené jako nedohledané",
@@ -762,7 +794,7 @@
762
794
  "history.place.why": "co předkové prožili přímo ve svém místě, ukázané u jejich životů",
763
795
  "history.place.done": "události místa a okolí nalezené, každá ze stránky, kterou strom sám přečetl, a řečeno, co se prohledalo — nebo nic, když žádná událost hodná zápisu doložená není",
764
796
  "history.place.finished": "dějiny místa {place} jsou hotové",
765
- "history.place.why.off": "Dějiny předků jsou vypnuté.",
797
+ "history.place.why.off": "Dějiny míst jsou v tomto výzkumu vypnuté.",
766
798
  "history.place.why.skipped": "Dějiny tohoto místa se v tomto výzkumu nehledají.",
767
799
  "history.place.why.pace": "Čeká na řadu v tempu dějin.",
768
800
  "review.reread.what": "Přečíst znovu modelem {model}, o co se opírají údaje osoby {name}: {list}{more}",
@@ -1224,6 +1256,25 @@
1224
1256
  "ui.history.past.deleted.region": "Smazáno: {event} – ze všech stromů na tomto počítači; výzkum tu událost už znovu nezapíše.",
1225
1257
  "ui.history.past.deleted.local": "Smazáno: {event} – jen v tomto stromu (pramen zůstává).",
1226
1258
  "ui.history.past.restored": "Obnoveno: {event} – událost je zpět v dějinách.",
1259
+ "ui.history.list.off": "Dějiny míst jsou vypnuté – co se našlo, zůstává.",
1260
+ "ui.history.list.none": "U míst stromu zatím nejsou žádné události dějin.",
1261
+ "ui.history.list.region": "Region {region}",
1262
+ "ui.history.list.place": "Místo {place}",
1263
+ "ui.history.list.local": "Z pramenů výzkumu",
1264
+ "ui.history.list.hidden.place": "skryto u místa {place}",
1265
+ "ui.history.list.hidden.person": "skryto u osoby {person}",
1266
+ "ui.history.list.hidden.tree": "skryto v celém stromu",
1267
+ "ui.history.list.hidden.region": "vše z regionu skryto",
1268
+ "ui.history.list.deleted": "smazáno",
1269
+ "ui.history.kind.war": "válka",
1270
+ "ui.history.kind.epidemic": "epidemie",
1271
+ "ui.history.kind.census": "sčítání lidu",
1272
+ "ui.history.kind.state": "stát",
1273
+ "ui.history.kind.emigration": "vystěhovalectví",
1274
+ "ui.history.kind.law": "zákon",
1275
+ "ui.history.kind.economy": "hospodářství",
1276
+ "ui.history.kind.disaster": "pohroma",
1277
+ "ui.history.kind.other": "jiné",
1227
1278
  "ui.browse.plan": "Co agent udělá dál",
1228
1279
  "ui.review.new": "{name} — {n, plural, one {# nový úkol} few {# nové úkoly} other {# nových úkolů}}:",
1229
1280
  "ui.review.nothing": "{name} — nic nového k revizi",
@@ -1315,6 +1366,21 @@
1315
1366
  "ui.sync.fact.part.gone": "{n}. {who}: {kind} {when} — už neuvedeno: {wasRole} {part}",
1316
1367
  "ui.sync.person.cite": "{n}. {who}: pramen z aplikace k osobě — {sources}",
1317
1368
  "ui.sync.family.cite": "{n}. {who}: pramen z aplikace k rodině — {sources}",
1369
+ "ui.sync.surname.group": "{n}. Tvary příjmení jedné rodiny: {forms}",
1370
+ "ui.sync.surname.group.set": "{n}. Tvary příjmení jedné rodiny: {was} → {forms}",
1371
+ "ui.sync.surname.group.remove": "{n}. Tvary příjmení už nejsou jedné rodiny: {was}",
1372
+ "ui.sync.surname.group.kept": "{n}. Tvary příjmení jedné rodiny se liší: v aplikaci {forms}, ve výzkumu {was}",
1373
+ "ui.sync.surname.reject": "{n}. Tvary příjmení odmítnuté jako jedna rodina: {forms}",
1374
+ "ui.sync.surname.reject.set": "{n}. Tvary příjmení odmítnuté jako jedna rodina: {was} → {forms}",
1375
+ "ui.sync.surname.reject.remove": "{n}. Tvary příjmení už nejsou odmítnuté: {was}",
1376
+ "ui.sync.surname.reject.kept": "{n}. Tvary příjmení odmítnuté jako jedna rodina se liší: v aplikaci {forms}, ve výzkumu {was}",
1377
+ "ui.sync.surname.warning": "{n}. Řádek tvarů příjmení nepřečten ({why}): {line}",
1378
+ "ui.sync.surname.why.empty": "prázdný tvar",
1379
+ "ui.sync.surname.why.separator": "tvar se znakem |",
1380
+ "ui.sync.surname.why.damaged": "poškozené znaky — seznam zůstává, jak je",
1381
+ "ui.sync.do.surname": "zapíše se, jak bylo rozhodnuto v aplikaci",
1382
+ "ui.sync.do.surname.kept": "zůstává, jak je ve výzkumu",
1383
+ "ui.sync.do.surname.report": "nic se nemění",
1318
1384
  "ui.sync.do.part": "doplní se k údaji s odkazem na strom z aplikace",
1319
1385
  "ui.sync.do.part.user": "platí úprava z aplikace (verze výzkumu zůstane v historii)",
1320
1386
  "ui.sync.do.person.cite": "bude ho citovat jméno osoby (vodítko, dokud výzkum záznam nepřečte)",
@@ -1667,6 +1733,11 @@
1667
1733
  "ui.check.notdownloaded.hint": "otevřít složku výzkumu ve Finderu a stáhnout ji (nebo složku z iCloud Drive vyjmout), pak znovu zkontrolovat – ne strom repair",
1668
1734
  "ui.check.sharedmissing": "na tomto počítači chybí ve sdílené složce: {n, plural, one {# soubor} few {# soubory} other {# souborů}} (první: {first}) – rodinné materiály a obrázky leží vedle výzkumu, ne v jeho složce",
1669
1735
  "ui.check.sharedmissing.hint": "vrátit ze zálohy celou složku Strom (podsložku shared); kam patří první: {show}",
1736
+ "ui.check.afterdeath": "{person}: {event} {date} datováno po smrti ({death})",
1737
+ "ui.check.afterdeath.wedding": "{person}: sňatek {date} datovaný po smrti ({death})",
1738
+ "ui.check.afterdeath.hint": "oba záznamy přečíst znovu: {show}; není chyba → {dismiss}",
1739
+ "ui.check.participantnames": "{n, plural, one {# jméno kmotra nebo svědka obsahuje} few {# jména kmotrů a svědků obsahují} other {# jmen kmotrů a svědků obsahuje}} víc než jméno",
1740
+ "ui.check.streetplaces": "{n, plural, one {# údaj má} few {# údaje mají} other {# údajů má}} v místě ulici nebo číslo domu",
1670
1741
  "ui.error.tree.not-downloaded": "z iCloudu ještě nestaženo: {n, plural, one {# soubor} few {# soubory} other {# souborů}} výzkumu (první: {first}) – nic se nezapsalo",
1671
1742
  "ui.error.tree.not-downloaded.hint": "otevřít složku výzkumu ve Finderu a soubory stáhnout (nebo složku z iCloud Drive vyjmout), pak spustit znovu – ne strom repair",
1672
1743
  "ui.export.file": "{file} ({for}) — {persons, plural, one {# osoba} few {# osoby} other {# osob}} · {families, plural, one {# rodina} few {# rodiny} other {# rodin}} · {facts, plural, one {# údaj} few {# údaje} other {# údajů}} · {sources, plural, one {# pramen} few {# prameny} other {# pramenů}}{skipped}",
@@ -2737,19 +2808,25 @@
2737
2808
  "ui.history.pace.later": "Jak často, jde později změnit: strom config set experiments.historyPace sometimes|rare|idle.",
2738
2809
  "ui.history.pace.off": "vypnuto – dějiny se nehledají",
2739
2810
  "ui.setup.history": "Hledat i události dějin v místech předků – války, epidemie, sčítání, změny státu (agent je hledá mezi sezeními rodinného výzkumu)? Jak často:",
2740
- "ui.alone.history": "Dějiny míst: {state}",
2811
+ "ui.alone.history": "Dějiny: {state}",
2741
2812
  "ui.alone.places": "Dějiny jednotlivých míst automaticky: {state}",
2742
2813
  "ui.alone.places.about": "Dějiny každého místa se souřadnicemi a jeho okolí – požáry, povodně, bitvy poblíž, panství, farnost, škola – se hledají samy, jedno místo po druhém v tempu dějin, nejdřív místa, kde žilo nejvíc lidí. Jednou prohledané místo se znovu nehledá. Jedno místo se hledá na požádání vždy, i když je tohle vypnuté.",
2743
2814
  "ui.alone.places.on": "Zapnout?",
2744
2815
  "ui.alone.places.off": "Vypnout? Co se našlo, zůstane.",
2745
- "ui.alone.places.history": "Dějiny jednotlivých míst se hledají jen při zapnutých dějinách míst (5).",
2816
+ "ui.alone.places.history": "Dějiny jednotlivých míst se hledají jen při zapnutých dějinách míst.",
2817
+ "ui.alone.regions.tree": "Dějiny regionů v tomto výzkumu: {state}",
2818
+ "ui.alone.placeHistory.tree": "Dějiny míst v tomto výzkumu: {state}",
2819
+ "ui.alone.tree.about": "Jen pro tento výzkum, přednost před nastavením tohoto počítače. Co se našlo, zůstává.",
2746
2820
  "ui.history.offer": "Novinka této verze: události dějin v místech předků – války, epidemie, sčítání, změny státu, každá se zdrojem; aplikace Strom je ukáže v průběhu života. Zatím se nehledají a samo se nic nezapne.",
2747
2821
  "ui.history.offer.no": "teď ne – nic se nezapne",
2748
- "ui.history.offer.later": "Dějiny se nehledají. Později: Nastavení → Samostatná práce agenta → Dějiny míst, nebo z aplikace Strom.",
2749
- "ui.history.offer.on": "Dějiny se hledají: {pace}. Jak často, jde změnit: Nastavení → Samostatná práce agenta → Dějiny míst, nebo z aplikace Strom.",
2822
+ "ui.history.offer.later": "Dějiny se nehledají. Později: Nastavení → Samostatná práce agenta → Dějiny, nebo z aplikace Strom.",
2823
+ "ui.history.offer.on": "Dějiny se hledají: {pace}. Jak často, jde změnit: Nastavení → Samostatná práce agenta → Dějiny, nebo z aplikace Strom.",
2750
2824
  "ui.consent.history.pace": "Hledat události dějin častěji – {pace}? Stojí to víc času agenta i čerpání předplatného.",
2825
+ "ui.consent.history.tree": "Hledat události dějin regionů v místech tohoto výzkumu – války, epidemie, sčítání, změny státu? Agent je hledá průběžně mezi sezeními rodinného výzkumu a stojí to jeho čas i čerpání předplatného.",
2826
+ "ui.consent.placeHistory": "Hledat na vyžádání dějiny místa a jeho okolí ve všech výzkumech na tomto počítači – požáry, povodně, bitvy poblíž, panství, farnost, škola? Každé vyžádané místo je jedno sezení agenta; stojí to jeho čas i čerpání předplatného.",
2827
+ "ui.consent.placeHistory.tree": "Hledat na vyžádání dějiny místa tohoto výzkumu a jeho okolí – požáry, povodně, bitvy poblíž, panství, farnost, škola? Každé vyžádané místo je jedno sezení agenta; stojí to jeho čas i čerpání předplatného.",
2751
2828
  "ui.consent.history.places": "Hledat samo dějiny každého místa se souřadnicemi a jeho okolí – požáry, povodně, bitvy poblíž, panství, farnost, škola? Jedno sezení agenta na místo, v tempu dějin; stojí to čas agenta i čerpání předplatného.",
2752
- "ui.plan.history": "Dějiny míst: {what} – {when}.",
2829
+ "ui.plan.history": "Dějiny: {what} – {when}.",
2753
2830
  "ui.plan.history.now": "v příštím sezení",
2754
2831
  "ui.plan.history.places": "příští sezení – nejdřív zmapovat místa",
2755
2832
  "ui.plan.history.in": "za ~{n} sezení",
@@ -2777,13 +2854,24 @@
2777
2854
  "ui.link.history.place.done": "Dějiny místa {place} a okolí jsou ve frontě první.",
2778
2855
  "ui.link.history.place.now": "Spustit sezení hned?",
2779
2856
  "ui.link.history.place.none": "Místo {place} v tomto výzkumu není. Nic se neudělalo.",
2780
- "ui.link.history.off": "Hledání událostí dějin je pro tento výzkum vypnuté a dějiny místa se hledají jen při zapnutém. Nic se neudělalo.",
2857
+ "ui.link.history.off": "Dějiny míst jsou pro tento výzkum vypnuté, dějiny místa se proto nehledají. Nic se neudělalo.",
2781
2858
  "ui.link.what.experiment.places": "hledat samo dějiny každého místa se souřadnicemi a jeho okolí, jedno místo po druhém",
2782
2859
  "ui.link.experiment.places.count": "Míst se souřadnicemi: {n}, z nich už prohledaných: {done}.",
2783
2860
  "ui.link.experiment.places.on.done": "Dějiny jednotlivých míst se hledají samy, v tempu dějin.",
2784
2861
  "ui.link.experiment.places.on.already": "Dějiny jednotlivých míst se už hledají samy. Nic se neudělalo.",
2785
2862
  "ui.link.experiment.places.off.done": "Dějiny jednotlivých míst se v tomto výzkumu už samy nehledají; co se našlo, zůstane, a místo na požádání se hledá dál.",
2786
2863
  "ui.link.experiment.places.off.already": "Dějiny jednotlivých míst se v tomto výzkumu samy nehledají. Nic se neudělalo.",
2864
+ "ui.link.what.experiment.regions": "hledat události dějin v regionech tohoto stromu – války, epidemie, sčítání, změny státu",
2865
+ "ui.link.what.experiment.placeHistory": "hledat dějiny místa, když se o ně požádá – požáry, povodně, bitvy v okolí, panství, farnost, škola",
2866
+ "ui.link.experiment.placeHistory.note": "Místo se hledá, jen když se o ně požádá (v aplikaci Strom nebo v menu); každé místo samo, jen když je zapnuté i to.",
2867
+ "ui.link.experiment.regions.on.done": "Dějiny regionů se v tomto výzkumu hledají.",
2868
+ "ui.link.experiment.regions.on.already": "Dějiny regionů se v tomto výzkumu hledají už. Nic se neudělalo.",
2869
+ "ui.link.experiment.regions.off.done": "Dějiny regionů jsou pro tento výzkum vypnuté; co se našlo, zůstává.",
2870
+ "ui.link.experiment.regions.off.already": "Dějiny regionů jsou pro tento výzkum vypnuté už. Nic se neudělalo.",
2871
+ "ui.link.experiment.placeHistory.on.done": "Dějiny míst jsou pro tento výzkum zapnuté.",
2872
+ "ui.link.experiment.placeHistory.on.already": "Dějiny míst jsou pro tento výzkum zapnuté už. Nic se neudělalo.",
2873
+ "ui.link.experiment.placeHistory.off.done": "Dějiny míst jsou pro tento výzkum vypnuté; co se našlo, zůstává.",
2874
+ "ui.link.experiment.placeHistory.off.already": "Dějiny míst jsou pro tento výzkum vypnuté už. Nic se neudělalo.",
2787
2875
  "ui.error.archive.permission": "stahování snímků z archivu {title} ({hosts}) čeká na rozhodnutí – podmínky archivu automatické stahování omezují; z archivu se nic nestahovalo",
2788
2876
  "ui.error.archive.permission.new": "stahování snímků z archivu {title} ({hosts}) čeká na rozhodnutí – čtení podmínek stahovačem zatím nikdo nepotvrdil; z archivu se nic nestahovalo",
2789
2877
  "ui.error.archive.permission.hint": "rozhodnout v menu strom (Co čeká), nebo v terminálu: strom allow archive {host} --way {ways}",
@@ -2931,6 +3019,57 @@
2931
3019
  "ui.fixes.estimate.direct": "Sporná a přímá linie: {part} · {level} · {calls} volání čtenáře · asi {minutes} min",
2932
3020
  "ui.fixes.reader.before": " · četl je už dřív",
2933
3021
  "ui.fixes.reader.other": " · doporučeno: jiný, než který četl dřív",
3022
+ "ui.fixes.title.archive": "Opravy: co v tomto výzkumu zanechaly dřívější verze stromu",
3023
+ "ui.fixes.participant-names.name": "Jména kmotrů a svědků s tím, co zápis uvádí u nich",
3024
+ "ui.fixes.participant-names.what": "Před stromem {since} mohlo jméno kmotra, svědka nebo jiného účastníka obsahovat i to, co zápis uvádí u něj – stav, povolání, obec, číslo domu. Od té doby stojí jméno samo a zbytek je jeho poznámka: hledání, duplicity i aplikace Strom čtou jen jméno.",
3025
+ "ui.fixes.participant-names.found": "Nalezeno: {found, plural, one {# účastník} few {# účastníci} other {# účastníků}}, jejichž jméno obsahuje víc než jméno – {split} lze rozdělit podle pravidel, {unsplit} zůstane, jak je (nedá se určit jistě)",
3026
+ "ui.fixes.participant-names.example": " {event} · {role} · {before} → {name}{note}",
3027
+ "ui.fixes.participant-names.note": " · poznámka: {note}",
3028
+ "ui.fixes.participant-names.more": " … a {n} dalších: strom fixes show {id} --json",
3029
+ "ui.fixes.participant-names.does": "Oprava: každé jméno se podle pravidel rozdělí – jméno samo, s tituly; zbytek za poznámku, kterou účastník měl. Jeden krok historie, zdarma, nic se nikam neposílá; strom fixes undo {id} vrátí všechna jména, jak byla.",
3030
+ "ui.fixes.participant-names.not": "Nic se nesmaže: žádné slovo jména se neztratí a nikdo se nespojí s osobou stromu. Jména, která se nedají určit jistě, zůstanou, jak jsou.",
3031
+ "ui.fixes.participant-names.ask": "Mají se jména rozdělit?",
3032
+ "ui.fixes.participant-names.all": "Ano: rozdělit {n, plural, one {# jméno} few {# jména} other {# jmen}}",
3033
+ "ui.fixes.participant-names.done": "Rozděleno: {n, plural, one {# jméno} few {# jména} other {# jmen}} v {records, plural, one {# záznamu} few {# záznamech} other {# záznamech}}. Vrátit, jak byla: strom fixes undo {id}",
3034
+ "ui.fixes.participant-names.undone": "Vráceno, jak bylo: {n, plural, one {# jméno} few {# jména} other {# jmen}}{left}",
3035
+ "ui.fixes.participant-names.left": " · {n, plural, one {# se mezitím změnilo, ponecháno} few {# se mezitím změnila, ponechána} other {# se mezitím změnilo, ponecháno}}",
3036
+ "ui.fixes.participant-names.nothing": "Není co vracet: jména se nerozdělovala, nebo už jsou zpět, jak byla.",
3037
+ "ui.fixes.state.pending.participants": "{count, plural, one {# jméno čeká} few {# jména čekají} other {# jmen čeká}} na rozhodnutí",
3038
+ "ui.doc.fixes.pending.participants": "{name}: {count, plural, one {# jméno čeká} few {# jména čekají} other {# jmen čeká}} na rozhodnutí",
3039
+ "ui.fixes.app-shapes.name": "Období a věk z aplikace Strom brané jako úprava",
3040
+ "ui.fixes.app-shapes.what": "Před stromem {since} brala synchronizace z aplikace Strom jako úpravu období, které aplikace vrátila jako rozpětí (FROM … TO … jako BET … AND …), a věk bez nulových jednotek (0y 2m 26d jako 2m 26d): vznikl rozpor „úprava uživatele“ nebo údaj vedle stejného údaje výzkumu. Od té doby platí tvar výzkumu.",
3041
+ "ui.fixes.app-shapes.found": "Nalezeno: {found, plural, one {# věc} few {# věci} other {# věcí}} ze synchronizací, které se od výzkumu liší jen tímto",
3042
+ "ui.fixes.app-shapes.example.conflict": " {input} · {id} rozpor · {owner} · {ours} ↔ {theirs}",
3043
+ "ui.fixes.app-shapes.example.added": " {input} · {id} přidáno · {owner} · {theirs} = {ours}",
3044
+ "ui.fixes.app-shapes.example.corrected": " {input} · {id} změněno · {owner} · {theirs} → {ours}",
3045
+ "ui.fixes.app-shapes.more": " … a {n} dalších: strom fixes show {id} --json",
3046
+ "ui.fixes.app-shapes.does": "Oprava: každý rozpor se uzavře pro údaj výzkumu, každý takto přidaný údaj se stáhne (vlastní údaj výzkumu se vrátí, kde ho synchronizace stáhla), každé takto změněné datum či věk se vrátí. Jeden krok historie, zdarma, nic se nikam neposílá; strom fixes undo {id} vrátí stav po synchronizacích.",
3047
+ "ui.fixes.app-shapes.not": "Nic jiného se nemění: úprava vedle období nebo věku zůstává úpravou a nic se nesmaže.",
3048
+ "ui.fixes.app-shapes.ask": "Opravit, co synchronizace vzaly jako úpravu?",
3049
+ "ui.fixes.app-shapes.all": "Ano: opravit {n, plural, one {# věc} few {# věci} other {# věcí}}",
3050
+ "ui.fixes.app-shapes.done": "Opraveno: {n, plural, one {# věc} few {# věci} other {# věcí}} v {records, plural, one {# záznamu} few {# záznamech} other {# záznamech}}. Vrátit stav po synchronizacích: strom fixes undo {id}",
3051
+ "ui.fixes.app-shapes.undone": "Vrácen stav po synchronizacích: {n, plural, one {# věc} few {# věci} other {# věcí}}{left}",
3052
+ "ui.fixes.app-shapes.left": " · {n, plural, one {# se mezitím změnila, ponechána} few {# se mezitím změnily, ponechány} other {# se mezitím změnilo, ponecháno}}",
3053
+ "ui.fixes.app-shapes.nothing": "Není co vracet: nic se neopravovalo, nebo je už zpět stav po synchronizacích.",
3054
+ "ui.fixes.state.pending.findings": "{count, plural, one {# věc čeká} few {# věci čekají} other {# věcí čeká}} na rozhodnutí",
3055
+ "ui.doc.fixes.pending.findings": "{name}: {count, plural, one {# věc čeká} few {# věci čekají} other {# věcí čeká}} na rozhodnutí",
3056
+ "ui.fixes.street-places.name": "Ulice a čísla domů v místech údajů",
3057
+ "ui.fixes.street-places.what": "Před stromem {since} mohlo místo údaje obsahovat i ulici nebo číslo domu („Lhota, Dlouhá 12“): jedna obec pak byla několika místy – její záznam místa, historie místa, řádky v aplikaci Strom. Od té doby je místem obec a ulice s číslem jsou její dům.",
3058
+ "ui.fixes.street-places.found": "Nalezeno: {found, plural, one {# údaj} few {# údaje} other {# údajů}} s ulicí nebo číslem domu v místě – {split} lze opravit podle pravidel, {unsplit} zůstane, jak je (dům uvádí něco jiného)",
3059
+ "ui.fixes.street-places.example": " {event} · {before} → {place}{record}{house}",
3060
+ "ui.fixes.street-places.house": " · dům: {house}",
3061
+ "ui.fixes.street-places.kept": " {event} · {place} · dům {house}, místo uvádí {street}: zůstává, jak je",
3062
+ "ui.fixes.street-places.more": " … a {n} dalších: strom fixes show {id} --json",
3063
+ "ui.fixes.street-places.does": "Oprava: místem každého údaje bude obec, jak ji výzkum píše jinde, a ulice s číslem jeho domem, kde dům chybí (nebo je jen číslo). Jeden krok historie, zdarma, nic se nikam neposílá; strom fixes undo {id} vrátí všechna místa a domy, jak byly.",
3064
+ "ui.fixes.street-places.not": "Nic se nesmaže: žádné slovo místa se neztratí, už zapsaný dům zůstane a žádný záznam místa se neslučuje ani nemění.",
3065
+ "ui.fixes.street-places.ask": "Mají se ulice z míst přesunout do domů?",
3066
+ "ui.fixes.street-places.all": "Ano: opravit {n, plural, one {# údaj} few {# údaje} other {# údajů}}",
3067
+ "ui.fixes.street-places.done": "Opraveno: {n, plural, one {# údaj} few {# údaje} other {# údajů}} v {records, plural, one {# záznamu} few {# záznamech} other {# záznamech}}. Vrátit, jak bylo: strom fixes undo {id}",
3068
+ "ui.fixes.street-places.undone": "Vráceno, jak bylo: {n, plural, one {# údaj} few {# údaje} other {# údajů}}{left}",
3069
+ "ui.fixes.street-places.left": " · {n, plural, one {# se mezitím změnil, ponechán} few {# se mezitím změnily, ponechány} other {# se mezitím změnilo, ponecháno}}",
3070
+ "ui.fixes.street-places.nothing": "Není co vracet: místa se neopravovala, nebo už jsou zpět, jak byla.",
3071
+ "ui.fixes.state.pending.facts": "{count, plural, one {# údaj čeká} few {# údaje čekají} other {# údajů čeká}} na rozhodnutí",
3072
+ "ui.doc.fixes.pending.facts": "{name}: {count, plural, one {# údaj čeká} few {# údaje čekají} other {# údajů čeká}} na rozhodnutí",
2934
3073
  "fix.reread.what": "Porovnat dvě čtení {media}: dřívější {old} a nové {now} z ostřejší kopie",
2935
3074
  "fix.reread.why.differ": "Oprava stromu ({since}): místo se přečetlo znovu stejně jako dřív, z ostřejší kopie {from}, a čtení se liší — dřívější se četlo ze zmenšeného snímku.",
2936
3075
  "fix.reread.why.refined": "Oprava stromu ({since}): místo se přečetlo znovu stejně jako dřív, z ostřejší kopie {from}, a nové čtení přečetlo víc nebo jistěji — dřívější se četlo ze zmenšeného snímku.",