mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-14 15:02:51 +03:00
use constant for default locale
This commit is contained in:
parent
d5a1439457
commit
c2bc52dd85
3 changed files with 21 additions and 18 deletions
|
@ -77,6 +77,9 @@ from . import apksigcopier, common
|
||||||
# The path to this fdroidserver distribution
|
# The path to this fdroidserver distribution
|
||||||
FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))
|
FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))
|
||||||
|
|
||||||
|
# There needs to be a default, and this is the most common for software.
|
||||||
|
DEFAULT_LOCALE = 'en-US'
|
||||||
|
|
||||||
# this is the build-tools version, aapt has a separate version that
|
# this is the build-tools version, aapt has a separate version that
|
||||||
# has to be manually set in test_aapt_version()
|
# has to be manually set in test_aapt_version()
|
||||||
MINIMUM_AAPT_BUILD_TOOLS_VERSION = '26.0.0'
|
MINIMUM_AAPT_BUILD_TOOLS_VERSION = '26.0.0'
|
||||||
|
@ -507,7 +510,7 @@ def load_localized_config(name, repodir):
|
||||||
for f in Path().glob("config/**/{name}.yml".format(name=name)):
|
for f in Path().glob("config/**/{name}.yml".format(name=name)):
|
||||||
locale = f.parts[1]
|
locale = f.parts[1]
|
||||||
if len(f.parts) == 2:
|
if len(f.parts) == 2:
|
||||||
locale = "en-US"
|
locale = DEFAULT_LOCALE
|
||||||
with open(f, encoding="utf-8") as fp:
|
with open(f, encoding="utf-8") as fp:
|
||||||
elem = yaml.safe_load(fp)
|
elem = yaml.safe_load(fp)
|
||||||
for afname, field_dict in elem.items():
|
for afname, field_dict in elem.items():
|
||||||
|
@ -3912,7 +3915,7 @@ def get_app_display_name(app):
|
||||||
if app.get('Name'):
|
if app.get('Name'):
|
||||||
return app['Name']
|
return app['Name']
|
||||||
if app.get('localized'):
|
if app.get('localized'):
|
||||||
localized = app['localized'].get('en-US')
|
localized = app['localized'].get(DEFAULT_LOCALE)
|
||||||
if not localized:
|
if not localized:
|
||||||
for v in app['localized'].values():
|
for v in app['localized'].values():
|
||||||
localized = v
|
localized = v
|
||||||
|
|
|
@ -42,7 +42,7 @@ from . import common
|
||||||
from . import metadata
|
from . import metadata
|
||||||
from . import net
|
from . import net
|
||||||
from . import signindex
|
from . import signindex
|
||||||
from fdroidserver.common import FDroidPopen, FDroidPopenBytes, load_stats_fdroid_signing_key_fingerprints
|
from fdroidserver.common import DEFAULT_LOCALE, FDroidPopen, FDroidPopenBytes, load_stats_fdroid_signing_key_fingerprints
|
||||||
from fdroidserver.exception import FDroidException, VerificationException
|
from fdroidserver.exception import FDroidException, VerificationException
|
||||||
|
|
||||||
|
|
||||||
|
@ -518,14 +518,14 @@ def package_metadata(app, repodir):
|
||||||
):
|
):
|
||||||
element_new = element[:1].lower() + element[1:]
|
element_new = element[:1].lower() + element[1:]
|
||||||
if element in app and app[element]:
|
if element in app and app[element]:
|
||||||
meta[element_new] = {"en-US": convert_datetime(app[element])}
|
meta[element_new] = {DEFAULT_LOCALE: convert_datetime(app[element])}
|
||||||
elif "localized" in app:
|
elif "localized" in app:
|
||||||
localized = {k: v[element_new] for k, v in app["localized"].items() if element_new in v}
|
localized = {k: v[element_new] for k, v in app["localized"].items() if element_new in v}
|
||||||
if localized:
|
if localized:
|
||||||
meta[element_new] = localized
|
meta[element_new] = localized
|
||||||
|
|
||||||
if "name" not in meta and app["AutoName"]:
|
if "name" not in meta and app["AutoName"]:
|
||||||
meta["name"] = {"en-US": app["AutoName"]}
|
meta["name"] = {DEFAULT_LOCALE: app["AutoName"]}
|
||||||
|
|
||||||
# fdroidserver/metadata.py App default
|
# fdroidserver/metadata.py App default
|
||||||
if meta["license"] == "Unknown":
|
if meta["license"] == "Unknown":
|
||||||
|
@ -536,9 +536,8 @@ def package_metadata(app, repodir):
|
||||||
|
|
||||||
# TODO handle different resolutions
|
# TODO handle different resolutions
|
||||||
if app.get("icon"):
|
if app.get("icon"):
|
||||||
meta["icon"] = {
|
icon_path = os.path.join(repodir, "icons", app["icon"])
|
||||||
"en-US": common.file_entry(os.path.join(repodir, "icons", app["icon"]))
|
meta["icon"] = {DEFAULT_LOCALE: common.file_entry(icon_path)}
|
||||||
}
|
|
||||||
|
|
||||||
if "iconv2" in app:
|
if "iconv2" in app:
|
||||||
meta["icon"] = app["iconv2"]
|
meta["icon"] = app["iconv2"]
|
||||||
|
@ -654,10 +653,10 @@ def convert_version(version, app, repodir):
|
||||||
def v2_repo(repodict, repodir, archive):
|
def v2_repo(repodict, repodir, archive):
|
||||||
repo = {}
|
repo = {}
|
||||||
|
|
||||||
repo["name"] = {"en-US": repodict["name"]}
|
repo["name"] = {DEFAULT_LOCALE: repodict["name"]}
|
||||||
repo["description"] = {"en-US": repodict["description"]}
|
repo["description"] = {DEFAULT_LOCALE: repodict["description"]}
|
||||||
repo["icon"] = {
|
repo["icon"] = {
|
||||||
"en-US": common.file_entry("{}/icons/{}".format(repodir, repodict["icon"]))
|
DEFAULT_LOCALE: common.file_entry("%s/icons/%s" % (repodir, repodict["icon"]))
|
||||||
}
|
}
|
||||||
|
|
||||||
config = common.load_localized_config("config", repodir)
|
config = common.load_localized_config("config", repodir)
|
||||||
|
@ -1022,7 +1021,7 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, fdroid_signing_key_fing
|
||||||
lkey = key[:1].lower() + key[1:]
|
lkey = key[:1].lower() + key[1:]
|
||||||
localized = app.get('localized')
|
localized = app.get('localized')
|
||||||
if not value and localized:
|
if not value and localized:
|
||||||
for lang in ['en-US'] + [x for x in localized.keys()]:
|
for lang in [DEFAULT_LOCALE] + [x for x in localized.keys()]:
|
||||||
if not lang.startswith('en'):
|
if not lang.startswith('en'):
|
||||||
continue
|
continue
|
||||||
if lang in localized:
|
if lang in localized:
|
||||||
|
@ -1266,7 +1265,7 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, fdroid_signing_key_fing
|
||||||
namefield = common.config['current_version_name_source']
|
namefield = common.config['current_version_name_source']
|
||||||
name = app.get(namefield)
|
name = app.get(namefield)
|
||||||
if not name and namefield == 'Name':
|
if not name and namefield == 'Name':
|
||||||
name = app.get('localized', {}).get('en-US', {}).get('name')
|
name = app.get('localized', {}).get(DEFAULT_LOCALE, {}).get('name')
|
||||||
if not name:
|
if not name:
|
||||||
name = app.id
|
name = app.id
|
||||||
sanitized_name = re.sub(b'''[ '"&%?+=/]''', b'', str(name).encode('utf-8'))
|
sanitized_name = re.sub(b'''[ '"&%?+=/]''', b'', str(name).encode('utf-8'))
|
||||||
|
|
|
@ -51,6 +51,7 @@ from . import _
|
||||||
from . import common
|
from . import common
|
||||||
from . import index
|
from . import index
|
||||||
from . import metadata
|
from . import metadata
|
||||||
|
from .common import DEFAULT_LOCALE
|
||||||
from .exception import BuildException, FDroidException, VerificationException
|
from .exception import BuildException, FDroidException, VerificationException
|
||||||
|
|
||||||
from PIL import Image, PngImagePlugin
|
from PIL import Image, PngImagePlugin
|
||||||
|
@ -2034,7 +2035,7 @@ def insert_missing_app_names_from_apks(apps, apks):
|
||||||
|
|
||||||
The name from the APK is set as the default name for the app if
|
The name from the APK is set as the default name for the app if
|
||||||
there is no other default set, e.g. app['Name'] or
|
there is no other default set, e.g. app['Name'] or
|
||||||
app['localized']['en-US']['name']. The en-US locale is defined in
|
app['localized'][DEFAULT_LOCALE]['name']. The default is defined in
|
||||||
the F-Droid ecosystem as the locale of last resort, as in the one
|
the F-Droid ecosystem as the locale of last resort, as in the one
|
||||||
that should always be present. en-US is used since it is the
|
that should always be present. en-US is used since it is the
|
||||||
locale of the source strings.
|
locale of the source strings.
|
||||||
|
@ -2050,7 +2051,7 @@ def insert_missing_app_names_from_apks(apps, apks):
|
||||||
for appid, app in apps.items():
|
for appid, app in apps.items():
|
||||||
if app.get('Name') is not None:
|
if app.get('Name') is not None:
|
||||||
continue
|
continue
|
||||||
if app.get('localized', {}).get('en-US', {}).get('name') is not None:
|
if app.get('localized', {}).get(DEFAULT_LOCALE, {}).get('name') is not None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
bestver = UNSET_VERSION_CODE
|
bestver = UNSET_VERSION_CODE
|
||||||
|
@ -2063,9 +2064,9 @@ def insert_missing_app_names_from_apks(apps, apks):
|
||||||
if bestver != UNSET_VERSION_CODE:
|
if bestver != UNSET_VERSION_CODE:
|
||||||
if 'localized' not in app:
|
if 'localized' not in app:
|
||||||
app['localized'] = {}
|
app['localized'] = {}
|
||||||
if 'en-US' not in app['localized']:
|
if DEFAULT_LOCALE not in app['localized']:
|
||||||
app['localized']['en-US'] = {}
|
app['localized'][DEFAULT_LOCALE] = {}
|
||||||
app['localized']['en-US']['name'] = bestapk.get('name')
|
app['localized'][DEFAULT_LOCALE]['name'] = bestapk.get('name')
|
||||||
|
|
||||||
|
|
||||||
def get_apps_with_packages(apps, apks):
|
def get_apps_with_packages(apps, apks):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue