strom-research 1.18.0-beta.8 → 1.18.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 (47) hide show
  1. package/CHANGELOG.cs.md +35 -16
  2. package/CHANGELOG.de.md +44 -21
  3. package/CHANGELOG.md +38 -15
  4. package/assets/lang/cs.json +35 -11
  5. package/assets/lang/de.json +33 -9
  6. package/assets/method/core.md +2 -1
  7. package/dist/cli/context.js +2 -0
  8. package/dist/cli/main.js +3 -1
  9. package/dist/cli/menu.js +37 -7
  10. package/dist/cli/ui.js +28 -9
  11. package/dist/commands/analysis.js +5 -1
  12. package/dist/commands/guide.js +2 -1
  13. package/dist/commands/output.js +10 -6
  14. package/dist/commands/people.js +166 -5
  15. package/dist/commands/phone.js +2 -2
  16. package/dist/commands/read.js +5 -3
  17. package/dist/commands/readers.js +7 -1
  18. package/dist/commands/start.js +4 -2
  19. package/dist/commands/sync.js +15 -13
  20. package/dist/commands/trees.js +2 -1
  21. package/dist/core/actions.js +6 -1
  22. package/dist/core/changelog.js +53 -5
  23. package/dist/core/config.js +2 -2
  24. package/dist/core/damaged.js +251 -0
  25. package/dist/core/document.js +326 -41
  26. package/dist/core/edge.js +6 -2
  27. package/dist/core/excerpt.js +202 -28
  28. package/dist/core/import.js +4 -2
  29. package/dist/core/install.js +4 -2
  30. package/dist/core/live-read.js +3 -6
  31. package/dist/core/live.js +199 -25
  32. package/dist/core/phrases.js +5 -0
  33. package/dist/core/readsync.js +9 -3
  34. package/dist/core/retractions.js +205 -0
  35. package/dist/core/stromapp.js +25 -3
  36. package/dist/core/sync.js +53 -8
  37. package/dist/core/tree.js +1 -1
  38. package/dist/core/userpath.js +52 -0
  39. package/dist/core/validate.js +57 -1
  40. package/dist/gedcom/export.js +15 -3
  41. package/dist/gedcom/lines.js +63 -31
  42. package/dist/gedcom/validate.js +7 -2
  43. package/dist/runners/antigravity.js +35 -0
  44. package/dist/runners/codex.js +18 -6
  45. package/dist/runners/grok.js +9 -1
  46. package/dist/runners/opencode.js +43 -3
  47. 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.18.0
9
9
 
10
- *Připravuje se: bety do 1.18.0-beta.8. Oddíl bude úplný s vydáním.*
10
+ *21. 10. 2026 · patří k aplikaci Strom 3.14.0.*
11
11
 
12
12
  - **Fotky z telefonu nastojato.** Fotka otočená podle údaje EXIF se čte tak, jak se má dívat, nastojato; místa na ní
13
13
  vyznačená (výřezy, poloviny dvoustrany, uložená část) jsou místa obrázku, jak se ukazuje. Fotka sama zůstává, jak
@@ -16,14 +16,17 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
16
16
  na macOS, Windows i Linuxu — a originál zůstává, jak přišel. Fotka HEIC jde do aplikace Strom jako výřez JPEG.
17
17
  Kde obrázek na počítači nic nepřevede, řekne to jedna věta i s tím, co by pomohlo; `strom tidy` převedené obrázky
18
18
  po 30 dnech nebo nad 500 MB uklidí.
19
- - **Jeden dokument přečtený naráz.** `strom document read` přečte fotku, sken nebo PDF jednoho dokumentu — zápis
20
- z matriky, dopis, listinu, náhrobek, rub fotky: přepis slovo od slova, překlad, význam starých slov a zkratek
21
- a osoby, které jmenuje, i s tím, kdo ze stromu to může být. Nic se nedomýšlí: jméno, které v dokumentu není,
22
- vypadne — i příjmení, nikdy se nebere od otce ani z jiné rodiny —, co nejde přečíst, je označené; druhý čtenář
23
- může číst naslepo. Do stromu se z toho nic nezapíše samo. Dokument už přečtený to o sobě řekne, takže se omylem
24
- nečte podruhé. Dokument čtený znovu se ukazuje pod názvem svého souboru, nikdy pod kódem.
25
- Dokument poslaný z aplikace Strom najde agenta stejně jako terminál — i nainstalovaného do vlastní složky, přes npm
26
- nebo Homebrew — místo hlášení, že agent není nastavený.
19
+ - **Jeden dokument přečtený naráz.** `strom document read` přečte fotku, sken nebo PDF jednoho dokumentu — zápis z
20
+ matriky, dopis, listinu, náhrobek, rub fotky: přepis slovo od slova, překlad, význam starých slov a zkratek a osoby,
21
+ které jmenuje, i s tím, kdo ze stromu to může být. Nic se nedomýšlí: jméno, které v dokumentu není, vypadne — i
22
+ příjmení, nikdy se nebere od otce ani z jiné rodiny —, co nejde přečíst, je označené; druhý čtenář může číst naslepo.
23
+ Dokument na úředním formuláři, jako rodný list, si své osoby ponechá — dítě i oba rodiče s jejich podílem, i jméno a
24
+ příjmení psané proloženě a rodné příjmení po „roz.“ —, a dokument přečtený dřív je po aktualizaci ukáže, aniž by se
25
+ četl znovu. U každé osoby a události je i místo na stránce, kde stojí, takže aplikace Strom ukáže výřez každé z nich.
26
+ Do stromu se z toho nic nezapíše samo. Dokument už přečtený to o sobě řekne, takže se omylem nečte podruhé. Dokument
27
+ čtený znovu se ukazuje pod názvem svého souboru, nikdy pod kódem. Dokument poslaný z aplikace Strom najde agenta
28
+ stejně jako terminál — i nainstalovaného do vlastní složky, přes npm nebo Homebrew — místo hlášení, že agent není
29
+ nastavený. Čte ho každý agent, se kterým výzkum pracuje, s modelem a úsilím nastaveným pro výzkum.
27
30
  - **Fotky z telefonu.** `strom phone on`, které zapíná jen člověk, pustí k počítači telefon v domácí síti (Wi-Fi
28
31
  nebo kabel — nikdy mobilní síť ani VPN). Telefon se jednou spáruje přes QR kód; jeho stránka pak fotí nebo vybírá
29
32
  z galerie a posílá fotky celé do stromu výzkumu, s poznámkou a osobou, kterou ukazují — stejně jako „Přidat
@@ -38,13 +41,29 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
38
41
  posledního pohledu z telefonu (aspoň posledních 24 hodin, starší klepnutím) — nové osoby, prameny, nalezené, opravené
39
42
  či nově doložené údaje, vyřešené rozpory — nové zvýrazněné; co přibude při otevřené stránce, ukáže jen počet
40
43
  v názvu záložky a malý štítek.
