From 3c6416f85b1cc5d40a3aedee98c5af45e66b3e14 Mon Sep 17 00:00:00 2001 From: cuu Date: Fri, 30 Nov 2018 13:18:21 +0800 Subject: [PATCH 01/18] replace SkinManager() to MySkinManager --- .gitignore | 1 + Menu/GameShell/10_Settings/Wifi/wifi_list.py | 3 +-- sys.py/UI/Emulator/fav_list_page.py | 8 ++++---- sys.py/UI/Emulator/list_item.py | 4 ++-- sys.py/UI/Emulator/rom_list_page.py | 8 ++++---- sys.py/UI/above_all_patch.py | 8 ++++---- sys.py/UI/confirm_page.py | 8 ++++---- sys.py/UI/constants.py | 4 ++-- sys.py/UI/counter_screen.py | 6 +++--- sys.py/UI/createby_screen.py | 4 ++-- sys.py/UI/download_process_page.py | 10 +++++----- sys.py/UI/info_page_list_item.py | 8 ++++---- sys.py/UI/info_page_selector.py | 4 ++-- sys.py/UI/keyboard.py | 4 ++-- sys.py/UI/label.py | 6 +++--- sys.py/UI/main_screen.py | 17 ++++++++--------- sys.py/UI/multilabel.py | 6 +++--- sys.py/UI/scroller.py | 4 ++-- sys.py/UI/skin_manager.py | 13 +++++++++++++ sys.py/UI/text_item.py | 4 ++-- sys.py/UI/textarea.py | 6 +++--- sys.py/UI/untitled_icon.py | 4 ++-- 22 files changed, 76 insertions(+), 64 deletions(-) diff --git a/.gitignore b/.gitignore index 7015936..eab81b3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ retroarch-core-options.cfg *.pyc sys.py/.powerlevel sys.py/.buttonslayout +sys.py/.lang *.cfg **/Jobs/* !**/Jobs/.gitkeep diff --git a/Menu/GameShell/10_Settings/Wifi/wifi_list.py b/Menu/GameShell/10_Settings/Wifi/wifi_list.py index 2686611..d8103fa 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi_list.py +++ b/Menu/GameShell/10_Settings/Wifi/wifi_list.py @@ -547,7 +547,7 @@ class WifiList(Page): results = [] activeID = -1 for x,enc_type in enumerate(self._EncMethods): - if enc_type["type"] == self._Wireless.GetWirelessProperty(network_id,"enctype"): + if enc_type["type"] == self._Wireless.GetWirelessProperty(network_id,"encryption_method"): activeID = x break @@ -645,7 +645,6 @@ class WifiList(Page): return wicd_wirelss_encrypt_pwd = self.GetWirelessEncrypt(self._PsIndex) - if self._WirelessList[self._PsIndex]._IsActive: self.ShowBox( self._Wireless.GetWirelessIP('') ) else: diff --git a/sys.py/UI/Emulator/fav_list_page.py b/sys.py/UI/Emulator/fav_list_page.py index 06de248..e9fffc6 100644 --- a/sys.py/UI/Emulator/fav_list_page.py +++ b/sys.py/UI/Emulator/fav_list_page.py @@ -17,7 +17,7 @@ from UI.keys_def import CurKeys from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from rom_so_confirm_page import RomSoConfirmPage @@ -52,7 +52,7 @@ class FavStack: return len(self.stack) class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -231,7 +231,7 @@ class FavListPage(Page): bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel("my favourites games", fonts["varela18"]) - bgpng.SetLableColor(SkinManager().GiveColor('Disabled')) + bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Icons["bg"] = bgpng @@ -307,7 +307,7 @@ class FavListPage(Page): if cur_li._MyType == ICON_TYPES["DIR"]: return - if cur_li._MyType == ICON_TYPES["FILE"]: ## add to playlist only + if cur_li._MyType == ICON_TYPES["FILE"]: self._Screen._MsgBox.SetText("Launching...") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() diff --git a/sys.py/UI/Emulator/list_item.py b/sys.py/UI/Emulator/list_item.py index fdb0117..e46df36 100644 --- a/sys.py/UI/Emulator/list_item.py +++ b/sys.py/UI/Emulator/list_item.py @@ -11,7 +11,7 @@ from UI.label import Label from UI.fonts import fonts from UI.icon_item import IconItem from UI.util_funcs import midRect -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager # a item for List # - - - - - - - - - - - -- @@ -113,6 +113,6 @@ class ListItem(object): self._Parent._Icons["sys"].NewCoord(self._PosX+12,self._PosY+ (self._Height - self._Parent._Icons["sys"]._Height)/2+self._Parent._Icons["sys"]._Height/2) self._Parent._Icons["sys"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) diff --git a/sys.py/UI/Emulator/rom_list_page.py b/sys.py/UI/Emulator/rom_list_page.py index 9738b78..fbb9338 100644 --- a/sys.py/UI/Emulator/rom_list_page.py +++ b/sys.py/UI/Emulator/rom_list_page.py @@ -24,7 +24,7 @@ from UI.keys_def import CurKeys from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from rom_so_confirm_page import RomSoConfirmPage @@ -59,7 +59,7 @@ class RomStack: return len(self.stack) class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -265,7 +265,7 @@ class RomListPage(Page): bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"]) - bgpng.SetLableColor(SkinManager().GiveColor('Disabled')) + bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Icons["bg"] = bgpng @@ -346,7 +346,7 @@ class RomListPage(Page): self.SyncList( self._MyStack.Last() ) self._PsIndex = 0 - if cur_li._MyType == ICON_TYPES["FILE"]: ## add to playlist only + if cur_li._MyType == ICON_TYPES["FILE"]: self._Screen._MsgBox.SetText("Launching...") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() diff --git a/sys.py/UI/above_all_patch.py b/sys.py/UI/above_all_patch.py index fb03cab..661cd8f 100644 --- a/sys.py/UI/above_all_patch.py +++ b/sys.py/UI/above_all_patch.py @@ -17,7 +17,7 @@ from util_funcs import midRect from fonts import fonts from keys_def import CurKeys from label import Label -from skin_manager import SkinManager +from skin_manager import MySkinManager @@ -30,8 +30,8 @@ class AboveAllPatch(object): _Text ="" _FontObj=fonts["veramono20"] _Parent =None - _Color = SkinManager().GiveColor('Text') - _ValColor = SkinManager().GiveColor('URL') + _Color = MySkinManager.GiveColor('Text') + _ValColor = MySkinManager.GiveColor('URL') _CanvasHWND = None _TextSurf = None _Icons = {} @@ -130,5 +130,5 @@ class SoundPatch(AboveAllPatch): #w = 10,h = 40 vol_rect = pygame.Rect(80+i*20, self._Height/2+20,10, 40) - aa_round_rect(self._CanvasHWND,vol_rect,SkinManager().GiveColor("Front"),3,0,SkinManager().GiveColor("Front")) + aa_round_rect(self._CanvasHWND,vol_rect,MySkinManager.GiveColor("Front"),3,0,MySkinManager.GiveColor("Front")) diff --git a/sys.py/UI/confirm_page.py b/sys.py/UI/confirm_page.py index 7d226f8..ec0cd95 100644 --- a/sys.py/UI/confirm_page.py +++ b/sys.py/UI/confirm_page.py @@ -12,12 +12,12 @@ from label import Label from fonts import fonts from util_funcs import midRect from keys_def import CurKeys -from skin_manager import SkinManager +from skin_manager import MySkinManager class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -130,8 +130,8 @@ class ConfirmPage(Page): def DrawBG(self): _rect = pygame.Rect(self._BGPosX,self._BGPosY,self._BGWidth,self._BGHeight) - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('White'),_rect,0) - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('Text'),_rect,1) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),_rect,0) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),_rect,1) def Draw(self): #self.ClearCanvas() diff --git a/sys.py/UI/constants.py b/sys.py/UI/constants.py index 9d4c793..1f37a41 100644 --- a/sys.py/UI/constants.py +++ b/sys.py/UI/constants.py @@ -12,12 +12,12 @@ import base64 from beeprint import pp #UI lib -from skin_manager import SkinManager +from skin_manager import MySkinManager Width = 320 Height = 240 -bg_color = SkinManager().GiveColor('White') +bg_color = MySkinManager.GiveColor('White') icon_width = 80 icon_height = 80 diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 3c879d5..77edaa3 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -8,7 +8,7 @@ from constants import Width,Height,RUNSYS from label import Label from fonts import fonts from full_screen import FullScreen -from skin_manager import SkinManager +from skin_manager import MySkinManager import config @@ -22,8 +22,8 @@ class CounterScreen(FullScreen): _BottomLabel = None _NumberLabel = None - _BGColor = SkinManager().GiveColor('Black') - _FGColor = SkinManager().GiveColor('White') + _BGColor = MySkinManager.GiveColor('Black') + _FGColor = MySkinManager.GiveColor('White') _Counting = False _Number = 10 diff --git a/sys.py/UI/createby_screen.py b/sys.py/UI/createby_screen.py index 890d607..194d695 100644 --- a/sys.py/UI/createby_screen.py +++ b/sys.py/UI/createby_screen.py @@ -4,7 +4,7 @@ import pygame import base64 ## local package import from full_screen import FullScreen -from skin_manager import SkinManager +from skin_manager import MySkinManager from createby_clockworkpi import createby_clockworkpi_b64 from constants import Width,Height @@ -12,7 +12,7 @@ from constants import Width,Height class CreateByScreen(FullScreen): _BG = None - _BGColor = SkinManager().GiveColor('Black') + _BGColor = MySkinManager.GiveColor('Black') def Init(self): self._BG = pygame.image.frombuffer(base64.b64decode(createby_clockworkpi_b64 ),(Width,Height),"RGBA") diff --git a/sys.py/UI/download_process_page.py b/sys.py/UI/download_process_page.py index efd4cc4..04a42c4 100644 --- a/sys.py/UI/download_process_page.py +++ b/sys.py/UI/download_process_page.py @@ -19,7 +19,7 @@ from UI.keys_def import CurKeys from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.download import Download -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from libs.DBUS import is_wifi_connected_now @@ -39,8 +39,8 @@ class DownloadProcessPage(Page): _FileNameLabel = None _SizeLabel = None - _URLColor = SkinManager().GiveColor('URL') - _TextColor = SkinManager().GiveColor('Text') + _URLColor = MySkinManager.GiveColor('URL') + _TextColor = MySkinManager.GiveColor('Text') def __init__(self): Page.__init__(self) @@ -206,12 +206,12 @@ class DownloadProcessPage(Page): rect_ = midRect(self._Width/2,self._Height/2+33,170,17, Width,Height) - aa_round_rect(self._CanvasHWND,rect_,SkinManager().GiveColor('TitleBg'),5,0,SkinManager().GiveColor('TitleBg')) + aa_round_rect(self._CanvasHWND,rect_,MySkinManager.GiveColor('TitleBg'),5,0,MySkinManager.GiveColor('TitleBg')) rect2 = midRect(self._Width/2,self._Height/2+33,int(170*(percent/100.0)),17, Width,Height) rect2.left = rect_.left rect2.top = rect_.top - aa_round_rect(self._CanvasHWND,rect2,SkinManager().GiveColor('Front'),5,0,SkinManager().GiveColor('Front')) + aa_round_rect(self._CanvasHWND,rect2,MySkinManager.GiveColor('Front'),5,0,MySkinManager.GiveColor('Front')) rect3 = midRect(self._Width/2,self._Height/2+53,self._FileNameLabel._Width, self._FileNameLabel._Height,Width,Height) diff --git a/sys.py/UI/info_page_list_item.py b/sys.py/UI/info_page_list_item.py index 981b230..5174f70 100644 --- a/sys.py/UI/info_page_list_item.py +++ b/sys.py/UI/info_page_list_item.py @@ -2,7 +2,7 @@ import pygame from label import Label -from skin_manager import SkinManager +from skin_manager import MySkinManager class InfoPageListItem(object): _PosX = 0 @@ -43,9 +43,9 @@ class InfoPageListItem(object): def Draw(self): if self._ReadOnly == True: - self._Labels["Text"].SetColor(SkinManager().GiveColor("ReadOnlyText")) + self._Labels["Text"].SetColor(MySkinManager.GiveColor("ReadOnlyText")) else: - self._Labels["Text"].SetColor(SkinManager().GiveColor("Text")) + self._Labels["Text"].SetColor(MySkinManager.GiveColor("Text")) self._Labels["Text"]._PosX = self._Labels["Text"]._PosX + self._PosX @@ -59,4 +59,4 @@ class InfoPageListItem(object): self._Labels["Small"]._PosY = self._PosY + (self._Height - self._Labels["Small"]._Height)/2 self._Labels["Small"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) diff --git a/sys.py/UI/info_page_selector.py b/sys.py/UI/info_page_selector.py index e6955b5..a96b381 100644 --- a/sys.py/UI/info_page_selector.py +++ b/sys.py/UI/info_page_selector.py @@ -5,10 +5,10 @@ from libs.roundrects import aa_round_rect ## local UI import from UI.constants import Width,Height from UI.page import Page,PageSelector -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager class InfoPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 diff --git a/sys.py/UI/keyboard.py b/sys.py/UI/keyboard.py index 31cd9f0..cd75cd7 100644 --- a/sys.py/UI/keyboard.py +++ b/sys.py/UI/keyboard.py @@ -13,7 +13,7 @@ from UI.util_funcs import midRect from UI.keys_def import CurKeys from UI.icon_item import IconItem from UI.icon_pool import MyIconPool -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from libs.roundrects import aa_round_rect @@ -27,7 +27,7 @@ class KeyboardIcon(IconItem): _PosY = 0 _Width = 0 _Height = 0 - _Color = SkinManager().GiveColor('Text') + _Color = MySkinManager.GiveColor('Text') _MyType = ICON_TYPES["NAV"] _Parent = None _Str = "" diff --git a/sys.py/UI/label.py b/sys.py/UI/label.py index 94b0bf3..657fd3f 100644 --- a/sys.py/UI/label.py +++ b/sys.py/UI/label.py @@ -8,7 +8,7 @@ from constants import Width,Height from util_funcs import midRect #UI lib -from skin_manager import SkinManager +from skin_manager import MySkinManager class Label: _PosX=0 @@ -17,13 +17,13 @@ class Label: _Height=0 _Text="" _FontObj=None - _Color = SkinManager().GiveColor('Text') + _Color = MySkinManager.GiveColor('Text') _CanvasHWND = None _TextSurf = None def __init__(self): pass - def Init(self, text, font_obj, color=SkinManager().GiveColor('Text')): + def Init(self, text, font_obj, color=MySkinManager.GiveColor('Text')): self._Color = color self._FontObj = font_obj self._Text = text diff --git a/sys.py/UI/main_screen.py b/sys.py/UI/main_screen.py index af0f401..c09dbf5 100644 --- a/sys.py/UI/main_screen.py +++ b/sys.py/UI/main_screen.py @@ -27,7 +27,7 @@ from label import Label from untitled_icon import UntitledIcon from Emulator import MyEmulator -from skin_manager import SkinManager +from skin_manager import MySkinManager from counter_screen import CounterScreen class MessageBox(Label): @@ -36,7 +36,7 @@ class MessageBox(Label): def __init__(self): pass - def Init(self,text,font_obj,color=SkinManager().GiveColor('Text')): + def Init(self,text,font_obj,color=MySkinManager.GiveColor('Text')): self._Color = color self._FontObj = font_obj self._Text = text @@ -52,7 +52,7 @@ class MessageBox(Label): def PreDraw(self): self._Width = 0 self._Height = 0 - self._CanvasHWND.fill(SkinManager().GiveColor('White')) + self._CanvasHWND.fill(MySkinManager.GiveColor('White')) words = self._Text.split(' ') space = self._FontObj.size(' ')[0] @@ -99,7 +99,7 @@ class MessageBox(Label): padding = 5 - pygame.draw.rect(self._HWND,SkinManager().GiveColor('White'),(x_-padding,y_-padding, self._Width+padding*2,self._Height+padding*2)) + pygame.draw.rect(self._HWND,MySkinManager.GiveColor('White'),(x_-padding,y_-padding, self._Width+padding*2,self._Height+padding*2)) if self._HWND != None: rect = pygame.Rect(x_,y_,self._Width,self._Height) @@ -107,7 +107,7 @@ class MessageBox(Label): #self._HWND.blit(self._CanvasHWND,rect) if withborder == True: - pygame.draw.rect(self._HWND,SkinManager().GiveColor('Black'),(x_-padding,y_-padding, self._Width+padding*2,self._Height+padding*2),1) + pygame.draw.rect(self._HWND,MySkinManager.GiveColor('Black'),(x_-padding,y_-padding, self._Width+padding*2,self._Height+padding*2),1) def Draw(self): x = (self._Parent._Width)/2 @@ -152,9 +152,8 @@ class MainScreen(object): self._MsgBox._Parent= self self._MsgBox.Init(" ", self._MsgBoxFont) - self._SkinManager = SkinManager() - self._SkinManager.Init() - + self._SkinManager = MySkinManager + self._CounterScreen = CounterScreen() self._CounterScreen._HWND = self._HWND @@ -349,7 +348,7 @@ class MainScreen(object): self._Pages.append(Page) def ClearCanvas(self): - self._CanvasHWND.fill(SkinManager().GiveColor('White')) + self._CanvasHWND.fill(self._SkinManager.GiveColor('White')) def SwapAndShow(self): if self._Closed == True: diff --git a/sys.py/UI/multilabel.py b/sys.py/UI/multilabel.py index 4784b94..0330580 100644 --- a/sys.py/UI/multilabel.py +++ b/sys.py/UI/multilabel.py @@ -2,7 +2,7 @@ import pygame -from skin_manager import SkinManager +from skin_manager import MySkinManager class MultiLabel: ##Multi Line Label @@ -12,7 +12,7 @@ class MultiLabel: ##Multi Line Label _Height=100 _Text="" _FontObj=None - _Color = SkinManager().GiveColor('Text') + _Color = MySkinManager.GiveColor('Text') _CanvasHWND = None _TextSurf = None _MaxWidth = 0 @@ -20,7 +20,7 @@ class MultiLabel: ##Multi Line Label def __init__(self): pass - def Init(self,text,font_obj,color=SkinManager().GiveColor('Text')): + def Init(self,text,font_obj,color=MySkinManager.GiveColor('Text')): self._Color = color self._FontObj = font_obj self._Text = text diff --git a/sys.py/UI/scroller.py b/sys.py/UI/scroller.py index a3b8244..9361ffd 100644 --- a/sys.py/UI/scroller.py +++ b/sys.py/UI/scroller.py @@ -5,7 +5,7 @@ from util_funcs import midRect from libs.roundrects import aa_round_rect -from skin_manager import SkinManager +from skin_manager import MySkinManager class ListScroller(object): _PosX = 0 @@ -14,7 +14,7 @@ class ListScroller(object): _Height = 0 _MinHeight = 6 ## tested _Parent = None - _Color = SkinManager().GiveColor('Front') + _Color = MySkinManager.GiveColor('Front') _StartX = 0 _StartY = 0 diff --git a/sys.py/UI/skin_manager.py b/sys.py/UI/skin_manager.py index e7e7e1e..1deee6a 100644 --- a/sys.py/UI/skin_manager.py +++ b/sys.py/UI/skin_manager.py @@ -78,3 +78,16 @@ class SkinManager(object): else: return pygame.Color(255,0,0) + +##global MySkinManager Handler +MySkinManager = None + +def InitMySkinManager(): + global MySkinManager + if MySkinManager == None: + MySkinManager = SkinManager() + + +InitMySkinManager() + + diff --git a/sys.py/UI/text_item.py b/sys.py/UI/text_item.py index f494eab..7469b92 100644 --- a/sys.py/UI/text_item.py +++ b/sys.py/UI/text_item.py @@ -3,7 +3,7 @@ from UI.constants import Width,Height,ICON_TYPES from UI.icon_item import IconItem from UI.util_funcs import midRect -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager class TextItem(IconItem): _PosX = 0 @@ -11,7 +11,7 @@ class TextItem(IconItem): _Width = 0 _Height = 0 _Str = "" - _Color = SkinManager().GiveColor('Text') + _Color = MySkinManager.GiveColor('Text') _FontObj = None _Bold = False _MyType = ICON_TYPES["LETTER"] diff --git a/sys.py/UI/textarea.py b/sys.py/UI/textarea.py index e1a1846..39f0b15 100644 --- a/sys.py/UI/textarea.py +++ b/sys.py/UI/textarea.py @@ -10,14 +10,14 @@ from libs.roundrects import aa_round_rect from UI.page import Page,PageStack,PageSelector from UI.label import Label from UI.fonts import fonts -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager class Textarea: _PosX =0 _PosY = 0 _Width = 0 _Height = 0 - _BackgroundColor = SkinManager().GiveColor('TitleBg') + _BackgroundColor = MySkinManager.GiveColor('TitleBg') _CanvasHWND = None _MyWords = [] _BlitWords = [] @@ -80,7 +80,7 @@ class Textarea: x = self._PosX+xmargin linenumber = 0 cursor_row = 0 - + for i, v in enumerate(self._MyWords): t = self._FontObj.render(v, True, (8, 135, 174)) t_width = t.get_width() diff --git a/sys.py/UI/untitled_icon.py b/sys.py/UI/untitled_icon.py index 447eca7..c7f2b70 100644 --- a/sys.py/UI/untitled_icon.py +++ b/sys.py/UI/untitled_icon.py @@ -14,7 +14,7 @@ from beeprint import pp from util_funcs import midRect, SkinMap from fonts import fonts -from skin_manager import SkinManager +from skin_manager import MySkinManager BlankPng = SkinMap("gameshell/blank.png") # 80x80 ## use blank circle as bg, Two alpha As Icon Label @@ -32,7 +32,7 @@ class UntitledIcon(object): _BG = None # initial surface - _Color = SkinManager().GiveColor('Text') + _Color = MySkinManager.GiveColor('Text') def __init__(self): self._Words = ["G", "s"] From 6f45052d4cee52b1208bfb48af2fd2f2d4d49a21 Mon Sep 17 00:00:00 2001 From: cuu Date: Fri, 30 Nov 2018 13:26:30 +0800 Subject: [PATCH 02/18] add multi languages --- sys.py/UI/lang_manager.py | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sys.py/UI/lang_manager.py diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py new file mode 100644 index 0000000..ab44658 --- /dev/null +++ b/sys.py/UI/lang_manager.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- + +import pygame +import config +import ConfigParser + +class CaseConfigParser(ConfigParser.SafeConfigParser): + def optionxform(self, optionstr): + return optionstr + +class LangManager(object): + """ + """ + + _Langs = {} + _EngLangs = {} ##default Language dict,must be correct + _Config = None + _ConfigFileName = "English.ini" + + def __init__(self): + self.Init() + + def Init(self): + if not LangManager._Colors: + self.SetLangs() + + def SetLangs(self): + Langs = {} + + SkinManager._Colors = Colors + + self._Config = CaseConfigParser() + + fname = ".lang" + + + + try: + self._Config.read(fname) + except Exception, e: + print("read skin config.cfg error %s" % str(e)) + return + else: + if "Colors" in self._Config.sections(): + colour_opts = self._Config.options("Colors") +# print(colour_opts) + for i in SkinManager._Colors: + if i in colour_opts: + try: + SkinManager._Colors[i] = self.ConvertToRGB( + self._Config.get("Colors", i)) + except Exception, e: + print("error in ConvertToRGB %s" % str(e)) + continue + + def Tr(self,english_key_str): + if english_key_str in SkinManager._Langs: + return SkinManager._Langs[english_key_str] + else: + return SkinManager._EngLangs[english_key_str] ##default from english dict + + +##global MyLangManager Handler +MyLangManager = None + +def InitMyLangManager(): + global MySkinManager + if MyLangManager == None: + MyLangManager = LangManager() + + +InitMyLangManager() From 44ce359f0ea539d7eb6e8650c2d7d7dbe8e60e17 Mon Sep 17 00:00:00 2001 From: cuu Date: Fri, 30 Nov 2018 13:26:46 +0800 Subject: [PATCH 03/18] .gitignore fix --- skin/default/config.cfg | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 skin/default/config.cfg diff --git a/skin/default/config.cfg b/skin/default/config.cfg deleted file mode 100644 index 2fe3f5a..0000000 --- a/skin/default/config.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[Colors] -High = #33a6ff -White = #ffffff From b3aea583a5286753b68f87324dd13660efb0cb8b Mon Sep 17 00:00:00 2001 From: cuu Date: Fri, 30 Nov 2018 19:08:35 +0800 Subject: [PATCH 04/18] continue translate --- .../10_Settings/Bluetooth/__init__.py | 45 ++++----- .../10_Settings/Bluetooth/net_item.py | 4 +- .../10_Settings/PowerOptions/__init__.py | 10 +- .../GameShell/10_Settings/Storage/__init__.py | 8 +- Menu/GameShell/10_Settings/Time/list_item.py | 6 +- .../Time/timezone_lib_list_page.py | 6 +- Menu/GameShell/10_Settings/Update/__init__.py | 4 +- Menu/GameShell/10_Settings/Wifi/net_item.py | 4 +- Menu/GameShell/10_Settings/Wifi/wifi_list.py | 8 +- Menu/GameShell/10_Settings/list_page.py | 4 +- Menu/GameShell/97_Music Player/list_item.py | 8 +- .../97_Music Player/mpd_spectrum_page.py | 20 ++-- .../97_Music Player/music_lib_list_page.py | 6 +- .../97_Music Player/play_list_page.py | 6 +- Menu/GameShell/98_TinyCloud/__init__.py | 13 +-- sys.py/UI/Emulator/__init__.py | 9 +- sys.py/UI/Emulator/fav_list_page.py | 11 ++- sys.py/UI/Emulator/rom_list_page.py | 11 ++- sys.py/UI/Emulator/rom_so_confirm_page.py | 9 +- sys.py/UI/confirm_page.py | 8 +- sys.py/UI/delete_confirm_page.py | 7 +- sys.py/UI/fonts.py | 94 +++++++++---------- sys.py/UI/foot_bar.py | 3 +- sys.py/UI/lang_manager.py | 71 +++++++++----- sys.py/UI/main_screen.py | 13 +-- sys.py/UI/page.py | 3 +- sys.py/UI/title_bar.py | 8 +- sys.py/langs/00_English.ini | 50 ++++++++++ sys.py/langs/01_日本語.ini | 0 sys.py/langs/02_한국어.ini | 0 sys.py/langs/03_简体中文.ini | 48 ++++++++++ sys.py/langs/04_繁体中文.ini | 0 sys.py/run.py | 4 +- 33 files changed, 316 insertions(+), 185 deletions(-) create mode 100644 sys.py/langs/00_English.ini create mode 100644 sys.py/langs/01_日本語.ini create mode 100644 sys.py/langs/02_한국어.ini create mode 100644 sys.py/langs/03_简体中文.ini create mode 100644 sys.py/langs/04_繁体中文.ini diff --git a/Menu/GameShell/10_Settings/Bluetooth/__init__.py b/Menu/GameShell/10_Settings/Bluetooth/__init__.py index 3e2e4ac..c61890c 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/__init__.py +++ b/Menu/GameShell/10_Settings/Bluetooth/__init__.py @@ -22,17 +22,18 @@ from UI.scroller import ListScroller from UI.icon_pool import MyIconPool from UI.icon_item import IconItem from UI.multi_icon_item import MultiIconItem -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from UI.confirm_page import ConfirmPage from UI.info_page_list_item import InfoPageListItem from UI.multilabel import MultiLabel +from UI.lang_manager import MyLangManager from net_item import NetItem class BleForgetConfirmPage(ConfirmPage): - _ConfirmText = "Confirm Forget?" + _ConfirmText = MyLangManager.Tr("ConfirmForgetQ") def KeyDown(self,event): if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]: @@ -41,7 +42,7 @@ class BleForgetConfirmPage(ConfirmPage): self._Screen.SwapAndShow() if event.key == CurKeys["B"]: - self.SnapMsg("Deleteing...") + self.SnapMsg(MyLangManager.Tr("Deleting")) self._Screen.Draw() self._Screen.SwapAndShow() @@ -68,7 +69,7 @@ class BleForgetConfirmPage(ConfirmPage): class BleInfoPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -93,9 +94,9 @@ class BleInfoPageSelector(PageSelector): (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor) class BleInfoPage(Page): - _FootMsg = ["Nav.","Disconnect","Forget","Back",""] + _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Disconnect"),MyLangManager.Tr("Forget"),MyLangManager.Tr("Back"),""] _MyList = [] - _ListFontObj = fonts["varela15"] + _ListFontObj = MyLangManager.TrFont("varela15") _ListSmFontObj = fonts["varela12"] # small font _ListSm2FontObj= fonts["varela11"] @@ -126,7 +127,7 @@ class BleInfoPage(Page): self._ConfirmPage1 = BleForgetConfirmPage() self._ConfirmPage1._Screen = self._Screen - self._ConfirmPage1._Name = "Confirm Forget" + self._ConfirmPage1._Name = MyLangManager.Tr("ConfirmForget") self._ConfirmPage1._Parent = self self._ConfirmPage1.Init() @@ -204,7 +205,7 @@ class BleInfoPage(Page): proxy_obj = bus.get_object("org.bluez", self._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._MsgBox.SetText("Forgeting...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Forgeting")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -229,8 +230,8 @@ class BleInfoPage(Page): proxy_obj = bus.get_object("org.bluez", self._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._FootBar.UpdateNavText("Disconnecting...") - self._Screen._MsgBox.SetText("Disconnecting...") + self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Disconnecting")) + self._Screen._MsgBox.SetText(MyLangManager.Tr("Disconnecting")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -260,7 +261,7 @@ class BleInfoPage(Page): if self._AList != None: if "Connected" in self._AList: if self._AList["Connected"] == 1: - self._FootMsg[1] = "Disconnect" + self._FootMsg[1] = MyLangManager.Tr("Disconnect") else: self._FootMsg[1] = "" @@ -322,7 +323,7 @@ class BleInfoPage(Page): class BleListSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -356,9 +357,9 @@ class BleListMessageBox(Label): x = (self._Parent._Width - w)/2 y = (self._Parent._Height - h)/2 padding = 10 - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2)) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2)) - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1) self._CanvasHWND.blit(my_text,(x,y,w,h)) @@ -384,7 +385,7 @@ class BluetoothPage(Page): _BlockCb = None _LastStatusMsg = "" - _FootMsg = ["Nav.","Scan","Info","Back","TryConnect"] + _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Info"),MyLangManager.Tr("Back"),MyLangManager.Tr("TryConnect")] _Scroller = None _ListFontObj = fonts["notosanscjk15"] @@ -428,7 +429,7 @@ class BluetoothPage(Page): msgbox = BleListMessageBox() msgbox._CanvasHWND = self._CanvasHWND - msgbox.Init(" ",fonts["veramono12"]) + msgbox.Init(" ",MyLangManager.TrFont("veramono12")) msgbox._Parent = self self._MsgBox = msgbox @@ -443,7 +444,7 @@ class BluetoothPage(Page): self._InfoPage = BleInfoPage() self._InfoPage._Screen = self._Screen - self._InfoPage._Name = "Bluetooth info" + self._InfoPage._Name = MyLangManager.Tr("BluetoothInfo") self._InfoPage.Init() def print_normal(self,address, properties): @@ -529,8 +530,8 @@ class BluetoothPage(Page): proxy_obj = bus.get_object("org.bluez", cur_li._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._FootBar.UpdateNavText("connecting...") - self.ShowBox("connecting...") + self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Connecting")) + self.ShowBox(MyLangManager.Tr("Connecting")) try: dev.Connect() @@ -577,8 +578,8 @@ class BluetoothPage(Page): return self._Scanning = True - self.ShowBox("Bluetooth scanning...") - self._Screen._FootBar.UpdateNavText("bluetooth scanning") + self.ShowBox(MyLangManager.Tr("BluetoothScanning")) + self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Scanning")) proxy_obj = self._Dbus.get_object("org.bluez", "/org/bluez/" + self._ADAPTER_DEV) adapter_props = dbus.Interface(proxy_obj,"org.freedesktop.DBus.Properties") @@ -642,7 +643,7 @@ class BluetoothPage(Page): _connecting = self.CheckIfBluetoothConnecting() if _connecting: self.ShutDownConnecting() - self.ShowBox("ShutDownConnecting...") + self.ShowBox(MyLangManager.Tr("ShutDownConnecting")) self.AbortedAndReturnToUpLevel() else: self.AbortedAndReturnToUpLevel() diff --git a/Menu/GameShell/10_Settings/Bluetooth/net_item.py b/Menu/GameShell/10_Settings/Bluetooth/net_item.py index e901a6f..7fbbef0 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/net_item.py +++ b/Menu/GameShell/10_Settings/Bluetooth/net_item.py @@ -9,7 +9,7 @@ from UI.fonts import fonts from UI.icon_item import IconItem from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager class NetItemMultiIcon(MultiIconItem): @@ -123,5 +123,5 @@ class NetItem(object): self._Icons["done"].NewCoord(320-22,self._PosY) self._Icons["done"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'), + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'), (self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) diff --git a/Menu/GameShell/10_Settings/PowerOptions/__init__.py b/Menu/GameShell/10_Settings/PowerOptions/__init__.py index 51ad5ab..016599f 100644 --- a/Menu/GameShell/10_Settings/PowerOptions/__init__.py +++ b/Menu/GameShell/10_Settings/PowerOptions/__init__.py @@ -19,12 +19,12 @@ from UI.scroller import ListScroller from UI.icon_pool import MyIconPool from UI.icon_item import IconItem from UI.multilabel import MultiLabel -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager import config class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -103,7 +103,7 @@ class PageListItem(object): self._Labels["Small"]._PosY = self._PosY + (self._Height- self._Labels["Small"]._Height)/2 self._Labels["Small"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) class InfoPage(Page): @@ -445,9 +445,9 @@ class PowerOptionsPage(Page): config.PowerLevel = cur_li._Value if config.PowerLevel!= "supersaving": - os.system("sudo iw wlan0 set power_save off") + os.system("sudo iw wlan0 set power_save off > /dev/null") else: - os.system("sudo iw wlan0 set power_save on") + os.system("sudo iw wlan0 set power_save on > /dev/null") self._Screen._MsgBox.SetText("Applying...") self._Screen._MsgBox.Draw() diff --git a/Menu/GameShell/10_Settings/Storage/__init__.py b/Menu/GameShell/10_Settings/Storage/__init__.py index f2578ce..7a9aeea 100644 --- a/Menu/GameShell/10_Settings/Storage/__init__.py +++ b/Menu/GameShell/10_Settings/Storage/__init__.py @@ -6,7 +6,7 @@ import os ## local UI import from UI.page import Page -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from UI.constants import ICON_TYPES,Width,Height from UI.icon_item import IconItem from UI.icon_pool import MyIconPool @@ -28,7 +28,7 @@ class StoragePage(Page): _BGmsg = "%.1fGB of %.1fGB Used" _DskUsg = None - _HighColor = SkinManager().GiveColor('High') + _HighColor = MySkinManager.GiveColor('High') _FootMsg = ["Nav.","","","Back",""] def __init__(self): @@ -99,7 +99,7 @@ class StoragePage(Page): rect_ = midRect(self._Width/2,self._Height-30,170,17, Width,Height) - aa_round_rect(self._CanvasHWND, rect_, SkinManager().GiveColor('Line'), 5, 0, SkinManager().GiveColor('Line')) + aa_round_rect(self._CanvasHWND, rect_, MySkinManager.GiveColor('Line'), 5, 0, MySkinManager.GiveColor('Line')) rect2 = midRect(self._Width/2,self._Height-30,int(170*(1.0-usage_percent)),17, Width,Height) @@ -107,7 +107,7 @@ class StoragePage(Page): rect2.left = rect_.left rect2.top = rect_.top - aa_round_rect(self._CanvasHWND,rect2, SkinManager().GiveColor('Front'),5,0,SkinManager().GiveColor('Front')) + aa_round_rect(self._CanvasHWND,rect2, MySkinManager.GiveColor('Front'),5,0,MySkinManager.GiveColor('Front')) class APIOBJ(object): diff --git a/Menu/GameShell/10_Settings/Time/list_item.py b/Menu/GameShell/10_Settings/Time/list_item.py index 74f4618..6de8281 100644 --- a/Menu/GameShell/10_Settings/Time/list_item.py +++ b/Menu/GameShell/10_Settings/Time/list_item.py @@ -10,7 +10,7 @@ from UI.label import Label from UI.fonts import fonts from UI.icon_item import IconItem from UI.util_funcs import midRect -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager # a item for List # - - - - - - - - - - - -- @@ -32,7 +32,7 @@ class ListItemIcon(IconItem): class ListItemLabel(Label): - _ActiveColor = SkinManager().GiveColor('Active') + _ActiveColor = MySkinManager.GiveColor('Active') _Active = False def Draw(self): @@ -107,7 +107,7 @@ class ListItem(object): self._Labels["Text"]._PosY = self._PosY + (self._Height - self._Labels["Text"]._Height)/2 - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) self._Labels["Text"].Draw() diff --git a/Menu/GameShell/10_Settings/Time/timezone_lib_list_page.py b/Menu/GameShell/10_Settings/Time/timezone_lib_list_page.py index c2c852c..f55be7e 100644 --- a/Menu/GameShell/10_Settings/Time/timezone_lib_list_page.py +++ b/Menu/GameShell/10_Settings/Time/timezone_lib_list_page.py @@ -17,7 +17,7 @@ from UI.keys_def import CurKeys from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from list_item import ListItem @@ -51,7 +51,7 @@ class TimeLibStack: return len(self.stack) class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -190,7 +190,7 @@ class TimezoneListPage(Page): self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("No timezones found on system!", fonts["varela22"]) - self._BGpng.SetLableColor(SkinManager().GiveColor('Disabled')) + self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) diff --git a/Menu/GameShell/10_Settings/Update/__init__.py b/Menu/GameShell/10_Settings/Update/__init__.py index 7dceb7c..1c0d5d9 100644 --- a/Menu/GameShell/10_Settings/Update/__init__.py +++ b/Menu/GameShell/10_Settings/Update/__init__.py @@ -19,7 +19,7 @@ from UI.keys_def import CurKeys from UI.confirm_page import ConfirmPage from UI.download import Download from UI.download_process_page import DownloadProcessPage -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from libs.roundrects import aa_round_rect from libs.DBUS import is_wifi_connected_now @@ -195,7 +195,7 @@ class InfoPageListItem(object): self._Labels["Small"]._PosY = self._PosY + (self._Height - self._Labels["Small"]._Height)/2 self._Labels["Small"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) class UpdatePage(Page): diff --git a/Menu/GameShell/10_Settings/Wifi/net_item.py b/Menu/GameShell/10_Settings/Wifi/net_item.py index 17cc202..0149c2d 100644 --- a/Menu/GameShell/10_Settings/Wifi/net_item.py +++ b/Menu/GameShell/10_Settings/Wifi/net_item.py @@ -9,7 +9,7 @@ from UI.fonts import fonts from UI.icon_item import IconItem from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager class NetItemMultiIcon(MultiIconItem): @@ -195,6 +195,6 @@ class NetItem(object): self._Icons["wifistatus"].NewCoord(self._Width-23,self._PosY) self._Icons["wifistatus"].Draw() - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) diff --git a/Menu/GameShell/10_Settings/Wifi/wifi_list.py b/Menu/GameShell/10_Settings/Wifi/wifi_list.py index d8103fa..af1df85 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi_list.py +++ b/Menu/GameShell/10_Settings/Wifi/wifi_list.py @@ -15,7 +15,7 @@ from UI.util_funcs import midRect,SwapAndShow from UI.keys_def import CurKeys from UI.scroller import ListScroller from UI.confirm_page import ConfirmPage -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from UI.info_page_list_item import InfoPageListItem from UI.info_page_selector import InfoPageSelector @@ -224,7 +224,7 @@ class WifiInfoPage(Page): class WifiListSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -260,9 +260,9 @@ class WifiListMessageBox(Label): x = (self._Parent._Width - w)/2 y = (self._Parent._Height - h)/2 padding = 10 - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2)) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(x-padding,y-padding, w+padding*2,h+padding*2)) - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Black'),(x-padding,y-padding, w+padding*2,h+padding*2),1) self._CanvasHWND.blit(my_text,(x,y,w,h)) diff --git a/Menu/GameShell/10_Settings/list_page.py b/Menu/GameShell/10_Settings/list_page.py index ff48f1b..d48e78e 100644 --- a/Menu/GameShell/10_Settings/list_page.py +++ b/Menu/GameShell/10_Settings/list_page.py @@ -13,14 +13,14 @@ from UI.fonts import fonts from UI.util_funcs import midRect,FileExists from UI.keys_def import CurKeys from UI.scroller import ListScroller -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from list_item import ListItem import myvars class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 diff --git a/Menu/GameShell/97_Music Player/list_item.py b/Menu/GameShell/97_Music Player/list_item.py index 3832619..186201a 100644 --- a/Menu/GameShell/97_Music Player/list_item.py +++ b/Menu/GameShell/97_Music Player/list_item.py @@ -10,7 +10,7 @@ from UI.label import Label from UI.fonts import fonts from UI.icon_item import IconItem from UI.util_funcs import midRect -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager # a item for List # - - - - - - - - - - - -- @@ -32,7 +32,7 @@ class ListItemIcon(IconItem): class ListItemLabel(Label): - _ActiveColor = SkinManager().GiveColor('Active') + _ActiveColor = MySkinManager.GiveColor('Active') _Active = False def Draw(self): @@ -117,7 +117,7 @@ class ListItem(object): self._Labels["Text"]._PosY = self._PosY + (self._Height - self._Labels["Text"]._Height)/2 - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) if self._Playing == True: self._Labels["Text"]._Active =True @@ -128,7 +128,7 @@ class ListItem(object): if self._PlayingProcess > 0: seek_posx = int(self._Width * self._PlayingProcess/100.0) - pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Active'),(self._PosX,self._PosY+self._Height-2),(self._PosX+seek_posx,self._PosY+self._Height-2),2) + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Active'),(self._PosX,self._PosY+self._Height-2),(self._PosX+seek_posx,self._PosY+self._Height-2),2) else: self._Labels["Text"].Draw() diff --git a/Menu/GameShell/97_Music Player/mpd_spectrum_page.py b/Menu/GameShell/97_Music Player/mpd_spectrum_page.py index eee8949..a776b77 100644 --- a/Menu/GameShell/97_Music Player/mpd_spectrum_page.py +++ b/Menu/GameShell/97_Music Player/mpd_spectrum_page.py @@ -20,7 +20,7 @@ from UI.util_funcs import midRect from UI.keys_def import CurKeys from UI.icon_item import IconItem from UI.icon_pool import MyIconPool -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from threading import Thread @@ -83,7 +83,7 @@ class MPDSpectrumPage(Page): _SongFont = fonts["notosanscjk12"] _PIFI = None _FIFO = None - _Color = SkinManager().GiveColor('Front') + _Color = MySkinManager.GiveColor('Front') _GobjectIntervalId = -1 _Queue = None _KeepReading = True @@ -163,22 +163,22 @@ class MPDSpectrumPage(Page): self._song_title = Label() self._song_title.SetCanvasHWND(self._RollCanvas) - self._song_title.Init("Untitled",self._SongFont,SkinManager().GiveColor('White')) + self._song_title.Init("Untitled",self._SongFont,MySkinManager.GiveColor('White')) self._title = Label() self._title.SetCanvasHWND(self._CanvasHWND) - self._title.Init("Title:",self._ListFont,SkinManager().GiveColor('White')) + self._title.Init("Title:",self._ListFont,MySkinManager.GiveColor('White')) self._time = Label() self._time.SetCanvasHWND(self._CanvasHWND) - self._time.Init("Time:",self._ListFont,SkinManager().GiveColor('White')) + self._time.Init("Time:",self._ListFont,MySkinManager.GiveColor('White')) self._time2 = Label() self._time2.SetCanvasHWND(self._CanvasHWND) self._time2.Init("00:00-00:00", self._ListFont, - SkinManager().GiveColor('White')) + MySkinManager.GiveColor('White')) self.Start() @@ -229,7 +229,7 @@ class MPDSpectrumPage(Page): def ClearCanvas(self): - self._CanvasHWND.fill(SkinManager().GiveColor('Black')) + self._CanvasHWND.fill(MySkinManager.GiveColor('Black')) def SgsSmooth(self): passes = 1 @@ -343,7 +343,7 @@ class MPDSpectrumPage(Page): if self._RollCanvas != None: # self._RollCanvas.fill((111,22,33)) - self._RollCanvas.fill(SkinManager().GiveColor('Black')) + self._RollCanvas.fill(MySkinManager.GiveColor('Black')) if self._song_title._Width > self._RollW: if (self._song_title._PosX + self._song_title._Width) > self._RollW and self._frames % 30 == 0: self._song_title._PosX -= 1 @@ -417,9 +417,9 @@ class MPDSpectrumPage(Page): else: self._capYPositionArray[i] = value - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-gap-self._capYPositionArray[i]-margin_bottom,bw,gap),0) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-gap-self._capYPositionArray[i]-margin_bottom,bw,gap),0) - pygame.draw.rect(self._CanvasHWND,SkinManager().GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-value-gap-margin_bottom,bw,value+gap),0) + pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('White'),(i*(bw+gap)+margin_left,self._Height-value-gap-margin_bottom,bw,value+gap),0) self._vis_values[i] -= 2 diff --git a/Menu/GameShell/97_Music Player/music_lib_list_page.py b/Menu/GameShell/97_Music Player/music_lib_list_page.py index 641f76c..dec0b0f 100644 --- a/Menu/GameShell/97_Music Player/music_lib_list_page.py +++ b/Menu/GameShell/97_Music Player/music_lib_list_page.py @@ -15,7 +15,7 @@ from UI.keys_def import CurKeys from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from list_item import ListItem @@ -49,7 +49,7 @@ class MusicLibStack: return len(self.stack) class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -185,7 +185,7 @@ class MusicLibListPage(Page): self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"]) - self._BGpng.SetLableColor(SkinManager().GiveColor('Disabled')) + self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) diff --git a/Menu/GameShell/97_Music Player/play_list_page.py b/Menu/GameShell/97_Music Player/play_list_page.py index bb5e273..c40fe57 100644 --- a/Menu/GameShell/97_Music Player/play_list_page.py +++ b/Menu/GameShell/97_Music Player/play_list_page.py @@ -14,7 +14,7 @@ from UI.fonts import fonts from UI.util_funcs import midRect from UI.keys_def import CurKeys from UI.icon_pool import MyIconPool -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager from UI.scroller import ListScroller @@ -23,7 +23,7 @@ from list_item import ListItem import myvars class ListPageSelector(PageSelector): - _BackgroundColor = SkinManager().GiveColor('Front') + _BackgroundColor = MySkinManager.GiveColor('Front') def __init__(self): self._PosX = 0 @@ -184,7 +184,7 @@ class PlayListPage(Page): self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("my favourites", fonts["varela18"]) - self._BGpng.SetLableColor(SkinManager().GiveColor('Disabled')) + self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Scroller = ListScroller() diff --git a/Menu/GameShell/98_TinyCloud/__init__.py b/Menu/GameShell/98_TinyCloud/__init__.py index 5ed09c4..83d3250 100644 --- a/Menu/GameShell/98_TinyCloud/__init__.py +++ b/Menu/GameShell/98_TinyCloud/__init__.py @@ -10,12 +10,13 @@ from UI.fonts import fonts from UI.icon_item import IconItem from UI.icon_pool import MyIconPool from UI.keys_def import CurKeys -from UI.skin_manager import SkinManager +from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from libs.DBUS import is_wifi_connected_now,get_wifi_ip class TinyCloudPage(Page): - _FootMsg = ["Nav.","","","Back",""] + _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),""] _MyList = [] _ListFontObj = fonts["varela13"] @@ -25,8 +26,8 @@ class TinyCloudPage(Page): _Coords = {} - _URLColor = SkinManager().GiveColor('URL') - _TextColor = SkinManager().GiveColor('Text') + _URLColor = MySkinManager.GiveColor('URL') + _TextColor = MySkinManager.GiveColor('Text') _Scrolled = 0 _PngSize = {} @@ -165,7 +166,7 @@ class TinyCloudPage(Page): def KeyDown(self,event): if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]: - if self._FootMsg[3] == "Back": + if self._FootMsg[3] == MyLangManager.Tr("Back"): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() @@ -198,7 +199,7 @@ class TinyCloudPage(Page): self._DrawOnce = True if self._HWND != None: - self._HWND.fill(SkinManager().GiveColor('White')) + self._HWND.fill(MySkinManager.GiveColor('White')) self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) ) diff --git a/sys.py/UI/Emulator/__init__.py b/sys.py/UI/Emulator/__init__.py index 3d201bc..b427bd8 100644 --- a/sys.py/UI/Emulator/__init__.py +++ b/sys.py/UI/Emulator/__init__.py @@ -11,6 +11,7 @@ import sys from UI.delete_confirm_page import DeleteConfirmPage from UI.icon_pool import MyIconPool from UI.keys_def import CurKeys +from UI.lang_manager import MyLangManager from rom_list_page import RomListPage from fav_list_page import FavListPage @@ -34,7 +35,7 @@ class FavDeleteConfirmPage(DeleteConfirmPage): except: print("error in FavDeleteConfirmPage chown ") - self.SnapMsg("Deleteing....") + self.SnapMsg(MyLangManager.Tr("Deleteing")) self._Screen.Draw() self._Screen.SwapAndShow() self.Reset() @@ -75,18 +76,18 @@ class MyEmulator(object): def InitDeleteConfirmPage(self,main_screen): self.DeleteConfirmPage = DeleteConfirmPage() self.DeleteConfirmPage._Screen = main_screen - self.DeleteConfirmPage._Name = "Delete Confirm" + self.DeleteConfirmPage._Name = MyLangManager.Tr("DeleteConfirm") self.DeleteConfirmPage.Init() self.FavDeleteConfirmPage = FavDeleteConfirmPage() self.FavDeleteConfirmPage._Screen = main_screen - self.FavDeleteConfirmPage._Name = "Delete Confirm" + self.FavDeleteConfirmPage._Name = MyLangManager.Tr("DeleteConfirm") self.FavDeleteConfirmPage.Init() def InitFavListPage(self,main_screen): self.FavListPage = FavListPage() self.FavListPage._Screen = main_screen - self.FavListPage._Name = "Favourite Games" + self.FavListPage._Name = MyLangManager.Tr("FavouriteGames") self.FavListPage._Emulator = self._Emulator self.FavListPage._Parent = self diff --git a/sys.py/UI/Emulator/fav_list_page.py b/sys.py/UI/Emulator/fav_list_page.py index e9fffc6..45f1f1e 100644 --- a/sys.py/UI/Emulator/fav_list_page.py +++ b/sys.py/UI/Emulator/fav_list_page.py @@ -18,6 +18,7 @@ from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from rom_so_confirm_page import RomSoConfirmPage @@ -91,7 +92,7 @@ class FavListPage(Page): _Icons = {} _Selector=None - _FootMsg = ["Nav","Scan","Remove","","Run"] + _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Remove"),"",MyLangManager.Tr("Run")] _MyList = [] _ListFont = fonts["notosanscjk15"] _MyStack = None @@ -230,7 +231,7 @@ class FavListPage(Page): bgpng._ImgSurf = MyIconPool._Icons["star"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self - bgpng.AddLabel("my favourites games", fonts["varela18"]) + bgpng.AddLabel(MyLangManager.Tr("MyFavGames"), MyLangManager.TrFont("varela18")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) @@ -244,7 +245,7 @@ class FavListPage(Page): rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen - rom_so_confirm_page._Name = "Download Confirm" + rom_so_confirm_page._Name = MyLangManager.Tr("Download Confirm") rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() @@ -308,7 +309,7 @@ class FavListPage(Page): return if cur_li._MyType == ICON_TYPES["FILE"]: - self._Screen._MsgBox.SetText("Launching...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Launching")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() if self._Emulator["FILETYPE"] == "dir": @@ -418,7 +419,7 @@ class FavListPage(Page): #delete directly without confirm dialog stats = os.stat(cur_li._Path) os.chown(cur_li._Path, stats.st_uid,stats.st_uid) ## normally uid and gid should be the same - self._Screen._MsgBox.SetText("Deleting...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Deleting")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(600) diff --git a/sys.py/UI/Emulator/rom_list_page.py b/sys.py/UI/Emulator/rom_list_page.py index fbb9338..4447ecf 100644 --- a/sys.py/UI/Emulator/rom_list_page.py +++ b/sys.py/UI/Emulator/rom_list_page.py @@ -25,6 +25,7 @@ from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from rom_so_confirm_page import RomSoConfirmPage @@ -98,7 +99,7 @@ class RomListPage(Page): _Icons = {} _Selector=None - _FootMsg = ["Nav","Scan","Del","Add Fav","Run"] + _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Del"),MyLangManager.Tr("AddFav"),MyLangManager.Tr("Run")] _MyList = [] _ListFont = fonts["notosanscjk15"] _MyStack = None @@ -264,7 +265,7 @@ class RomListPage(Page): bgpng._ImgSurf = MyIconPool._Icons["empty"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self - bgpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"]) + bgpng.AddLabel(MyLangManager.Tr("UploadViaWifi"), MyLangManager.TrFont("varela22")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) @@ -278,7 +279,7 @@ class RomListPage(Page): rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen - rom_so_confirm_page._Name = "Download Confirm" + rom_so_confirm_page._Name = MyLangManager.Tr("Download Confirm") rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() @@ -347,7 +348,7 @@ class RomListPage(Page): self._PsIndex = 0 if cur_li._MyType == ICON_TYPES["FILE"]: - self._Screen._MsgBox.SetText("Launching...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Launching")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -447,7 +448,7 @@ class RomListPage(Page): except: pass - self._Screen._MsgBox.SetText("Adding to Favourite list") + self._Screen._MsgBox.SetText(MyLangManager.Tr("AddFavList")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() diff --git a/sys.py/UI/Emulator/rom_so_confirm_page.py b/sys.py/UI/Emulator/rom_so_confirm_page.py index 5e2dded..4d23087 100644 --- a/sys.py/UI/Emulator/rom_so_confirm_page.py +++ b/sys.py/UI/Emulator/rom_so_confirm_page.py @@ -17,13 +17,14 @@ from UI.download_process_page import DownloadProcessPage from UI.keys_def import CurKeys from UI.fonts import fonts from UI.multilabel import MultiLabel +from UI.lang_manager import MyLangManager import config class RomSoConfirmPage(ConfirmPage): - _ListFont = fonts["veramono18"] + _ListFont = MyLangManager.TrFont("veramono18") - _ConfirmText = "Do you want to setup this game engine automatically?" + _ConfirmText = MyLangManager.Tr("SetupGameEngineAutoQ") _MyDownloadPage = None @@ -93,12 +94,12 @@ class RomSoConfirmPage(ConfirmPage): if event.key == CurKeys["B"]: if self.CheckBattery() < 5: - self.SnapMsg("Battery must over 5%") + self.SnapMsg(MyLangManager.Tr("BATOver5Pct")) else: if self._MyDownloadPage == None: self._MyDownloadPage = DownloadProcessPage() self._MyDownloadPage._Screen = self._Screen - self._MyDownloadPage._Name = "Downloading..." + self._MyDownloadPage._Name = MyLangManager.Tr("Downloading") self._MyDownloadPage.Init() self._Screen.PushPage(self._MyDownloadPage) diff --git a/sys.py/UI/confirm_page.py b/sys.py/UI/confirm_page.py index ec0cd95..04e3cdd 100644 --- a/sys.py/UI/confirm_page.py +++ b/sys.py/UI/confirm_page.py @@ -13,7 +13,7 @@ from fonts import fonts from util_funcs import midRect from keys_def import CurKeys from skin_manager import MySkinManager - +from lang_manager import MyLangManager class ListPageSelector(PageSelector): @@ -54,13 +54,13 @@ class ConfirmPage(Page): _Icons = {} _Selector=None - _FootMsg = ["Nav","","","Cancel","Yes"] + _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Cancel"),MyLangManager.Tr("Yes")] _MyList = [] - _ListFont = fonts["veramono20"] + _ListFont = MyLangManager.TrFont("veramono20") _MyStack = None _FileName = "" _TrashDir = "" - _ConfirmText = "Confirm?" + _ConfirmText = MyLangManager.Tr("ConfirmQ") _BGPosX = 0 _BGPosY = 0 _BGWidth = 0 diff --git a/sys.py/UI/delete_confirm_page.py b/sys.py/UI/delete_confirm_page.py index 002fbc6..12c27c3 100644 --- a/sys.py/UI/delete_confirm_page.py +++ b/sys.py/UI/delete_confirm_page.py @@ -13,12 +13,13 @@ from fonts import fonts from util_funcs import midRect from keys_def import CurKeys from confirm_page import ConfirmPage +from lang_manager import MyLangManager class DeleteConfirmPage(ConfirmPage): _FileName = "" _TrashDir = "" - _ConfirmText = "Confirm delete?" + _ConfirmText = MyLangManager.Tr("ConfirmDeleteQ") def SetTrashDir(self,d): self._TrashDir = d @@ -48,14 +49,14 @@ class DeleteConfirmPage(ConfirmPage): shutil.move(self._FileName, self._TrashDir) except shutil.Error as e: if "already exists" in str(e): - self._Screen._MsgBox.SetText("Already existed") + self._Screen._MsgBox.SetText(MyLangManager.Tr("AlreadyExisted")) else: self._Screen._MsgBox.SetText("Error") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() else: - self.SnapMsg("Deleting....") + self.SnapMsg(MyLangManager.Tr("Deleting")) self._Screen.Draw() self._Screen.SwapAndShow() self.Reset() diff --git a/sys.py/UI/fonts.py b/sys.py/UI/fonts.py index 64d2bd4..13903e1 100644 --- a/sys.py/UI/fonts.py +++ b/sys.py/UI/fonts.py @@ -11,57 +11,57 @@ import config if not pygame.font.get_init(): pygame.font.init() - -skinpath = "../skin/"+config.SKIN+"/truetype" -fonts_path = {} - -fonts_path["varela"] = "%s/VarelaRound-Regular.ttf" % skinpath -fonts_path["veramono"] = "%s/VeraMono.ttf" % skinpath -fonts_path["noto"] = "%s/NotoSansMono-Regular.ttf" % skinpath -fonts_path["notocjk"] = "%s/NotoSansCJK-Regular.ttf" % skinpath - fonts = {} -fonts["varela10"] = pygame.font.Font(fonts_path["varela"],10) -fonts["varela11"] = pygame.font.Font(fonts_path["varela"],11) -fonts["varela12"] = pygame.font.Font(fonts_path["varela"],12) -fonts["varela13"] = pygame.font.Font(fonts_path["varela"],13) -fonts["varela14"] = pygame.font.Font(fonts_path["varela"],14) -fonts["varela15"] = pygame.font.Font(fonts_path["varela"],15) +if not fonts: + skinpath = "../skin/"+config.SKIN+"/truetype" + fonts_path = {} -fonts["varela16"] = pygame.font.Font(fonts_path["varela"],16) -fonts["varela18"] = pygame.font.Font(fonts_path["varela"],18) -fonts["varela20"] = pygame.font.Font(fonts_path["varela"],20) -fonts["varela22"] = pygame.font.Font(fonts_path["varela"],22) -fonts["varela23"] = pygame.font.Font(fonts_path["varela"],23) -fonts["varela24"] = pygame.font.Font(fonts_path["varela"],24) -fonts["varela25"] = pygame.font.Font(fonts_path["varela"],25) -fonts["varela26"] = pygame.font.Font(fonts_path["varela"],26) -fonts["varela27"] = pygame.font.Font(fonts_path["varela"],27) -fonts["varela28"] = pygame.font.Font(fonts_path["varela"],28) -fonts["varela34"] = pygame.font.Font(fonts_path["varela"],34) -fonts["varela40"] = pygame.font.Font(fonts_path["varela"],40) -fonts["varela120"] = pygame.font.Font(fonts_path["varela"],120) + fonts_path["varela"] = "%s/VarelaRound-Regular.ttf" % skinpath + fonts_path["veramono"] = "%s/VeraMono.ttf" % skinpath + fonts_path["noto"] = "%s/NotoSansMono-Regular.ttf" % skinpath + fonts_path["notocjk"] = "%s/NotoSansCJK-Regular.ttf" % skinpath -fonts["veramono25"] = pygame.font.Font(fonts_path["veramono"],25) -fonts["veramono24"] = pygame.font.Font(fonts_path["veramono"],24) -fonts["veramono23"] = pygame.font.Font(fonts_path["veramono"],23) -fonts["veramono22"] = pygame.font.Font(fonts_path["veramono"],22) -fonts["veramono21"] = pygame.font.Font(fonts_path["veramono"],21) -fonts["veramono20"] = pygame.font.Font(fonts_path["veramono"],20) -fonts["veramono18"] = pygame.font.Font(fonts_path["veramono"],18) -fonts["veramono16"] = pygame.font.Font(fonts_path["veramono"],16) -fonts["veramono15"] = pygame.font.Font(fonts_path["veramono"],15) -fonts["veramono14"] = pygame.font.Font(fonts_path["veramono"],14) -fonts["veramono13"] = pygame.font.Font(fonts_path["veramono"],13) -fonts["veramono12"] = pygame.font.Font(fonts_path["veramono"],12) -fonts["veramono11"] = pygame.font.Font(fonts_path["veramono"],11) -fonts["veramono10"] = pygame.font.Font(fonts_path["veramono"],10) + fonts["varela10"] = pygame.font.Font(fonts_path["varela"],10) + fonts["varela11"] = pygame.font.Font(fonts_path["varela"],11) + fonts["varela12"] = pygame.font.Font(fonts_path["varela"],12) + fonts["varela13"] = pygame.font.Font(fonts_path["varela"],13) + fonts["varela14"] = pygame.font.Font(fonts_path["varela"],14) + fonts["varela15"] = pygame.font.Font(fonts_path["varela"],15) -for i in range(10,18): - fonts["notosansmono"+str(i)] = pygame.font.Font(fonts_path["noto"],i) + fonts["varela16"] = pygame.font.Font(fonts_path["varela"],16) + fonts["varela18"] = pygame.font.Font(fonts_path["varela"],18) + fonts["varela20"] = pygame.font.Font(fonts_path["varela"],20) + fonts["varela22"] = pygame.font.Font(fonts_path["varela"],22) + fonts["varela23"] = pygame.font.Font(fonts_path["varela"],23) + fonts["varela24"] = pygame.font.Font(fonts_path["varela"],24) + fonts["varela25"] = pygame.font.Font(fonts_path["varela"],25) + fonts["varela26"] = pygame.font.Font(fonts_path["varela"],26) + fonts["varela27"] = pygame.font.Font(fonts_path["varela"],27) + fonts["varela28"] = pygame.font.Font(fonts_path["varela"],28) + fonts["varela34"] = pygame.font.Font(fonts_path["varela"],34) + fonts["varela40"] = pygame.font.Font(fonts_path["varela"],40) + fonts["varela120"] = pygame.font.Font(fonts_path["varela"],120) -for i in range(10,18): - fonts["notosanscjk"+str(i)] = pygame.font.Font(fonts_path["notocjk"],i) + fonts["veramono25"] = pygame.font.Font(fonts_path["veramono"],25) + fonts["veramono24"] = pygame.font.Font(fonts_path["veramono"],24) + fonts["veramono23"] = pygame.font.Font(fonts_path["veramono"],23) + fonts["veramono22"] = pygame.font.Font(fonts_path["veramono"],22) + fonts["veramono21"] = pygame.font.Font(fonts_path["veramono"],21) + fonts["veramono20"] = pygame.font.Font(fonts_path["veramono"],20) + fonts["veramono18"] = pygame.font.Font(fonts_path["veramono"],18) + fonts["veramono16"] = pygame.font.Font(fonts_path["veramono"],16) + fonts["veramono15"] = pygame.font.Font(fonts_path["veramono"],15) + fonts["veramono14"] = pygame.font.Font(fonts_path["veramono"],14) + fonts["veramono13"] = pygame.font.Font(fonts_path["veramono"],13) + fonts["veramono12"] = pygame.font.Font(fonts_path["veramono"],12) + fonts["veramono11"] = pygame.font.Font(fonts_path["veramono"],11) + fonts["veramono10"] = pygame.font.Font(fonts_path["veramono"],10) + + for i in range(10,28): + fonts["notosansmono"+str(i)] = pygame.font.Font(fonts_path["noto"],i) + + for i in range(10,28): + fonts["notosanscjk"+str(i)] = pygame.font.Font(fonts_path["notocjk"],i) -fonts["arial"] = pygame.font.SysFont("arial",16) + fonts["arial"] = pygame.font.SysFont("arial",16) diff --git a/sys.py/UI/foot_bar.py b/sys.py/UI/foot_bar.py index e150ba1..2b1c956 100644 --- a/sys.py/UI/foot_bar.py +++ b/sys.py/UI/foot_bar.py @@ -12,6 +12,7 @@ from fonts import fonts from multi_icon_item import MultiIconItem from icon_pool import MyIconPool from libs.roundrects import aa_round_rect +from lang_manager import MyLangManager icon_base_path = SkinMap("gameshell/footbar_icons/") @@ -51,7 +52,7 @@ class FootBar: _Icons = {} _IconWidth = 18 _IconHeight = 18 - _LabelFont = fonts["veramono10"] + _LabelFont = MyLangManager.TrFont("veramono10") _State = "normal" _SkinManager = None diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py index ab44658..4451fd9 100644 --- a/sys.py/UI/lang_manager.py +++ b/sys.py/UI/lang_manager.py @@ -3,6 +3,8 @@ import pygame import config import ConfigParser +from util_funcs import FileExists +from fonts import fonts class CaseConfigParser(ConfigParser.SafeConfigParser): def optionxform(self, optionstr): @@ -15,56 +17,77 @@ class LangManager(object): _Langs = {} _EngLangs = {} ##default Language dict,must be correct _Config = None - _ConfigFileName = "English.ini" + _ConfigFileName = "00_English.ini" def __init__(self): self.Init() def Init(self): - if not LangManager._Colors: + if not self._Langs: self.SetLangs() def SetLangs(self): - Langs = {} - - SkinManager._Colors = Colors - self._Config = CaseConfigParser() - + print("SetLangs") fname = ".lang" + try: + with open(fname, "r") as f: + self._ConfigFileName = f.read() + self._ConfigFileName = self._ConfigFileName.strip("\r\n ") + print(self._ConfigFileName) + except: + print("read lang failed") + None + if self._ConfigFileName == "" or FileExists("langs/"+self._ConfigFileName) == False: + print("miss file") + self._ConfigFileName = "00_English.ini" + else: + print("has file",self._ConfigFileName) + + try: - self._Config.read(fname) + self._Config.read("langs/"+self._ConfigFileName) except Exception, e: - print("read skin config.cfg error %s" % str(e)) + print("read lang ini error %s" % str(e)) return else: - if "Colors" in self._Config.sections(): - colour_opts = self._Config.options("Colors") -# print(colour_opts) - for i in SkinManager._Colors: - if i in colour_opts: - try: - SkinManager._Colors[i] = self.ConvertToRGB( - self._Config.get("Colors", i)) - except Exception, e: - print("error in ConvertToRGB %s" % str(e)) - continue + if "Langs" in self._Config.sections(): + lang_opts = self._Config.options("Langs") + for i in lang_opts: + try: + self._Langs[i] = self._Config.get("Langs", i) + except Exception, e: + print("error %s" % str(e)) + continue def Tr(self,english_key_str): - if english_key_str in SkinManager._Langs: - return SkinManager._Langs[english_key_str] + print("english_key_str", english_key_str) + if english_key_str in self._Langs: + return self._Langs[english_key_str].decode("utf8") else: - return SkinManager._EngLangs[english_key_str] ##default from english dict + return english_key_str + def TrFont(self,orig_font_str): + font_size_number = int(filter(str.isdigit, orig_font_str)) + if font_size_number > 120: + raise Exception('font string format error') + + if "English.ini" in self._ConfigFileName: + return fonts[orig_font_str] + else: + if font_size_number > 28: + raise Exception('cjk font string format error '+ str(font_size_number)) + + return fonts["notosanscjk"+str(font_size_number)] ##global MyLangManager Handler MyLangManager = None def InitMyLangManager(): - global MySkinManager + global MyLangManager if MyLangManager == None: MyLangManager = LangManager() diff --git a/sys.py/UI/main_screen.py b/sys.py/UI/main_screen.py index c09dbf5..38af73b 100644 --- a/sys.py/UI/main_screen.py +++ b/sys.py/UI/main_screen.py @@ -21,13 +21,14 @@ from title_bar import TitleBar from foot_bar import FootBar from constants import Width,Height,bg_color from util_funcs import midRect,FileExists,ReplaceSuffix,ReadTheFileContent,CmdClean,MakeExecutable,SkinMap -from fonts import fonts from keys_def import CurKeys from label import Label from untitled_icon import UntitledIcon from Emulator import MyEmulator from skin_manager import MySkinManager +from lang_manager import MyLangManager + from counter_screen import CounterScreen class MessageBox(Label): @@ -135,8 +136,8 @@ class MainScreen(object): _TitleBar = None _FootBar = None _MsgBox = None - _MsgBoxFont = fonts["veramono20"] - _IconFont = fonts["varela15"] + _MsgBoxFont = MyLangManager.TrFont("veramono20") + _IconFont = MyLangManager.TrFont("varela15") _SkinManager = None _Closed = False @@ -431,7 +432,7 @@ class MainScreen(object): iconitem = IconItem() iconitem._FileName = i iconitem._CmdPath = "" - iconitem.AddLabel(i2,self._IconFont) + iconitem.AddLabel(MyLangManager.Tr(i2),self._IconFont) if FileExists( _dir+"/"+i+"/"+i2+".png"): ### 20_Prog/Prog.png , cut 20_ iconitem._ImageName = _dir+"/"+i+"/"+i2+".png" elif FileExists( SkinMap(_dir+"/"+i2+".png") ): @@ -539,7 +540,7 @@ class MainScreen(object): iconitem._ImageName = "" - iconitem.AddLabel(i2.split(".")[0],self._IconFont) + iconitem.AddLabel(MyLangManager.Tr(i2.split(".")[0]),self._IconFont) iconitem._LinkPage = None cur_page._Icons.append(iconitem) @@ -587,7 +588,7 @@ class MainScreen(object): def DrawRun(self): - self._MsgBox.SetText("Launching....") + self._MsgBox.SetText(MyLangManager.Tr("Launching")) self._MsgBox.Draw() def Draw(self): diff --git a/sys.py/UI/page.py b/sys.py/UI/page.py index 9a14168..b78e6a7 100644 --- a/sys.py/UI/page.py +++ b/sys.py/UI/page.py @@ -17,6 +17,7 @@ from constants import ALIGN,icon_width,icon_height,Width,Height,ICON_TYPES from util_funcs import midRect from keys_def import CurKeys from icon_pool import MyIconPool +from lang_manager import MyLangManager class PageStack: def __init__(self): @@ -99,7 +100,7 @@ class Page(object): _Name = "" _Screen = None ## Should be the Screen Class _PageIconMargin = 20 - _FootMsg = ["Nav.","","","","Enter"] ## Default Page Foot info + _FootMsg = [MyLangManager.Tr("Nav"),"","","",MyLangManager.Tr("Enter")] ## Default Page Foot info _SelectedIconTopOffset=20 _EasingDur = 30 diff --git a/sys.py/UI/title_bar.py b/sys.py/UI/title_bar.py index e79d681..5e31c97 100644 --- a/sys.py/UI/title_bar.py +++ b/sys.py/UI/title_bar.py @@ -17,7 +17,7 @@ from fonts import fonts from icon_item import IconItem from multi_icon_item import MultiIconItem from icon_pool import MyIconPool - +from lang_manager import MyLangManager from util_funcs import midRect,SwapAndShow,SkinMap from config import Battery @@ -302,12 +302,12 @@ class TitleBar: cur_time = datetime.now().strftime("%H:%M") time_text_size = fonts["varela12"].size(cur_time) - title_text_size = fonts["varela16"].size(title) + title_text_size = MyLangManager.TrFont("varela16").size(title) - self._CanvasHWND.blit(fonts["varela16"].render(title,True,self._SkinManager.GiveColor("Text")),midRect(title_text_size[0]/2+self._LOffset, + self._CanvasHWND.blit(MyLangManager.TrFont("varela16").render(title,True,self._SkinManager.GiveColor("Text")),midRect(title_text_size[0]/2+self._LOffset, title_text_size[1]/2+(self._BarHeight-title_text_size[1])/2, title_text_size[0],title_text_size[1],Width,Height)) - self._CanvasHWND.blit(fonts["varela12"].render(cur_time,True,self._SkinManager.GiveColor("Text")),midRect(Width-time_text_size[0]/2-self._ROffset, + self._CanvasHWND.blit( fonts["varela12"].render(cur_time,True,self._SkinManager.GiveColor("Text")),midRect(Width-time_text_size[0]/2-self._ROffset, time_text_size[1]/2+(self._BarHeight-time_text_size[1])/2, time_text_size[0],time_text_size[1],Width,Height)) diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini new file mode 100644 index 0000000..b80576c --- /dev/null +++ b/sys.py/langs/00_English.ini @@ -0,0 +1,50 @@ +[Langs] +Settings=Settings +Retro Games=Retro Games +Music Player=Music Player +TinyCloud=TinyCloud +PowerOFF=PowerOFF +Reload UI=Reload UI +freeDM=freeDM +CaveStory=CaveStory +RetroArch=RetroArch +Launching=Launching.... +Nav=Nav +Scan=Scan +Back=Back +Enter=Enter +Remove=Remove +Run=Run +AddToPlayList=Add to Playlist +DownloadConfirm=Download Confirm +MyFavGames=my favourites games +Deleting=Deleting... +AddFav=Add Fav +ADdFavList=Add to favourite list +Del=Del +UploadViaWifi=Please upload data over Wi-Fi +ConfirmDeleteQ=Confirm Delete ? +AlreadyExisted=Already existed +Cancel=Cancel +Yes=Yes +ConfirmQ=Confirm? +Disconnecting=Disconnecting... +ConfirmUpdateToFQ=Confirm Update to %s ? +UpdateToFQ=Update to %s ? +SetupGameEngineAutoQ=Do you want to setup this game engine automatically? +Downloading=Downloading... +BATOver5Pct=Battery must over 5% +DeleteConfirm=Delete Confirm +FavouriteGames=Favourite Games +ConfirmForgetQ=Confirm Forget? +ConfirmForget=Confirm Forget +Disconnect=Disconnect +Forget=Forget +Forgeting=Forgeting... +Info=Info +TryConnect=TryConnect +BluetoothInfo=Bluetooth info +Connecting=Connecting +BluetoothScanning=Bluetooth scanning... +Scanning=Scanning.. +ShutDownConnecting=ShutDownConnecting... diff --git a/sys.py/langs/01_日本語.ini b/sys.py/langs/01_日本語.ini new file mode 100644 index 0000000..e69de29 diff --git a/sys.py/langs/02_한국어.ini b/sys.py/langs/02_한국어.ini new file mode 100644 index 0000000..e69de29 diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini new file mode 100644 index 0000000..97ef7fc --- /dev/null +++ b/sys.py/langs/03_简体中文.ini @@ -0,0 +1,48 @@ +[Langs] +Settings=设置 +Retro Games=复古游戏 +Music Player=音乐播放器 +TinyCloud=彩云 +PowerOFF=关机 +Reload UI=重载菜单 +freeDM=freeDM +CaveStory=洞窟物语 +Launching=正在启动... +Nav=导航 +Scan=扫描 +Back=返回 +Enter=进入 +Remove=删除 +Run=运行 +AddToPlayList=添加到播放列表 +DownloadConfirm=下载确认 +MyFavGames=加星游戏列表 +Deleting=删除中... +AddFav=加星 +Del=删 +UploadViaWifi=请通过无线Wifi上传数据 +ConfirmDeleteQ=确认删除? +AlreadyExisted=已存在 +Cancel=取消 +Yes=是 +ConfirmQ=确认? +Disconnecting=断开连接... +ConfirmUpdateToFQ=确认升级至 %s ? +UpdateToFQ=更新至 %s ? +SetupGameEngineAutoQ=你希望自动安装游戏引擎部件吗? +Downloading=下载中... +BATOver5Pct=电量必须多余5% +DeleteConfirm=删除确认 +FavouriteGames=偏好游戏 +ConfirmForgetQ=确认忽略? +ConfirmForget=确认忽略 +Disconnect=断开 +Forget=忽略 +Forgeting=忽略中... +Info=属性 +TryConnect=试连接 +BluetoothInfo=蓝牙属性 +Connecting=连接中 +BluetoothScanning=蓝牙搜索中... +Scanning=搜索中.. +ShutDownConnecting=断开连接... diff --git a/sys.py/langs/04_繁体中文.ini b/sys.py/langs/04_繁体中文.ini new file mode 100644 index 0000000..e69de29 diff --git a/sys.py/run.py b/sys.py/run.py index d2f3b60..ebfcc16 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -570,9 +570,9 @@ if __name__ == '__main__': if powerlevel != "": config.PowerLevel = powerlevel if powerlevel != "supersaving": - os.system("sudo iw wlan0 set power_save off") + os.system("sudo iw wlan0 set power_save off >/dev/null") else: - os.system("sudo iw wlan0 set power_save on") + os.system("sudo iw wlan0 set power_save on > /dev/null") crt_screen = CreateByScreen() crt_screen.Init() From 152b2a8ac74efefc98b90c06cb66f559dc5133b1 Mon Sep 17 00:00:00 2001 From: cuu Date: Sat, 1 Dec 2018 14:11:27 +0800 Subject: [PATCH 05/18] add languages into settings menu --- .../10_Settings/Languages/__init__.py | 310 ++++++++++++++++++ Menu/GameShell/10_Settings/list_page.py | 40 +-- sys.py/UI/constants.py | 2 +- sys.py/UI/icon_item.py | 3 +- sys.py/UI/lang_manager.py | 7 +- sys.py/langs/00_English.ini | 3 + sys.py/langs/03_简体中文.ini | 3 + sys.py/run.py | 4 +- 8 files changed, 334 insertions(+), 38 deletions(-) create mode 100644 Menu/GameShell/10_Settings/Languages/__init__.py diff --git a/Menu/GameShell/10_Settings/Languages/__init__.py b/Menu/GameShell/10_Settings/Languages/__init__.py new file mode 100644 index 0000000..68b0436 --- /dev/null +++ b/Menu/GameShell/10_Settings/Languages/__init__.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +import os +import pygame +#import math +#mport subprocess +import glob +#from beeprint import pp +from libs.roundrects import aa_round_rect + +## local UI import +from UI.constants import Width,Height,ICON_TYPES,POWEROPT +from UI.page import Page,PageSelector +from UI.label import Label +from UI.fonts import fonts +from UI.util_funcs import midRect +from UI.keys_def import CurKeys +from UI.scroller import ListScroller +from UI.icon_pool import MyIconPool +from UI.icon_item import IconItem +from UI.multilabel import MultiLabel +from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager +from UI.info_page_list_item import InfoPageListItem +from UI.info_page_selector import InfoPageSelector + +import config + +class ListPageSelector(InfoPageSelector): + def Draw(self): + idx = self._Parent._PsIndex + + if idx < len(self._Parent._MyList): + x = self._Parent._MyList[idx]._PosX+2 ## ++ + y = self._Parent._MyList[idx]._PosY+1 + h = self._Parent._MyList[idx]._Height -3 + + self._PosX = x + self._PosY = y + self._Height = h + + aa_round_rect(self._Parent._CanvasHWND, + (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor) + + +class PageListItem(InfoPageListItem): + _PosX = 0 + _PosY = 0 + _Width = 0 + _Height = 30 + + _Labels = {} + _Icons = {} + _Fonts = {} + + _LinkObj = None + + _Active = False + _Value = "" + + def Draw(self): + + self._Labels["Text"]._PosY = self._PosY+ (self._Height- self._Labels["Text"]._Height)/2 + + if self._Active == True: + self._Parent._Icons["done"].NewCoord( self._Parent._Width-30,self._PosY+5) + self._Parent._Icons["done"].Draw() + + self._Labels["Text"].Draw(self._Active) + + if "Small" in self._Labels: + self._Labels["Small"]._PosX = self._Width - self._Labels["Small"]._Width -10 + self._Labels["Small"]._PosY = self._PosY + (self._Height- self._Labels["Small"]._Height)/2 + self._Labels["Small"].Draw() + + pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) + +class LanguagesPage(Page): + _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Select")] + _MyList = [] + _ListFont = fonts["notosanscjk15"] + + _AList = {} + + _Scrolled = 0 + + _BGwidth = 320 + _BGheight = 240-24-20 + + _DrawOnce = False + _Scroller = None + _InfoPage = None + + def __init__(self): + Page.__init__(self) + self._Icons = {} + + def GenList(self): + + self._MyList = [] + + start_x = 0 + start_y = 0 + last_height = 0 + + files_path = [os.path.basename(x) for x in sorted(glob.glob('langs/*.ini'))] + + for i,u in enumerate( files_path ): + print(i,u) + li = PageListItem() + li._Parent = self + li._PosX = start_x + li._PosY = start_y + last_height + li._Width = Width + li._Fonts["normal"] = self._ListFont + li._Active = False + li._Value = u.decode("utf8") + lang_name = u.split("_")[1] + lang_name = lang_name.split(".")[0] + + li.Init( lang_name.decode("utf8") ) + + last_height += li._Height + + self._MyList.append(li) + + def Init(self): + if self._Screen != None: + if self._Screen._CanvasHWND != None and self._CanvasHWND == None: + self._HWND = self._Screen._CanvasHWND + self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) ) + + self._PosX = self._Index*self._Screen._Width + self._Width = self._Screen._Width ## equal to screen width + self._Height = self._Screen._Height + + done = IconItem() + done._ImgSurf = MyIconPool._Icons["done"] + done._MyType = ICON_TYPES["STAT"] + done._Parent = self + self._Icons["done"] = done + + ps = ListPageSelector() + ps._Parent = self + self._Ps = ps + self._PsIndex = 0 + + self.GenList() + + self._Scroller = ListScroller() + self._Scroller._Parent = self + self._Scroller._PosX = self._Width - 10 + self._Scroller._PosY = 2 + self._Scroller.Init() + self._Scroller.SetCanvasHWND(self._HWND) + + + def ScrollDown(self): + if len(self._MyList) == 0: + return + self._PsIndex +=1 + if self._PsIndex >= len(self._MyList): + self._PsIndex = len(self._MyList) -1 + + cur_li = self._MyList[self._PsIndex] + if cur_li._PosY +cur_li._Height > self._Height: + for i in range(0,len(self._MyList)): + self._MyList[i]._PosY -= self._MyList[i]._Height + + def ScrollUp(self): + if len(self._MyList) == 0: + return + self._PsIndex -= 1 + if self._PsIndex < 0: + self._PsIndex = 0 + cur_li = self._MyList[self._PsIndex] + if cur_li._PosY < 0: + for i in range(0, len(self._MyList)): + self._MyList[i]._PosY += self._MyList[i]._Height + + + def Click(self): + if len(self._MyList) == 0: + return + + cur_li = self._MyList[self._PsIndex] + if cur_li._Active == True: + return + + for i in self._MyList: + i._Active = False + + cur_li._Active = True + print(cur_li._Value) + with open(".lang","w") as f: + f.write(cur_li._Value) + + self._Screen._MsgBox.SetText(MyLangManager.Tr("Applying")) + self._Screen._MsgBox.Draw() + self._Screen.SwapAndShow() + + MyLangManager.UpdateLang() + + ##pygame.event.post( pygame.event.Event(RUNEVT, message="exit 0")) ##Restart Launcher + + pygame.time.delay(1000) + + self._Screen.Draw() + self._Screen.SwapAndShow() + + def OnLoadCb(self): + self._Scrolled = 0 + self._PosY = 0 + self._DrawOnce = False + with open(".lang", "r") as f: + thelang = f.read() + + thelang = thelang.strip() + + if thelang == "": + thelang = "English" + + for i in self._MyList: + if thelang in i._Value: + i._Active = True + + def OnReturnBackCb(self): + pass + """ + self.ReturnToUpLevelPage() + self._Screen.Draw() + self._Screen.SwapAndShow() + """ + def KeyDown(self,event): + if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]: + self.ReturnToUpLevelPage() + self._Screen.Draw() + self._Screen.SwapAndShow() + + if event.key == CurKeys["B"]: + self.Click() + + if event.key == CurKeys["Up"]: + self.ScrollUp() + self._Screen.Draw() + self._Screen.SwapAndShow() + if event.key == CurKeys["Down"]: + self.ScrollDown() + self._Screen.Draw() + self._Screen.SwapAndShow() + + + def Draw(self): + + self.ClearCanvas() + if len(self._MyList) == 0: + return + + else: + if len(self._MyList) * PageListItem._Height > self._Height: + self._Ps._Width = self._Width - 11 + self._Ps.Draw() + for i in self._MyList: + if i._PosY > self._Height + self._Height/2: + break + if i._PosY < 0: + continue + i.Draw() + self._Scroller.UpdateSize( len(self._MyList)*PageListItem._Height, self._PsIndex*PageListItem._Height) + self._Scroller.Draw() + + else: + self._Ps._Width = self._Width + self._Ps.Draw() + for i in self._MyList: + if i._PosY > self._Height + self._Height/2: + break + if i._PosY < 0: + continue + i.Draw() + + if self._HWND != None: + self._HWND.fill((255,255,255)) + + self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) ) + + +class APIOBJ(object): + + _Page = None + def __init__(self): + pass + def Init(self,main_screen): + self._Page = LanguagesPage() + self._Page._Screen = main_screen + self._Page._Name ="Languages" + self._Page.Init() + + def API(self,main_screen): + if main_screen !=None: + main_screen.PushPage(self._Page) + main_screen.Draw() + main_screen.SwapAndShow() + +OBJ = APIOBJ() +def Init(main_screen): + OBJ.Init(main_screen) +def API(main_screen): + OBJ.API(main_screen) + + diff --git a/Menu/GameShell/10_Settings/list_page.py b/Menu/GameShell/10_Settings/list_page.py index d48e78e..31d6023 100644 --- a/Menu/GameShell/10_Settings/list_page.py +++ b/Menu/GameShell/10_Settings/list_page.py @@ -14,47 +14,21 @@ from UI.util_funcs import midRect,FileExists from UI.keys_def import CurKeys from UI.scroller import ListScroller from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager +from UI.info_page_selector import InfoPageSelector from list_item import ListItem import myvars -class ListPageSelector(PageSelector): - _BackgroundColor = MySkinManager.GiveColor('Front') - - def __init__(self): - self._PosX = 0 - self._PosY = 0 - self._Height = 0 - self._Width = Width - - def AnimateDraw(self,x2,y2): - pass - - def Draw(self): - idx = self._Parent._PsIndex - if idx < len(self._Parent._MyList): - x = 2 - y = self._Parent._MyList[idx]._PosY+1 - h = self._Parent._MyList[idx]._Height -3 - - self._PosX = x - self._PosY = y - self._Height = h - - aa_round_rect(self._Parent._CanvasHWND, - (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor) - - - class ListPage(Page): _Icons = {} _Selector=None - _FootMsg = ["Nav","","","Back","Enter"] + _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Enter")] _MyList = [] - _ListFontObj = fonts["varela15"] + _ListFontObj = MyLangManager.TrFont("varela15") _Scroller = None @@ -71,11 +45,12 @@ class ListPage(Page): self._CanvasHWND = self._Screen._CanvasHWND - ps = ListPageSelector() + ps = InfoPageSelector() ps._Parent = self + ps._PosX = 2 self._Ps = ps self._PsIndex = 0 - + # "" pkgname, label alist = [["","Airplane","Airplane Mode"], ["","PowerOptions","Power Options"], @@ -85,6 +60,7 @@ class ListPage(Page): ["","Brightness","BackLight Brightness"], ["","Storage",""], ["","Time","Timezone"], + ["","Languages","Languages"], ["","Notification","Notification"], ["","Update", ""], ["","About", "About"], diff --git a/sys.py/UI/constants.py b/sys.py/UI/constants.py index 1f37a41..c6b8574 100644 --- a/sys.py/UI/constants.py +++ b/sys.py/UI/constants.py @@ -42,5 +42,5 @@ RUNSYS = pygame.USEREVENT+3 LOWLIGHT = pygame.USEREVENT+4 ## when dim screen backlight FOOTMSG = pygame.USEREVENT+5 ## POWEROPT = pygame.USEREVENT+6 - +RESTARTUI = pygame.USEREVENT+7 ##restart launcher diff --git a/sys.py/UI/icon_item.py b/sys.py/UI/icon_item.py index 44b3ff2..39e9110 100644 --- a/sys.py/UI/icon_item.py +++ b/sys.py/UI/icon_item.py @@ -6,6 +6,7 @@ import pygame from constants import icon_width,icon_height,ICON_TYPES,ALIGN,icon_ext,Width,Height from util_funcs import color_surface,midRect from label import Label +from lang_manager import MyLangManager class IconItem: _PosX=0 @@ -65,7 +66,7 @@ class IconItem: self._LinkPage._Screen = self._Parent._Screen self._LinkPage._CanvasHWND = self._Parent._Screen._CanvasHWND - self._LinkPage._FootMsg = ["Nav.","","","Back","Enter"] ## Default Page Foot info + self._LinkPage._FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Enter")] ## Default Page Foot info if self._LinkPage._Align == ALIGN["HLeft"]: self._LinkPage.AdjustHLeftAlign() diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py index 4451fd9..7904b1d 100644 --- a/sys.py/UI/lang_manager.py +++ b/sys.py/UI/lang_manager.py @@ -15,7 +15,6 @@ class LangManager(object): """ _Langs = {} - _EngLangs = {} ##default Language dict,must be correct _Config = None _ConfigFileName = "00_English.ini" @@ -25,7 +24,11 @@ class LangManager(object): def Init(self): if not self._Langs: self.SetLangs() - + + def UpdateLang(self): + self._Langs = {} + self.SetLangs() + def SetLangs(self): self._Config = CaseConfigParser() print("SetLangs") diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index b80576c..7854951 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -48,3 +48,6 @@ Connecting=Connecting BluetoothScanning=Bluetooth scanning... Scanning=Scanning.. ShutDownConnecting=ShutDownConnecting... +Select=Select +Detail=Detail +Applying=Applying... diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini index 97ef7fc..c1894e4 100644 --- a/sys.py/langs/03_简体中文.ini +++ b/sys.py/langs/03_简体中文.ini @@ -46,3 +46,6 @@ Connecting=连接中 BluetoothScanning=蓝牙搜索中... Scanning=搜索中.. ShutDownConnecting=断开连接... +Select=选择 +Detail=详细 +Applying=设置中... diff --git a/sys.py/run.py b/sys.py/run.py index ebfcc16..dfce104 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -31,7 +31,7 @@ else: #local UI import -from UI.constants import Width,Height,bg_color,icon_width,icon_height,DT,GMEVT,RUNEVT,RUNSYS,ICON_TYPES,POWEROPT +from UI.constants import Width,Height,bg_color,icon_width,icon_height,DT,GMEVT,RUNEVT,RUNSYS,ICON_TYPES,POWEROPT,RESTARTUI from UI.util_funcs import ReplaceSuffix,FileExists, ReadTheFileContent,midRect,color_surface,SwapAndShow,GetExePath,X_center_mouse from UI.page import PageStack,PageSelector,Page from UI.label import Label @@ -539,7 +539,7 @@ if __name__ == '__main__': screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32) pygame.event.set_allowed(None) - pygame.event.set_allowed([pygame.KEYDOWN,pygame.KEYUP,GMEVT,RUNEVT,RUNSYS,POWEROPT]) + pygame.event.set_allowed([pygame.KEYDOWN,pygame.KEYUP,GMEVT,RUNEVT,RUNSYS,POWEROPT,RESTARTUI]) pygame.key.set_repeat(DT+DT*6+DT/2, DT+DT*3+DT/2) From 0d7a527e9743a47b2d56bd01b7f1045ba66a1a64 Mon Sep 17 00:00:00 2001 From: cuu Date: Sat, 1 Dec 2018 20:04:36 +0800 Subject: [PATCH 06/18] more translate --- .../10_Settings/Airplane/__init__.py | 13 ++-- .../10_Settings/PowerOptions/__init__.py | 31 +++++---- Menu/GameShell/10_Settings/Update/__init__.py | 69 +++---------------- sys.py/UI/download_process_page.py | 5 +- sys.py/UI/foot_bar.py | 2 +- sys.py/UI/label.py | 1 + sys.py/langs/00_English.ini | 19 +++++ 7 files changed, 58 insertions(+), 82 deletions(-) diff --git a/Menu/GameShell/10_Settings/Airplane/__init__.py b/Menu/GameShell/10_Settings/Airplane/__init__.py index 263a8b5..0725613 100644 --- a/Menu/GameShell/10_Settings/Airplane/__init__.py +++ b/Menu/GameShell/10_Settings/Airplane/__init__.py @@ -19,6 +19,7 @@ from UI.scroller import ListScroller from UI.icon_pool import MyIconPool from UI.icon_item import IconItem from UI.multi_icon_item import MultiIconItem +from UI.lang_manager import MyLangManager from UI.multilabel import MultiLabel @@ -77,9 +78,9 @@ class InfoPageListItem(object): class AirplanePage(Page): - _FootMsg = ["Nav.","Rescue","","Back","Toggle"] + _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Rescue"),"",MyLangManager.Tr("Back"),MyLangManager.Tr("Toggle")] _MyList = [] - _ListFontObj = fonts["varela13"] + _ListFontObj = MyLangManager.TrFont("varela13") _AList = {} @@ -206,19 +207,19 @@ class AirplanePage(Page): out = commands.getstatusoutput('sudo rfkill list | grep yes | cut -d " " -f3') print out if "yes" in out[1]: - self._Screen._MsgBox.SetText("Turning On") + self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOn")) self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill unblock all") self._Screen._TitleBar._InAirPlaneMode = False else: - self._Screen._MsgBox.SetText("Turning Off") + self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOff")) self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill block all") self._Screen._TitleBar._InAirPlaneMode = True def UnBlockAll(self): - self._Screen._MsgBox.SetText("Turning On") + self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOn")) self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill unblock all") self._Screen._TitleBar._InAirPlaneMode = False @@ -313,7 +314,7 @@ class APIOBJ(object): def Init(self,main_screen): self._Page = AirplanePage() self._Page._Screen = main_screen - self._Page._Name ="Airplane Mode" + self._Page._Name =MyLangManager.Tr("AirplaneMode") self._Page.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/PowerOptions/__init__.py b/Menu/GameShell/10_Settings/PowerOptions/__init__.py index 016599f..abbc65a 100644 --- a/Menu/GameShell/10_Settings/PowerOptions/__init__.py +++ b/Menu/GameShell/10_Settings/PowerOptions/__init__.py @@ -20,6 +20,7 @@ from UI.icon_pool import MyIconPool from UI.icon_item import IconItem from UI.multilabel import MultiLabel from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager import config @@ -107,9 +108,9 @@ class PageListItem(object): class InfoPage(Page): - _FootMsg = ["Nav.","","","Back",""] + _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),""] _MyList = [] - _ListFontObj = fonts["varela15"] + _ListFontObj = MyLangManager.TrFont("varela15") _AList = {} _Time1 = 40 @@ -123,22 +124,22 @@ class InfoPage(Page): m = int(secs/60) s = secs % 60 if m > 1: - min_str = "%d minutes " % m + min_str = "%d "+MyLangManager.Tr("minutes")+" " % m else: - min_str = "%d minute " % m + min_str = "%d "+MyLangManager.Tr("minute")+" " % m if s == 1: - sec_str = "%d second" % s + sec_str = "%d "+MyLangManager.Tr("second") % s elif s > 1: - sec_str = "%d seconds" % s + sec_str = "%d "+MyLangManager.Tr("seconds") % s elif secs > 0: if secs > 1: - sec_str = "%d seconds" % secs + sec_str = "%d "+MyLangManager.Tr("seconds") % secs else: - sec_str = "%d second" % secs + sec_str = "%d "+MyLangManager.Tr("second") % secs elif secs == 0: - sec_str = "Never" + sec_str = MyLangManager.Tr("Never") return min_str + sec_str @@ -156,7 +157,7 @@ class InfoPage(Page): time1 = {} time1["key"] = "time1" if self._Time1 == 0: - time1["value"] = "Never" + time1["value"] = MyLangManager.Tr("Never") else: time1["value"] = "%d secs" % self._Time1 time1["label"] = "Screen dimming" @@ -164,7 +165,7 @@ class InfoPage(Page): time2 = {} time2["key"] = "time2" if self._Time2 == 0: - time2["value"] = "Never" + time2["value"] = MyLangManager.Tr("Never") else: time2["value"] = "%d secs" % self._Time2 @@ -174,7 +175,7 @@ class InfoPage(Page): time3["key"] = "time3" if self._Time3 == 0: - time3["value"] = "Never" + time3["value"] = MyLangManager.Tr("Never") else: time3["value"] = "%d secs" % self._Time3 time3["label"] = "Power OFF" @@ -289,7 +290,7 @@ class InfoPage(Page): i.Draw() class PowerOptionsPage(Page): - _FootMsg = ["Nav.","","Detail","Back","Select"] + _FootMsg = [MyLangManager.Tr("Nav"),"",MyLangManager.Tr("Detail"),MyLangManager.Tr("Back"),MyLangManager.Tr("Select")] _MyList = [] _ListFont = fonts["notosanscjk15"] @@ -449,7 +450,7 @@ class PowerOptionsPage(Page): else: os.system("sudo iw wlan0 set power_save on > /dev/null") - self._Screen._MsgBox.SetText("Applying...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Applying")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -561,7 +562,7 @@ class APIOBJ(object): def Init(self,main_screen): self._Page = PowerOptionsPage() self._Page._Screen = main_screen - self._Page._Name ="Power Options" + self._Page._Name =MyLangManager.Tr("PowerOptions") self._Page.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/Update/__init__.py b/Menu/GameShell/10_Settings/Update/__init__.py index 1c0d5d9..003e981 100644 --- a/Menu/GameShell/10_Settings/Update/__init__.py +++ b/Menu/GameShell/10_Settings/Update/__init__.py @@ -20,6 +20,9 @@ from UI.confirm_page import ConfirmPage from UI.download import Download from UI.download_process_page import DownloadProcessPage from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager + +from UI.info_page_list_item import InfoPageListItem from libs.roundrects import aa_round_rect from libs.DBUS import is_wifi_connected_now @@ -60,7 +63,7 @@ class UpdateDownloadPage(DownloadProcessPage): print(filename) os.system("rm -rf %s" % CmdClean(filename)) - self._Screen._MsgBox.SetText("Download failed") + self._Screen._MsgBox.SetText(MyLangManager.Tr("DownloadFailed")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return False @@ -78,7 +81,7 @@ class UpdateDownloadPage(DownloadProcessPage): self._URL = url self._DST_DIR = dst_dir else: - self._Screen._MsgBox.SetText("Invaid") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Invaid")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return @@ -120,7 +123,7 @@ class UpdateConfirmPage(ConfirmPage): if self._DownloadPage == None: self._DownloadPage = UpdateDownloadPage() self._DownloadPage._Screen = self._Screen - self._DownloadPage._Name = "Downloading..." + self._DownloadPage._Name = MyLangManager.Tr("Downloading") self._DownloadPage.Init() self._DownloadPage._MD5 = self._MD5 @@ -148,56 +151,6 @@ class UpdateConfirmPage(ConfirmPage): self.Reset() -class InfoPageListItem(object): - _PosX = 0 - _PosY = 0 - _Width = 0 - _Height = 30 - - _Labels = {} - _Icons = {} - _Fonts = {} - - _LinkObj = None - - def __init__(self): - self._Labels = {} - self._Icons = {} - self._Fonts = {} - - def SetSmallText(self,text): - - l = Label() - l._PosX = 40 - l.SetCanvasHWND(self._Parent._CanvasHWND) - l.Init(text,self._Fonts["small"]) - self._Labels["Small"] = l - - def Init(self,text): - - #self._Fonts["normal"] = fonts["veramono12"] - - l = Label() - l._PosX = 10 - l.SetCanvasHWND(self._Parent._CanvasHWND) - - l.Init(text,self._Fonts["normal"]) - self._Labels["Text"] = l - - def Draw(self): - - self._Labels["Text"]._PosY = self._PosY + (self._Height - self._Labels["Text"]._Height)/2 - self._Labels["Text"].Draw() - - if "Small" in self._Labels: - self._Labels["Small"]._PosX = self._Width - self._Labels["Small"]._Width-5 - - self._Labels["Small"]._PosY = self._PosY + (self._Height - self._Labels["Small"]._Height)/2 - self._Labels["Small"].Draw() - - pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) - - class UpdatePage(Page): _Icons = {} _FootMsg = ["Nav.","Check Update","","Back",""] @@ -256,7 +209,7 @@ class UpdatePage(Page): self.GenList() def CheckUpdate(self): - self._Screen._MsgBox.SetText("Checking update...") + self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckingUpdate")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -303,7 +256,7 @@ class UpdatePage(Page): self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText("Launcher is up to date") + self._Screen._MsgBox.SetText(MyLangManager.Tr("LauncherIsUpToDate")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(765) @@ -334,12 +287,12 @@ class UpdatePage(Page): self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText("Checking update failed") + self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckingUpdateFailed")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText("Please Check your Wi-Fi connection") + self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckWifiConnection")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -360,7 +313,7 @@ class APIOBJ(object): self._UpdatePage = UpdatePage() self._UpdatePage._Screen = main_screen - self._UpdatePage._Name ="Update" + self._UpdatePage._Name =MyLangManager.Tr("Update") self._UpdatePage.Init() def API(self,main_screen): diff --git a/sys.py/UI/download_process_page.py b/sys.py/UI/download_process_page.py index 04a42c4..dfc397e 100644 --- a/sys.py/UI/download_process_page.py +++ b/sys.py/UI/download_process_page.py @@ -20,6 +20,7 @@ from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.download import Download from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from libs.DBUS import is_wifi_connected_now @@ -130,7 +131,7 @@ class DownloadProcessPage(Page): except: pass - self._Screen._MsgBox.SetText("Download failed") + self._Screen._MsgBox.SetText(MyLangManager.Tr("DownloadFailed")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return False @@ -163,7 +164,7 @@ class DownloadProcessPage(Page): self._URL = url self._DST_DIR = dst_dir else: - self._Screen._MsgBox.SetText("Invaid") + self._Screen._MsgBox.SetText(MyLangManager.Tr("Invaid")) self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() print("url or dst dir error") diff --git a/sys.py/UI/foot_bar.py b/sys.py/UI/foot_bar.py index 2b1c956..6e717c0 100644 --- a/sys.py/UI/foot_bar.py +++ b/sys.py/UI/foot_bar.py @@ -101,7 +101,7 @@ class FootBar: self._Icons["round_corners"] = round_corners def ResetNavText(self): - self._Icons["nav"]._Label.SetText("Nav.") + self._Icons["nav"]._Label.SetText(MyLangManager.Tr("Nav")) self._State = "normal" self.Draw() return False diff --git a/sys.py/UI/label.py b/sys.py/UI/label.py index 657fd3f..2a52e34 100644 --- a/sys.py/UI/label.py +++ b/sys.py/UI/label.py @@ -9,6 +9,7 @@ from util_funcs import midRect #UI lib from skin_manager import MySkinManager +from lang_manager import MyLangManager class Label: _PosX=0 diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 7854951..2b8340f 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -51,3 +51,22 @@ ShutDownConnecting=ShutDownConnecting... Select=Select Detail=Detail Applying=Applying... +DownloadFailed=Download failed +LauncherIsUpToDate=Launcher is up to date +CheckWifiConnection=Please Check your Wi-Fi connection +TurningOn=Turning On +TurningOff=Turning Off +Invalid=Invalid +CheckingUpdate=Checking update... +CheckingUpdateFailed=Cheking update failed +Update=Update +Toggle=Toggle +Rescue=Rescue +AirplaneMode=Airplane Mode +minutes=minutes +seconds=seconds +second=second +minute=minute +Never=Never +PowerOptions=Power Options + From 73bcdb6d445488aeee23402c7f4648b5ea8f754d Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 14:12:13 +0800 Subject: [PATCH 07/18] continue translate --- .../10_Settings/Airplane/__init__.py | 10 +-- .../10_Settings/Bluetooth/__init__.py | 20 +++--- .../10_Settings/Languages/__init__.py | 10 +-- .../10_Settings/Notification/__init__.py | 8 +-- .../10_Settings/PowerOFF/__init__.py | 5 +- .../10_Settings/PowerOptions/__init__.py | 28 ++++----- Menu/GameShell/10_Settings/Update/__init__.py | 18 +++--- Menu/GameShell/10_Settings/Wifi/wifi_list.py | 17 +++--- Menu/GameShell/10_Settings/list_item.py | 7 +-- Menu/GameShell/10_Settings/list_page.py | 2 +- Menu/GameShell/98_TinyCloud/__init__.py | 4 +- sys.py/UI/Emulator/__init__.py | 6 +- sys.py/UI/Emulator/fav_list_page.py | 8 +-- sys.py/UI/Emulator/rom_list_page.py | 8 +-- sys.py/UI/Emulator/rom_so_confirm_page.py | 2 +- sys.py/UI/confirm_page.py | 2 +- sys.py/UI/delete_confirm_page.py | 2 +- sys.py/UI/download_process_page.py | 4 +- sys.py/UI/foot_bar.py | 3 +- sys.py/UI/icon_item.py | 2 +- sys.py/UI/lang_manager.py | 14 +++-- sys.py/UI/main_screen.py | 2 +- sys.py/UI/page.py | 2 +- sys.py/UI/title_bar.py | 2 +- sys.py/langs/00_English.ini | 43 +++++++++++-- sys.py/langs/03_简体中文.ini | 61 +++++++++++++++++-- sys.py/run.py | 13 +++- 27 files changed, 198 insertions(+), 105 deletions(-) diff --git a/Menu/GameShell/10_Settings/Airplane/__init__.py b/Menu/GameShell/10_Settings/Airplane/__init__.py index 0725613..7d320ca 100644 --- a/Menu/GameShell/10_Settings/Airplane/__init__.py +++ b/Menu/GameShell/10_Settings/Airplane/__init__.py @@ -78,7 +78,7 @@ class InfoPageListItem(object): class AirplanePage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Rescue"),"",MyLangManager.Tr("Back"),MyLangManager.Tr("Toggle")] + _FootMsg = ["Nav","Rescue","","Back","Toggle"] _MyList = [] _ListFontObj = MyLangManager.TrFont("varela13") @@ -207,19 +207,19 @@ class AirplanePage(Page): out = commands.getstatusoutput('sudo rfkill list | grep yes | cut -d " " -f3') print out if "yes" in out[1]: - self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOn")) + self._Screen._MsgBox.SetText("TurningOn") self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill unblock all") self._Screen._TitleBar._InAirPlaneMode = False else: - self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOff")) + self._Screen._MsgBox.SetText("TurningOff") self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill block all") self._Screen._TitleBar._InAirPlaneMode = True def UnBlockAll(self): - self._Screen._MsgBox.SetText(MyLangManager.Tr("TurningOn")) + self._Screen._MsgBox.SetText("TurningOn") self._Screen._MsgBox.Draw() commands.getstatusoutput("sudo rfkill unblock all") self._Screen._TitleBar._InAirPlaneMode = False @@ -314,7 +314,7 @@ class APIOBJ(object): def Init(self,main_screen): self._Page = AirplanePage() self._Page._Screen = main_screen - self._Page._Name =MyLangManager.Tr("AirplaneMode") + self._Page._Name ="Airplane Mode" self._Page.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/Bluetooth/__init__.py b/Menu/GameShell/10_Settings/Bluetooth/__init__.py index c61890c..8d40891 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/__init__.py +++ b/Menu/GameShell/10_Settings/Bluetooth/__init__.py @@ -94,7 +94,7 @@ class BleInfoPageSelector(PageSelector): (x,y,self._Width-4,h),self._BackgroundColor,4,0,self._BackgroundColor) class BleInfoPage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Disconnect"),MyLangManager.Tr("Forget"),MyLangManager.Tr("Back"),""] + _FootMsg = ["Nav","Disconnect","Forget","Back",""] _MyList = [] _ListFontObj = MyLangManager.TrFont("varela15") _ListSmFontObj = fonts["varela12"] # small font @@ -127,7 +127,7 @@ class BleInfoPage(Page): self._ConfirmPage1 = BleForgetConfirmPage() self._ConfirmPage1._Screen = self._Screen - self._ConfirmPage1._Name = MyLangManager.Tr("ConfirmForget") + self._ConfirmPage1._Name = "ConfirmForget" self._ConfirmPage1._Parent = self self._ConfirmPage1.Init() @@ -205,7 +205,7 @@ class BleInfoPage(Page): proxy_obj = bus.get_object("org.bluez", self._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._MsgBox.SetText(MyLangManager.Tr("Forgeting")) + self._Screen._MsgBox.SetText("Forgeting") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -230,8 +230,8 @@ class BleInfoPage(Page): proxy_obj = bus.get_object("org.bluez", self._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Disconnecting")) - self._Screen._MsgBox.SetText(MyLangManager.Tr("Disconnecting")) + self._Screen._FootBar.UpdateNavText("Disconnecting") + self._Screen._MsgBox.SetText("Disconnecting") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -261,7 +261,7 @@ class BleInfoPage(Page): if self._AList != None: if "Connected" in self._AList: if self._AList["Connected"] == 1: - self._FootMsg[1] = MyLangManager.Tr("Disconnect") + self._FootMsg[1] = "Disconnect" else: self._FootMsg[1] = "" @@ -385,7 +385,7 @@ class BluetoothPage(Page): _BlockCb = None _LastStatusMsg = "" - _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Info"),MyLangManager.Tr("Back"),MyLangManager.Tr("TryConnect")] + _FootMsg = ["Nav","Scan","Info","Back","TryConnect"] _Scroller = None _ListFontObj = fonts["notosanscjk15"] @@ -444,7 +444,7 @@ class BluetoothPage(Page): self._InfoPage = BleInfoPage() self._InfoPage._Screen = self._Screen - self._InfoPage._Name = MyLangManager.Tr("BluetoothInfo") + self._InfoPage._Name = "BluetoothInfo" self._InfoPage.Init() def print_normal(self,address, properties): @@ -530,7 +530,7 @@ class BluetoothPage(Page): proxy_obj = bus.get_object("org.bluez", cur_li._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") - self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Connecting")) + self._Screen._FootBar.UpdateNavText("Connecting") self.ShowBox(MyLangManager.Tr("Connecting")) try: @@ -579,7 +579,7 @@ class BluetoothPage(Page): self._Scanning = True self.ShowBox(MyLangManager.Tr("BluetoothScanning")) - self._Screen._FootBar.UpdateNavText(MyLangManager.Tr("Scanning")) + self._Screen._FootBar.UpdateNavText("Scanning") proxy_obj = self._Dbus.get_object("org.bluez", "/org/bluez/" + self._ADAPTER_DEV) adapter_props = dbus.Interface(proxy_obj,"org.freedesktop.DBus.Properties") diff --git a/Menu/GameShell/10_Settings/Languages/__init__.py b/Menu/GameShell/10_Settings/Languages/__init__.py index 68b0436..6a5d64e 100644 --- a/Menu/GameShell/10_Settings/Languages/__init__.py +++ b/Menu/GameShell/10_Settings/Languages/__init__.py @@ -8,7 +8,7 @@ import glob from libs.roundrects import aa_round_rect ## local UI import -from UI.constants import Width,Height,ICON_TYPES,POWEROPT +from UI.constants import Width,Height,ICON_TYPES,RESTARTUI from UI.page import Page,PageSelector from UI.label import Label from UI.fonts import fonts @@ -75,7 +75,7 @@ class PageListItem(InfoPageListItem): pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1) class LanguagesPage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Select")] + _FootMsg = ["Nav","","","Back","Select"] _MyList = [] _ListFont = fonts["notosanscjk15"] @@ -105,7 +105,7 @@ class LanguagesPage(Page): files_path = [os.path.basename(x) for x in sorted(glob.glob('langs/*.ini'))] for i,u in enumerate( files_path ): - print(i,u) + #print(i,u) li = PageListItem() li._Parent = self li._PosX = start_x @@ -194,13 +194,13 @@ class LanguagesPage(Page): with open(".lang","w") as f: f.write(cur_li._Value) - self._Screen._MsgBox.SetText(MyLangManager.Tr("Applying")) + self._Screen._MsgBox.SetText("Applying") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() MyLangManager.UpdateLang() - ##pygame.event.post( pygame.event.Event(RUNEVT, message="exit 0")) ##Restart Launcher + pygame.event.post( pygame.event.Event(RESTARTUI, message="")) ##Restart Launcher pygame.time.delay(1000) diff --git a/Menu/GameShell/10_Settings/Notification/__init__.py b/Menu/GameShell/10_Settings/Notification/__init__.py index 005d2ea..8638f70 100644 --- a/Menu/GameShell/10_Settings/Notification/__init__.py +++ b/Menu/GameShell/10_Settings/Notification/__init__.py @@ -22,16 +22,16 @@ from UI.scroller import ListScroller from UI.icon_pool import MyIconPool from UI.icon_item import IconItem from UI.multi_icon_item import MultiIconItem - +from UI.lang_manager import MyLangManager from UI.multilabel import MultiLabel from UI.info_page_list_item import InfoPageListItem from UI.info_page_selector import InfoPageSelector class NotificationPage(Page): - _FootMsg = ["Nav.","","","Back","Toggle"] + _FootMsg = ["Nav","","","Back","Toggle"] _MyList = [] - _ListFontObj = fonts["varela13"] + _ListFontObj = MyLangManager.TrFont("varela13") _AList = {} @@ -197,7 +197,7 @@ class NotificationPage(Page): if event.key == CurKeys["B"]: self.ToggleEnable() - self._Screen._MsgBox.SetText("Applying...") + self._Screen._MsgBox.SetText("Applying") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(1000) diff --git a/Menu/GameShell/10_Settings/PowerOFF/__init__.py b/Menu/GameShell/10_Settings/PowerOFF/__init__.py index cd32448..a41d6d2 100644 --- a/Menu/GameShell/10_Settings/PowerOFF/__init__.py +++ b/Menu/GameShell/10_Settings/PowerOFF/__init__.py @@ -6,14 +6,13 @@ import pygame from UI.constants import RUNSYS from UI.keys_def import CurKeys from UI.confirm_page import ConfirmPage - +from UI.lang_manager import MyLangManager import config class PowerOffConfirmPage(ConfirmPage): - _ConfirmText = "Confirm Power OFF?" + _ConfirmText = MyLangManager.Tr("Confirm Power OFF?") - def CheckBattery(self): try: f = open(config.Battery) diff --git a/Menu/GameShell/10_Settings/PowerOptions/__init__.py b/Menu/GameShell/10_Settings/PowerOptions/__init__.py index abbc65a..49004bf 100644 --- a/Menu/GameShell/10_Settings/PowerOptions/__init__.py +++ b/Menu/GameShell/10_Settings/PowerOptions/__init__.py @@ -85,7 +85,7 @@ class PageListItem(object): l = Label() l._PosX = 10 l.SetCanvasHWND(self._Parent._CanvasHWND) - + text = MyLangManager.Tr(text) l.Init(text,self._Fonts["normal"]) self._Labels["Text"] = l @@ -108,7 +108,7 @@ class PageListItem(object): class InfoPage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),""] + _FootMsg = ["Nav","","","Back",""] _MyList = [] _ListFontObj = MyLangManager.TrFont("varela15") _AList = {} @@ -124,19 +124,19 @@ class InfoPage(Page): m = int(secs/60) s = secs % 60 if m > 1: - min_str = "%d "+MyLangManager.Tr("minutes")+" " % m + min_str = ("%d "+MyLangManager.Tr("minutes")+" ") % m else: - min_str = "%d "+MyLangManager.Tr("minute")+" " % m + min_str = ("%d "+MyLangManager.Tr("minute")+" ") % m if s == 1: - sec_str = "%d "+MyLangManager.Tr("second") % s + sec_str = ("%d "+MyLangManager.Tr("second")) % s elif s > 1: - sec_str = "%d "+MyLangManager.Tr("seconds") % s + sec_str = ("%d "+MyLangManager.Tr("seconds")) % s elif secs > 0: if secs > 1: - sec_str = "%d "+MyLangManager.Tr("seconds") % secs + sec_str = ("%d "+MyLangManager.Tr("seconds")) % secs else: - sec_str = "%d "+MyLangManager.Tr("second") % secs + sec_str = ("%d "+MyLangManager.Tr("second")) % secs elif secs == 0: sec_str = MyLangManager.Tr("Never") @@ -190,17 +190,17 @@ class InfoPage(Page): start_y = 0 for i,v in enumerate( self._AList): - print(v) + #print(v) li = PageListItem() li._Parent = self li._PosX = start_x li._PosY = start_y + i*PageListItem._Height li._Width = Width li._Fonts["normal"] = self._ListFontObj - li._Fonts["small"] = fonts["varela12"] + li._Fonts["small"] = MyLangManager.TrFont("varela12") if self._AList[v]["label"] != "": - li.Init( self._AList[v]["label"] ) + li.Init( self._AList[v]["label"] ) else: li.Init( self._AList[v]["key"] ) @@ -290,7 +290,7 @@ class InfoPage(Page): i.Draw() class PowerOptionsPage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),"",MyLangManager.Tr("Detail"),MyLangManager.Tr("Back"),MyLangManager.Tr("Select")] + _FootMsg = ["Nav","","Detail","Back","Select"] _MyList = [] _ListFont = fonts["notosanscjk15"] @@ -450,7 +450,7 @@ class PowerOptionsPage(Page): else: os.system("sudo iw wlan0 set power_save on > /dev/null") - self._Screen._MsgBox.SetText(MyLangManager.Tr("Applying")) + self._Screen._MsgBox.SetText("Applying") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -562,7 +562,7 @@ class APIOBJ(object): def Init(self,main_screen): self._Page = PowerOptionsPage() self._Page._Screen = main_screen - self._Page._Name =MyLangManager.Tr("PowerOptions") + self._Page._Name ="Power Options" self._Page.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/Update/__init__.py b/Menu/GameShell/10_Settings/Update/__init__.py index 003e981..92d753f 100644 --- a/Menu/GameShell/10_Settings/Update/__init__.py +++ b/Menu/GameShell/10_Settings/Update/__init__.py @@ -63,7 +63,7 @@ class UpdateDownloadPage(DownloadProcessPage): print(filename) os.system("rm -rf %s" % CmdClean(filename)) - self._Screen._MsgBox.SetText(MyLangManager.Tr("DownloadFailed")) + self._Screen._MsgBox.SetText("DownloadFailed") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return False @@ -81,7 +81,7 @@ class UpdateDownloadPage(DownloadProcessPage): self._URL = url self._DST_DIR = dst_dir else: - self._Screen._MsgBox.SetText(MyLangManager.Tr("Invaid")) + self._Screen._MsgBox.SetText("Invaid") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return @@ -123,7 +123,7 @@ class UpdateConfirmPage(ConfirmPage): if self._DownloadPage == None: self._DownloadPage = UpdateDownloadPage() self._DownloadPage._Screen = self._Screen - self._DownloadPage._Name = MyLangManager.Tr("Downloading") + self._DownloadPage._Name = "Downloading" self._DownloadPage.Init() self._DownloadPage._MD5 = self._MD5 @@ -153,7 +153,7 @@ class UpdateConfirmPage(ConfirmPage): class UpdatePage(Page): _Icons = {} - _FootMsg = ["Nav.","Check Update","","Back",""] + _FootMsg = ["Nav","Check Update","","Back",""] _ListFontObj = fonts["varela15"] _ConfirmPage = None @@ -209,7 +209,7 @@ class UpdatePage(Page): self.GenList() def CheckUpdate(self): - self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckingUpdate")) + self._Screen._MsgBox.SetText("CheckingUpdate") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -256,7 +256,7 @@ class UpdatePage(Page): self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText(MyLangManager.Tr("LauncherIsUpToDate")) + self._Screen._MsgBox.SetText("LauncherIsUpToDate") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(765) @@ -287,12 +287,12 @@ class UpdatePage(Page): self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckingUpdateFailed")) + self._Screen._MsgBox.SetText("CheckingUpdateFailed") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() else: self._Screen.Draw() - self._Screen._MsgBox.SetText(MyLangManager.Tr("CheckWifiConnection")) + self._Screen._MsgBox.SetText("CheckWifiConnection") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -313,7 +313,7 @@ class APIOBJ(object): self._UpdatePage = UpdatePage() self._UpdatePage._Screen = main_screen - self._UpdatePage._Name =MyLangManager.Tr("Update") + self._UpdatePage._Name = "Update" self._UpdatePage.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/Wifi/wifi_list.py b/Menu/GameShell/10_Settings/Wifi/wifi_list.py index af1df85..f256f4e 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi_list.py +++ b/Menu/GameShell/10_Settings/Wifi/wifi_list.py @@ -16,6 +16,7 @@ from UI.keys_def import CurKeys from UI.scroller import ListScroller from UI.confirm_page import ConfirmPage from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from UI.info_page_list_item import InfoPageListItem from UI.info_page_selector import InfoPageSelector @@ -26,7 +27,7 @@ import myvars class WifiDisconnectConfirmPage(ConfirmPage): - _ConfirmText = "Confirm Disconnect?" + _ConfirmText = MyLangManager.Tr("ConfirmDisconnectQ") def KeyDown(self,event): if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]: @@ -35,7 +36,7 @@ class WifiDisconnectConfirmPage(ConfirmPage): self._Screen.SwapAndShow() if event.key == CurKeys["B"]: - self.SnapMsg("Disconnecting...") + self.SnapMsg(MyLangManager.Tr("Disconnecting")) self._Screen.Draw() self._Screen.SwapAndShow() @@ -57,9 +58,9 @@ class WifiDisconnectConfirmPage(ConfirmPage): self.Reset() class WifiInfoPage(Page): - _FootMsg = ["Nav.","Disconnect","","Back",""] + _FootMsg = ["Nav","Disconnect","","Back",""] _MyList = [] - _ListFontObj = fonts["varela15"] + _ListFontObj = MyLangManager.TrFont("varela15") _Wireless = None _Daemon = None @@ -287,7 +288,7 @@ class WifiList(Page): _BlockCb = None _LastStatusMsg = "" - _FootMsg = ["Nav.","Scan","Info","Back","Enter"] + _FootMsg = ["Nav","Scan","Info","Back","Enter"] _EncMethods = None _Scroller = None _ListFontObj = fonts["notosanscjk15"] @@ -370,7 +371,7 @@ class WifiList(Page): return self._Scanning = True - self.ShowBox("Wifi scanning...") + self.ShowBox(MyLangManager.Tr("Wifi scanning")) self._BlockingUI = True print("dbus says start scan...") @@ -537,7 +538,7 @@ class WifiList(Page): self._Wireless.SetWirelessProperty(netid,"apsk",password) self._Wireless.SetWirelessProperty(netid,"automatic",1) - self.ShowBox("Connecting...") + self.ShowBox(MyLangManager.Tr("Connecting")) self._WirelessList[netid].Connect() print("after Connect") @@ -620,7 +621,7 @@ class WifiList(Page): wireless_connecting = self._Wireless.CheckIfWirelessConnecting() if wireless_connecting: self.ShutDownConnecting() - self.ShowBox("ShutDownConnecting...") + self.ShowBox(MyLangManager.Tr("ShutDownConnecting")) self._BlockingUI=True self._BlockCb = self.AbortedAndReturnToUpLevel else: diff --git a/Menu/GameShell/10_Settings/list_item.py b/Menu/GameShell/10_Settings/list_item.py index 4050d96..d0dcb23 100644 --- a/Menu/GameShell/10_Settings/list_item.py +++ b/Menu/GameShell/10_Settings/list_item.py @@ -8,7 +8,7 @@ import pygame from UI.page import Page from UI.label import Label from UI.fonts import fonts - +from UI.lang_manager import MyLangManager # a item for List # - - - - - - - - - - - -- # | Icon Text..... > | @@ -34,9 +34,6 @@ class ListItem(object): self._Icons = {} self._Fonts = {} - - - def Init(self,text): #self._Fonts["normal"] = fonts["veramono12"] @@ -44,7 +41,7 @@ class ListItem(object): l = Label() l._PosX = 16 l.SetCanvasHWND(self._Parent._CanvasHWND) - + text = MyLangManager.Tr(text) l.Init(text,self._Fonts["normal"]) self._Labels["Text"] = l diff --git a/Menu/GameShell/10_Settings/list_page.py b/Menu/GameShell/10_Settings/list_page.py index 31d6023..75f629a 100644 --- a/Menu/GameShell/10_Settings/list_page.py +++ b/Menu/GameShell/10_Settings/list_page.py @@ -26,7 +26,7 @@ class ListPage(Page): _Icons = {} _Selector=None - _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Enter")] + _FootMsg = ["Nav","","","Back","Enter"] _MyList = [] _ListFontObj = MyLangManager.TrFont("varela15") diff --git a/Menu/GameShell/98_TinyCloud/__init__.py b/Menu/GameShell/98_TinyCloud/__init__.py index 83d3250..f772c06 100644 --- a/Menu/GameShell/98_TinyCloud/__init__.py +++ b/Menu/GameShell/98_TinyCloud/__init__.py @@ -16,7 +16,7 @@ from UI.lang_manager import MyLangManager from libs.DBUS import is_wifi_connected_now,get_wifi_ip class TinyCloudPage(Page): - _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),""] + _FootMsg = ["Nav","","","Back",""] _MyList = [] _ListFontObj = fonts["varela13"] @@ -166,7 +166,7 @@ class TinyCloudPage(Page): def KeyDown(self,event): if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]: - if self._FootMsg[3] == MyLangManager.Tr("Back"): + if self._FootMsg[3] == "Back": self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() diff --git a/sys.py/UI/Emulator/__init__.py b/sys.py/UI/Emulator/__init__.py index b427bd8..fc938a6 100644 --- a/sys.py/UI/Emulator/__init__.py +++ b/sys.py/UI/Emulator/__init__.py @@ -76,18 +76,18 @@ class MyEmulator(object): def InitDeleteConfirmPage(self,main_screen): self.DeleteConfirmPage = DeleteConfirmPage() self.DeleteConfirmPage._Screen = main_screen - self.DeleteConfirmPage._Name = MyLangManager.Tr("DeleteConfirm") + self.DeleteConfirmPage._Name = "DeleteConfirm" self.DeleteConfirmPage.Init() self.FavDeleteConfirmPage = FavDeleteConfirmPage() self.FavDeleteConfirmPage._Screen = main_screen - self.FavDeleteConfirmPage._Name = MyLangManager.Tr("DeleteConfirm") + self.FavDeleteConfirmPage._Name = "DeleteConfirm" self.FavDeleteConfirmPage.Init() def InitFavListPage(self,main_screen): self.FavListPage = FavListPage() self.FavListPage._Screen = main_screen - self.FavListPage._Name = MyLangManager.Tr("FavouriteGames") + self.FavListPage._Name = "FavouriteGames" self.FavListPage._Emulator = self._Emulator self.FavListPage._Parent = self diff --git a/sys.py/UI/Emulator/fav_list_page.py b/sys.py/UI/Emulator/fav_list_page.py index 45f1f1e..261d734 100644 --- a/sys.py/UI/Emulator/fav_list_page.py +++ b/sys.py/UI/Emulator/fav_list_page.py @@ -92,7 +92,7 @@ class FavListPage(Page): _Icons = {} _Selector=None - _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Remove"),"",MyLangManager.Tr("Run")] + _FootMsg = ["Nav","Scan","Remove","","Run"] _MyList = [] _ListFont = fonts["notosanscjk15"] _MyStack = None @@ -245,7 +245,7 @@ class FavListPage(Page): rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen - rom_so_confirm_page._Name = MyLangManager.Tr("Download Confirm") + rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() @@ -309,7 +309,7 @@ class FavListPage(Page): return if cur_li._MyType == ICON_TYPES["FILE"]: - self._Screen._MsgBox.SetText(MyLangManager.Tr("Launching")) + self._Screen._MsgBox.SetText("Launching") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() if self._Emulator["FILETYPE"] == "dir": @@ -419,7 +419,7 @@ class FavListPage(Page): #delete directly without confirm dialog stats = os.stat(cur_li._Path) os.chown(cur_li._Path, stats.st_uid,stats.st_uid) ## normally uid and gid should be the same - self._Screen._MsgBox.SetText(MyLangManager.Tr("Deleting")) + self._Screen._MsgBox.SetText("Deleting") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(600) diff --git a/sys.py/UI/Emulator/rom_list_page.py b/sys.py/UI/Emulator/rom_list_page.py index 4447ecf..b691854 100644 --- a/sys.py/UI/Emulator/rom_list_page.py +++ b/sys.py/UI/Emulator/rom_list_page.py @@ -99,7 +99,7 @@ class RomListPage(Page): _Icons = {} _Selector=None - _FootMsg = [MyLangManager.Tr("Nav"),MyLangManager.Tr("Scan"),MyLangManager.Tr("Del"),MyLangManager.Tr("AddFav"),MyLangManager.Tr("Run")] + _FootMsg = ["Nav","Scan","Del","AddFav","Run"] _MyList = [] _ListFont = fonts["notosanscjk15"] _MyStack = None @@ -279,7 +279,7 @@ class RomListPage(Page): rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen - rom_so_confirm_page._Name = MyLangManager.Tr("Download Confirm") + rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() @@ -348,7 +348,7 @@ class RomListPage(Page): self._PsIndex = 0 if cur_li._MyType == ICON_TYPES["FILE"]: - self._Screen._MsgBox.SetText(MyLangManager.Tr("Launching")) + self._Screen._MsgBox.SetText("Launching") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() @@ -448,7 +448,7 @@ class RomListPage(Page): except: pass - self._Screen._MsgBox.SetText(MyLangManager.Tr("AddFavList")) + self._Screen._MsgBox.SetText("AddFavList") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() diff --git a/sys.py/UI/Emulator/rom_so_confirm_page.py b/sys.py/UI/Emulator/rom_so_confirm_page.py index 4d23087..c055979 100644 --- a/sys.py/UI/Emulator/rom_so_confirm_page.py +++ b/sys.py/UI/Emulator/rom_so_confirm_page.py @@ -99,7 +99,7 @@ class RomSoConfirmPage(ConfirmPage): if self._MyDownloadPage == None: self._MyDownloadPage = DownloadProcessPage() self._MyDownloadPage._Screen = self._Screen - self._MyDownloadPage._Name = MyLangManager.Tr("Downloading") + self._MyDownloadPage._Name = "Downloading" self._MyDownloadPage.Init() self._Screen.PushPage(self._MyDownloadPage) diff --git a/sys.py/UI/confirm_page.py b/sys.py/UI/confirm_page.py index 04e3cdd..4efac84 100644 --- a/sys.py/UI/confirm_page.py +++ b/sys.py/UI/confirm_page.py @@ -54,7 +54,7 @@ class ConfirmPage(Page): _Icons = {} _Selector=None - _FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Cancel"),MyLangManager.Tr("Yes")] + _FootMsg = ["Nav","","","Cancel","Yes"] _MyList = [] _ListFont = MyLangManager.TrFont("veramono20") _MyStack = None diff --git a/sys.py/UI/delete_confirm_page.py b/sys.py/UI/delete_confirm_page.py index 12c27c3..7bca5bd 100644 --- a/sys.py/UI/delete_confirm_page.py +++ b/sys.py/UI/delete_confirm_page.py @@ -49,7 +49,7 @@ class DeleteConfirmPage(ConfirmPage): shutil.move(self._FileName, self._TrashDir) except shutil.Error as e: if "already exists" in str(e): - self._Screen._MsgBox.SetText(MyLangManager.Tr("AlreadyExisted")) + self._Screen._MsgBox.SetText("AlreadyExisted") else: self._Screen._MsgBox.SetText("Error") diff --git a/sys.py/UI/download_process_page.py b/sys.py/UI/download_process_page.py index dfc397e..7af42dc 100644 --- a/sys.py/UI/download_process_page.py +++ b/sys.py/UI/download_process_page.py @@ -131,7 +131,7 @@ class DownloadProcessPage(Page): except: pass - self._Screen._MsgBox.SetText(MyLangManager.Tr("DownloadFailed")) + self._Screen._MsgBox.SetText("DownloadFailed") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() return False @@ -164,7 +164,7 @@ class DownloadProcessPage(Page): self._URL = url self._DST_DIR = dst_dir else: - self._Screen._MsgBox.SetText(MyLangManager.Tr("Invaid")) + self._Screen._MsgBox.SetText("Invaid") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() print("url or dst dir error") diff --git a/sys.py/UI/foot_bar.py b/sys.py/UI/foot_bar.py index 6e717c0..f744fc1 100644 --- a/sys.py/UI/foot_bar.py +++ b/sys.py/UI/foot_bar.py @@ -108,6 +108,7 @@ class FootBar: def UpdateNavText(self,texts): self._State = "tips" + texts = MyLangManager.Tr(texts) my_text = self._LabelFont.render(texts,True,self._SkinManager.GiveColor("Text")) """ _w = 0 @@ -152,7 +153,7 @@ class FootBar: for idx,x in enumerate(barr): try: - self._Icons[x]._Label.SetText(texts[idx]) + self._Icons[x]._Label.SetText(MyLangManager.Tr(texts[idx])) except IndexError: print("Index "+x+" doesn't exist!") diff --git a/sys.py/UI/icon_item.py b/sys.py/UI/icon_item.py index 39e9110..63b17ca 100644 --- a/sys.py/UI/icon_item.py +++ b/sys.py/UI/icon_item.py @@ -66,7 +66,7 @@ class IconItem: self._LinkPage._Screen = self._Parent._Screen self._LinkPage._CanvasHWND = self._Parent._Screen._CanvasHWND - self._LinkPage._FootMsg = [MyLangManager.Tr("Nav"),"","",MyLangManager.Tr("Back"),MyLangManager.Tr("Enter")] ## Default Page Foot info + self._LinkPage._FootMsg = ["Nav","","","Back","Enter"] ## Default Page Foot info if self._LinkPage._Align == ALIGN["HLeft"]: self._LinkPage.AdjustHLeftAlign() diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py index 7904b1d..dbf2d33 100644 --- a/sys.py/UI/lang_manager.py +++ b/sys.py/UI/lang_manager.py @@ -16,7 +16,7 @@ class LangManager(object): _Langs = {} _Config = None - _ConfigFileName = "00_English.ini" + _ConfigFileName = "00_English.ini" ## double % to escape def __init__(self): self.Init() @@ -31,24 +31,25 @@ class LangManager(object): def SetLangs(self): self._Config = CaseConfigParser() - print("SetLangs") + #print("SetLangs") fname = ".lang" try: with open(fname, "r") as f: self._ConfigFileName = f.read() self._ConfigFileName = self._ConfigFileName.strip("\r\n ") - print(self._ConfigFileName) + #print(self._ConfigFileName) except: print("read lang failed") None if self._ConfigFileName == "" or FileExists("langs/"+self._ConfigFileName) == False: - print("miss file") + #print("miss file") self._ConfigFileName = "00_English.ini" else: - print("has file",self._ConfigFileName) + pass + #print("has file",self._ConfigFileName) try: @@ -67,8 +68,9 @@ class LangManager(object): continue def Tr(self,english_key_str): - print("english_key_str", english_key_str) + #print("english_key_str", english_key_str) if english_key_str in self._Langs: + #print( self._Langs[english_key_str] ) return self._Langs[english_key_str].decode("utf8") else: return english_key_str diff --git a/sys.py/UI/main_screen.py b/sys.py/UI/main_screen.py index 38af73b..ca8e576 100644 --- a/sys.py/UI/main_screen.py +++ b/sys.py/UI/main_screen.py @@ -48,7 +48,7 @@ class MessageBox(Label): self._HWND = self._Parent._CanvasHWND def SetText(self,text): - self._Text = text + self._Text = MyLangManager.Tr(text) def PreDraw(self): self._Width = 0 diff --git a/sys.py/UI/page.py b/sys.py/UI/page.py index b78e6a7..985d4a4 100644 --- a/sys.py/UI/page.py +++ b/sys.py/UI/page.py @@ -100,7 +100,7 @@ class Page(object): _Name = "" _Screen = None ## Should be the Screen Class _PageIconMargin = 20 - _FootMsg = [MyLangManager.Tr("Nav"),"","","",MyLangManager.Tr("Enter")] ## Default Page Foot info + _FootMsg = ["Nav","","","","Enter"] ## Default Page Foot info _SelectedIconTopOffset=20 _EasingDur = 30 diff --git a/sys.py/UI/title_bar.py b/sys.py/UI/title_bar.py index 5e31c97..324c265 100644 --- a/sys.py/UI/title_bar.py +++ b/sys.py/UI/title_bar.py @@ -297,7 +297,7 @@ class TitleBar: def Draw(self,title): self.ClearCanvas() - + title = MyLangManager.Tr(title) self._Title = title cur_time = datetime.now().strftime("%H:%M") diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 2b8340f..28984c8 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -16,6 +16,7 @@ Enter=Enter Remove=Remove Run=Run AddToPlayList=Add to Playlist +Add to Playlist=Add to Playlist DownloadConfirm=Download Confirm MyFavGames=my favourites games Deleting=Deleting... @@ -29,16 +30,18 @@ Cancel=Cancel Yes=Yes ConfirmQ=Confirm? Disconnecting=Disconnecting... -ConfirmUpdateToFQ=Confirm Update to %s ? -UpdateToFQ=Update to %s ? +ConfirmUpdateToFQ=Confirm Update to %%s ? +UpdateToFQ=Update to %%s ? SetupGameEngineAutoQ=Do you want to setup this game engine automatically? Downloading=Downloading... -BATOver5Pct=Battery must over 5% +BATOver5Pct=Battery must over 5%% DeleteConfirm=Delete Confirm FavouriteGames=Favourite Games ConfirmForgetQ=Confirm Forget? ConfirmForget=Confirm Forget Disconnect=Disconnect +ConfirmDisconnectQ=Confirm Disconnect ? +Confirm Disconnect=Confirm Disconnect Forget=Forget Forgeting=Forgeting... Info=Info @@ -62,11 +65,39 @@ CheckingUpdateFailed=Cheking update failed Update=Update Toggle=Toggle Rescue=Rescue -AirplaneMode=Airplane Mode +Airplane Mode=Airplane Mode minutes=minutes seconds=seconds second=second minute=minute Never=Never -PowerOptions=Power Options - +Power Options=Power Options +Languages=Languages +Notify=Notify +Setting List=Setting List +Wi-Fi=Wi-Fi +Bluetooth=Bluetooth +Sound Volume=Sound Volume +Sound Volume=Sound volume +Brightness=Brightness +BackLight Brightness=BackLight Brightness +Storage=Storage +Timezone=Timezone +Timezone Selection=Timezone Selection +Notification=Notification +About=About +Power off=Power off +Buttons Layout=Buttons Layout +UpdateRetroArch=UpdateRetroArch +Wifi scanning=Wifi scanning... +Power option detail=Power option detail +Screen dimming=Screen dimming +Screen OFF=Screen OFF +Power OFF=Power OFF +Power saving=Power saving +Balanced=Balanced +Server=Server +Performance=Performance +Confirm Power OFF?=Confirm Power OFF? +Reboot=Reboot +Shutdown=Shutdown diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini index c1894e4..33b2e76 100644 --- a/sys.py/langs/03_简体中文.ini +++ b/sys.py/langs/03_简体中文.ini @@ -1,6 +1,6 @@ [Langs] Settings=设置 -Retro Games=复古游戏 +Retro Games=经典游戏 Music Player=音乐播放器 TinyCloud=彩云 PowerOFF=关机 @@ -15,6 +15,7 @@ Enter=进入 Remove=删除 Run=运行 AddToPlayList=添加到播放列表 +Add to Playlist=添加到播放列表 DownloadConfirm=下载确认 MyFavGames=加星游戏列表 Deleting=删除中... @@ -27,16 +28,18 @@ Cancel=取消 Yes=是 ConfirmQ=确认? Disconnecting=断开连接... -ConfirmUpdateToFQ=确认升级至 %s ? -UpdateToFQ=更新至 %s ? +ConfirmUpdateToFQ=确认升级至 %%s ? +UpdateToFQ=更新至 %%s ? SetupGameEngineAutoQ=你希望自动安装游戏引擎部件吗? Downloading=下载中... -BATOver5Pct=电量必须多余5% +BATOver5Pct=电量必须多余5%% DeleteConfirm=删除确认 FavouriteGames=偏好游戏 ConfirmForgetQ=确认忽略? ConfirmForget=确认忽略 Disconnect=断开 +ConfirmDisconnectQ=确认断开? +Confirm Disconnect=确认断开 Forget=忽略 Forgeting=忽略中... Info=属性 @@ -49,3 +52,53 @@ ShutDownConnecting=断开连接... Select=选择 Detail=详细 Applying=设置中... +DownloadFailed=下载失败 +LauncherIsUpToDate=Launcher已是最新 +CheckWifiConnection=请检查 Wi-Fi 连接 +TurningOn=打开 +TurningOff=关闭 +Invalid=非法 +CheckingUpdate=检查更新... +CheckingUpdateFailed=检查更新失败 +Update=更新 +Toggle=切换 +Rescue=拯救 +Airplane Mode=飞行模式 +minutes=分 +seconds=秒 +second=秒 +minute=分 +Never=永不 +Power Options=电源选项 +Languages=语言 +Notify=提醒 +Setting List=设置列表 +Wi-Fi=Wi-Fi +Bluetooth=蓝牙 +Sound Volume=音量 +Sound volume=音量 +Brightness=亮度 +BackLight Brightness=背光亮度 +Storage=存储空间 +Timezone=时区 +Timezone Selection=时区选择 +Notification=提醒控件 +About=关于GameShell +Power off=关机 +Buttons Layout=按纽布局 +UpdateRetroArch=更新RetroArch +Wifi scanning=WiFi扫描中 +Power option detail=电源选项 +Screen dimming=屏幕变暗 +Screen OFF=关闭屏幕 +Power OFF=关机 +Power saving=节能 +Balanced=平衡 +Server=服务器 +Performance=性能 +Confirm Power OFF?=确认关机? +Reboot=重启 +Shutdown=关闭 +Play List=播放列表 +Music Library=乐库 +Play/Pause=播放/暂停 diff --git a/sys.py/run.py b/sys.py/run.py index dfce104..707bae9 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -282,7 +282,7 @@ def RecordKeyDns(thekey,main_screen): Keys.append(thekey) keys = ''.join(map(str,Keys)) - print(keys) + #print(keys) if keys == "273273274274276276275275106107":##uuddllrrab crt_screen.Draw() crt_screen.SwapAndShow() @@ -345,7 +345,16 @@ def event_process(event,main_screen): os.chdir( GetExePath()) os.exelp("python","python"," "+myscriptname) return - + if event.type == RESTARTUI: + pygame.quit() + gobject_main_loop.quit() + os.chdir(GetExePath()) + exec_app_cmd = " sync & cd "+GetExePath()+"; exec python "+myscriptname + print(exec_app_cmd) + os.execlp("/bin/sh","/bin/sh","-c", exec_app_cmd) + os.chdir( GetExePath()) + os.exelp("python","python"," "+myscriptname) + return if event.type == POWEROPT: everytime_keydown = time.time() From 746fdb84128d9c86b8860c9d2d7bc89e4a12927f Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 14:18:36 +0800 Subject: [PATCH 08/18] auto create dotlang --- sys.py/UI/lang_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py index dbf2d33..b38eda7 100644 --- a/sys.py/UI/lang_manager.py +++ b/sys.py/UI/lang_manager.py @@ -40,6 +40,7 @@ class LangManager(object): self._ConfigFileName = self._ConfigFileName.strip("\r\n ") #print(self._ConfigFileName) except: + os.system("touch .lang") print("read lang failed") None From ea673759d918ca9a9f86d8bf2bfa0d9b8537cd71 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 14:19:21 +0800 Subject: [PATCH 09/18] auto create dotlang --- sys.py/UI/lang_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys.py/UI/lang_manager.py b/sys.py/UI/lang_manager.py index b38eda7..af00c67 100644 --- a/sys.py/UI/lang_manager.py +++ b/sys.py/UI/lang_manager.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +import os import pygame import config import ConfigParser From aac0bf19446db4751e497a4c494d17579bc9ea17 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 14:26:23 +0800 Subject: [PATCH 10/18] music play list ,translate bgpng --- Menu/GameShell/97_Music Player/music_lib_list_page.py | 3 ++- Menu/GameShell/97_Music Player/play_list_page.py | 3 ++- sys.py/langs/00_English.ini | 1 + sys.py/langs/03_简体中文.ini | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Menu/GameShell/97_Music Player/music_lib_list_page.py b/Menu/GameShell/97_Music Player/music_lib_list_page.py index dec0b0f..6760f77 100644 --- a/Menu/GameShell/97_Music Player/music_lib_list_page.py +++ b/Menu/GameShell/97_Music Player/music_lib_list_page.py @@ -16,6 +16,7 @@ from UI.multi_icon_item import MultiIconItem from UI.icon_pool import MyIconPool from UI.scroller import ListScroller from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from list_item import ListItem @@ -184,7 +185,7 @@ class MusicLibListPage(Page): self._BGpng._ImgSurf = MyIconPool._Icons["empty"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self - self._BGpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"]) + self._BGpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) diff --git a/Menu/GameShell/97_Music Player/play_list_page.py b/Menu/GameShell/97_Music Player/play_list_page.py index c40fe57..1a0ca9f 100644 --- a/Menu/GameShell/97_Music Player/play_list_page.py +++ b/Menu/GameShell/97_Music Player/play_list_page.py @@ -15,6 +15,7 @@ from UI.util_funcs import midRect from UI.keys_def import CurKeys from UI.icon_pool import MyIconPool from UI.skin_manager import MySkinManager +from UI.lang_manager import MyLangManager from UI.scroller import ListScroller @@ -183,7 +184,7 @@ class PlayListPage(Page): self._BGpng._ImgSurf = MyIconPool._Icons["heart"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self - self._BGpng.AddLabel("my favourites", fonts["varela18"]) + self._BGpng.AddLabel(MyLangManager.Tr("my favourites"), MyLangManager.TrFont("varela18")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 28984c8..6d1da9c 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -101,3 +101,4 @@ Performance=Performance Confirm Power OFF?=Confirm Power OFF? Reboot=Reboot Shutdown=Shutdown +my favourites=my favourites diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini index 33b2e76..bcc5f2a 100644 --- a/sys.py/langs/03_简体中文.ini +++ b/sys.py/langs/03_简体中文.ini @@ -102,3 +102,4 @@ Shutdown=关闭 Play List=播放列表 Music Library=乐库 Play/Pause=播放/暂停 +my favourites=我的收藏夹 From 7d692ef11379ed086d5ade4b43cc6859da6ace32 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 14:30:29 +0800 Subject: [PATCH 11/18] langs ini update --- sys.py/UI/Emulator/rom_list_page.py | 2 +- sys.py/langs/00_English.ini | 2 +- sys.py/langs/03_简体中文.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys.py/UI/Emulator/rom_list_page.py b/sys.py/UI/Emulator/rom_list_page.py index b691854..18614f2 100644 --- a/sys.py/UI/Emulator/rom_list_page.py +++ b/sys.py/UI/Emulator/rom_list_page.py @@ -265,7 +265,7 @@ class RomListPage(Page): bgpng._ImgSurf = MyIconPool._Icons["empty"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self - bgpng.AddLabel(MyLangManager.Tr("UploadViaWifi"), MyLangManager.TrFont("varela22")) + bgpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 6d1da9c..9ceae9f 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -23,7 +23,7 @@ Deleting=Deleting... AddFav=Add Fav ADdFavList=Add to favourite list Del=Del -UploadViaWifi=Please upload data over Wi-Fi +Please upload data over Wi-Fi=Please upload data over Wi-Fi ConfirmDeleteQ=Confirm Delete ? AlreadyExisted=Already existed Cancel=Cancel diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini index bcc5f2a..31b5abe 100644 --- a/sys.py/langs/03_简体中文.ini +++ b/sys.py/langs/03_简体中文.ini @@ -21,7 +21,7 @@ MyFavGames=加星游戏列表 Deleting=删除中... AddFav=加星 Del=删 -UploadViaWifi=请通过无线Wifi上传数据 +Please upload data over Wi-Fi=请通过无线Wifi上传数据 ConfirmDeleteQ=确认删除? AlreadyExisted=已存在 Cancel=取消 From 13dfa44c2ca969809fd68058abf599e535fdf3c3 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 17:26:52 +0800 Subject: [PATCH 12/18] translate alpha now --- sys.py/langs/00_English.ini | 2 +- sys.py/langs/01_日本語.ini | 104 ++++++++++++++++++++++++++++++++++ sys.py/langs/02_한국어.ini | 104 ++++++++++++++++++++++++++++++++++ sys.py/langs/04_繁体中文.ini | 105 +++++++++++++++++++++++++++++++++++ 4 files changed, 314 insertions(+), 1 deletion(-) diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 9ceae9f..69689eb 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -61,7 +61,7 @@ TurningOn=Turning On TurningOff=Turning Off Invalid=Invalid CheckingUpdate=Checking update... -CheckingUpdateFailed=Cheking update failed +CheckingUpdateFailed=Checking update failed Update=Update Toggle=Toggle Rescue=Rescue diff --git a/sys.py/langs/01_日本語.ini b/sys.py/langs/01_日本語.ini index e69de29..6d909c9 100644 --- a/sys.py/langs/01_日本語.ini +++ b/sys.py/langs/01_日本語.ini @@ -0,0 +1,104 @@ +[Langs] +Settings=設定 +Retro Games=レトロ ゲーム +Music Player=音楽プレーヤー +TinyCloud=TinyCloud +PowerOFF=電源を切る +Reload UI=リロードUI +freeDM=freeDM +CaveStory=洞窟物語 +RetroArch=RetroArch +Launching=打ち上げ +Nav=ナビ +Scan=スキャン +Back=後ろ +Enter=入る +Remove=削除 +Run=起動 +AddToPlayList=再生リストに追加 +Add to Playlist=再生リストに追加 +DownloadConfirm=ダウンロード確認 +MyFavGames=私の好きなゲーム +Deleting=削除 +AddFav=好みを加える +ADdFavList=好みのリストに追加 +Del=削 +Please upload data over Wi-Fi=Wifiを通じてデータをアップロードする +ConfirmDeleteQ=削除の確認? +AlreadyExisted=存在している +Cancel=取り消す +Yes=は +ConfirmQ=確認? +Disconnecting=接続を切る +ConfirmUpdateToFQ=にアップグレードする%%s? +UpdateToFQ=にアップする%%s ? +SetupGameEngineAutoQ=ゲームエンジンを自動化しますか? +Downloading=ダウンロード中 +BATOver5Pct=電気の量は少なくとも5%% +DeleteConfirm=削除の確認 +FavouriteGames=好きなゲーム +ConfirmForgetQ=見落としを確認します? +ConfirmForget=見落としを確認する +Disconnect=接続を切る +ConfirmDisconnectQ=接続を確認しますか? +Confirm Disconnect=接続を確認する? +Forget=無視 +Forgeting=見落としている +Info=情報 +TryConnect=接続を試みる +BluetoothInfo=青歯設備情報 +Connecting=接続中 +BluetoothScanning=青い歯のスキャン中 +Scanning=スキャン中 +ShutDownConnecting=接続を閉じている +Select=選択 +Detail=詳細 +Applying=応用中 +DownloadFailed=ダウンロード失敗 +LauncherIsUpToDate=Launcherもう一番新しい +CheckWifiConnection=wifi接続をチェックしてください +TurningOn=開けている +TurningOff=閉まっている +Invalid=無効 +CheckingUpdate=チェックアップ中 +CheckingUpdateFailed=チェックの更新に失敗しました +Update=更新 +Toggle=トグル +Rescue=救う +Airplane Mode=飛行モード +minutes=分 +seconds=秒 +second=秒 +minute=分 +Never=いつまでも +Power Options=電源オプション +Languages=言語 +Notify=通知ウィジェット +Setting List=設定リスト +Wi-Fi=Wi-Fi +Bluetooth=青歯 +Sound Volume=音量 +Sound Volume=音量 +Brightness=明るさ +BackLight Brightness=光の明るさ +Storage=メモリスペース +Timezone=時地 +Timezone Selection=タイムゾーン選択 +Notification=注意を通知する +About=について +Power off=関機 +Buttons Layout=ボタンの配置 +UpdateRetroArch=更新RetroArch +Wifi scanning=wifiスキャン中 +Power option detail=電源オプションの詳細 +Screen dimming=画面が暗くなる +Screen OFF=スクリーンを閉 +Power OFF=関機 +Power saving=省エネルギー +Balanced=バランス +Server=サーバ +Performance=性能 +Confirm Power OFF?=電源を確認しますか? +Reboot=再起動 +Shutdown=操業停止 +my favourites=お気に入り diff --git a/sys.py/langs/02_한국어.ini b/sys.py/langs/02_한국어.ini index e69de29..a327b36 100644 --- a/sys.py/langs/02_한국어.ini +++ b/sys.py/langs/02_한국어.ini @@ -0,0 +1,104 @@ +[Langs] +Settings=설치 +Retro Games=클래식 게임 +Music Player=음악 플레이어 +TinyCloud=채색 구름 +PowerOFF=전원닫기 +Reload UI=재개UI +freeDM=freeDM +CaveStory=동굴 속어 +RetroArch=RetroArch +Launching=시작중 +Nav=방향 +Scan=스캐닝 +Back=반퇴 +Enter=진입 +Remove=삭제 +Run=운행 +AddToPlayList=재생목록에추가하기 +Add to Playlist=재생목록에추가하기 +DownloadConfirm=다운로드확인 +MyFavGames=내가좋아하는게임 +Deleting=삭제중 +AddFav=편향추가 +ADdFavList=기본설정목록에추가 +Del=삭제 +Please upload data over Wi-Fi=Wi-Fi를통해데이터를업로드하십시오 +ConfirmDeleteQ=삭제확인? +AlreadyExisted=이미존재합니다 +Cancel=취소 +Yes=네 +ConfirmQ=확인되나요? +Disconnecting=연결끊기중 +ConfirmUpdateToFQ=확인업데이트%%s? +UpdateToFQ=업데이트%%s? +SetupGameEngineAutoQ=너이게임엔진자동설정? +Downloading=다운로드 +BATOver5Pct=배터리가5%%보다더많아야합니다 +DeleteConfirm=삭제확인 +FavouriteGames=가장좋아하는게임 +ConfirmForgetQ=무시확인? +ConfirmForget=무시확인 +Disconnect=끊어지다 +ConfirmDisconnectQ=확인끊기? +Confirm Disconnect=확인연결끊기 +Forget=무시 +Forgeting=무시중 +Info=정보 +TryConnect=연결을시도한다 +BluetoothInfo=블루투스정보 +Connecting=연결중 +BluetoothScanning=블루투스스캔 +Scanning=스캔중 +ShutDownConnecting=연결닫기중 +Select=선택하다 +Detail=자세히 +Applying=적용중 +DownloadFailed=다운로드실패 +LauncherIsUpToDate=Launcher이미최신이다 +CheckWifiConnection=무선네트워크연결을확인하십시오 +TurningOn=개회 +TurningOff=폐회 +Invalid=잘못된 +CheckingUpdate=검사업데이트 +CheckingUpdateFailed=고과업데이트실패 +Update=업데이트 +Toggle=토글 +Rescue=구출 +Airplane Mode=비행기모드 +minutes=분 +seconds=초 +second=초 +minute=분 +Never=영원히 +Power Options=전원옵션 +Languages=언어 +Notify=알림을통지하다 +Setting List=목록설정 +Wi-Fi=Wi-Fi +Bluetooth=블루투스 +Sound Volume=음량 +Sound Volume=음량 +Brightness=밝기 +BackLight Brightness=등광밝기 +Storage=기억공간 +Timezone=시구 +Timezone Selection=시간대선택 +Notification=통지 +About=에관하다 +Power off=전원닫기 +Buttons Layout=버튼 레이아웃 +UpdateRetroArch=갱신RetroArch +Wifi scanning=무선스캔 +Power option detail=전원옵션세부정보 +Screen dimming=화면이어두워진다 +Screen OFF=화면닫기 +Power OFF=전원닫기 +Power saving=에너지절약 +Balanced=밸런싱 +Server=서버 +Performance=성능 +Confirm Power OFF?=종료를확인하시겠습니까? +Reboot=재개 +Shutdown=폐쇄하다 +my favourites=내즐겨찾기 diff --git a/sys.py/langs/04_繁体中文.ini b/sys.py/langs/04_繁体中文.ini index e69de29..0a01c8c 100644 --- a/sys.py/langs/04_繁体中文.ini +++ b/sys.py/langs/04_繁体中文.ini @@ -0,0 +1,105 @@ +[Langs] +Settings=設置 +Retro Games=經典遊戲 +Music Player=音樂播放器 +TinyCloud=彩雲 +PowerOFF=關機 +Reload UI=重載菜單 +freeDM=freeDM +CaveStory=洞窟物語 +Launching=正在啟動... +Nav=導航 +Scan=掃描 +Back=返回 +Enter=進入 +Remove=刪除 +Run=運行 +AddToPlayList=添加到播放列表 +Add to Playlist=添加到播放列表 +DownloadConfirm=下載確認 +MyFavGames=加星遊戲列表 +Deleting=刪除中... +AddFav=加星 +Del=刪 +Please upload data over Wi-Fi=請通過無線Wifi上傳數據 +ConfirmDeleteQ=確認刪除? +AlreadyExisted=已存在 +Cancel=取消 +Yes=是 +ConfirmQ=確認? +Disconnecting=斷開連接... +ConfirmUpdateToFQ=確認升級至 %%s ? +UpdateToFQ=更新至 %%s ? +SetupGameEngineAutoQ=你希望自動安裝遊戲引擎部件嗎? +Downloading=下載中... +BATOver5Pct=電量必須多余5%% +DeleteConfirm=刪除確認 +FavouriteGames=偏好遊戲 +ConfirmForgetQ=確認忽略? +ConfirmForget=確認忽略 +Disconnect=斷開 +ConfirmDisconnectQ=確認斷開? +Confirm Disconnect=確認斷開 +Forget=忽略 +Forgeting=忽略中... +Info=屬性 +TryConnect=試連接 +BluetoothInfo=藍牙屬性 +Connecting=連接中 +BluetoothScanning=藍牙搜索中... +Scanning=搜索中.. +ShutDownConnecting=斷開連接... +Select=選擇 +Detail=詳細 +Applying=設置中... +DownloadFailed=下載失敗 +LauncherIsUpToDate=Launcher已是最新 +CheckWifiConnection=請檢查 Wi-Fi 連接 +TurningOn=打開 +TurningOff=關閉 +Invalid=非法 +CheckingUpdate=檢查更新... +CheckingUpdateFailed=檢查更新失敗 +Update=更新 +Toggle=切換 +Rescue=拯救 +Airplane Mode=飛行模式 +minutes=分 +seconds=秒 +second=秒 +minute=分 +Never=永不 +Power Options=電源選項 +Languages=語言 +Notify=提醒 +Setting List=設置列表 +Wi-Fi=Wi-Fi +Bluetooth=藍牙 +Sound Volume=音量 +Sound volume=音量 +Brightness=亮度 +BackLight Brightness=背光亮度 +Storage=存儲空間 +Timezone=時區 +Timezone Selection=時區選擇 +Notification=提醒控件 +About=關於GameShell +Power off=關機 +Buttons Layout=按紐布局 +UpdateRetroArch=更新RetroArch +Wifi scanning=WiFi掃描中 +Power option detail=電源選項 +Screen dimming=屏幕變暗 +Screen OFF=關閉屏幕 +Power OFF=關機 +Power saving=節能 +Balanced=平衡 +Server=服務器 +Performance=性能 +Confirm Power OFF?=確認關機? +Reboot=重啟 +Shutdown=關閉 +Play List=播放列表 +Music Library=樂庫 +Play/Pause=播放/暫停 +my favourites=我的收藏夾 From a4ad0de109b3d9e7068b2b3229f4d07472c83136 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 17:30:48 +0800 Subject: [PATCH 13/18] translate fix --- sys.py/langs/01_日本語.ini | 2 +- sys.py/langs/02_한국어.ini | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys.py/langs/01_日本語.ini b/sys.py/langs/01_日本語.ini index 6d909c9..b26aab6 100644 --- a/sys.py/langs/01_日本語.ini +++ b/sys.py/langs/01_日本語.ini @@ -2,7 +2,7 @@ Settings=設定 Retro Games=レトロ ゲーム Music Player=音楽プレーヤー -TinyCloud=TinyCloud +TinyCloud=彩雲 PowerOFF=電源を切る Reload UI=リロードUI freeDM=freeDM diff --git a/sys.py/langs/02_한국어.ini b/sys.py/langs/02_한국어.ini index a327b36..1c4cc4d 100644 --- a/sys.py/langs/02_한국어.ini +++ b/sys.py/langs/02_한국어.ini @@ -1,12 +1,12 @@ [Langs] Settings=설치 -Retro Games=클래식 게임 -Music Player=음악 플레이어 -TinyCloud=채색 구름 +Retro Games=클래식게임 +Music Player=음악플레이어 +TinyCloud=채색구름 PowerOFF=전원닫기 Reload UI=재개UI freeDM=freeDM -CaveStory=동굴 속어 +CaveStory=동굴속어 RetroArch=RetroArch Launching=시작중 Nav=방향 From 793e0cae3a64e596a9a1c9af7c0acf71e0ba5d17 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 17:42:25 +0800 Subject: [PATCH 14/18] translation fixs --- sys.py/langs/01_日本語.ini | 3 +++ sys.py/langs/02_한국어.ini | 3 +++ 2 files changed, 6 insertions(+) diff --git a/sys.py/langs/01_日本語.ini b/sys.py/langs/01_日本語.ini index b26aab6..e725898 100644 --- a/sys.py/langs/01_日本語.ini +++ b/sys.py/langs/01_日本語.ini @@ -101,4 +101,7 @@ Performance=性能 Confirm Power OFF?=電源を確認しますか? Reboot=再起動 Shutdown=操業停止 +Play List=プレイリスト +Music Library=音楽庫 +Play/Pause=再生/停止 my favourites=お気に入り diff --git a/sys.py/langs/02_한국어.ini b/sys.py/langs/02_한국어.ini index 1c4cc4d..ee2cd22 100644 --- a/sys.py/langs/02_한국어.ini +++ b/sys.py/langs/02_한국어.ini @@ -101,4 +101,7 @@ Performance=성능 Confirm Power OFF?=종료를확인하시겠습니까? Reboot=재개 Shutdown=폐쇄하다 +Play List=음악목록 +Music Library=음악라이브러리 +Play/Pause=재생/정지 my favourites=내즐겨찾기 From eeb0a616c30e38c81bbd01e25fb2177ec9f964da Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 18:00:07 +0800 Subject: [PATCH 15/18] bluetooth OnloadCb,RefreshDevices will block n secs if there is no bluez daemon --- Menu/GameShell/10_Settings/Bluetooth/__init__.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Menu/GameShell/10_Settings/Bluetooth/__init__.py b/Menu/GameShell/10_Settings/Bluetooth/__init__.py index 8d40891..929ad69 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/__init__.py +++ b/Menu/GameShell/10_Settings/Bluetooth/__init__.py @@ -544,12 +544,16 @@ class BluetoothPage(Page): def RefreshDevices(self): global devices devices = {} - proxy_obj = bus.get_object("org.bluez", "/") - manager = dbus.Interface(proxy_obj,"org.freedesktop.DBus.ObjectManager") - objects = manager.GetManagedObjects() - for path, interfaces in objects.iteritems(): - if "org.bluez.Device1" in interfaces: - devices[path] = interfaces["org.bluez.Device1"] ## like /org/bluez/hci0/dev_xx_xx_xx_yy_yy_yy + try: + proxy_obj = bus.get_object("org.bluez", "/") + manager = dbus.Interface(proxy_obj,"org.freedesktop.DBus.ObjectManager") + objects = manager.GetManagedObjects() + for path, interfaces in objects.iteritems(): + if "org.bluez.Device1" in interfaces: + devices[path] = interfaces["org.bluez.Device1"] ## like /org/bluez/hci0/dev_xx_xx_xx_yy_yy_yy + except Exception,e: + print(str(e)) + devices={} self._Devices = devices From c61f8187728b8c30c11c365fce8033ed4da3d731 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 18:03:02 +0800 Subject: [PATCH 16/18] ... --- sys.py/langs/00_English.ini | 2 +- sys.py/langs/04_繁体中文.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys.py/langs/00_English.ini b/sys.py/langs/00_English.ini index 69689eb..40f073d 100644 --- a/sys.py/langs/00_English.ini +++ b/sys.py/langs/00_English.ini @@ -46,7 +46,7 @@ Forget=Forget Forgeting=Forgeting... Info=Info TryConnect=TryConnect -BluetoothInfo=Bluetooth info +Bluetooth Info=Bluetooth info Connecting=Connecting BluetoothScanning=Bluetooth scanning... Scanning=Scanning.. diff --git a/sys.py/langs/04_繁体中文.ini b/sys.py/langs/04_繁体中文.ini index 0a01c8c..c310239 100644 --- a/sys.py/langs/04_繁体中文.ini +++ b/sys.py/langs/04_繁体中文.ini @@ -44,7 +44,7 @@ Forget=忽略 Forgeting=忽略中... Info=屬性 TryConnect=試連接 -BluetoothInfo=藍牙屬性 +Bluetooth Info=藍牙屬性 Connecting=連接中 BluetoothScanning=藍牙搜索中... Scanning=搜索中.. From 572984f2948b793e9df245dfb33fa0a552209bee Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 18:03:20 +0800 Subject: [PATCH 17/18] ... --- sys.py/langs/01_日本語.ini | 2 +- sys.py/langs/02_한국어.ini | 2 +- sys.py/langs/03_简体中文.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys.py/langs/01_日本語.ini b/sys.py/langs/01_日本語.ini index e725898..b54f242 100644 --- a/sys.py/langs/01_日本語.ini +++ b/sys.py/langs/01_日本語.ini @@ -46,7 +46,7 @@ Forget=無視 Forgeting=見落としている Info=情報 TryConnect=接続を試みる -BluetoothInfo=青歯設備情報 +Bluetooth Info=青歯設備情報 Connecting=接続中 BluetoothScanning=青い歯のスキャン中 Scanning=スキャン中 diff --git a/sys.py/langs/02_한국어.ini b/sys.py/langs/02_한국어.ini index ee2cd22..383083f 100644 --- a/sys.py/langs/02_한국어.ini +++ b/sys.py/langs/02_한국어.ini @@ -46,7 +46,7 @@ Forget=무시 Forgeting=무시중 Info=정보 TryConnect=연결을시도한다 -BluetoothInfo=블루투스정보 +Bluetooth Info=블루투스정보 Connecting=연결중 BluetoothScanning=블루투스스캔 Scanning=스캔중 diff --git a/sys.py/langs/03_简体中文.ini b/sys.py/langs/03_简体中文.ini index 31b5abe..012c13d 100644 --- a/sys.py/langs/03_简体中文.ini +++ b/sys.py/langs/03_简体中文.ini @@ -44,7 +44,7 @@ Forget=忽略 Forgeting=忽略中... Info=属性 TryConnect=试连接 -BluetoothInfo=蓝牙属性 +Bluetooth Info=蓝牙属性 Connecting=连接中 BluetoothScanning=蓝牙搜索中... Scanning=搜索中.. From 578305dfb18c2dd991e392a12f299d5c07725ec3 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 2 Dec 2018 18:04:18 +0800 Subject: [PATCH 18/18] ... --- sys.py/UI/title_bar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys.py/UI/title_bar.py b/sys.py/UI/title_bar.py index 324c265..eec4ff6 100644 --- a/sys.py/UI/title_bar.py +++ b/sys.py/UI/title_bar.py @@ -183,7 +183,7 @@ class TitleBar: def CheckBluetooth(self): out = commands.getstatusoutput("hcitool dev | grep hci0 |cut -f3") if len(out[1]) < 17: - print("no bluetooth", out) + print("CheckBluetooth:no bluetooth", out) self._Icons["bluetooth"]._IconIndex = 2 return else: