diff --git a/README.md b/README.md
index 14bbb4a..34226f7 100644
--- a/README.md
+++ b/README.md
@@ -39,10 +39,10 @@ KaTrain is a tool for analyzing games and playing go with AI feedback from KataG
+
-
-
+
diff --git a/katrain/core/game_node.py b/katrain/core/game_node.py
index 933788f..702ae34 100644
--- a/katrain/core/game_node.py
+++ b/katrain/core/game_node.py
@@ -292,7 +292,9 @@ class GameNode(SGFNode):
def format_score(self, score=None):
score = score or self.score
if score is not None:
- return f"{'B' if score >= 0 else 'W'}+{abs(score):.1f}"
+ leading_player = 'B' if score >= 0 else 'W'
+ leading_player_color = i18n._(f"short color {leading_player}")
+ return f"{leading_player_color}+{abs(score):.1f}"
@property
def winrate(self) -> Optional[float]:
@@ -302,7 +304,9 @@ class GameNode(SGFNode):
def format_winrate(self, win_rate=None):
win_rate = win_rate or self.winrate
if win_rate is not None:
- return f"{'B' if win_rate > 0.5 else 'W'} {max(win_rate,1-win_rate):.1%}"
+ leading_player = 'B' if win_rate > 0.5 else 'W'
+ leading_player_color = i18n._(f"short color {leading_player}")
+ return f"{leading_player_color} {max(win_rate,1-win_rate):.1%}"
def move_policy_stats(self) -> Tuple[Optional[int], float, List]:
single_move = self.move
diff --git a/katrain/gui.kv b/katrain/gui.kv
index 68a2bae..30aeb32 100644
--- a/katrain/gui.kv
+++ b/katrain/gui.kv
@@ -499,7 +499,7 @@
StatsLabel:
id: pointloss_label
label: i18n._('stats:pointslost') if root.points_lost is None or root.points_lost > 0 else i18n._('stats:pointsgained')
- text: '{}: {:.1f}'.format(root.player,abs(root.points_lost)) if root.points_lost is not None else '...'
+ text: '{}: {:.1f}'.format(i18n._(f'short color {root.player}'), abs(root.points_lost)) if root.points_lost is not None else '...'
color: Theme.POINTLOSS_COLOR
:
diff --git a/katrain/gui/widgets/graph.py b/katrain/gui/widgets/graph.py
index 642fa26..515945a 100644
--- a/katrain/gui/widgets/graph.py
+++ b/katrain/gui/widgets/graph.py
@@ -211,7 +211,7 @@ Builder.load_string(
font_size: root.marker_font_size
color: Theme.SCORE_MARKER_COLOR
pos: root.x + root.width - self.width-1, root.pos[1]+root.height - self.font_size - 1
- text: 'B+{}'.format(root.score_scale)
+ text: '{}+{}'.format(i18n._('short color B'), root.score_scale)
opacity: int(root.show_score)
GraphMarkerLabel:
font_size: root.marker_font_size
@@ -223,7 +223,7 @@ Builder.load_string(
font_size: root.marker_font_size
color: Theme.SCORE_MARKER_COLOR
pos: root.x + root.width - self.width-1, root.pos[1]
- text: 'W+' + str(int(root.score_scale))
+ text: '{}+{}'.format(i18n._('short color W'), root.score_scale)
opacity: int(root.show_score)
# wr ticks
GraphMarkerLabel:
diff --git a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo
index a9e7d56..f2c76c8 100644
Binary files a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po
index d8b8ca5..72e363f 100644
--- a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po
@@ -135,6 +135,12 @@ msgstr "分数图"
msgid "Jigo"
msgstr "和棋"
+msgid "short color B"
+msgstr "黑"
+
+msgid "short color W"
+msgstr "白"
+
msgid "closedlabel:movestats"
msgstr "每步统计"
diff --git a/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo
index 6f57215..7225da9 100644
Binary files a/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po
index 770c9cf..4cf3ae4 100644
--- a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po
@@ -137,6 +137,12 @@ msgstr "Punkte-Graph"
msgid "Jigo"
msgstr "Jigo"
+msgid "short color B"
+msgstr "S"
+
+msgid "short color W"
+msgstr "W"
+
msgid "closedlabel:movestats"
msgstr "Zug-Statistik"
diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo
index d2e2750..ebd0417 100644
Binary files a/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po
index 1cc1e7c..03c9aa0 100644
--- a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po
@@ -280,6 +280,12 @@ msgstr "Score Graph"
msgid "Jigo"
msgstr "Jigo"
+msgid "short color B"
+msgstr "B"
+
+msgid "short color W"
+msgstr "W"
+
msgid "closedlabel:movestats"
msgstr "Move Stats"
@@ -765,8 +771,8 @@ msgstr "KataGo"
msgid "aihelp:default"
msgstr ""
-"Full strength KataGo AI. Strength is affected by 'max visits' and 'model' "
-"in the general settings 'engine' section and engine configuration file. No "
+"Full strength KataGo AI. Strength is affected by 'max visits' and 'model' in"
+" the general settings 'engine' section and engine configuration file. No "
"options are available here."
#. ai which handles handicap games better
diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo
index 3e6d8d2..d58bf4f 100644
Binary files a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po
index 1db23a1..4545a97 100644
--- a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po
@@ -153,6 +153,12 @@ msgstr "Graphes"
msgid "Jigo"
msgstr "Jigo"
+msgid "short color B"
+msgstr "N"
+
+msgid "short color W"
+msgstr "B"
+
msgid "closedlabel:movestats"
msgstr "Évaluation"
diff --git a/katrain/i18n/locales/jp/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/jp/LC_MESSAGES/katrain.mo
index c8d1398..2a64d58 100644
Binary files a/katrain/i18n/locales/jp/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/jp/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/jp/LC_MESSAGES/katrain.po b/katrain/i18n/locales/jp/LC_MESSAGES/katrain.po
index 9eaee89..e1e121f 100644
--- a/katrain/i18n/locales/jp/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/jp/LC_MESSAGES/katrain.po
@@ -166,6 +166,12 @@ msgstr "目差グラフ"
msgid "Jigo"
msgstr "持碁"
+msgid "short color B"
+msgstr "黒"
+
+msgid "short color W"
+msgstr "白"
+
msgid "closedlabel:movestats"
msgstr "着手の分析結果"
diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo
index b1dcff5..c612f98 100644
Binary files a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po
index bba0bb5..2e78399 100644
--- a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po
@@ -137,6 +137,12 @@ msgstr "집 차이/승률 그래프"
msgid "Jigo"
msgstr "무승부"
+msgid "short color B"
+msgstr "흑"
+
+msgid "short color W"
+msgstr "백"
+
msgid "closedlabel:movestats"
msgstr "착수 통계"
diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo
index b26c723..bca077d 100644
Binary files a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po
index 5b64758..3797b87 100644
--- a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po
@@ -160,6 +160,12 @@ msgstr "График очков"
msgid "Jigo"
msgstr "Ничья"
+msgid "short color B"
+msgstr "Ч"
+
+msgid "short color W"
+msgstr "Б"
+
msgid "closedlabel:movestats"
msgstr "Статистика ходов"
diff --git a/katrain/i18n/locales/tr/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/tr/LC_MESSAGES/katrain.mo
index 5aa1f39..7bd73bf 100644
Binary files a/katrain/i18n/locales/tr/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/tr/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/tr/LC_MESSAGES/katrain.po b/katrain/i18n/locales/tr/LC_MESSAGES/katrain.po
index 31995b7..ea71270 100644
--- a/katrain/i18n/locales/tr/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/tr/LC_MESSAGES/katrain.po
@@ -263,6 +263,12 @@ msgstr "Skor Grafiği"
msgid "Jigo"
msgstr "Jigo"
+msgid "short color B"
+msgstr "S"
+
+msgid "short color W"
+msgstr "B"
+
msgid "closedlabel:movestats"
msgstr "Hamle İstatistikleri"
diff --git a/katrain/i18n/locales/tw/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/tw/LC_MESSAGES/katrain.mo
index b26ae0f..5fee5cd 100644
Binary files a/katrain/i18n/locales/tw/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/tw/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/tw/LC_MESSAGES/katrain.po b/katrain/i18n/locales/tw/LC_MESSAGES/katrain.po
index d9f87fd..3902b60 100644
--- a/katrain/i18n/locales/tw/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/tw/LC_MESSAGES/katrain.po
@@ -207,6 +207,12 @@ msgstr "分數圖"
msgid "Jigo"
msgstr "和棋"
+msgid "short color B"
+msgstr "黑"
+
+msgid "short color W"
+msgstr "白"
+
msgid "closedlabel:movestats"
msgstr "每步統計"
diff --git a/katrain/i18n/locales/ua/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ua/LC_MESSAGES/katrain.mo
index 86d6791..39e731d 100644
Binary files a/katrain/i18n/locales/ua/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/ua/LC_MESSAGES/katrain.mo differ
diff --git a/katrain/i18n/locales/ua/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ua/LC_MESSAGES/katrain.po
index 02aaa50..8331215 100644
--- a/katrain/i18n/locales/ua/LC_MESSAGES/katrain.po
+++ b/katrain/i18n/locales/ua/LC_MESSAGES/katrain.po
@@ -6,13 +6,6 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-# TODO: delete this mapping
-# Settings = Налаштування
-# Teaching = тренер
-# Winrate = Шанс на перемогу
-# Engine = енджин
-# TODO: reformat all lines that are too long ^.{79,100}
-
#. main hamburger menu
msgid "menu:playersetup"
msgstr "Налаштування гравців"
@@ -185,8 +178,8 @@ msgstr "Визначити область для аналізу"
#. Status message
msgid "analysis:region:start"
msgstr ""
-"Потягніть для вибору області інтересу. Виберіть одну точку для"
-"скасування області."
+"Потягніть для вибору області інтересу. Виберіть одну точку для скасування "
+"області."
#. Menu option
msgid "analysis:playtoend"
@@ -287,6 +280,12 @@ msgstr "Графік очок"
msgid "Jigo"
msgstr "Джиґо"
+msgid "short color B"
+msgstr "Ч"
+
+msgid "short color W"
+msgstr "Б"
+
msgid "closedlabel:movestats"
msgstr "Статистика ходів"
@@ -564,8 +563,8 @@ msgstr "Одночасні ігри"
#. hint for max games
msgid "contribute:maxgames:hint"
msgstr ""
-"Найкраще встановити кількість, рівну оптимальній numSearchThreads, близько "
-"8 для середнього класу GPU. Можна трохи зменшити для коротких запусків, "
+"Найкраще встановити кількість, рівну оптимальній numSearchThreads, близько 8"
+" для середнього класу GPU. Можна трохи зменшити для коротких запусків, "
"оскільки неповні ігри не завантажуються."
msgid "contribute:ownership"
@@ -708,14 +707,14 @@ msgstr "Не вдалося відкрити SGF: {error}"
msgid "Kata exe not found"
msgstr ""
-"Виконуваний файл KataGo {exe} не знайдено, будь ласка, перевірте "
-"загальні налаштування."
+"Виконуваний файл KataGo {exe} не знайдено, будь ласка, перевірте загальні "
+"налаштування."
msgid "Kata exe not found in path"
msgstr ""
-"Виконуваний файл KataGo '{exe}' не знайдено у вашому PATH. Перевірте "
-"змінні середовища або вкажіть повний шлях у загальних налаштуваннях."
-"Для MacOS зверніться до інструкції щодо встановлення KataGo через brew."
+"Виконуваний файл KataGo '{exe}' не знайдено у вашому PATH. Перевірте змінні "
+"середовища або вкажіть повний шлях у загальних налаштуваннях. Для MacOS "
+"зверніться до інструкції щодо встановлення KataGo через brew."
msgid "Kata model not found"
msgstr "Модель KataGo {model} не знайдено, перевірте загальні налаштування."
@@ -734,8 +733,8 @@ msgstr "Енджин несподівано припинив роботу без
msgid "Engine missing DLL"
msgstr ""
"Не вдалося запустити KataGo через відсутню DLL. Перевірте вимоги в "
-"документації KataGo або спробуйте запустити виконуваний файл самостійно "
-"для отримання деталей."
+"документації KataGo або спробуйте запустити виконуваний файл самостійно для "
+"отримання деталей."
#. popup title
msgid "engine recovery"
@@ -758,8 +757,8 @@ msgstr ""
#. Link in tags should not be touched (uses link_here msgid)
msgid "go to engine help page"
msgstr ""
-"Якщо проблеми залишаються, скористайтеся {link} для перегляду "
-"актуальної сторінки з порадами щодо вирішення."
+"Якщо проблеми залишаються, скористайтеся {link} для перегляду актуальної "
+"сторінки з порадами щодо вирішення."
#. as in "click here" to go to this page,
msgid "link_here"
@@ -777,8 +776,8 @@ msgstr "KataGo"
msgid "aihelp:default"
msgstr ""
-"Повна сила AI KataGo. Сила залежить від параметрів 'max visits' і 'model' "
-"у загальних налаштуваннях розділу енджина та у файлі конфігурації енджина. "
+"Повна сила AI KataGo. Сила залежить від параметрів 'max visits' і 'model' у "
+"загальних налаштуваннях розділу енджина та у файлі конфігурації енджина. "
"Ніякі опції тут недоступні."
#. ai which handles handicap games better
@@ -791,7 +790,6 @@ msgstr ""
"параметру 'playoutDoublingAdvantage' у KataGo з точки зору чорних. Якщо "
"встановлено 'automatic', KaTrain автоматично підбере відповідне значення."
-
msgid "ai:simple"
msgstr "Simple Style"
@@ -801,9 +799,9 @@ msgstr ""
"втрачають не більше ніж 'max_points_lost' очок і мають щонайменше "
"'min_visits' візитів, надає перевагу тим, що втрачають менше очок, "
"стабілізують власну територію більше (з вагою важливості 'settled_weight'), "
-"стабілізують територію опонента (з важливістю "
-"'settled_weight' * 'opponent_fac'), уникають тенукі (більше ніж на 5 клітин, "
-"важливість 'tenuki_penalty') та уникають прикріплення (важливість "
+"стабілізують територію опонента (з важливістю 'settled_weight' * "
+"'opponent_fac'), уникають тенукі (більше ніж на 5 клітин, важливість "
+"'tenuki_penalty') та уникають прикріплення (важливість "
"'attachment_penalty'). Ваги можуть бути негативними, щоб ускладнити гру, а "
"wideRootNoise (у загальних налаштуваннях) може бути використаний для для "
"гри, більш відповідної до обраного стилю, але за рахунок зниження сили "
@@ -828,9 +826,9 @@ msgstr "Втрата очок"
msgid "aihelp:scoreloss"
msgstr ""
-"Робить ходи, що призводять до більшої втрати очок, але з меншою "
-"ймовірністю. При вищій кількості візитів, ймовірно, робитиме слабші та "
-"різноманітніші ходи."
+"Робить ходи, що призводять до більшої втрати очок, але з меншою ймовірністю."
+" При вищій кількості візитів, ймовірно, робитиме слабші та різноманітніші "
+"ходи."
msgid "ai:policy"
msgstr "Політика"
@@ -848,8 +846,8 @@ msgstr "Політика з коефіцієнтами"
msgid "aihelp:p:weighted"
msgstr ""
"Робить ходи відповідно до ймовірності політики, при цьому параметр "
-"'weaken_fac' визначає, наскільки частіше будуть обиратися слабші ходи. "
-"При дуже низькому значенні грає як AI 'Політика'. Параметр 'pick_override' "
+"'weaken_fac' визначає, наскільки частіше будуть обиратися слабші ходи. При "
+"дуже низькому значенні грає як AI 'Політика'. Параметр 'pick_override' "
"визначає, коли найкращий хід обирається без випадковості, а 'lower_bound' "
"визначає нижнє граничне значення політики, яке дозволено."
@@ -858,18 +856,18 @@ msgstr "Політика всліпу"
msgid "aihelp:p:pick"
msgstr ""
-"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' "
-"і робить найкращий. Якщо 'pick_frac=1', грає як AI 'Політика'. Робить "
-"топовий хід, якщо значення політики вище за 'pick_override', щоб уникнути "
-"явних помилок."
+"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' і"
+" робить найкращий. Якщо 'pick_frac=1', грає як AI 'Політика'. Робить топовий"
+" хід, якщо значення політики вище за 'pick_override', щоб уникнути явних "
+"помилок."
msgid "ai:p:local"
msgstr "Локальний стиль"
msgid "aihelp:p:local"
msgstr ""
-"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' "
-"з ухилом у бік останнього ходу і виконує найкращий з них. Виконує найкращий "
+"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' з"
+" ухилом у бік останнього ходу і виконує найкращий з них. Виконує найкращий "
"хід, якщо значення політики перевищує 'pick_override', щоб уникнути явних "
"помилок."
@@ -878,10 +876,10 @@ msgstr "Стиль тенукі"
msgid "aihelp:p:tenuki"
msgstr ""
-"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' "
-"з відхиленням від останнього ходу і робить найкращий з них. Робить "
-"найкращий хід, якщо значення політики перевищує 'pick_override', щоб "
-"уникнути очевидних помилок. Вищий 'stddev' змушує грати ще далі."
+"Випадковим чином обирає 'pick_n + pick_frac * <кількість легальних ходів>' з"
+" відхиленням від останнього ходу і робить найкращий з них. Робить найкращий "
+"хід, якщо значення політики перевищує 'pick_override', щоб уникнути "
+"очевидних помилок. Вищий 'stddev' змушує грати ще далі."
msgid "ai:p:influence"
msgstr "Influential Style"
@@ -898,8 +896,9 @@ msgstr "Territorial Style"
msgid "aihelp:p:territory"
msgstr ""
"Вибирає ходи, що перевищують 'threshold', і робить найкращий. Збільште "
-"'line_weight', щоб більше штрафувати ходи біля центру. Стратегія припиняється "
-"після того, як буде заповнено частину дошки, визначену параметром 'endgame'."
+"'line_weight', щоб більше штрафувати ходи біля центру. Стратегія "
+"припиняється після того, як буде заповнено частину дошки, визначену "
+"параметром 'endgame'."
msgid "ai:p:rank"
msgstr "Калібрований ранг"
@@ -1022,8 +1021,8 @@ msgstr "Вставку завершено, скопійовано {num_copied}
#. when a user tries to go to a different move/node while in insert mode
msgid "finish inserting before navigating"
msgstr ""
-"Навігація недоступна під час вставки, натисніть 'i', щоб завершити "
-"режим вставки."
+"Навігація недоступна під час вставки, натисніть 'i', щоб завершити режим "
+"вставки."
#. menu item
msgid "menu:distributed"
@@ -1043,8 +1042,8 @@ msgstr "Генерація гри через самостійну гру AI: х
msgid "setup position explanation"
msgstr ""
"Генерує незавершену гру, яку ви можете продовжити грати. Наприклад, ви "
-"можете використовувати це для гри проти сильніших AI, починаючи з переваги "
-"в різноманітних середніх або кінцевих позиціях гри."
+"можете використовувати це для гри проти сильніших AI, починаючи з переваги в"
+" різноманітних середніх або кінцевих позиціях гри."
#. Description for black target score
msgid "setup position black score"