41
- - **Souhlas v jednom jazyce.** Souhlas, který dává jen člověk (rozbalení výzkumu, odebrání stromu, odmítnuté okno),
42
- zazní celý v jazyce výzkumu, nic z něj nezůstane anglicky.
43
- - **Odmítnutá aktualizace.** Když se `strom update` odmítne, řekne, že se nic nenainstalovalo a která verze zůstává,
44
- a skončí chybovým kódem; nepovedená instalace se řekne také v jazyce výzkumu.
45
- - **Otázka i v terminálu.** Co otevírá počítač ven, stojí peníze nebo spouští cizí program – Remote Control,
46
- stahovače bez ptaní, podmínka práce agenta o samotě, hook, vlastní tempo archivu, propojení s telefonem, ladění
47
- čtení – se v terminálu ptá ano/ne; Enter znamená ne a `--yes` za člověka neodpoví.
44
+ - **Souhlas v jednom jazyce, otázka i v terminálu.** Souhlas, který dává jen člověk (rozbalení výzkumu, odebrání
45
+ stromu, odmítnuté okno), zazní celý v jazyce výzkumu. Co otevírá počítač ven, stojí peníze nebo spouští cizí program
46
+ – Remote Control, stahovače bez ptaní, podmínka práce agenta o samotě, hook, vlastní tempo archivu, propojení s
47
+ telefonem, ladění čtení – se ptá ano/ne i v terminálu; Enter znamená ne a `--yes` za člověka neodpoví. Když se
48
+ `strom update` odmítne, řekne, že se nic nenainstalovalo a která verze zůstává, a skončí chybovým kódem; nepovedená
49
+ instalace se řekne také v jazyce výzkumu.
50
+ - **Chybné jméno nebo poznámka odvolané.** `strom name retract` odvolá jméno špatně přečtené nebo přiřazené jinému
51
+ člověku, `strom note retract` poznámku a `strom note edit` ji opraví – u osoby, faktu i úkolu, vždy s důvodem; nic
52
+ se nemaže. Odvolané se už nikde neukazuje – ani agentovi, ani v GEDCOM, ani ve `strom find`, takže ho aplikace Strom
53
+ po načtení stromu neukáže a synchronizace ho nevrátí; `strom person show --history` řekne, co to bylo, kdy a proč, a
54
+ `strom name restore` nebo `strom note restore` ho vrátí.
55
+ - **Opravy z hlášení.** Rozloučení nabídky řekne, jak strom spustit znovu i tam, kde okno terminálu příkaz ještě nezná
56
+ (po instalaci jedním řádkem: v novém okně `strom`, v tomto plná cesta; plná cesta i tam, kde se na jméno ozve dřív
57
+ jiný `strom`), a když most pro aplikaci Strom běží dál, řekne to i s tím, jak ho zastavit; výběr rodokmenu v nabídce
58
+ jde vrátit nulou. Most už nedrží složku rodokmenu, takže ji jde na Windows smazat, a sám skončí, když rodokmen zmizí
59
+ (rodokmen smaže `strom trees remove`). Konec stromu, kde křest neuvádí otce, je uzavřený, jakmile na něm nic neběží
60
+ – už nečeká natrvalo na rozhodnutí. Pramen přejmenovaný v aplikaci Strom se přejmenuje i ve výzkumu a signatura nebo
61
+ strana pramene přijde do aplikace k prameni samému („Signatura / strana“), i když ho zatím nic necituje. Emoji nebo
62
+ jiný vzácný znak, který soubor z aplikace Strom cestou poškodil (ukáže se jako ��), není přejmenování ani změna
63
+ poznámky: výzkum si nechá svůj text. Místo nebo jiný údaj delší než řádek souboru GEDCOM (255 bajtů) už nezastaví
64
+ jeho zápis a žádné emoji se nerozdělí tam, kde dlouhý řádek pokračuje. S `excerpts.for all` dostane v aplikaci Strom
65
+ výřez i pramen, který zatím nikdo necituje, pokud se vedle citovaných vejde do limitu – citované se kvůli němu
66
+ nezmenší; co se nevešlo, se řekne.
48
67
 
49
68
  ## 1.17.0
50
69
 
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.18.0
9
9
 
10
- *In Vorbereitung: die Betas bis 1.18.0-beta.8. Der Abschnitt ist mit dem Release vollständig.*
10
+ *21.10.2026 · gehört zur Strom-App 3.14.0.*
11
11
 
12
12
  - **Handyfotos aufrecht.** Ein Foto, das nach seiner EXIF-Ausrichtung gedreht ist, wird gelesen, wie es gesehen
