persist language, readme
This commit is contained in:
1 parent
0de50719cf
commit
2b97f7f234
8 files changed
+47
-20
No files matched your search
@@ -128,10 +128,14 @@ In addition to shortcuts mentioned above and those shown in the main menu:
|
||||
* How can I play on larger boards?
|
||||
* For windows, change the `katago` setting to `katrain\KataGo\katago-bs52.exe`. For other operating systems, you need to compile your own KataGo version with higher limits.
|
||||
|
||||
## Contributing
|
||||
|
||||
* Feedback and pull requests are both very welcome. I would also be happy to host translations of this manual into languages where English fluency is typically lower.
|
||||
* For suggestions and planned improvements, see the 'issues' tab on github.
|
||||
* You can also contact me on [discord](https://discord.gg/AjTPFpN) (Sander#3278), [KakaoTalk](https://open.kakao.com/o/gTsMJCac) or [Reddit](http://reddit.com/u/sanderbaduk) to give feedback, or simply show your appreciation.
|
||||
* Some people have also asked me how to donate. Something go-related such as a book or teaching time is highly appreciated.
|
||||
## <a name="support"></a> Support / Contribute
|
||||
|
||||
* You can contact me on [discord](https://discord.gg/AjTPFpN) (Sander#3278), [KakaoTalk](https://open.kakao.com/o/gTsMJCac)
|
||||
or [Reddit](http://reddit.com/u/sanderbaduk) to get help, discuss improvements, or simply show your appreciation.
|
||||
* Ideas, feedback, and contributions to code or translations are all very welcome.
|
||||
* For suggestions and planned improvements, see [open issues](https://github.com/sanderland/katrain/issues) on github.
|
||||
* I am looking for contributors of more translations of both this manual and the program itself. The best way to help with this is to contact me on discord.
|
||||
|
||||
|
||||
|
||||
+15
-5
@@ -1,18 +1,20 @@
|
||||
import os # isort:skip
|
||||
|
||||
os.environ["KCFG_KIVY_LOG_LEVEL"] = os.environ.get("KCFG_KIVY_LOG_LEVEL", "warning") # isort:skip surpress info output
|
||||
from kivy.config import Config # isort:skip
|
||||
|
||||
ICON = "img/icon.png" # isort:skip # set icon
|
||||
Config.set("kivy", "window_icon", ICON) # isort:skip # set icon
|
||||
Config.set("input", "mouse", "mouse,multitouch_on_demand") # isort:skip # no red dots on right click
|
||||
Config.set("graphics", "width", 1300)
|
||||
Config.set("graphics", "height", 1000)
|
||||
Config.set("graphics", "width", 1300) # isort:skip
|
||||
Config.set("graphics", "height", 1000) # isort:skip
|
||||
|
||||
|
||||
import os
|
||||
import signal
|
||||
import sys
|
||||
import threading
|
||||
import traceback
|
||||
from queue import Queue
|
||||
import webbrowser
|
||||
|
||||
from kivy.app import App
|
||||
from kivy.core.clipboard import Clipboard
|
||||
@@ -25,7 +27,7 @@ from katrain.core.utils import (
|
||||
DEFAULT_LANGUAGE,
|
||||
find_package_resource,
|
||||
)
|
||||
from katrain.core.constants import OUTPUT_ERROR, OUTPUT_KATAGO_STDERR, OUTPUT_INFO, OUTPUT_DEBUG, OUTPUT_EXTRA_DEBUG, MODE_PLAY, AI_STRATEGIES_RECOMMENDED_ORDER
|
||||
from katrain.core.constants import OUTPUT_ERROR, OUTPUT_KATAGO_STDERR, OUTPUT_INFO, OUTPUT_DEBUG, OUTPUT_EXTRA_DEBUG, MODE_PLAY, AI_STRATEGIES_RECOMMENDED_ORDER, HOMEPAGE
|
||||
from katrain.gui.popups import ConfigTeacherPopup, ConfigTimerPopup, I18NPopup
|
||||
from katrain.core.base_katrain import KaTrainBase
|
||||
from katrain.core.engine import KataGoEngine
|
||||
@@ -374,9 +376,17 @@ class KaTrainApp(MDApp):
|
||||
|
||||
def on_language(self, _instance, language):
|
||||
self.gui.log(f"Switching language to {language}", OUTPUT_INFO)
|
||||
self.gui._config["general"]["lang"] = language
|
||||
self.gui.save_config()
|
||||
i18n.switch_lang(language)
|
||||
|
||||
def webbrowser(self, site_key):
|
||||
WEBSITES = {"homepage": HOMEPAGE, "support": HOMEPAGE + "#support"}
|
||||
if site_key in WEBSITES:
|
||||
webbrowser.open(WEBSITES[site_key])
|
||||
|
||||
def on_start(self):
|
||||
self.language = self.gui.config("general/lang")
|
||||
self.gui.start()
|
||||
|
||||
def on_request_close(self, *_args):
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@
|
||||
"sgf_load": "~/Downloads",
|
||||
"sgf_save": "./sgfout",
|
||||
"anim_pv_time": 0.5,
|
||||
"debug_level": 1,
|
||||
"language": "en"
|
||||
"debug_level": 0,
|
||||
"lang": "en"
|
||||
},
|
||||
"timer": {
|
||||
"byo_length": 30,
|
||||
|
||||
@@ -53,7 +53,7 @@ class KaTrainBase:
|
||||
Config.set("kivy", "log_level", "error")
|
||||
if self.debug_level >= OUTPUT_DEBUG:
|
||||
Config.set("kivy", "log_enable", 1)
|
||||
Config.set("kivy", "log_level", "warning")
|
||||
Config.set("kivy", "log_level", "info")
|
||||
if self.debug_level >= OUTPUT_EXTRA_DEBUG:
|
||||
Config.set("kivy", "log_level", "trace")
|
||||
self.players_info = {"B": Player("B"), "W": Player("W")}
|
||||
|
||||
@@ -52,6 +52,7 @@ class Lang(Observable):
|
||||
|
||||
def __init__(self, lang):
|
||||
super(Lang, self).__init__()
|
||||
self.lang = None
|
||||
self.switch_lang(lang)
|
||||
|
||||
def _(self, text):
|
||||
@@ -88,6 +89,8 @@ class Lang(Observable):
|
||||
self.callbacks.append(callback_fn)
|
||||
|
||||
def switch_lang(self, lang):
|
||||
if lang == self.lang:
|
||||
return
|
||||
# get the right locales directory, and instantiate a gettext
|
||||
self.lang = lang
|
||||
self.font_name = self.FONTS.get(lang) or DEFAULT_FONT
|
||||
|
||||
+8
-2
@@ -802,6 +802,10 @@
|
||||
height: self.parent.item_height or 50
|
||||
size_hint: 1,None
|
||||
|
||||
<MenuLink@ButtonBehavior+MenuLabel>:
|
||||
site_key: ''
|
||||
underline: True
|
||||
on_press: app.webbrowser(self.site_key)
|
||||
|
||||
<PlayerSetup>:
|
||||
orientation: 'horizontal'
|
||||
@@ -937,10 +941,12 @@
|
||||
size_hint: 1,None
|
||||
height: root.item_height
|
||||
item_height: root.item_height
|
||||
MenuLabel:
|
||||
MenuLink:
|
||||
text: i18n._('menu:manual')
|
||||
MenuLabel:
|
||||
site_key: 'homepage'
|
||||
MenuLink:
|
||||
text: i18n._('menu:support')
|
||||
site_key: 'support'
|
||||
|
||||
|
||||
<OutlineBox@MDBoxLayout+BackgroundMixin>:
|
||||
|
||||
@@ -37,6 +37,7 @@ a shortcut to the Documents directory added to the favorites bar::
|
||||
.. image:: _static/filebrowser.png
|
||||
:align: right
|
||||
"""
|
||||
from kivy import Config
|
||||
from kivy.uix.boxlayout import BoxLayout
|
||||
from kivy.uix.treeview import TreeViewLabel, TreeView
|
||||
from kivy.uix.filechooser import FileChooserListView, FileChooserListLayout
|
||||
@@ -113,9 +114,10 @@ class I18NFileChooserListLayout(FileChooserListLayout):
|
||||
_ENTRY_TEMPLATE = "I18NFileListEntry"
|
||||
|
||||
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore")
|
||||
Builder.load_string("""
|
||||
log_level = Config.get("kivy", "log_level")
|
||||
Config.set("kivy", "log_level", "error")
|
||||
Builder.load_string(
|
||||
"""
|
||||
[I18NFileListEntry@FloatLayout+TreeViewNode]:
|
||||
locked: False
|
||||
entries: []
|
||||
@@ -150,7 +152,9 @@ with warnings.catch_warnings():
|
||||
I18NFileChooserListLayout:
|
||||
id: layout
|
||||
controller: root
|
||||
""")
|
||||
"""
|
||||
)
|
||||
Config.set("kivy", "log_level", log_level)
|
||||
|
||||
Builder.load_string(
|
||||
"""
|
||||
|
||||
@@ -4,7 +4,7 @@ import os
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
package_data = {"": ["*.json", "*.kv"], "katrain": [], "tests": []}
|
||||
packages = find_packages(exclude=["bots", "tests"])
|
||||
packages = find_packages(exclude=["tests"])
|
||||
version = re.search('^__version__\s*=\s*"(.*)"', open("katrain/__main__.py").read(), re.M).group(1)
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user