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 English German French +Ukrainian Russian -Turkish
- +Turkish Simplified Chinese Traditional Chinese Korean 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"