13
13
  werden soll, aufrecht; die darauf markierten Stellen (Ausschnitte, die Hälften einer Doppelseite, ein gespeicherter
@@ -16,16 +16,21 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
16
16
  umgewandelt — unter macOS, Windows und Linux —, das Original bleibt, wie es kam. Ein HEIC-Foto geht als
17
17
  JPEG-Ausschnitt in die Strom-App. Wo nichts auf dem Computer ein Bild umwandelt, sagt es ein Satz, auch was helfen
18
18
  würde; `strom tidy` räumt umgewandelte Bilder nach 30 Tagen oder über 500 MB weg.
19
- - **Ein Dokument auf einmal gelesen.** `strom document read` liest ein Foto, einen Scan oder eine PDF eines
20
- Dokuments — einen Matrikeleintrag, einen Brief, eine Urkunde, einen Grabstein, die Rückseite eines Fotos: die
21
- Abschrift Wort für Wort, ihre Übersetzung, was alte Wörter und Abkürzungen bedeuten, und die genannten Personen,
22
- samt wem im Stammbaum sie entsprechen können. Nichts wird ergänzt: ein Name, der nicht im Dokument steht, fällt
23
- weg — auch ein Nachname, nie vom Vater oder aus einer anderen Familie genommen —, Unleserliches wird markiert; ein
24
- zweiter Leser kann blind lesen. In den Stammbaum gelangt nichts von selbst. Ein schon gelesenes Dokument sagt es,
25
- so wird es nicht versehentlich ein zweites Mal gelesen. Ein erneut gelesenes Dokument wird unter dem Namen seiner
26
- Datei gezeigt, nie unter einem Code. Ein aus der Strom-App gesendetes Dokument findet den Agenten wie das Terminal —
27
- auch einen in einem eigenen Ordner, über npm oder Homebrew installierten —, statt zu melden, es sei kein Agent
28
- eingerichtet.
19
+ - **Ein Dokument auf einmal gelesen.** `strom document read` liest ein Foto, einen Scan oder eine PDF eines Dokuments —
20
+ einen Matrikeleintrag, einen Brief, eine Urkunde, einen Grabstein, die Rückseite eines Fotos: die Abschrift Wort für
21
+ Wort, ihre Übersetzung, was alte Wörter und Abkürzungen bedeuten, und die genannten Personen, samt wem im Stammbaum
22
+ sie entsprechen können. Nichts wird ergänzt: ein Name, der nicht im Dokument steht, fällt weg — auch ein Nachname, nie
23
+ vom Vater oder aus einer anderen Familie genommen —, Unleserliches wird markiert; ein zweiter Leser kann blind lesen.
24
+ Ein Dokument auf einem amtlichen Formular, etwa eine Geburtsurkunde, behält seine Personen — das Kind und beide Eltern
25
+ mit ihrem Anteil, auch ein gesperrt getippter Name und ein Geburtsname nach „geb.“ —, und ein früher gelesenes
26
+ Dokument zeigt sie nach dem Update, ohne erneut gelesen zu werden. Jede Person und jedes Ereignis kommt mit der Stelle
27
+ auf der Seite, an der es steht, so zeigt die Strom-App von jedem
28
+ einen eigenen Ausschnitt.
29
+ In den Stammbaum gelangt nichts von selbst. Ein schon gelesenes Dokument sagt es, so wird es nicht versehentlich ein
30
+ zweites Mal gelesen. Ein erneut gelesenes Dokument wird unter dem Namen seiner Datei gezeigt, nie unter einem Code.
31
+ Ein aus der Strom-App gesendetes Dokument findet den Agenten wie das Terminal — auch einen in einem eigenen Ordner,
32
+ über npm oder Homebrew installierten —, statt zu melden, es sei kein Agent eingerichtet. Jeder Agent, mit dem die
33
+ Forschung arbeitet, liest es, mit dem Modell und dem Aufwand, die für die Forschung eingestellt sind.
29
34
  - **Fotos vom Handy.** `strom phone on`, das nur ein Mensch einschaltet, lässt ein Handy im Heimnetz (WLAN oder
30
35
  Kabel — nie ein Mobilfunknetz oder ein VPN) zu diesem Computer. Das Handy wird einmal per QR-Code gekoppelt; seine
31
36
  Seite fotografiert dann oder wählt aus der Galerie und schickt die Fotos ganz in einen Stammbaum der Forschung, mit
@@ -43,16 +48,34 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
43
48
  Handy gefunden hat (mindestens die letzten 24 Stunden, ältere auf Antippen) — neue Personen, Quellen, gefundene,
44
49
  korrigierte oder neu belegte Angaben, geklärte Widersprüche —, die neuen hervorgehoben; was bei offener Seite
45
50
  hinzukommt, zeigt nur eine Zahl im Titel des Tabs und ein kleines Etikett.
46
- - **Eine Zustimmung in einer Sprache.** Eine Zustimmung, die nur ein Mensch gibt (eine Forschung entpacken, einen
47
- Stammbaum entfernen, ein abgelehntes Fenster), steht ganz in der Sprache der Forschung, nichts davon bleibt
48
- Englisch.
49
- - **Ein abgelehntes Update.** Wird `strom update` abgelehnt, sagt es, dass nichts installiert wurde und welche
50
- Version bleibt, und endet mit einem Fehlercode; eine misslungene Installation wird auch in der Sprache der
51
- Forschung gesagt.
52
- - **Auch im Terminal gefragt.** Was den Computer nach außen öffnet, Geld kostet oder ein fremdes Programm startet –
53
- Remote Control, Downloader ohne Rückfrage, die Bedingung für den Agenten allein, ein Hook, ein eigenes Tempo eines
54
- Archivs, die Verbindung mit dem Telefon, das Abstimmen des Lesens – fragt auch im Terminal Ja oder Nein; Enter
55
- heißt Nein, `--yes` antwortet nie dafür.
51
+ - **Eine Zustimmung in einer Sprache, auch im Terminal gefragt.** Eine Zustimmung, die nur ein Mensch gibt (eine
52
+ Forschung entpacken, einen Stammbaum entfernen, ein abgelehntes Fenster), steht ganz in der Sprache der Forschung.
53
+ Was den Computer nach außen öffnet, Geld kostet oder ein fremdes Programm startet – Remote Control, Downloader ohne
54
+ Rückfrage, die Bedingung für den Agenten allein, ein Hook, ein eigenes Tempo eines Archivs, die Verbindung mit dem
55
+ Telefon, das Abstimmen des Lesens – fragt auch im Terminal Ja oder Nein; Enter heißt Nein, `--yes` antwortet nie
56
+ dafür. Wird `strom update` abgelehnt, sagt es, dass nichts installiert wurde und welche Version bleibt, und endet
57
+ mit einem Fehlercode; eine misslungene Installation wird auch in der Sprache der Forschung gesagt.
58
+ - **Ein falscher Name oder eine falsche Notiz zurückgezogen.** `strom name retract` zieht einen falsch gelesenen oder
59
+ der falschen Person gegebenen Namen zurück, `strom note retract` eine Notiz, und `strom note edit` berichtigt eine –
60
+ bei einer Person, einem Fakt oder einer Aufgabe, jeweils mit Grund; nichts wird gelöscht. Was zurückgezogen ist,
61
+ zeigt sich nirgends mehr – nicht dem Agenten, nicht im GEDCOM oder in `strom find`, so dass die Strom-App es nach
62
+ dem Laden des Stammbaums nicht mehr zeigt und ein Abgleich es nie zurückbringt; `strom person show --history` sagt,
63
+ was es war, wann und warum, und `strom name restore` oder `strom note restore` holt es zurück.
64
+ - **Korrekturen aus Meldungen.** Der Abschied des Menüs sagt, wie strom wieder startet, wo das Terminalfenster den
65
+ Befehl noch nicht kennt (nach der Installation mit einer Zeile: `strom` in einem neuen Fenster, in diesem der volle
66
+ Pfad; der volle Pfad auch, wo zuerst ein anderes `strom` auf den Namen antwortet), und sagt, wenn die Brücke für die
67
+ Strom-App weiterläuft, auch, wie sie zu beenden ist; die Wahl des Stammbaums im Menü geht mit 0 zurück. Die Brücke
68
+ hält den Ordner des Stammbaums nicht mehr fest, so dass Windows ihn löschen kann, und endet von selbst, sobald der
69
+ Stammbaum weg ist (einen Stammbaum löscht `strom trees remove`). Ein Ende des Baums, wo die Taufe keinen Vater
70
+ nennt, ist ein geschlossenes Ende, sobald nichts mehr daran läuft – es wartet nicht mehr für immer auf eine
71
+ Entscheidung. Eine in der Strom-App umbenannte Quelle heißt auch in der Forschung neu, und Signatur oder Seite einer
72
+ Quelle kommen in der App bei der Quelle selbst an, auch bevor etwas sie zitiert. Ein Emoji oder ein anderes seltenes
73
+ Zeichen, das die Datei der Strom-App unterwegs beschädigt hat (als �� zu sehen), ist keine Umbenennung und keine
74
+ geänderte Notiz: Die Forschung behält ihren Text. Ein Ort oder ein anderer Wert, länger als eine Zeile der
75
+ GEDCOM-Datei (255 Bytes), hält das Schreiben der Datei nicht mehr auf, und kein Emoji wird dort geteilt, wo eine
76
+ lange Zeile weitergeht. Mit `excerpts.for all` bekommt auch eine Quelle, die noch niemand zitiert, in der Strom-App
77
+ ihren Ausschnitt, soweit er neben den zitierten unter die Grenze passt – die zitierten werden dafür nie kleiner; was
78
+ nicht passte, wird gesagt.
56
79
 
57
80
  ## 1.17.0
58
81
 
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.18.0
9
9
 
10
- *In preparation: the betas up to 1.18.0-beta.8. The section is complete with the release.*
10
+ *2026-10-21 · goes with the Strom app 3.14.0.*
11
11
 
12
12
  - **Phone photos upright.** A photo turned by its EXIF orientation is read as it is meant to be seen, upright; the
13
13
  places marked on it (excerpts, the halves of a spread, a cut-out part) are of the picture as it is shown. The
@@ -18,12 +18,17 @@ The changes of each version in short. The full notes and the install lines are o
18
18
  help; `strom tidy` clears the converted pictures away after 30 days or above 500 MB.
19
19
  - **One document read at once.** `strom document read` reads a photo, a scan or a PDF of one document — a register
20
20
  entry, a letter, a deed, a gravestone, the back of a photo: the transcript word for word, its translation, what its
21
- old words and abbreviations mean, and the people it names, with who of the tree they may be. Nothing is filled in:
22
- a name the document does not have is left out — a surname too, never taken from a father or another family —,
23
- what cannot be read is marked; a second reader can read it blind. Nothing of it enters the tree by itself. A
24
- document read already says so, so it is not read a second time by mistake. A document read again is shown under
25
- the name of its file, never a code. A document sent from the Strom app finds the agent as the terminal does — one
26
- installed in a folder of its own, by npm or Homebrew too — instead of saying no agent is set up.
21
+ old words and abbreviations mean, and the people it names, with who of the tree they may be. Nothing is filled in: a
22
+ name the document does not have is left out — a surname too, never taken from a father or another family —, what
23
+ cannot be read is marked; a second reader can read it blind. A
24
+ document on a printed form, as a birth certificate, keeps its people — the child and both parents with their part in
25
+ it, their names typed letter-spaced and a mother's birth name after "née" or "roz." too —, and a document read before
26
+ shows them after the update with nothing read again. Each person and event it names comes with the place on the page
27
+ where it stands, so the Strom app shows each its own excerpt. Nothing of it enters the tree by itself. A document read
28
+ already says so, so it is not read a second time by mistake. A document read again is shown under the name of its
29
+ file, never a code. A document sent from the Strom app finds the agent as the terminal does — one installed in a
30
+ folder of its own, by npm or Homebrew too — instead of saying no agent is set up. Every agent the research works with
31
+ reads it, with the model and effort set for the research.
27
32
  - **Photos from a phone.** `strom phone on`, turned on by the person alone, lets a phone on the home network (Wi-Fi
28
33
  or a cable — never a mobile network or a VPN) reach this computer. The phone is paired once by its QR code; its
29
34
  page then takes photos or picks them from the gallery and sends them whole into a tree of the research, with a
@@ -39,14 +44,32 @@ The changes of each version in short. The full notes and the install lines are o
39
44
  it is not this one). Finds, under Now, say what the research found since the phone looked last (the last 24 hours
40
45
  at least, older ones on a tap) — new people, sources, facts found, corrected or newly cited, conflicts resolved —
41
46
  the new ones marked; something new while the page is open shows only as a count in the tab's title and a small label.
42
- - **A consent in one language.** A consent only a person gives (unpacking a research, removing a tree, a window said
43
- no to) is said whole in the research's language, nothing of it left in English.
44
- - **An update said no to.** When `strom update` is declined, it says nothing was installed and which version stays,
45
- and ends with an error code; a failed install is said in the research's language too.
46
- - **Asked in the terminal too.** What opens the computer outward, costs money or runs another's program — Remote
47
- Control, downloaders without asking first, the condition of the agent working alone, a hook, an archive's own pace,
48
- the phone connection, tuning the reading — asks yes or no in the terminal as well; Enter says no, `--yes` never
49
- answers it.
47
+ - **A consent in one language, asked in the terminal too.** A consent only a person gives (unpacking a research,
48
+ removing a tree, a window said no to) is said whole in the research's language. What opens the computer outward,
49
+ costs money or runs another's program — Remote Control, downloaders without asking first, the condition of the agent
50
+ working alone, a hook, an archive's own pace, the phone connection, tuning the reading — asks yes or no in the
51
+ terminal as well; Enter says no, `--yes` never answers it. When `strom update` is declined, it says nothing was
52
+ installed and which version stays, and ends with an error code; a failed install is said in the research's language
53
+ too.
54
+ - **A wrong name or note taken back.** `strom name retract` takes back a name misread or given to the wrong person,
55
+ `strom note retract` a note, and `strom note edit` corrects one — of a person, a fact or a task, each with its
56
+ reason; nothing is deleted. What is taken back is shown nowhere any more — not to the agent, not in the GEDCOM or
57
+ `strom find`, so the Strom app no longer shows it once it loads the tree, and a sync never brings it back; `strom
58
+ person show --history` says what it was, when and why, and `strom name restore` or `strom note restore` puts it
59
+ back.
60
+ - **Fixes from reports.** The menu's goodbye says how to start strom again where the terminal window does not know the
61
+ command yet (after the one-line install: `strom` in a new window, the full path in this one; the full path also
62
+ where another `strom` answers the name first), and says when the Strom app's bridge goes on running and how to stop
63
+ it; the menu's choice of a family tree goes back with 0. The bridge no longer holds the family tree's folder, so
64
+ Windows can delete it, and ends by itself once the tree is gone (`strom trees remove` deletes a tree). An end of the
65
+ tree where the baptism names no father is a closed end once nothing runs on it, no longer waiting for a decision for
66
+ good. A source renamed in the Strom app is renamed in the research too, and a source's call number or page reaches
67
+ the app on the source itself, also before anything cites it. An emoji or another rare sign the Strom app's file
68
+ damaged on its way (shown as ��) is no rename and no changed note: the research keeps its text. A place or another
69
+ value longer than a line of the GEDCOM file (255 bytes) no longer stops the file from being written, and no emoji is
70
+ split where a long line goes on. With `excerpts.for all` a source nobody cites yet gets its excerpt in the Strom app
71
+ too, wherever it fits under the limit beside the cited ones, which never get smaller for it; what did not fit is
72
+ said.
50
73
 
