From: Hans-Christoph Steiner Date: Wed, 22 Nov 2017 22:27:07 +0000 (+0100) Subject: nightly: new command to setup nightly builds in CI systems X-Git-Tag: 0.9~12^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f670634450bc07c6ab2e2afbdf7dc1548929aef7;p=fdroidserver.git nightly: new command to setup nightly builds in CI systems This lets people using CI systems easily setup a nightly build repo hosted for free in github or gitlab. https://github.com/zom/Zom-Android/pull/355 https://gitlab.com/fdroid/fdroidclient/merge_requests/594 environment variables: * https://docs.gitlab.com/ce/ci/variables/README.html * https://docs.travis-ci.com/user/environment-variables * https://circleci.com/docs/1.0/environment-variables --- diff --git a/completion/bash-completion b/completion/bash-completion index dd1e5b29..8bdd333f 100644 --- a/completion/bash-completion +++ b/completion/bash-completion @@ -264,6 +264,12 @@ __complete_btlog() { __complete_options } +__complete_nightly() { + opts="-v -q" + lopts="--show-secret-var" + __complete_options +} + __complete_stats() { opts="-v -q -d" lopts="--verbose --quiet --download" @@ -310,6 +316,7 @@ import \ init \ install \ lint \ +nightly \ publish \ readmeta \ rewritemeta \ diff --git a/fdroid b/fdroid index 74aa0400..a07a4ecf 100755 --- a/fdroid +++ b/fdroid @@ -47,6 +47,7 @@ commands = OrderedDict([ ("signindex", _("Sign indexes created using update --nosign")), ("btlog", _("Update the binary transparency log for a URL")), ("signatures", _("Extract signatures from APKs")), + ("nightly", _("Set up an app build for a nightly build repo")), ]) diff --git a/fdroidserver/nightly.py b/fdroidserver/nightly.py new file mode 100644 index 00000000..9d2d13e4 --- /dev/null +++ b/fdroidserver/nightly.py @@ -0,0 +1,288 @@ +#!/usr/bin/env python3 +# +# nightly.py - part of the FDroid server tools +# Copyright (C) 2017 Hans-Christoph Steiner +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import base64 +import datetime +import git +import hashlib +import logging +import os +import paramiko +import platform +import shutil +import subprocess +import sys +import tempfile +from urllib.parse import urlparse +from argparse import ArgumentParser + +from . import _ +from . import common + + +# hard coded defaults for Android ~/.android/debug.keystore files +# https://developers.google.com/android/guides/client-auth +KEYSTORE_FILE = os.path.join(os.getenv('HOME'), '.android', 'debug.keystore') +PASSWORD = 'android' +KEY_ALIAS = 'androiddebugkey' +DISTINGUISHED_NAME = 'CN=Android Debug,O=Android,C=US' + +# standard suffix for naming fdroid git repos +NIGHTLY = '-nightly' + + +def _ssh_key_from_debug_keystore(): + tmp_dir = tempfile.mkdtemp(prefix='.') + privkey = os.path.join(tmp_dir, '.privkey') + key_pem = os.path.join(tmp_dir, '.key.pem') + p12 = os.path.join(tmp_dir, '.keystore.p12') + subprocess.check_call([common.config['keytool'], '-importkeystore', + '-srckeystore', KEYSTORE_FILE, '-srcalias', KEY_ALIAS, + '-srcstorepass', PASSWORD, '-srckeypass', PASSWORD, + '-destkeystore', p12, '-destalias', KEY_ALIAS, + '-deststorepass', PASSWORD, '-destkeypass', PASSWORD, + '-deststoretype', 'PKCS12']) + subprocess.check_call(['openssl', 'pkcs12', '-in', p12, '-out', key_pem, + '-passin', 'pass:' + PASSWORD, '-passout', 'pass:' + PASSWORD]) + subprocess.check_call(['openssl', 'rsa', '-in', key_pem, '-out', privkey, + '-passin', 'pass:' + PASSWORD]) + os.remove(key_pem) + os.remove(p12) + os.chmod(privkey, 0o600) # os.umask() should cover this, but just in case + + rsakey = paramiko.RSAKey.from_private_key_file(privkey) + fingerprint = base64.b64encode(hashlib.sha256(rsakey.asbytes()).digest()).decode('ascii').rstrip('=') + ssh_private_key_file = os.path.join(tmp_dir, 'debug_keystore_' + fingerprint + '_id_rsa') + os.rename(privkey, ssh_private_key_file) + + pub = rsakey.get_name() + ' ' + rsakey.get_base64() + ' ' + ssh_private_key_file + with open(ssh_private_key_file + '.pub', 'w') as fp: + fp.write(pub) + + logging.info(_('\nSSH Public Key to be used as Deploy Key:') + '\n' + pub) + + return ssh_private_key_file + + +def main(): + + parser = ArgumentParser(usage="%(prog)s") + common.setup_global_opts(parser) + parser.add_argument("--show-secret-var", action="store_true", default=False, + help=_("Print the secret variable to the terminal for easy copy/paste")) + parser.add_argument("--file", default='app/build/outputs/apk/*.apk', + help=_('The the file to be included in the repo (path or glob)')) + parser.add_argument("--no-checksum", action="store_true", default=False, + help=_("Don't use rsync checksums")) + # TODO add --with-btlog + options = parser.parse_args() + common.read_config(None) + + # force a tighter umask since this writes private key material + umask = os.umask(0o077) + + if 'CI' in os.environ: + v = os.getenv('DEBUG_KEYSTORE') + debug_keystore = None + if v: + debug_keystore = base64.b64decode(v) + if not debug_keystore: + logging.error(_('DEBUG_KEYSTORE is not set or the value is incomplete')) + sys.exit(1) + os.makedirs(os.path.dirname(KEYSTORE_FILE), exist_ok=True) + if os.path.exists(KEYSTORE_FILE): + logging.warning(_('overwriting existing {path}').format(path=KEYSTORE_FILE)) + with open(KEYSTORE_FILE, 'wb') as fp: + fp.write(debug_keystore) + + repo_basedir = os.path.join(os.getcwd(), 'fdroid') + repodir = os.path.join(repo_basedir, 'repo') + cibase = os.getcwd() + os.makedirs(repodir, exist_ok=True) + + if 'CI_PROJECT_PATH' in os.environ and 'CI_PROJECT_URL' in os.environ: + # we are in GitLab CI + repo_git_base = os.getenv('CI_PROJECT_PATH') + NIGHTLY + clone_url = os.getenv('CI_PROJECT_URL') + NIGHTLY + repo_base = clone_url + '/raw/master/fdroid' + servergitmirror = 'git@' + urlparse(clone_url).netloc + ':' + repo_git_base + deploy_key_url = clone_url + '/settings/repository' + git_user_name = os.getenv('GITLAB_USER_NAME') + git_user_email = os.getenv('GITLAB_USER_EMAIL') + elif 'TRAVIS_REPO_SLUG' in os.environ: + # we are in Travis CI + repo_git_base = os.getenv('TRAVIS_REPO_SLUG') + NIGHTLY + clone_url = 'https://github.com/' + repo_git_base + _branch = os.getenv('TRAVIS_BRANCH') + repo_base = 'https://raw.githubusercontent.com/' + repo_git_base + '/' + _branch + '/fdroid' + servergitmirror = 'git@github.com:' + repo_git_base + deploy_key_url = ('https://github.com/' + repo_git_base + '/settings/keys' + + '\nhttps://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys') + git_user_name = repo_git_base + git_user_email = os.getenv('USER') + '@' + platform.node() + elif 'CIRCLE_REPOSITORY_URL' in os.environ \ + and 'CIRCLE_PROJECT_USERNAME' in os.environ \ + and 'CIRCLE_PROJECT_REPONAME' in os.environ: + # we are in Circle CI + repo_git_base = (os.getenv('CIRCLE_PROJECT_USERNAME') + + '/' + os.getenv('CIRCLE_PROJECT_REPONAME') + NIGHTLY) + clone_url = os.getenv('CIRCLE_REPOSITORY_URL') + NIGHTLY + repo_base = clone_url + '/raw/master/fdroid' + servergitmirror = 'git@' + urlparse(clone_url).netloc + ':' + repo_git_base + deploy_key_url = ('https://github.com/' + repo_git_base + '/settings/keys' + + '\nhttps://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys') + git_user_name = os.getenv('CIRCLE_USERNAME') + git_user_email = git_user_name + '@' + platform.node() + else: + print(_('ERROR: unsupported CI type, patches welcome!')) + sys.exit(1) + + repo_url = repo_base + '/repo' + git_mirror_path = os.path.join(repo_basedir, 'git-mirror') + git_mirror_repodir = os.path.join(git_mirror_path, 'fdroid', 'repo') + if not os.path.isdir(git_mirror_repodir): + logging.debug(_('cloning {url}').format(url=clone_url)) + try: + git.Repo.clone_from(clone_url, git_mirror_path) + except: + pass + if not os.path.isdir(git_mirror_repodir): + os.makedirs(git_mirror_repodir, mode=0o755) + + mirror_git_repo = git.Repo.init(git_mirror_path) + writer = mirror_git_repo.config_writer() + writer.set_value('user', 'name', git_user_name) + writer.set_value('user', 'email', git_user_email) + writer.release() + for remote in mirror_git_repo.remotes: + mirror_git_repo.delete_remote(remote) + + readme_path = os.path.join(git_mirror_path, 'README.md') + readme = ''' +# {repo_git_base} + +[![{repo_url}](icon.png)]({repo_url}) + +Last updated: {date}'''.format(repo_git_base=repo_git_base, + repo_url=repo_url, + date=datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S UTC')) + with open(readme_path, 'w') as fp: + fp.write(readme) + mirror_git_repo.git.add(all=True) + mirror_git_repo.index.commit("update README") + + icon_path = os.path.join(repo_basedir, 'icon.png') + try: + import qrcode + img = qrcode.make('Some data here') + with open(icon_path, 'wb') as fp: + fp.write(img) + except: + exampleicon = os.path.join(common.get_examples_dir(), 'fdroid-icon.png') + shutil.copy(exampleicon, icon_path) + mirror_git_repo.git.add(all=True) + mirror_git_repo.index.commit("update repo/website icon") + + os.chdir(repo_basedir) + common.local_rsync(options, git_mirror_repodir + '/', 'repo/') + + ssh_private_key_file = _ssh_key_from_debug_keystore() + # this is needed for GitPython to find the SSH key + ssh_dir = os.path.join(os.getenv('HOME'), '.ssh') + os.makedirs(ssh_dir, exist_ok=True) + ssh_config = os.path.join(ssh_dir, 'config') + logging.debug(_('adding IdentityFile to {path}').format(path=ssh_config)) + with open(ssh_config, 'a') as fp: + fp.write('\n\nHost *\n\tIdentityFile %s\n' % ssh_private_key_file) + + config = '' + config += "identity_file = '%s'\n" % ssh_private_key_file + config += "repo_name = '%s'\n" % repo_git_base + config += "repo_url = '%s'\n" % repo_url + config += "repo_icon = 'icon.png'\n" + config += "archive_name = '%s'\n" % (repo_git_base + ' archive') + config += "archive_url = '%s'\n" % (repo_base + '/archive') + config += "archive_icon = 'icon.png'\n" + config += "servergitmirrors = '%s'\n" % servergitmirror + config += "keystore = '%s'\n" % KEYSTORE_FILE + config += "repo_keyalias = '%s'\n" % KEY_ALIAS + config += "keystorepass = '%s'\n" % PASSWORD + config += "keypass = '%s'\n" % PASSWORD + config += "keydname = '%s'\n" % DISTINGUISHED_NAME + config += "make_current_version_link = False\n" + config += "accepted_formats = ('txt', 'yml')\n" + # TODO add update_stats = True + with open('config.py', 'w') as fp: + fp.write(config) + os.chmod('config.py', 0o600) + + for root, dirs, files in os.walk(cibase): + for d in ('fdroid', '.git', '.gradle'): + if d in dirs: + dirs.remove(d) + for f in files: + if f.endswith('-debug.apk'): + apkfilename = os.path.join(root, f) + logging.debug(_('copying {apkfilename} into {path}') + .format(apkfilename=apkfilename, path=repodir)) + destapk = os.path.join(repodir, os.path.basename(f)) + shutil.copyfile(apkfilename, destapk) + shutil.copystat(apkfilename, destapk) + os.chmod(destapk, 0o644) + + if options.verbose: + logging.debug(_('attempting bare ssh connection to test deploy key:')) + try: + subprocess.check_call(['ssh', '-Tvi', ssh_private_key_file, + '-oIdentitiesOnly=yes', '-oStrictHostKeyChecking=no', + servergitmirror.split(':')[0]]) + except: + pass + + subprocess.check_call(['fdroid', 'update', '--rename-apks', '--verbose'], cwd=repo_basedir) + try: + subprocess.check_call(['fdroid', 'server', 'update', '--verbose'], cwd=repo_basedir) + except: + logging.error(_('cannot publish update, did you set the deploy key?') + + '\n' + deploy_key_url) + sys.exit(1) + if shutil.rmtree.avoids_symlink_attacks: + shutil.rmtree(os.path.dirname(ssh_private_key_file)) + + else: + ssh_dir = os.path.join(os.getenv('HOME'), '.ssh') + os.makedirs(os.path.dirname(ssh_dir), exist_ok=True) + privkey = _ssh_key_from_debug_keystore() + ssh_private_key_file = os.path.join(ssh_dir, os.path.basename(privkey)) + os.rename(privkey, ssh_private_key_file) + os.rename(privkey + '.pub', ssh_private_key_file + '.pub') + if shutil.rmtree.avoids_symlink_attacks: + shutil.rmtree(os.path.dirname(privkey)) + + if options.show_secret_var: + with open(KEYSTORE_FILE, 'rb') as fp: + debug_keystore = base64.standard_b64encode(fp.read()).decode('ascii') + print(_('\n{path} encoded for the DEBUG_KEYSTORE secret variable:') + .format(path=KEYSTORE_FILE)) + print(debug_keystore) + + os.umask(umask) + + +if __name__ == "__main__": + main() diff --git a/locale/bo/LC_MESSAGES/fdroidserver.po b/locale/bo/LC_MESSAGES/fdroidserver.po index 54aa7d3c..94b794cd 100644 --- a/locale/bo/LC_MESSAGES/fdroidserver.po +++ b/locale/bo/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-07-17 18:35+0000\n" "Last-Translator: Lobsang \n" "Language-Team: Tibetan \n" "Language-Team: German \n" "Language-Team: Spanish \n" "Language-Team: Spanish (Argentina) \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -32,6 +45,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -117,6 +135,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -138,6 +161,14 @@ msgstr "" msgid "Add a new application from its source code" msgstr "" +#: ../fdroidserver/update.py +msgid "Add a repo signing key to an unsigned repo" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -229,6 +260,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -240,10 +278,25 @@ msgid_plural "Can't build due to {} errors while scanning" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -364,6 +417,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "" @@ -410,7 +467,7 @@ msgid "" "connection" msgstr "" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "" @@ -427,6 +484,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -436,6 +499,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -534,6 +606,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -638,6 +715,21 @@ msgstr "" msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -652,6 +744,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -662,6 +763,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -723,6 +829,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -863,6 +974,15 @@ msgstr "" msgid "Prepare drozer to run a scan" msgstr "" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -882,6 +1002,10 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +msgid "Produce human-readable XML/JSON for index files" +msgstr "" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "" @@ -1007,6 +1131,10 @@ msgid_plural "Scanner found {} problems" msgstr[0] "" msgstr[1] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py msgid "Setup an emulator, install the APK on it and perform a Drozer scan" msgstr "" @@ -1123,6 +1251,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1146,11 +1278,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "" @@ -1161,6 +1302,16 @@ msgstr "" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1177,6 +1328,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1187,6 +1347,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1279,6 +1457,11 @@ msgstr "" msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1314,6 +1497,10 @@ msgstr "" msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1328,6 +1515,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" msgstr "" @@ -1343,6 +1539,11 @@ msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1518,10 +1719,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1613,6 +1826,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/fr/LC_MESSAGES/fdroidserver.po b/locale/fr/LC_MESSAGES/fdroidserver.po index 721fb92f..0506b331 100644 --- a/locale/fr/LC_MESSAGES/fdroidserver.po +++ b/locale/fr/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-10-17 11:46+0000\n" "Last-Translator: xin \n" "Language-Team: French 1;\n" "X-Generator: Weblate 2.17\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -34,6 +47,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -119,6 +137,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -141,6 +164,15 @@ msgstr "Ajouter des signatures GPG pour les paquets dans le dépôt" msgid "Add a new application from its source code" msgstr "Ajouter une nouvelle application depuis son code source" +#: ../fdroidserver/update.py +msgid "Add a repo signing key to an unsigned repo" +msgstr "" + +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "Créer les métadonnées de base manquantes" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -233,6 +265,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "Compiler uniquement la dernière version de chaque paquet" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -244,10 +283,25 @@ msgid_plural "Can't build due to {} errors while scanning" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -370,6 +424,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "Supprimer les APK et/ou OBB sans métadonnées dans le dépôt" @@ -416,7 +474,7 @@ msgid "" "connection" msgstr "" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "" @@ -433,6 +491,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -442,6 +506,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "Analyser dynamiquement les APKs après compilation" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -541,6 +614,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "Créer les métadonnées de base manquantes" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -646,6 +724,21 @@ msgstr "" msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -660,6 +753,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -670,6 +772,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -731,6 +838,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -872,6 +984,15 @@ msgstr "" msgid "Prepare drozer to run a scan" msgstr "" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -891,6 +1012,11 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Produce human-readable XML/JSON for index files" +msgstr "Produire un fichier index.xml lisible par un humain" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "Produire un fichier index.xml lisible par un humain" @@ -1026,6 +1152,10 @@ msgid_plural "Scanner found {} problems" msgstr[0] "" msgstr[1] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py msgid "Setup an emulator, install the APK on it and perform a Drozer scan" msgstr "" @@ -1145,6 +1275,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1168,11 +1302,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "Exception inconnue détectée !" @@ -1183,6 +1326,16 @@ msgstr "Exception inconnue détectée !" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "Créer les métadonnées de base manquantes" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1199,6 +1352,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1209,6 +1371,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1307,6 +1487,11 @@ msgstr "" msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1342,6 +1527,10 @@ msgstr "" msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1356,6 +1545,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py #, fuzzy msgid "command to execute, either 'init' or 'update'" @@ -1372,6 +1570,11 @@ msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1550,10 +1753,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1645,6 +1860,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/it/LC_MESSAGES/fdroidserver.po b/locale/it/LC_MESSAGES/fdroidserver.po index dea6d33c..cef690e0 100644 --- a/locale/it/LC_MESSAGES/fdroidserver.po +++ b/locale/it/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-07-12 15:24+0000\n" "Last-Translator: Roberto Albano De Rosa \n" "Language-Team: Italian \n" "Language-Team: Kabyle \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Portuguese (Brazil) 1;\n" "X-Generator: Weblate 2.17-dev\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -34,6 +47,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -119,6 +137,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -141,6 +164,16 @@ msgstr "Adicione assinaturas gpg para os pacotes no repositório" msgid "Add a new application from its source code" msgstr "Adicione um novo aplicativo a partir do seu código fonte" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add a repo signing key to an unsigned repo" +msgstr "Criar uma chave de assinatura do repositório em uma keystore" + +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "Criar as bases dos arquivos de metadados que estão faltando" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -234,6 +267,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "Compilar apenas a última versão de cada pacote" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -245,10 +285,25 @@ msgid_plural "Can't build due to {} errors while scanning" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -370,6 +425,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "Apagar do repositório os APKs e/ou OBBs sem metadados" @@ -419,7 +478,7 @@ msgstr "" "Não atualizar o repositório; útil quando testando uma compilação sem conexão " "com a internet" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "Não usar as somas de verificação (checksums) do rsync" @@ -436,6 +495,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -445,6 +510,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "Escanear dinamicamente os APKs após a compilação" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -546,6 +620,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "Criar as bases dos arquivos de metadados que estão faltando" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -650,6 +729,21 @@ msgstr "Perguntar interativamente sobre elementos que precisam de atualização. msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -664,6 +758,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -674,6 +777,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -736,6 +844,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -882,6 +995,15 @@ msgstr "Preparar o Drozer para fazer um escaneamento" msgid "Prepare drozer to run a scan" msgstr "Preparar o Drozer para fazer um escaneamento" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -901,6 +1023,11 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Produce human-readable XML/JSON for index files" +msgstr "Gerar um index.xml legível por humanos" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "Gerar um index.xml legível por humanos" @@ -1031,6 +1158,10 @@ msgid_plural "Scanner found {} problems" msgstr[0] "" msgstr[1] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py #, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" @@ -1156,6 +1287,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1179,11 +1314,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "Uma exceção desconhecida foi encrontrada!" @@ -1194,6 +1338,16 @@ msgstr "Uma exceção desconhecida foi encrontrada!" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "Criar as bases dos arquivos de metadados que estão faltando" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1210,6 +1364,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1220,6 +1383,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1320,6 +1501,11 @@ msgstr "X.509 'Distiguished Name' usado ao gerar as chaves" msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1359,6 +1545,10 @@ msgstr "" msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1373,6 +1563,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" msgstr "comando para executar, seja 'init' ou 'update'" @@ -1388,6 +1587,11 @@ msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1565,10 +1769,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1660,6 +1876,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/pt_PT/LC_MESSAGES/fdroidserver.po b/locale/pt_PT/LC_MESSAGES/fdroidserver.po index e088a89b..f63e9cf4 100644 --- a/locale/pt_PT/LC_MESSAGES/fdroidserver.po +++ b/locale/pt_PT/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,6 +16,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -31,6 +44,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -116,6 +134,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -137,6 +160,14 @@ msgstr "" msgid "Add a new application from its source code" msgstr "" +#: ../fdroidserver/update.py +msgid "Add a repo signing key to an unsigned repo" +msgstr "" + +#: ../fdroidserver/update.py +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -228,6 +259,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -239,10 +277,25 @@ msgid_plural "Can't build due to {} errors while scanning" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -363,6 +416,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "" @@ -409,7 +466,7 @@ msgid "" "connection" msgstr "" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "" @@ -426,6 +483,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -435,6 +498,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -533,6 +605,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -637,6 +714,21 @@ msgstr "" msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -651,6 +743,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -661,6 +762,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -722,6 +828,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -862,6 +973,15 @@ msgstr "" msgid "Prepare drozer to run a scan" msgstr "" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -881,6 +1001,10 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +msgid "Produce human-readable XML/JSON for index files" +msgstr "" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "" @@ -1006,6 +1130,10 @@ msgid_plural "Scanner found {} problems" msgstr[0] "" msgstr[1] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py msgid "Setup an emulator, install the APK on it and perform a Drozer scan" msgstr "" @@ -1122,6 +1250,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1145,11 +1277,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "" @@ -1160,6 +1301,16 @@ msgstr "" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1176,6 +1327,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1186,6 +1346,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1278,6 +1456,11 @@ msgstr "" msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1313,6 +1496,10 @@ msgstr "" msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1327,6 +1514,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" msgstr "" @@ -1342,6 +1538,11 @@ msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1517,10 +1718,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1612,6 +1825,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/tr/LC_MESSAGES/fdroidserver.po b/locale/tr/LC_MESSAGES/fdroidserver.po index 2d98d5ef..e641bd42 100644 --- a/locale/tr/LC_MESSAGES/fdroidserver.po +++ b/locale/tr/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-06-23 14:47+0000\n" "Last-Translator: monolifed \n" "Language-Team: Turkish 1;\n" "X-Generator: Weblate 2.15-dev\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -34,6 +47,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -119,6 +137,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -141,6 +164,16 @@ msgstr "Depodaki paketler için GPG imzaları ekle" msgid "Add a new application from its source code" msgstr "Kaynak kodundan yeni bir uygulama ekle" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add a repo signing key to an unsigned repo" +msgstr "Bir anahtar deposunda, depo imzalama anahtarı yaratır" + +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "Eksik olan iskelet meta veri dosyalarını yarat" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -234,6 +267,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "Her paketin sadece son sürümünü oluştur" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -245,10 +285,25 @@ msgid_plural "Can't build due to {} errors while scanning" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -370,6 +425,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "Depodan meta verisi olmayan APKları ve/veya OBBleri sil" @@ -418,7 +477,7 @@ msgstr "" "Depoyu yenileme, bir oluşturma internet bağlantısı olmadan sınanırken " "yararlıdır" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "Rsync sağlama toplamlarını kullanma" @@ -435,6 +494,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -444,6 +509,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "Oluşturma sonrası APKları dinamik olarak tara" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -545,6 +619,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "Eksik olan iskelet meta veri dosyalarını yarat" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -649,6 +728,21 @@ msgstr "Güncelleme gerektiren şeyler hakkında etkileşimli olarak sor." msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -663,6 +757,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -673,6 +776,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -735,6 +843,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -877,6 +990,15 @@ msgstr "Drozer'i bir tarama çalıştırmak için hazırla" msgid "Prepare drozer to run a scan" msgstr "Drozer'i bir tarama çalıştırmak için hazırla" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -896,6 +1018,11 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Produce human-readable XML/JSON for index files" +msgstr "Okunabilir index.xml üret" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "Okunabilir index.xml üret" @@ -1027,6 +1154,10 @@ msgid_plural "Scanner found {} problems" msgstr[0] "" msgstr[1] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py #, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" @@ -1149,6 +1280,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1172,11 +1307,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "Bilinmeyen özel durum bulundu!" @@ -1187,6 +1331,16 @@ msgstr "Bilinmeyen özel durum bulundu!" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "Eksik olan iskelet meta veri dosyalarını yarat" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1203,6 +1357,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1213,6 +1376,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1309,6 +1490,11 @@ msgstr "Anahtarlar üretilirken X.509 'Distinguished Name' kullanılır" msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1347,6 +1533,10 @@ msgstr "APPID[:VERCODE] biçiminde app-id, isteğe bağlı versionCode ile" msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1361,6 +1551,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" msgstr "çalıştırılacak komut, 'init' ya da 'update'" @@ -1376,6 +1575,11 @@ msgid_plural "conflicting option strings: %s" msgstr[0] "" msgstr[1] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1553,10 +1757,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1648,6 +1864,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/uk/LC_MESSAGES/fdroidserver.po b/locale/uk/LC_MESSAGES/fdroidserver.po index 1bf54b0c..76edd6af 100644 --- a/locale/uk/LC_MESSAGES/fdroidserver.po +++ b/locale/uk/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-10-01 11:53+0000\n" "Last-Translator: Володимир Бриняк \n" "Language-Team: Ukrainian =20) ? 1 : 2;\n" "X-Generator: Weblate 2.17-dev\n" +#: ../fdroidserver/nightly.py +msgid "" +"\n" +"SSH Public Key to be used as Deploy Key:" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "" +"\n" +"{path} encoded for the DEBUG_KEYSTORE secret variable:" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "\"%s/\" has no matching metadata file!" @@ -35,6 +48,11 @@ msgstr "" msgid "\"{path}\" contains recent {name} ({version})" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "\"{path}\" is not an accepted format, convert to: {formats}" +msgstr "" + #: /usr/lib/python3.5/optparse.py /usr/lib/python3.6/optparse.py #, python-format msgid "%(option)s option requires %(number)d argument" @@ -121,6 +139,11 @@ msgstr "" msgid "'{path}' failed to execute!" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "'{value}' is not a valid {field} in {appid}. Regex pattern: {pattern}" +msgstr "" + #: ../fdroidserver/checkupdates.py #, python-brace-format msgid "...checkupdate failed for {appid} : {error}" @@ -143,6 +166,16 @@ msgstr "Додайте підписи gpg для пакетів у репози msgid "Add a new application from its source code" msgstr "Додайте новий застосунку зі свого вихідного коду" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add a repo signing key to an unsigned repo" +msgstr "Створіть ключ підписування репозиторію у сховищі ключів" + +#: ../fdroidserver/update.py +#, fuzzy +msgid "Add skeleton metadata files for APKs that are missing them" +msgstr "Створення скелетів файлів метаданих, які відсутні" + #: ../fdroidserver/update.py #, python-brace-format msgid "Adding new repo for only {name}" @@ -234,6 +267,13 @@ msgstr "" msgid "Build only the latest version of each package" msgstr "Створіть лише останню версію кожного пакета" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Build should have comma-separated versionName and versionCode, not " +"\"{value}\", in {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "Built repo based in \"%s\" with this config:" @@ -246,10 +286,25 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot find a packageName for {path}!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot resolve app id {appid}" +msgstr "" + #: ../fdroidserver/rewritemeta.py msgid "Cannot use --list and --to at the same time" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Cannot write \"{path}\", not an accepted format, use: {formats}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Categories are not set" msgstr "" @@ -371,6 +426,10 @@ msgstr "" msgid "Creating unsigned index in preparation for signing" msgstr "" +#: ../fdroidserver/nightly.py +msgid "DEBUG_KEYSTORE is not set or the value is incomplete" +msgstr "" + #: ../fdroidserver/update.py msgid "Delete APKs and/or OBBs without metadata from the repo" msgstr "Видаліть APKs і/або OBBs без метаданих з репозиторію" @@ -419,7 +478,7 @@ msgstr "" "Не оновлюйте сховище, корисне під час тестування створення без підключення " "до Інтернету" -#: ../fdroidserver/server.py +#: ../fdroidserver/server.py ../fdroidserver/nightly.py msgid "Don't use rsync checksums" msgstr "Не використовуйте контрольні суми rsync" @@ -436,6 +495,12 @@ msgstr "" msgid "Downloading {url} failed. {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "" +"Duplicate build recipe found for versionCode {versionCode} in {linedesc}" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "Duplicate link in '{field}': {url}" @@ -445,6 +510,15 @@ msgstr "" msgid "Dynamically scan APKs post build" msgstr "Динамічне сканування створення APKs допису" +#: ../fdroidserver/nightly.py +msgid "ERROR: unsupported CI type, patches welcome!" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Empty build flag at {linedesc}" +msgstr "" + #: ../fdroidserver/init.py #, python-format msgid "" @@ -546,6 +620,11 @@ msgstr "" msgid "Found invalid versionCodes for some apps" msgstr "" +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Found multiple metadata files for {appid}" +msgstr "Створення скелетів файлів метаданих, які відсутні" + #: ../fdroidserver/index.py msgid "Found multiple signing certificates for repository." msgstr "" @@ -650,6 +729,21 @@ msgstr "Інтерактивно запитайте про речі, які по msgid "Invalid APK" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid boolean '%s'" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build flag at {line} in {linedesc}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid build format: {value} in {name}" +msgstr "" + #: ../fdroidserver/lint.py msgid "Invalid bulleted list" msgstr "" @@ -664,6 +758,15 @@ msgstr "" msgid "Invalid link - use [http://foo.bar Link title] or [http://foo.bar]" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Invalid metadata in %s:%d" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Invalid metadata in: " +msgstr "" + #: ../fdroidserver/common.py #, python-format msgid "Invalid name for published file: %s" @@ -674,6 +777,11 @@ msgstr "" msgid "Invalid package name {0}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Invalid versionCode: \"{versionCode}\" is not an integer!" +msgstr "" + #: ../fdroidserver/publish.py ../fdroidserver/update.py msgid "Java JDK not found! Install in standard location or set java_paths!" msgstr "" @@ -736,6 +844,11 @@ msgstr "" msgid "No attached devices found" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "No commit specified for {versionName} in {linedesc}" +msgstr "" + #: ../fdroidserver/index.py msgid "No fingerprint in URL." msgstr "" @@ -878,6 +991,15 @@ msgstr "Підготувати drozer для запуску сканування msgid "Prepare drozer to run a scan" msgstr "Підготувати drozer для запуску сканування" +#: ../fdroidserver/nightly.py +msgid "Print the secret variable to the terminal for easy copy/paste" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Problem with description of {appid}: {error}" +msgstr "" + #: ../fdroidserver/common.py #, python-brace-format msgid "Problem with xml at '{path}'" @@ -897,6 +1019,11 @@ msgstr "" msgid "Processing {appid}" msgstr "" +#: ../fdroidserver/update.py +#, fuzzy +msgid "Produce human-readable XML/JSON for index files" +msgstr "Створити зручний для сприйняття index.xml" + #: ../fdroidserver/update.py msgid "Produce human-readable index.xml" msgstr "Створити зручний для сприйняття index.xml" @@ -1029,6 +1156,10 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" +#: ../fdroid +msgid "Set up an app build for a nightly build repo" +msgstr "" + #: ../fdroidserver/build.py #, fuzzy msgid "Setup an emulator, install the APK on it and perform a Drozer scan" @@ -1161,6 +1292,10 @@ msgstr "" msgid "The root dir for local_copy_dir \"{path}\" does not exist!" msgstr "" +#: ../fdroidserver/nightly.py +msgid "The the file to be included in the repo (path or glob)" +msgstr "" + #: ../fdroidserver/publish.py msgid "There is a keyalias collision - publishing halted" msgstr "" @@ -1184,11 +1319,20 @@ msgstr "" msgid "URL shorteners should not be used" msgstr "" +#: ../fdroidserver/metadata.py +msgid "URL title is just the URL, use brackets: [URL]" +msgstr "" + #: ../fdroidserver/lint.py #, python-brace-format msgid "URL {url} in Description: {error}" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unexpected text on same line as {field} in {linedesc}" +msgstr "" + #: ../fdroid msgid "Unknown exception found!" msgstr "Виявлено невідому виняткову ситуацію!" @@ -1199,6 +1343,16 @@ msgstr "Виявлено невідому виняткову ситуацію!" msgid "Unknown file '{filename}' in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-format +msgid "Unknown metadata format: %s" +msgstr "" + +#: ../fdroidserver/metadata.py +#, fuzzy, python-brace-format +msgid "Unknown metadata format: {path}" +msgstr "Створення скелетів файлів метаданих, які відсутні" + #: ../fdroidserver/common.py msgid "Unknown version of aapt, might cause problems: " msgstr "" @@ -1215,6 +1369,15 @@ msgstr "" msgid "Unnecessary trailing space" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unrecognised app field: " +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unrecognised field '{field}' in {linedesc}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "Unsupported graphics file found: {path}" @@ -1225,6 +1388,24 @@ msgstr "" msgid "Unsupported metadata format, use: --to [{supported}]" msgstr "" +#: ../fdroidserver/metadata.py +msgid "Unterminated ]" +msgstr "" + +#: ../fdroidserver/metadata.py +msgid "Unterminated ]]" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated build in {name}" +msgstr "" + +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "Unterminated continuation in {name}" +msgstr "" + #: ../fdroidserver/lint.py #, python-format msgid "Unused extlib at %s" @@ -1323,6 +1504,11 @@ msgstr "X.509 'Distiguished Name' використовується при ств msgid "You can use ANDROID_HOME to set the path to your SDK, i.e.:" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "adding IdentityFile to {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "adding to {name}: {path}" @@ -1361,6 +1547,10 @@ msgstr "app-id з необов'язковою версією коду у фор msgid "argument \"-\" with mode %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "attempting bare ssh connection to test deploy key:" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py #, python-format msgid "can't open '%s': %s" @@ -1375,6 +1565,15 @@ msgstr "" msgid "cannot merge actions - two groups are named %r" msgstr "" +#: ../fdroidserver/nightly.py +msgid "cannot publish update, did you set the deploy key?" +msgstr "" + +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "cloning {url}" +msgstr "" + #: ../fdroidserver/server.py msgid "command to execute, either 'init' or 'update'" msgstr "команда виконати, 'init' або 'update'" @@ -1391,6 +1590,11 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "copying {apkfilename} into {path}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "deleting: repo/{apkfilename}" @@ -1569,10 +1773,22 @@ msgstr "" msgid "optional arguments" msgstr "" +#: ../fdroidserver/nightly.py +#, python-brace-format +msgid "overwriting existing {path}" +msgstr "" + #: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py msgid "positional arguments" msgstr "" +#: ../fdroidserver/signatures.py +#, python-brace-format +msgid "" +"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-" +"https-check): {apkfilename}" +msgstr "" + #: ../fdroidserver/signatures.py #, python-brace-format msgid "" @@ -1665,6 +1881,11 @@ msgstr "" msgid "{appid}: Unknown extlib {path} in build '{versionName}'" msgstr "" +#: ../fdroidserver/metadata.py +#, python-brace-format +msgid "{field} not terminated in {name}" +msgstr "" + #: ../fdroidserver/update.py #, python-brace-format msgid "{name} \"{path}\" does not exist! Correct it in config.py." diff --git a/locale/zh_Hans/LC_MESSAGES/fdroidserver.po b/locale/zh_Hans/LC_MESSAGES/fdroidserver.po index cd8eca66..5feb8888 100644 --- a/locale/zh_Hans/LC_MESSAGES/fdroidserver.po +++ b/locale/zh_Hans/LC_MESSAGES/fdroidserver.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n" -"POT-Creation-Date: 2017-10-19 22:13+0200\n" +"POT-Creation-Date: 2017-11-22 23:24+0100\n" "PO-Revision-Date: 2017-07-24 02:40+0000\n" "Last-Translator: sima \n" "Language-Team: Chinese (Simplified) \n" "Language-Team: Chinese (Traditional)