Add translator comments
svn path=/trunk/; revision=8060
This commit is contained in:
parent
12a080ec24
commit
9d28292d73
5 changed files with 104 additions and 43 deletions
|
@ -14,13 +14,13 @@ openGLErrors = []
|
|||
try:
|
||||
import OpenGL.GL
|
||||
except:
|
||||
# Translators: This message is displayed when 3D mode is not available due to no Python OpenGL libraries
|
||||
# Translators: Error message displayed when 3D mode is not available due to no Python OpenGL libraries
|
||||
openGLErrors.append(_('No Python OpenGL support'))
|
||||
try:
|
||||
import gtk.gtkgl
|
||||
import gtk.gdkgl
|
||||
except:
|
||||
# Translators: This message is displayed when 3D mode is not available due to no Python GTKGLExt libraries
|
||||
# Translators: Error message displayed when 3D mode is not available due to no Python GTKGLExt libraries
|
||||
openGLErrors.append(_('No Python GTKGLExt support'))
|
||||
else:
|
||||
display_mode = (gtk.gdkgl.MODE_RGB | gtk.gdkgl.MODE_DEPTH | gtk.gdkgl.MODE_DOUBLE)
|
||||
|
@ -31,17 +31,23 @@ else:
|
|||
try:
|
||||
glConfig = gtk.gdkgl.Config(mode = display_mode)
|
||||
except gtk.gdkgl.NoMatches:
|
||||
# Translators: This message is displayed when 3D mode is not available due to their 3D drivers not being able to provide a suitable display mode
|
||||
# Translators: Error message displayed when 3D mode is not available due to their 3D drivers not being able to provide a suitable display mode
|
||||
openGLErrors.append(_('OpenGL libraries do not support required display mode'))
|
||||
haveGLSupport = len(openGLErrors) == 0
|
||||
|
||||
__all__ = ['GtkView']
|
||||
|
||||
# Translators: pawn name used in human readable move format
|
||||
pieceNames = {glchess.chess.board.PAWN: _('pawn'),
|
||||
# Translators: rook name used in human readable move format
|
||||
glchess.chess.board.ROOK: _('rook'),
|
||||
# Translators: knight name used in human readable move format
|
||||
glchess.chess.board.KNIGHT: _('knight'),
|
||||
# Translators: bishop name used in human readable move format
|
||||
glchess.chess.board.BISHOP: _('bishop'),
|
||||
# Translators: queen name used in human readable move format
|
||||
glchess.chess.board.QUEEN: _('queen'),
|
||||
# Translators: king name used in human readable move format
|
||||
glchess.chess.board.KING: _('king')}
|
||||
|
||||
class GtkViewArea(gtk.DrawingArea):
|
||||
|
@ -251,6 +257,7 @@ class GtkView(glchess.ui.ViewController):
|
|||
# Make a model for navigation (move object, number, description)
|
||||
model = gtk.ListStore(gobject.TYPE_PYOBJECT, int, str)
|
||||
iter = model.append()
|
||||
# Translators: Move History Combo: Go to the start of the game
|
||||
model.set(iter, 0, None, 1, 0, 2, _('Game Start'))
|
||||
self.moveModel = model
|
||||
|
||||
|
@ -284,10 +291,11 @@ class GtkView(glchess.ui.ViewController):
|
|||
if self.showComments:
|
||||
# Show the comments
|
||||
if move is None:
|
||||
titleLabel.set_markup('<big><b>%s</b></big>' % _('Game start'))
|
||||
titleLabel.set_markup('<big><b>%s</b></big>' % _('Game Start'))
|
||||
else:
|
||||
titleLabel.set_markup('<big><b>%s</b></big>' % self.generateMoveString(move))
|
||||
|
||||
# Translators: Comment text when move has no comment
|
||||
comment = _('No comment')
|
||||
if move is not None and len(move.comment) > 0:
|
||||
comment = move.comment
|
||||
|
@ -464,7 +472,7 @@ class GtkView(glchess.ui.ViewController):
|
|||
self.ui._updateViewButtons()
|
||||
|
||||
def endGame(self, game):
|
||||
# Translators: This message is displayed when a player wins. The %s is substituted with the winning player's name
|
||||
# Translators: Message displayed when a player wins. The %s is substituted with the winning player's name
|
||||
format = _('%s wins')
|
||||
|
||||
# If game completed show this in the GUI
|
||||
|
@ -473,39 +481,39 @@ class GtkView(glchess.ui.ViewController):
|
|||
elif game.result is glchess.game.RESULT_BLACK_WINS:
|
||||
title = format % game.getBlack().getName()
|
||||
else:
|
||||
# Translators: This message is displayed when a game is drawn
|
||||
# Translators: Message displayed when a game is drawn
|
||||
title = _('Game is drawn')
|
||||
|
||||
description = ''
|
||||
if game.rule is glchess.game.RULE_CHECKMATE:
|
||||
# Translators: This message is displayed when the game ends due to a player being checkmated
|
||||
# Translators: Message displayed when the game ends due to a player being checkmated
|
||||
description = _('Opponent is in check and cannot move (checkmate)')
|
||||
elif game.rule is glchess.game.RULE_STALEMATE:
|
||||
# Translators: This message is displayed when the game terminates due to a stalemate
|
||||
# Translators: Message displayed when the game terminates due to a stalemate
|
||||
description = _('Opponent cannot move (stalemate)')
|
||||
elif game.rule is glchess.game.RULE_FIFTY_MOVES:
|
||||
# Translators: This message is displayed when the game is drawn due to the fifty move rule
|
||||
# Translators: Message displayed when the game is drawn due to the fifty move rule
|
||||
description = _('No piece has been taken or pawn moved in the last fifty moves')
|
||||
elif game.rule is glchess.game.RULE_TIMEOUT:
|
||||
# Translators: This message is displayed when the game ends due to one player's clock stopping
|
||||
# Translators: Message displayed when the game ends due to one player's clock stopping
|
||||
description = _('Opponent has run out of time')
|
||||
elif game.rule is glchess.game.RULE_THREE_FOLD_REPETITION:
|
||||
# Translators: This message is displayed when the game is drawn due to the three-fold-repitition rule
|
||||
# Translators: Message displayed when the game is drawn due to the three-fold-repitition rule
|
||||
description = _('The same board state has occured three times (three fold repetition)')
|
||||
elif game.rule is glchess.game.RULE_INSUFFICIENT_MATERIAL:
|
||||
# Translators: This message is displayed when the game is drawn due to the insufficient material rule
|
||||
# Translators: Message displayed when the game is drawn due to the insufficient material rule
|
||||
description = _('Neither player can cause checkmate (insufficient material)')
|
||||
elif game.rule is glchess.game.RULE_RESIGN:
|
||||
if game.result is glchess.game.RESULT_WHITE_WINS:
|
||||
# Translators: This message is displayed when the game ends due to the black player resigning
|
||||
# Translators: Message displayed when the game ends due to the black player resigning
|
||||
description = _('The black player has resigned')
|
||||
elif game.result is glchess.game.RESULT_BLACK_WINS:
|
||||
# Translators: This message is displayed when the game ends due to the white player resigning
|
||||
# Translators: Message displayed when the game ends due to the white player resigning
|
||||
description = _('The white player has resigned')
|
||||
else:
|
||||
assert(False)
|
||||
elif game.rule is glchess.game.RULE_DEATH:
|
||||
# Translators: This message is displayed when the game ends due to a player dying
|
||||
# Translators: Message displayed when the game ends due to a player dying
|
||||
description = _('One of the players has died')
|
||||
|
||||
self.gameResult = (title, description)
|
||||
|
|
|
@ -120,12 +120,17 @@ class GtkNewGameDialog:
|
|||
|
||||
# Create model for game time
|
||||
defaultTime = glchess.config.get('new_game_dialog/move_time')
|
||||
# Translators: This is one of the options game duration combo box in the new game dialog
|
||||
# Translators: Time Combo: There is no time limit
|
||||
times = [(_('Unlimited'), 0),
|
||||
# Translators: Time Combo: Game will last one minute
|
||||
(_('One minute'), 60),
|
||||
# Translators: Time Combo: Game will last five minutes
|
||||
(_('Five minutes'), 300),
|
||||
# Translators: Time Combo: Game will last 30 minutes
|
||||
(_('30 minutes'), 1800),
|
||||
# Translators: Time Combo: Game will last one hour
|
||||
(_('One hour'), 3600),
|
||||
# Translators: Time Combo: User will configure game duration
|
||||
(_('Custom'), -1)]
|
||||
timeModel = gtk.ListStore(str, int)
|
||||
activeIter = None
|
||||
|
@ -146,8 +151,11 @@ class GtkNewGameDialog:
|
|||
widget.add_attribute(cell, 'text', 0)
|
||||
|
||||
model = gtk.ListStore(str, int)
|
||||
# Translators: Custom Time Combo: User specifying number of seconds for game duration
|
||||
units = [(_('seconds'), 1),
|
||||
# Translators: Custom Time Combo: User specifying number of minutes for game duration
|
||||
(_('minutes'), 60),
|
||||
# Translators: Custom Time Combo: User specifying number of hours for game duration
|
||||
(_('hours'), 3600)]
|
||||
for (name, multiplier) in units:
|
||||
iter = model.append()
|
||||
|
@ -165,8 +173,11 @@ class GtkNewGameDialog:
|
|||
|
||||
# Create the model for difficulty options
|
||||
levelModel = gtk.ListStore(str, str, str)
|
||||
# Translators: AI Difficulty Combo: AI set to easy difficulty
|
||||
levels = [('easy', _('Easy'), 'weather-few-clouds'),
|
||||
# Translators: AI Difficulty Combo: AI set to normal diffuculty
|
||||
('normal', _('Normal'), 'weather-overcast'),
|
||||
# Translators: AI Difficulty Combo: AI set to hard diffuculty
|
||||
('hard', _('Hard'), 'weather-storm')]
|
||||
for (key, label, icon) in levels:
|
||||
iter = levelModel.append()
|
||||
|
@ -229,21 +240,26 @@ class GtkNewGameDialog:
|
|||
if g is not None:
|
||||
self.__gui.get_widget('game_name_entry').set_text(g.name)
|
||||
self.__customName = True
|
||||
# Translators: Error displayed when unable to load a game due to
|
||||
# the require game engine not being available. %s is replaced with
|
||||
# the name of the missing engine.
|
||||
noEngineFormat = _('Unable to find %s engine')
|
||||
if not self.__setCombo('white_type_combo', g.white.type):
|
||||
errors.append(_('Unable to find %s engine') % repr(g.white.type))
|
||||
errors.append(noEngineFormat % repr(g.white.type))
|
||||
self.__setCombo('white_difficulty_combo', g.white.level)
|
||||
if not self.__setCombo('black_type_combo', g.black.type):
|
||||
errors.append(_('Unable to find %s engine') % repr(g.black.type))
|
||||
errors.append(noEngineFormat % repr(g.black.type))
|
||||
self.__setCombo('black_difficulty_combo', g.black.level)
|
||||
# TODO: Others
|
||||
|
||||
# Change title for loaded games
|
||||
if g.path is not None:
|
||||
# Translators: This is the title of the dialog when continuing a loaded game
|
||||
# Translators: New Game Dialog: Title of the dialog when continuing a loaded game
|
||||
self.window.set_title(_('Configure loaded game (%i moves)') % len(g.moves))
|
||||
|
||||
# Display warning if missing the AIs
|
||||
if len(errors) > 0:
|
||||
# Translators: New Game Dialog: Title of error box when loaded game had AI engines missing
|
||||
self.__gui.get_widget('info_title_label').set_markup('<big><b>%s</b></big>' % _('Game settings changed'))
|
||||
self.__gui.get_widget('info_description_label').set_markup('<i>%s</i>' % '\n'.join(errors))
|
||||
self.__gui.get_widget('info_box').show()
|
||||
|
@ -306,7 +322,7 @@ class GtkNewGameDialog:
|
|||
else:
|
||||
whiteName = self.__getComboData(self.__gui.get_widget('white_type_combo'), 2)
|
||||
blackName = self.__getComboData(self.__gui.get_widget('black_type_combo'), 2)
|
||||
# Translators: This is the default name for a new game. %(white) and %(black) are substituted for the names of the white and black players.
|
||||
# Translators: Default name for a new game. %(white) and %(black) are substituted for the names of the white and black players.
|
||||
format = _('%(white)s versus %(black)s')
|
||||
self.__gui.get_widget('game_name_entry').set_text(format % {'white': whiteName, 'black': blackName})
|
||||
|
||||
|
@ -330,14 +346,14 @@ class GtkNewGameDialog:
|
|||
# Get the players
|
||||
game.white.type = self.__getComboData(self.__gui.get_widget('white_type_combo'), 0)
|
||||
if game.white.type == '':
|
||||
# Translators: This is the default name for the white player
|
||||
# Translators: Default name for the white player
|
||||
game.white.name = _('White')
|
||||
else:
|
||||
game.white.name = self.__getComboData(self.__gui.get_widget('white_type_combo'), 2)
|
||||
game.white.level = self.__getComboData(self.__gui.get_widget('white_difficulty_combo'), 0)
|
||||
game.black.type = self.__getComboData(self.__gui.get_widget('black_type_combo'), 0)
|
||||
if game.black.type == '':
|
||||
# Translators: This is the default name for the black player
|
||||
# Translators: Default name for the black player
|
||||
game.black.name = _('Black')
|
||||
else:
|
||||
game.black.name = self.__getComboData(self.__gui.get_widget('black_type_combo'), 2)
|
||||
|
@ -447,7 +463,7 @@ class GtkLoadGameDialog:
|
|||
|
||||
fileName = self.__gui.get_widget('filechooserwidget').get_filename()
|
||||
if fileName is None:
|
||||
# Translators: This message is displayed in the load dialog when no file is selected
|
||||
# Translators: Message displayed in load game dialog when no file is selected
|
||||
error = _('Please select a file to load')
|
||||
else:
|
||||
error = self.__mainUI.feedback.loadGame(fileName, responseId == gtk.RESPONSE_YES)
|
||||
|
@ -455,6 +471,7 @@ class GtkLoadGameDialog:
|
|||
if error is not None:
|
||||
self.firstExpose = True
|
||||
self.__gui.get_widget('error_box').show()
|
||||
# Translators: Title of error box when unable to load game
|
||||
self.__gui.get_widget('error_title_label').set_markup('<big><b>%s</b></big>' % _('Unabled to load game'))
|
||||
self.__gui.get_widget('error_description_label').set_markup('<i>%s</i>' % error)
|
||||
return
|
||||
|
@ -524,6 +541,7 @@ class GtkSaveGameDialog:
|
|||
# Append .pgn to the end if not provided
|
||||
fname = chooser.get_filename()
|
||||
if fname is None:
|
||||
# Translators: Save Game Dialog: Error displayed when no file name entered
|
||||
self.__setError(_('Please enter a file name'), '')
|
||||
return
|
||||
if fname[-4:].lower() != '.pgn':
|
||||
|
@ -536,6 +554,7 @@ class GtkSaveGameDialog:
|
|||
|
||||
error = self.__mainUI._saveView(self.__view, fname)
|
||||
if error is not None:
|
||||
# Translators: Save Game Dialog: Error title when unable to save game
|
||||
self.__setError(_('Unabled to save game'), error)
|
||||
return
|
||||
else:
|
||||
|
@ -561,20 +580,27 @@ class GtkPreferencesDialog:
|
|||
moveModel = gtk.ListStore(str, str)
|
||||
widget = self.__gui.get_widget('move_format_combo')
|
||||
widget.set_model(moveModel)
|
||||
# Translators: Move Format Combo: Moves shown in human descriptive notation
|
||||
move_formats = [('human', _('Human')),
|
||||
# Translators: Move Format Combo: Moves shown in long algebraic notation (LAN)
|
||||
('lan', _('Long Algebraic')),
|
||||
# Translators: Move Format Combo: Moves shown in standard algebraic notation (SAN)
|
||||
('san', _('Standard Algebraic'))]
|
||||
for (key, label) in move_formats:
|
||||
iter = moveModel.append()
|
||||
moveModel.set(iter, 0, label, 1, key)
|
||||
|
||||
# Make modelfor board orientation
|
||||
# Make model for board orientation
|
||||
boardModel = gtk.ListStore(str, str)
|
||||
widget = self.__gui.get_widget('board_combo')
|
||||
widget.set_model(boardModel)
|
||||
# Translators: Board Side Combo: Camera will face white player's side
|
||||
view_list = [('white', _('White Side')),
|
||||
# Translators: Board Side Combo: Camera will face black player's side
|
||||
('black', _('Black Side')),
|
||||
# Translators: Board Side Combo: Camera will face human player's side
|
||||
('human', _('Human Side')),
|
||||
# Translators: Board Side Combo: Camera will face current player's side
|
||||
('current', _('Current Player'))]
|
||||
for (key, label) in view_list:
|
||||
iter = boardModel.append()
|
||||
|
@ -584,9 +610,13 @@ class GtkPreferencesDialog:
|
|||
promotionModel = gtk.ListStore(str, str)
|
||||
widget = self.__gui.get_widget('promotion_type_combo')
|
||||
widget.set_model(promotionModel)
|
||||
promotion_list = [('queen', _('Queen')),
|
||||
# Translators: Promotion Combo: Promote to a queen
|
||||
promotion_list = [('queen', _('Queen')),
|
||||
# Translators: Promotion Combo: Promote to a knight
|
||||
('knight', _('Knight')),
|
||||
('rook', _('Rook')),
|
||||
# Translators: Promotion Combo: Promote to a rook
|
||||
('rook', _('Rook')),
|
||||
# Translators: Promotion Combo: Promote to a bishop
|
||||
('bishop', _('Bishop'))]
|
||||
for (key, label) in promotion_list:
|
||||
iter = promotionModel.append()
|
||||
|
|
|
@ -359,13 +359,13 @@ class GtkUI(glchess.ui.UI):
|
|||
# Set the window title to the name of the game
|
||||
if self.view is not None and len(self.view.title) > 0:
|
||||
if self.view.needsSaving:
|
||||
# Translators: This is the window title when playing a game that needs saving
|
||||
# Translators: Window title when playing a game that needs saving
|
||||
title = _('Chess - *%(game_name)s') % {'game_name': self.view.title}
|
||||
else:
|
||||
# Translators: This is the window title when playing a game that is saved
|
||||
# Translators: Window title when playing a game that is saved
|
||||
title = _('Chess - %(game_name)s') % {'game_name': self.view.title}
|
||||
else:
|
||||
# Translators: This is the window title when not playing a game
|
||||
# Translators: Window title when not playing a game
|
||||
title = _('Chess')
|
||||
self.mainWindow.set_title(title)
|
||||
|
||||
|
@ -377,13 +377,16 @@ class GtkUI(glchess.ui.UI):
|
|||
def setTimers(self, whiteTime, blackTime):
|
||||
"""
|
||||
"""
|
||||
# Translators: Game Timer Label: Indicates that game has no time limit
|
||||
unlimitedTimeText = _('∞')
|
||||
|
||||
if whiteTime is None:
|
||||
whiteString = _('∞')
|
||||
whiteString = unlimitedTimeText
|
||||
else:
|
||||
t = whiteTime[1]
|
||||
whiteString = '%i:%02i' % (t / 60, t % 60)
|
||||
if blackTime is None:
|
||||
blackString = _('∞')
|
||||
blackString = unlimitedTimeText
|
||||
else:
|
||||
t = blackTime[1]
|
||||
blackString = '%i:%02i' % (t / 60, t % 60)
|
||||
|
@ -462,9 +465,9 @@ class GtkUI(glchess.ui.UI):
|
|||
dialog = gtk.MessageDialog(flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||
type = gtk.MESSAGE_WARNING,
|
||||
message_format = title)
|
||||
# Translators: This text is displayed in a dialog asking the user to save the current game
|
||||
dialog.format_secondary_text("If you don't save the changes to this game will be permanently lost")
|
||||
# Translators: This is the button text in the save game dialog to decline to save the game
|
||||
# Translators: Save Game Dialog: Notice that game needs saving
|
||||
dialog.format_secondary_text(_("If you don't save the changes to this game will be permanently lost"))
|
||||
# Translators: Save Game Dialog: Discard game button
|
||||
dialog.add_button(_('Close _without saving'), gtk.RESPONSE_OK)
|
||||
dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)
|
||||
dialog.add_button(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT)
|
||||
|
@ -579,10 +582,11 @@ class GtkUI(glchess.ui.UI):
|
|||
# Enable/disable OpenGL rendering
|
||||
elif name == 'show_3d':
|
||||
if value and not chessview.haveGLSupport:
|
||||
# Translators: This is the title of the dialog that is displayed when a user tries to enable 3D without the required libraries
|
||||
# Translators: No 3D Dialog: Title
|
||||
title = _('Unable to enable 3D mode')
|
||||
errors = '\n'.join(chessview.openGLErrors)
|
||||
# Translators: This is displayed in a dialog when a user tries to enable 3D without the required libraries. %(error)s will be replaced with a list of reasons why 3D is not available.
|
||||
# Translators: No 3D Dialog: Notification to user that they do not have libraries required to enable 3D.
|
||||
# %(error)s will be replaced with a list of reasons why 3D is not available.
|
||||
description = _("""You are unable to play in 3D mode due to the following problems:
|
||||
%(errors)s
|
||||
|
||||
|
@ -835,9 +839,9 @@ Please contact your system administrator to resolve these problems, until then y
|
|||
if self.view.feedback.claimDraw():
|
||||
return
|
||||
|
||||
# Translators: This is the title of the dialog that is displayed when a user requests a draw but one is not available
|
||||
# Translators: Draw Dialog: Title
|
||||
title = _("Unable to claim draw")
|
||||
# Translators: This is the message that is displayed in a dialog when a user requests a draw but one is not available
|
||||
# Translators: Draw Dialog: Notify user why they cannot claim draw
|
||||
message = _("""You may claim a draw when:
|
||||
a) The board has been in the same state three times (Three fold repetition)
|
||||
b) Fifty moves have occured where no pawn has moved and no piece has been captured (50 move rule)""")
|
||||
|
|
|
@ -32,6 +32,7 @@ class GtkNetworkGameDialog(glchess.ui.NetworkController):
|
|||
|
||||
self.profileModel = gtk.ListStore(gobject.TYPE_PYOBJECT, str)
|
||||
iter = self.profileModel.append()
|
||||
# Translators: Server Combo Box: Not connected to a server
|
||||
self.profileModel.set(iter, 0, None, 1, _('Disconnected'))
|
||||
|
||||
widget = self.__gui.get_widget('server_combo')
|
||||
|
@ -89,23 +90,28 @@ class GtkNetworkGameDialog(glchess.ui.NetworkController):
|
|||
view.set_model(self.tableModel)
|
||||
|
||||
cell = gtk.CellRendererText()
|
||||
# Translators: Available GGZ Tables: Table name column title
|
||||
column = gtk.TreeViewColumn(_('Table'), cell)
|
||||
column.add_attribute(cell, 'text', 1)
|
||||
view.append_column(column)
|
||||
cell = gtk.CellRendererText()
|
||||
# Translators: Available GGZ Tables: Seat status column title
|
||||
column = gtk.TreeViewColumn(_('Seats'), cell)
|
||||
column.add_attribute(cell, 'text', 2)
|
||||
view.append_column(column)
|
||||
cell = gtk.CellRendererText()
|
||||
# Translators: Available GGZ Tables: Table description column title
|
||||
column = gtk.TreeViewColumn(_('Description'), cell)
|
||||
column.add_attribute(cell, 'text', 3)
|
||||
view.append_column(column)
|
||||
|
||||
view = self.__gui.get_widget('seat_list')
|
||||
cell = gtk.CellRendererText()
|
||||
# Translators: Current GGZ Table: Seat name column title
|
||||
column = gtk.TreeViewColumn(_('Seat'), cell)
|
||||
column.add_attribute(cell, 'text', 2)
|
||||
view.append_column(column)
|
||||
# Translators: Current GGZ Table: Player name column title
|
||||
column = gtk.TreeViewColumn(_('Player'), cell)
|
||||
column.add_attribute(cell, 'text', 3)
|
||||
column.add_attribute(cell, 'style', 4)
|
||||
|
@ -252,10 +258,13 @@ class GtkNetworkGameDialog(glchess.ui.NetworkController):
|
|||
iter = seatModel.append()
|
||||
|
||||
if number == 0:
|
||||
# Translators: GGZ seat is occupied by the white player
|
||||
seatName = _('White')
|
||||
elif number == 1:
|
||||
# Translators: GGZ seat is occupied by the black player
|
||||
seatName = _('Black')
|
||||
else:
|
||||
# Translators: GGZ seat is occupied by a spectator
|
||||
seatName = _('Spectator')
|
||||
|
||||
style = pango.STYLE_ITALIC
|
||||
|
@ -263,11 +272,16 @@ class GtkNetworkGameDialog(glchess.ui.NetworkController):
|
|||
if type == 'player':
|
||||
style = pango.STYLE_NORMAL
|
||||
elif type == 'reserved':
|
||||
occupant = _('Reserved for %s' % name)
|
||||
# Translators: GGZ seat status: This seat is reserved. %s is replaced with
|
||||
# the name of the player the seat is reserved for.
|
||||
occupant = _('Reserved for %s') % name
|
||||
elif type == 'open':
|
||||
# Translators: GGZ seat status: This seat is not taken
|
||||
occupant = _('Seat empty')
|
||||
elif type == 'bot':
|
||||
occupant = _('AI (%s)' % name)
|
||||
# Translators: GGZ seat status: This seat contains an AI player.
|
||||
# %s is replaced with the name of the AI.
|
||||
occupant = _('AI (%s)') % name
|
||||
|
||||
seatModel.set(iter, 0, number, 1, type, 2, seatName, 3, occupant, 4, style)
|
||||
|
||||
|
|
|
@ -110,6 +110,9 @@ class ChessGame(game.ChessGame):
|
|||
|
||||
Returns an AI player to use (game.ChessPlayer).
|
||||
"""
|
||||
# Translators: Description of an AI player used in log window. %(name)s is replaced with
|
||||
# the name of the AI player. %(game)s is replaced with the name of the game the AI player
|
||||
# is in.
|
||||
description = _("'%(name)s' in '%(game)s'") % {'name': name, 'game': self.name}
|
||||
p = player.AIPlayer(self.application, name, profile, level, description)
|
||||
self.__aiPlayers.append(p)
|
||||
|
@ -442,7 +445,7 @@ class Application:
|
|||
|
||||
self.history = history.GameHistory()
|
||||
|
||||
# Translators: This is the name of the log that displays application events
|
||||
# Translators: Name of the log that displays application events
|
||||
title = _('Application Log')
|
||||
self.logger = self.ui.controller.addLogWindow(title, '', '')
|
||||
|
||||
|
@ -689,8 +692,8 @@ class Application:
|
|||
self.logger.addLine('loaded in %f seconds' % (time.time() - s))
|
||||
|
||||
else:
|
||||
# Translators: This is the text displayed on the command-line if an unknown argument is passed
|
||||
# FIXME: Should be in a dialog
|
||||
# Translators: Text displayed on the command-line if an unknown argument is passed
|
||||
print _('Usage: %s [game]') % sys.argv[0]
|
||||
sys.exit(0)
|
||||
|
||||
|
@ -701,9 +704,11 @@ class Application:
|
|||
aiName = p.name
|
||||
break
|
||||
black = (aiName, 'easy')
|
||||
# Translators: This is the name of a human versus AI game. The %s is replaced with the name of the AI player
|
||||
# Translators: Name of a human versus AI game. The %s is replaced with the name of the AI player
|
||||
gameName = _('Human versus %s') % aiName
|
||||
# Translators: Name of white player in a default game
|
||||
whiteName = _('White')
|
||||
# Translators: Name of black player in a default game
|
||||
blackName = _('Black')
|
||||
g = self.addLocalGame(gameName, whiteName, None, blackName, black)
|
||||
g.inHistory = True
|
||||
|
|
Loading…
Reference in a new issue