51
74
  ## 1.17.0
52
75
 
@@ -101,6 +101,9 @@
101
101
  "ui.menu.newtree": "Založit rodokmen · poslat nebo přijmout",
102
102
  "ui.menu.quit": "Konec",
103
103
  "ui.menu.bye": "Na shledanou. Příště stačí spustit: {strom}",
104
+ "ui.menu.bye.new": "Na shledanou. V novém okně terminálu stačí spustit: {strom} – v tomto okně: {path}",
105
+ "ui.menu.bye.path": "Na shledanou. Příště stačí spustit: {path}",
106
+ "ui.menu.bye.live": "Most pro aplikaci Strom běží dál na pozadí; zastavit: {strom} live stop",
104
107
  "ui.run.how": "Kolik úkolů? (skončí dřív, když už nebude co dělat; 0 vrátí zpět)",
105
108
  "ui.run.start": "Agent teď pracuje sám. Zastaví ho klávesy Ctrl-C – nic se neztratí.",
106
109
  "ui.waiting.none": "Nic nečeká.",
@@ -673,6 +676,7 @@
673
676
  "sync.verify.done": "každý záznam dohledaný a přečtený nezávisle (snímek zaregistrovaný, strom read M… --blind): čtení se shodují → poznámka u pramene a údaje zůstávají; liší se → rozpor s oběma čteními",
674
677
  "sync.reading.note": "Uživatel přečetl tento záznam v aplikaci Strom jinak ({source}); čtení výzkumu platí, dokud se záznam nepřečte znovu:",
675
678
  "sync.reading.page": "strana",
679
+ "sync.title.note": "Přejmenováno v aplikaci Strom ({source}), výzkum ho mezitím přejmenoval také; platí název výzkumu – název v aplikaci:",
676
680
  "sync.reading.text": "přepis",
677
681
  "read.note.source.edited": "Přepis byl upraven v aplikaci Strom; čtení {read} má: {text}",
678
682
  "read.note.edited": "Přepis byl upraven v aplikaci Strom: vodítko, dokud se záznam nepřečte ({read})",
@@ -796,6 +800,8 @@
796
800
  "ui.app.images.unclipped": "{n, plural, one {Další # pramen je na snímcích, ale u něj} few {Další # prameny jsou na snímcích, ale u nich} other {Dalších # pramenů je na snímcích, ale u nich}} zatím nikdo nevyznačil, kde zápis je — agent to umí doplnit.",
797
801
  "ui.app.images.smaller": "Aby se obrázky vešly do limitu {limit} MB, jsou menší, než je nastaveno: kvalita {level}, nastavena {asked}.",
798
802
  "ui.app.images.left": "{n, plural, one {# zápis nejdál od výzkumu je} few {# zápisy nejdál od výzkumu jsou} other {# zápisů nejdál od výzkumu je}} bez obrázku, aby se vše vešlo do limitu {limit} MB.",
803
+ "ui.app.images.uncited": "{n, plural, one {# zápis, který ve výzkumu nikdo necituje, je} few {# zápisy, které ve výzkumu nikdo necituje, jsou} other {# zápisů, které ve výzkumu nikdo necituje, je}} bez obrázku: vedle citovaných už pod limitem {limit} MB nezbylo místo.",
804
+ "ui.app.images.uncitedOut": "{n, plural, one {# zápis, který ve výzkumu nikdo necituje, v souboru není} few {# zápisy, které ve výzkumu nikdo necituje, v souboru nejsou} other {# zápisů, které ve výzkumu nikdo necituje, v souboru není}} (všechny: nastavení excerpts.for all).",
799
805
  "ui.app.images.scope": "{n, plural, one {# zápis lidí vzdálenějších od výzkumu je} few {# zápisy lidí vzdálenějších od výzkumu jsou} other {# zápisů lidí vzdálenějších od výzkumu je}} bez obrázku (nastavení excerpts.for: {for}).",
800
806
  "ui.doc.installed": "strom {version} na vlastním Node {node} (oficiálním, z nodejs.org)",
801
807
  "ui.update.source": "Vyšla nová verze: {version}. Tento strom běží ze zdrojáků: git pull",
@@ -902,6 +908,12 @@
902
908
  "ui.show.children": "děti",
903
909
  "ui.show.notes": "poznámky",
904
910
  "ui.show.note": "poznámka",
911
+ "ui.show.history": "historie",
912
+ "ui.show.history.name": "jméno {name} odvoláno {at} ({by}): {reason}",
913
+ "ui.show.history.note": "poznámka odvolána {at} ({by}): {reason} — {text}",
914
+ "ui.show.history.edit": "poznámka opravena {at} ({by}): {reason} — předtím: {text}",
915
+ "ui.show.history.more": "odvoláno nebo opraveno: {n} — strom person show {id} --history",
916
+ "ui.show.history.none": "nic odvoláno ani opraveno",
905
917
  "ui.show.none": "(žádné)",
906
918
  "ui.show.unknown": "(zatím neznámo)",
907
919
  "ui.show.nopartners": "(partneři zatím neznámí)",
@@ -913,7 +925,7 @@
913
925
  "ui.show.age": "věk {age}",
914
926
  "ui.show.ages": "věk {ages}",
915
927
  "ui.show.with": "uvedeni: {who}",
916
- "ui.show.retracted": "(staženo: {reason})",
928
+ "ui.show.retracted": "(odvoláno: {reason})",
917
929
  "ui.show.relof": "{rel} u {who}",
918
930
  "ui.show.sex.M": "muž",
919
931
  "ui.show.sex.F": "žena",
@@ -970,7 +982,7 @@
970
982
  "ui.help.cmd.init": "Založit nový rodokmen",
971
983
  "ui.help.cmd.trees": "Rodokmeny na tomto počítači",
972
984
  "ui.help.cmd.trees.use": "Pracovat na jiném rodokmenu",
973
- "ui.help.cmd.trees.remove": "Odebrat rodokmen z tohoto počítače (nejdřív nabídne zálohu)",
985
+ "ui.help.cmd.trees.remove": "Odebrat rodokmen z tohoto počítače – takto se rodokmen maže (do koše, nejdřív nabídne zálohu)",
974
986
  "ui.help.cmd.lang": "Jazyk výzkumu",
975
987
  "ui.help.cmd.mode": "Výzkum s agentem, nebo jen Archiv Stromu s daty z aplikace Strom: ukázat, nebo přepnout",
976
988
  "ui.help.cmd.chat": "Rozhovor s agentem o výzkumu",
@@ -1000,7 +1012,7 @@
1000
1012
  "ui.help.cmd.app": "Otevřít výzkum v aplikaci Strom",
1001
1013
  "ui.help.cmd.app.install": "Nainstalovat aplikaci Strom z prohlížeče",
1002
1014
  "ui.help.cmd.live.start": "Nechat aplikaci Strom sledovat výzkum živě",
1003
- "ui.help.cmd.live.stop": "Ukončit živé sledování výzkumu",
1015
+ "ui.help.cmd.live.stop": "Ukončit živé sledování výzkumu (most pro aplikaci Strom běží na pozadí i po zavření nabídky)",
1004
1016
  "ui.help.cmd.export.gedcom": "Uložit rodokmen jako soubor GEDCOM",
