mirror of
https://github.com/netinvent/npbackup.git
synced 2025-02-25 06:54:34 +08:00
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
|
try:
|
||
|
__import__("yaml")
|
||
|
yaml_available = True
|
||
|
except ImportError:
|
||
|
yaml_available = False
|
||
|
|
||
|
try:
|
||
|
__import__("json")
|
||
|
json_available = True
|
||
|
except ImportError:
|
||
|
json_available = False
|
||
|
|
||
|
# try to get existing path object
|
||
|
# in case if config is being reloaded
|
||
|
try:
|
||
|
from . import load_path
|
||
|
load_path.clear()
|
||
|
except ImportError:
|
||
|
load_path = []
|
||
|
|
||
|
settings = {
|
||
|
'filename_format': '{namespace}.{locale}.{format}',
|
||
|
'file_format': 'yml' if yaml_available else 'json' if json_available else 'py',
|
||
|
'available_locales': ['en'],
|
||
|
'load_path': load_path,
|
||
|
'locale': 'en',
|
||
|
'fallback': 'en',
|
||
|
'placeholder_delimiter': '%',
|
||
|
'on_missing_translation': None,
|
||
|
'on_missing_placeholder': None,
|
||
|
'on_missing_plural': None,
|
||
|
'encoding': 'utf-8',
|
||
|
'namespace_delimiter': '.',
|
||
|
'plural_few': 5,
|
||
|
'skip_locale_root_data': False,
|
||
|
'enable_memoization': False,
|
||
|
'argument_delimiter': '|'
|
||
|
}
|
||
|
|
||
|
def set(key, value):
|
||
|
if key not in settings:
|
||
|
raise KeyError("Invalid setting: {0}".format(key))
|
||
|
if key == 'placeholder_delimiter':
|
||
|
# hacky trick to reload formatter's configuration
|
||
|
from .translator import TranslationFormatter
|
||
|
|
||
|
TranslationFormatter.delimiter = value
|
||
|
del TranslationFormatter.pattern
|
||
|
TranslationFormatter.__init_subclass__()
|
||
|
elif key == 'load_path':
|
||
|
load_path.clear()
|
||
|
load_path.extend(value)
|
||
|
return
|
||
|
settings[key] = value
|
||
|
|
||
|
def get(key):
|
||
|
return settings[key]
|