mirror of
https://github.com/morpheus65535/bazarr
synced 2025-02-13 01:35:11 +00:00
87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
# coding=utf-8
|
|
|
|
import pycountry
|
|
|
|
from subzero.language import Language
|
|
from database import database
|
|
|
|
|
|
def load_language_in_db():
|
|
# Get languages list in langs tuple
|
|
langs = [[lang.alpha_3, lang.alpha_2, lang.name]
|
|
for lang in pycountry.languages
|
|
if hasattr(lang, 'alpha_2')]
|
|
|
|
# Insert languages in database table
|
|
database.execute("INSERT OR IGNORE INTO table_settings_languages (code3, code2, name) VALUES (?, ?, ?)",
|
|
langs, execute_many=True)
|
|
|
|
database.execute("INSERT OR IGNORE INTO table_settings_languages (code3, code2, name) "
|
|
"VALUES ('pob', 'pb', 'Brazilian Portuguese')")
|
|
|
|
database.execute("INSERT OR IGNORE INTO table_settings_languages (code3, code2, name) "
|
|
"VALUES ('zht', 'zt', 'Chinese Traditional')")
|
|
|
|
langs = [[lang.bibliographic, lang.alpha_3]
|
|
for lang in pycountry.languages
|
|
if hasattr(lang, 'alpha_2') and hasattr(lang, 'bibliographic')]
|
|
|
|
# Update languages in database table
|
|
database.execute("UPDATE table_settings_languages SET code3b=? WHERE code3=?", langs, execute_many=True)
|
|
|
|
# Create languages dictionary for faster conversion than calling database
|
|
create_languages_dict()
|
|
|
|
|
|
def create_languages_dict():
|
|
global languages_dict
|
|
#replace chinese by chinese simplified
|
|
database.execute("UPDATE table_settings_languages SET name = 'Chinese Simplified' WHERE code3 = 'zho'")
|
|
|
|
languages_dict = database.execute("SELECT name, code2, code3, code3b FROM table_settings_languages")
|
|
|
|
|
|
def language_from_alpha2(lang):
|
|
return next((item["name"] for item in languages_dict if item["code2"] == lang[:2]), None)
|
|
|
|
|
|
def language_from_alpha3(lang):
|
|
return next((item["name"] for item in languages_dict if item["code3"] == lang[:3] or item["code3b"] == lang[:3]),
|
|
None)
|
|
|
|
|
|
def alpha2_from_alpha3(lang):
|
|
return next((item["code2"] for item in languages_dict if item["code3"] == lang[:3] or item["code3b"] == lang[:3]),
|
|
None)
|
|
|
|
|
|
def alpha2_from_language(lang):
|
|
return next((item["code2"] for item in languages_dict if item["name"] == lang), None)
|
|
|
|
|
|
def alpha3_from_alpha2(lang):
|
|
return next((item["code3"] for item in languages_dict if item["code2"] == lang[:2]), None)
|
|
|
|
|
|
def alpha3_from_language(lang):
|
|
return next((item["code3"] for item in languages_dict if item["name"] == lang), None)
|
|
|
|
|
|
def get_language_set():
|
|
languages = database.execute("SELECT code3 FROM table_settings_languages WHERE enabled=1")
|
|
|
|
language_set = set()
|
|
|
|
for lang in languages:
|
|
if lang['code3'] == 'pob':
|
|
language_set.add(Language('por', 'BR'))
|
|
elif lang['code3'] == 'zht':
|
|
language_set.add(Language('zho', 'TW'))
|
|
else:
|
|
language_set.add(Language(lang['code3']))
|
|
|
|
return language_set
|
|
|
|
|
|
if __name__ == '__main__':
|
|
load_language_in_db()
|