Attualmente sono in un dilemma. Sto pensando di scaricare un file JSON da un repository GitHub per sostituire i file locali. I file locali sono memorizzati in una cartella denominata lang
, che viene archiviata nella cartella del progetto. Il repository è memorizzato su GitHub ed è accessibile tramite un URL.
La soluzione GitHub, a mio parere, andrebbe bene in modo che potessi spingere gli aggiornamenti automatici (i nostri clienti vogliono stringhe) a progetti locali. Verrà scaricato anche solo il linguaggio richiesto e verrà scaricato ogni 30 minuti, all'avvio e tramite una funzione personalizzata. Inoltre, potrei inserire un codice in una sostituzione manuale in modo da poter fornire anche i propri. Ecco il codice per la soluzione GitHub:
def get_jsonparsed_data(url):
response = urllib.request.urlopen(url)
data = response.read().decode("utf-8")
return json.loads(data)
if MESSAGE_LANGUAGE in get_jsonparsed_data("https://raw.githubusercontent.com/user/repo/master/languages.json")['languages']:
url = ("https://raw.githubusercontent.com/user/repo/master/" + MESSAGE_LANGUAGE + ".json")
else:
url = ("https://raw.githubusercontent.com/user/repo/master/lang.json")
lang = get_jsonparsed_data(url)
D'altra parte, la memorizzazione locale renderà più facile la modifica mentre più difficile da aggiornare.
Ecco il codice anche per questo:
if os.path.isfile('./lang/' + MESSAGE_LANGUAGE + '.json'):
with open('lang/' + MESSAGE_LANGUAGE + '.json') as data_file:
lang = json.load(data_file)
else:
with open('lang/en.json') as data_file:
lang = json.load(data_file)
Quale sarebbe meglio usare e perché?