1005
1017
  "ui.help.cmd.pack": "Zabalit výzkum do jednoho souboru ZIP, aby v něm mohl pokračovat někdo jiný",
1006
1018
  "ui.help.cmd.unpack": "Rozbalit rodokmen, který někdo poslal",
@@ -1166,6 +1178,7 @@
1166
1178
  "ui.sync.source.changed": "{n}. pramen z aplikace „{text}“: opravený přepis nebo stránka",
1167
1179
  "ui.sync.source.reading": "{n}. pramen výzkumu „{text}“: v aplikaci přečtený jinak",
1168
1180
  "ui.sync.source.verified": "{n}. pramen z aplikace „{text}“: přepis ověřen",
1181
+ "ui.sync.source.title": "{n}. pramen „{old}“: přejmenovaný na „{new}“",
1169
1182
  "ui.sync.fact.cite": "{n}. {who}: {fact} — pramen z aplikace k údaji",
1170
1183
  "ui.sync.fact.part": "{n}. {who}: {kind} {when} — {role}: {part}",
1171
1184
  "ui.sync.fact.part.link": "{n}. {who}: {kind} {when} — {role} {part}: osoba ze stromu",
@@ -1188,6 +1201,9 @@
1188
1201
  "ui.sync.do.source.reading": "uloží se vedle čtení výzkumu; výzkum záznam přečte znovu",
1189
1202
  "ui.sync.do.source.verified": "čtení z aplikace platí: údaje, které stojí jen na něm, se stanou doloženými",
1190
1203
  "ui.sync.do.source.verified.read": "čtení z aplikace platí: údaje, které stojí jen na něm, se stanou doloženými",
1204
+ "ui.sync.do.source.title": "přejmenuje se (název výzkumu zůstane v historii)",
1205
+ "ui.sync.do.source.title.user": "platí název z aplikace (název výzkumu zůstane v historii)",
1206
+ "ui.sync.do.source.title.beside": "výzkum ho přejmenoval také: jeho název zůstává, název z aplikace se uloží vedle do poznámky",
1191
1207
  "ui.sync.do.fact.cite": "údaj výzkumu ho bude citovat (vodítko, dokud záznam nepřečte výzkum)",
1192
1208
  "ui.sync.do.fact.cite.read": "údaj výzkumu ho bude citovat a stojí na čtení záznamu z aplikace",
1193
1209
  "ui.sync.do.reading": "přidá se na čtení záznamu z aplikace",
@@ -1299,12 +1315,12 @@
1299
1315
  "ui.phone.qr.url": "adresa pod kódem: {url}",
1300
1316
  "ui.phone.qr.more": "další adresa tohoto počítače: strom phone qr --address {url}",
1301
1317
  "ui.phone.qr.off": "propojení s telefonem je vypnuté: QR kód žádný (strom phone on)",
1302
- "ui.phone.qr.app": "QR kód ke spárování telefonu: v aplikaci Strom (Výzkum → Připojit telefon…), nebo strom phone qr v terminálu",
1318
+ "ui.phone.qr.app": "QR kód ke spárování telefonu: v aplikaci Strom (Výzkum → Další → Připojit telefon…), nebo strom phone qr v terminálu",
1303
1319
  "ui.phone.notturned": "propojení s telefonem: nezapnuto, nic se nezměnilo",
1304
1320
  "ui.error.phone.off": "propojení s telefonem je vypnuté",
1305
- "ui.error.phone.off.hint": "zapíná se příkazem strom phone on v terminálu, nebo v aplikaci Strom (Výzkum → Připojit telefon…)",
1321
+ "ui.error.phone.off.hint": "zapíná se příkazem strom phone on v terminálu, nebo v aplikaci Strom (Výzkum → Další → Připojit telefon…)",
1306
1322
  "ui.error.phone.qr-terminal": "QR kód ke spárování telefonu se ukazuje jen v terminálu nebo v aplikaci Strom",
1307
- "ui.error.phone.qr-terminal.hint": "strom phone qr v terminálu, nebo Výzkum → Připojit telefon… v aplikaci Strom",
1323
+ "ui.error.phone.qr-terminal.hint": "strom phone qr v terminálu, nebo Výzkum → Další → Připojit telefon… v aplikaci Strom",
1308
1324
  "ui.error.phone.address": "server telefonu na tomto počítači nemá adresu {address}",
1309
1325
  "ui.error.phone.address.hint": "jeho adresy: {addresses}",
1310
1326
  "ui.phone.page.title": "Výzkum Strom",
@@ -1312,14 +1328,14 @@
1312
1328
  "ui.phone.page.paired.title": "Spárováno",
1313
1329
  "ui.phone.page.paired": "Telefon je spárovaný s výzkumem na počítači. Spárovaný zůstane, dokud se na počítači neodpojí.",
1314
1330
  "ui.phone.page.expired.title": "Kód už neplatí",
1315
- "ui.phone.page.expired": "QR kód spáruje jeden telefon a platí 10 minut. Nový ukáže aplikace Strom na počítači (Výzkum → Připojit telefon…).",
1331
+ "ui.phone.page.expired": "QR kód spáruje jeden telefon a platí 10 minut. Nový ukáže aplikace Strom na počítači (Výzkum → Další → Připojit telefon…).",
1316
1332
  "ui.phone.page.unreachable.title": "Počítač neodpovídá",
1317
1333
  "ui.phone.page.unreachable": "Je počítač zapnutý, propojení s telefonem zapnuté a telefon ve stejné Wi-Fi?",
1318
1334
  "ui.phone.page.retry": "Zkusit znovu",
1319
1335
  "ui.phone.page.unpaired.title": "Telefon není spárovaný s tímto počítačem",
1320
1336
  "ui.phone.page.unpaired.why": "Telefon byl na počítači odpojen, nebo se změnila adresa počítače, nebo je stránka otevřená bez QR kódu.",
1321
- "ui.phone.page.unpaired.how": "Na počítači v aplikaci Strom: Výzkum → Připojit telefon a načíst QR kód.",
1322
- "ui.phone.page.unpaired.howHome": "V ikoně na ploše QR kód načíst nejde. Stránku otevřít v prohlížeči telefonu (Safari, Chrome) načtením QR kódu fotoaparátem (na počítači v aplikaci Strom: Výzkum → Připojit telefon) a odtud ikonu na plochu přidat znovu.",
1337
+ "ui.phone.page.unpaired.how": "Na počítači v aplikaci Strom: Výzkum → Další → Připojit telefon a načíst QR kód.",
1338
+ "ui.phone.page.unpaired.howHome": "V ikoně na ploše QR kód načíst nejde. Stránku otevřít v prohlížeči telefonu (Safari, Chrome) načtením QR kódu fotoaparátem (na počítači v aplikaci Strom: Výzkum → Další → Připojit telefon) a odtud ikonu na plochu přidat znovu.",
1323
1339
  "ui.phone.page.unpaired.queue": "{n, plural, one {# neodeslaná fotka čeká v tomto telefonu} few {# neodeslané fotky čekají v tomto telefonu} other {# neodeslaných fotek čeká v tomto telefonu}}",
1324
1340
  "ui.phone.page.unpaired.queueBody": "Po novém spárování s tímto počítačem se odešlou samy.",
1325
1341
  "ui.phone.page.ago.s": "před {n} s",
@@ -1513,6 +1529,8 @@
1513
1529
  "ui.export.quality.smaller": "nejnižší",
1514
1530
  "ui.export.images.smaller": " POZOR: zmenšeno, aby se vešlo do limitu {mb} MB: kvalita {level}, nastavena {asked} — víc místa: --images-max-mb <n> (strom config set excerpts.mb <n>)",
1515
1531
  "ui.export.images.dropped": " POZOR: vynecháno, aby se vešlo do limitu {mb} MB, nejdřív nejvzdálenější od výzkumu: {n, plural, one {# pramen} few {# prameny} other {# pramenů}} ({ids}) — víc místa: --images-max-mb <n>",
1532
+ "ui.export.images.uncited": " POZOR: vedle citovaných pramenů už pod limitem {mb} MB nezbylo místo: {n, plural, one {# pramen, který ve výzkumu nikdo necituje, je} few {# prameny, které ve výzkumu nikdo necituje, jsou} other {# pramenů, které ve výzkumu nikdo necituje, je}} bez obrázku ({ids}) — víc místa: --images-max-mb <n>",
1533
+ "ui.export.images.uncitedOut": " prameny, které ve výzkumu nikdo necituje, v souboru nejsou: {n} — všechny: --images-for all",
1516
1534
  "ui.export.images.scope": " prameny lidí vzdálenějších od výzkumu, než říká excerpts.for={for}: {n} — všechny: --images-for all",
