Commit ddc128ce authored by Philipp Hörist's avatar Philipp Hörist

[translations] Use pathlib

parent 08e390ab
import logging import logging
import os import os
import shutil
from glob import glob
from pathlib import Path
from gajim.common import configpaths from gajim.common import configpaths
...@@ -16,39 +19,33 @@ class PluginsTranslationsPlugin(GajimPlugin): ...@@ -16,39 +19,33 @@ class PluginsTranslationsPlugin(GajimPlugin):
'enabling this plugin.') 'enabling this plugin.')
self.config_dialog = None self.config_dialog = None
self.config_default_values = {'last_version': '0'} self.config_default_values = {'last_version': '0'}
self.locale_dir = os.path.join( self.locale_dir = Path(configpaths.get('PLUGINS_USER')) / 'locale'
configpaths.get('PLUGINS_USER'), 'locale')
def activate(self): def activate(self):
if self.config['last_version'] == self.version: if self.config['last_version'] == self.version:
return return
from glob import glob
import shutil
files = glob(self.__path__ + '/*.mo') files = glob(self.__path__ + '/*.mo')
# remove old data
self._remove_translations() self._remove_translations()
# create dirs and copy files self.locale_dir.mkdir()
locales = [ locales = [
os.path.splitext(os.path.basename(name))[0] for name in files os.path.splitext(os.path.basename(name))[0] for name in files
] ]'Installing new translations...')'Installing new translations...')
for locale in locales: for locale in locales:
dst = os.path.join(os.path.join(self.locale_dir, locale), dst = self.locale_dir / locale / 'LC_MESSAGES' / ''
'LC_MESSAGES/') dst.mkdir(parents=True)
os.makedirs(os.path.split(dst)[0]) shutil.copy2(os.path.join(self.__path__, '' % locale),
shutil.copy2(os.path.join(self.__path__, '' % locale), dst) str(dst))
self.config['last_version'] = self.version self.config['last_version'] = self.version
def _remove_translations(self): def _remove_translations(self):'Removing old translations...')'Removing old translations...')
if os.path.isdir(self.locale_dir): if self.locale_dir.exists():
import shutil shutil.rmtree(str(self.locale_dir))
def deactivate(self): def deactivate(self):
self._remove_translations() self._remove_translations()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment