Merge branch '1.7' of github.com:sanderland/katrain into 1.7

This commit is contained in:
Sander Land committed 2020-12-18 16:40:06 +01:00
commit 091f5a26ce
8 files changed
+186 -188

No files matched your search

+1 -1
View File
@@ -57,7 +57,7 @@ Many thanks to the following contributors for translations.
* French: "Dontbtme" with contributions from "wonderingabout"
* Korean: "isty2e"
* German: "nimets123" with contributions from "trohde"
* German: "nimets123", "trohde", and "Harleqin"
* Spanish: Sergio Villegas ("serpiente") with contributions from the Spanish OGS community
* Russian: Dmitry Ivankov and Alexander Kiselev
* Simplified Chinese: Qing Mu with contributions from "Medwin" and Viktor Lin
+11 -2
View File
@@ -64,10 +64,15 @@ class Move:
"""Returns True if the move is a pass"""
return self.coords is None
@staticmethod
def opponent_player(player):
"""Returns the opposing player, i.e. W <-> B"""
return "W" if player == "B" else "B"
@property
def opponent(self):
"""Returns the opposing player, i.e. W <-> B"""
return "W" if self.player == "B" else "B"
return self.opponent_player(self.player)
class SGFNode:
@@ -288,7 +293,11 @@ class SGFNode:
@property
def next_player(self):
"""Returns player to move"""
if "B" in self.properties or ("AB" in self.properties and "W" not in self.properties): # root or black moved
if "PL" in self.properties: # explicit
return "B" if self.get_property("PL").upper().strip() == "B" else "W"
elif "B" in self.properties or (
"AB" in self.properties and "W" not in self.properties and "AW" not in self.properties
): # b move or setup with only black moves like root handicap
return "W"
else:
return "B"
+1 -1
View File
@@ -696,7 +696,7 @@ class BadukPanWidget(Widget):
def draw_pv(self, pv, node, up_to_move):
katrain = self.katrain
next_last_player = [node.next_player, node.player]
next_last_player = [node.next_player, Move.opponent_player(node.next_player)]
cn = katrain.game.current_node
if node != cn and node.parent != cn:
hide_node = cn
Binary file not shown.
+133 -131
View File
@@ -8,16 +8,16 @@ msgstr ""
#. main hamburger menu
msgid "menu:playersetup"
msgstr "Spieler Setup"
msgstr "Spieler-Setup"
msgid "menu:newgame"
msgstr "Neue Partie"
msgid "menu:save"
msgstr "Partie Speichern"
msgstr "Partie speichern"
msgid "menu:load"
msgstr "Partie Laden"
msgstr "Partie laden"
msgid "menu:settings"
msgstr "Allgemeine Einstellungen"
@@ -29,7 +29,7 @@ msgid "menu:teachsettings"
msgstr "Einstellungen Übungsspiel"
msgid "menu:aisettings"
msgstr "AI Einstellungen"
msgstr "AI-Einstellungen"
msgid "menu:lang"
msgstr "Spracheinstellungen"
@@ -51,7 +51,7 @@ msgid "player:ai"
msgstr "AI"
msgid "aistrategy"
msgstr "AI Strategie"
msgstr "AI-Strategie"
msgid "gametype"
msgstr "Partieart"
@@ -99,7 +99,7 @@ msgid "analysis:sweep"
msgstr "Schnelle Analyse aller Züge"
msgid "analysis:aimove"
msgstr "AI Zug erzwingen"
msgstr "AI-Zug erzwingen"
#. right panel buttons and below board
msgid "pass-button-text"
@@ -107,8 +107,8 @@ msgstr "Passen"
msgid "ai-ponder"
msgstr ""
"Zeigt den Enginestatus an von grün (Leerlauf) bis orange(Zugberechnung). Ist"
" rot, wenn die Engine abgestürzt ist oder nicht starten konnte."
"Zeigt den Enginestatus an von grün (Leerlauf) bis orange (Zugberechnung). "
"Ist rot, wenn die Engine abgestürzt ist oder nicht starten konnte."
#. undo button on the right
msgid "undo-button-text"
@@ -131,17 +131,17 @@ msgid "tab:notes"
msgstr "Anmerkungen"
msgid "closedlabel:scoregraph"
msgstr "Punkte Graph"
msgstr "Punkte-Graph"
#. on the graph
msgid "Jigo"
msgstr "Jigo"
msgid "closedlabel:movestats"
msgstr "Zug Statistik"
msgstr "Zug-Statistik"
msgid "closedlabel:info&notes"
msgstr "Zug Info & Anmerkungen"
msgstr "Zug-Info & Anmerkungen"
#. on the board after passing once/twice
msgid "board-pass"
@@ -149,7 +149,7 @@ msgstr "Passen"
msgid "board-game-end"
msgstr ""
"Partie\n"
"Partie-\n"
"Ende"
#. Select mode
@@ -178,8 +178,8 @@ msgstr "Punkte gewonnen"
#. SGF and move comment messages
msgid "SGF start message"
msgstr ""
"Züge, die mit 'X' markiert sind, sind die besten Züge für KataGo, die "
"miteinem Quadrat sind Züge, die wenige als 0.5 Punkte verlieren."
"Züge, die mit 'X' markiert sind, sind die besten Züge für KataGo; die mit "
"einem Quadrat sind Züge, die weniger als 0.5 Punkte verlieren."
msgid "Info:score"
msgstr "Ergebnis: {score}"
@@ -195,7 +195,7 @@ msgid "move"
msgstr "Zug {number}"
msgid "Info:top move"
msgstr "Bestvorhergesagte Zug war {top_move} ({score})."
msgstr "Bestvorhergesagter Zug war {top_move} ({score})."
msgid "Info:best move"
msgstr "Zug war der bestvorhergesagte Zug"
@@ -204,7 +204,7 @@ msgid "Info:PV"
msgstr "PV: {pv}"
msgid "Info:policy rank"
msgstr "Zug war #{rank} gemäss Policy ({probability:.2%})."
msgstr "Zug war #{rank} gemäß Policy ({probability:.2%})."
msgid "Info:policy best"
msgstr "Bester Policy-Zug war {move} ({probability:.1%})."
@@ -225,11 +225,11 @@ msgid "Analyzing move..."
msgstr "Zug wird analysiert..."
msgid "SGF Notes Hint"
msgstr "Deine SGF Anmerkungen für diese Position."
msgstr "Deine SGF-Anmerkungen für diese Position."
# sgf load popup
msgid "load sgf title"
msgstr "SGF File für Analyse laden"
msgstr "SGF-Datei für Analyse laden"
msgid "load sgf fast analysis"
msgstr "Schnelle Analyse verwenden"
@@ -239,10 +239,10 @@ msgstr "Am Anfang beginnen"
# timer settings from here
msgid "timer settings"
msgstr "Timereinstellungen Anpassen"
msgstr "Timereinstellungen anpassen"
msgid "byoyomi length"
msgstr "Zeit pro Byo-yomi Periode"
msgstr "Zeit pro Byo-yomi-Periode"
msgid "byoyomi periods"
msgstr "Anzahl Perioden"
@@ -256,10 +256,10 @@ msgstr "Timer aktualisieren"
# new game settings from here
msgid "New Game title"
msgstr "Neues Spiel Einstellen"
msgstr "Neues Spiel erstellen"
msgid "board size"
msgstr "Brettgrösse"
msgstr "Brettgröße"
msgid "handicap"
msgstr "Vorgabe"
@@ -298,14 +298,14 @@ msgstr "Benutze x:y (z.B. 19:9) für nichtquadratische Grössen"
#. submit new game
msgid "new game"
msgstr "Neues Spiel Starten"
msgstr "Neues Spiel starten"
# teacher settings from here
msgid "teacher settings"
msgstr "Übungsspieleinstellungen Bearbeiten"
msgstr "Übungsspieleinstellungen bearbeiten"
msgid "point loss threshold"
msgstr "Punktverlust grösser als"
msgstr "Punktverlust größer als"
msgid "num undos"
msgstr "Anzahl der Undos"
@@ -326,7 +326,7 @@ msgstr ""
msgid "show ai dots"
msgstr ""
"Dots/SGF Kommentare \n"
"Dots/SGF-Kommentare \n"
" für AI Spieler zeigen"
msgid "lock ai when playing"
@@ -340,11 +340,11 @@ msgstr "Feedbackeinstellungen aktualisieren"
# main config settings
msgid "restarting engine"
msgstr "Engine nach Änderunge der Einstellungen neustarten."
msgstr "Engine nach Änderungen der Einstellungen neustarten."
# title
msgid "general settings title"
msgstr "Allgemeine und Engine Einstellungen"
msgstr "Allgemeine und Engine-Einstellungen"
msgid "file not found"
msgstr "Pfad existiert nicht"
@@ -353,25 +353,25 @@ msgid "general settings"
msgstr "Allgemeine Einstellungen"
msgid "engine settings"
msgstr "Engine Einstellungen"
msgstr "Engine-Einstellungen"
msgid "katago settings"
msgstr "KataGo Einstellungen"
msgstr "KataGo-Einstellungen"
msgid "config file path"
msgstr "Alle Optionen sind gespeichert in:"
msgid "engine:katago"
msgstr "Pfad zur KataGo Datei"
msgstr "Pfad zur KataGo-Datei"
msgid "engine:katago:hint"
msgstr "Leer = beigefügte Datei verwenden."
msgstr "Leer = beigefügte Datei verwenden"
msgid "engine:model"
msgstr "Pfad zur KataGo Model Datei"
msgstr "Pfad zur KataGo-Model-Datei"
msgid "engine:config"
msgstr "Pfad zur KataGo Config Datei"
msgstr "Pfad zur KataGo-Config-Datei"
msgid "engine:max_visits"
msgstr "Maximale Anzahl der Visits in Analyse"
@@ -394,16 +394,16 @@ msgid "engine:time:hint"
msgstr "Zeit in Sekunden"
msgid "general:sgf_load"
msgstr "Pfad um SGF Dateien zu laden"
msgstr "Pfad um SGF-Dateien zu laden"
msgid "general:sgf_save"
msgstr "Pfad um SGF Dateien zu speichern"
msgstr "Pfad um SGF-Dateien zu speichern"
msgid "general:anim_pv_time"
msgstr "Zeit zwischen Zügen, wenn Sequenz animiert wird"
msgid "general:debug_level"
msgstr "Debug level in der Konsole"
msgstr "Debuglevel in der Konsole"
msgid "general:debug_level:hint"
msgstr "Auf 1 setzen, wenn Fehler gemeldet werden sollen"
@@ -413,13 +413,13 @@ msgstr "Einstellungen aktualisieren"
# ai settings from here
msgid "ai settings"
msgstr "Erweiterte AI Einstellungen"
msgstr "Erweiterte AI-Einstellungen"
msgid "Select AI"
msgstr "AI Strategie zum Konfigurieren auswählen"
msgstr "AI-Strategie zum Konfigurieren auswählen"
msgid "update ai settings"
msgstr "AI Einstellungen aktualisieren"
msgstr "AI-Einstellungen aktualisieren"
#. misc errors and info messages
msgid "sgf written"
@@ -443,13 +443,13 @@ msgstr "SGF konnte nicht geladen werde: {error}"
msgid "Starting Kata failed"
msgstr ""
"Der Start von KataGo mit Befehl '{command}' ist fehlgeschlagen mit Fehler "
"{error}.Bitte überprüfe, dass der 'katago' Wert in 'engine' bei den "
"Einstellungen aufdas richtige KataGo File zeigt."
"{error}. Bitte überprüfe, dass der Wert 'katago' in 'engine' bei den "
"Einstellungen auf die richtige KataGo-Datei zeigt."
msgid "Engine died unexpectedly"
msgstr ""
"Engine ist unerwartet abgestürzt ohne Ausgabe zu senden,wahrscheinlich wegen"
" zu wenig Speicher: {error}"
"Engine ist unerwartet abgestürzt, ohne Ausgabe zu senden, wahrscheinlich "
"wegen zu wenig Speicher: {error}"
#. AI names, help etc
msgid "strength:kyu"
@@ -463,8 +463,8 @@ msgstr "KataGo"
msgid "aihelp:default"
msgstr ""
"Spielstärkste KataGo AI. Spielstärke wird von `max visits` und `model`in den"
" allgemeinen Einstellungen im Bereich `engine` und dem Engine-"
"Spielstärkste KataGo-AI. Spielstärke wird von `max visits` und `model` in "
"den allgemeinen Einstellungen im Bereich `engine` und dem Engine-"
"Konfigurationsfile bestimmt. Hier gibt es sonst keine Optionen."
msgid "ai:jigo"
@@ -498,9 +498,9 @@ msgstr "Policy Gewichtet"
msgid "aihelp:p:weighted"
msgstr ""
"Wählt den Zug gemäss der Policy-Wahrscheinlichkeit, beeinflusst durch "
"Wählt den Zug gemäß der Policy-Wahrscheinlichkeit, beeinflusst durch "
"`weaken_fac` wie wahrscheinlich schlechtere Züge gespielt werden. Mit einem "
"kleinen Wert spielt wie die `Policy` AI. `pick_override` legt fest, wann der"
"kleinen Wert spielt wie die AI `Policy`. `pick_override` legt fest, wann der"
" beste Zug gewählt wird ohne Zufall und `lower_bound` bestimmt die untere "
"Grenze des erlaubten Policy-Wertes."
@@ -510,50 +510,50 @@ msgstr "Blinde Policy"
msgid "aihelp:p:pick"
msgstr ""
"Wählt `pick_n + pick_frac * <number of legal moves>` gewichtete Züge "
"zufälligund spielt den Besten. Spielt wie die Policy AI, wenn `pick_frac=1`."
" Spielt besten Zug, wenn Policy-Wert höher als `pick_override` ist, um "
"offensichtliche Fehler zu vermeiden."
"zufällig und spielt den besten. Spielt wie die AI `Policy`, wenn "
"`pick_frac=1`. Spielt besten Zug, wenn Policy-Wert höher als `pick_override`"
" ist, um offensichtliche Fehler zu vermeiden."
msgid "ai:p:local"
msgstr "Lokaler Stil"
msgid "aihelp:p:local"
msgstr ""
"Wählt `pick_n + pick_frac * <number of legal moves>` gewichtete Züge nahedem"
" letzten Zug und spielt den Besten. Spielt besten Zug, wenn Policy-Wert "
"Wählt `pick_n + pick_frac * <number of legal moves>` gewichtete Züge nahe "
"dem letzten Zug und spielt den besten. Spielt besten Zug, wenn Policy-Wert "
"höher als`pick_override` ist, um offensichtliche Fehler zu vermeiden."
msgid "ai:p:tenuki"
msgstr "Tenuki Stil"
msgstr "Tenuki-Stil"
msgid "aihelp:p:tenuki"
msgstr ""
"Wählt `pick_n + pick_frac * <number of legal moves>` gewichtete Züge "
"fernvomletzten Zug und spielt den Besten. Spielt besten Zug, wenn Policy-"
"Wert höher als`pick_override` ist, um offensichtliche Fehler zu vermeiden. "
"Eine höhere `stddev`führt zu weiter entfernten Zügen."
"Wählt `pick_n + pick_frac * <number of legal moves>` gewichtete Züge fern "
"vom letzten Zug und spielt den besten. Spielt besten Zug, wenn Policy-Wert "
"höher als`pick_override` ist, um offensichtliche Fehler zu vermeiden. Eine "
"höhere `stddev` führt zu weiter entfernten Zügen."
msgid "ai:p:influence"
msgstr "Einflussstil"
msgid "aihelp:p:influence"
msgstr ""
"Wählt Züge oberhalb des Grenzwertes und spielt den Besten.Erhöhe "
"`line_weight`,um Züge nahe der Ecken mehr zu bestrafen.Stoppt die Strategie "
"nach dem der 'endgame' Anteil des Brettes gefüllt ist."
"Wählt Züge oberhalb des Grenzwertes und spielt den Besten. Erhöhe "
"`line_weight`, um Züge nahe der Ecken mehr zu bestrafen. Stoppt die "
"Strategie nachdem der 'endgame'-Anteil des Brettes gefüllt ist."
msgid "ai:p:territory"
msgstr "Gebietsstil"
msgid "aihelp:p:territory"
msgstr ""
"Wählt Züge unterhalb des Grenzwertes und spielt den Besten.Erhöhe "
"`line_weight`,um Züge nahe der Mitte mehr zu bestrafen.Stoppt die Strategie "
"nach dem der 'endgame' Anteil des Brettes gefüllt ist."
"Wählt Züge unterhalb des Grenzwertes und spielt den besten. Erhöhe "
"`line_weight`, um Züge nahe der Mitte mehr zu bestrafen. Stoppt die "
"Strategie nachdem der 'endgame'-Anteil des Brettes gefüllt ist."
msgid "aihelp:p:rank"
msgstr ""
"Wählt eine begrenzte Anzahl zufälliger Züge und spielt den Besten. Stärkere "
"Wählt eine begrenzte Anzahl zufälliger Züge und spielt den besten. Stärkere "
"Einstellungen wählen den besten Zug aus einer grösseren Auswahl. Da es "
"keinen 0 Kyu/Dan gibt, ist 3 Dan = -2 Kyu."
@@ -567,23 +567,23 @@ msgstr "Details"
msgid "Kata exe not found"
msgstr ""
"KataGo binary {exe} nicht gefunden, bitte prüfe Allgemeine Einstellungen."
"KataGo-Binary {exe} nicht gefunden, bitte prüfe allgemeine Einstellungen."
msgid "Kata config not found"
msgstr ""
"KataGo config Datei {config} nicht gefunden, bitte prüfe Allgemeine "
"KataGo-Konfigurationsdatei {config} nicht gefunden, bitte prüfe allgemeine "
"Einstellungen."
msgid "Kata exe not found in path"
msgstr ""
"KataGo binary {exe} nicht im PATH gefunden, prüfe deine Umgebungs- variablen"
" oder benutze den vollen Pfad in den Allgemeinen Einstellungen. Wenn unter "
"MacOS, konsultiere das Handbuch wie brew verwendet werden soll, um KataGo zu"
" installieren."
"KataGo-Binary {exe} nicht im PATH gefunden, prüfe deine Umgebungsvariablen "
"oder benutze den vollen Pfad in den allgemeinen Einstellungen. Wenn unter "
"MacOS, konsultiere das Handbuch, wie brew verwendet werden soll, um KataGo "
"zu installieren."
msgid "Kata model not found"
msgstr ""
"KataGo model {model} nicht gefunden, bitte prüfe Allgemeine Einstellungen."
"KataGo-Modell {model} nicht gefunden, bitte prüfe allgemeine Einstellungen."
msgid "extra analysis"
msgstr "Erweiterte Analyse wird ausgeführt mit {visits} Visits"
@@ -616,13 +616,14 @@ msgid "analysis:continuous"
msgstr "Kontinuierliche Analyse ein/aus"
msgid "ai:handicap"
msgstr "KataHandicap"
msgstr "Kata-Vorgabesteine"
msgid "aihelp:handicap"
msgstr ""
"Optimiertes KataGo für höhere Handicap Spiele.Die pda Einstellungentspricht "
"playoutDoublingAdvantage in KataGo, aus Sicht von Schwarz.Wenn automatic "
"eingestellt ist, wird KaTrain automatischeinen geeigneten Wert finden."
"Optimiertes KataGo für höhere Vorgabe-Spiele. Die Einstellung `pda` "
"entspricht `playoutDoublingAdvantage` in KataGo, aus Sicht von Schwarz. Wenn"
" `automatic` eingestellt ist, wird KaTrain automatischeinen geeigneten Wert "
"finden."
msgid "estimated strength"
msgstr "Geschätzte Spielstärke"
@@ -644,7 +645,7 @@ msgstr "Farbschema"
msgid "engine:altcommand:hint"
msgstr ""
"Kompletter Befehl um die Engine zu starten. Alle anderen Modelloptionen "
"Kompletter Befehl, um die Engine zu starten. Alle anderen Modelloptionen "
"werden ignoriert."
msgid "engine:altcommand"
@@ -664,8 +665,8 @@ msgstr "Alle verfügbaren Programme wurden bereits heruntergeladen"
msgid "Engine missing DLL"
msgstr ""
"Konnte KataGo wegen fehlender DLL nicht starten. Überprüf die Anforderungen "
"in der KataGo-Dokumentation oder versuch, KataGo alleine zu starten, um "
"Konnte KataGo wegen fehlender DLL nicht starten. Überprüfe die Anforderungen"
" in der KataGo-Dokumentation oder versuche, KataGo alleine zu starten, um "
"Einzelheiten zu erfahren."
msgid "teaching undo message"
@@ -689,20 +690,20 @@ msgstr "Suche nach alternativen Zügen"
#. TODO - ignore moves if timer is on and less than this is used
msgid "minimal time use"
msgstr "Minimal time use in byo-yomi (s)"
msgstr "Mindest-Zeitnutzung im Byo-Yomi (s)"
msgid "move too fast"
msgstr "Denke mindestens {num} Sekunden nach, bevor Du setzt."
msgid "main time"
msgstr "Hauptbedenkzeit (Min.)"
msgstr "Hauptbedenkzeit (min)"
msgid "aihelp:simple"
msgstr ""
"Spielt Züge, die dazu zu einer Vereinfachung des Brettzustandes führen. Von "
"Zügen,die höchstens 'max_points_lost' Punkte verlieren und mit wenigstens "
"'min_visits' Visits, bevorzuge die Züge, die weniger Punkte verlieren "
"undeigenes Gebiet mehr sichern."
"Zügen, die höchstens 'max_points_lost' Punkte verlieren und mit wenigstens "
"'min_visits' Visits, bevorzuge die Züge, die weniger Punkte verlieren und "
"eigenes Gebiet mehr sichern."
msgid "ai:simple"
msgstr "Einfacher Stil"
@@ -718,105 +719,106 @@ msgstr ""
msgid "Make Main Branch"
msgstr "Zum Hauptzweig machen"
#. TODO - setting: what to show on top move (e.g. point loss, visits, ...)
#. setting: what to show on top move (e.g. point loss, visits, ...)
msgid "stats on top move"
msgstr "Stats on top moves"
msgstr "Anzeige für den besten Zug"
#. TODO - Dropdown menu option
msgid "top_move_delta_winrate"
msgstr "Change in Win Rate"
msgstr "Änderung der Gewinnrate"
#. TODO - Dropdown menu option
#. Dropdown menu option
msgid "top_move_visits"
msgstr "Visits"
#. TODO - Dropdown menu option
#. Dropdown menu option
msgid "top_move_score"
msgstr "Score"
#. TODO - Dropdown menu option
#. Dropdown menu option
msgid "top_move_nothing"
msgstr "(nothing)"
msgstr "(nichts)"
#. TODO - Dropdown menu option
#. Dropdown menu option
msgid "top_move_winrate"
msgstr "Win Rate"
msgstr "Gewinnrate"
#. TODO - Dropdown menu option
#. Dropdown menu option
msgid "top_move_delta_score"
msgstr "Change in Score"
msgstr "Punktänderung"
#. TODO - top move stats show threshold description
#. top move stats show threshold description
msgid "show stats if"
msgstr "Show stats if more than ... visits"
msgstr "Zeige Bewertung wenn mehr als ... Visits"
#. TODO - analysis option
#. analysis option
msgid "cache analysis to sgf"
msgstr "Cache analysis in SGF"
msgstr "Cache-Analyse in SGF"
#. TODO
#. Speichern als
msgid "menu:save-as"
msgstr "Save Game As..."
msgstr "Spiel speichern als..."
#. TODO
#. Laden
# sgf load button
msgid "Load File"
msgstr "Load File"
msgstr "Spiel laden"
#. TODO
#. Save SGF (Popup)
# sgf save popup
msgid "save sgf title"
msgstr "Save SGF File"
msgstr "SGF-Datei speichern"
#. TODO
# sgf save as button
#. Save button
# sgf save button
msgid "Save File"
msgstr "Save File"
msgstr "Datei speichern"
#. TODO - status message on starting insert mode
#. Status message on starting insert mode
msgid "starting insert mode"
msgstr "Starting insert mode, press 'i' to finish inserting."
msgstr "Starte Einfüge-Modus; drücke 'i' zum beenden"
#. TODO - status message on ending insert mode and copying the moves
#. Status message on ending insert mode and copying the moves
msgid "ending insert mode"
msgstr "Inserting exchange(s) done, copied {num_copied} following moves."
msgstr "Einfügen beendet, {num_copied} Züge kopiert"
#. TODO - when a user tries to go to a different move/node while in insert
#. When a user tries to go to a different move/node while in insert
#. mode
msgid "finish inserting before navigating"
msgstr ""
"Navigation is disabled in insert mode, finish insert mode by pressing 'i'. "
"Navigation ist im Einfüge-Modus deaktiviert, beende erst Einfüge-Modus durch"
" Drücken von 'i'"
#. TODO - in new game options
#. In new game options
msgid "player names"
msgstr "Player Names"
msgstr "Spielernamen"
#. TODO - Option in dropdown to insert some moves between the current and next
#. Option in dropdown to insert some moves between the current and next
msgid "analysis:insert"
msgstr "Insert moves"
msgstr "Züge einfügen"
#. TODO - Status message
#. Status message
msgid "analysis:region:start"
msgstr ""
"Drag to select the region of interest. Select a single point to cancel the "
"region."
"Ziehen, um einen Bereich zu markieren. Wähle einen einzelnen Punkt, um die "
"Bereichsauswahl abzubrechen."
#. TODO - Restrict analysis to a specific region
#. Restrict analysis to a specific region
msgid "analysis:region"
msgstr "Set region of interest"
msgstr "Bereich auswählen"
#. TODO - on move tree editing
#. on move tree editing
msgid "Toggle Collapse Branch"
msgstr "Expand/Collapse"
msgstr "Aus-/Einklappen"
#. TODO - Menu option
#. Menu option
msgid "analysis:playtoend"
msgstr "Fast playout to game end"
msgstr "Schnelles Ausspielen bis Spielende"
#. TODO - hint on player name input
#. Hint on player name input
msgid "black player name hint"
msgstr "Black player's name"
msgstr "Name von Schwarz"
#. TODO - hint on player name input
#. Hint on player name input
msgid "white player name hint"
msgstr "White player's name"
msgstr "Name von Weiß"
Binary file not shown.
+27 -53
View File
@@ -26,7 +26,7 @@ msgid "menu:clocksettings"
msgstr "Контроль времени"
msgid "menu:teachsettings"
msgstr "Настройки обучающей игры"
msgstr "Настройки анализа"
msgid "menu:aisettings"
msgstr "Настройки ИИ"
@@ -325,7 +325,7 @@ msgstr "Начать новую игру"
# teacher settings from here
msgid "teacher settings"
msgstr "Редактировать настройки учителя"
msgstr "Редактировать настройки анализа"
msgid "point loss threshold"
msgstr "Потеря очков более"
@@ -360,7 +360,7 @@ msgstr ""
#. submit button
msgid "update teacher"
msgstr "Сохранить настройки обратной связи"
msgstr "Сохранить настройки анализа"
# main config settings
msgid "restarting engine"
@@ -717,105 +717,79 @@ msgstr ""
msgid "Make Main Branch"
msgstr "Сделать главной веткой"
#. TODO - setting: what to show on top move (e.g. point loss, visits, ...)
msgid "stats on top move"
msgstr "Stats on top moves"
msgstr "Показывать числа поверх ходов"
#. TODO - Dropdown menu option
msgid "top_move_delta_winrate"
msgstr "Change in win rate"
msgstr "Изменение процента"
#. TODO - Dropdown menu option
msgid "top_move_visits"
msgstr "Visits"
msgstr "Посещения"
#. TODO - Dropdown menu option
msgid "top_move_score"
msgstr "Score"
msgstr "Счёт"
#. TODO - Dropdown menu option
msgid "top_move_nothing"
msgstr "-"
#. TODO - Dropdown menu option
msgid "top_move_winrate"
msgstr "Win rate"
msgstr "Процент побед"
#. TODO - Dropdown menu option
msgid "top_move_delta_score"
msgstr "Change in score"
msgstr "Изменение счёта"
#. TODO - top move stats show threshold description
msgid "show stats if"
msgstr "Show stats if more than ... visits"
msgstr "Числа только если посещений больше чем"
#. TODO - analysis option
msgid "cache analysis to sgf"
msgstr "Cache analysis in SGF"
msgstr "Кэшировать анализ в SGF"
#. TODO
msgid "menu:save-as"
msgstr "Save Game As..."
msgstr "Сохранить игру как..."
#. TODO
# sgf load button
msgid "Load File"
msgstr "Load File"
msgstr "Загрузить файл"
#. TODO
# sgf save popup
msgid "save sgf title"
msgstr "Save SGF File"
msgstr "Сохранить SGF файл"
#. TODO
# sgf save as button
msgid "Save File"
msgstr "Save File"
msgstr "Сохранить файл"
#. TODO - status message on starting insert mode
msgid "starting insert mode"
msgstr "Starting insert mode, press 'i' to finish inserting."
msgstr "Активен режим вставки, нажмите 'i' для завершения."
#. TODO - status message on ending insert mode and copying the moves
msgid "ending insert mode"
msgstr "Inserting exchange(s) done, copied {num_copied} following moves."
msgstr "Режим вставки завершён, скопировано {num_copied} следующих ходов."
#. TODO - when a user tries to go to a different move/node while in insert
#. mode
msgid "finish inserting before navigating"
msgstr ""
"Navigation is disabled in insert mode, finish insert mode by pressing 'i'. "
"Навигация отключена в режиме вставки, сначала завершите режим вставки нажав "
"'i'."
#. TODO - in new game options
msgid "player names"
msgstr "Player Names"
msgstr "Имена игроков"
#. TODO - Option in dropdown to insert some moves between the current and next
msgid "analysis:insert"
msgstr "Insert moves"
msgstr "Вставить ходы"
#. TODO - Status message
msgid "analysis:region:start"
msgstr ""
"Drag to select the region of interest. Select a single point to cancel the "
"region."
msgstr "Выберите регион интереса. Выберите одну точку для сброса региона."
#. TODO - Restrict analysis to a specific region
msgid "analysis:region"
msgstr "Set region of interest"
msgstr "Выбрать регион интереса"
#. TODO - on move tree editing
msgid "Toggle Collapse Branch"
msgstr "Expand/Collapse"
msgstr "Развернуть/Свернуть"
#. TODO - Menu option
msgid "analysis:playtoend"
msgstr "Fast playout to game end"
msgstr "Быстро доиграть до конца"
#. TODO - hint on player name input
msgid "black player name hint"
msgstr "Black player's name"
msgstr "Имя игрока чёрными"
#. TODO - hint on player name input
msgid "white player name hint"
msgstr "White player's name"
msgstr "Имя игрока белыми"
+13
View File
@@ -152,3 +152,16 @@ def test_foxwq():
while game.current_node.children:
assert 1 == len(game.current_node.children)
game.redo(1)
def test_next_player():
input_sgf = "(;GM[1]FF[4]AB[aa]AW[bb])"
assert "B" == SGF.parse_sgf(input_sgf).next_player
input_sgf = "(;GM[1]FF[4]AB[aa]AW[bb]PL[B])"
assert "B" == SGF.parse_sgf(input_sgf).next_player
input_sgf = "(;GM[1]FF[4]AB[aa]AW[bb]PL[W])"
assert "W" == SGF.parse_sgf(input_sgf).next_player
input_sgf = "(;GM[1]FF[4]AB[aa])"
assert "W" == SGF.parse_sgf(input_sgf).next_player
input_sgf = "(;GM[1]FF[4]AB[aa]PL[B])"
assert "B" == SGF.parse_sgf(input_sgf).next_player