1517
1535
  "ui.export.images.missing": " snímek není na tomto počítači: {ids}",
1518
1536
  "ui.export.images.unclipped": " prameny na snímcích bez výřezu (kde zápis je): {ids} — strom clips (najdou je čtenáři)",
@@ -1748,7 +1766,7 @@
1748
1766
  "ui.move.cancel": "Zrušit",
1749
1767
  "ui.move.cancelled": "Nic se nezaložilo.",
1750
1768
  "ui.move.without": "Pokračovat bez prohlížeče: výzkum (nebo Archiv Stromu) ze souboru",
1751
- "ui.move.without.what": "Aplikace v {from} se k výzkumu nepřipojí: nic z aplikace nepůjde živě – ani výzkum, ani Archiv Stromu. Změny z aplikace jdou do výzkumu souborem (v aplikaci Export → GEDCOM, ve výzkumu strom sync <soubor>), verze výzkumu se do aplikace vrací importem souboru a fotky touto cestou nejdou.",
1769
+ "ui.move.without.what": "Aplikace v {from} se k výzkumu nepřipojí: nic z aplikace nepůjde živě – ani výzkum, ani Archiv Stromu. Změny z aplikace jdou do výzkumu souborem (v aplikaci Export… → GEDCOM, ve výzkumu strom sync <soubor>), verze výzkumu se do aplikace vrací importem souboru a fotky touto cestou nejdou.",
1752
1770
  "ui.move.without.later.here": "Plné spojení je jen přes Chrome, Edge, Brave nebo Firefox a {browser} tu je: strom app (v menu Aplikace Strom) v něm kdykoli otevře výzkum a přenos se tím dokončí.",
1753
1771
  "ui.move.without.later.none": "Plné spojení je jen přes Chrome, Edge, Brave nebo Firefox: po instalaci některého z nich strom app (v menu Aplikace Strom) otevře výzkum v něm a přenos se tím dokončí.",
1754
1772
  "ui.move.nobrowser": "Na tomto počítači není prohlížeč, ze kterého se aplikace Strom k výzkumu připojí. Strom se může přenést do prohlížeče, který to umí – Google Chrome nebo Microsoft Edge, ke stažení zdarma.",
@@ -1962,6 +1980,10 @@
1962
1980
  "log.name.remove": "Odebrané jméno: {name} – {who}",
1963
1981
  "log.note.remove": "Odebraná poznámka: „{note}“ – {name}",
1964
1982
  "log.note.edit": "Opravená poznámka: {name}",
1983
+ "log.name.retract": "Odvolané jméno: {name} – {who}",
1984
+ "log.name.restore": "Vrácené jméno: {name} – {who}",
1985
+ "log.note.retract": "Odvolaná poznámka: {name}",
1986
+ "log.note.restore": "Vrácená poznámka: {name}",
1965
1987
  "log.event.status": "Změněná jistota údaje: {who} – {fact}",
1966
1988
  "log.event.restore": "Údaj znovu platí: {who} – {fact}",
1967
1989
  "log.input.sync.undo": "Vrácený rodokmen: {name}",
@@ -2366,8 +2388,10 @@
2366
2388
  "ui.error.family.needs-reason.hint": "např. --reason \"křest uvádí Jana jako otčíma\"",
2367
2389
  "ui.error.person.needs-reason": "změna jména, jeho titulu nebo známého pohlaví potřebuje --reason",
2368
2390
  "ui.error.person.needs-reason.hint": "např. --reason \"špatně přečteno: matrika má Novák, ne Nowak\"",
2369
- "ui.error.retract.needs-reason": "stažení potřebuje --reason",
2391
+ "ui.error.retract.needs-reason": "odvolání potřebuje --reason",
2370
2392
  "ui.error.retract.needs-reason.hint": "např. --reason \"špatně přečteno: zápis uvádí Annu, ne Antona\"",
2393
+ "ui.error.name.retracted": "jméno {name} u {id} je odvolané: {reason}",
2394
+ "ui.error.name.retracted.hint": "přece správné: strom name restore {id} \"{name}\" --reason \"…\"",
2371
2395
  "ui.error.merge.needs-reason": "sloučení potřebuje --reason",
2372
2396
  "ui.error.merge.needs-reason.hint": "--reason \"<proč>\"",
2373
2397
  "ui.error.record.needs-reason": "u {id} se mění {fields} — chybí --reason",
@@ -101,6 +101,9 @@
101
101
  "ui.menu.newtree": "Stammbaum anlegen · einen schicken oder empfangen",
102
102
  "ui.menu.quit": "Beenden",
103
103
  "ui.menu.bye": "Auf Wiedersehen. Nächstes Mal genügt: {strom}",
104
+ "ui.menu.bye.new": "Auf Wiedersehen. In einem neuen Terminalfenster genügt: {strom} – in diesem Fenster: {path}",
105
+ "ui.menu.bye.path": "Auf Wiedersehen. Nächstes Mal genügt: {path}",
106
+ "ui.menu.bye.live": "Die Brücke für die Strom-App läuft im Hintergrund weiter; beenden: {strom} live stop",
104
107
  "ui.run.how": "Wie viele Aufgaben? (er hört früher auf, wenn es nichts mehr zu tun gibt; 0 geht zurück)",
105
108
  "ui.run.start": "Der Agent arbeitet jetzt allein. Strg-C hält ihn an – nichts geht verloren.",
106
109
  "ui.waiting.none": "Nichts wartet.",
@@ -673,6 +676,7 @@
673
676
  "sync.verify.done": "jeder Eintrag gefunden und unabhängig gelesen (Bild registriert, strom read M… --blind): die Lesungen stimmen überein → Notiz an der Quelle, die Angaben bleiben; sie weichen ab → ein Widerspruch mit beiden Lesungen",
674
677
  "sync.reading.note": "Der Benutzer hat diesen Eintrag in der Strom-App anders gelesen ({source}); die Lesung der Forschung gilt, bis er erneut gelesen ist:",
675
678
  "sync.reading.page": "Seite",
679
+ "sync.title.note": "In der Strom-App umbenannt ({source}), die Forschung hat ihn inzwischen auch umbenannt; es gilt der Titel der Forschung – der Titel in der App:",
676
680
  "sync.reading.text": "Abschrift",
677
681
  "read.note.source.edited": "Die Abschrift wurde in der Strom-App geändert; die Lesung {read} hat: {text}",
678
682
  "read.note.edited": "Die Abschrift wurde in der Strom-App geändert: ein Hinweis, bis der Eintrag gelesen ist ({read})",
@@ -796,6 +800,8 @@
796
800
  "ui.app.images.unclipped": "Weitere {n, plural, one {# Quelle liegt} other {# Quellen liegen}} auf Bildern, aber dort ist noch nicht markiert, wo ihr Eintrag steht – der Agent kann das nachholen.",
797
801
  "ui.app.images.smaller": "Damit die Bilder in die Grenze von {limit} MB passen, sind sie kleiner als eingestellt: {level} statt {asked}.",
798
802
  "ui.app.images.left": "{n, plural, one {# Eintrag, der am weitesten von der Forschung entfernt ist, bleibt} other {# Einträge, die am weitesten von der Forschung entfernt sind, bleiben}} ohne Bild, damit alles in die Grenze von {limit} MB passt.",
803
+ "ui.app.images.uncited": "{n, plural, one {# Eintrag, den in der Forschung niemand zitiert, bleibt} other {# Einträge, die in der Forschung niemand zitiert, bleiben}} ohne Bild: neben den zitierten war unter der Grenze von {limit} MB kein Platz mehr.",
804
+ "ui.app.images.uncitedOut": "{n, plural, one {# Eintrag, den in der Forschung niemand zitiert, ist} other {# Einträge, die in der Forschung niemand zitiert, sind}} nicht in der Datei (alle: Einstellung excerpts.for all).",
799
805
  "ui.app.images.scope": "{n, plural, one {# Eintrag von Personen, die der Forschung ferner stehen, hat} other {# Einträge von Personen, die der Forschung ferner stehen, haben}} kein Bild (Einstellung excerpts.for: {for}).",
800
806
  "ui.doc.installed": "strom {version} auf eigenem Node {node} (offiziell, von nodejs.org)",
801
807
  "ui.update.source": "Eine neue Version ist da: {version}. Dieses strom läuft aus den Quellen: git pull",
@@ -902,6 +908,12 @@
902
908
  "ui.show.children": "Kinder",
903
909
  "ui.show.notes": "Notizen",
904
910
  "ui.show.note": "Notiz",
