diff --git a/daemon.py b/daemon.py index 7cfc0fc2f..0cfd5a2ca 100644 --- a/daemon.py +++ b/daemon.py @@ -3899,7 +3899,8 @@ class PubServer(BaseHTTPRequestHandler): baseDir: str, httpPrefix: str, domain: str, domainFull: str, onionDomain: str, i2pDomain: str, - debug: bool, allowLocalNetworkAccess: bool) -> None: + debug: bool, allowLocalNetworkAccess: bool, + systemLanguage: str) -> None: """Updates your user profile after editing via the Edit button on the profile screen """ @@ -4289,7 +4290,7 @@ class PubServer(BaseHTTPRequestHandler): if fields.get('themeDropdown'): self.server.themeName = fields['themeDropdown'] setTheme(baseDir, self.server.themeName, domain, - allowLocalNetworkAccess) + allowLocalNetworkAccess, systemLanguage) self.server.textModeBanner = \ getTextModeBanner(self.server.baseDir) self.server.iconsCache = {} @@ -4759,7 +4760,8 @@ class PubServer(BaseHTTPRequestHandler): if currTheme: self.server.themeName = currTheme setTheme(baseDir, currTheme, domain, - self.server.allowLocalNetworkAccess) + self.server.allowLocalNetworkAccess, + systemLanguage) self.server.textModeBanner = \ getTextModeBanner(self.server.baseDir) self.server.iconsCache = {} @@ -13543,7 +13545,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.domainFull, self.server.onionDomain, self.server.i2pDomain, self.server.debug, - self.server.allowLocalNetworkAccess) + self.server.allowLocalNetworkAccess, + self.server.systemLanguage) return if authorized and self.path.endswith('/linksdata'): diff --git a/epicyon.py b/epicyon.py index 5b5d01b8b..ea958dd75 100644 --- a/epicyon.py +++ b/epicyon.py @@ -2325,7 +2325,8 @@ if YTDomain: if '.' in YTDomain: args.YTReplacementDomain = YTDomain -if setTheme(baseDir, themeName, domain, args.allowLocalNetworkAccess): +if setTheme(baseDir, themeName, domain, + args.allowLocalNetworkAccess, args.language): print('Theme set to ' + themeName) if __name__ == "__main__": diff --git a/theme.py b/theme.py index 9a4800380..80de1c30d 100644 --- a/theme.py +++ b/theme.py @@ -50,6 +50,24 @@ def getThemesList(baseDir: str) -> []: return themes +def _copyThemeHelpFiles(baseDir: str, themeName: str, + systemLanguage: str) -> None: + """Copies any theme specific help files from the welcome subdirectory + """ + themeDir = baseDir + '/theme/' + themeName + '/welcome' + if not os.path.isdir(themeDir): + themeDir = baseDir + '/defaultwelcome' + for subdir, dirs, files in os.walk(themeDir): + for helpMarkdownFile in files: + if helpMarkdownFile.endswith('_' + systemLanguage + '.md'): + destHelpMarkdownFile = \ + helpMarkdownFile.replace('_' + systemLanguage + '.md', + '.md') + copyfile(themeDir + '/' + helpMarkdownFile, + baseDir + '/accounts/' + destHelpMarkdownFile) + break + + def _setThemeInConfig(baseDir: str, name: str) -> bool: """Sets the theme with the given name within config.json """ @@ -642,7 +660,7 @@ def _setClearCacheFlag(baseDir: str) -> None: def setTheme(baseDir: str, name: str, domain: str, - allowLocalNetworkAccess: bool) -> bool: + allowLocalNetworkAccess: bool, systemLanguage: str) -> bool: """Sets the theme with the given name as the current theme """ result = False @@ -695,6 +713,7 @@ def setTheme(baseDir: str, name: str, domain: str, else: disableGrayscale(baseDir) + _copyThemeHelpFiles(baseDir, name, systemLanguage) _setThemeInConfig(baseDir, name) _setClearCacheFlag(baseDir) return result