code=itestmsg
brief=Test Message
detail=This message is used to test the UserMessage.pm module
type=note

code=iwelcome
brief=Welcome to tsh version %s.
detail=This message tells you what version of tsh you are running.  To update to the latest version while connected to the Internet, use the `update' command.
type=note

code=enohelp
brief=There is no help topic called %s.  Enter 'help index' for a list of commands.
detail=Not all commands have detailed help yet.  If you do not find what you're looking for with the 'help' command, please consult the tsh reference manual.
type=error

code=iloadcfg
brief=Loading configuration file %s.
detail=If you did not specify a configuration file when you ran tsh, tsh chose the most recently changed configuration file in a subdirectory of the program directory.
type=note

code=ebadapc
brief=Unsupported autopair pairing system: %s.
detail=Not all pairing commands are yet supported for autopairing, but most are.  It's likely that you mistyped an autopairing command, so check your configuration file carefully.  If there is a command that you need added to the autopairing system, please contact John Chew.
type=error

code=ebadap
brief=Can't parse 'autopair %s' in %s.
detail=tsh could not understand an autopair line in its configuration file. Please consult the reference manual and correct the offending line.
type=error

code=ebadcfg
brief=Can't parse configuration line: %s.
detail=tsh could not understand a line in its configuration file. Please consult the reference manual and correct the offending line.
type=error

code=iloaddiv
brief=Loading Division %s.
detail=tsh is about to try to load the named division.  If you see no further messages, then it was able to successfuly read the division's .t file.
type=note

code=enopryet
brief=No pairings yet for Division %s Round %d.
detail=You have asked to see pairings for a round for which tsh does not yet have any pairings information.  If you are auto-pairing, you have not yet finished entering results from the round on which this round's pairings depend.  If not, you need to enter a manual pairing command before viewing the pairings.
type=error

code=wsmtfmt
brief=config table_format is too small and has been widened.
detail=The narrowest possible width for a table number is three characters.  Please correct this in your configuration file.  In the meantime, table_format has been set to '%3s'.
type=warning

code=ebadpair
brief=#%s %s is paired to #%s %s who is paired to #%s %s.
detail=Your pairings are inconsistent and you must fix them using the 'pair' command.
type=error

code=eselpair
brief=#%s %s is paired to himself/herself.
detail=Your pairings are inconsistent and you must fix them using the 'pair' command.
type=error

code=eneed_max_rounds
brief=You must specify config max_rounds to use this command.
detail=In order to calculate Chew Pairings, tsh needs to know who can catch up to whom before the end of the tournament, and it therefore needs to know the number of rounds in the tournament, which you must specify using the 'config max_rounds' command in your configuration file.  You also need max_rounds when using the DRYrun command, the PRiZes command, or when requesting Gibsonization checks using 'config gibson = 1', and in future its use may be mandatory.
type=error

code=ebigrd
brief=You cannot compute pairings for Round %d because config max_rounds = %d.
detail=The max_rounds configuration parameter sets the largest allowable round number.  If you need to exceed this, change your configuration.
type=error

code=wwant_prize_bands
brief=You should specify config prize_bands to use this command.
detail=In order to calculate Chew Pairings or do Gibsonization checking, tsh needs to know which final rankings are equivalent, which you should specify using the 'config prize_bands' command in your configuration file.  To say that ranks 1 and 2 are equivalent for Division A, as are 3-10, use the line: config prize_bands{'A'} = [2,10].  If you don't do this, tsh will assume a value of [number of players divided by four] for your division: all that matters to players is whether or not they finish in the top quarter.  
type=warning

code=ealpaird
brief=No players need to be paired.
detail=You should probably contact John Chew if you see this message. In technical terms, it means that when a pairings algorithm requested a list of players who needed to be paired, it was given an empty list.  Unless the division has fewer than two players, it's hard to imagine how this might happen.
type=error

code=eallsin
brief=All scores have been entered for Division %s in Round %d.
detail=If you need to edit scores that have already been entered, use the EditScores command.
type=error

code=emisss
brief=Some scores are still missing for Division %s in Round %d, including one for %s.
detail=You cannot enter any scores for one round before all the scores for the preceding round are entered.  You should either set the score slips for the next round aside until this round's slips are all located, or enter provisional information for this round and correct it later using EditScores.
type=error

code=enosuchp
brief=There is no player #%d.
detail=Check your typing, you probably mistyped the division name or player number.
type=error

code=enotabye
brief=%s did not have a bye in Round %d.
detail=You entered a single score for a player. You may only do so if the player had a bye/forfeit, in which case the score should be the player's assigned spread adjustment for that round.  If you meant to enter a bye, you should check that you entered the player number correctly, and that the player is currently paired as a bye.  
type=error

code=ehass
brief=%s already has a score (%d).
detail=You cannot enter a score for a player who already has a score. This is to prevent you from accidentally overwriting valid information. To change an existing score, use the EditScores command.  To delete a score entirely, use the DELETEscore command.
type=error

code=emisss2
brief=Some scores are still missing for Division %s in Round %d, including one for %s.
detail=You cannot automatically generate pairings until the round on whose standings you are basing your pairings has a complete set of scores.  You should finish entering the necessary scores, or enter provisional information and correct it later using EditScores.
type=error

code=eapwrr
brief=Can't autopair Round %d: next round to pair is %d.
detail=You can't generate the pairings for a round until the pairings for all preceding rounds are ready.  Ask for the earlier pairings first.
type=error

code=iautopr
brief=Auto-pairing.
detail=You have triggered automatic computation of pairings as set up in your configuration file.  Pairings are computed when all of the results for the source round have been entered and the pairings for a new round are requested.
type=note

code=eapfail
brief=Auto-pairing command "%s" failed.
detail=I was unable to run the requested auto-pairing command.  John Chew would be interested to learn how you managed to trigger this error message.
type=error

code=euprnop
brief=There aren't any pairings yet in Division %s.
detail=You cannot delete pairings from a division which does not have them. Check which division you were trying to delete pairings from and try again.
type=error

code=euprwrr
brief=The only round that you can unpair is the last one, Round %d.
detail=If you want to delete more than one round's pairings from a division, delete the last one first.  If you have a lot of deleting to do, consider editing the .t file or reverting to an earlier journalled copy.
type=error

code=euprhass
brief=You can't unpair Round %d because it has a score for %s and possibly others.
detail=You must delete all scores from a round before deleting its pairings. Use the DELETEscore command or edit the .t file.
type=error

code=iuprok
brief=Deleting pairings for Division %s Round %d.
detail=You are successfully deleting the pairings you asked for.  No further action is required on your part, unless you didn't mean to delete the pairings, in which case you should recover the appropriate journalled .t file.
type=note

code=idone
brief=Done.
detail=The lengthy or verbose action that you requested has completed successfully.
type=note

code=insok
brief=Calculating Swiss pairings for Division %s Round %d based on Round %d standings with %d repeats allowed.
detail=I have begun calculating the Swiss pairings you asked for.
type=note

code=iswok
brief=Calculating Swiss pairings for Division %s Round %d based on Round %d standings with %d repeats allowed.
detail=I have begun calculating the Swiss pairings you asked for.
type=note

code=ippswok
brief=Calculating Swiss pairings for Division %s Round %d based on Round %d standings with %d repeats allowed.
detail=I have begun calculating the Swiss pairings you asked for.
type=note

code=ip1324ok
brief=Calculating 1-3 2-4 pairings for Division %s Round %d based on Round %d standings with %d repeats allowed.
detail=I have begun calculating the 1-3 2-4 pairings you asked for.
type=note

code=ipreswok
brief=Calculating Swiss pairings for Division %s Round %d based on Round %d standings with %d repeats allowed.
detail=I have begun calculating the Swiss pairings you asked for.
type=note

code=enomod
brief=Error loading module %s.
detail=The action you required cannot be performed because the named Perl library module could not be loaded.  You should try using the 'update' command to make sure that you have a complete current tsh distribution before reporting the problem to John Chew.
type=error

code=ebadp
brief=No such player: %d.
detail=You mistyped either a player number or division name. Please check it and reenter your command.
type=error

code=ebadhuh
brief=No such message code: %s.
detail=You asked for an explanation of a message but entered a nonexistent code. Please check it carefully and reenter it.
type=error

code=iquit
brief=tsh quits.
detail=You asked tsh to quit, so it did.  If you want it to do anything else, run it again.
type=note

code=eacpnsb
brief=If you are sure you want to pair Round %d based on Round %d, please specify config session_breaks.
detail=It looks like you are relying on the default Chew pairing system, but the program is not sure whether you wanted to compute pairings for the upcoming round based on the first or second preceding round.  You can resolve the ambiguity by setting a value for the configuration variable 'session_breaks' in your configuration file.
type=error

code=eacpbadr
brief=Can't automatically pair Round %d based on Round %d.
detail=You may only pair a round based on standings from either of the two preceeding rounds.  Please enter some more scores before asking before that round's pairings again.
type=error

code=easbad12
brief=%s was supposed to go %s.
detail=tsh is keeping track of firsts and seconds (starts and replies) because you have the configuration option "track_firsts = 1" set, but not assigning firsts and seconds because you did not set "assign_firsts = 1".  In this case, tsh uses the order in which you enter scores to determine who actually played first.  Sometimes tsh can tell by counting firsts and seconds that the wrong player went first.  If this happens a lot, you should caution the players involved.
type=error

code=eacprnsb
brief=Pairings after Round %d session break must be based on Round %d.
detail=After a session break, you must use the preceding round's results.  That's the definition of a session break.  You should either finish entering the results from the last round before the session, or correct the value of the session_breaks configuration variable.
type=error

code=wevalarg
brief=EVAL arguments don't match: '%s' vs. '%s'.
detail=You should never see this message. If you do, please contact John Chew and describe to him the circumstances under which it appeared.
type=warning

code=idebug0
brief=Debugging for '%s' is now off.
detail=You will no longer see debugging messages associated with the code you gave.
type=note

code=idebug1
brief=Debugging for '%s' is now on.
detail=You will now start seeing debugging messages associated with the code you gave.
type=note

code=edeprec
brief=This command is deprecated and may not be present in the next version of tsh. Use %s instead.
detail=If you rely on this command and do not wish to see it deleted in the next version of tsh, contact John Chew right away.
type=error

code=iifok
brief=Calculating initial pre-Fontes pairings for Division %s.
detail=I have begun calculating the pre-Fontes pairings you asked for.
type=note

code=eifnot3
brief=The only implemented number of rounds so far is 3, not %d.
detail=I only ever use this command for three rounds, and can't think of a time when one would want to use it for fewer.  If you can, send me e-mail.  If you want just one round's worth, use the NewSwiss command.
type=error

code=ievtname
brief=Event loaded: %s.
detail=If this is not the event you wanted to load, quit tsh and load a different one.  If you do not specify an event to load, tsh will look for the most recently changed configuration file.
type=note

code=irandok
brief=Adding random scores to Division %s.
detail=I am adding the random scores you asked for.  If you need to delete them, you should either revert to an older journalled copy of the .t file, or edit the .t file by hand.
type=note

code=erotocfg
brief=No roto file defined.
detail=You must set "config rotofile" before using the ROTO command.  That option specifies the location of the rotisserie team file, and must be read before the command can list standings.
type=error

code=erotoope
brief=Can't open %s: %s
detail=I was unable to open the rotofile that you specified.  Please check that the filename is specified correctly in your configuration file, that the file exists in your event folder, and is readable.
type=error

code=erotoown
brief=Team %d has two owners: %s and %s.
detail=There must only be one "owner" line in each team.  You either ran two teams together, or listed more than one owner.  Please fix the rotofile.
type=error

code=erotounp
brief=Team %d has an unknown player: %s.
detail=Player names must be spelled exactly as in the ".t" file.  Please check the spelling of this player and correct it.
type=error

code=erotodup
brief=Team %d has a duplicate player: %s.
detail=Each player can appear on a team only once.  Please remove the duplicate entry.
type=error

code=erotosyn
brief=Can't make sense of: %s
detail=rotofile lines must be blank or begin with the word "owner" or "player".  Please correct this line.
type=error

code=erotosiz
brief=%s has %d player(s), not %d.
detail=All teams should have the same number of players, but I have just noticed that two consecutive teams have differing numbers of players.  Please correct this.
type=error

code=errpartp
brief=Can't add round robin pairings: last round is partly paired.
detail=If you are sure that you want to add round robin pairings to this division, either complete the last round's pairings with another command, or delete them with UnPairRound.
type=error

code=eprbadr
brief=The next round of pairings that player #%d needs is %d, not %d.
detail=You can't leave gaps in the pairing schedule. If you're not sure why you're getting this message, it's possible that your tournament data doesn't read the way you think it does.  Try using the ShowscoreCard command to look at the player in question, or the ShowPairings command to look at all the pairings for the round.  If you're still not sure why you're seeing this message, please send a copy of your .t file to John Chew.
type=error

code=iprwasp
brief=%s used to be paired to %s.
detail=You've asked for the pairings for the first named player to be changed, and I am telling you to whom they used to be paired in case you want to undo the change.
type=note

code=elooknod
brief=No dictionaries are available.  Try the 'update-dict' command.
detail=Dictionaries for 'tsh' are obtained separately from the main distribution, because of their size.  If you have an Internet connection, use the 'update-dict' command to download them now, then rerun tsh.
type=error

code=irpok
brief=Calculating random pairings for Division %s Round %d, assigning a bye if necessary based on Round %d standings, with %d repeats allowed.
detail=I have begun calculating the random pairings you asked for.
type=note

code=irsem
brief=Avoiding pairing players from the same team this round.
detail=Because you have specified exagony or initial_exagony in your configuration file, I will not pair players from the same team (as specified in the "team" extension field in your .t file) this round.
type=note

code=epfail
brief=Pairings failed.
detail=I can't compute the pairings you asked for. Try increasing the number of allowable repeats or do at least some of the pairings manually using the PAIR command.  If you asked me not to pair team members together, make sure everyone belongs to a team.
type=error

code=ebadscore
brief=%s is not a valid score.
detail=Scores may currently range from -150 to 1500. If you absolutely must enter a score out of this range, you should edit the .t file directly.
type=error

code=ikothok
brief=Calculating King-Of-The-Hill pairings for Division %s Round %d, based on Round %d standings, with %d repeats allowed.
detail=I have begun calculating the random pairings you asked for.
type=note

code=edivbad12
brief=Firsts/seconds inconsistent for %s and %s in Round %d.
detail=tsh is keeping track of firsts and seconds (starts and replies) because you have the configuration option "track_firsts = 1" set, but it has inconsistent information about the named players.  In the .t file, if one of the players has their p12 value for this round set to 1 (they played first), the other must be 2; if one is set to 3 (they must draw), so must the other.  You should correct the situation either by editing the .t file or using the EditScores command (and its "first" and "second" subcommands), and if the problem is the result of a bug in tsh bring it to John Chew's attention.
type=error

code=enodivs
brief=No divisions defined in configuration file!
detail=You must enter lines of the form "division a a.t" in your config.tsh file, one per division.  tsh was unable to find any correctly formatted lines of this form.  Some older versions of tsh may give this message if they are unable to read your config.tsh file because it doesn't have the correct line-break characters.
type=error

code=emultmatch
brief=There is more than one player whose name matches %s: %s.
detail=If "Chew, John" is the only player in your tournament who has a J in his given name and a C in his surname, then you can refer to him as "C,J" in command lines rather than using his player number.  You must type enough of a player's name to disambiguate her from all other players.
type=error

code=emanymatch
brief=There are more than ten players whose names match %s.
detail=If "Chew, John" is the only player in your tournament who has a J in his given name and a C in his surname, then you can refer to him as "C,J" in command lines rather than using his player number.  You must type enough of a player's name to disambiguate him from all other players.
type=error

code=enomatch
brief=There are no players whose names match %s.
detail=If "Chew, John" is the only player in your tournament who has a J in his given name and a C in his surname, then you can refer to him as "C,J" in command lines rather than using his player number.  You must type enough of a player's name to disambiguate him from all other players.
type=error

code=ebadabspspread
brief=Game spread %s is not a nonnegative integer.
detail=You have specified config entry = 'absp', and should therefore enter game results as: winner loser spread.  Spread must be a nonnegative number.
type=error

code=wsetassignfirsts
brief=Config entry = 'spread' overrides config assign_firsts = 0.
detail=Spread data entry mode requires that you assign starts and replies to players, as this information is not accepted when scores are entered.  Your configuration file is inconsistent and one line must therefore be ignored.  If you do not wish to see this warning in future, please correct your configuration file.
type=warning

code=wsettrackfirsts
brief=Config entry = 'spread' overrides config track_firsts = 0.
detail=Spread data entry mode requires that you track starts and replies to players, as this information is not accepted when scores are entered.  Your configuration file is inconsistent and one line must therefore be ignored.  If you do not wish to see this warning in future, please correct your configuration file.
type=warning

code=ebadconfigentry
brief=Bad value for config entry: %s
detail=You have specified an unacceptable value for config entry in your configuration file.  Acceptable values are 'absp' and 'nsa'.  This run of tsh will take place with config entry = 'nsa'.  Please correct your configuration file next time.
type=error

code=irrtok
brief=Calculating precomputed round robin pairings for Division %s (multiple=%d).
detail=I have begun calculating the round robin pairings you asked for.  I know am using a precomputed round robin schedule built into tsh.
type=note

code=irrcok
brief=Calculating Clark round robin pairings for Division %s.
detail=I have begun calculating the round robin pairings you asked for.  I could not find a precomputed schedule for the number of players in your division, so I am using the Clark algorithm, which does not balance starts and replies.  Contact John Chew to avoid this message in future.
type=note

code=eplyrror
brief=Cannot set %s for %s in Round %d to %s: round number is out of range.
detail=I tried to set the value of some player data but was unable to do so because the round number involved was too far in the future.  This error can only be caused by an unforeseen error in tsh and should be reported to John Chew as soon as possible.
type=error

code=eplyrbv
brief=Cannot set %s for %s in Round %d to %s: bad value.
detail=I tried to set the value of some player data but was unable to do so because I noticed that the value in question was not permissible.  This error can only be caused by an unforeseen error in tsh and should be reported to John Chew as soon as possible.
type=error

code=etshtpon
brief=Cannot start tsh in server mode: %s.
detail=This message indicates that you have come across a system configuration in which tsh cannot launch in server mode. Remove the "config port" line from your config.tsh file to launch directly into interactive mode. Please report the circumstances under which you saw this message to John Chew, in as much detail as you can.
type=error

code=eneedename
brief=You must specify config event_name before using this command.
detail=The AUPAIR command needs an event name to save in its .TOU file.  Please edit your configuration settings to include one.
type=error

code=eneededate
brief=You must specify config event_date before using this command.
detail=The AUPAIR command needs an event date to save in its .TOU file.  Please edit your configuration settings to include one.
type=error

code=eboardfull
brief=In round %d, %s is stationed at board %d, which is already occupied by %s and %s.
detail=There is an inconsistency in the assignment of players to boards.  The most likely cause of this is a corrupt hand-edited .t file, which should be edited by hand if tsh is unable to automatically resolve the problem.  If this problem occurs spontaneously, please contact John Chew.
type=error

code=eboarddiff
brief=%s and %s are playing each other but at different boards.
detail=There is an inconsistency in the assignment of players to boards.  You should never see this message.  If you do, it means that not only is your .t file corrupt, but tsh was unable to detect or correct the corruption.  Please send a copy of the bad .t file, then manually edit it to correct the problem before continuing with your tournamnet.
type=error

code=ebadtpn
brief=Your .t file is corrupt: player #%d is listed as playing the nonexistent player #%d.
detail=You should edit the pairings for the player in question and have him/her play a legitimate player.
type=error

code=esnop
brief=%s has a score but no opponent in Round %d.
detail=You should not see this message unless you manually edited your .t files or there is a serious bug in tsh.  If you suspect the latter, contact John Chew.
type=error

code=enoos
brief=%s has a score in Round %d, but opponent (#%d) does not.
detail=You should not see this message unless you manually edited your .t files or there is a serious bug in tsh.  If you suspect the latter, contact John Chew.
type=error

code=enoms
brief=%s has no score in Round %d, but opponent (#%d) does (%d).
detail=You should not see this message unless you manually edited your .t files or there is a serious bug in tsh.  If you suspect the latter, contact John Chew.
type=error

code=euprhas1s
brief=You can't unpair player %d in Round %d because he/she has a score.
detail=You must delete scores before deleting pairings. Use the DELETEscore command or edit the .t file.
type=error

code=iupr1ok
brief=... %d unpaired from %d.
detail=You have successfully deleted a pairing you asked for.  No further action is required on your part, unless you didn't mean to delete the pairing, in which case you should recover the appropriate journalled .t file.
type=note

code=idivupdok
brief=Updating %s.
detail=You have changed the data for the given file, and it is being updated. A copy of the previous version of the file will be saved in the journalling directory, usually called 'old'.
type=note

code=edivupdcre
brief=Cannot create division file %s (%s).
detail=The indicated error has occurred while tsh was trying to create a new copy of a .t file.  The most likely cause is that the event directory either disappeared or has the wrong access permissions.  You must have permission to create new files in the event directory.
type=error

code=edivupdbak
brief=Cannot backup division to %s (%s).
detail=The indicated error has occurred while tsh was trying to save a backup copy of a .t file.  The most likely cause is that the backup directory either disappeared or has the wrong access permissions.  If you rerun tsh, it will try to recreate the backup directory with correct permissions.  If this does not work, try creating it manually and let John Chew know what happened.
type=error

code=icpok
brief=Calculating Chew pairings for Division %s Round %d based on Round %d standings.
detail=I have begun calculating the Chew pairings you asked for.
type=note

code=enoop
brief=%s has no opponent in Round %d, but someone has him/her as an opponent.
detail=You should not see this message unless you manually edited your .t files or there is a serious bug in tsh.  If you suspect the latter, contact John Chew.
type=error

code=erpowp
brief=%s was already paired with player #%d in Round %d, is being repaired with player #%d.
detail=You should not see this message unless there is a serious bug in tsh. Please check your pairings and contact John Chew.
type=error

code=ernos
brief=You still need results for Round %d.
detail=The pairings that you have requested cannot be computed until results are in for the specified round.
type=error

code=eapbr
brief=Bad autopair line begins "autopair %s %d %d...": source round must be less than target round.
detail=In your configuration file, the first number on an autopair line is the round on whose standings the pairings will be based, and the second number is the round whose pairings need to be computed.  The first number must be less than the second number, so please edit your configuration file to fix the problem.
type=error

code=eifpppo
brief=Can't pair odd number of partly-paired players in round %d.
detail=Under some circumstances, tsh can set up InitFontes pairings even when some players have been assigned pairings in the first three rounds.  It does so by trying to pair players who have some assigned pairings in those rounds with each other.  It can't do so if the number of such players is odd in any round.  Please adjust the pairings so that the number is always even.
type=error

code=eifstuck
brief=Got stuck pairing partly-paired players: %s.
detail=Under some circumstances, tsh can set up InitFontes pairings even when some players have been assigned pairings in the first three rounds.  It does so by trying to pair players who have some assigned pairings in those rounds with each other.  In this case, tsh appears to have painted itself into a corner trying to do so.  You might try running the command again, as there is a random component to the pairings, or you might just finish manually pairing the partly-paired players with each other.
type=error

code=ebaddiv
brief=No such division: %s.
detail=The given string was entered where a division was expected, perhaps in a prize list.  It should be changed to be the correct name of a division.
type=error

code=ebadcmd
brief=No such command: %s.
detail=The command you entered is unknown to tsh.  Please check your typing and reenter it.
type=error

code=econfcmd
brief=Command name conflict for: %s. Some commands may not be available.
detail=This message should not appear unless you have installed your own commands. Talk to John Chew about this one.
type=error

code=eloadxcmd
brief=Can't load external commands from %s: %s.
detail=Something went unexpectedly wrong when loading external commands.  The only user-correctable cause of this would be an aborted partial installation of tsh.  If you suspect this, try updating your copy of tsh; otherwise contact John Chew.
type=error

code=enopixind
brief=Can't load photo index '%s': %s. Try running update-pix.
detail=An error occurred while tsh was trying to load the index of player photos. You should either run update-pix to fetch a correct version of the index, or not specify config player_photos.
type=error

code=ebadpixind
brief=Error reading photo index at line %d.  Try running update-pix.
detail=An error occurred while tsh was trying to read the index of player photos. You should either run update-pix to fetch a correct version of the index, or not specify config player_photos.
type=error

code=enopic
brief=The photo for '%s' is indexed but missing. Try running update-pix.
detail=The photo for the named player is listed in the index of player photos, so it should be in your photo library, but it isn't. Try running update-pix to rebuild the library.
type=error

code=ecopypic
brief=Can't copy photo '%s': %s.
detail=The named player photo could not be copied for the stated reason. The most common reason for this is lack of disk space.
type=error

code=wentryabsp
brief="config entry='absp'" is deprecated.  Please use "config entry='spread'".
detail=Spread-based entry is no longer universal at ABSP tournaments, so the value of the configuration parameter has been changed, and the old value will be unacceptable in future.
type=warning

code=wentrynsa
brief="config entry='nsa'" is deprecated.  Please use "config entry='scores'".
detail=Scores-based entry is not exclusive to the NSA, so the value of this configuration parameter has been changed, and the old value will be unacceptable in future.
type=warning

code=wmanpair
brief="config manual_pairings = 1" is deprecated.  Please use "config pairing_system='manual'".
detail=The number of different pairing systems is gradually increasing, and we want to minimize the number of different configuration variables it is necssary to support. The old style configuration of manual pairings will become unacceptable in future, so please stop using it now.
type=warning

code=ebtabmet
brief=Bad value for "config table_method": '%s'.
detail=The only acceptable value for table_method is: 'consecutive'. Please correct your configuration.
type=error

code=eclassdiv
brief=Unknown division in "classes" command in configuration file: '%s'.
detail=You must declare divisions using the "division" command before you use the "classes" command to declare their classes.  Please correct your configuration file.
type=error

code=eclassnum
brief=Bad number in "classes" command in configuration file: '%s'.
detail=The syntax for the "classes" command consists of the word "classes", a space, the name of a previously declared division, a space, and an integer in the range [2,26].  Please correct your configuration file.
type=error

code=itruncs
brief=Data for Division %s has been truncated to %s rounds.
detail=As per your request, the division data has been truncated. To recover it, look through the journalled files in the 'old' subdirectory.
type=note

code=wtruncf
brief=No data needed to be truncated, nothing was done.
detail=You asked for division data to be truncated after a certain round, but no data had been entered or generated past that round, so no changes were made.
type=warning

code=warnhied
brief=You have asked for HTML files in your event directory together with player photos, but only the HTML files in your web (html) directory will have working photos.
detail=config player_photos and config html_in_event_directory are currently incompatible.  Remove one if you do not wish to see this message.
type=warning

code=eabspr
brief=Not all results are in yet for round %d.
detail=You should not prepare the ratings grid until all results have been entered. Any grid file prepared should be discarded and not submitted.
type=error

code=iabspok
brief=Grid created.
detail=A grid file, suitable for submission to the ABSP, has been created.
type=note

code=enohtml
brief=The web page you want to see does not exist yet.
detail=Web pages are created automatically by report commands. Please use one to generate a report before asking to see it.
type=error

code=eresconf
brief=Players %s and %s have conflicting board reservations.
detail=You have stationed the players at different fixed boards using "config reserved", but they have to play each other.  If it is impossible for them to play each other, you'll have to manually change your pairings; otherwise one will have to play away from their home table.
type=error

code=wlowscore
brief=%d is a suspiciously low score, but has been accepted.
detail=Two-digit scores are uncommon, and may be entered when a digit is omitted from a three-digit score. Please check your data entry and use the EditScores command to correct any errors.
type=warning

code=espitcfg
brief=No spit roast file defined.
detail=You must set "config spitfile" before using the SPITroast command.  That option specifies the location of the spit roast team file, and must be read before the command can list standings.
type=error

code=espitope
brief=Can't open %s: %s
detail=I was unable to open the spitfile that you specified.  Please check that the filename is specified correctly in your configuration file, that the file exists in your event folder, and is readable.
type=error

code=espitsyn
brief=Can't make sense of: %s
detail=spitfile lines must look something like: 1 2 4 5 6 7 3 8; John Chew; John's First Picks.  Please correct the offending line.
type=error

code=espit2t
brief=There are two teams called '%s'.
detail=Each line in your spitfile should define a team with a different name. Please correct your spitfile and try again.
type=error

code=espit2p
brief=Team %s has picked player %d twice.
detail=A team's picks should list each player in the division only once. Please correct your spitfile and try again.
type=error

code=espitbp
brief=Team %s has a bad player number: %d.
detail=A team's picks must be valid player numbers. Please correct your spitfile and try again.
type=error

code=espitmp
brief=Team %s is missing player #%d.
detail=A team's picks must list all players in the division. Please check your spitfile and try again.
type=error

code=ebadp12
brief=%s was supposed to go second vs. %s in Round %s.
detail=A player either misrecorded who went first, or went first inappropriately. If the same player repeats the offence, they should be investigated.
type=error

code=ebadp12l
brief=%s should have replied in Round(s): %s.
detail=A player either misrecorded who went first, or went first inappropriately. If the same player repeats the offence, they should be investigated.
type=error

code=enorank
brief=Cannot find rank for %s in round %d: rank is not yet computed.
detail=This error indicates a program bug in tsh. Please contact John Chew and tell him as much about the circumstances as possible.
type=error

code=wodddiv
brief=Odd number of players (%d) in Division %s.
detail=If the number of players in a division is odd, one of them will have to sit out (receiving a bye) each round. If you have two odd divisions, you may want to move a player to even them out.
type=warning

code=inullok
brief=No additional pairings needed to be computed.
detail=You asked for pairings to be computed, but after checking for byes and possibly Gibsonization, nothing needed to be done.
type=note

code=wprzprov
brief=%s has no results in Round %d, so prize assignments are provisional.
detail=The named player (and possibly others) does not have a score yet in the given round, so the prize assignments displayed may change by the time all results are in.
type=warning

code=eneedport
brief=You cannot view the GUI without "config port".
detail=The "port" configuration option specifies the port on which your tsh GUI server will run.  Good numbers to pick are four digits and greater than 1024.
type=error

code=edryne
brief=Dry run can't be run without overwriting existing data.
detail=To prevent you from clobbering live data, tsh will not let you do a dry run in a division that already has pairings data in the rounds you want to simulate. If you are sure you want to do a dry run, use the TRUNCATEROUNDS command to remove the existing data before trying the dry run again.
type=error

code=edryapf
brief=No pairings were configured for round %d.
detail=If you are using automatic pairings, you should review the autopair instructions in your configuration file and add an instruction for the missing round. If you are using manual pairings, you should not try to do a dry run. If neither is the case, please contact John Chew.
type=error

code=epabr
brief=%d is too large to be a round number.
detail=Maximum round numbers are determined by config max_rounds and config max_div_rounds.  You should either correct the number you entered or adjust your configuration.
type=error

code=epabre
brief=%d is too large to be a number of repeats.
detail=Maximum round numbers (and hence number of repeats) are determined by config max_rounds and config max_div_rounds.  You should either correct the number you entered or adjust your configuration.
type=error

code=ehaspair
brief=Division %s already has pairings.
detail=Some pairings algorithms can only be run at the beginning of a tournament, before any other pairings are computed.  You should either remove the existing pairings data (e.g. using TruncateRound or UnPairRound) or choose a different pairing algorithm.
type=error

code=enastsix
brief=NAST satellite tournaments must have six rounds.
detail=You must specify 'config max_rounds = 6' to use NAST pairings, as NAST satellite events must have exactly six rounds.
type=error

code=inastok
brief=Calculating NAST pairings for Division %s.
detail=I have begun calculating the NAST pairings you asked for.
type=note

code=enastnp
brief=Cannot compute NAST pairings for %d players.
detail=NAST pairings can only be calculated for certain division sizes, as described at the NAST web site.  Please adjust the number of players in your division and try again.
type=error