911
+ "ui.show.history": "Verlauf",
912
+ "ui.show.history.name": "Name {name} zurückgezogen {at} ({by}): {reason}",
913
+ "ui.show.history.note": "Notiz zurückgezogen {at} ({by}): {reason} — {text}",
914
+ "ui.show.history.edit": "Notiz berichtigt {at} ({by}): {reason} — vorher: {text}",
915
+ "ui.show.history.more": "zurückgezogen oder berichtigt: {n} — strom person show {id} --history",
916
+ "ui.show.history.none": "nichts zurückgezogen oder berichtigt",
905
917
  "ui.show.none": "(keine)",
906
918
  "ui.show.unknown": "(noch unbekannt)",
907
919
  "ui.show.nopartners": "(Partner noch unbekannt)",
@@ -970,7 +982,7 @@
970
982
  "ui.help.cmd.init": "Einen neuen Stammbaum anlegen",
971
983
  "ui.help.cmd.trees": "Die Stammbäume auf diesem Computer",
972
984
  "ui.help.cmd.trees.use": "An einem anderen Stammbaum arbeiten",
973
- "ui.help.cmd.trees.remove": "Einen Stammbaum von diesem Computer entfernen (zuerst wird eine Sicherung angeboten)",
985
+ "ui.help.cmd.trees.remove": "Einen Stammbaum von diesem Computer entfernen – so wird er gelöscht (in den Papierkorb, zuerst wird eine Sicherung angeboten)",
974
986
  "ui.help.cmd.lang": "Die Sprache der Forschung",
975
987
  "ui.help.cmd.mode": "Forschung mit einem Agenten oder nur ein Strom-Archiv der Daten aus der Strom-App: zeigen oder umschalten",
976
988
  "ui.help.cmd.chat": "Ein Gespräch mit dem Agenten über die Forschung",
@@ -1000,7 +1012,7 @@
1000
1012
  "ui.help.cmd.app": "Die Forschung in der Strom-App öffnen",
1001
1013
  "ui.help.cmd.app.install": "Die Strom-App aus dem Browser installieren",
1002
1014
  "ui.help.cmd.live.start": "Die Strom-App die Forschung live verfolgen lassen",
1003
- "ui.help.cmd.live.stop": "Die Live-Ansicht der Forschung beenden",
1015
+ "ui.help.cmd.live.stop": "Die Live-Ansicht der Forschung beenden (die Brücke für die Strom-App läuft nach dem Schließen des Menüs im Hintergrund weiter)",
1004
1016
  "ui.help.cmd.export.gedcom": "Den Stammbaum als GEDCOM-Datei speichern",
1005
1017
  "ui.help.cmd.pack": "Die Forschung in eine ZIP-Datei packen, damit jemand anderes weitermachen kann",
1006
1018
  "ui.help.cmd.unpack": "Einen zugeschickten Stammbaum entpacken",
@@ -1166,6 +1178,7 @@
1166
1178
  "ui.sync.source.changed": "{n}. eigene Quelle „{text}“: Abschrift oder Seite korrigiert",
1167
1179
  "ui.sync.source.reading": "{n}. die Quelle der Forschung „{text}“: anders gelesen",
1168
1180
  "ui.sync.source.verified": "{n}. eigene Quelle „{text}“: Abschrift geprüft",
1181
+ "ui.sync.source.title": "{n}. die Quelle „{old}“: umbenannt in „{new}“",
1169
1182
  "ui.sync.fact.cite": "{n}. {who}: {fact} — eigene Quelle dazu",
1170
1183
  "ui.sync.fact.part": "{n}. {who}: {kind} {when} — {role}: {part}",
1171
1184
  "ui.sync.fact.part.link": "{n}. {who}: {kind} {when} — {role} {part}: eine Person des Stammbaums",
@@ -1188,6 +1201,9 @@
1188
1201
  "ui.sync.do.source.reading": "neben der Lesung der Forschung festgehalten; die Forschung liest den Eintrag erneut",
1189
1202
  "ui.sync.do.source.verified": "Die eigene Lesung gilt: die Angaben, die nur auf ihr stehen, werden belegt",
1190
1203
  "ui.sync.do.source.verified.read": "Die eigene Lesung gilt: die Angaben, die nur auf ihr stehen, werden belegt",
1204
+ "ui.sync.do.source.title": "wird umbenannt (der Titel der Forschung bleibt in ihrer Geschichte)",
1205
+ "ui.sync.do.source.title.user": "der Titel aus der App gilt (der Titel der Forschung bleibt in ihrer Geschichte)",
1206
+ "ui.sync.do.source.title.beside": "die Forschung hat sie auch umbenannt: ihr Titel bleibt, der aus der App wird daneben als Notiz gespeichert",
1191
1207
  "ui.sync.do.fact.cite": "die Angabe der Forschung zitiert sie (ein Hinweis, bis die Forschung den Eintrag liest)",
1192
1208
  "ui.sync.do.fact.cite.read": "die Angabe der Forschung zitiert sie und steht auf der eigenen Lesung des Eintrags",
1193
1209
  "ui.sync.do.reading": "hinzugefügt auf der eigenen Lesung des Eintrags",
@@ -1299,12 +1315,12 @@
1299
1315
  "ui.phone.qr.url": "die Adresse unter dem Code: {url}",
1300
1316
  "ui.phone.qr.more": "eine weitere Adresse dieses Computers: strom phone qr --address {url}",
1301
1317
  "ui.phone.qr.off": "die Verbindung mit dem Telefon ist ausgeschaltet: kein QR-Code (strom phone on)",
1302
- "ui.phone.qr.app": "der QR-Code zum Koppeln eines Telefons: in der Strom-App (Forschung → Telefon verbinden…) oder strom phone qr im Terminal",
1318
+ "ui.phone.qr.app": "der QR-Code zum Koppeln eines Telefons: in der Strom-App (Forschung → Weitere Aktionen → Telefon verbinden…) oder strom phone qr im Terminal",
1303
1319
  "ui.phone.notturned": "Verbindung mit dem Telefon: nicht eingeschaltet, nichts geändert",
1304
1320
  "ui.error.phone.off": "die Verbindung mit dem Telefon ist ausgeschaltet",
1305
- "ui.error.phone.off.hint": "eingeschaltet wird sie mit strom phone on in einem Terminal oder in der Strom-App (Forschung → Telefon verbinden…)",
1321
+ "ui.error.phone.off.hint": "eingeschaltet wird sie mit strom phone on in einem Terminal oder in der Strom-App (Forschung → Weitere Aktionen → Telefon verbinden…)",
1306
1322
  "ui.error.phone.qr-terminal": "der QR-Code zum Koppeln eines Telefons wird nur in einem Terminal oder in der Strom-App gezeigt",
1307
- "ui.error.phone.qr-terminal.hint": "strom phone qr in einem Terminal oder Forschung → Telefon verbinden… in der Strom-App",
1323
+ "ui.error.phone.qr-terminal.hint": "strom phone qr in einem Terminal oder Forschung → Weitere Aktionen → Telefon verbinden… in der Strom-App",
1308
1324
  "ui.error.phone.address": "der Telefon-Server dieses Computers hat keine Adresse {address}",
1309
1325
  "ui.error.phone.address.hint": "seine Adressen: {addresses}",
1310
1326
  "ui.phone.page.title": "Strom-Forschung",
@@ -1312,14 +1328,14 @@
1312
1328
  "ui.phone.page.paired.title": "Gekoppelt",
1313
1329
  "ui.phone.page.paired": "Das Telefon ist mit der Forschung auf dem Computer gekoppelt. Es bleibt gekoppelt, bis es auf dem Computer getrennt wird.",
1314
1330
  "ui.phone.page.expired.title": "Der Code gilt nicht mehr",
1315
- "ui.phone.page.expired": "Ein QR-Code koppelt ein Telefon und gilt 10 Minuten. Einen neuen zeigt die Strom-App auf dem Computer (Forschung → Telefon verbinden…).",
1331
+ "ui.phone.page.expired": "Ein QR-Code koppelt ein Telefon und gilt 10 Minuten. Einen neuen zeigt die Strom-App auf dem Computer (Forschung → Weitere Aktionen → Telefon verbinden…).",
1316
1332
  "ui.phone.page.unreachable.title": "Der Computer antwortet nicht",
1317
1333
  "ui.phone.page.unreachable": "Ist der Computer eingeschaltet, die Verbindung mit dem Telefon eingeschaltet und das Telefon im selben WLAN?",
1318
1334
  "ui.phone.page.retry": "Erneut versuchen",
1319
1335
  "ui.phone.page.unpaired.title": "Dieses Telefon ist nicht mit diesem Computer gekoppelt",
