# include "zippy.h"
#endif
#include "backendz.h"
+#include "gettext.h"
+
+#ifdef ENABLE_NLS
+# define _(s) gettext (s)
+# define N_(s) gettext_noop (s)
+#else
+# define _(s) (s)
+# define N_(s) s
+#endif
+
/* A point in time */
typedef struct {
if (!ParseTimeControl(appData.timeControl, appData.timeIncrement,
appData.movesPerSession)) {
char buf[MSG_SIZ];
- sprintf(buf, "bad timeControl option %s", appData.timeControl);
+ sprintf(buf, _("bad timeControl option %s"), appData.timeControl);
DisplayFatalError(buf, 0, 2);
}
searchTime = min * 60 + sec;
} else {
char buf[MSG_SIZ];
- sprintf(buf, "bad searchTime option %s", appData.searchTime);
+ sprintf(buf, _("bad searchTime option %s"), appData.searchTime);
DisplayFatalError(buf, 0, 2);
}
}
if (appData.firstProtocolVersion > PROTOVER ||
appData.firstProtocolVersion < 1) {
char buf[MSG_SIZ];
- sprintf(buf, "protocol version %d not supported",
+ sprintf(buf, _("protocol version %d not supported"),
appData.firstProtocolVersion);
DisplayFatalError(buf, 0, 2);
} else {
if (appData.secondProtocolVersion > PROTOVER ||
appData.secondProtocolVersion < 1) {
char buf[MSG_SIZ];
- sprintf(buf, "protocol version %d not supported",
+ sprintf(buf, _("protocol version %d not supported"),
appData.secondProtocolVersion);
DisplayFatalError(buf, 0, 2);
} else {
case VariantBughouse: /* need four players and two boards */
case VariantKriegspiel: /* need to hide pieces and move details */
case VariantFischeRandom: /* castling doesn't work, shuffle not done */
- sprintf(buf, "Variant %s supported only in ICS mode", appData.variant);
+ sprintf(buf, _("Variant %s supported only in ICS mode"), appData.variant);
DisplayFatalError(buf, 0, 2);
return;
case Variant35:
case Variant36:
default:
- sprintf(buf, "Unknown variant name %s", appData.variant);
+ sprintf(buf, _("Unknown variant name %s"), appData.variant);
DisplayFatalError(buf, 0, 2);
return;
err = establish();
if (err != 0) {
if (*appData.icsCommPort != NULLCHAR) {
- sprintf(buf, "Could not open comm port %s",
+ sprintf(buf, _("Could not open comm port %s"),
appData.icsCommPort);
} else {
- sprintf(buf, "Could not connect to host %s, port %s",
+ sprintf(buf, _("Could not connect to host %s, port %s"),
appData.icsHost, appData.icsPort);
}
DisplayFatalError(buf, err, 1);
} else if (StrCaseCmp(appData.initialMode, "Training") == 0) {
initialMode = Training;
} else {
- sprintf(buf, "Unknown initialMode %s", appData.initialMode);
+ sprintf(buf, _("Unknown initialMode %s"), appData.initialMode);
DisplayFatalError(buf, 0, 2);
return;
}
if (appData.matchMode) {
/* Set up machine vs. machine match */
if (appData.noChessProgram) {
- DisplayFatalError("Can't have a match with no chess programs",
+ DisplayFatalError(_("Can't have a match with no chess programs"),
0, 2);
return;
}
if (!LoadGameFromFile(appData.loadGameFile,
appData.loadGameIndex,
appData.loadGameFile, FALSE)) {
- DisplayFatalError("Bad game file", 0, 1);
+ DisplayFatalError(_("Bad game file"), 0, 1);
return;
}
} else if (*appData.loadPositionFile != NULLCHAR) {
if (!LoadPositionFromFile(appData.loadPositionFile,
appData.loadPositionIndex,
appData.loadPositionFile)) {
- DisplayFatalError("Bad position file", 0, 1);
+ DisplayFatalError(_("Bad position file"), 0, 1);
return;
}
}
/* Set up other modes */
if (initialMode == AnalyzeFile) {
if (*appData.loadGameFile == NULLCHAR) {
- DisplayFatalError("AnalyzeFile mode requires a game file", 0, 1);
+ DisplayFatalError(_("AnalyzeFile mode requires a game file"), 0, 1);
return;
}
}
}
if (initialMode == AnalyzeMode) {
if (appData.noChessProgram) {
- DisplayFatalError("Analysis mode requires a chess engine", 0, 2);
+ DisplayFatalError(_("Analysis mode requires a chess engine"), 0, 2);
return;
}
if (appData.icsActive) {
- DisplayFatalError("Analysis mode does not work with ICS mode",0,2);
+ DisplayFatalError(_("Analysis mode does not work with ICS mode"),0,2);
return;
}
AnalyzeModeEvent();
AnalysisPeriodicEvent(1);
} else if (initialMode == MachinePlaysWhite) {
if (appData.noChessProgram) {
- DisplayFatalError("MachineWhite mode requires a chess engine",
+ DisplayFatalError(_("MachineWhite mode requires a chess engine"),
0, 2);
return;
}
if (appData.icsActive) {
- DisplayFatalError("MachineWhite mode does not work with ICS mode",
+ DisplayFatalError(_("MachineWhite mode does not work with ICS mode"),
0, 2);
return;
}
MachineWhiteEvent();
} else if (initialMode == MachinePlaysBlack) {
if (appData.noChessProgram) {
- DisplayFatalError("MachineBlack mode requires a chess engine",
+ DisplayFatalError(_("MachineBlack mode requires a chess engine"),
0, 2);
return;
}
if (appData.icsActive) {
- DisplayFatalError("MachineBlack mode does not work with ICS mode",
+ DisplayFatalError(_("MachineBlack mode does not work with ICS mode"),
0, 2);
return;
}
MachineBlackEvent();
} else if (initialMode == TwoMachinesPlay) {
if (appData.noChessProgram) {
- DisplayFatalError("TwoMachines mode requires a chess engine",
+ DisplayFatalError(_("TwoMachines mode requires a chess engine"),
0, 2);
return;
}
if (appData.icsActive) {
- DisplayFatalError("TwoMachines mode does not work with ICS mode",
+ DisplayFatalError(_("TwoMachines mode does not work with ICS mode"),
0, 2);
return;
}
EditPositionEvent();
} else if (initialMode == Training) {
if (*appData.loadGameFile == NULLCHAR) {
- DisplayFatalError("Training mode requires a game file", 0, 2);
+ DisplayFatalError(_("Training mode requires a game file"), 0, 2);
return;
}
TrainingEvent();
gotEof = 0;
outCount = OutputMaybeTelnet(icsPR, message, count, &outError);
if (outCount < count) {
- DisplayFatalError("Error writing to ICS", outError, 1);
+ DisplayFatalError(_("Error writing to ICS"), outError, 1);
}
} else if (count < 0) {
RemoveInputSource(isr);
- DisplayFatalError("Error reading from keyboard", error, 1);
+ DisplayFatalError(_("Error reading from keyboard"), error, 1);
} else if (gotEof++ > 0) {
RemoveInputSource(isr);
- DisplayFatalError("Got end of file from keyboard", 0, 0);
+ DisplayFatalError(_("Got end of file from keyboard"), 0, 0);
}
}
count = strlen(s);
outCount = OutputMaybeTelnet(icsPR, s, count, &outError);
if (outCount < count) {
- DisplayFatalError("Error writing to ICS", outError, 1);
+ DisplayFatalError(_("Error writing to ICS"), outError, 1);
}
}
outCount = OutputToProcessDelayed(icsPR, s, count, &outError,
msdelay);
if (outCount < count) {
- DisplayFatalError("Error writing to ICS", outError, 1);
+ DisplayFatalError(_("Error writing to ICS"), outError, 1);
}
}
}
}
if (appData.debugMode) {
- fprintf(debugFP, "recognized '%s' (%d) as variant %s\n",
+ fprintf(debugFP, _("recognized '%s' (%d) as variant %s\n"),
e, wnum, VariantName(v));
}
return v;
int error, outCount;
outCount = OutputToProcess(NoProc, data, length, &error);
if (outCount < length) {
- DisplayFatalError("Error writing to display", error, 1);
+ DisplayFatalError(_("Error writing to display"), error, 1);
}
}
msg[2] = option;
outCount = OutputToProcess(icsPR, (char *)msg, 3, &outError);
if (outCount < 3) {
- DisplayFatalError("Error writing to ICS", outError, 1);
+ DisplayFatalError(_("Error writing to ICS"), outError, 1);
}
}
int tkind;
char *p;
+#ifdef WIN32
+ if (appData.debugMode) {
+ if (!error) {
+ fprintf(debugFP, "<ICS: ");
+ show_bytes(debugFP, data, count);
+ fprintf(debugFP, "\n");
+ }
+ }
+#endif
+
if (count > 0) {
/* If last read ended with a partial line that we couldn't parse,
prepend it to the new read and try again. */
case H_GOT_UNWANTED_HEADER:
case H_GETTING_MOVES:
/* Should not happen */
- DisplayError("Error gathering move list: two headers", 0);
+ DisplayError(_("Error gathering move list: two headers"), 0);
ics_getting_history = H_FALSE;
break;
}
gameInfo.whiteRating = string_to_rating(star_match[1]);
gameInfo.blackRating = string_to_rating(star_match[3]);
if (appData.debugMode)
- fprintf(debugFP, "Ratings from header: W %d, B %d\n",
+ fprintf(debugFP, _("Ratings from header: W %d, B %d\n"),
gameInfo.whiteRating, gameInfo.blackRating);
}
continue;
break;
case H_GETTING_MOVES:
/* Should not happen */
- DisplayError("Error gathering move list: nested", 0);
+ DisplayError(_("Error gathering move list: nested"), 0);
ics_getting_history = H_FALSE;
break;
case H_GOT_REQ_HEADER:
} else if (count == 0) {
RemoveInputSource(isr);
- DisplayFatalError("Connection closed by ICS", 0, 0);
+ DisplayFatalError(_("Connection closed by ICS"), 0, 0);
} else {
- DisplayFatalError("Error reading from ICS", error, 1);
+ DisplayFatalError(_("Error reading from ICS"), error, 1);
}
}
newGame = FALSE;
if (appData.debugMode)
- fprintf(debugFP, "Parsing board: %s\n", string);
+ fprintf(debugFP, _("Parsing board: %s\n"), string);
move_str[0] = NULLCHAR;
elapsed_time[0] = NULLCHAR;
&ticking);
if (n < 22) {
- sprintf(str, "Failed to parse board string:\n\"%s\"", string);
+ sprintf(str, _("Failed to parse board string:\n\"%s\""), string);
DisplayError(str, 0);
return;
}
moveNum = (moveNum - 1) * 2;
if (to_play == 'B') moveNum++;
if (moveNum >= MAX_MOVES) {
- DisplayFatalError("Game too long; increase MAX_MOVES and recompile",
+ DisplayFatalError(_("Game too long; increase MAX_MOVES and recompile"),
0, 1);
return;
}
return;
case H_GETTING_MOVES:
/* Should not happen */
- DisplayError("Error gathering move list: extra board", 0);
+ DisplayError(_("Error gathering move list: extra board"), 0);
ics_getting_history = H_FALSE;
return;
}
if ((gameMode == IcsPlayingWhite && WhiteOnMove(moveNum)) ||
(gameMode == IcsPlayingBlack && !WhiteOnMove(moveNum))) {
if (moveList[moveNum - 1][0] == NULLCHAR) {
- sprintf(str, "Couldn't parse move \"%s\" from ICS",
+ sprintf(str, _("Couldn't parse move \"%s\" from ICS"),
move_str);
DisplayError(str, 0);
} else {
}
} else if (gameMode == IcsObserving || gameMode == IcsExamining) {
if (moveList[moveNum - 1][0] == NULLCHAR) {
- sprintf(str, "Couldn't parse move \"%s\" from ICS", move_str);
+ sprintf(str, _("Couldn't parse move \"%s\" from ICS"), move_str);
DisplayError(str, 0);
} else {
SendMoveToProgram(moveNum - 1, &first);
case IcsPlayingBlack:
if (appData.zippyPlay) return FALSE;
if (white_piece) {
- DisplayMoveError("You are playing Black");
+ DisplayMoveError(_("You are playing Black"));
return FALSE;
}
break;
case IcsPlayingWhite:
if (appData.zippyPlay) return FALSE;
if (!white_piece) {
- DisplayMoveError("You are playing White");
+ DisplayMoveError(_("You are playing White"));
return FALSE;
}
break;
case EditGame:
if (!white_piece && WhiteOnMove(currentMove)) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
return FALSE;
}
if (white_piece && !WhiteOnMove(currentMove)) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
return FALSE;
}
if (cmailMsgLoaded && (currentMove < cmailOldMove)) {
if (appData.icsActive) return FALSE;
if (!appData.noChessProgram) {
if (!white_piece) {
- DisplayMoveError("You are playing White");
+ DisplayMoveError(_("You are playing White"));
return FALSE;
}
}
case Training:
if (!white_piece && WhiteOnMove(currentMove)) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
return FALSE;
}
if (white_piece && !WhiteOnMove(currentMove)) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
return FALSE;
}
break;
}
if (currentMove != forwardMostMove && gameMode != AnalyzeMode
&& gameMode != AnalyzeFile && gameMode != Training) {
- DisplayMoveError("Displayed position is not current");
+ DisplayMoveError(_("Displayed position is not current"));
return FALSE;
}
return TRUE;
case MachinePlaysWhite:
/* User is moving for Black */
if (WhiteOnMove(currentMove)) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
return;
}
break;
case MachinePlaysBlack:
/* User is moving for White */
if (!WhiteOnMove(currentMove)) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
return;
}
break;
(int) boards[currentMove][fromY][fromX] <= (int) BlackKing) {
/* User is moving for Black */
if (WhiteOnMove(currentMove)) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
return;
}
} else {
/* User is moving for White */
if (!WhiteOnMove(currentMove)) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
return;
}
}
/* User is moving for Black */
if (WhiteOnMove(currentMove)) {
if (!appData.premove) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
} else if (toX >= 0 && toY >= 0) {
premoveToX = toX;
premoveToY = toY;
/* User is moving for White */
if (!WhiteOnMove(currentMove)) {
if (!appData.premove) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
} else if (toX >= 0 && toY >= 0) {
premoveToX = toX;
premoveToY = toY;
moveType = LegalityTest(boards[currentMove], PosFlags(currentMove),
EP_UNKNOWN, fromY, fromX, toY, toX, promoChar);
if (moveType == IllegalMove || moveType == ImpossibleMove) {
- DisplayMoveError("Illegal move");
+ DisplayMoveError(_("Illegal move"));
return;
}
} else {
gameMode = PlayFromGameFile;
ModeHighlight();
SetTrainingModeOff();
- DisplayInformation("End of game");
+ DisplayInformation(_("End of game"));
}
} else {
- DisplayError("Incorrect move", 0);
+ DisplayError(_("Incorrect move"), 0);
}
return;
}
if (!ParseOneMove(machineMove, forwardMostMove, &moveType,
&fromX, &fromY, &toX, &toY, &promoChar)) {
/* Machine move could not be parsed; ignore it. */
- sprintf(buf1, "Illegal move \"%s\" from %s machine",
+ sprintf(buf1, _("Illegal move \"%s\" from %s machine"),
machineMove, cps->which);
DisplayError(buf1, 0);
if (gameMode == TwoMachinesPlay) {
DisplayMove(currentMove-1); /* before DisplayMoveError */
SwitchClocks();
DisplayBothClocks();
- sprintf(buf1, "Illegal move \"%s\" (rejected by %s chess program)",
+ sprintf(buf1, _("Illegal move \"%s\" (rejected by %s chess program)"),
parseList[currentMove], cps->which);
DisplayMoveError(buf1);
DrawPosition(FALSE, boards[currentMove]);
|| (StrStr(message, "Permission denied") != NULL)) {
cps->maybeThinking = FALSE;
- sprintf(buf1, "Failed to start %s chess program %s on %s: %s\n",
+ sprintf(buf1, _("Failed to start %s chess program %s on %s: %s\n"),
cps->which, cps->program, cps->host, message);
RemoveInputSource(cps->isr);
DisplayFatalError(buf1, 0, 1);
} else {
/* Hint move could not be parsed!? */
sprintf(buf2,
- "Illegal hint move \"%s\"\nfrom %s chess program",
+ _("Illegal hint move \"%s\"\nfrom %s chess program"),
buf1, cps->which);
DisplayError(buf2, 0);
}
} else if (gameMode == MachinePlaysWhite ||
gameMode == MachinePlaysBlack) {
if (userOfferedDraw) {
- DisplayInformation("Machine accepts your draw offer");
+ DisplayInformation(_("Machine accepts your draw offer"));
GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD);
} else {
- DisplayInformation("Machine offers a draw\nSelect Action / Draw to agree");
+ DisplayInformation(_("Machine offers a draw\nSelect Action / Draw to agree"));
}
}
}
break;
case AmbiguousMove:
/* bug? */
- sprintf(buf, "Ambiguous move in ICS output: \"%s\"", yy_text);
+ sprintf(buf, _("Ambiguous move in ICS output: \"%s\""), yy_text);
DisplayError(buf, 0);
return;
case ImpossibleMove:
/* bug? */
- sprintf(buf, "Illegal move in ICS output: \"%s\"", yy_text);
+ sprintf(buf, _("Illegal move in ICS output: \"%s\""), yy_text);
DisplayError(buf, 0);
return;
case (ChessMove) 0: /* end of file */
if (boardIndex < backwardMostMove) {
/* Oops, gap. How did that happen? */
- DisplayError("Gap in move list", 0);
+ DisplayError(_("Gap in move list"), 0);
return;
}
backwardMostMove = blackPlaysFirst ? 1 : 0;
{
forwardMostMove++;
if (forwardMostMove >= MAX_MOVES) {
- DisplayFatalError("Game too long; increase MAX_MOVES and recompile",
+ DisplayFatalError(_("Game too long; increase MAX_MOVES and recompile"),
0, 1);
return;
}
gameInfo.variant != VariantLoadable) {
char *v = VariantName(gameInfo.variant);
if (StrStr(cps->variants, v) == NULL) {
- sprintf(buf, "Variant %s not supported by %s", v, cps->tidy);
+ sprintf(buf, _("Variant %s not supported by %s"), v, cps->tidy);
DisplayFatalError(buf, 0, 1);
return;
}
} else {
char buf[MSG_SIZ];
gameMode = nextGameMode;
- sprintf(buf, "Match %s vs. %s: final score %d-%d-%d",
+ sprintf(buf, _("Match %s vs. %s: final score %d-%d-%d"),
first.tidy, second.tidy,
first.matchWins, second.matchWins,
appData.matchGames - (first.matchWins + second.matchWins));
if (appData.testLegality) {
if (appData.debugMode)
fprintf(debugFP, "Parsed IllegalMove: %s\n", yy_text);
- sprintf(move, "Illegal move: %d.%s%s",
+ sprintf(move, _("Illegal move: %d.%s%s"),
(forwardMostMove / 2) + 1,
WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
DisplayError(move, 0);
case AmbiguousMove:
if (appData.debugMode)
fprintf(debugFP, "Parsed AmbiguousMove: %s\n", yy_text);
- sprintf(move, "Ambiguous move: %d.%s%s",
+ sprintf(move, _("Ambiguous move: %d.%s%s"),
(forwardMostMove / 2) + 1,
WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
DisplayError(move, 0);
case ImpossibleMove:
if (appData.debugMode)
fprintf(debugFP, "Parsed ImpossibleMove: %s\n", yy_text);
- sprintf(move, "Illegal move: %d.%s%s",
+ sprintf(move, _("Illegal move: %d.%s%s"),
(forwardMostMove / 2) + 1,
WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
DisplayError(move, 0);
} else {
f = fopen(filename, "rb");
if (f == NULL) {
- sprintf(buf, "Can't open \"%s\"", filename);
+ sprintf(buf, _("Can't open \"%s\""), filename);
DisplayError(buf, errno);
return FALSE;
}
if (useList && n == 0) {
int error = GameListBuild(f);
if (error) {
- DisplayError("Cannot build game list", error);
+ DisplayError(_("Cannot build game list"), error);
} else if (!ListEmpty(&gameList) &&
((ListGame *) gameList.tailPred)->number > 1) {
GameListPopUp(f, title);
int retVal;
if (gameNumber > nCmailGames) {
- DisplayError("No more games in this message", 0);
+ DisplayError(_("No more games in this message"), 0);
return FALSE;
}
if (f == lastLoadGameFP) {
{
int gameNumber = lastLoadGameNumber + offset;
if (lastLoadGameFP == NULL) {
- DisplayError("No game has been loaded yet", 0);
+ DisplayError(_("No game has been loaded yet"), 0);
return FALSE;
}
if (gameNumber <= 0) {
- DisplayError("Can't back up any further", 0);
+ DisplayError(_("Can't back up any further"), 0);
return FALSE;
}
if (cmailMsgLoaded) {
gn = 1;
}
else {
- DisplayError("Game number out of range", 0);
+ DisplayError(_("Game number out of range"), 0);
return FALSE;
}
} else {
gameNumber == 1) {
gn = 1;
} else {
- DisplayError("Can't seek on game file", 0);
+ DisplayError(_("Can't seek on game file"), 0);
return FALSE;
}
}
nCmailGames = CMAIL_MAX_GAMES - gn;
} else {
Reset(TRUE, TRUE);
- DisplayError("Game not found in file", 0);
+ DisplayError(_("Game not found in file"), 0);
}
return FALSE;
startedFromSetupPosition = TRUE;
if (!ParseFEN(initial_position, &blackPlaysFirst, gameInfo.fen)) {
Reset(TRUE, TRUE);
- DisplayError("Bad FEN position in file", 0);
+ DisplayError(_("Bad FEN position in file"), 0);
return FALSE;
}
CopyBoard(boards[0], initial_position);
if ((cm == (ChessMove) 0 && lastLoadGameStart != (ChessMove) 0) ||
cm == WhiteWins || cm == BlackWins ||
cm == GameIsDrawn || cm == GameUnfinished) {
- DisplayMessage("", "No moves in game");
+ DisplayMessage("", _("No moves in game"));
if (cmailMsgLoaded) {
if (appData.debugMode)
fprintf(debugFP, "Setting flipView to %d.\n", FALSE);
{
int positionNumber = lastLoadPositionNumber + offset;
if (lastLoadPositionFP == NULL) {
- DisplayError("No position has been loaded yet", 0);
+ DisplayError(_("No position has been loaded yet"), 0);
return FALSE;
}
if (positionNumber <= 0) {
- DisplayError("Can't back up any further", 0);
+ DisplayError(_("Can't back up any further"), 0);
return FALSE;
}
return LoadPosition(lastLoadPositionFP, positionNumber,
} else {
f = fopen(filename, "rb");
if (f == NULL) {
- sprintf(buf, "Can't open \"%s\"", filename);
+ sprintf(buf, _("Can't open \"%s\""), filename);
DisplayError(buf, errno);
return FALSE;
} else {
if (positionNumber < 0) {
/* Negative position number means to seek to that byte offset */
if (fseek(f, -positionNumber, 0) == -1) {
- DisplayError("Can't seek on position file", 0);
+ DisplayError(_("Can't seek on position file"), 0);
return FALSE;
};
pn = 1;
positionNumber == 1) {
pn = 1;
} else {
- DisplayError("Can't seek on position file", 0);
+ DisplayError(_("Can't seek on position file"), 0);
return FALSE;
}
}
}
/* See if this file is FEN or old-style xboard */
if (fgets(line, MSG_SIZ, f) == NULL) {
- DisplayError("Position not found in file", 0);
+ DisplayError(_("Position not found in file"), 0);
return FALSE;
}
switch (line[0]) {
/* skip postions before number pn */
if (fgets(line, MSG_SIZ, f) == NULL) {
Reset(TRUE, TRUE);
- DisplayError("Position not found in file", 0);
+ DisplayError(_("Position not found in file"), 0);
return FALSE;
}
if (fenMode || line[0] == '#') pn--;
if (fenMode) {
if (!ParseFEN(initial_position, &blackPlaysFirst, line)) {
- DisplayError("Bad FEN position in file", 0);
+ DisplayError(_("Bad FEN position in file"), 0);
return FALSE;
}
} else {
strcpy(moveList[0], "");
strcpy(parseList[0], "");
CopyBoard(boards[1], initial_position);
- DisplayMessage("", "Black to play");
+ DisplayMessage("", _("Black to play"));
} else {
currentMove = forwardMostMove = backwardMostMove = 0;
- DisplayMessage("", "White to play");
+ DisplayMessage("", _("White to play"));
}
SendBoard(&first, forwardMostMove);
} else {
f = fopen(filename, append ? "a" : "w");
if (f == NULL) {
- sprintf(buf, "Can't open \"%s\"", filename);
+ sprintf(buf, _("Can't open \"%s\""), filename);
DisplayError(buf, errno);
return FALSE;
} else {
} else {
f = fopen(filename, "a");
if (f == NULL) {
- sprintf(buf, "Can't open \"%s\"", filename);
+ sprintf(buf, _("Can't open \"%s\""), filename);
DisplayError(buf, errno);
return FALSE;
} else {
}
if (cmailOldMove == -1) {
- DisplayError("You have edited the game history.\nUse Reload Same Game and make your move again.", 0);
+ DisplayError(_("You have edited the game history.\nUse Reload Same Game and make your move again."), 0);
return FALSE;
}
if (currentMove > cmailOldMove + 1) {
- DisplayError("You have entered too many moves.\nBack up to the correct position and try again.", 0);
+ DisplayError(_("You have entered too many moves.\nBack up to the correct position and try again."), 0);
return FALSE;
}
if (currentMove < cmailOldMove) {
- DisplayError("Displayed position is not current.\nStep forward to the correct position and try again.", 0);
+ DisplayError(_("Displayed position is not current.\nStep forward to the correct position and try again."), 0);
return FALSE;
}
cmailMoveRegistered[lastLoadGameNumber - 1] = TRUE;
nCmailMovesRegistered ++;
} else if (nCmailGames == 1) {
- DisplayError("You have not made a move yet", 0);
+ DisplayError(_("You have not made a move yet"), 0);
return FALSE;
}
char *arcDir;
if (! cmailMsgLoaded) {
- DisplayError("The cmail message is not loaded.\nUse Reload CMail Message and make your move again.", 0);
+ DisplayError(_("The cmail message is not loaded.\nUse Reload CMail Message and make your move again."), 0);
return;
}
if (nCmailGames == nCmailResults) {
- DisplayError("No unfinished games", 0);
+ DisplayError(_("No unfinished games"), 0);
return;
}
#if CMAIL_PROHIBIT_REMAIL
if (cmailMailedMove) {
- sprintf(msg, "You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line.", appData.cmailGameName);
+ sprintf(msg, _("You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line."), appData.cmailGameName);
DisplayError(msg, 0);
return;
}
commandOutput = popen(string, "rb");
if (commandOutput == NULL) {
- DisplayError("Failed to invoke cmail", 0);
+ DisplayError(_("Failed to invoke cmail"), 0);
} else {
for (nBuffers = 0; (! feof(commandOutput)); nBuffers ++) {
nBytes = fread(buffer, 1, MSG_SIZ - 1, commandOutput);
if (!cmailMsgLoaded) return "";
if (cmailMailedMove) {
- sprintf(cmailMsg, "Waiting for reply from opponent\n");
+ sprintf(cmailMsg, _("Waiting for reply from opponent\n"));
} else {
/* Create a list of games left */
sprintf(string, "[");
switch (nCmailGames) {
case 1:
sprintf(cmailMsg,
- "Still need to make move for game\n");
+ _("Still need to make move for game\n"));
break;
case 2:
sprintf(cmailMsg,
- "Still need to make moves for both games\n");
+ _("Still need to make moves for both games\n"));
break;
default:
sprintf(cmailMsg,
- "Still need to make moves for all %d games\n",
+ _("Still need to make moves for all %d games\n"),
nCmailGames);
break;
}
switch (nCmailGames - nCmailMovesRegistered - nCmailResults) {
case 1:
sprintf(cmailMsg,
- "Still need to make a move for game %s\n",
+ _("Still need to make a move for game %s\n"),
string);
break;
case 0:
if (nCmailResults == nCmailGames) {
- sprintf(cmailMsg, "No unfinished games\n");
+ sprintf(cmailMsg, _("No unfinished games\n"));
} else {
- sprintf(cmailMsg, "Ready to send mail\n");
+ sprintf(cmailMsg, _("Ready to send mail\n"));
}
break;
default:
sprintf(cmailMsg,
- "Still need to make moves for games %s\n",
+ _("Still need to make moves for games %s\n"),
string);
}
}
char title[MSG_SIZ];
if (currentMove < 1 || parseList[currentMove - 1][0] == NULLCHAR) {
- strcpy(title, "Edit comment");
+ strcpy(title, _("Edit comment"));
} else {
- sprintf(title, "Edit comment on %d.%s%s", (currentMove - 1) / 2 + 1,
+ sprintf(title, _("Edit comment on %d.%s%s"), (currentMove - 1) / 2 + 1,
WhiteOnMove(currentMove - 1) ? " " : ".. ",
parseList[currentMove - 1]);
}
first.analyzing = TRUE;
/*first.maybeThinking = TRUE;*/
first.maybeThinking = FALSE; /* avoid killing GNU Chess */
- AnalysisPopUp("Analysis",
- "Starting analysis mode...\nIf this message stays up, your chess program does not support analysis.");
+ AnalysisPopUp(_("Analysis"),
+ _("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."));
}
gameMode = AnalyzeMode;
pausing = FALSE;
first.analyzing = TRUE;
/*first.maybeThinking = TRUE;*/
first.maybeThinking = FALSE; /* avoid killing GNU Chess */
- AnalysisPopUp("Analysis",
- "Starting analysis mode...\nIf this message stays up, your chess program does not support analysis.");
+ AnalysisPopUp(_("Analysis"),
+ _("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."));
}
gameMode = AnalyzeFile;
pausing = FALSE;
EditPositionDone();
if (!WhiteOnMove(currentMove)) {
- DisplayError("It is not White's turn", 0);
+ DisplayError(_("It is not White's turn"), 0);
return;
}
EditPositionDone();
if (WhiteOnMove(currentMove)) {
- DisplayError("It is not Black's turn", 0);
+ DisplayError(_("It is not Black's turn"), 0);
return;
}
case MachinePlaysWhite:
case MachinePlaysBlack:
if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) {
- DisplayError("Wait until your turn,\nor select Move Now", 0);
+ DisplayError(_("Wait until your turn,\nor select Move Now"), 0);
return;
}
/* fall through */
} else {
/* kludge: allow timeout for initial "feature" command */
FreezeUI();
- DisplayMessage("", "Starting second chess program");
+ DisplayMessage("", _("Starting second chess program"));
ScheduleDelayedEvent(TwoMachinesEventIfReady, FEATURE_TIMEOUT);
}
return;
if (gameMode == Training) {
SetTrainingModeOff();
gameMode = PlayFromGameFile;
- DisplayMessage("", "Training mode off");
+ DisplayMessage("", _("Training mode off"));
} else {
gameMode = Training;
animateTraining = appData.animate;
/* make sure we are not already at the end of the game */
if (currentMove < forwardMostMove) {
SetTrainingModeOn();
- DisplayMessage("", "Training mode on");
+ DisplayMessage("", _("Training mode on"));
} else {
gameMode = PlayFromGameFile;
- DisplayError("Already at end of game", 0);
+ DisplayError(_("Already at end of game"), 0);
}
}
ModeHighlight();
break;
case IcsPlayingBlack:
case IcsPlayingWhite:
- DisplayError("Warning: You are still playing a game", 0);
+ DisplayError(_("Warning: You are still playing a game"), 0);
break;
case IcsObserving:
- DisplayError("Warning: You are still observing a game", 0);
+ DisplayError(_("Warning: You are still observing a game"), 0);
break;
case IcsExamining:
- DisplayError("Warning: You are still examining a game", 0);
+ DisplayError(_("Warning: You are still examining a game"), 0);
break;
case IcsIdle:
break;
case IcsPlayingWhite:
case MachinePlaysBlack:
if (!WhiteOnMove(currentMove)) {
- DisplayMoveError("It is Black's turn");
+ DisplayMoveError(_("It is Black's turn"));
return;
}
moveType = WhiteDrop;
case IcsPlayingBlack:
case MachinePlaysWhite:
if (WhiteOnMove(currentMove)) {
- DisplayMoveError("It is White's turn");
+ DisplayMoveError(_("It is White's turn"));
return;
}
moveType = BlackDrop;
+ (int) BlackPawn - (int) WhitePawn);
}
if (boards[currentMove][y][x] != EmptySquare) {
- DisplayMoveError("That square is occupied");
+ DisplayMoveError(_("That square is occupied"));
return;
}
GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER);
cmailMoveType[lastLoadGameNumber - 1] = CMAIL_ACCEPT;
} else {
- DisplayError("There is no pending offer on this move", 0);
+ DisplayError(_("There is no pending offer on this move"), 0);
cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
}
} else {
DisplayComment(cmailOldMove - 1, "Draw declined");
#endif /*NOTDEF*/
} else {
- DisplayError("There is no pending offer on this move", 0);
+ DisplayError(_("There is no pending offer on this move"), 0);
}
} else {
/* Not used for offers from chess program */
else
GameEnds(BlackWins, "Black wins on time", GE_PLAYER);
} else {
- DisplayError("Your opponent is not out of time", 0);
+ DisplayError(_("Your opponent is not out of time"), 0);
}
break;
case MachinePlaysBlack:
else
GameEnds(WhiteWins, "White wins on time", GE_PLAYER);
} else {
- DisplayError("Your opponent is not out of time", 0);
+ DisplayError(_("Your opponent is not out of time"), 0);
}
break;
}
DisplayComment(currentMove - 1, offer);
cmailMoveType[lastLoadGameNumber - 1] = CMAIL_DRAW;
} else {
- DisplayError("You must make your move before offering a draw", 0);
+ DisplayError(_("You must make your move before offering a draw"), 0);
cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
}
} else if (first.offeredDraw) {
RevertEvent()
{
if (gameMode != IcsExamining) {
- DisplayError("You are not examining a game", 0);
+ DisplayError(_("You are not examining a game"), 0);
return;
}
if (pausing) {
- DisplayError("You can't revert while pausing", 0);
+ DisplayError(_("You can't revert while pausing"), 0);
return;
}
SendToICS(ics_prefix);
case MachinePlaysWhite:
case MachinePlaysBlack:
if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) {
- DisplayError("Wait until your turn,\nor select Move Now", 0);
+ DisplayError(_("Wait until your turn,\nor select Move Now"), 0);
return;
}
if (forwardMostMove < 2) return;
switch (gameMode) {
case MachinePlaysWhite:
if (!WhiteOnMove(forwardMostMove)) {
- DisplayError("It is your turn", 0);
+ DisplayError(_("It is your turn"), 0);
return;
}
cps = &first;
break;
case MachinePlaysBlack:
if (WhiteOnMove(forwardMostMove)) {
- DisplayError("It is your turn", 0);
+ DisplayError(_("It is your turn"), 0);
return;
}
cps = &first;
switch (gameMode) {
case MachinePlaysWhite:
if (WhiteOnMove(forwardMostMove)) {
- DisplayError("Wait until your turn", 0);
+ DisplayError(_("Wait until your turn"), 0);
return;
}
break;
case BeginningOfGame:
case MachinePlaysBlack:
if (!WhiteOnMove(forwardMostMove)) {
- DisplayError("Wait until your turn", 0);
+ DisplayError(_("Wait until your turn"), 0);
return;
}
break;
default:
- DisplayError("No hint available", 0);
+ DisplayError(_("No hint available"), 0);
return;
}
SendToProgram("hint\n", &first);
switch (gameMode) {
case MachinePlaysWhite:
if (WhiteOnMove(forwardMostMove)) {
- DisplayError("Wait until your turn", 0);
+ DisplayError(_("Wait until your turn"), 0);
return;
}
break;
case BeginningOfGame:
case MachinePlaysBlack:
if (!WhiteOnMove(forwardMostMove)) {
- DisplayError("Wait until your turn", 0);
+ DisplayError(_("Wait until your turn"), 0);
return;
}
break;
count = strlen(message);
outCount = OutputToProcess(cps->pr, message, count, &error);
if (outCount < count && !exiting) {
- sprintf(buf, "Error writing to %s chess program", cps->which);
+ sprintf(buf, _("Error writing to %s chess program"), cps->which);
DisplayFatalError(buf, error, 1);
}
}
if (count <= 0) {
if (count == 0) {
sprintf(buf,
- "Error: %s chess program (%s) exited unexpectedly",
+ _("Error: %s chess program (%s) exited unexpectedly"),
cps->which, cps->program);
RemoveInputSource(cps->isr);
DisplayFatalError(buf, 0, 1);
} else {
sprintf(buf,
- "Error reading from %s chess program (%s)",
+ _("Error reading from %s chess program (%s)"),
cps->which, cps->program);
RemoveInputSource(cps->isr);
DisplayFatalError(buf, error, 1);
}
} else {
if (blackFlag) {
- DisplayTitle("Both flags fell");
+ DisplayTitle(_("Both flags fell"));
} else {
- DisplayTitle("White's flag fell");
+ DisplayTitle(_("White's flag fell"));
if (appData.autoCallFlag) {
GameEnds(BlackWins, "Black wins on time", GE_XBOARD);
return TRUE;
}
} else {
if (whiteFlag) {
- DisplayTitle("Both flags fell");
+ DisplayTitle(_("Both flags fell"));
} else {
- DisplayTitle("Black's flag fell");
+ DisplayTitle(_("Black's flag fell"));
if (appData.autoCallFlag) {
GameEnds(WhiteWins, "White wins on time", GE_XBOARD);
return TRUE;
Board initial_position;
if (!ParseFEN(initial_position, &blackPlaysFirst, fen)) {
- DisplayError("Bad FEN position in clipboard", 0);
+ DisplayError(_("Bad FEN position in clipboard"), 0);
return ;
} else {
int savedBlackPlaysFirst = blackPlaysFirst;