1 /*
2    Copyright (c) 1991-1999 Thomas T. Wetmore IV
3 
4    Permission is hereby granted, free of charge, to any person
5    obtaining a copy of this software and associated documentation
6    files (the "Software"), to deal in the Software without
7    restriction, including without limitation the rights to use, copy,
8    modify, merge, publish, distribute, sublicense, and/or sell copies
9    of the Software, and to permit persons to whom the Software is
10    furnished to do so, subject to the following conditions:
11 
12    The above copyright notice and this permission notice shall be
13    included in all copies or substantial portions of the Software.
14 
15    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22    SOFTWARE.
23 */
24 /* modified 05 Jan 2000 by Paul B. McBride (pmcbride@tiac.net) */
25 /* modified 2000-04-25 J.F.Chandler */
26 /*=============================================================
27  * messages.c -- Holds most LifeLines messages
28  * Copyright(c) 1992-94 by T.T. Wetmore IV; all rights reserved
29  *   2.3.4 - 24 Jun 93    2.3.5 - 13 Aug 93
30  *   2.3.6 - 29 Oct 93    3.0.0 - 05 Oct 94
31  *   3.0.2 - 06 Dec 94
32  *===========================================================*/
33 
34 #include "llstdlib.h"
35 
36 #define SS (STRING)
37 #define ZST STRING
38 
39 /* strings used to clear the screen */
40 STRING empstr = SS "                                                ";
41 STRING empstr71 = SS "                                                                       ";
42 
43 
44 ZST qSiddbse      = N_("You must identify a database.");
45 ZST qSidldir      = N_("What directory holds (or will hold) the LifeLines database? (? to list)");
46 ZST qSidldrp      = N_("enter path: ");
47 ZST qSnodbse      = N_("There is no LifeLines database in that directory.");
48 ZST qScrdbse      = N_("Do you want to create a database there?");
49 ZST qSbdlkar      = N_("Argument to lock (-l) must be y or n.");
50 ZST qSnormls      = N_("Cannot remove last person from family.");
51 	/* summary of options (compiled with Finnish as optional) */
52 ZST qSusgFinnOpt  = N_("lines [-adkrwiflntcuFxoCzI] [database]   # Use -F for Finnish database");
53 	/* summary of options (compiled with Finnish as mandatory) */
54 ZST qSusgFinnAlw  = N_("lines [-adkrwiflntcuxoCzI] [database]   # Finnish database");
55 	/* summary of options (normal compile -- no Finnish support) */
56 ZST qSusgNorm     = N_("lines [-adkrwiflntcuxoCzI] [database]");
57 
58 ZST qSronlya      = N_("The database is read only; you may not add records.");
59 ZST qSronlye      = N_("The database is read only; you may not change records.");
60 ZST qSronlym      = N_("The database is read only; you may not merge records.");
61 ZST qSronlyr      = N_("The database is read only; you may not remove records.");
62 ZST qSronly       = N_("The database is read only.");
63 
64 ZST qSidbrws      = N_("Name, key, refn, list, or @:");
65 ZST qSidkyrfn     = N_("enter key or refn: ");
66 ZST qSidcrmv      = N_("Please choose the child to remove from the family.");
67 ZST qSidsrmv      = N_("Please choose the spouse/parent to remove from the family.");
68 ZST qSidcrmf      = N_("From which family is the child to be removed?");
69 ZST qSidsrmf      = N_("From which family is the spouse/parent to be removed?");
70 ZST qSidfrmv      = N_("Identify family (enter nothing to identify by individual members).");
71 ZST qSidfrsp      = N_("Identify a spouse of the family, if known.");
72 ZST qSidfrch      = N_("Identify a child of the family, if known.");
73 ZST qSid1csw      = N_("Identify the first child to swap.");
74 ZST qSid2csw      = N_("Identify the second child to swap.");
75 ZST qSidcrdr      = N_("Identify the child to reorder.");
76 ZST qSid1fsw      = N_("Identify the first family/spouse to swap.");
77 ZST qSid2fsw      = N_("Identify the second family/spouse to swap.");
78 ZST qSidsbrs      = N_("Please choose the spouse/parent to browse to.");
79 ZST qSid1sbr      = N_("Please choose the first spouse/parent to browse to.");
80 ZST qSid2sbr      = N_("Please choose the second spouse/parent to browse to.");
81 ZST qSidcbrs      = N_("Please choose the child to browse to.");
82 ZST qSid1cbr      = N_("Please choose the first child to browse to.");
83 ZST qSid2cbr      = N_("Please choose the second child to browse to.");
84 ZST qSidfbrs      = N_("Please choose the family to browse to.");
85 ZST qSidfamk      = N_("Enter Family Number to Browse to");
86 ZST qSid1fbr      = N_("Please choose the first family to browse to.");
87 ZST qSid2fbr      = N_("Please choose the second family to browse to.");
88 ZST qSidhbrs      = N_("Please choose the father/husband to browse to.");
89 ZST qSid1hbr      = N_("Please choose the first father/husband to browse to.");
90 ZST qSid2hbr      = N_("Please choose the second father/husband to browse to.");
91 ZST qSidwbrs      = N_("Please choose the mother/wife to browse to.");
92 ZST qSid1wbr      = N_("Please choose the first mother/wife to browse to.");
93 ZST qSid2wbr      = N_("Please choose the second mother/wife to browse to.");
94 ZST qSidcswp      = N_("Identify a parent in the family having children swapped.");
95 ZST qSidfswp      = N_("Whose families/spouses are to be swapped?");
96 ZST qSidprnt      = N_("Identify one of the child's parents, if known.");
97 
98 ZST qSscnrfn      = N_("Enter pattern to match against refn.");
99 
100 ZST qSnotonei     = N_("Please choose from among these people.");
101 ZST qSnotonex     = N_("Please choose from among these records.");
102 ZST qSiscnew      = N_("Is this the new child? ");
103 ZST qSissnew      = N_("Is this the new spouse? ");
104 ZST qSifonei      = N_("Is this the person?  Select if so.");
105 ZST qSifonex      = N_("Is this the record?  Select if so.");
106 ZST qSidcfam      = N_("Select the child the new child precedes or select last.");
107 ZST qSidpnxt      = N_("Please identify next person to browse to.");
108 ZST qSidnxt       = N_("Please identify record to browse to.");
109 ZST qSidspse      = N_("Please identify one of the spouses.");
110 ZST qSidplst      = N_("Please identify person or persons to browse to.");
111 ZST qSidfcop      = N_("Please choose family create operation.");
112 ZST qSentnam      = N_("Do you want to enter another name?");
113 
114 ZST qSntprnt      = N_("This person is not a spouse or parent in any family.");
115 ZST qSntchld      = N_("This person is not a child in any family.");
116 ZST qSnonamky     = N_("There is no one in the database with that name or key.");
117 
118 ZST qSnofath      = N_("This person's father is not in the database.");
119 ZST qSnomoth      = N_("This person's mother is not in the database.");
120 ZST qSnospse      = N_("This person has no spouse in the database.");
121 ZST qSnoysib      = N_("This person has no younger sibling in the database.");
122 ZST qSnoosib      = N_("This person has no older sibling in the database.");
123 ZST qSnoprnt      = N_("This person's parents are not in the database.");
124 ZST qSnohusb      = N_("This family has no male spouse/parent in the database.");
125 ZST qSnowife      = N_("This family has no female spouse/parent in the database.");
126 ZST qSnocinf      = N_("There are no children in the database for this family.");
127 ZST qSnocofp      = N_("This person has no children in the database.");
128 ZST qSnochil      = N_("No such child.");
129 ZST qSnopers      = N_("No such person.");
130 ZST qSnorec       = N_("No such record.");
131 ZST qSnofam       = N_("No such family.");
132 ZST qSnosour      = N_("No sources present.");
133 ZST qSidsour      = N_("Please choose the source to view.");
134 ZST qSnoeven      = N_("No events present.");
135 ZST qSideven      = N_("Please choose the event to view.");
136 ZST qSnoothe      = N_("No others present.");
137 ZST qSidothe      = N_("Please choose the other to view.");
138 ZST qSnonote      = N_("No notes present.");
139 ZST qSidnote      = N_("Please choose the note to view.");
140 ZST qSnoptr       = N_("No references present.");
141 ZST qSidptr       = N_("Please choose the reference to view.");
142 ZST qSduprfn      = N_("Duplicated REFN - please choose.");
143 
144 ZST qSnosex       = N_("New spouse/parent has unknown sex; can't add to family.");
145 ZST qSnotopp      = N_("The persons are not of opposite sex; can't make family.");
146 ZST qSntsinf      = N_("This person is not a spouse in the family; can't remove.");
147 ZST qSntcinf      = N_("This person is not a child in the family; can't remove.");
148 ZST qSunksex      = N_("This person's sex is not known; can't make family.");
149 ZST qShashsb      = N_("This family already has a husband/male parent.");
150 ZST qShaswif      = N_("This family already has a wife/female parent.");
151 ZST qShasbth      = N_("This family has both spouses/parents; can't add another.");
152 ZST qShasnei      = N_("This family has neither spouse/parent; can't remove.");
153 ZST qShaslnk      = N_("This family still has links; not removed.");
154 
155 ZST qSidfbys      = N_("Choose a family by selecting a spouse/parent.");
156 ZST qSiredit      = N_("Do you want to edit the person again? (Otherwise changes will be discarded.)");
157 ZST qSireditopt   = N_("Do you want to edit the person again?");
158 ZST qSfredit      = N_("Do you want to edit the family again? (Otherwise changes will be discarded.)");
159 ZST qSfreditopt   = N_("Do you want to edit the family again?");
160 ZST qSrredit      = N_("Do you want to edit the source again? (Otherwise changes will be discarded.)");
161 ZST qSrreditopt   = N_("Do you want to edit the source again?");
162 ZST qSeredit      = N_("Do you want to edit the event again? (Otherwise changes will be discarded.)");
163 ZST qSereditopt   = N_("Do you want to edit the event again?");
164 ZST qSxredit      = N_("Do you want to edit the record again? (Otherwise changes will be discarded.)");
165 ZST qSxreditopt   = N_("Do you want to edit the record again?");
166 ZST qSidpedt      = N_("Whom do you want to edit?");
167 ZST qSidredt      = N_("Which source record do you want to edit?");
168 ZST qSideedt      = N_("Which event record do you want to edit?");
169 ZST qSidxedt      = N_("What record do you want to edit?");
170 
171 ZST qScfpadd      = N_("Do you really want to add this person to the database?");
172 ZST qScffadd      = N_("Do you really want to add this family to the database?");
173 ZST qScfcadd      = N_("Do you really want to add this child to the family?");
174 ZST qScfsadd      = N_("Do you really want to add this spouse/parent to the family?");
175 ZST qScfradd      = N_("Do you really want to add this source to the database?");
176 ZST qScfeadd      = N_("Do you really want to add this event to the database?");
177 ZST qScfxadd      = N_("Do you really want to add this record to the database?");
178 ZST qScfpupt      = N_("Do you really want to update this person?");
179 ZST qScffupt      = N_("Do you really want to update this family?");
180 ZST qScfrupt      = N_("Do you really want to update this source?");
181 ZST qScfeupt      = N_("Do you really want to update this event?");
182 ZST qScfxupt      = N_("Do you really want to update this record?");
183 ZST qScfpdel      = N_("Are you sure you want to remove the person from the database?");
184 ZST qScfodel      = N_("Are you sure you want to remove this record from the database?");
185 ZST qScffdel      = N_("Remove this family record?");
186 ZST qScffdeld     = N_("(Family %s (%s, %s)");
187 ZST qScfpmrg      = N_("Do you really want to merge these two persons?");
188 ZST qScffmrg      = N_("Do you really want to merge these two families?");
189 ZST qScffswp      = N_("Do you really want to swap spouse orders?");
190 ZST qScfchswp     = N_("Do you really want to reorder children?");
191 ZST qScfcrmv      = N_("Do you really want to remove this child from his/her family?");
192 ZST qScfsrmv      = N_("Do you really want to remove this spouse from his/her family?");
193 ZST qSspover      = N_("Too many spouses to display full list");
194 ZST qSmgsfam      = N_("These persons are children in different families.");
195 ZST qSmgconf      = N_("Are you sure you want to merge them?");
196 
197 ZST qSbadata      = N_("There is something wrong with the data.");
198 ZST qSidchld      = N_("Please identify the child.");
199 ZST qSidsbln      = N_("Please identify one of the child's siblings.");
200 ZST qSidsadd      = N_("Identify spouse/parent to add to an existing family.");
201 ZST qSidsinf      = N_("Identify spouse/parent already in family, if known.");
202 ZST qSkchild      = N_("Identify child already in family.");
203 ZST qSiscinf      = N_("This person is already a child in a family. Add anyway?");
204 ZST qSidsps1      = N_("Identify a spouse/parent for the new family.");
205 ZST qSidsps2      = N_("Identify the second spouse/parent, if known.");
206 ZST qStwohsb      = N_("Both families must have husbands/fathers.");
207 ZST qStwowif      = N_("Both families must have wives/mothers.");
208 
209 ZST qSids2fm      = N_("Identify spouse/parent in second family, if known.");
210 ZST qSidc2fm      = N_("Identify child in second family.");
211 ZST qSidp2br      = N_("Identify second person to browse to.");
212 
213 ZST qScrtcfm      = N_("Create a family with this person as a child.");
214 ZST qScrtsfm      = N_("Create a family with this person as a spouse/parent.");
215 ZST qSless2c      = N_("This family has less than two children; can't swap.");
216 ZST qSless2f      = N_("This person is a spouse/parent in less than two families.");
217 ZST qSparadox     = N_("Something impossible happened. Contact tech support.");
218 
219 ZST qSokcswp      = N_("The two children were swapped.");
220 ZST qSokfswp      = N_("The two families were swapped.");
221 ZST qSokcrmv      = N_("The child was removed from his/her family.");
222 ZST qSoksrmv      = N_("The spouse was removed from his/her family.");
223 
224 ZST qSnopmrg      = N_("A person cannot be merged with him/herself.");
225 ZST qSnofmrg      = N_("A family cannot be merged with itself.");
226 ZST qSnoqmrg      = N_("Two persons with different parents cannot be merged.");
227 ZST qSnoxmrg      = N_("Two parents of different sexes cannot be merged.");
228 ZST qSdhusb       = N_("The families have different fathers/husbands; cannot merge.");
229 ZST qSdwife       = N_("The families have different wives/mothers; cannot merge.");
230 ZST qSidpdel      = N_("Who do you want to remove from the database?");
231 ZST qSidodel      = N_("What record do you want to remove from the database?");
232 ZST qSmklast      = N_("Place the child last in the family.");
233 ZST qSabverr      = N_("Error in abbreviations file.");
234 ZST qSuoperr      = N_("Error in user options file.");
235 ZST qScmperr      = N_("Error in character mapping file.");
236 ZST qSsepch       = N_("(Separator is %s)");
237 ZST qSaredit      = N_("Do you want to re-edit it?");
238 
239 ZST qSgdpadd      = N_("%s was added to the database.");
240 ZST qSgdcadd      = N_("%s was added as a child.");
241 ZST qSgdsadd      = N_("%s was added as a spouse and/or parent.");
242 ZST qSgdfadd      = N_("The new family was added to the database.");
243 ZST qSgdpmod      = N_("%s was modified in the database.");
244 ZST qSgdfmod      = N_("The family was modified in the database.");
245 ZST qSgdrmod      = N_("The source was modified in the database.");
246 ZST qSgdemod      = N_("The event was modified in the database.");
247 ZST qSgdxmod      = N_("The record was modified in the database.");
248 
249 ZST qSnofopn      = N_("Could not open file %s.");
250 ZST qSfn2long     = N_("Filepath too long.");
251 
252 ZST qSmrkrec      = N_("Please mark a record first.");
253 
254 ZST qSlstnam      = N_("The current list is now named %s.");
255 ZST qSlstnon      = N_("The current list is not named.");
256 ZST qSlstwht      = N_("What should the name of this list be?");
257 ZST qSlstnad      = N_("No persons were added to the current list.");
258 ZST qSlstpad      = N_("What persons or list do you want to add to the current list?");
259 ZST qSlstbot      = N_("You are at the bottom of the list.");
260 ZST qSlsttop      = N_("You are at the top of the list.");
261 ZST qSlstnew      = N_("New persons were added to the current list.");
262 
263 ZST qSbadttnum    = N_("System error: illegal map code");
264 ZST qSnosuchtt    = N_("No such translation table in this database");
265 
266 /* GEDCOM file */
267 ZST qSgdnadd      = N_("Because of errors the GEDCOM file was not loaded.\n");
268 ZST qSdboldk      = N_("No errors; adding records with original keys...");
269 ZST qSdbnewk      = N_("No errors; adding records with new keys...");
270 ZST qScfoldk      = N_("Use original keys from GEDCOM file?");
271 ZST qSproceed     = N_("Proceed?");
272 ZST qSoutarc      = N_("Enter name of output archive file.");
273 ZST qSoutfin      = N_("Database `%s' has been saved in `%s'.");
274 ZST qSmouttt      = N_("Enter name of translation table file to write");
275 ZST qSmintt       = N_("Enter name of translation table file to read");
276 ZST qSmisixr      = N_("Line %d: The person defined here has no key: skipped.");
277 ZST qSmisfxr      = N_("Line %d: The family defined here has no key.");
278 ZST qSmulper      = N_("Lines %d and %d: Person %s is multiply defined: skipped.");
279 ZST qSmulfam      = N_("Lines %d and %d: Family %s is multiply defined.");
280 ZST qSmatper      = N_("Line %d: Person %s has an incorrect key: skipped.");
281 ZST qSmatfam      = N_("Line %d: Family %s has an incorrect key.");
282 ZST qSundper      = N_("Person %s is referred to but not defined.");
283 ZST qSundfam      = N_("Family %s is referred to but not defined.");
284 ZST qSundsrc      = N_("Source %s is referred to but not defined.");
285 ZST qSundevn      = N_("Event %s is referred to but not defined.");
286 ZST qSbadlev      = N_("Line %d: This line has a level number that is too large.");
287 ZST qSnoname      = N_("Line %d: Person defined here has no name.");
288 #if 0
289 STRING noxref = SS "Line %d: This record has no cross reference value.";
290 #endif
291 
292 	/* Option at bottom of list, if none in list are desired */
293 ZST qSextchoos     = N_("<Choose outside this list>");
294 	/* What report program to run ? */
295 ZST qSwhatrpt     = N_("What is the name of the program?");
296 ZST qSwhatgedc    = N_("Please enter the name of the GEDCOM file.");
297 
298 ZST qSwhtout      = N_("What is the name of the output file?");
299 ZST qSopt2long    = N_("Malformed configuration file: line too long.");
300 ZST qSunsupunix   = N_("Unsupported file encoding (no multibyte encodings except UTF-8).");
301 ZST qSunsupuniv    = N_("Unsupported file encoding: %s.");
302 
303 /* misc prompts */
304 ZST qSchoostrttl  = N_("Enter string for program");
305 ZST qSaskstr      = N_("enter string: ");
306 ZST qSaskint      = N_("enter integer:");
307 ZST qSasknam      = N_("enter name: ");
308 ZST qShitkey      = N_("Strike any key to continue.");
309 
310 /* new records prototypes */
311 	/* (all-caps words are in GEDCOM language -- don't change) */
312 ZST qSdefsour     = N_("0 SOUR\n1 REFN\n1 TITL Title\n1 AUTH Author");
313 ZST qSdefeven     = N_("0 EVEN\n1 REFN\n1 DATE\n1 PLAC\n1 INDI\n  2 NAME\n  2 ROLE\n1 SOUR");
314 ZST qSdefothr     = N_("0 XXXX\n1 REFN");
315 /* end new record prototypes */
316 
317 /* node.c errors */
318 ZST qSfileof      = N_("The file is as positioned at EOF.");
319 ZST qSreremp      = N_("Line %d: This line is empty; EOF?");
320 ZST qSrerlng      = N_("Line %d: This line is too long.");
321 ZST qSrernlv      = N_("Line %d: This line has no level number.");
322 ZST qSrerinc      = N_("Line %d: This line is incomplete.");
323 ZST qSrerbln      = N_("Line %d: This line has a bad link.");
324 ZST qSrernwt      = N_("Line %d: This line needs white space before tag.");
325 ZST qSrerilv      = N_("Line %d: This line has an illegal level.");
326 ZST qSrerwlv      = N_("The record begins at wrong level.");
327 
328 /* &&begin signals */
329 ZST qScoredump    = N_("\nAborting now. Core dump? [y/n]");
330 ZST qSprogsig     = N_("Looks like a program was running.\nCheck file %1 around line %2.\n");
331 ZST qSsignal      = N_("signal %1: %2");
332 	/* system signal#0 name */
333 ZST qSsig00       = N_("SIGNAL 0");
334 ZST qSsig01       = N_("HANGUP");
335 ZST qSsig02       = N_("INTERRUPT");
336 ZST qSsig03       = N_("QUIT");
337 ZST qSsig04       = N_("ILLEGAL INSTRUCTION");
338 ZST qSsig05       = N_("TRACE TRAP");
339 ZST qSsig06       = N_("ABORT");
340 ZST qSsig07       = N_("EMT INST");
341 ZST qSsig08       = N_("FLOATING POINT EXCEPTION");
342 ZST qSsig09       = N_("KILL");
343 ZST qSsig10       = N_("BUS ERROR");
344 ZST qSsig11       = N_("SEGMENTATION ERROR");
345 ZST qSsig12       = N_("SYSTEM CALL ERROR");
346 ZST qSsig13       = N_("PIPE WRITE");
347 ZST qSsig14       = N_("ALARM CLOCK");
348 	/* system signal#15 name -- presumably user used UNIX kill command to stop lifelines */
349 ZST qSsig15       = N_("TERMINATE FROM KILL");
350 ZST qSsig16       = N_("USER SIGNAL 1");
351 ZST qSsig17       = N_("USER SIGNAL 2");
352 ZST qSsig18       = N_("DEATH OF CHILD");
353 ZST qSsig19       = N_("POWER-FAIL RESTART");
354 ZST qSsig20       = N_("WINDOW CHANGE");
355 ZST qSsigunk      = N_("Unknown signal");
356 /* &&end signals */
357 
358 /* browse display stuff */
359 ZST qSdspl_indi   = N_("person");
360 ZST qSdspa_resi   = N_(", of ");
361 ZST qSdspl_fath   = N_("father");
362 ZST qSdspl_moth   = N_("mother");
363 ZST qSdspl_spouse = N_("spouse");
364 ZST qSdspl_child  = N_("child");
365 /* &&begin display abbreviations */
366 	/* m.: married */
367 ZST qSdspa_mar    = N_("m. ");
368 	/* eng. : engaged */
369 ZST qSdspa_eng    = N_("eng. ");
370 	/* mc. : marriage contract */
371 ZST qSdspa_marc   = N_("m.c. ");
372 
373 	/* div.: divorced */
374 ZST qSdspa_div    = N_("div. ");
375 	/* b.: born */
376 ZST qSdspa_bir    = N_("b. ");
377 	/* bap.: baptized */
378 ZST qSdspa_chr    = N_("bap. ");
379 	/* d.: died */
380 ZST qSdspa_dea    = N_("d. ");
381 	/* bur.: buried */
382 ZST qSdspa_bur    = N_("bur. ");
383 	/* cb.: child born */
384 ZST qSdspa_chbr   = N_("cb. ");
385 /* &&end display abbreviations, begin long forms */
386 ZST qSdspl_mar    = N_("married: ");
387 ZST qSdspl_eng    = N_("engaged: ");
388 ZST qSdspl_marc   = N_("marr.ct: ");
389 ZST qSdspl_bir    = N_("born: ");
390 ZST qSdspl_chr    = N_("bapt: ");
391 ZST qSdspl_dea    = N_("died: ");
392 ZST qSdspl_bur    = N_("buri: ");
393 /* &&end display long forms */
394 
395 /* editing errors */
396 ZST qSbadind      = N_("You cannot edit the INDI line in a person record.");
397 ZST qSbadfmc      = N_("You cannot edit the FAMC line in a person record.");
398 ZST qSbadfms      = N_("You cannot edit the FAMS lines in a person record.");
399 ZST qSbadfam      = N_("You cannot edit the FAM line in a family record.");
400 ZST qSbadhsb      = N_("You cannot edit the HUSB line in a family record.");
401 ZST qSbadwif      = N_("You cannot edit the WIFE line in a family record.");
402 ZST qSbadchl      = N_("You cannot edit the CHIL lines in a family record.");
403 ZST qSbademp      = N_("The record is empty.");
404 ZST qSbadin0      = N_("The record does not begin with an INDI line.");
405 ZST qSbadfm0      = N_("The record does not begin with a FAM line.");
406 ZST qSbadsr0      = N_("The record does not begin with a SOUR line.");
407 ZST qSbadev0      = N_("The record does not begin with an EVEN line.");
408 ZST qSbadothr0    = N_("INDI, FAM, SOUR, EVEN records may not be other records.");
409 ZST qSbadmul      = N_("The record contains multiple level 0 lines.");
410 ZST qSbadenm      = N_("This person record has bad GEDCOM name syntax.");
411 ZST qSbadparsex   = N_("You cannot change the sex of a parent.");
412 ZST qSbadirefn    = N_("REFN key is already in use.");
413 
414 ZST qStag2lng2cnc = N_("Tag is too long to connect automatically.");
415 	/* I,F,S,E,X are conventional letters, so leave them as is) */
416 ZST qSdbrecords   = N_("Database records");
417 ZST qSdbrecstats  = N_("%dI, %dF, %dS, %dE, %dX");
418 
419 /* menus */
420 ZST qSmtitle      = N_("LifeLines %s - Genealogical DB and Programming System");
421 ZST qScright      = N_("Copyright(c) 1991 to 1996, by T. T. Wetmore IV");
422 ZST qSdbname      = N_("Current Database - %s");
423 	/* immutable is read-only with no reader/writer conflict protection */
424 ZST qSdbimmut     = N_(" (immutable)");
425 	/* read-only has protection against reader/writer conflict */
426 ZST qSdbrdonly    = N_(" (read only)");
427 ZST qSplschs      = N_("Please choose an operation:");
428 ZST qSmn_unkcmd   = N_("Not valid command");
429 
430 /* prompt, full list, yes list */
431 ZST qSaskynq      = N_("enter y (yes) or n (no): ");
432 ZST qSaskynyn     = N_("yYnN"); /* valid chars for yes/no answer */
433 ZST qSaskyY       = N_("yY"); /* chars meaning yes answer */
434 
435 /* browse menu titles */
436 ZST qSttlindibrw  = N_("LifeLines -- Person Browse Screen (* toggles menu)");
437 ZST qSttlfambrw   = N_("LifeLines -- Family Browse Screen (* toggles menu)");
438 ZST qSttl2perbrw  = N_("LifeLines -- Two Person Browse Screen (* toggles menu)");
439 ZST qSttl2fambrw  = N_("LifeLines -- Two Family Browse Screen (* toggles menu)");
440 ZST qSttlauxbrw   = N_("LifeLines -- Auxiliary Browse Screen (* toggles menu)");
441 ZST qSttllstbrw   = N_("LifeLines -- List Browse Screen (* toggles menu)");
442 
443 /* list menu */
444 
445 ZST qSchlistx     = N_("Commands:   Select by number, u Page Up, d Page Down, i Select, q Quit");
446 ZST qSvwlistx     = N_("Commands:   u Page Up, d Page Down, q Quit");
447 ZST qSerrlist     = N_("Messages:");
448 
449 /* adding new xref */
450 ZST qSdefttl      = N_("Please choose from the following options:");
451 ZST qSnewrecis    = N_("New record is %s");
452 ZST qSautoxref    = N_("Insert xref automatically at bottom of current record.");
453 ZST qSeditcur     = N_("Edit current record now to add xref manually.");
454 ZST qSgotonew     = N_("Browse new record (without adding xref).");
455 ZST qSstaycur     = N_("Return to current record (without adding xref).");
456 
457 /* misc */
458 ZST qSunksps      = N_("Spouse unknown");
459 ZST qSnohist      = N_("No more history");
460 ZST qSbadhistcnt  = N_("Bad history count");
461 ZST qSbadhistcnt2 = N_("Bad backup history count");
462 ZST qSbadhistlen  = N_("Bad history length");
463 ZST qShistclr     = N_("Delete history (%d entries)?");
464 ZST qSdataerr     = N_("Error accessing data");
465 ZST qSidhist      = N_("Choose from history");
466 ZST qSnorwandro   = N_("Cannot combine immutable (-i) or read-only (-r) with read-write (-w) access.");
467 ZST qSnofandl     = N_("Cannot combine forceopen (-f) and lock (-l) flags.");
468 ZST qSiddefpath   = N_("Default path: ");
469 ZST qSmisskeys    = N_("WARNING: missing keys");
470 ZST qSbadkeyptr   = N_("This does not point to another record in the database!");
471 ZST qSwhtfname    = N_("enter file name");
472 ZST qSwhtfnameext = N_("enter file name (*%s)");
473 ZST qSnosuchrec   = N_("There is no record with that key or reference.");
474 ZST qSbaddb       = N_("Database was corrupt.");
475 
476 /* translation table errors */
477 ZST qSbaddec      = N_("Bad decimal number format.");
478 ZST qSbadhex      = N_("Bad hexidecimal number format.");
479 ZST qSnorplc      = N_("No replacement string on line.");
480 ZST qSnoorig      = N_("No original string on line.");
481 ZST qSbadesc      = N_("Bad escape format.");
482 ZST qSmaperr      = N_("%s: line %d (entry %d): %s");
483 
484 /* many menus */
485 ZST qSmn_quit     = N_("q  Return to main menu");
486 ZST qSmn_ret      = N_("q  Return to previous menu");
487 ZST qSmn_exit     = N_("q  Quit program");
488 ZST qSmn_changedb = N_("Q  Quit current database");
489 
490 /* &&begin main menu (70 chars after spaces) */
491 ZST qSmn_mmbrws   = N_("b  Browse the persons in the database");
492 ZST qSmn_mmsear   = N_("s  Search database");
493 ZST qSmn_mmadd    = N_("a  Add information to the database");
494 ZST qSmn_mmdel    = N_("d  Delete information from the database");
495 ZST qSmn_mmrpt    = N_("r  Generate report by entering report name");
496 ZST qSmn_mmprpt   = N_("p  Pick a report from list and run");
497 ZST qSmn_mmcset   = N_("c  Character set options");
498 ZST qSmn_mmtt     = N_("t  Modify character translation tables");
499 ZST qSmn_mmut     = N_("u  Miscellaneous utilities");
500 ZST qSmn_mmex     = N_("x  Handle source, event and other records");
501 
502 /* &&end main menu, begin utility menu */
503 ZST qSmn_uttl     = N_("What utility do you want to perform?");
504 ZST qSmn_utsave   = N_("s  Save the database in a GEDCOM file");
505 ZST qSmn_utread   = N_("r  Read in data from a GEDCOM file");
506 ZST qSmn_utgdchoo = N_("R  Pick a GEDCOM file and read in");
507 ZST qSmn_utkey    = N_("k  Find a person's key value");
508 ZST qSmn_utkpers  = N_("i  Identify a person from key value");
509 ZST qSmn_utdbstat = N_("d  Show database statistics");
510 ZST qSmn_utmemsta = N_("m  Show memory statistics");
511 ZST qSmn_utplaces = N_("e  Edit the place abbreviation file");
512 ZST qSmn_utusropt = N_("o  Edit the user options file");
513 
514 /* &&end utility menu, begin extra menu */
515 ZST qSmn_xttl     = N_("What activity do you want to perform?");
516 ZST qSmn_xxbsour  = N_("s  Browse source records");
517 ZST qSmn_xxbeven  = N_("e  Browse event records");
518 ZST qSmn_xxbothr  = N_("x  Browse other records");
519 ZST qSmn_xxasour  = N_("1  Add a source record to the database");
520 ZST qSmn_xxesour  = N_("2  Edit source record from the database");
521 ZST qSmn_xxaeven  = N_("3  Add an event record to the database");
522 ZST qSmn_xxeeven  = N_("4  Edit event record from the database");
523 ZST qSmn_xxaothr  = N_("5  Add an other record to the database");
524 ZST qSmn_xxeothr  = N_("6  Edit other record from the database");
525 
526 /* &&end utility menu, &&begin translation table menu */
527 ZST qSmn_tt_ttl   = N_("Translation Tables");
528 ZST qSmn_tt_edit  = N_("e  edit individual tables (in db)");
529 ZST qSmn_tt_load  = N_("l  load a table from a file (into db)");
530 ZST qSmn_tt_save  = N_("s  save a table to a file (from db)");
531 ZST qSmn_tt_exp   = N_("x  export all tables (from db to files)");
532 ZST qSmn_tt_imp   = N_("i  import all tables (from files into db)");
533 ZST qSmn_tt_dir   = N_("export/import directory:");
534 
535 /* menus for translation tables */
536 ZST qSmn_edttttl  = N_("Which character mapping do you want to edit?");
537 ZST qSmn_svttttl  = N_("Which character mapping do you want to save?");
538 
539 /* not yet implemented choices */
540 ZST qSmn_notimpl  = N_("Not implemented yet");
541 
542 /* &&begin add menu */
543 ZST qSmn_add_ttl  = N_("What do you want to add?");
544 ZST qSmn_add_indi = N_("p  Person - add new person to the database");
545 ZST qSmn_add_fam  = N_("f  Family - create family record from one or two spouses");
546 ZST qSmn_add_chil = N_("c  Child - add a child to an existing family");
547 ZST qSmn_add_spou = N_("s  Spouse - add a spouse to an existing family");
548 
549 /* &&end add menu, begin delete menu */
550 ZST qSmn_del_ttl  = N_("What do you want to remove?");
551 ZST qSmn_del_chil = N_("c  Child - remove a child from his/her family");
552 ZST qSmn_del_spou = N_("s  Spouse - remove a spouse from a family");
553 ZST qSmn_del_indi = N_("i  Individual - remove a person completely");
554 ZST qSmn_del_fam  = N_("f  Family - remove a family completely");
555 ZST qSmn_del_any  = N_("o  Other - remove other record completely");
556 
557 /* &&end delete menu, begin search menu */
558 ZST qSmn_sea_ttl  = N_("How would you like to find a record?");
559 
560 /* &&end search menu, begin scan status strings */
561 ZST qSsts_sca_ful = N_("Performing full name scan");
562 ZST qSsts_sca_fra = N_("Performing name fragment scan");
563 ZST qSsts_sca_ref = N_("Performing refn scan");
564 ZST qSsts_sca_src = N_("Performing source scan");
565 ZST qSsts_sca_non = N_("No records found in scan");
566 
567 /* &&complex date strings (A=abbrev, B=full)*/
568 ZST qSdatea_abtA  = N_("abt %1");
569 ZST qSdatea_abtB  = N_("about %1");
570 ZST qSdatea_estA  = N_("est %1");
571 ZST qSdatea_estB  = N_("estimated %1");
572 ZST qSdatea_calA  = N_("cal %1");
573 ZST qSdatea_calB  = N_("calculated %1");
574 ZST qSdatep_fromA = N_("fr %1");
575 ZST qSdatep_fromB = N_("from %1");
576 ZST qSdatep_toA   = N_("to %1");
577 ZST qSdatep_toB   = N_("to %1");
578 ZST qSdatep_frtoA = N_("fr %1 to %2");
579 ZST qSdatep_frtoB = N_("from %1 to %2");
580 ZST qSdater_befA  = N_("bef %1");
581 ZST qSdater_befB  = N_("before %1");
582 ZST qSdater_aftA  = N_("aft %1");
583 ZST qSdater_aftB  = N_("after %1");
584 ZST qSdater_betA  = N_("bet %1 and %2");
585 ZST qSdater_betB  = N_("between %1 and %2");
586 	/* &&origin/era trailers */
587 	/* B.C. = Before Christ (calendar) */
588 ZST qSdatetrl_bcA = N_("B.C.");
589 	/* BC = Before Christ (calendar) */
590 ZST qSdatetrl_bcB = N_("BC");
591 	/* B.C.E. = Before Common Era (calendar) */
592 ZST qSdatetrl_bcC = N_("B.C.E.");
593 	/* BCE. = Before Common Era (calendar) */
594 ZST qSdatetrl_bcD = N_("BCE");
595 	/* A.D. = Anno Domini (calendar) */
596 ZST qSdatetrl_adA = N_("A.D.");
597 	/* AD = Anno Domini (calendar) */
598 ZST qSdatetrl_adB = N_("AD");
599 	/* C.E. = Common Era (calendar) */
600 ZST qSdatetrl_adC = N_("C.E.");
601 	/* CE = Common Era (calendar) */
602 ZST qSdatetrl_adD = N_("CE");
603 	/* &&calendar pics */
604 	/* Julian calendar year */
605 ZST qScaljul      = N_("%1J");
606 	/* Hebrew calendar year */
607 ZST qScalheb      = N_("%1 HEB");
608 	/* French Republic calendar year */
609 ZST qScalfr       = N_("%1 FR");
610 	/* Roman calendar year -- Anno Urbe Condite ? */
611 ZST qScalrom      = N_("%1 AUC");
612 	/* &&Gregorian/Julian months */
613 ZST qSmon_gj1A    = N_("jan");
614 ZST qSmon_gj1B    = N_("january");
615 ZST qSmon_gj2A    = N_("feb");
616 ZST qSmon_gj2B    = N_("february");
617 ZST qSmon_gj3A    = N_("mar");
618 ZST qSmon_gj3B    = N_("march");
619 ZST qSmon_gj4A    = N_("apr");
620 ZST qSmon_gj4B    = N_("april");
621 /* Put short form for may (don't use **) */
622 ZST qSmon_gj5A    = N_("**may");
623 ZST qSmon_gj5B    = N_("may");
624 ZST qSmon_gj6A    = N_("jun");
625 ZST qSmon_gj6B    = N_("june");
626 ZST qSmon_gj7A    = N_("jul");
627 ZST qSmon_gj7B    = N_("july");
628 ZST qSmon_gj8A    = N_("aug");
629 ZST qSmon_gj8B    = N_("august");
630 ZST qSmon_gj9A    = N_("sep");
631 ZST qSmon_gj9B    = N_("september");
632 ZST qSmon_gj10A   = N_("oct");
633 ZST qSmon_gj10B   = N_("october");
634 ZST qSmon_gj11A   = N_("nov");
635 ZST qSmon_gj11B   = N_("november");
636 ZST qSmon_gj12A   = N_("dec");
637 ZST qSmon_gj12B   = N_("december");
638 	/* &&Hebrew months */
639 ZST qSmon_heb1A   = N_("tsh");
640 ZST qSmon_heb1B   = N_("tishri");
641 ZST qSmon_heb2A   = N_("csh");
642 ZST qSmon_heb2B   = N_("cheshvan");
643 ZST qSmon_heb3A   = N_("ksl");
644 ZST qSmon_heb3B   = N_("kislev");
645 ZST qSmon_heb4A   = N_("tvt");
646 ZST qSmon_heb4B   = N_("tevet");
647 ZST qSmon_heb5A   = N_("shv");
648 ZST qSmon_heb5B   = N_("shevat");
649 ZST qSmon_heb6A   = N_("adr");
650 ZST qSmon_heb6B   = N_("adar");
651 ZST qSmon_heb7A   = N_("ads");
652 ZST qSmon_heb7B   = N_("adar sheni");
653 ZST qSmon_heb8A   = N_("nsn");
654 ZST qSmon_heb8B   = N_("nisan");
655 ZST qSmon_heb9A   = N_("iyr");
656 ZST qSmon_heb9B   = N_("iyar");
657 ZST qSmon_heb10A  = N_("svn");
658 ZST qSmon_heb10B  = N_("sivan");
659 ZST qSmon_heb11A  = N_("tmz");
660 ZST qSmon_heb11B  = N_("tamuz");
661 ZST qSmon_heb12A  = N_("aav");
662 ZST qSmon_heb12B  = N_("av");
663 ZST qSmon_heb13A  = N_("ell");
664 ZST qSmon_heb13B  = N_("elul");
665 	/* &&French Republic months */
666 ZST qSmon_fr1A    = N_("vend");
667 ZST qSmon_fr1B    = N_("vendemiaire");
668 ZST qSmon_fr2A    = N_("brum");
669 ZST qSmon_fr2B    = N_("brumaire");
670 ZST qSmon_fr3A    = N_("frim");
671 ZST qSmon_fr3B    = N_("frimaire");
672 ZST qSmon_fr4A    = N_("nivo");
673 ZST qSmon_fr4B    = N_("nivose");
674 ZST qSmon_fr5A    = N_("pluv");
675 ZST qSmon_fr5B    = N_("pluviose");
676 ZST qSmon_fr6A    = N_("vent");
677 ZST qSmon_fr6B    = N_("ventose");
678 ZST qSmon_fr7A    = N_("germ");
679 ZST qSmon_fr7B    = N_("germinal");
680 ZST qSmon_fr8A    = N_("flor");
681 ZST qSmon_fr8B    = N_("floreal");
682 ZST qSmon_fr9A    = N_("prai");
683 ZST qSmon_fr9B    = N_("prairial");
684 ZST qSmon_fr10A   = N_("mess");
685 ZST qSmon_fr10B   = N_("messidor");
686 ZST qSmon_fr11A   = N_("ther");
687 ZST qSmon_fr11B   = N_("thermidor");
688 ZST qSmon_fr12A   = N_("fruc");
689 ZST qSmon_fr12B   = N_("fructidor");
690 ZST qSmon_fr13A   = N_("comp");
691 ZST qSmon_fr13B   = N_("jour_complementairs");
692