2018-10-31 19:34:40 +00:00
|
|
|
# coding=utf-8
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-12-15 00:36:28 +00:00
|
|
|
import os
|
2018-10-04 18:16:49 +00:00
|
|
|
import pycountry
|
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
from get_args import args
|
2019-02-27 21:12:29 +00:00
|
|
|
from subzero.language import Language
|
2019-10-22 02:13:37 +00:00
|
|
|
from database import database
|
2018-10-31 19:34:40 +00:00
|
|
|
|
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def load_language_in_db():
|
|
|
|
# Get languages list in langs tuple
|
2019-08-11 17:06:36 +00:00
|
|
|
langs = [{'code3': lang.alpha_3, 'code2': lang.alpha_2, 'name': lang.name}
|
2018-10-31 19:34:40 +00:00
|
|
|
for lang in pycountry.languages
|
|
|
|
if hasattr(lang, 'alpha_2')]
|
2019-01-15 16:25:13 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
# Insert languages in database table
|
2019-08-11 17:06:36 +00:00
|
|
|
for lang in langs:
|
2019-10-22 02:13:37 +00:00
|
|
|
database.execute("INSERT OR IGNORE INTO table_settings_languages (code3, code2, name) VALUES (?, ?, ?)", (lang,))
|
|
|
|
|
|
|
|
database.execute("INSERT OR IGNORE INTO table_settings_languages (code3, code2, name) "
|
|
|
|
"VALUES ('pob', 'pb', 'Brazilian Portuguese')")
|
2019-08-11 17:06:36 +00:00
|
|
|
|
|
|
|
langs = [{'code3b': lang.bibliographic, 'code3': lang.alpha_3}
|
2018-10-31 19:34:40 +00:00
|
|
|
for lang in pycountry.languages
|
|
|
|
if hasattr(lang, 'alpha_2') and hasattr(lang, 'bibliographic')]
|
2019-01-15 16:25:13 +00:00
|
|
|
|
2018-10-24 23:56:37 +00:00
|
|
|
# Update languages in database table
|
2019-08-11 17:06:36 +00:00
|
|
|
for lang in langs:
|
2019-10-22 02:13:37 +00:00
|
|
|
database.execute("UPDATE table_settings_languages SET code3b=? WHERE code3=?", (lang['code3b'], lang['code3']))
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def language_from_alpha2(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT name FROM table_settings_languages WHERE code2=?", (lang,))
|
|
|
|
return result[0]['name'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def language_from_alpha3(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT name FROM table_settings_languages WHERE code3=? or code3b=?", (lang, lang))
|
|
|
|
return result[0]['name'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def alpha2_from_alpha3(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT code2 FROM table_settings_languages WHERE code3=? or code3b=?", (lang, lang))
|
|
|
|
return result[0]['code2'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def alpha2_from_language(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT code2 FROM table_settings_languages WHERE name=?", (lang,))
|
|
|
|
return result[0]['code2'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def alpha3_from_alpha2(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT code3 FROM table_settings_languages WHERE code2=?", (lang,))
|
|
|
|
return result[0]['code3'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
def alpha3_from_language(lang):
|
2019-10-22 02:13:37 +00:00
|
|
|
result = database.execute("SELECT code3 FROM table_settings_languages WHERE name=?", (lang,))
|
|
|
|
return result[0]['code3'] or None
|
2018-10-04 18:16:49 +00:00
|
|
|
|
2018-10-31 19:34:40 +00:00
|
|
|
|
2019-02-28 02:55:45 +00:00
|
|
|
def get_language_set():
|
2019-10-22 02:13:37 +00:00
|
|
|
languages = database.execute("SELECT code3 FROM table_settings_languages WHERE enabled=1")
|
2019-08-11 17:06:36 +00:00
|
|
|
|
2019-02-27 21:12:29 +00:00
|
|
|
language_set = set()
|
2019-06-11 18:45:48 +00:00
|
|
|
|
2019-02-28 02:55:45 +00:00
|
|
|
for lang in languages:
|
2019-10-22 02:13:37 +00:00
|
|
|
if lang['code3'] == 'pob':
|
2019-02-27 21:12:29 +00:00
|
|
|
language_set.add(Language('por', 'BR'))
|
|
|
|
else:
|
2019-10-22 02:13:37 +00:00
|
|
|
language_set.add(Language(lang['code3']))
|
2019-06-11 18:45:48 +00:00
|
|
|
|
2019-02-27 21:12:29 +00:00
|
|
|
return language_set
|
2019-02-27 21:07:20 +00:00
|
|
|
|
|
|
|
|
2018-10-04 18:16:49 +00:00
|
|
|
if __name__ == '__main__':
|
2018-10-17 00:20:32 +00:00
|
|
|
load_language_in_db()
|