1320
1336
  "ui.phone.page.unpaired.why": "Das Telefon wurde am Computer getrennt, die Adresse des Computers hat sich geändert, oder die Seite wurde ohne QR-Code geöffnet.",
1321
- "ui.phone.page.unpaired.how": "Am Computer in der Strom-App: Forschung → Telefon verbinden und den QR-Code scannen.",
1322
- "ui.phone.page.unpaired.howHome": "Im Symbol auf dem Home-Bildschirm lässt sich kein QR-Code scannen. Die Seite im Browser des Telefons öffnen (Safari, Chrome), indem der QR-Code mit der Kamera gescannt wird (am Computer in der Strom-App: Forschung → Telefon verbinden), und von dort das Symbol erneut zum Home-Bildschirm hinzufügen.",
1337
+ "ui.phone.page.unpaired.how": "Am Computer in der Strom-App: Forschung → Weitere Aktionen → Telefon verbinden und den QR-Code scannen.",
1338
+ "ui.phone.page.unpaired.howHome": "Im Symbol auf dem Home-Bildschirm lässt sich kein QR-Code scannen. Die Seite im Browser des Telefons öffnen (Safari, Chrome), indem der QR-Code mit der Kamera gescannt wird (am Computer in der Strom-App: Forschung → Weitere Aktionen → Telefon verbinden), und von dort das Symbol erneut zum Home-Bildschirm hinzufügen.",
1323
1339
  "ui.phone.page.unpaired.queue": "{n, plural, one {# ungesendetes Foto wartet auf diesem Telefon} other {# ungesendete Fotos warten auf diesem Telefon}}",
1324
1340
  "ui.phone.page.unpaired.queueBody": "Nach erneutem Koppeln mit diesem Computer werden sie von selbst gesendet.",
1325
1341
  "ui.phone.page.ago.s": "vor {n} s",
@@ -1513,6 +1529,8 @@
1513
1529
  "ui.export.quality.smaller": "sehr niedrig",
1514
1530
  "ui.export.images.smaller": " ACHTUNG: verkleinert, damit es in die Grenze von {mb} MB passt: {level} statt {asked} — mehr Platz: --images-max-mb <n> (strom config set excerpts.mb <n>)",
1515
1531
  "ui.export.images.dropped": " ACHTUNG: ausgelassen, damit es in die Grenze von {mb} MB passt, das von der Forschung am weitesten Entfernte zuerst: {n, plural, one {# Quelle} other {# Quellen}} ({ids}) — mehr Platz: --images-max-mb <n>",
1532
+ "ui.export.images.uncited": " ACHTUNG: neben den zitierten Quellen war unter der Grenze von {mb} MB kein Platz mehr: {n, plural, one {# Quelle, die in der Forschung niemand zitiert, bleibt} other {# Quellen, die in der Forschung niemand zitiert, bleiben}} ohne Bild ({ids}) — mehr Platz: --images-max-mb <n>",
1533
+ "ui.export.images.uncitedOut": " {n, plural, one {# Quelle, die in der Forschung niemand zitiert, ist} other {# Quellen, die in der Forschung niemand zitiert, sind}} nicht in der Datei — alle: --images-for all",
1516
1534
  "ui.export.images.scope": " {n, plural, one {# Quelle} other {# Quellen}} von Personen, die der Forschung ferner stehen als excerpts.for={for} — alle: --images-for all",
1517
1535
  "ui.export.images.missing": " das Bild ist nicht auf diesem Computer: {ids}",
1518
1536
  "ui.export.images.unclipped": " Quellen auf Bildern ohne Ausschnitt (wo der Eintrag steht): {ids} — strom clips (Leser finden sie)",
@@ -1748,7 +1766,7 @@
1748
1766
  "ui.move.cancel": "Abbrechen",
1749
1767
  "ui.move.cancelled": "Nichts wurde angelegt.",
1750
1768
  "ui.move.without": "Ohne Browser weiter: die Forschung (oder ein Strom-Archiv) aus der Datei",
1751
- "ui.move.without.what": "Die App in {from} verbindet sich nicht mit der Forschung: nichts aus der App geht live – weder eine Forschung noch ein Strom-Archiv. Änderungen aus der App gehen als Datei in die Forschung (in der App Export → GEDCOM, in der Forschung strom sync <Datei>), die Version der Forschung kommt per Dateiimport zurück, und Fotos gehen diesen Weg nicht.",
1769
+ "ui.move.without.what": "Die App in {from} verbindet sich nicht mit der Forschung: nichts aus der App geht live – weder eine Forschung noch ein Strom-Archiv. Änderungen aus der App gehen als Datei in die Forschung (in der App Export… → GEDCOM, in der Forschung strom sync <Datei>), die Version der Forschung kommt per Dateiimport zurück, und Fotos gehen diesen Weg nicht.",
1752
1770
  "ui.move.without.later.here": "Die volle Verbindung gibt es nur über Chrome, Edge, Brave oder Firefox, und {browser} ist hier: strom app (im Menü die Strom-App) öffnet die Forschung jederzeit darin, und die Übertragung ist abgeschlossen.",
1753
1771
  "ui.move.without.later.none": "Die volle Verbindung gibt es nur über Chrome, Edge, Brave oder Firefox: sobald einer installiert ist, öffnet strom app (im Menü die Strom-App) die Forschung dort, und die Übertragung ist abgeschlossen.",
1754
1772
  "ui.move.nobrowser": "Auf diesem Computer gibt es keinen Browser, aus dem sich die Strom-App mit der Forschung verbindet. Der Stammbaum kann in einen Browser umziehen, der es kann – Google Chrome oder Microsoft Edge, kostenlos herunterzuladen.",
@@ -1962,6 +1980,10 @@
1962
1980
  "log.name.remove": "Name entfernt: {name} – {who}",
1963
1981
  "log.note.remove": "Notiz entfernt: „{note}“ – {name}",
1964
1982
  "log.note.edit": "Notiz berichtigt: {name}",
1983
+ "log.name.retract": "Name zurückgezogen: {name} – {who}",
1984
+ "log.name.restore": "Name wiederhergestellt: {name} – {who}",
1985
+ "log.note.retract": "Notiz zurückgezogen: {name}",
1986
+ "log.note.restore": "Notiz wiederhergestellt: {name}",
1965
1987
  "log.event.status": "Sicherheit einer Angabe geändert: {who} – {fact}",
1966
1988
  "log.event.restore": "Angabe wieder gültig: {who} – {fact}",
1967
1989
  "log.input.sync.undo": "Stammbaum zurückgenommen: {name}",
@@ -2368,6 +2390,8 @@
2368
2390
  "ui.error.person.needs-reason.hint": "z. B. --reason \"falsch gelesen: im Register steht Novák, nicht Nowak\"",
2369
2391
  "ui.error.retract.needs-reason": "Zurückziehen braucht --reason",
2370
2392
  "ui.error.retract.needs-reason.hint": "z. B. --reason \"falsch gelesen: der Eintrag nennt Anna, nicht Anton\"",
2393
+ "ui.error.name.retracted": "der Name {name} von {id} ist zurückgezogen: {reason}",
2394
+ "ui.error.name.retracted.hint": "doch richtig: strom name restore {id} \"{name}\" --reason \"…\"",
2371
2395
  "ui.error.merge.needs-reason": "Zusammenführen braucht --reason",
2372
2396
  "ui.error.merge.needs-reason.hint": "--reason \"<warum>\"",
2373
2397
  "ui.error.record.needs-reason": "bei {id} ändert sich {fields} — --reason fehlt",
@@ -36,7 +36,8 @@ conclusion so the next researcher can follow it.
36
36
  <!-- end -->
37
37
  <!-- for link verify enrich intake locate -->
38
38
  - **Nothing is deleted.** A wrong fact is retracted with a reason; a changed
39
- fact is edited with a reason. Contradictions become conflicts, competing
39
+ fact is edited with a reason; so are a wrong name or note (`strom name retract`,
40
+ `strom note retract`, `strom note edit`). Contradictions become conflicts, competing
40
41
  explanations become hypotheses — never silently pick one.
41
42
  <!-- end -->
42
43
  - **Write as you go.** Record each finding as soon as you have it: what is
@@ -33,6 +33,8 @@ export class Context {
33
33
  dryRun = false;
34
34
  /** The record IDs the command names (T…, N…, G…): which of an agent's sessions in several researches is its. */
35
35
  refs = [];
36
+ /** The PATH this strom was given (before core/userpath.ts made it fuller): what the terminal it runs in knows. */
37
+ givenPath;
36
38
  opened;
37
39
  /**
38
40
  * The backup before another channel or an older version could not be made (cli/backups.ts): no research is brought