1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-09-20 20:00:37 +02:00

Compare commits

...

161 Commits

Author SHA1 Message Date
proletarius101
50a38fdea4 Merge branch 'index-only-deploy-mode' into 'master'
Add index only deployment mode

Closes #1181

See merge request fdroid/fdroidserver!1420
2024-06-04 13:58:48 +00:00
proletarius101
be0f075914
fix(deploy): fix errors introduced by merging 2024-06-04 21:58:29 +08:00
proletarius101
cb18d10197
feat(deploy): add index-only mode to the rclone deployment method 2024-06-04 21:18:31 +08:00
proletarius101
4c0e096a99
chore(deploy): rename index_only variable to is_index_only for Python idiomaticness 2024-06-04 20:57:15 +08:00
proletarius101
b48e297ec2
chore(deploy): clean up code 2024-06-04 20:56:10 +08:00
proletarius101
9244189ce5
fix(deploy): remove the --index-only flag 2024-06-04 20:56:10 +08:00
proletarius101
b164241026
fix(deploy): $GIT_MIRROR/fdroid/repo/com.politedroid_6.apk doesn't exist when the test is finished 2024-06-04 20:55:50 +08:00
proletarius101
f27ecd1674
style(deploy): rename working_dir_root variable to workspace_dir 2024-06-04 20:55:50 +08:00
proletarius101
f321f62904
style(deploy): fix pyflake 2024-06-04 20:55:01 +08:00
proletarius101
01990411c7
fix(deploy): all files are uploaded if the index only mode deployment follows a full mode one
switch the branch before rsyncing
2024-06-04 20:55:01 +08:00
proletarius101
77c3f83fd7
chore(deploy): convert print to logging for in-order output 2024-06-04 20:55:01 +08:00
proletarius101
5ff6cdd53b
fix(deploy): all files are uploaded if the index only mode deployment follows a full mode one
create new branches from groud up
2024-06-04 20:55:01 +08:00
proletarius101
b74c848d6e
fix(deploy): all files are uploaded if the index only mode deployment follows a full mode one
let rsync only sync necessary files
2024-06-04 20:55:01 +08:00
proletarius101
bd2eaa5868
fix(deploy): all files are uploaded if the index only mode deployment follows a full mode one 2024-06-04 20:54:36 +08:00
proletarius101
c190b7fb56
debug 2024-06-04 20:54:36 +08:00
proletarius101
9c30b087c4
fix(deploy): fatal: A branch named 'full' already exists. 2024-06-04 20:54:36 +08:00
proletarius101
4941e699df
test(deploy): make sure the APK file is not uploaded in the index only mode 2024-06-04 20:54:36 +08:00
proletarius101
04987a021b
fix(deploy): local files are not synced to the local git repo 2024-06-04 20:54:36 +08:00
proletarius101
e8e8f8b9f0
fix(deploy): remove unnecessary additional initial commit
and fix the test error: https://gitlab.com/proletarius101/fdroidserver/-/jobs/6997355250#L6978
2024-06-04 20:53:54 +08:00
proletarius101
d619fbff26
chore(deploy): list all files in the local git repo 2024-06-04 20:53:54 +08:00
proletarius101
0e3bd6f63e
fix(deploy): files are not pushed to the remote 2024-06-04 20:53:54 +08:00
proletarius101
d1c881e2c3
test(deploy): fix fdroidserver.deploy.options is None 2024-06-04 20:53:54 +08:00
proletarius101
097f81a565
test(deploy): fix errors 2024-06-04 20:53:40 +08:00
proletarius101
abf4c93a7b
fix(deploy): don't recreate the branches 2024-06-04 20:53:40 +08:00
proletarius101
0e781913b8
fix: No such file or directory: 'repo/entry.jar' 2024-06-04 20:52:47 +08:00
proletarius101
7bfcb21ba6
test 2024-06-04 20:52:47 +08:00
proletarius101
1331d089ce
test 2024-06-04 20:52:47 +08:00
proletarius101
cda322445f
test 2024-06-04 20:52:47 +08:00
proletarius101
0eefa6fbe5
test 2024-06-04 20:52:47 +08:00
proletarius101
2f37cfb9a2
test 2024-06-04 20:52:47 +08:00
proletarius101
b4cfbd26e9
fix(deploy): align the config naming 2024-06-04 20:52:47 +08:00
proletarius101
1d8f404ef1
test 2024-06-04 20:52:47 +08:00
proletarius101
dbd6e4237e
test 2024-06-04 20:52:47 +08:00
proletarius101
2bc584d442
test 2024-06-04 20:52:47 +08:00
proletarius101
4689da8d08
test 2024-06-04 20:52:47 +08:00
proletarius101
4c32be112c
test 2024-06-04 20:52:47 +08:00
proletarius101
d30e7a0169
fix(deploy): error: The branch 'full' is not fully merged. 2024-06-04 20:52:47 +08:00
proletarius101
fcba5a4227
fix(deploy): error: The following untracked working tree files would be overwritten by checkout 2024-06-04 20:52:47 +08:00
proletarius101
fd7adaa61f
fix: no files are uploaded 2024-06-04 20:52:47 +08:00
proletarius101
bc2838829b
fix(deploy): Reference at 'refs/heads/full' does already exist 2024-06-04 20:52:47 +08:00
proletarius101
489944a503
fix: index only mode setting doesn't work if it follows a full mode config 2024-06-04 20:52:47 +08:00
proletarius101
3e67622736
fix: index only mode setting doesn't work if it follows a full mode config 2024-06-04 20:52:47 +08:00
Hans-Christoph Steiner
4acab21d81
fix: avoid making the parent directory redundantly in test case 2024-06-04 20:52:39 +08:00
proletarius101
ca5e9a089c
lint: fix pydocstyle 2024-06-04 20:52:39 +08:00
proletarius101
99a3823621
fix: ModuleNotFoundError 2024-06-04 20:52:39 +08:00
proletarius101
76432199be
lint: fix black formatting 2024-06-04 20:52:39 +08:00
proletarius101
df28c1e6c3
fix(deploy): remove the index-only mode from elsewhere except the config file
To enable per-remote configuration
2024-06-04 20:52:39 +08:00
proletarius101
0ea0a3de78
style: fix lint 2024-06-04 20:49:35 +08:00
proletarius101
f2fcfeabe5
style: fix lint 2024-06-04 20:49:35 +08:00
proletarius101
a4247eea0d
style: fix lint 2024-06-04 20:49:35 +08:00
proletarius101
221739b653
refactor: use _get_index_file_paths() instead of this mix of --include/--exclude 2024-06-04 20:49:07 +08:00
proletarius101
c7574037a9
refactor: remove the support of the index only mode when syncing to the local filesystem 2024-06-04 20:45:22 +08:00
proletarius101
359661a332
chore: revert repository vscode settings 2024-06-04 20:43:47 +08:00
proletarius101
cc75f2f9a4
feat(deploy): add index only mode in update_servergitmirrors 2024-06-04 20:43:47 +08:00
proletarius101
e22f7e52a8
style(deploy): remove unused imports 2024-06-04 20:43:03 +08:00
proletarius101
7840d0dc35
style(deploy): fix pydocstyle errors 2024-06-04 20:43:03 +08:00
proletarius101
1f3f02765d
test(deploy): add test cases for update_awsbucket_libcloud and fix errors 2024-06-04 20:43:03 +08:00
proletarius101
91cf352b96
test(deploy): add test cases for update_awsbucket_s3cmd 2024-06-04 20:43:03 +08:00
proletarius101
5e3b474a1c
fix(deploy): add test cases for local copy mode and fix issues 2024-06-04 20:43:03 +08:00
proletarius101
160c23a547
fix(deploy): add test cases for server webroot mode and fix issues 2024-06-04 20:40:34 +08:00
proletarius101
2b6542b231
fix(deploy): restore accidentally removed code 2024-06-04 20:39:38 +08:00
proletarius101
742381a923
test(deploy): properly test non-index-only mode 2024-06-04 20:38:44 +08:00
proletarius101
3b58c386a4
fix(deploy): fix typo 2024-06-04 20:38:07 +08:00
proletarius101
7071cc6f6d
feat(deploy): support the index-only option when syncing from/to local copies 2024-06-04 20:37:45 +08:00
proletarius101
3ec997d58e
feat(deploy): support index-only mode in libcloud 2024-06-04 20:36:33 +08:00
proletarius101
bd62007b54
feat(deploy): support --index-only option for serverwebroot deployments 2024-06-04 20:35:40 +08:00
proletarius101
2c361f6cee
refactor: revert changes to the full sync mode for s3cmd 2024-06-04 20:34:37 +08:00
proletarius101
1cf0185508
feat(update_awsbucket_s3cmd): support the index-only flag 2024-06-04 20:34:00 +08:00
proletarius101
3dee7e915d
feat: add --index-only flag 2024-06-04 20:33:05 +08:00
Hans-Christoph Steiner
f50e5a806d Merge branch 'switching-s3cmd-for-rclone' into 'master'
Adding rclone as an option to fdroid deploy

Closes #1095

See merge request fdroid/fdroidserver!1095
2024-05-29 14:08:07 +00:00
paul mayero
7aabfbcbf0 Adding rclone as an option to fdroid deploy 2024-05-29 14:08:07 +00:00
Hans-Christoph Steiner
eadbf06d48 Merge branch 'licaon-kter-master-patch-05845' into 'master'
Fix more tests after !1487

See merge request fdroid/fdroidserver!1488
2024-05-23 08:30:36 +00:00
Licaon_Kter
feafe2812d Fix more tests after !1487 2024-05-22 13:40:27 +00:00
Hans-Christoph Steiner
b3748aa3f1 Merge branch 'scannerid' into 'master'
scanner - pickup by id, sort list

See merge request fdroid/fdroidserver!1487
2024-05-22 09:26:13 +00:00
Licaon_Kter
98f935493e fix test cases 2024-05-22 09:25:49 +00:00
Licaon_Kter
df97ebe052 scanner - pickup by id, sort list 2024-05-22 09:25:49 +00:00
Hans-Christoph Steiner
18c9bc6e01 Merge branch 'sdkmanager-bookworm-backports' into 'master'
buildserver: use sdkmanager from backports

See merge request fdroid/fdroidserver!1475
2024-05-20 18:36:40 +00:00
Hans-Christoph Steiner
afb9b7570e buildserver: use sdkmanager from backports 2024-05-20 18:36:33 +00:00
Hans-Christoph Steiner
25b1a77424
fix merge conflict with https://hosted.weblate.org/projects/f-droid/fdroidserver/ 2024-05-14 12:22:56 +02:00
Hans-Christoph Steiner
4c0fa1d0a9 Merge branch 'update-pot' into 'master'
make -C locale update

See merge request fdroid/fdroidserver!1484
2024-05-13 12:10:49 +00:00
Hans-Christoph Steiner
c37a26bcd2
make -C locale update 2024-05-13 13:59:52 +02:00
Hans-Christoph Steiner
b45b31b927
version 2.3 alpha 1 2024-05-13 10:45:09 +02:00
Hans-Christoph Steiner
2f148b4407 Merge branch 'weblate' into 'master'
weblate

See merge request fdroid/fdroidserver!1483
2024-05-13 08:44:31 +00:00
Hans-Christoph Steiner
6bebd8b160
safety: ignore CVE-2018-20225, should never affect fdroidserver
https://data.safetycli.com/v/67599/97c
2024-05-13 10:33:37 +02:00
Fjuro
7e1b2e0788 Translated using Weblate: Czech (cs) by Fjuro <fjuro@alius.cz>
Currently translated at 100.0% (552 of 552 strings)

Co-authored-by: Fjuro <fjuro@alius.cz>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/cs/
Translation: F-Droid/F-Droid Server
2024-05-13 10:25:52 +02:00
Random
34dd9a75e4 Translated using Weblate: Italian (it) by Random <random-r@users.noreply.hosted.weblate.org>
Currently translated at 100.0% (552 of 552 strings)

Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/it/
Translation: F-Droid/F-Droid Server
2024-05-13 10:25:43 +02:00
ALoLo_527
f6235831ae Translated using Weblate: Chinese (Simplified) (zh_Hans) by ALoLo_527 <ALoLo@users.noreply.hosted.weblate.org>
Currently translated at 82.0% (453 of 552 strings)

Co-authored-by: ALoLo_527 <ALoLo@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hans/
Translation: F-Droid/F-Droid Server
2024-05-13 10:25:35 +02:00
Oğuz Ersen
99841bf7c5 Translated using Weblate: Turkish (tr) by Oğuz Ersen <oguz@ersen.moe>
Currently translated at 100.0% (552 of 552 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/tr/
Translation: F-Droid/F-Droid Server
2024-05-13 10:25:03 +02:00
Agnieszka C
c7f1bdd14c Translated using Weblate: Polish (pl) by Agnieszka C <aga_04@o2.pl>
Currently translated at 100.0% (552 of 552 strings)

Co-authored-by: Agnieszka C <aga_04@o2.pl>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/pl/
Translation: F-Droid/F-Droid Server
2024-05-13 10:24:56 +02:00
gallegonovato
25278801de Translated using Weblate: Spanish (es) by gallegonovato <fran-carro@hotmail.es>
Currently translated at 100.0% (552 of 552 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/es/
Translation: F-Droid/F-Droid Server
2024-05-13 10:24:45 +02:00
Michael Pöhn
8d9c048505 Merge branch 'config-options-as-module-level-variables' into 'master'
clarify that 'config' and 'options' should only be module-level variables

See merge request fdroid/fdroidserver!1477
2024-05-08 14:47:49 +00:00
Hans-Christoph Steiner
64c9154fff
gitlab-ci: fix macOS job after !1466 2024-05-08 16:36:21 +02:00
Hans-Christoph Steiner
5745ed4753 common: only try to delete .testfiles dir if it exists
Otherwise, some tests fail with an error.
2024-05-08 16:28:14 +02:00
Hans-Christoph Steiner
18f3acc32e split out options from read_config()
There is no longer any reason for these to be intertwined.

This deliberately avoids touching some files as much as possible because
they are super tangled and due to be replaced.  Those files are:

* fdroidserver/build.py
* fdroidserver/update.py

# Conflicts:
#	tests/testcommon.py

# Conflicts:
#	fdroidserver/btlog.py
#	fdroidserver/import_subcommand.py
2024-05-08 16:26:46 +02:00
Hans-Christoph Steiner
685efa23d4 import: always load testcommon from localmodule
Having this import before sys.path.insert() made it load testcommon from
the Debian package.
2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
1e5699e90c remove all references to optparse (deprecated since Python 3.2) 2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
717df09be0 clarify that config/options can be global or module-level variable 2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
92a3f4b191 rename local variable to stop overwriting global options
This fixes a bug where if smartcardoptions is set as a str in config.yml
will overwrite all command line options.

a4d069862
fdroidserver!1106
2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
1eaba25021 common: do not use module reference for local functions
This just makes things more confusing.
2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
8208841460 common: make explicit which test cases need mocked options 2024-05-08 16:19:27 +02:00
Hans-Christoph Steiner
660f8756e5 Merge branch 'docstrings' into 'master'
docstrings and code format from !1436

See merge request fdroid/fdroidserver!1482
2024-05-08 13:55:10 +00:00
Gregor Düster
dbdefe200c Format files with ruff 2024-05-08 15:41:51 +02:00
Gregor Düster
df27405d8b [build] Add more docstrings 2024-05-08 15:35:28 +02:00
Gregor Düster
1c70758940 [btlog] Add more docstrings 2024-05-08 15:31:43 +02:00
Gregor Düster
4109e8fb03 [checkupdates] Add module docstring 2024-05-08 15:31:38 +02:00
Gregor Düster
97346a2cba [nightly] Add more docstrings 2024-05-08 15:31:32 +02:00
Gregor Düster
6c27fec94b [import] Add more docstrings 2024-05-08 15:31:29 +02:00
Michael Pöhn
5d8c6b8cd5 Merge branch 'fix-ubuntu-ppa-job' into 'master'
Fix ubuntu ppa job

See merge request fdroid/fdroidserver!1481
2024-05-08 13:17:23 +00:00
Hans-Christoph Steiner
9f62445f38 gitlab-ci: fix ubuntu_lts_ppa job to work with Ubuntu/noble 2024-05-08 13:16:00 +00:00
Michael Pöhn
80705579c2 Merge branch 'getcert' into 'master'
get_first_signer_certificate: check all v1 v2 and v3 certs

Closes #1128

See merge request fdroid/fdroidserver!1466
2024-05-08 13:14:05 +00:00
Hans-Christoph Steiner
ad9f0a9022 include @obfusk's proof-of-concept APKs in test suite
https://github.com/obfusk/fdroid-fakesigner-poc/releases/tag/poc-apks
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
fc4a9c96a5 test APK signatures with a cert chain are parsed like apksigner
Microsoft and SanDisk sign APKs with a X.509 certificate chain of
trust, so there are actually three certificates included. apksigner
only cares about one certificate and ignores the other certificates in
the chain.

The correct values come from:

    apksigner verify --print-certs 883cbdae7aeb2e4b122e8ee8d89966c7062d0d49107a130235fa220a5b994a79.apk

X.509 certificates are machine generated and just data, so are not
copyrightable.  So I included SANAPPSI.* directly.
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
accdd65f91 also handle APKs entirely without JAR/v1 signatures
future-proofing!
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
9a327b5097 reliable implementation of get_first_signer_certificate()
This keeps key pieces of @linsui's algorithm, specifically the check
that all certificates are the same.  apksigner also does this check.

closes #1128
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
a8fd360a88 skip AndroidManifest.xml and resources when fetching v2+ certs 2024-05-07 16:22:59 +02:00
FC (Fay) Stegerman
6f5fd2b132 PoC + writeup + patch
6c6dc25112/fdroidserver.patch (L28)

https://github.com/androguard/androguard/issues/1030
refs #1128

(this is an excerpt of the original patch)
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
312f822764 androguard is required, stop using use_androguard() 2024-05-07 16:22:59 +02:00
linsui
2fea71a6c7 get_first_signer_certificate: check all v1 v2 and v3 certs 2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
93f361c623 replace decade old pyasn1 crypto impl with working asn1crypto
For some APKs, get_certificate() was returning a different result than
apksigner and keytool.  So I just took the algorithm from androguard, which
uses asn1crypto instead of pyasn1.  So that removes a dependency as well.
asn1crypto is already required by androguard.

The original get_certificate() came from 6e2d0a9e1
2024-05-07 16:22:59 +02:00
Hans-Christoph Steiner
4666330a4d Merge branch 'gradlefile' into 'master'
throw error if gradle build method is used but no build.gradle file is found

See merge request fdroid/fdroidserver!1479
2024-05-07 14:14:26 +00:00
linsui
7104411296 throw error if gradle build method is used but no build.gradle file is found 2024-05-07 14:13:47 +00:00
Hans-Christoph Steiner
99bd544ab9 Merge branch 'fedora-40-ci-failure' into 'master'
make it easier to support the Fedora job

See merge request fdroid/fdroidserver!1474
2024-05-07 14:11:53 +00:00
Hans-Christoph Steiner
5df3d27126 gitlab-ci: stay on Fedora 39 until it is no longer supported
We can rely on the debian:testing job to test the bleeding edge, and it is
a lot easier to troubleshoot.

The Fedora job is a lot harder to troubleshoot than the Debian-based jobs,
and they are often quite bleeding edge.  Currently, there is a change to
either Python or an image processing lib (Pillow?) that now compresses PNGs
differently than all previous releases.  That breaks the tests based on
processing images and checking the SHA-256 matches.

70e7e720b9
fdroidserver!669
2024-05-07 12:58:23 +00:00
Hans-Christoph Steiner
1b65e33835 make it easy to keep test artifacts from jobs
When troubleshooting things that are difficult to reproduce locally, like
different behaviors in the fedora_latest job, these changes make it easy to
keep the test files around after the tests run.  For example, if PNGs are
processed differently by newer Python versions.
2024-05-07 12:58:23 +00:00
Hans-Christoph Steiner
299e3e5f4c index: handle image processing diffs across various Python versions
Apparently, the newest Python thingies strip the PNGs a tiny bit smaller,
so a fixed file size will lead to the test failing:

https://gitlab.com/fdroid/fdroidserver/-/jobs/6703386074
```
Traceback (most recent call last):
  File "/builds/fdroid/fdroidserver/tests/index.TestCase", line 704, in test_package_metadata
    self.assertEqual(36027, metadata['featureGraphic']['en-US']['size'])
AssertionError: 36027 != 35619
```
2024-05-07 12:58:23 +00:00
Hans-Christoph Steiner
1cb1394de3 Merge branch 'debugkey' into 'master'
lint: blocklist known AOSP debug keys in AASK

See merge request fdroid/fdroidserver!1478
2024-05-07 11:33:12 +00:00
Hans-Christoph Steiner
9a9b5beeaa simplify test setup
I'm in the midst of working towards getting rid of the "config" instances
that are in the subcommand module, e.g. `fdroidserver.lint.config`
2024-05-07 11:33:04 +00:00
Hans-Christoph Steiner
14c8647909 add additional tests 2024-05-07 11:33:04 +00:00
linsui
d243cbd030 lint: blocklist known AOSP debug keys in AASK 2024-05-07 11:33:04 +00:00
Michael Pöhn
08c553e1cb Merge branch 'deploy' into 'master'
deploy: retry when git push fails

See merge request fdroid/fdroidserver!1480
2024-05-06 06:36:58 +00:00
linsui
f82d648cb1 deploy: retry when git push fails 2024-05-05 20:53:35 +00:00
Michael Pöhn
79586fd9e3 Merge branch 'fix-icons-in-fdroid-mirror' into 'master'
mirror: apparently the 'icons' dir does not always exist

See merge request fdroid/fdroidserver!1476
2024-05-05 17:14:49 +00:00
Hans-Christoph Steiner
6f07538cdc mirror: apparently the 'icons' dir does not always exist
https://apt.izzysoft.de/fdroid/archive/com.futsch1.medtimer_28.apk:
2024-04-21 18:55:20 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.hardbacknutter.nevertoomanybooks_75.apk:
2024-04-21 18:55:20 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.jovial.jrpn15_20.apk:
2024-04-21 18:55:20 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.jovial.jrpn2_20.apk:
2024-04-21 18:55:20 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.logger.app_8.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.lorenzovainigli.foodexpirationdates.foss_22.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.openathena_36.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.oppzippy.openscq30_21.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.sanmer.mrepo_713.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/com.starry.myne_325.apk:
2024-04-21 18:55:21 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/dev.imranr.obtainium_22602.apk:
2024-04-21 18:55:22 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/dev.sanmer.pi_137.apk:
2024-04-21 18:55:22 ERROR 404: Not Found.
https://apt.izzysoft.de/fdroid/archive/org.breezyweather_50108.apk:
2024-04-21 18:55:22 ERROR 404: Not Found.
2024-04-21 18:55:22,448 ERROR: no "icon" in org.breezyweather
2024-04-21 18:55:22,449 ERROR: no "icon" in com.lorenzovainigli.foodexpirationdates.foss
2024-04-21 18:55:22,449 ERROR: no "icon" in com.jovial.jrpn15
2024-04-21 18:55:22,450 ERROR: no "icon" in com.jovial.jrpn2
2024-04-21 18:55:22,450 ERROR: no "icon" in com.logger.app
2024-04-21 18:55:22,450 ERROR: no "icon" in com.futsch1.medtimer
2024-04-21 18:55:22,451 ERROR: no "icon" in com.sanmer.mrepo
2024-04-21 18:55:22,451 ERROR: no "icon" in com.starry.myne
2024-04-21 18:55:22,451 ERROR: no "icon" in com.hardbacknutter.nevertoomanybooks
2024-04-21 18:55:22,452 ERROR: no "icon" in dev.imranr.obtainium
2024-04-21 18:55:22,452 ERROR: no "icon" in com.openathena
2024-04-21 18:55:22,453 ERROR: no "icon" in com.oppzippy.openscq30
2024-04-21 18:55:22,453 ERROR: no "icon" in dev.sanmer.pi
2024-04-21 18:55:22,454 CRITICAL: Unknown exception found!
Traceback (most recent call last):
  File "/home/fdroid/code/fdroid/fdroidserver/fdroid", line 22, in <module>
    fdroidserver.__main__.main()
  File "/home/fdroid/code/fdroid/fdroidserver/fdroidserver/__main__.py", line 230, in main
    raise e
  File "/home/fdroid/code/fdroid/fdroidserver/fdroidserver/__main__.py", line 211, in main
    mod.main()
  File "/home/fdroid/code/fdroid/fdroidserver/fdroidserver/mirror.py", line 269, in main
    _run_wget(os.path.join(basedir, section, icondir), urls[icondir])
KeyError: 'icons'
2024-05-02 18:29:42 +02:00
Hans-Christoph Steiner
32ef77ecb6 Merge branch 'androguard-modernization' into 'master'
port to androguard >= 4 and drop support for older than 3.3.5

See merge request fdroid/fdroidserver!1462
2024-04-25 11:09:27 +00:00
Hans-Christoph Steiner
be59b38ac1 update: handle ValueError from apkInspector in androguard 4.1
androguard 4.1 uses a new lib called apkInspector instead of zipfile.ZipFile
so that it can handle usable but invalid ZIP files.  It will also throw
ValueError on some things, for example:

Traceback (most recent call last):
  File "/builds/eighthave/fdroidserver/fdroidserver-2.3a0/tests/update.TestCase", line 878, in test_scan_apk_bad_zip
    fdroidserver.update.scan_apk(apkfile)
  File "/builds/eighthave/fdroidserver/fdroidserver-2.3a0/fdroidserver/update.py", line 1586, in scan_apk
    scan_apk_androguard(apk, apk_file)
  File "/builds/eighthave/fdroidserver/fdroidserver-2.3a0/fdroidserver/update.py", line 1725, in scan_apk_androguard
    apkobject = common.get_androguard_APK(apkfile)
  File "/builds/eighthave/fdroidserver/fdroidserver-2.3a0/fdroidserver/common.py", line 2673, in get_androguard_APK
    return APK(apkfile)
  File "/usr/local/lib/python3.10/dist-packages/androguard/core/apk/__init__.py", line 273, in __init__
    self.zip = ZipEntry.parse(filename, False)
  File "/usr/local/lib/python3.10/dist-packages/apkInspector/headers.py", line 410, in parse
    eocd = EndOfCentralDirectoryRecord.parse(apk_file)
  File "/usr/local/lib/python3.10/dist-packages/apkInspector/headers.py", line 59, in parse
    raise ValueError("End of central directory record (EOCD) signature not found")
ValueError: End of central directory record (EOCD) signature not found
2024-04-25 13:00:23 +02:00
Hans-Christoph Steiner
ef4ec74882 some parts of androguard 4.x use loguru instead of logging 2024-04-25 12:39:12 +02:00
Hans-Christoph Steiner
1c84f63247 replace deprecated get_element() which was removed in 4.x
/usr/lib/python3/dist-packages/androguard/core/bytecodes/apk.py:884: DeprecationWarning: This method is deprecated since 3.3.5.

It was added in 3.3.5.  Debian/bullseye and Ubuntu/20.04/focal both include
new enough versions.  Debian/buster's is too old (3.3.3).
2024-04-25 12:39:12 +02:00
Hans-Christoph Steiner
5b7abc0423 single function to tame androguard's verbose default output
# Conflicts:
#	fdroidserver/common.py
2024-04-25 12:39:12 +02:00
Hans-Christoph Steiner
7a144a4762 port to androguard >= 4 and drop support for older than 3.3.3
This also makes androguard a hard requirement, which has been true for a
while anyway.  So the code that handles androguard as an optional
requirement is removed.  androguard from Debian/buster is new enough, so
this does not seem like it will cause any problems.
2024-04-25 12:39:12 +02:00
Hans-Christoph Steiner
cdc7c98707 common.get_androguard_APK() is no longer private to the module 2024-04-25 12:39:12 +02:00
Hans-Christoph Steiner
a742df3758
add CHANGELOG entry for v2.2.2 2024-04-25 12:39:00 +02:00
Hans-Christoph Steiner
e45e37b2df Merge branch 'altstore-index-fix' into 'master'
🐛 index fix: skip altstore when no IPAs present

See merge request fdroid/fdroidserver!1473
2024-04-24 12:05:03 +00:00
Michael Pöhn
005a33732c apply review suggestions 2024-04-24 11:56:07 +00:00
Michael Pöhn
bd6afa4365
🐛 index fix: skip altstore when no IPAs present 2024-04-24 12:45:29 +02:00
Hans-Christoph Steiner
07929ffe66 Merge branch 'black' into 'master'
move fdroidserver/deploy.py to black format

See merge request fdroid/fdroidserver!1472
2024-04-24 08:51:46 +00:00
Hans-Christoph Steiner
79f148167a deploy: automatically convert to black format 2024-04-24 08:42:15 +00:00
Hans-Christoph Steiner
cb04d801d8 deploy: manually move hard cases to black code format 2024-04-24 08:42:15 +00:00
Hans-Christoph Steiner
eacfb8095b Merge branch 'alt-store' into 'master'
iOS metadata + alt-store source support

See merge request fdroid/fdroidserver!1465
2024-04-24 08:39:05 +00:00
Hans-Christoph Steiner
9716b5e1ab index: manual black format 2024-04-24 10:29:50 +02:00
Michael Pöhn
d00a87ed6c
🏏 alt-store index: incorporate review feedback 2024-04-23 17:28:30 +02:00
Michael Pöhn
f2118b35a3
🏟️ fix ci 2024-04-23 16:06:10 +02:00
Michael Pöhn
45efb88f85
🕴️ add test for make_altstore 2024-04-23 16:05:58 +02:00
Michael Pöhn
86db8c93cc
🩹 fix parse_ipa tests 2024-04-23 16:05:47 +02:00
Michael Pöhn
f742799a9d
🏟️ add test for _parse_from_pbxproj
Also fix lint issues
2024-04-23 16:05:34 +02:00
Michael Pöhn
450765490b
🗺️ add test for _get_ipa_ico 2024-04-23 16:05:22 +02:00
Michael Pöhn
a21ed39117
🛻 move alstore index function
Move function for generating altstore index from update.py to index.py
2024-04-23 16:05:10 +02:00
Michael Pöhn
301f0c8273
🍎 altstore: implement ipa entitlement parser
This adds a parser for reading entitlement values from .ipa files.
Entitlement values are stored in files called
'.../embedded.mobileprovision' packed into .ipa files. These are CMS
signed plist files.

https://en.wikipedia.org/wiki/Cryptographic_Message_Syntax

This also ignores the 2 non-optional entitlements, as mentioned in
altstore docs:

https://faq.altstore.io/distribute-your-apps/make-a-source#entitlements-array-of-strings
2024-04-23 16:04:57 +02:00
Michael Pöhn
2658c22933
🖼️ altstore index screenshots and icons 2024-04-23 16:04:44 +02:00
Michael Pöhn
519c3c1fcf
👑 altstore index: add entitlement support 2024-04-23 16:04:31 +02:00
Michael Pöhn
93e7cc9092
📑 better alt-store index 2024-04-23 16:04:19 +02:00
Michael Pöhn
fb33ae58e2
🐑 naive alt-store support
Naive shot at implementing alt store support. Might still be missing important
bits and pices I'm not aware of.
2024-04-23 16:04:07 +02:00
110 changed files with 10886 additions and 1081 deletions

View File

@ -127,7 +127,7 @@ ubuntu_lts_ppa:
- export ANDROID_HOME=/usr/lib/android-sdk
- apt-get install gnupg
- while ! apt-key adv --keyserver keyserver.ubuntu.com --recv-key 9AAC253193B65D4DF1D0A13EEC4632C79C5E0151; do sleep 15; done
- export RELEASE=`sed -n 's,^deb [^ ][^ ]* \([a-z]*\).*,\1,p' /etc/apt/sources.list | head -1`
- export RELEASE=$(sed -n 's,^Suites\x3a \([a-z]*\).*,\1,p' /etc/apt/sources.list.d/*.sources | head -1)
- echo "deb http://ppa.launchpad.net/fdroid/fdroidserver/ubuntu $RELEASE main" >> /etc/apt/sources.list
- apt-get update
- apt-get dist-upgrade
@ -285,9 +285,7 @@ black:
- black --check --diff --color $CI_PROJECT_DIR
fedora_latest:
image: fedora:latest
only:
- master@fdroid/fdroidserver
image: fedora:39 # support ends on 2024-11-12
script:
# tricks to hopefully make runs more reliable
- echo "timeout=600" >> /etc/dnf/dnf.conf
@ -364,7 +362,7 @@ macOS:
- /bin/bash -n gradlew-fdroid tests/run-tests
# TODO remove the packages below once they are included in the Homebrew package
- $(brew --prefix fdroidserver)/libexec/bin/python3 -m pip install biplist pycountry
- $(brew --prefix fdroidserver)/libexec/bin/python3 -m pip install biplist oscrypto pycountry
# test fdroidserver from git with current package's dependencies
- fdroid="$(brew --prefix fdroidserver)/libexec/bin/python3 $PWD/fdroid" ./tests/run-tests

View File

@ -20,3 +20,6 @@ security:
63687:
reason: Only affects Windows https://security-tracker.debian.org/tracker/CVE-2024-22190
expires: '2026-01-31'
67599:
reason: Only affects pip when using --extra-index-url, which is never the case in fdroidserver CI.
expires: '2026-05-31'

View File

@ -15,6 +15,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
* The `maven:` field is now always a string, with `yes` as a legacy special
value. It is no longer treated like a boolean in any case.
## [2.2.2] - 2024-04-24
### Added
* Include sdkmanager as dep in setup.py for Homebrew package.
https://github.com/Homebrew/homebrew-core/pull/164510
## [2.2.1] - 2023-03-09
### Added

View File

@ -591,6 +591,11 @@ include tests/index.TestCase
include tests/init.TestCase
include tests/install.TestCase
include tests/IsMD5Disabled.java
include tests/issue-1128-min-sdk-30-poc.apk
include tests/issue-1128-poc1.apk
include tests/issue-1128-poc2.apk
include tests/issue-1128-poc3a.apk
include tests/issue-1128-poc3b.apk
include tests/janus.apk
include tests/keystore.jks
include tests/key-tricks.py
@ -723,6 +728,8 @@ include tests/repo/urzip-*.apk
include tests/repo/v1.v2.sig_1020.apk
include tests/rewritemeta.TestCase
include tests/run-tests
include tests/SANAPPSI.RSA
include tests/SANAPPSI.SF
include tests/scanner.TestCase
include tests/signatures.TestCase
include tests/signindex.TestCase

View File

@ -116,7 +116,7 @@ packages="
patch
python3-packaging
rsync
sdkmanager
sdkmanager/bookworm-backports
sudo
unzip
"

View File

@ -183,7 +183,7 @@
#
# serverwebroot:
# - url: 'me@b.az:/srv/fdroid'
# indexOnly: true
# index_only: true
# When running fdroid processes on a remote server, it is possible to
@ -209,7 +209,7 @@
# servergitmirrors:
# - url: https://github.com/user/repo
# - url: https://gitlab.com/user/repo
# indexOnly: true
# index_only: true
# Most git hosting services have hard size limits for each git repo.
# `fdroid deploy` will delete the git history when the git mirror repo
@ -267,10 +267,20 @@
# sync_from_local_copy_dir: true
# To upload the repo to an Amazon S3 bucket using `fdroid server
# update`. Warning, this deletes and recreates the whole fdroid/
# directory each time. This prefers s3cmd, but can also use
# apache-libcloud. To customize how s3cmd interacts with the cloud
# To upload the repo to an Amazon S3 bucket using `fdroid deploy'
# . rclone, s3cmd and apache libcloud are the available options.
# If rclone and s3cmd are not installed, apache libcloud is used.
# To use apache libcloud, add the following options to this file
# (config.yml)
#
# awsbucket: myawsfdroid
# awsaccesskeyid: SEE0CHAITHEIMAUR2USA
# awssecretkey: {env: awssecretkey}
#
# In case s3cmd is installed and rclone is not installed,
# s3cmd will be the preferred sync option.
# It will delete and recreate the whole fdroid directory each time.
# To customize how s3cmd interacts with the cloud
# provider, create a 's3cfg' file next to this file (config.yml), and
# those settings will be used instead of any 'aws' variable below.
# Secrets can be fetched from environment variables to ensure that
@ -279,6 +289,47 @@
# awsbucket: myawsfdroid
# awsaccesskeyid: SEE0CHAITHEIMAUR2USA
# awssecretkey: {env: awssecretkey}
#
# In case rclone is installed and s3cmd is not installed,
# rclone will be the preferred sync option.
# It will sync the local folders with remote folders without
# deleting anything in one go.
# To ensure success, install rclone as per
# the instructions at https://rclone.org/install/ and also configure for
# object storage services as detailed at https://rclone.org/s3/#configuration
# By default rclone uses the configuration file at ~/.config/rclone/rclone.conf
# To specify a custom configuration file, please add the full path to the
# configuration file as below
#
# path_to_custom_rclone_config: /home/mycomputer/somedir/example.conf
#
# This setting will ignore the default rclone config found at
# ~/.config/rclone/rclone.conf
#
# Please note that rclone_config can be assigned a string or list
#
# awsbucket: myawsfdroid
# rclone_config: aws-sample-config
#
# or
#
# awsbucket: myawsfdroid
# rclone_config: [aws-sample-config, rclone-supported-service-config]
#
# In case both rclone and s3cmd are installed, the preferred sync
# tool can be specified in this file (config.yml)
# if s3cmd is preferred, set it as below
#
# s3cmd: true
#
# if rclone is preferred, set it as below
#
# rclone: true
#
# Please note that only one can be set to true at any time
# Also, in the event that both s3cmd and rclone are installed
# and both are missing from the config.yml file, the preferred
# tool will be s3cmd.
# If you want to force 'fdroid server' to use a non-standard serverwebroot.

View File

@ -23,12 +23,11 @@ def main():
help=_("applicationId with optional versionCode in the form APPID[:VERCODE]"),
)
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
common.options = options
options = common.parse_args(parser)
pkgs = common.read_pkg_args(options.appid, True)
allapps = metadata.read_metadata(pkgs)
apps = common.read_app_args(options.appid, allapps, True)
common.read_config(options)
common.read_config()
for appid, app in apps.items():
if "Builds" in app and len(app["Builds"]) > 0:

View File

@ -25,8 +25,8 @@ def main():
global config
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
common.parse_args(parser)
config = common.read_config()
destkeystore = config['keystore'].replace('.jks', '.p12').replace('/', '_')
exportkeystore = config['keystore'].replace('.jks', '.pem').replace('/', '_')
if os.path.exists(destkeystore) or os.path.exists(exportkeystore):

View File

@ -14,8 +14,8 @@ fdroid_summary = 'export the keystore in standard PEM format'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
common.parse_args(parser)
config = common.read_config()
env_vars = {'LC_ALL': 'C.UTF-8',
'FDROID_KEY_STORE_PASS': config['keystorepass'],
'FDROID_KEY_PASS': config['keypass']}

View File

@ -12,8 +12,8 @@ fdroid_summary = 'export the keystore in standard PEM format'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
common.config = common.read_config(options)
common.parse_args(parser)
common.read_config()
pubkey, repo_pubkey_fingerprint = index.extract_pubkey()
print('repo_pubkey = "%s"' % pubkey.decode())

View File

@ -18,12 +18,11 @@ def main():
common.setup_global_opts(parser)
parser.add_argument("appid", nargs='*', help=_("applicationId with optional versionCode in the form APPID[:VERCODE]"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
common.options = options
options = common.parse_args(parser)
pkgs = common.read_pkg_args(options.appid, True)
allapps = metadata.read_metadata(pkgs)
apps = common.read_app_args(options.appid, allapps, True)
common.read_config(options)
common.read_config()
srclib_dir = os.path.join('build', 'srclib')
os.makedirs(srclib_dir, exist_ok=True)
srclibpaths = []

View File

@ -11,8 +11,8 @@ fdroid_summary = 'import the local keystore into a SmartCard HSM'
def main():
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
config = common.read_config(options)
common.parse_args(parser)
config = common.read_config()
env_vars = {
'LC_ALL': 'C.UTF-8',
'FDROID_KEY_STORE_PASS': config['keystorepass'],

View File

@ -182,7 +182,7 @@ def main():
"can not be specified at the same time."))
sys.exit(1)
# Trick optparse into displaying the right usage when --help is used.
# Trick argparse into displaying the right usage when --help is used.
sys.argv[0] += ' ' + command
del sys.argv[1]

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
"""Update the binary transparency log for a URL."""
#
# btlog.py - part of the FDroid server tools
# Copyright (C) 2017, Hans-Christoph Steiner <hans@eds.org>
@ -26,7 +27,6 @@
# client app so its not easy for the server to distinguish this from
# the F-Droid client.
import collections
import defusedxml.minidom
import git
@ -39,6 +39,7 @@ import shutil
import tempfile
import zipfile
from argparse import ArgumentParser
from typing import Optional
from . import _
from . import common
@ -46,18 +47,31 @@ from . import deploy
from .exception import FDroidException
options = None
def make_binary_transparency_log(
repodirs, btrepo='binary_transparency', url=None, commit_title='fdroid update'
repodirs: collections.abc.Iterable,
btrepo: str = 'binary_transparency',
url: Optional[str] = None,
commit_title: str = 'fdroid update',
):
"""Log the indexes in a standalone git repo to serve as a "binary transparency" log.
References
Parameters
----------
https://www.eff.org/deeplinks/2014/02/open-letter-to-tech-companies
repodirs
The directories of the F-Droid repository to generate the binary
transparency log for.
btrepo
The path to the Git repository of the binary transparency log.
url
The URL of the F-Droid repository to generate the binary transparency
log for.
commit_title
The commit title for commits in the binary transparency log Git
repository.
Notes
-----
Also see https://www.eff.org/deeplinks/2014/02/open-letter-to-tech-companies .
"""
logging.info('Committing indexes to ' + btrepo)
if os.path.exists(os.path.join(btrepo, '.git')):
@ -149,8 +163,17 @@ For more info on this idea:
def main():
global options
"""Generate or update a binary transparency log for a F-Droid repository.
The behaviour of this function is influenced by the configuration file as
well as command line parameters.
Raises
------
:exc:`~fdroidserver.exception.FDroidException`
If the specified or default Git repository does not exist.
"""
parser = ArgumentParser()
common.setup_global_opts(parser)
parser.add_argument(
@ -169,7 +192,7 @@ def main():
default=None,
help=_("Push the log to this git remote repository"),
)
options = parser.parse_args()
options = common.parse_args(parser)
if options.verbose:
logging.getLogger("requests").setLevel(logging.INFO)

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
"""Build a package from source."""
#
# build.py - part of the FDroid server tools
# Copyright (C) 2010-2014, Ciaran Gultnieks, ciaran@ciarang.com
@ -59,15 +60,30 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
Parameters
----------
app
app metadata dict
The metadata of the app to build.
build
The build of the app to build.
vcs
version control system controller object
The version control system controller object of the app.
build_dir
local source-code checkout of app
The local source-code checkout directory of the app.
output_dir
target folder for the build result
The target folder for the build result.
log_dir
The directory in the VM where the build logs are getting stored.
force
Don't refresh the already cloned repository and make the build stop on
exceptions.
Raises
------
:exc:`~fdroidserver.exception.BuildException`
If Paramiko is not installed, a srclib directory or srclib metadata
file is unexpectedly missing, the build process in the VM failed or
output files of the build process are missing.
:exc:`~fdroidserver.exception.FDroidException`
If the Buildserver ID could not be obtained or copying a directory to
the server failed.
"""
global buildserverid, ssh_channel
@ -115,8 +131,8 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
# Put all the necessary files in place...
ftp.chdir(homedir)
# Helper to copy the contents of a directory to the server...
def send_dir(path):
"""Copy the contents of a directory to the server."""
logging.debug("rsyncing %s to %s" % (path, ftp.getcwd()))
# TODO this should move to `vagrant rsync` from >= v1.5
try:
@ -316,6 +332,15 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
def force_gradle_build_tools(build_dir, build_tools):
"""Manipulate build tools version used in top level gradle file.
Parameters
----------
build_dir
The directory to start looking for gradle files.
build_tools
The build tools version that should be forced to use.
"""
for root, dirs, files in os.walk(build_dir):
for filename in files:
if not filename.endswith('.gradle'):
@ -342,6 +367,31 @@ def get_metadata_from_apk(app, build, apkfile):
"""Get the required metadata from the built APK.
VersionName is allowed to be a blank string, i.e. ''
Parameters
----------
app
The app metadata used to build the APK.
build
The build that resulted in the APK.
apkfile
The path of the APK file.
Returns
-------
versionCode
The versionCode from the APK or from the metadata is build.novcheck is
set.
versionName
The versionName from the APK or from the metadata is build.novcheck is
set.
Raises
------
:exc:`~fdroidserver.exception.BuildException`
If native code should have been built but was not packaged, no version
information or no package ID could be found or there is a mismatch
between the package ID in the metadata and the one found in the APK.
"""
appid, versionCode, versionName = common.get_apk_id(apkfile)
native_code = common.get_native_code(apkfile)
@ -362,7 +412,56 @@ def get_metadata_from_apk(app, build, apkfile):
def build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh):
"""Do a build locally."""
"""Do a build locally.
Parameters
----------
app
The metadata of the app to build.
build
The build of the app to build.
vcs
The version control system controller object of the app.
build_dir
The local source-code checkout directory of the app.
output_dir
The target folder for the build result.
log_dir
The directory in the VM where the build logs are getting stored.
srclib_dir
The path to the srclibs directory, usually 'build/srclib'.
extlib_dir
The path to the extlibs directory, usually 'build/extlib'.
tmp_dir
The temporary directory for building the source tarball.
force
Don't refresh the already cloned repository and make the build stop on
exceptions.
onserver
Assume the build is happening inside the VM.
refresh
Enable fetching the latest refs from the VCS remote.
Raises
------
:exc:`~fdroidserver.exception.BuildException`
If running a `sudo` command failed, locking the root account failed,
`sudo` couldn't be removed, cleaning the build environment failed,
skipping the scanning has been requested but `scandelete` is present,
errors occurred during scanning, running the `build` commands from the
metadata failed, building native code failed, building with the
specified build method failed, no output could be found with build
method `maven`, more or less than one APK were found with build method
`gradle`, less or more than one APKs match the `output` glob specified
in the metadata, running a `postbuild` command specified in the
metadata failed, the built APK is debuggable, the unsigned APK is not
at the expected location, the APK does not contain the expected
`versionName` and `versionCode` or undesired package names have been
found in the APK.
:exc:`~fdroidserver.exception.FDroidException`
If no Android NDK version could be found and the build isn't run in a
builder VM, the selected Android NDK is not a directory.
"""
ndk_path = build.ndk_path()
if build.ndk or (build.buildjni and build.buildjni != ['no']):
if not ndk_path:
@ -766,23 +865,47 @@ def trybuild(app, build, build_dir, output_dir, log_dir, also_check_dir,
Parameters
----------
app
The metadata of the app to build.
build
The build of the app to build.
build_dir
The local source-code checkout directory of the app.
output_dir
The directory where the build output will go.
Usually this is the 'unsigned' directory.
The directory where the build output will go. Usually this is the
'unsigned' directory.
log_dir
The directory in the VM where the build logs are getting stored.
also_check_dir
An additional location for checking if the build is necessary (usually
the archive repo).
srclib_dir
The path to the srclibs directory, usually 'build/srclib'.
extlib_dir
The path to the extlibs directory, usually 'build/extlib'.
tmp_dir
The temporary directory for building the source tarball of the app to
build.
repo_dir
The repo directory - used for checking if the build is necessary.
also_check_dir
An additional location for checking if the build
is necessary (usually the archive repo)
vcs
The version control system controller object of the app to build.
test
True if building in test mode, in which case the build will
always happen, even if the output already exists. In test mode, the
output directory should be a temporary location, not any of the real
ones.
True if building in test mode, in which case the build will always
happen, even if the output already exists. In test mode, the output
directory should be a temporary location, not any of the real ones.
server
Use buildserver VM for building.
force
Build app regardless of disabled state or scanner errors.
onserver
Assume the build is happening inside the VM.
refresh
Enable fetching the latest refs from the VCS remote.
Returns
-------
Boolean
status
True if the build was done, False if it wasn't necessary.
"""
dest_file = common.get_release_filename(app, build)
@ -821,7 +944,13 @@ def trybuild(app, build, build_dir, output_dir, log_dir, also_check_dir,
def force_halt_build(timeout):
"""Halt the currently running Vagrant VM, to be called from a Timer."""
"""Halt the currently running Vagrant VM, to be called from a Timer.
Parameters
----------
timeout
The timeout in seconds.
"""
logging.error(_('Force halting build after {0} sec timeout!').format(timeout))
timeout_event.set()
if ssh_channel:
@ -845,7 +974,9 @@ def parse_commandline():
Returns
-------
options
The resulting options parsed from the command line arguments.
parser
The argument parser.
"""
parser = argparse.ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]")
common.setup_global_opts(parser)
@ -883,7 +1014,7 @@ def parse_commandline():
parser.add_argument("-w", "--wiki", default=False, action="store_true",
help=argparse.SUPPRESS)
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
# Force --stop with --on-server to get correct exit code
@ -905,6 +1036,22 @@ timeout_event = threading.Event()
def main():
"""Build a package from source.
The behaviour of this function is influenced by the configuration file as
well as command line parameters.
Raises
------
:exc:`~fdroidserver.exception.FDroidException`
If more than one local metadata file has been found, no app metadata
has been found, there are no apps to process, downloading binaries for
checking the reproducibility of a built binary failed, the built binary
is different from supplied reference binary, the reference binary is
signed with a different signing key than expected, a VCS error occured
while building an app or a different error occured while building an
app.
"""
global options, config, buildserverid, fdroidserverid
options, parser = parse_commandline()
@ -929,7 +1076,7 @@ def main():
if not options.appid and not options.all:
parser.error("option %s: If you really want to build all the apps, use --all" % "all")
config = common.read_config(opts=options)
config = common.read_config()
if config['build_server_always']:
options.server = True

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
"""Check for updates to applications."""
#
# checkupdates.py - part of the FDroid server tools
# Copyright (C) 2010-2015, Ciaran Gultnieks, ciaran@ciarang.com
@ -505,7 +506,7 @@ def operate_vercode(operation: str, vercode: int) -> int:
return vercode
def checkupdates_app(app: metadata.App) -> None:
def checkupdates_app(app: metadata.App, auto: bool, commit: bool = False) -> None:
"""Check for new versions and updated name of a single app.
Also write back changes to the metadata file and create a Git commit if
@ -581,7 +582,7 @@ def checkupdates_app(app: metadata.App) -> None:
logging.info('...updating to version %s' % ver)
commitmsg = 'Update CurrentVersion of %s to %s' % (name, ver)
if options.auto:
if auto:
mode = app.AutoUpdateMode
if not app.CurrentVersionCode:
raise MetaDataException(
@ -664,7 +665,7 @@ def checkupdates_app(app: metadata.App) -> None:
if commitmsg:
metadata.write_metadata(app.metadatapath, app)
if options.commit:
if commit:
logging.info("Commiting update for " + app.metadatapath)
gitcmd = ["git", "commit", "-m", commitmsg]
if 'auto_author' in config:
@ -694,7 +695,6 @@ def status_update_json(processed: list, failed: dict) -> None:
config = None
options = None
start_timestamp = time.gmtime()
@ -704,7 +704,7 @@ def main():
The behaviour of this function is influenced by the configuration file as
well as command line parameters.
"""
global config, options
global config
# Parse command line...
parser = ArgumentParser()
@ -719,10 +719,10 @@ def main():
parser.add_argument("--allow-dirty", action="store_true", default=False,
help=_("Run on git repo that has uncommitted changes"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
if not options.allow_dirty:
status = subprocess.check_output(['git', 'status', '--porcelain'])
@ -748,7 +748,7 @@ def main():
logging.info(msg)
try:
checkupdates_app(app)
checkupdates_app(app, options.auto, options.commit)
processed.append(appid)
except Exception as e:
msg = _("...checkupdate failed for {appid} : {error}").format(appid=appid, error=e)

View File

@ -29,6 +29,7 @@
# libraries here as they will become a requirement for all commands.
import difflib
from typing import List
import git
import glob
import io
@ -54,16 +55,13 @@ from pathlib import Path
import defusedxml.ElementTree as XMLElementTree
from asn1crypto import cms
from base64 import urlsafe_b64encode
from binascii import hexlify
from datetime import datetime, timedelta, timezone
from queue import Queue
from zipfile import ZipFile
from pyasn1.codec.der import decoder, encoder
from pyasn1_modules import rfc2315
from pyasn1.error import PyAsn1Error
import fdroidserver.metadata
import fdroidserver.lint
from fdroidserver import _
@ -194,6 +192,34 @@ default_config = {
}
def get_options():
"""Return options as set up by parse_args().
This provides an easy way to get the global instance without
having to think about very confusing import and submodule
visibility. The code should be probably refactored so it does not
need this. If each individual option value was always passed to
functions as args, for example.
https://docs.python.org/3/reference/import.html#submodules
"""
return fdroidserver.common.options
def parse_args(parser):
"""Call parser.parse_args(), store result in module-level variable and return it.
This is needed to set up the copy of the options instance in the
fdroidserver.common module. A subcommand only needs to call this
if it uses functions from fdroidserver.common that expect the
"options" variable to be initialized.
"""
fdroidserver.common.options = parser.parse_args()
return fdroidserver.common.options
def setup_global_opts(parser):
try: # the buildserver VM might not have PIL installed
from PIL import PngImagePlugin
@ -376,20 +402,38 @@ def fill_config_defaults(thisconfig):
thisconfig['gradle_version_dir'] = str(Path(thisconfig['cachedir']) / 'gradle')
def get_config(opts=None):
"""Get config instace. This function takes care of initializing config data before returning it."""
global config, options
def get_config():
"""Get the initalized, singleton config instance.
config and options are intertwined in read_config(), so they have
to be here too. In the current ugly state of things, there are
multiple potential instances of config and options in use:
* global
* module-level in the subcommand module (e.g. fdroidserver/build.py)
* module-level in fdroidserver.common
There are some insane parts of the code that are probably
referring to multiple instances of these at different points.
This can be super confusing and maddening.
The current intermediate refactoring step is to move all
subcommands to always get/set config and options via this function
so that there is no longer a distinction between the global and
module-level instances. Then there can be only one module-level
instance in fdroidserver.common.
"""
global config
if config is not None:
return config
common.read_config(opts=opts)
read_config()
# make sure these values are available in common.py even if they didn't
# declare global in a scope
common.config = config
if opts is not None:
common.options = opts
return config
@ -422,7 +466,7 @@ def config_type_check(path, data):
)
def read_config(opts=None):
def read_config():
"""Read the repository config.
The config is read from config_file, which is in the current
@ -441,13 +485,11 @@ def read_config(opts=None):
in git, it makes sense to use a globally standard encoding.
"""
global config, options
global config
if config is not None:
return config
options = opts
config = {}
config_file = 'config.yml'
old_config_file = 'config.py'
@ -480,8 +522,8 @@ def read_config(opts=None):
# smartcardoptions must be a list since its command line args for Popen
smartcardoptions = config.get('smartcardoptions')
if isinstance(smartcardoptions, str):
options = re.sub(r'\s+', r' ', config['smartcardoptions']).split(' ')
config['smartcardoptions'] = [i.strip() for i in options if i]
sco_items = re.sub(r'\s+', r' ', config['smartcardoptions']).split(' ')
config['smartcardoptions'] = [i.strip() for i in sco_items if i]
elif not smartcardoptions and 'keystore' in config and config['keystore'] == 'NONE':
# keystore='NONE' means use smartcard, these are required defaults
config['smartcardoptions'] = ['-storetype', 'PKCS11', '-providerName',
@ -573,7 +615,7 @@ def parse_mirrors_config(mirrors):
def file_entry(filename, hash_value=None):
meta = {}
meta["name"] = "/" + Path(filename).as_posix().split("/", 1)[1]
meta["sha256"] = hash_value or common.sha256sum(filename)
meta["sha256"] = hash_value or sha256sum(filename)
meta["size"] = os.stat(filename).st_size
return meta
@ -2354,6 +2396,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
gradlefile = build_gradle
elif os.path.exists(build_gradle_kts):
gradlefile = build_gradle_kts
else:
raise BuildException("No gradle file found")
regsub_file(r'compileSdkVersion[ =]+[0-9]+',
r'compileSdkVersion %s' % n,
gradlefile)
@ -2629,31 +2673,48 @@ def get_file_extension(filename):
return os.path.splitext(filename)[1].lower()[1:]
def use_androguard():
"""Report if androguard is available, and config its debug logging."""
def _androguard_logging_level(level=logging.ERROR):
"""Tames androguard's default debug output.
There should be no debug output when the functions are being used
via the API. Otherwise, the output is controlled by the --verbose
flag.
To get coverage across the full range of androguard >= 3.3.5, this
includes all known logger names that are relevant. So some of
these names might not be present in the version of androguard
currently in use.
"""
if options and options.verbose:
level = logging.WARNING
for name in (
'androguard.apk',
'androguard.axml',
'androguard.core.api_specific_resources',
'androguard.core.apk',
'androguard.core.axml',
):
logging.getLogger(name).setLevel(level)
# some parts of androguard 4.x use loguru instead of logging
try:
import androguard
if use_androguard.show_path:
logging.debug(_('Using androguard from "{path}"').format(path=androguard.__file__))
use_androguard.show_path = False
if options and options.verbose:
logging.getLogger("androguard.axml").setLevel(logging.INFO)
logging.getLogger("androguard.core.api_specific_resources").setLevel(logging.ERROR)
return True
from loguru import logger
logger.remove()
except ImportError:
return False
pass
use_androguard.show_path = True # type: ignore
def _get_androguard_APK(apkfile):
def get_androguard_APK(apkfile, skip_analysis=False):
try:
# these were moved in androguard 4.0
from androguard.core.apk import APK
except ImportError:
from androguard.core.bytecodes.apk import APK
except ImportError as exc:
raise FDroidException("androguard library is not installed") from exc
_androguard_logging_level()
return APK(apkfile)
return APK(apkfile, skip_analysis=skip_analysis)
def ensure_final_value(packageName, arsc, value):
@ -2693,7 +2754,13 @@ def is_debuggable_or_testOnly(apkfile):
"""
if get_file_extension(apkfile) != 'apk':
return False
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG
try:
# these were moved in androguard 4.0
from androguard.core.axml import AXMLParser, format_value, START_TAG
except ImportError:
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG
_androguard_logging_level()
with ZipFile(apkfile) as apk:
with apk.open('AndroidManifest.xml') as manifest:
axml = AXMLParser(manifest.read())
@ -2753,12 +2820,20 @@ def get_apk_id_androguard(apkfile):
versionName is set to a Android String Resource (e.g. an integer
hex value that starts with @).
This function is part of androguard as get_apkid(), so this
vendored and modified to return versionCode as an integer.
"""
if not os.path.exists(apkfile):
raise FDroidException(_("Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'")
.format(apkfilename=apkfile))
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
try:
# these were moved in androguard 4.0
from androguard.core.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
except ImportError:
from androguard.core.bytecodes.axml import AXMLParser, format_value, START_TAG, END_TAG, TEXT, END_DOCUMENT
_androguard_logging_level()
appid = None
versionCode = None
@ -2793,7 +2868,7 @@ def get_apk_id_androguard(apkfile):
.format(path=apkfile))
if not versionName or versionName[0] == '@':
a = _get_androguard_APK(apkfile)
a = get_androguard_APK(apkfile)
versionName = ensure_final_value(a.package, a.get_android_resources(), a.get_androidversion_name())
if not versionName:
versionName = '' # versionName is expected to always be a str
@ -3131,10 +3206,7 @@ def signer_fingerprint_short(cert_encoded):
def signer_fingerprint(cert_encoded):
"""Obtain sha256 signing-key fingerprint for pkcs7 DER certificate.
Extracts hexadecimal sha256 signing-key fingerprint string
for a given pkcs7 signature.
"""Return SHA-256 signer fingerprint for PKCS#7 DER-encoded signature.
Parameters
----------
@ -3142,46 +3214,113 @@ def signer_fingerprint(cert_encoded):
Returns
-------
shortened signature fingerprint.
Standard SHA-256 signer fingerprint.
"""
return hashlib.sha256(cert_encoded).hexdigest()
def get_first_signer_certificate(apkpath):
"""Get the first signing certificate from the APK, DER-encoded."""
certs = None
cert_encoded = None
with zipfile.ZipFile(apkpath, 'r') as apk:
cert_files = [n for n in apk.namelist() if SIGNATURE_BLOCK_FILE_REGEX.match(n)]
if len(cert_files) > 1:
logging.error(_("Found multiple JAR Signature Block Files in {path}").format(path=apkpath))
return None
elif len(cert_files) == 1:
cert_encoded = get_certificate(apk.read(cert_files[0]))
"""Get the first signing certificate from the APK, DER-encoded.
if not cert_encoded and use_androguard():
apkobject = _get_androguard_APK(apkpath)
certs = apkobject.get_certificates_der_v2()
if len(certs) > 0:
logging.debug(_('Using APK Signature v2'))
cert_encoded = certs[0]
JAR and APK Signatures allow for multiple signers, though it is
rarely used, and this is poorly documented. So this method only
fetches the first certificate, and errors out if there are more.
Starting with targetSdkVersion 30, APK v2 Signatures are required.
https://developer.android.com/about/versions/11/behavior-changes-11#minimum-signature-scheme
When a APK v2+ signature is present, the JAR signature is not
verified. The verifier parses the signers from the v2+ signature
and does not seem to look at the JAR signature.
https://source.android.com/docs/security/features/apksigning/v2#apk-signature-scheme-v2-block
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/ApkVerifier.java#270
apksigner checks that the signers from all the APK signatures match:
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/ApkVerifier.java#383
apksigner verifies each signer's signature block file
.(RSA|DSA|EC) against the corresponding signature file .SF
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java#280
NoOverwriteDict is a workaround for:
https://github.com/androguard/androguard/issues/1030
Lots more discusion here:
https://gitlab.com/fdroid/fdroidserver/-/issues/1128
"""
class NoOverwriteDict(dict):
def __setitem__(self, k, v):
if k not in self:
super().__setitem__(k, v)
cert_encoded = None
found_certs = []
apkobject = get_androguard_APK(apkpath)
apkobject._v2_blocks = NoOverwriteDict()
certs_v3 = apkobject.get_certificates_der_v3()
if certs_v3:
cert_v3 = certs_v3[0]
found_certs.append(cert_v3)
if not cert_encoded:
certs = apkobject.get_certificates_der_v3()
if len(certs) > 0:
logging.debug(_('Using APK Signature v3'))
cert_encoded = certs[0]
logging.debug(_('Using APK Signature v3'))
cert_encoded = cert_v3
certs_v2 = apkobject.get_certificates_der_v2()
if certs_v2:
cert_v2 = certs_v2[0]
found_certs.append(cert_v2)
if not cert_encoded:
logging.debug(_('Using APK Signature v2'))
cert_encoded = cert_v2
if get_min_sdk_version(apkobject) < 24 or (
not (certs_v3 or certs_v2) and get_effective_target_sdk_version(apkobject) < 30
):
with zipfile.ZipFile(apkpath, 'r') as apk:
cert_files = [
n for n in apk.namelist() if SIGNATURE_BLOCK_FILE_REGEX.match(n)
]
if len(cert_files) > 1:
logging.error(
_("Found multiple JAR Signature Block Files in {path}").format(
path=apkpath
)
)
return
elif len(cert_files) == 1:
signature_block_file = cert_files[0]
signature_file = (
cert_files[0][: signature_block_file.rindex('.')] + '.SF'
)
cert_v1 = get_certificate(
apk.read(signature_block_file),
apk.read(signature_file),
)
found_certs.append(cert_v1)
if not cert_encoded:
logging.debug(_('Using JAR Signature'))
cert_encoded = cert_v1
if not cert_encoded:
logging.error(_("No signing certificates found in {path}").format(path=apkpath))
return None
return
if not all(cert == found_certs[0] for cert in found_certs):
logging.error(
_("APK signatures have different certificates in {path}:").format(
path=apkpath
)
)
return
return cert_encoded
def apk_signer_fingerprint(apk_path):
"""Obtain sha256 signing-key fingerprint for APK.
Extracts hexadecimal sha256 signing-key fingerprint string
for a given APK.
"""Get SHA-256 fingerprint string for the first signer from given APK.
Parameters
----------
@ -3190,7 +3329,8 @@ def apk_signer_fingerprint(apk_path):
Returns
-------
signature fingerprint
Standard SHA-256 signer fingerprint
"""
cert_encoded = get_first_signer_certificate(apk_path)
if not cert_encoded:
@ -3199,10 +3339,7 @@ def apk_signer_fingerprint(apk_path):
def apk_signer_fingerprint_short(apk_path):
"""Obtain shortened sha256 signing-key fingerprint for APK.
Extracts the first 7 hexadecimal digits of sha256 signing-key fingerprint
for a given pkcs7 APK.
"""Get 7 hex digit SHA-256 fingerprint string for the first signer from given APK.
Parameters
----------
@ -3211,7 +3348,8 @@ def apk_signer_fingerprint_short(apk_path):
Returns
-------
shortened signing-key fingerprint
first 7 chars of the standard SHA-256 signer fingerprint
"""
return apk_signer_fingerprint(apk_path)[:7]
@ -3430,7 +3568,7 @@ def apk_extract_signatures(apkpath, outdir):
def get_min_sdk_version(apk):
"""Wrap the androguard function to always return and int.
"""Wrap the androguard function to always return an integer.
Fall back to 1 if we can't get a valid minsdk version.
@ -3441,7 +3579,7 @@ def get_min_sdk_version(apk):
Returns
-------
minsdk: int
minSdkVersion: int
"""
try:
return int(apk.get_min_sdk_version())
@ -3449,6 +3587,24 @@ def get_min_sdk_version(apk):
return 1
def get_effective_target_sdk_version(apk):
"""Wrap the androguard function to always return an integer.
Parameters
----------
apk
androguard APK object
Returns
-------
targetSdkVersion: int
"""
try:
return int(apk.get_effective_target_sdk_version())
except TypeError:
return get_min_sdk_version(apk)
def get_apksigner_smartcardoptions(smartcardoptions):
if '-providerName' in smartcardoptions.copy():
pos = smartcardoptions.index('-providerName')
@ -3860,14 +4016,33 @@ def get_cert_fingerprint(pubkey):
return " ".join(ret)
def get_certificate(signature_block_file):
"""Extract a DER certificate from JAR Signature's "Signature Block File".
def get_certificate(signature_block_file, signature_file=None):
"""Extract a single DER certificate from JAR Signature's "Signature Block File".
If there is more than one signer certificate, this exits with an
error, unless the signature_file is provided. If that is set, it
will return the certificate that matches the Signature File, for
example, if there is a certificate chain, like TLS does. In the
fdroidserver use cases, there should always be a single signer.
But rarely, some APKs include certificate chains.
This could be replaced by androguard's APK.get_certificate_der()
provided the cert chain fix was merged there. Maybe in 4.1.2?
https://github.com/androguard/androguard/pull/1038
https://docs.oracle.com/en/java/javase/21/docs/specs/man/jarsigner.html#the-signed-jar-file
Parameters
----------
signature_block_file
file bytes (as string) representing the
certificate, as read directly out of the APK/ZIP
Bytes representing the PKCS#7 signer certificate and
signature, as read directly out of the JAR/APK, e.g. CERT.RSA.
signature_file
Bytes representing the manifest signed by the Signature Block
File, e.g. CERT.SF. If this is not given, the assumption is
there will be only a single certificate in
signature_block_file, otherwise it is an error.
Returns
-------
@ -3875,18 +4050,107 @@ def get_certificate(signature_block_file):
or None in case of error
"""
content = decoder.decode(signature_block_file, asn1Spec=rfc2315.ContentInfo())[0]
if content.getComponentByName('contentType') != rfc2315.signedData:
return None
content = decoder.decode(content.getComponentByName('content'),
asn1Spec=rfc2315.SignedData())[0]
try:
certificates = content.getComponentByName('certificates')
cert = certificates[0].getComponentByName('certificate')
except PyAsn1Error:
logging.error("Certificates not found.")
return None
return encoder.encode(cert)
pkcs7obj = cms.ContentInfo.load(signature_block_file)
certificates = pkcs7obj['content']['certificates']
if len(certificates) == 1:
return certificates[0].chosen.dump()
elif not signature_file:
logging.error(_('Found multiple Signer Certificates!'))
return
certificate = get_jar_signer_certificate(pkcs7obj, signature_file)
if certificate:
return certificate.chosen.dump()
def _find_matching_certificate(signer_info, certificate):
"""Find the certificates that matches signer_info using issuer and serial number.
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java#590
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/internal/x509/Certificate.java#55
"""
certificate_serial = certificate.chosen['tbs_certificate']['serial_number']
expected_issuer_serial = signer_info['sid'].chosen
return (
expected_issuer_serial['issuer'] == certificate.chosen.issuer
and expected_issuer_serial['serial_number'] == certificate_serial
)
def get_jar_signer_certificate(pkcs7obj: cms.ContentInfo, signature_file: bytes):
"""Return the one certificate in a chain that actually signed the manifest.
PKCS#7-signed data can include certificate chains for use cases
where an Certificate Authority (CA) is used. Android does not
validate the certificate chain on APK signatures, so neither does
this.
https://android.googlesource.com/platform/tools/apksig/+/refs/tags/android-13.0.0_r3/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java#512
Some useful fodder for understanding all this:
https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html
https://technotes.shemyak.com/posts/jar-signature-block-file-format/
https://docs.oracle.com/en/java/javase/21/docs/specs/man/jarsigner.html#the-signed-jar-file
https://qistoph.blogspot.com/2012/01/manual-verify-pkcs7-signed-data-with.html
"""
import oscrypto.asymmetric
import oscrypto.errors
# Android attempts to verify all SignerInfos and then picks the first verified SignerInfo.
first_verified_signer_info = None
first_verified_signer_info_signing_certificate = None
for signer_info in pkcs7obj['content']['signer_infos']:
signature = signer_info['signature'].contents
digest_algorithm = signer_info["digest_algorithm"]["algorithm"].native
public_key = None
for certificate in pkcs7obj['content']['certificates']:
if _find_matching_certificate(signer_info, certificate):
public_key = oscrypto.asymmetric.load_public_key(certificate.chosen.public_key)
break
if public_key is None:
logging.info('No certificate found that matches signer info!')
continue
signature_algo = signer_info['signature_algorithm'].signature_algo
if signature_algo == 'rsassa_pkcs1v15':
# ASN.1 - 1.2.840.113549.1.1.1
verify_func = oscrypto.asymmetric.rsa_pkcs1v15_verify
elif signature_algo == 'rsassa_pss':
# ASN.1 - 1.2.840.113549.1.1.10
verify_func = oscrypto.asymmetric.rsa_pss_verify
elif signature_algo == 'dsa':
# ASN.1 - 1.2.840.10040.4.1
verify_func = oscrypto.asymmetric.dsa_verify
elif signature_algo == 'ecdsa':
# ASN.1 - 1.2.840.10045.4
verify_func = oscrypto.asymmetric.ecdsa_verify
else:
logging.error(
'Unknown signature algorithm %s:\n %s\n %s'
% (
signature_algo,
hexlify(certificate.chosen.sha256).decode(),
certificate.chosen.subject.human_friendly,
),
)
return
try:
verify_func(public_key, signature, signature_file, digest_algorithm)
if not first_verified_signer_info:
first_verified_signer_info = signer_info
first_verified_signer_info_signing_certificate = certificate
except oscrypto.errors.SignatureError as e:
logging.error(
'"%s", skipping:\n %s\n %s' % (
e,
hexlify(certificate.chosen.sha256).decode(),
certificate.chosen.subject.human_friendly),
)
if first_verified_signer_info_signing_certificate:
return first_verified_signer_info_signing_certificate
def load_stats_fdroid_signing_key_fingerprints():
@ -4037,7 +4301,7 @@ def get_app_display_name(app):
return app.get('AutoName') or app['id']
def local_rsync(options, fromdir, todir):
def local_rsync(options, from_paths: List[str], todir: str):
"""Rsync method for local to local copying of things.
This is an rsync wrapper with all the settings for safe use within
@ -4054,8 +4318,8 @@ def local_rsync(options, fromdir, todir):
rsyncargs += ['--verbose']
if options.quiet:
rsyncargs += ['--quiet']
logging.debug(' '.join(rsyncargs + [fromdir, todir]))
if subprocess.call(rsyncargs + [fromdir, todir]) != 0:
logging.debug(' '.join(rsyncargs + from_paths + [todir]))
if subprocess.call(rsyncargs + from_paths + [todir]) != 0:
raise FDroidException()
@ -4165,7 +4429,12 @@ def is_repo_file(filename, for_gpg_signing=False):
b'index_unsigned.jar',
]
if not for_gpg_signing:
ignore_files += [b'entry.json', b'index-v1.json', b'index-v2.json']
ignore_files += [
b'altstore-index.json',
b'entry.json',
b'index-v1.json',
b'index-v2.json',
]
return (
os.path.isfile(filename)

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,6 @@ from .common import FDroidPopen
from .exception import FDroidException
config = None
options = None
start_timestamp = time.gmtime()
@ -42,14 +41,14 @@ def status_update_json(signed):
def main():
global config, options
global config
# Parse command line...
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
common.parse_args(parser)
config = common.read_config(options)
config = common.read_config()
repodirs = ['repo']
if config['archive_older'] != 0:

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
"""Extract application metadata from a source repository."""
#
# import_subcommand.py - part of the FDroid server tools
# Copyright (C) 2010-13, Ciaran Gultnieks, ciaran@ciarang.com
@ -30,6 +31,7 @@ import yaml
from argparse import ArgumentParser
import logging
from pathlib import Path
from typing import Optional
try:
from yaml import CSafeLoader as SafeLoader
@ -43,7 +45,6 @@ from .exception import FDroidException
config = None
options = None
def handle_retree_error_on_windows(function, path, excinfo):
@ -53,7 +54,20 @@ def handle_retree_error_on_windows(function, path, excinfo):
function(path)
def clone_to_tmp_dir(app):
def clone_to_tmp_dir(app: metadata.App, rev=None) -> Path:
"""Clone the source repository of an app to a temporary directory for further processing.
Parameters
----------
app
The App instance to clone the source of.
Returns
-------
tmp_dir
The (temporary) directory the apps source has been cloned into.
"""
tmp_dir = Path('tmp')
tmp_dir.mkdir(exist_ok=True)
@ -62,12 +76,12 @@ def clone_to_tmp_dir(app):
if tmp_dir.exists():
shutil.rmtree(str(tmp_dir), onerror=handle_retree_error_on_windows)
vcs = common.getvcs(app.RepoType, app.Repo, tmp_dir)
vcs.gotorevision(options.rev)
vcs.gotorevision(rev)
return tmp_dir
def getrepofrompage(url):
def getrepofrompage(url: str) -> tuple[Optional[str], str]:
"""Get the repo type and address from the given web page.
The page is scanned in a rather naive manner for 'git clone xxxx',
@ -75,6 +89,17 @@ def getrepofrompage(url):
that's the information we want. Returns repotype, address, or
None, reason
Parameters
----------
url
The url to look for repository information at.
Returns
-------
repotype_or_none
The found repository type or None if an error occured.
address_or_reason
The address to the found repository or the reason if an error occured.
"""
if not url.startswith('http'):
return (None, _('{url} does not start with "http"!'.format(url=url)))
@ -120,13 +145,29 @@ def getrepofrompage(url):
return (None, _("No information found.") + page)
def get_app_from_url(url):
def get_app_from_url(url: str) -> metadata.App:
"""Guess basic app metadata from the URL.
The URL must include a network hostname, unless it is an lp:,
file:, or git/ssh URL. This throws ValueError on bad URLs to
match urlparse().
Parameters
----------
url
The URL to look to look for app metadata at.
Returns
-------
app
App instance with the found metadata.
Raises
------
:exc:`~fdroidserver.exception.FDroidException`
If the VCS type could not be determined.
:exc:`ValueError`
If the URL is invalid.
"""
parsed = urllib.parse.urlparse(url)
invalid_url = False
@ -183,7 +224,21 @@ def get_app_from_url(url):
def main():
global config, options
"""Extract app metadata and write it to a file.
The behaviour of this function is influenced by the configuration file as
well as command line parameters.
Raises
------
:exc:`~fdroidserver.exception.FDroidException`
If the repository already has local metadata, no URL is specified and
the current directory is not a Git repository, no application ID could
be found, no Gradle project could be found or there is already metadata
for the found application ID.
"""
global config
# Parse command line...
parser = ArgumentParser()
@ -201,10 +256,10 @@ def main():
parser.add_argument("--rev", default=None,
help=_("Allows a different revision (or git branch) to be specified for the initial import"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
apps = metadata.read_metadata()
app = None
@ -235,7 +290,7 @@ def main():
write_local_file = True
elif options.url:
app = get_app_from_url(options.url)
tmp_importer_dir = clone_to_tmp_dir(app)
tmp_importer_dir = clone_to_tmp_dir(app, options.rev)
git_repo = git.Repo(tmp_importer_dir)
if not options.omit_disable:

View File

@ -125,6 +125,13 @@ def make(apps, apks, repodir, archive):
make_v2(sortedapps, apks, repodir, repodict, requestsdict,
fdroid_signing_key_fingerprints, archive)
make_website(sortedapps, repodir, repodict)
make_altstore(
sortedapps,
apks,
common.config,
repodir,
pretty=common.options.pretty,
)
def _should_file_be_generated(path, magic_string):
@ -1750,3 +1757,100 @@ def get_public_key_from_jar(jar):
public_key_fingerprint = common.get_cert_fingerprint(public_key).replace(' ', '')
return public_key, public_key_fingerprint
def make_altstore(apps, apks, config, repodir, pretty=False):
"""Assemble altstore-index.json for iOS (.ipa) apps.
builds index files based on:
https://faq.altstore.io/distribute-your-apps/make-a-source
https://faq.altstore.io/distribute-your-apps/updating-apps
"""
if not any(Path(repodir).glob('*.ipa')):
# no IPA files present in repo, nothing to do here, exiting early
return
indent = 2 if pretty else None
# for now alt-store support is english only
for lang in ['en']:
# prepare minimal altstore index
idx = {
'name': config['repo_name'],
"apps": [],
"news": [],
}
# add optional values if available
# idx["subtitle"] F-Droid doesn't have a corresponding value
if config.get("repo_description"):
idx['description'] = config['repo_description']
if (Path(repodir) / 'icons' / config['repo_icon']).exists():
idx['iconURL'] = f"{config['repo_url']}/icons/{config['repo_icon']}"
# idx["headerURL"] F-Droid doesn't have a corresponding value
# idx["website"] F-Droid doesn't have a corresponding value
# idx["patreonURL"] F-Droid doesn't have a corresponding value
# idx["tintColor"] F-Droid doesn't have a corresponding value
# idx["featuredApps"] = [] maybe mappable to F-Droids what's new?
# assemble "apps"
for packageName, app in apps.items():
app_name = app.get("Name") or app.get("AutoName")
icon_url = "{}{}".format(
config['repo_url'],
app.get('iconv2', {}).get(DEFAULT_LOCALE, {}).get('name', ''),
)
screenshot_urls = [
"{}{}".format(config["repo_url"], s["name"])
for s in app.get("screenshots", {})
.get("phone", {})
.get(DEFAULT_LOCALE, {})
]
a = {
"name": app_name,
'bundleIdentifier': packageName,
'developerName': app.get("AuthorName") or f"{app_name} team",
'iconURL': icon_url,
"localizedDescription": "",
'appPermissions': {
"entitlements": set(),
"privacy": {},
},
'versions': [],
}
if app.get('summary'):
a['subtitle'] = app['summary']
# a["tintColor"] F-Droid doesn't have a corresponding value
# a["category"] F-Droid doesn't have a corresponding value
# a['patreon'] F-Droid doesn't have a corresponding value
a["screenshots"] = screenshot_urls
# populate 'versions'
for apk in apks:
last4 = apk.get('apkName', '').lower()[-4:]
if apk['packageName'] == packageName and last4 == '.ipa':
v = {
"version": apk["versionName"],
"date": apk["added"].isoformat(),
"downloadURL": f"{config['repo_url']}/{apk['apkName']}",
"size": apk['size'],
}
# v['localizedDescription'] maybe what's new text?
v["minOSVersion"] = apk["ipa_MinimumOSVersion"]
v["maxOSVersion"] = apk["ipa_DTPlatformVersion"]
# writing this spot here has the effect that always the
# permissions of the latest processed permissions list used
a['appPermissions']['privacy'] = apk['ipa_permissions']
a['appPermissions']['entitlements'] = list(apk['ipa_entitlements'])
a['versions'].append(v)
if len(a['versions']) > 0:
idx['apps'].append(a)
with open(Path(repodir) / 'altstore-index.json', "w", encoding="utf-8") as f:
json.dump(idx, f, indent=indent)

View File

@ -32,7 +32,6 @@ from . import common
from .exception import FDroidException
config = {}
options = None
def disable_in_config(key, value):
@ -49,7 +48,7 @@ def disable_in_config(key, value):
def main():
global options, config
global config
# Parse command line...
parser = ArgumentParser()
@ -81,7 +80,7 @@ def main():
default=False,
help=_("Do not prompt for Android SDK path, just fail"),
)
options = parser.parse_args()
options = common.parse_args(parser)
common.set_console_logging(options.verbose)
@ -171,7 +170,7 @@ def main():
raise FDroidException('Repository already exists.')
# now that we have a local config.yml, read configuration...
config = common.read_config(options)
config = common.read_config()
# the NDK is optional and there may be multiple versions of it, so it's
# left for the user to configure
@ -282,13 +281,13 @@ def main():
msg += '\n\n'
msg += (
_(
'''To complete the setup, add your APKs to "%s"
"""To complete the setup, add your APKs to "%s"
then run "fdroid update -c; fdroid update". You might also want to edit
"config.yml" to set the URL, repo name, and more. You should also set up
a signing key (a temporary one might have been automatically generated).
For more info: https://f-droid.org/docs/Setup_an_F-Droid_App_Repo
and https://f-droid.org/docs/Signing_Process'''
and https://f-droid.org/docs/Signing_Process"""
)
% os.path.join(fdroiddir, 'repo')
)

View File

@ -28,7 +28,6 @@ from . import common
from .common import SdkToolsPopen
from .exception import FDroidException
options = None
config = None
@ -44,7 +43,7 @@ def devices():
def main():
global options, config
global config
# Parse command line...
parser = ArgumentParser(
@ -63,7 +62,7 @@ def main():
default=False,
help=_("Install all signed applications available"),
)
options = parser.parse_args()
options = common.parse_args(parser)
common.set_console_logging(options.verbose)
@ -73,7 +72,7 @@ def main():
% "all"
)
config = common.read_config(options)
config = common.read_config()
output_dir = 'repo'
if not os.path.isdir(output_dir):

View File

@ -31,7 +31,6 @@ from . import metadata
from . import rewritemeta
config = None
options = None
def enforce_https(domain):
@ -214,7 +213,7 @@ regex_checks = {
_("Forbidden HTML tags"),
),
(
re.compile(r'''.*\s+src=["']javascript:.*'''),
re.compile(r""".*\s+src=["']javascript:.*"""),
_("Javascript in HTML src attributes"),
),
],
@ -459,9 +458,12 @@ def check_builds(app):
"Branch '{branch}' used as commit in srclib '{srclib}'"
).format(branch=s, srclib=srclib)
else:
yield _(
'srclibs missing name and/or @'
) + ' (srclibs: ' + srclib + ')'
yield (
_('srclibs missing name and/or @')
+ ' (srclibs: '
+ srclib
+ ')'
)
for key in build.keys():
if key not in supported_flags:
yield _('%s is not an accepted build field') % key
@ -500,7 +502,7 @@ def check_files_dir(app):
def check_format(app):
if options.format and not rewritemeta.proper_format(app):
if common.options.format and not rewritemeta.proper_format(app):
yield _("Run rewritemeta to fix formatting")
@ -722,7 +724,13 @@ def check_updates_ucm_http_aum_pattern(app): # noqa: D403
def check_certificate_pinned_binaries(app):
if len(app.get('AllowedAPKSigningKeys')) > 0:
keys = app.get('AllowedAPKSigningKeys')
known_keys = common.config.get('apk_signing_key_block_list', [])
if keys:
if known_keys:
for key in keys:
if key in known_keys:
yield _('Known debug key is used in AllowedAPKSigningKeys: ') + key
return
if app.get('Binaries') is not None:
yield _(
@ -778,7 +786,7 @@ def lint_config(arg):
def main():
global config, options
global config
# Parse command line...
parser = ArgumentParser()
@ -803,10 +811,10 @@ def main():
"appid", nargs='*', help=_("application ID of file to operate on")
)
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
load_antiFeatures_config()
load_categories_config()

View File

@ -15,11 +15,9 @@ from . import common
from . import index
from . import update
options = None
def _run_wget(path, urls):
if options.verbose:
def _run_wget(path, urls, verbose=False):
if verbose:
verbose = '--verbose'
else:
verbose = '--no-verbose'
@ -48,8 +46,6 @@ def _run_wget(path, urls):
def main():
global options
parser = ArgumentParser()
common.setup_global_opts(parser)
parser.add_argument(
@ -93,7 +89,7 @@ def main():
parser.add_argument(
"--output-dir", default=None, help=_("The directory to write the mirror to")
)
options = parser.parse_args()
options = common.parse_args(parser)
common.set_console_logging(options.verbose)
@ -119,7 +115,7 @@ def main():
)
if fingerprint:
config = common.read_config(options)
config = common.read_config()
if not ('jarsigner' in config or 'apksigner' in config):
logging.error(
_('Java JDK not found! Install in standard location or set java_paths!')
@ -229,7 +225,7 @@ def main():
_append_to_url_path(section, f[:-4] + '.log.gz')
)
_run_wget(sectiondir, urls)
_run_wget(sectiondir, urls, options.verbose)
for app in data['apps']:
localized = app.get('localized')
@ -242,7 +238,7 @@ def main():
if f:
filepath_tuple = components + (f,)
urls.append(_append_to_url_path(*filepath_tuple))
_run_wget(os.path.join(basedir, *components), urls)
_run_wget(os.path.join(basedir, *components), urls, options.verbose)
for k in update.SCREENSHOT_DIRS:
urls = []
filelist = d.get(k)
@ -251,7 +247,11 @@ def main():
for f in filelist:
filepath_tuple = components + (f,)
urls.append(_append_to_url_path(*filepath_tuple))
_run_wget(os.path.join(basedir, *components), urls)
_run_wget(
os.path.join(basedir, *components),
urls,
options.verbose,
)
urls = dict()
for app in data['apps']:
@ -268,7 +268,12 @@ def main():
urls[icondir].append(url)
for icondir in icondirs:
_run_wget(os.path.join(basedir, section, icondir), urls[icondir])
if icondir in urls:
_run_wget(
os.path.join(basedir, section, icondir),
urls[icondir],
options.verbose,
)
if __name__ == "__main__":

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python3
"""Set up an app build for a nightly build repo."""
#
# nightly.py - part of the FDroid server tools
# Copyright (C) 2017 Hans-Christoph Steiner <hans@eds.org>
@ -32,6 +33,7 @@ import tempfile
import yaml
from urllib.parse import urlparse
from argparse import ArgumentParser
from typing import Optional
from . import _
from . import common
@ -48,12 +50,38 @@ DISTINGUISHED_NAME = 'CN=Android Debug,O=Android,C=US'
NIGHTLY = '-nightly'
def _get_keystore_secret_var(keystore):
def _get_keystore_secret_var(keystore: str) -> str:
"""Get keystore secret as base64.
Parameters
----------
keystore
The path of the keystore.
Returns
-------
base64_secret
The keystore secret as base64 string.
"""
with open(keystore, 'rb') as fp:
return base64.standard_b64encode(fp.read()).decode('ascii')
def _ssh_key_from_debug_keystore(keystore=None):
def _ssh_key_from_debug_keystore(keystore: Optional[str] = None) -> str:
"""Convert a debug keystore to an SSH private key.
This leaves the original keystore file in place.
Parameters
----------
keystore
The keystore to convert to a SSH private key.
Returns
-------
key_path
The SSH private key file path in the temporary directory.
"""
if keystore is None:
# set this here so it can be overridden in the tests
# TODO convert this to a class to get rid of this nonsense
@ -148,7 +176,23 @@ def _ssh_key_from_debug_keystore(keystore=None):
return ssh_private_key_file
def get_repo_base_url(clone_url, repo_git_base, force_type=None):
def get_repo_base_url(clone_url: str, repo_git_base: str, force_type: Optional[str] = None) -> str:
"""Generate the base URL for the F-Droid repository.
Parameters
----------
clone_url
The URL to clone the Git repository.
repo_git_base
The project path of the Git repository at the Git forge.
force_type
The Git forge of the project.
Returns
-------
repo_base_url
The base URL of the F-Droid repository.
"""
if force_type is None:
force_type = urlparse(clone_url).netloc
if force_type == 'gitlab.com':
@ -160,6 +204,17 @@ def get_repo_base_url(clone_url, repo_git_base, force_type=None):
def main():
"""Deploy to F-Droid repository or generate SSH private key from keystore.
The behaviour of this function is influenced by the configuration file as
well as command line parameters.
Raises
------
:exc:`~fdroidserver.exception.VCSException`
If the nightly Git repository could not be cloned during an attempt to
deploy.
"""
parser = ArgumentParser()
common.setup_global_opts(parser)
parser.add_argument(
@ -204,8 +259,7 @@ def main():
help=_("Set maximum releases in repo before older ones are archived"),
)
# TODO add --with-btlog
options = parser.parse_args()
common.options = options
options = common.parse_args(parser)
# force a tighter umask since this writes private key material
umask = os.umask(0o077)
@ -324,11 +378,11 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
os.chdir(repo_basedir)
if os.path.isdir(git_mirror_repodir):
common.local_rsync(options, git_mirror_repodir + '/', 'repo/')
common.local_rsync(options, [git_mirror_repodir + '/'], 'repo/')
if os.path.isdir(git_mirror_metadatadir):
common.local_rsync(options, git_mirror_metadatadir + '/', 'metadata/')
common.local_rsync(options, [git_mirror_metadatadir + '/'], 'metadata/')
if os.path.isdir(git_mirror_statsdir):
common.local_rsync(options, git_mirror_statsdir + '/', 'stats/')
common.local_rsync(options, [git_mirror_statsdir + '/'], 'stats/')
ssh_private_key_file = _ssh_key_from_debug_keystore()
# this is needed for GitPython to find the SSH key
@ -373,7 +427,7 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
with open('config.yml', 'w') as fp:
yaml.dump(config, fp, default_flow_style=False)
os.chmod('config.yml', 0o600)
config = common.read_config(options)
config = common.read_config()
common.assert_config_keystore(config)
for root, dirs, files in os.walk(cibase):
@ -430,9 +484,9 @@ Last updated: {date}'''.format(repo_git_base=repo_git_base,
cwd=repo_basedir,
)
common.local_rsync(
options, repo_basedir + '/metadata/', git_mirror_metadatadir + '/'
options, [repo_basedir + '/metadata/'], git_mirror_metadatadir + '/'
)
common.local_rsync(options, repo_basedir + '/stats/', git_mirror_statsdir + '/')
common.local_rsync(options, [repo_basedir + '/stats/'], git_mirror_statsdir + '/')
mirror_git_repo.git.add(all=True)
mirror_git_repo.index.commit("update app metadata")

View File

@ -49,7 +49,6 @@ from .common import FDroidPopen
from .exception import BuildException, FDroidException
config = None
options = None
start_timestamp = time.gmtime()
@ -269,7 +268,7 @@ def create_key_if_not_existing(keyalias):
def main():
global config, options
global config
# Parse command line...
parser = ArgumentParser(
@ -289,10 +288,10 @@ def main():
help=_("application ID with optional versionCode in the form APPID[:VERCODE]"),
)
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
if not ('jarsigner' in config and 'keytool' in config):
logging.critical(

View File

@ -20,8 +20,6 @@ from argparse import ArgumentParser
from . import common
from . import metadata
options = None
def main():
parser = ArgumentParser()
@ -29,7 +27,7 @@ def main():
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
metadata.warnings_action = options.W
common.read_config(None)
common.read_config()
metadata.read_metadata()

View File

@ -29,7 +29,6 @@ from . import common
from . import metadata
config = None
options = None
def proper_format(app):
@ -62,7 +61,7 @@ def remove_blank_flags_from_builds(builds):
def main():
global config, options
global config
parser = ArgumentParser()
common.setup_global_opts(parser)
@ -77,10 +76,10 @@ def main():
"appid", nargs='*', help=_("application ID of file to operate on")
)
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
# Get all apps...
allapps = metadata.read_metadata(options.appid)

View File

@ -40,8 +40,6 @@ from . import metadata
from .exception import BuildException, VCSException, ConfigurationException
from . import scanner
options = None
@dataclass
class MessageStore:
@ -62,13 +60,14 @@ class ExitCode(IntEnum):
def get_gradle_compile_commands(build):
compileCommands = ['compile',
'provided',
compileCommands = ['api',
'apk',
'implementation',
'classpath',
'api',
'compile',
'compileOnly',
'id',
'implementation',
'provided',
'runtimeOnly']
buildTypes = ['', 'release']
flavors = ['']
@ -332,8 +331,9 @@ class ScannerTool:
self.scanner_data_lookup()
config = common.get_config()
if (options and options.refresh_scanner) or config.get('refresh_scanner'):
options = common.get_options()
options_refresh_scanner = options and options.refresh_scanner
if options_refresh_scanner or common.get_config().get('refresh_scanner'):
self.refresh()
self.load()
@ -589,6 +589,7 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
-------
0 if the problem was ignored/deleted/is only a warning, 1 otherwise
"""
options = common.get_options()
if toignore(path_in_build_dir):
return ignoreproblem(what, path_in_build_dir, json_per_build)
if todelete(path_in_build_dir):
@ -776,9 +777,6 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
def main():
global options
# Parse command line...
parser = ArgumentParser(
usage="%(prog)s [options] [(APPID[:VERCODE] | path/to.apk) ...]"
)
@ -793,7 +791,7 @@ def main():
parser.add_argument("-e", "--exit-code", action="store_true", default=False,
help=_("Exit with a non-zero code if problems were found"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
json_output = dict()
@ -804,7 +802,7 @@ def main():
logging.getLogger().setLevel(logging.ERROR)
# initialize/load configuration values
common.get_config(opts=options)
common.get_config()
probcount = 0

View File

@ -103,11 +103,8 @@ def main():
"APK", nargs='*', help=_("signed APK, either a file-path or HTTPS URL.")
)
parser.add_argument("--no-check-https", action="store_true", default=False)
options = parser.parse_args()
options = common.parse_args(parser)
common.set_console_logging(options.verbose)
# Read config.py...
common.read_config(options)
common.read_config()
extract(options)

View File

@ -29,7 +29,6 @@ from . import metadata
from .exception import FDroidException
config = None
options = None
start_timestamp = time.gmtime()
@ -175,13 +174,13 @@ def status_update_json(signed):
def main():
global config, options
global config
parser = ArgumentParser()
common.setup_global_opts(parser)
options = parser.parse_args()
common.parse_args(parser)
config = common.read_config(options)
config = common.read_config()
if 'jarsigner' not in config:
raise FDroidException(

View File

@ -34,6 +34,7 @@ import json
import time
import yaml
import copy
import asn1crypto.cms
import defusedxml.ElementTree as ElementTree
from datetime import datetime, timezone
from argparse import ArgumentParser
@ -544,25 +545,105 @@ def version_string_to_int(version):
return major * 10**12 + minor * 10**6 + patch
# iOS app permissions, source:
# https://developer.apple.com/documentation/bundleresources/information_property_list/protected_resources
IPA_PERMISSIONS = [
"NSBluetoothAlwaysUsageDescription",
"NSBluetoothPeripheralUsageDescription",
"NSCalendarsFullAccessUsageDescription",
"NSCalendarsWriteOnlyAccessUsageDescription",
"NSRemindersFullAccessUsageDescription",
"NSCameraUsageDescription",
"NSMicrophoneUsageDescription",
"NSContactsUsageDescription",
"NSFaceIDUsageDescription",
"NSDesktopFolderUsageDescription",
"NSDocumentsFolderUsageDescription",
"NSDownloadsFolderUsageDescription",
"NSNetworkVolumesUsageDescription",
"NSNetworkVolumesUsageDescription",
"NSRemovableVolumesUsageDescription",
"NSRemovableVolumesUsageDescription",
"NSFileProviderDomainUsageDescription",
"NSGKFriendListUsageDescription",
"NSHealthClinicalHealthRecordsShareUsageDescription",
"NSHealthShareUsageDescription",
"NSHealthUpdateUsageDescription",
"NSHomeKitUsageDescription",
"NSLocationAlwaysAndWhenInUseUsageDescription",
"NSLocationUsageDescription",
"NSLocationWhenInUseUsageDescription",
"NSLocationAlwaysUsageDescription",
"NSAppleMusicUsageDescription",
"NSMotionUsageDescription",
"NSFallDetectionUsageDescription",
"NSLocalNetworkUsageDescription",
"NSNearbyInteractionUsageDescription",
"NSNearbyInteractionAllowOnceUsageDescription",
"NFCReaderUsageDescription",
"NSPhotoLibraryAddUsageDescription",
"NSPhotoLibraryUsageDescription",
"NSAppDataUsageDescription",
"NSUserTrackingUsageDescription",
"NSAppleEventsUsageDescription",
"NSSystemAdministrationUsageDescription",
"NSSensorKitUsageDescription",
"NSSiriUsageDescription",
"NSSpeechRecognitionUsageDescription",
"NSVideoSubscriberAccountUsageDescription",
"NSWorldSensingUsageDescription",
"NSHandsTrackingUsageDescription",
"NSIdentityUsageDescription",
"NSCalendarsUsageDescription",
"NSRemindersUsageDescription",
]
def parse_ipa(ipa_path, file_size, sha256):
from biplist import readPlist
import biplist
ipa = {
"apkName": os.path.basename(ipa_path),
"hash": sha256,
"hashType": "sha256",
"size": file_size,
"ipa_entitlements": set(),
"ipa_permissions": {},
}
with zipfile.ZipFile(ipa_path) as ipa_zip:
for info in ipa_zip.infolist():
if re.match("Payload/[^/]*.app/Info.plist", info.filename):
with ipa_zip.open(info) as plist_file:
plist = readPlist(plist_file)
plist = biplist.readPlist(plist_file)
ipa["name"] = plist['CFBundleName']
ipa["packageName"] = plist["CFBundleIdentifier"]
# https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring
ipa["versionCode"] = version_string_to_int(plist["CFBundleShortVersionString"])
ipa["versionName"] = plist["CFBundleShortVersionString"]
ipa["ipa_MinimumOSVersion"] = plist['MinimumOSVersion']
ipa["ipa_DTPlatformVersion"] = plist['DTPlatformVersion']
for ipap in IPA_PERMISSIONS:
if ipap in plist:
ipa["ipa_permissions"][ipap] = str(plist[ipap])
if info.filename.endswith("/embedded.mobileprovision"):
print("parsing", info.filename)
with ipa_zip.open(info) as mopro_file:
mopro_content_info = asn1crypto.cms.ContentInfo.load(
mopro_file.read()
)
mopro_payload_info = mopro_content_info['content']
mopro_payload = mopro_payload_info['encap_content_info'][
'content'
].native
mopro = biplist.readPlistFromString(mopro_payload)
# https://faq.altstore.io/distribute-your-apps/make-a-source#entitlements-array-of-strings
for entitlement in mopro.get('Entitlements', {}).keys():
if entitlement not in [
"com.app.developer.team-identifier",
'application-identifier'
]:
ipa["ipa_entitlements"].add(entitlement)
return ipa
@ -592,8 +673,7 @@ def scan_repo_for_ipas(apkcache, repodir, knownapks):
file_size = os.stat(ipa_path).st_size
if file_size == 0:
raise FDroidException(_('{path} is zero size!')
.format(path=ipa_path))
raise FDroidException(_('{path} is zero size!').format(path=ipa_path))
sha256 = common.sha256sum(ipa_path)
ipa = apkcache.get(ipa_name, {})
@ -1346,11 +1426,28 @@ def insert_localized_ios_app_metadata(apps_with_packages):
for metadata_file in (lang_dir).iterdir():
key = FASTLANE_IOS_MAP.get(metadata_file.name)
if key:
fdroidserver.update._set_localized_text_entry(app, locale, key, metadata_file)
fdroidserver.update._set_localized_text_entry(
app, locale, key, metadata_file
)
screenshots = fdroidserver.update.discover_ios_screenshots(fastlane_dir)
fdroidserver.update.copy_ios_screenshots_to_repo(screenshots, package_name)
# lookup icons, copy them and put them into app
icon_path = _get_ipa_icon(Path('build') / package_name)
icon_dest = Path('repo') / package_name / 'icon.png' # for now just assume png
icon_stat = os.stat(icon_path)
app['iconv2'] = {
DEFAULT_LOCALE: {
'name': str(icon_dest).lstrip('repo'),
'sha256': common.sha256sum(icon_dest),
'size': icon_stat.st_size,
}
}
if not icon_dest.exists():
icon_dest.parent.mkdir(parents=True, exist_ok=True)
shutil.copy(icon_path, icon_dest)
def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False):
"""Scan a repo for all files with an extension except APK/OBB/IPA.
@ -1548,6 +1645,60 @@ def _get_apk_icons_src(apkfile, icon_name):
return icons_src
def _get_ipa_icon(src_dir):
"""Search source directory of an IPA project for the app icon."""
# parse app icon name from project config file
src_dir = Path(src_dir)
prj = next(src_dir.glob("**/project.pbxproj"), None)
if not prj or not prj.exists():
return
icon_name = _parse_from_pbxproj(prj, 'ASSETCATALOG_COMPILER_APPICON_NAME')
if not icon_name:
return
icon_dir = next(src_dir.glob(f'**/{icon_name}.appiconset'), None)
if not icon_dir:
return
with open(icon_dir / "Contents.json") as f:
cntnt = json.load(f)
fname = None
fsize = 0
for image in cntnt['images']:
s = float(image.get("size", "0x0").split("x")[0])
if image.get('scale') == "1x" and s > fsize and s <= 128:
fname = image['filename']
fsize = s
return str(icon_dir / fname)
def _parse_from_pbxproj(pbxproj_path, key):
"""Parse values from apple project files.
This is a naive regex based parser. Should this proofe to unreliable we
might want to consider using a dedicated pbxproj parser:
https://pypi.org/project/pbxproj/
e.g. when looking for key 'ASSETCATALOG_COMPILER_APPICON_NAME'
This function will extract 'MyIcon' from if the provided file
contains this line:
ASSETCATALOG_COMPILER_APPICON_NAME = MyIcon;
returns None if parsing for that value didn't yield anything
"""
r = re.compile(f"\\s*{key}\\s*=\\s*(?P<value>[a-zA-Z0-9-_]+)\\s*;\\s*")
with open(pbxproj_path, 'r', encoding='utf-8') as f:
for line in f.readlines():
m = r.match(line)
if m:
return m.group("value")
return None
def _sanitize_sdk_version(value):
"""Sanitize the raw values from androguard to handle bad values.
@ -1571,8 +1722,7 @@ def _sanitize_sdk_version(value):
def scan_apk_androguard(apk, apkfile):
try:
from androguard.core.bytecodes.apk import APK
apkobject = APK(apkfile)
apkobject = common.get_androguard_APK(apkfile)
if apkobject.is_valid_APK():
arsc = apkobject.get_android_resources()
else:
@ -1588,7 +1738,7 @@ def scan_apk_androguard(apk, apkfile):
logging.error(_("Failed to get APK information, skipping {path}")
.format(path=apkfile))
raise BuildException(_("Invalid APK"))
except (FileNotFoundError, zipfile.BadZipFile) as e:
except (FileNotFoundError, ValueError, zipfile.BadZipFile) as e:
logging.error(_("Could not open APK {path} for analysis: ").format(path=apkfile)
+ str(e))
raise BuildException(_("Invalid APK")) from e
@ -1628,7 +1778,7 @@ def scan_apk_androguard(apk, apkfile):
if maxSdkVersion is not None:
apk['maxSdkVersion'] = maxSdkVersion
icon_id_str = apkobject.get_element("application", "icon")
icon_id_str = apkobject.get_attribute_value("application", "icon")
if icon_id_str:
try:
icon_id = int(icon_id_str.replace("@", "0x"), 16)
@ -2424,13 +2574,12 @@ def main():
parser.add_argument("--allow-disabled-algorithms", action="store_true", default=False,
help=_("Include APKs that are signed with disabled algorithms like MD5"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = common.parse_args(parser)
metadata.warnings_action = options.W
config = common.read_config(options)
config = common.read_config()
common.setup_status_output(start_timestamp)
common.use_androguard()
if not (('jarsigner' in config or 'apksigner' in config)
and 'keytool' in config):
raise FDroidException(_('Java JDK not found! Install in standard location or set java_paths!'))

View File

@ -30,7 +30,6 @@ from . import common
from . import net
from .exception import FDroidException
options = None
config = None
@ -146,7 +145,7 @@ def write_json_report(url, remote_apk, unsigned_apk, compare_result):
def main():
global options, config
global config
# Parse command line...
parser = ArgumentParser(
@ -170,9 +169,9 @@ def main():
default=False,
help=_("Output JSON report to file named after APK."),
)
options = parser.parse_args()
options = common.parse_args(parser)
config = common.read_config(options)
config = common.read_config()
tmp_dir = 'tmp'
if not os.path.isdir(tmp_dir):

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.2.1-143-g1a5ee449\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-05-26 19:39+0000\n"
"Last-Translator: Mehrab Poladov <thepoladov@protonmail.com>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/f-droid/fdroidserver/az/>\n"
@ -90,6 +90,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: xəta: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -209,6 +214,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -286,6 +296,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -382,6 +396,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -548,6 +567,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -614,6 +643,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -780,6 +814,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -844,6 +882,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1049,6 +1091,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1186,6 +1232,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1344,6 +1394,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1377,6 +1431,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1626,6 +1684,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1787,11 +1849,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1819,6 +1885,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1848,6 +1918,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1905,6 +1979,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2054,6 +2132,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2228,6 +2310,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2385,6 +2472,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2399,6 +2491,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2603,6 +2699,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2613,6 +2734,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1b0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -89,6 +89,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -208,6 +213,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -285,6 +295,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -381,6 +395,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -547,6 +566,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -613,6 +642,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -779,6 +813,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -843,6 +881,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1048,6 +1090,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1185,6 +1231,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1343,6 +1393,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1376,6 +1430,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1625,6 +1683,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1786,11 +1848,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1818,6 +1884,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1847,6 +1917,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1904,6 +1978,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2053,6 +2131,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2227,6 +2309,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2384,6 +2471,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2398,6 +2490,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2602,6 +2698,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2612,6 +2733,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-02-12 09:48+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/f-droid/fdroidserver/bn/>\n"
@ -90,6 +90,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: ত্রুটি: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -209,6 +214,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -286,6 +296,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -382,6 +396,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -548,6 +567,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -614,6 +643,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -780,6 +814,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -844,6 +882,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1049,6 +1091,10 @@ msgstr "{apkfilename} প্রক্রিয়ারত"
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1186,6 +1232,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1344,6 +1394,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1377,6 +1431,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1626,6 +1684,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1787,11 +1849,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1819,6 +1885,10 @@ msgstr "ব্যবহার"
msgid "Usage: %s\n"
msgstr "ব্যবহার: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1848,6 +1918,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1905,6 +1979,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2054,6 +2132,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2228,6 +2310,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Tibetan <https://hosted.weblate.org/projects/f-droid/fdroidserver/bo/>\n"
@ -94,6 +94,11 @@ msgstr[0] "%(option)s གདམ་ཀ་དགོས་ %(number)d རྩོད
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: ནོར་སྐྱོན: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -214,6 +219,11 @@ msgstr "/གནས་དོན་བོར་བརླག་སོང་འད
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "{path}མིང་རྟགས་བཀོད་པའི་ཆོག་མཆན་ལག་ཁྱེར་འདིའི་ནང་རྙེད་མ་སོང་།"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "PGP གྱི་མིང་རྟགས་དེ་རེ་པོ་ཐུམ་སྒྲིལ་ནང་GnuPG ཁ་སྣོན་བྱས་ནས་རེ་པོ་ནང་ལ་བཅུག"
@ -291,6 +301,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -386,6 +400,11 @@ msgstr "སྡེ་ཚན་'%s' ཁུངས་ལྡན་མ་རེད།"
msgid "Categories are not set"
msgstr "སྡེ་ཚན་རྣམས་སྒྲིག་མེད།"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "མཉེན་ཆས་རྣམས་གསར་བསྒྱུར་བྱས་མིན་གཟིགས་ཞིབ་གནང་དང་།"
@ -556,6 +575,16 @@ msgstr "འགྲེལ་བཤད་འདི་ལ་ཐོ་གཞུང་
msgid "Description of length {length} is over the {limit} char limit"
msgstr "རིང་ཐུང་གི་འགྲེལ་བཤད་ {length} {limit} ལས་བརྒལ་འདུག char limit"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -622,6 +651,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr "'{field}'ནང་གི་ངོ་བཤུས་སྦྲེལ་མཐུད།: {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -792,6 +826,11 @@ msgstr "མཉེན་ཆས་ཁ་ཤས་ཀྱི་ཁུངས་ལྡ
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "{path}ནང་ལ་སྣ་མང་མིང་རྟགས་ཆོག་མཆན་ལག་ཁྱེར་རྙེད་སོང་།"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "མཛོད་ཁང་ཆེད་དུ་་མིང་རྟགས་བཀོད་པའི་ལག་ཁྱེར་མང་པོ་རྙེད་འདུག."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -857,6 +896,11 @@ msgstr ""
msgid "Git reset failed"
msgstr "གིཊ་སྐྱར་སྒྲིག་ཐུབ་མ་སོང་།"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "གིཊ་ཡན་ལག་རྒྱ་ཁྱོན་གསར་བསྒྱུར་ཐུབ་མ་སོང་།"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "གིཊ་རྒྱ་ཁྱོན་མཉམ་བསྲེ་ཐུབ་མ་སོང་།"
@ -1062,6 +1106,10 @@ msgstr "ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བ
msgid "Keystore for signing key:\t"
msgstr "མིང་རྟགས་བཀོད་པའི་ལྡེ་མིག་ཆེད་དུ་སྟོན་པའི་ལྡེ་མིག་གསོག་ཉར་ཁང་གི་ལམ།\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1204,6 +1252,11 @@ msgstr "ཟུར་སྣོན་ཡོ་བྱད་རྙེད་མ་ས
msgid "No unsigned directory - nothing to do"
msgstr "མིང་རྟགས་མ་བཀོད་པའི་ཕྱོགས་དེབ་མིན་འདུག-བྱ་རྒྱུ་གང་ཡང་མེད།"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "ཆ་རྒྱུས་མེད་པའི་དམིགས་བསལ་ཞིག་རྙེད་སོང་།"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1363,6 +1416,10 @@ msgstr "ཐོ་གཞུད་འདི་གིཊ་ཐག་རིང་ག
msgid "Pushing binary transparency log to {url}"
msgstr "{url}ཆེད་དུ་ཨང་གྲངས་ཀྱི་ཐོ་གཞུང་གསར་བསྒྱུར།"
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1396,6 +1453,10 @@ msgstr "ཐུམ་སྒྲིལ་གྱི་མིང་ཀློག་བ
msgid "Reading {apkfilename} from cache"
msgstr "སྦས་ཁུང་ནས་ {apkfilename}ཀློག་བཞིན་པ།"
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "དམིགས་སྟོན་བྱས་པའི་ཡིག་ཆ་རྣམས་མེད་པ་བཟོ་བཞིན་པ།"
@ -1644,6 +1705,10 @@ msgstr "ལྡེ་མིག་གཞན་ལ་སྐྱོན་ཆ་འད
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1806,11 +1871,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1839,6 +1908,11 @@ msgstr "བེད་སྤྱོད།"
msgid "Usage: %s\n"
msgstr "བེད་སྤྱོད།:%s 1\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "བེད་སྤྱོད།/HEAD གྱི་ཚབ་ཏུ།/ སོར་བཞག་ཡན་ལག་ནང་དུ་ཡོད་པའི་དོན་ཚན་ཨ་མ།"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "བེད་སྤྱོད།/HEAD གྱི་ཚབ་ཏུ།/ སོར་བཞག་ཡན་ལག་ནང་དུ་ཡོད་པའི་དོན་ཚན་ཨ་མ།"
@ -1868,6 +1942,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1925,6 +2003,10 @@ msgstr "བརྡ་སྟོན་པའི་མིང་རྟགས་དེ
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'ཁྱད་པར་ཅན་གྱི་མིང་' ལྡེ་མིག་བཟོས་པའི་སྐབས་ལ་བེད་སྤྱོད་བྱེད།"
@ -2076,6 +2158,10 @@ msgstr "ཚིག་སྒྲུབ་ཀྱི་གདམ་ཀའི་རྙ
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2254,6 +2340,11 @@ msgstr "local_copy_dir ངེས་པར་ཕྱོགས་དེབ་ཡི
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "མེ་ལོང་། '%s 1' 'fdroid'དང་མཉམ་དུ་མཇུག་སྐྱོང་མི་ཐུབ།!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2413,6 +2504,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2427,6 +2523,11 @@ msgstr "s3cmd sync ཕྱོགས་སྟོན།{path}1 དེ་ནས {url
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir \"fdroid\"གིས་མཇུག་སྐྱོང་མིན་འདུག་ : \"{path}1\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2630,6 +2731,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' འདི་ 'config.yml' ནང་སྒྲིག་ཐུབ་མ་སོང་།!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2640,6 +2766,11 @@ msgstr "{path} ལ་ཆེ་ཆུང་མེད།!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
msgid "{path}: {error}"

View File

@ -6,20 +6,21 @@
# Filip Klopec <filipklopec@gmail.com>, 2022.
# Fjuro <ifjuro@proton.me>, 2022, 2023.
# Daniel Hejduk <jellymail@protonmail.com>, 2023.
# Fjuro <fjuro@alius.cz>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-10-20 14:22+0000\n"
"Last-Translator: Daniel Hejduk <jellymail@protonmail.com>\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-23 10:07+0000\n"
"Last-Translator: Fjuro <fjuro@alius.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/f-droid/fdroidserver/cs/>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.1\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -100,6 +101,11 @@ msgstr[2] "možnost %(option)s vyžaduje %(number)d argumentů"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: chyba: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -219,6 +225,11 @@ msgstr "/issues chybí"
msgid "A URL is required as an argument!"
msgstr "Jako argument je vyžadována adresa URL!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nenalezeny žádné podpisové certifikáty v {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Přidejte podpisy PGP pomocí GnuPG pro balíčky v repo"
@ -296,6 +307,11 @@ msgstr "Aplikace má binární soubory, ale nemá odpovídající AllowedAPKSign
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikace má NoSourceSince nebo ArchivePolicy \"0 versions\", ale AutoUpdateMode nebo UpdateCheckMode nejsou None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikace má NoSourceSince nebo ArchivePolicy \"0 versions\", ale AutoUpdateMode nebo UpdateCheckMode nejsou None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -393,6 +409,11 @@ msgstr "Kategorie „%s“ není platná"
msgid "Categories are not set"
msgstr "Kategorie nejsou nastavené"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Zkontrolujte aktualizace aplikací"
@ -559,6 +580,16 @@ msgstr "Popis má seznam (%s) ale není opatřen odrážkami (*) ani očíslová
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Popis délky {length} přesahuje limit {limit} znaků"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Nepřidávat disable: k vygenerovaným položkám sestavení"
@ -625,6 +656,11 @@ msgstr "Duplicitní záznam \"%s\" v konfiguraci zrcadel!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Duplicitní odkaz v '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "CHYBA: Podpříkaz „server“ byl odebrán, použijte „deploy“!"
@ -795,6 +831,11 @@ msgstr "U některých aplikací nalezeny neplatné versionCodes"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "V {path} nalezeno několik podpisových bloků JAR"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Nalezeno více podpisových certifikátů pro repozitář."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -859,6 +900,11 @@ msgstr "Git remote set-head se nezdařil: „%s“"
msgid "Git reset failed"
msgstr "Git reset se nezdařil"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git submodule update se nezdařil"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git submodule sync se nezdařil"
@ -1064,6 +1110,10 @@ msgstr "Uchovávání neúspěšného sestavení „{apkfilename}“"
msgid "Keystore for signing key:\t"
msgstr "Úložiště klíčů pro podpisový klíč:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1201,6 +1251,11 @@ msgstr "Nebyly nalezeny žádné značky"
msgid "No unsigned directory - nothing to do"
msgstr "Žádný nepodepsaný adresář - není co dělat"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nenalezeny informace o verzi"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Neplatná definice velikosti: \"{}\""
@ -1359,6 +1414,11 @@ msgstr "Odeslat protokol do tohoto vzdáleného git repozitáře"
msgid "Pushing binary transparency log to {url}"
msgstr "Odeslání protokolu binární průhlednosti do {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head se nezdařil: „%s“"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1392,6 +1452,11 @@ msgstr "Čtení packageName/versionCode/versionName se nezdařilo, APK nepatné:
msgid "Reading {apkfilename} from cache"
msgstr "Čtení {apkfilename} z mezipaměti"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "stáhnout nejnovější verzi podpisů z webu"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Odebírání určených souborů"
@ -1642,6 +1707,13 @@ msgstr "Došlo ke kolizi keyalias publikování zastaveno"
msgid "These are the apps that have been archived from the main repo."
msgstr "Aplikace, které byly archivovány z hlavního repozitáře."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"CHYBA: tento příkaz by nikdy neměl být použit k zrcadlení f-droid.org!\n"
"Celý mirror f-droid.org vyžaduje více než 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Toto je repozitář aplikací, který lze používat s aplikací F-Droid. Aplikace v tomto repozitáři jsou buď oficiální binární soubory sestavené původními vývojáři aplikací, nebo binární soubory sestavené ze zdrojových kódů správcem f-droid.org pomocí nástrojů na adrese https://gitlab.com/fdroid."
@ -1810,10 +1882,15 @@ msgstr "UpdateCheckData musí používat HTTPS URL: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData není platná URL: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode je nastaven, ale vypadá to, že checkupdates ještě nebylo spuštěno"
msgstr "UpdateCheckMode je nastaven, ale vypadá to, že akce checkupdates ještě nebyla spuštěna."
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode je nastaven, ale vypadá to, že akce checkupdates ještě nebyla spuštěna."
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1842,6 +1919,11 @@ msgstr "Použití"
msgid "Usage: %s\n"
msgstr "Použití: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Použijte /HEAD místo /master k ukázání na soubor ve výchozí větvi"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Použijte /HEAD místo /master k ukázání na soubor ve výchozí větvi"
@ -1871,6 +1953,11 @@ msgstr "Používám APK Signature v2"
msgid "Using APK Signature v3"
msgstr "Používám APK Signature v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Používám APK Signature v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Používám jarsigner Javy, není doporučeno pro ověřování APK! Použijte apksigner"
@ -1928,6 +2015,10 @@ msgstr "Pokud jsou nakonfigurovány podepsané indexy, vytvořit v této fázi p
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Při lintingu celého úložiště je yamllint ve výchozím nastavení zakázán. Tato volba vynucuje yamllint bez ohledu na to."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distinguished Name' používané při generování klíčů"
@ -2078,6 +2169,11 @@ msgstr "konfliktní subparser: %s"
msgid "could not parse '{path}'"
msgstr "nepodařilo se parsovat '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "nepodařilo se parsovat srclib spec (není určen ref): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "nepodařilo se parsovat srclib spec (není určen ref): '{}'"
@ -2253,6 +2349,11 @@ msgstr "local_copy_dir musí být adresář, ne soubor!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "mirror '%s' nekončí s 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Nyní nastavte následující v config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2410,6 +2511,11 @@ msgstr "repo_icon \"repo/icons/%s\" neexistuje, generování placeholderu."
msgid "repo_url needs to end with /repo"
msgstr "repo_url musí končit na /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml není nainstalován, nelze zapisovat metadata."
@ -2424,6 +2530,11 @@ msgstr "s3cmd sync indexes {path} do {url} a odstranit"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "mezipaměť skeneru je poškozena! Můžete ji vymazat pomocí: {clear}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir nekončí s \"fdroid\", možná jste měli na mysli: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "sdílená knihovna"
@ -2629,6 +2740,31 @@ msgstr "{path} neexistuje! Vytvořte ji spuštěním:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} má nesprávný podpis balíčku \"{pattern}\", možný exploit Janus!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' není nastaven v souboru config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2639,6 +2775,11 @@ msgstr "{path} má nulovou velikost!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} více než 200 MB, ruční nahrání: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-01-16 21:23+0000\n"
"Last-Translator: Aled Powell <aled@aledpowell.cymru>\n"
"Language-Team: Welsh <https://hosted.weblate.org/projects/f-droid/fdroidserver/cy/>\n"
@ -94,6 +94,11 @@ msgstr[5] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -213,6 +218,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -290,6 +300,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -390,6 +404,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Gwirio am ddiweddariadau i apiau"
@ -556,6 +575,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -622,6 +651,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -788,6 +822,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -852,6 +890,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1057,6 +1099,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1194,6 +1240,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1352,6 +1402,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1385,6 +1439,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1638,6 +1696,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
@ -1806,11 +1868,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1838,6 +1904,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr "Defndd: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1867,6 +1937,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1924,6 +1998,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2077,6 +2155,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2255,6 +2337,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2413,6 +2500,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2427,6 +2519,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2635,6 +2731,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2645,6 +2766,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -25,7 +25,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-03-12 12:37+0000\n"
"Last-Translator: VfBFan <VfBFan@users.noreply.hosted.weblate.org>\n"
"Language-Team: German <https://hosted.weblate.org/projects/f-droid/fdroidserver/de/>\n"
@ -114,6 +114,11 @@ msgstr[1] "Option %(option)s benötigt %(number)d Argumente"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: Fehler: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -233,6 +238,11 @@ msgstr "/issues fehlt"
msgid "A URL is required as an argument!"
msgstr "Als Argument wird eine URL benötigt!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Keine Signaturzertifikate in {path} gefunden"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "GnuPG PGP-Signaturen für Programmpakete in der Paketquelle hinzufügen"
@ -310,6 +320,11 @@ msgstr "App besitzt Binärdateien aber keine entsprechenden AllowedAPKSigningKey
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "App hat NoSourceSince oder ArchivePolicy \"0 Versionen\", aber AutoUpdateMode oder UpdateCheckMode sind nicht None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "App hat NoSourceSince oder ArchivePolicy \"0 Versionen\", aber AutoUpdateMode oder UpdateCheckMode sind nicht None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -406,6 +421,11 @@ msgstr "Kategorie »%s« ist nicht gültig"
msgid "Categories are not set"
msgstr "Kategorien sind nicht festgelegt"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Auf Aktualisierungen für Anwendungen prüfen"
@ -572,6 +592,16 @@ msgstr "Beschreibung enthält eine Liste (%s), ist aber weder aufgezählt (*) no
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Länge der Beschreibung {length} übersteigt die zulässige Zeichenzahl {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Nicht 'disable:' zu den erzeugten Erstellungseinträgen hinzufügen"
@ -638,6 +668,11 @@ msgstr "Doppelter „%s“-Eintrag in Spiegelserver-Konfiguration!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Link in „{field}” duplizieren: {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "FEHLER: Der \"server\"-Unterbefehl wurde entfernt, verwende \"deploy\"!"
@ -808,6 +843,11 @@ msgstr "Ungültige versionCodes für einige Apps gefunden"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Mehrere JAR-Signaturzertifikate in {path} gefunden"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Mehrere Signaturzertifikate für das Repository gefunden."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -872,6 +912,11 @@ msgstr "Git remote set-head fehlgeschlagen: \"%s\""
msgid "Git reset failed"
msgstr "Git reset fehlgeschlagen"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git submodule update fehlgeschlagen"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git submodule sync fehlgeschlagen"
@ -1077,6 +1122,10 @@ msgstr "Fehlgeschlagener Build \"{apkfilename}\" behalten"
msgid "Keystore for signing key:\t"
msgstr "Schlüsselspeicher für den Signierschlüssel:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1214,6 +1263,11 @@ msgstr "Keine Tags gefunden"
msgid "No unsigned directory - nothing to do"
msgstr "Kein unsigniertes Verzeichnis - nichts zu tun"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "keine Versionsinformation gefunden"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Keine gültige Größendefinition: \"{}\""
@ -1372,6 +1426,11 @@ msgstr "Anmeldung an diesem Git-Repository durchführen"
msgid "Pushing binary transparency log to {url}"
msgstr "Binäres Transparenz-Log nach {url} pushen"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head fehlgeschlagen: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1405,6 +1464,11 @@ msgstr "Lesen von packageName/versionCode/versionName fehlgeschlagen,APK ungült
msgid "Reading {apkfilename} from cache"
msgstr "Lese {apkfilename} aus dem Cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "Abrufen der neuesten Version von Signaturen aus dem Web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Entferne angegebene Dateien"
@ -1654,6 +1718,13 @@ msgstr "Es gibt eine Keyalias-Kollision - Veröffentlichung gestoppt"
msgid "These are the apps that have been archived from the main repo."
msgstr "Dies sind die Apps, die aus dem Hauptrepository archiviert wurden."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"FEHLER: Dieser Befehl sollte niemals verwendet werden, um f-droid.org zu spiegeln!\n"
"Ein vollständiger Spiegel von f-droid.org erfordert mehr als 200 GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Dies ist eine Paketquelle für Anwendungen, die für die Benutzung zusammen mit F-Droid gedacht ist. Die darin enthaltenen Anwendungen sind entweder offizielle von den Entwicklern erstellte Binärdateien oder werden von f-droid.org mithilfe des Werkzeugs auf https://gitlab.com/fdroid aus dem Quellcode erstellt."
@ -1822,11 +1893,16 @@ msgstr "UpdateCheckData muss HTTPS-URL verwenden: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData hat eine ungültige URL: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode ist gesetzt, aber likecheckupdates wurde vermutlich noch nicht ausgeführt"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode ist gesetzt, aber likecheckupdates wurde vermutlich noch nicht ausgeführt"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName ist auf eine bekannte App-ID gesetzt, sie kann entfernt werden"
@ -1854,6 +1930,11 @@ msgstr "Syntax"
msgid "Usage: %s\n"
msgstr "Syntax: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Verwenden Sie /HEAD anstelle von /master, um auf eine Datei im Hauptzweig zu verweisen"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Verwenden Sie /HEAD anstelle von /master, um auf eine Datei im Hauptzweig zu verweisen"
@ -1883,6 +1964,11 @@ msgstr "Verwende APK-Signatur v2"
msgid "Using APK Signature v3"
msgstr "Verwende APK-Signatur v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Verwende APK-Signatur v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Von Java jarsigner zur Verifikation von APKs wird abgeraten! Verwenden Sie apksigner"
@ -1940,6 +2026,10 @@ msgstr "Bei einer Konfiguration mit signierten Indizes, in dieser Phase nur unsi
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Beim Linting des gesamten Repositoriums wird yamllint standardmäßig deaktiviert. Diese Option erzwingt yamllint ungeachtet dessen."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distinguished Name' zum Erzeugen von Schlüsseln"
@ -2089,6 +2179,11 @@ msgstr "widersprüchlicher Subparser: %s"
msgid "could not parse '{path}'"
msgstr "konnte '{path}' nicht parsen"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "konnte srclib-Spezifikation nicht parsen (keine ref angegeben): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "konnte srclib-Spezifikation nicht parsen (keine ref angegeben): '{}'"
@ -2263,6 +2358,11 @@ msgstr "local_copy_dir muß ein Verzeichnis sein, keine Datei!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "Spiegelserver '%s' ended nicht mit 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Legen Sie diese nun in der config.yml fest:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2420,6 +2520,11 @@ msgstr "repo_icon \"repo/icons/%s\" existiert nicht, erzeuge Platzhalter."
msgid "repo_url needs to end with /repo"
msgstr "repo_url muss mit /repo enden"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml ist nicht installiert, kann Metadaten nicht schreiben."
@ -2434,6 +2539,11 @@ msgstr "s3cmd-Sync {path} indizieren auf {url} und dann löschen"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "Der Scanner-Cache ist fehlerhaft! Sie können ihn löschen mit: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir endet nicht auf \"fdroid\", meinten Sie stattdessen: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "dynamische Bibliothek"
@ -2638,6 +2748,31 @@ msgstr "{path} existiert nicht! Erstellen Sie es durch Ausführen von:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} hat die schlechte Dateisignatur \"{pattern}\", möglicher Janus-Exploit!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "Kein 'sdk_path' in 'config.yml' festgelegt!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2648,6 +2783,11 @@ msgstr "{path} hat Dateigröße Null!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} ist größer als 200MB und muss manuell auf {url} hochgeladen werden"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -12,13 +12,13 @@
# Iago <iagrivmoa@gmail.com>, 2022.
# Iago <translate@delthia.com>, 2022.
# Jaime Marquínez Ferrándiz <weblate@jregistros.fastmail.net>, 2022.
# gallegonovato <fran-carro@hotmail.es>, 2022, 2023.
# gallegonovato <fran-carro@hotmail.es>, 2022, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-08-01 21:07+0000\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 18:44+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/f-droid/fdroidserver/es/>\n"
"Language: es\n"
@ -26,7 +26,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0-dev\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -106,6 +106,11 @@ msgstr[1] "la opción %(option)s requiere %(number)d argumentos"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: error: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -225,6 +230,11 @@ msgstr "no se encuentra /issues"
msgid "A URL is required as an argument!"
msgstr "¡Se requiere una URL como argumento!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "No se ha encontrado ningún certificado de firma en {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Añadir las firmas PGP para los paquetes en el repositorio usando GnuPG"
@ -302,6 +312,11 @@ msgstr "La aplicación tiene archivos binarios, pero no las AllowedAPKSigningKey
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "La aplicación tiene NoSourceSince o ArchivePolicy \"0 versiones\", pero AutoUpdateMode o UpdateCheckMode no es Ninguno"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "La aplicación tiene NoSourceSince o ArchivePolicy \"0 versiones\", pero AutoUpdateMode o UpdateCheckMode no es Ninguno"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -398,6 +413,11 @@ msgstr "La categoría '%s' no es válida"
msgid "Categories are not set"
msgstr "No se han establecido categorías"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Buscar actualizaciones de aplicaciones"
@ -564,6 +584,16 @@ msgstr "La descripción tiene una lista (%s) pero no está estructurada (*) ni n
msgid "Description of length {length} is over the {limit} char limit"
msgstr "La descripción de longitud {length} supera el límite de caracteres, {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "No agregar 'disable:' a las entradas de compilaciones generadas"
@ -630,6 +660,11 @@ msgstr "¡Entrada duplicada \"%s\"en la configuración de los espejos!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Enlace duplicado en '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERROR: ¡El subcomando \"server\" se ha eliminado. Use \"deploy\"!"
@ -800,6 +835,11 @@ msgstr "Se encontraron códigos de versión (versionCodes) inválidos para algun
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Encontrados varios ficheros de bloque de firma JAR en {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Encontrados varios certificados de firma para el repositorio."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -864,6 +904,11 @@ msgstr "Git remote set-head falló: \"%s\""
msgid "Git reset failed"
msgstr "Git reset falló"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "La actualización del submodulo de Git falló"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "La sincronización del submodulo de Git falló"
@ -1069,6 +1114,10 @@ msgstr "Mantener la compilación fallida \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Depósito de claves para la clave de firma de repositorio:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1206,6 +1255,11 @@ msgstr "No se encontró ninguna etiqueta"
msgid "No unsigned directory - nothing to do"
msgstr "No hay directorio sin firma - nada que hacer"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "no se encontró información de la versión"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "No es una definición válida del tamaño: \"{}\""
@ -1364,6 +1418,11 @@ msgstr "Pulse el registro a este repositorio remoto Git"
msgid "Pushing binary transparency log to {url}"
msgstr "Publicar el registro de transparencia binario en {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head falló: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1397,6 +1456,11 @@ msgstr "Error al leer packageName/versionCode/versionName,APK inválido: '{apkfi
msgid "Reading {apkfilename} from cache"
msgstr "Leyendo {apkfilename} desde caché"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "obtener la última versión de las firmas de la web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Removiendo archivos especificados"
@ -1646,6 +1710,13 @@ msgstr "Hay una colisión de keyalias - publicación detenida"
msgid "These are the apps that have been archived from the main repo."
msgstr "Estas son aplicaciones del repositorio principal que se han archivado."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERROR: ¡esta orden no se debería usar nunca para replicar f-droid.org!\n"
"Una réplica completa de f-droid.org requiere más de 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Este es un repositorio de aplicaciones para usar con F-Droid. Las aplicaciones en este repositorio son binarios oficiales construidos por los desarrolladores originales de la aplicación, o son binarios creados a partir de su código fuente por f-droid.org utilizando las herramientas de https://gitlab.com/fdroid."
@ -1814,14 +1885,19 @@ msgstr "UpdateCheckData tiene que usar una URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData tiene una URL no válida: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode está configurado pero parece que checkupdates aún no se ha ejecutado"
msgstr "UpdateCheckMode está configurado pero parece que aún no se han ejecutado las actualizaciones."
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode está configurado pero parece que aún no se han ejecutado las actualizaciones."
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "El nombre de verificación de actualización (UpdateCheckName) es el identificador (ID) conocido de la aplicación. Se puede borrar"
msgstr "UpdateCheckName está configurado con el ID de la aplicación conocida, se puede eliminar"
#: ../fdroidserver/deploy.py
#, python-brace-format
@ -1846,6 +1922,11 @@ msgstr "Utilización"
msgid "Usage: %s\n"
msgstr "Uso: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Use /HEAD en vez de /master para apuntar a un fichero en la rama por omisión"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Use /HEAD en vez de /master para apuntar a un fichero en la rama por omisión"
@ -1875,6 +1956,11 @@ msgstr "Utilizando Firma APK v2"
msgid "Using APK Signature v3"
msgstr "Utilizando firma APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Utilizando Firma APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "¡Usando jarsigner de Java. No recomendado para verificar APKs! Use apksigner"
@ -1932,6 +2018,10 @@ msgstr "Cuando está configurado para índices firmados, crear solo índices sin
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Cuando se limpia el repositorio completo yamllint está deshabilitado por defecto. Esta opción fuerza yamllint a pesar de todo."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Nombre Distintivo' (DN) usado al generar claves"
@ -2081,6 +2171,11 @@ msgstr "subanalizador del conflictivo:%s"
msgid "could not parse '{path}'"
msgstr "no se pudo procesar '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "no se pudo procesar especificación srclib (sin especificar ref): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "no se pudo procesar especificación srclib (sin especificar ref): '{}'"
@ -2255,6 +2350,11 @@ msgstr "¡local_copy_dir tiene que ser un directorio, no un fichero!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "¡el espejo '%s' no termina en 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Ahora establezca lo siguiente en config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2412,6 +2512,11 @@ msgstr "repo_icon \"repo/icons/%s\" no existe, generando placeholder."
msgid "repo_url needs to end with /repo"
msgstr "repo_url debe terminar con /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml no instalado. No se pueden escribir metadatos."
@ -2426,6 +2531,11 @@ msgstr "s3cmd sync indexa {path} a {url} y elimina"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "¡El escaner de la cache está mal realizado! Puedes borrarlo con: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir no termina en \"fdroid\", tal vez quisiste decir: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "biblioteca compartida"
@ -2630,6 +2740,31 @@ msgstr "¡{path} no existe! Créela ejecutando:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "¡{path} tiene una firma de fichero \"{pattern}\" mala, posible exploit Janus!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "¡'sdk_path' no establecido en 'config.yml'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2640,6 +2775,11 @@ msgstr "¡{path} está vacío!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} mayor de 200MB, subir manualmente: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-04-10 21:26+0000\n"
"Last-Translator: Germe the fur star <FOSSgerme.deb@tuta.io>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/f-droid/fdroidserver/es_AR/>\n"
@ -95,6 +95,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: error: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -214,6 +219,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "Add PGP signatures using GnuPG for packages in repo"
@ -294,6 +304,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -390,6 +404,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Buscar actualizaciones de las aplicaciones"
@ -560,6 +579,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -626,6 +655,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -792,6 +826,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -856,6 +894,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1062,6 +1104,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr "Ruta al almacén de claves para la llave de firmado del repositorio"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1200,6 +1246,11 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "¡Se encontró una excepción desconocida!"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1360,6 +1411,10 @@ msgstr "Subir el registro al repositorio remoto de git"
msgid "Pushing binary transparency log to {url}"
msgstr "Actualizar el registro de transparencia binario de {url}"
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1393,6 +1448,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1642,6 +1701,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1803,11 +1866,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1835,6 +1902,10 @@ msgstr "Uso"
msgid "Usage: %s\n"
msgstr "Uso: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1864,6 +1935,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1921,6 +1996,10 @@ msgstr "Si está configurado para índices firmados, crear sólo índices sin fi
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
#, fuzzy
msgid "X.509 'Distinguished Name' used when generating keys"
@ -2073,6 +2152,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2249,6 +2332,11 @@ msgstr "directorio_copia_local tiene que ser un directorio, ¡no un archivo!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2409,6 +2497,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2423,6 +2516,11 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir no termina en \"fdroid\", quizá quiso escribir: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "librería compartida"
@ -2627,6 +2725,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2637,6 +2760,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2020-04-29 12:49+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Spanish (Mexico) <https://hosted.weblate.org/projects/f-droid/fdroidserver/es_MX/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: error: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -553,6 +572,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -619,6 +648,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -785,6 +819,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -849,6 +887,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1054,6 +1096,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1191,6 +1237,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1349,6 +1399,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1382,6 +1436,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1631,6 +1689,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1792,11 +1854,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1824,6 +1890,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1853,6 +1923,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1910,6 +1984,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2059,6 +2137,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2233,6 +2315,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2391,6 +2478,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2405,6 +2497,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2609,6 +2705,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2619,6 +2740,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a0-62-gc63c4b3d\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -89,6 +89,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -208,6 +213,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -285,6 +295,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -381,6 +395,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -547,6 +566,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -613,6 +642,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -779,6 +813,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -843,6 +881,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1048,6 +1090,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1185,6 +1231,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1343,6 +1393,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1376,6 +1430,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1625,6 +1683,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1786,11 +1848,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1818,6 +1884,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1847,6 +1917,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1904,6 +1978,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2053,6 +2131,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2227,6 +2309,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2384,6 +2471,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2398,6 +2490,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2602,6 +2698,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2612,6 +2733,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.2.1-143-g1a5ee449\n"
"Project-Id-Version: fdroidserver 2.3a1\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1685,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,6 +1850,10 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
@ -1820,6 +1886,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1919,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1980,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2133,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a0-62-gc63c4b3d\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-08-23 01:29+0000\n"
"Last-Translator: Kaantaja <ufdbvgoljrjkrkyyub@ianvvn.com>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/f-droid/fdroidserver/fi/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1685,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,11 +1850,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1820,6 +1886,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1919,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1980,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2133,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -39,7 +39,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: French <https://hosted.weblate.org/projects/f-droid/fdroidserver/fr/>\n"
@ -128,6 +128,11 @@ msgstr[1] "L'option %(option)s requiert %(number)d arguments"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: erreur: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -247,6 +252,11 @@ msgstr "/issues est manquant"
msgid "A URL is required as an argument!"
msgstr "Une URL est requise en argument !"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Aucun certificat signé trouvé dans {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Ajouter des signatures PGP avec GnuPG pour les paquets dans le dépôt"
@ -324,6 +334,11 @@ msgstr "Lapplication possède des fichiers binaires mais n'a pas les AllowedA
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "L'application a NoSourceSince ou ArchivePolicy « 0 version » mais AutoUpdateMode ou UpdateCheckMode ne valent pas None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "L'application a NoSourceSince ou ArchivePolicy « 0 version » mais AutoUpdateMode ou UpdateCheckMode ne valent pas None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -420,6 +435,11 @@ msgstr "Catégories « %s » invalides"
msgid "Categories are not set"
msgstr "Catégories non définies"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Vérifier les mises à jour pour les applications"
@ -586,6 +606,16 @@ msgstr "La description contient une liste (%s) mais ce n'est ni une liste à puc
msgid "Description of length {length} is over the {limit} char limit"
msgstr "La longueur de la description {length} dépasser la limite du nombre de caractères autorisés {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Ne pas ajouter \"disable:\" aux entrées générées"
@ -652,6 +682,11 @@ msgstr "Entrée doublon \"%s\" dans le paramétrage des miroirs !"
msgid "Duplicate link in '{field}': {url}"
msgstr "Lien dupliqué dans « {field} » : {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERREUR: La sous-commande \"server\" a été supprimée, utilisez plutôt \"deploy\"!"
@ -822,6 +857,11 @@ msgstr "Code de version invalide trouvée pour certaines application"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Plusieurs fichiers de bloc de signature JAR trouvé à {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Plusieurs certificats de signature ont étés trouvés pour le référentiel."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -886,6 +926,11 @@ msgstr "Impossible de définir la branche par défaut du Git distant : \"%s\""
msgid "Git reset failed"
msgstr "Reset de Git échouée"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Échec de la mise à jour du sous-module Git"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Synchronisation du submodule Git échoué"
@ -1091,6 +1136,10 @@ msgstr "Conserver la version ayant échoué « {apkfilename} »"
msgid "Keystore for signing key:\t"
msgstr "Stockage des clés signée:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1228,6 +1277,11 @@ msgstr "Aucune étiquette trouvée"
msgid "No unsigned directory - nothing to do"
msgstr "Aucun dossier non signé — il n'y a rien à faire"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "aucune information sur la version na été trouvée"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Définition de la taille invalide : \"{}\""
@ -1386,6 +1440,11 @@ msgstr "Envoyer les logs dans ce dépôt git distant"
msgid "Pushing binary transparency log to {url}"
msgstr "Envoyer les logs de transparence de la compilation vers {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Impossible de définir la branche par défaut du Git distant : \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1419,6 +1478,11 @@ msgstr "La lecture de packageName/versionCode/versionName a échoué, APK invali
msgid "Reading {apkfilename} from cache"
msgstr "Lecture de {apkfilename} à partir du cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "recupération de la dernière version des signatures depuis le web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Suppression des fichiers spécifiés"
@ -1668,6 +1732,13 @@ msgstr "Il y a une collision de keyalias — publication interrompue"
msgid "These are the apps that have been archived from the main repo."
msgstr "Voici les applications qui ont été archivées à partir du dépôt principal."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERREUR : cette commande ne devrait jamais être utilisée pour copier f-droid.org !\n"
"Une copie de f-droid.org occupe plus de 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Ceci est un dépôt dapplications à utiliser avec FDroid. Les applications publiées dans ce dépôt sont soit les binaires officiels compilés par les développeurs de ces applications, soit celles compilées par f-droid.org à partir des sources en utilisant les outils disponibles sur https://gitlab.com/fdroid."
@ -1838,11 +1909,16 @@ msgstr "UpdateCheckData doit utiliser une URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData URL non valide : {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode est configuré mais on dirait que checkupdates n'a pas encore été lancé"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode est configuré mais on dirait que checkupdates n'a pas encore été lancé"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName est défini sur lID dapplication connu, il peut être supprimé"
@ -1870,6 +1946,11 @@ msgstr "Usage"
msgid "Usage: %s\n"
msgstr "Usage : %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Utiliser /HEAD plutôt que /master pour pointer un fichier dans la branche par défaut"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Utiliser /HEAD plutôt que /master pour pointer un fichier dans la branche par défaut"
@ -1899,6 +1980,11 @@ msgstr "Utilisation de la signature d'APK v2"
msgid "Using APK Signature v3"
msgstr "Utilisation de la signature d'APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Utilisation de la signature d'APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "L'utilisation de l'utilitaire jarsigner de Java n'est pas recommandé pour vérifier les APKs ! Utiliser apksigner"
@ -1956,6 +2042,10 @@ msgstr "Lorsqu'il est configuré pour les index signés, ne créez que des index
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Lors du linting, tout le dépôt yamllint est désactivé par défaut. Cette option force yamllint malgré tout."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Nom distingué' utilisé lors de la génération des clés"
@ -2105,6 +2195,11 @@ msgstr "conflit de subparser : %s"
msgid "could not parse '{path}'"
msgstr "impossible de lire '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "impossible d'analyser la spécification srclib (pas de référence spécifiée): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "impossible d'analyser la spécification srclib (pas de référence spécifiée): '{}'"
@ -2279,6 +2374,11 @@ msgstr "local_copy_dir doit être un dossier et non un fichier !"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "le miroir «%s» ne se termine pas par «fdroid» !"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Maintenant, définissez-les dans config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2436,6 +2536,11 @@ msgstr "repo_icon \"repo/icons/%s\" n'existe pas, génération d'une icône de s
msgid "repo_url needs to end with /repo"
msgstr "repo_url doit se terminer par /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml nest pas installé, impossible décrire les métadonnées."
@ -2450,6 +2555,11 @@ msgstr "s3cmd synchroniser les index de {path} vers {url} et les supprimer"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "l'analyse du cache est mal formée ! Vous pouvez le nettoyer avec : '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir ne semble pas se terminer avec \"fdroid\", peut être voulez-vous dire: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "bibliothèque partagée"
@ -2654,6 +2764,31 @@ msgstr "{path} nexiste pas ! Créez-le en exécutant :"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} a une mauvaise signature de fichier \"{pattern}\", possibilité d'une faille Janus !"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' n'est pas configuré dans 'config.yml' !"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2664,6 +2799,11 @@ msgstr "{path} a une taille nulle !"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} supérieur à 200MB, envoi manuel : {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-07-01 15:29+0000\n"
"Last-Translator: Vancha March <tjipkevdh@gmail.com>\n"
"Language-Team: Frisian <https://hosted.weblate.org/projects/f-droid/fdroidserver/fy/>\n"
@ -90,6 +90,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: flater: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -209,6 +214,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -286,6 +296,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -382,6 +396,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Kontrolearje op fernijingen fan applikaasjes"
@ -548,6 +567,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -614,6 +643,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -780,6 +814,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -844,6 +882,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1049,6 +1091,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1186,6 +1232,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1344,6 +1394,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1377,6 +1431,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1626,6 +1684,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1787,11 +1849,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1819,6 +1885,10 @@ msgstr "Gebrûk"
msgid "Usage: %s\n"
msgstr "Gebrûk: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1848,6 +1918,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1905,6 +1979,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2054,6 +2132,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2228,6 +2310,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1b0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-09-21 08:05+0000\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/f-droid/fdroidserver/he/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: שגיאה: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "איתור עדכונים ליישומונים"
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1685,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,11 +1850,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1820,6 +1886,10 @@ msgstr "שימוש"
msgid "Usage: %s\n"
msgstr "שימוש: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1919,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1980,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2133,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-02-22 11:24+0000\n"
"Last-Translator: Saurmandal <saurmandal@protonmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/f-droid/fdroidserver/hi/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "अनुप्रयोगों के अपडेट के लिए जाँच करें"
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1685,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,11 +1850,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1820,6 +1886,10 @@ msgstr "प्रयोग"
msgid "Usage: %s\n"
msgstr "प्रयोग: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1919,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1980,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2133,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2387,6 +2474,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2401,6 +2493,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2605,6 +2701,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2615,6 +2736,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/f-droid/fdroidserver/hu/>\n"
@ -96,6 +96,11 @@ msgstr[1] "A(z) %(option)s kapcsoló %(number)d argumentumot igényel"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: hiba: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -215,6 +220,11 @@ msgstr "a /issues hiányzik"
msgid "A URL is required as an argument!"
msgstr "Az URL argumentumként megadása szükséges."
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nem található aláíró-tanúsítvány itt: {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "PGP aláírások hozzáadása GnuPG segítségével a tároló csomagjaihoz"
@ -292,6 +302,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -388,6 +402,11 @@ msgstr "A(z) „%s” kategória érvénytelen"
msgid "Categories are not set"
msgstr "A kategóriák nincsenek megadva"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Alkalmazásfrissítések keresése"
@ -555,6 +574,16 @@ msgstr "A leírás listát (%s) tartalmaz, de nem pontozott (*) vagy számozott
msgid "Description of length {length} is over the {limit} char limit"
msgstr "A leírás {length} karakteres hossza több, mint a {limit} karakteres korlát"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Ne adja a hozzá a „disable:” szöveget az előállított összeállítási elemekhez"
@ -621,6 +650,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr "Ismételt hivatkozás a(z) „{field}” mezőben: {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "HIBA: A „server” alparancs eltávolításra került, használja ezt: „deploy”!"
@ -792,6 +826,11 @@ msgstr "Egyes alkalmazásoknál érvénytelen versionCode paraméterek találhat
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Több JAR aláírásblokkfájl található itt: {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Több aláíró-tanúsítvány található a tárolóhoz."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -857,6 +896,11 @@ msgstr "A git távoli fej beállítás sikertelen: „%s”"
msgid "Git reset failed"
msgstr "A git helyreállítás sikertelen"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "A git almodul frissítése sikertelen"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "A git almodul szinkronizációs sikertelen"
@ -1062,6 +1106,10 @@ msgstr "A minSdkVersion olvasása sikertelen: „{apkfilename}”"
msgid "Keystore for signing key:\t"
msgstr "Kulcstároló az aláírókulcshoz:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1201,6 +1249,11 @@ msgstr "Nem található csatolt eszköz"
msgid "No unsigned directory - nothing to do"
msgstr "Nincs aláíratlan könyvtár nincs teendő"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "Nem található információ."
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Nem érvényes méretmegadás: „{}”"
@ -1359,6 +1412,11 @@ msgstr "A napló beküldése ebbe a távoli git tárolóba"
msgid "Pushing binary transparency log to {url}"
msgstr "A bináris átláthatósági napló beküldése ide: {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "A git távoli fej beállítás sikertelen: „%s”"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1392,6 +1450,10 @@ msgstr "A packageName/versionCode/versionName olvasása sikertelen, az APK érv
msgid "Reading {apkfilename} from cache"
msgstr "A(z) {apkfilename} olvasása gyorsítótárból"
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Megadott fájlok eltávolítása"
@ -1642,6 +1704,13 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"HIBA: a parancsot sose használja az f-droid.org tükrözéséhez.\n"
"Az f-droid.org teljes tükrözéséhez több mint 200 GB tárhely szükséges."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1803,11 +1872,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1835,6 +1908,10 @@ msgstr "Használat"
msgid "Usage: %s\n"
msgstr "Használat: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1864,6 +1941,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1921,6 +2002,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2070,6 +2155,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2245,6 +2334,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Most adja meg ezeket a config.yml fájlban:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2403,6 +2497,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2417,6 +2516,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2621,6 +2724,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "Az „sdk_path” nincs megadva a „config.yml” fájlban."
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2631,6 +2759,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
msgid "{path}: {error}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-680-ge1d3de71\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-06-23 23:32+0000\n"
"Last-Translator: whenwesober <naomi16i_1298q@cikuh.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/f-droid/fdroidserver/id/>\n"
@ -95,6 +95,11 @@ msgstr[0] "opsi %(option)s memerlukan argumen sebanyak %(number)d"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: galat: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -214,6 +219,11 @@ msgstr "/issues tidak ada"
msgid "A URL is required as an argument!"
msgstr "URL diperlukan sebagai argumen!"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Tambah tanda tangan PGP menggunakan GnuPG untuk paket di repo"
@ -291,6 +301,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -386,6 +400,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Periksa pembaruan pada aplikasi"
@ -552,6 +571,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -618,6 +647,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -784,6 +818,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -848,6 +886,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1053,6 +1095,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1190,6 +1236,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1348,6 +1398,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1381,6 +1435,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1629,6 +1687,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1790,11 +1852,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1822,6 +1888,10 @@ msgstr "Penggunaan"
msgid "Usage: %s\n"
msgstr "Penggunaan: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1851,6 +1921,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1908,6 +1982,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2056,6 +2134,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2387,6 +2474,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2401,6 +2493,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' belum diatur di config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -16,13 +16,13 @@
# Davide Neri <davnerix@gmail.com>, 2023.
# Mirko Di <mirko@mirkodi.eu>, 2023.
# coronabond <coronabond@airmail.cc>, 2023.
# Random <random-r@users.noreply.hosted.weblate.org>, 2023.
# Random <random-r@users.noreply.hosted.weblate.org>, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-09-06 17:31+0000\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-13 17:01+0000\n"
"Last-Translator: Random <random-r@users.noreply.hosted.weblate.org>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/f-droid/fdroidserver/it/>\n"
"Language: it\n"
@ -30,7 +30,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.1-dev\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -110,6 +110,11 @@ msgstr[1] "l'opzione %(option)s richiede gli argomenti %(number)d"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: errore: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -229,6 +234,11 @@ msgstr "/issues è mancante"
msgid "A URL is required as an argument!"
msgstr "È richiesto un URL come argomento!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nessun certificato di firma trovato in {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Aggiungi firme PGP con GnuPG per i pacchetti in un repository"
@ -306,6 +316,11 @@ msgstr "L'app ha Binaries ma non ha AllowedAPKSigningKeys corrispondente per fis
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "L'app ha NoSourceSince o ArchivePolicy \"0 versioni\" ma AutoUpdateMode o UpdateCheckMode non sono None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "L'app ha NoSourceSince o ArchivePolicy \"0 versioni\" ma AutoUpdateMode o UpdateCheckMode non sono None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -402,6 +417,11 @@ msgstr "La categoria \"%s\" non è valida"
msgid "Categories are not set"
msgstr "Le categorie non sono impostate"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Cerca gli aggiornamenti delle applicazioni"
@ -568,6 +588,16 @@ msgstr "La descrizione ha un elenco (%s) ma non è puntato (*) né numerato (#)"
msgid "Description of length {length} is over the {limit} char limit"
msgstr "La descrizione di lunghezza {length} supera il limite di {limit} caratteri"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Non aggiungere 'disable:' alle voci di compilazione generate"
@ -634,6 +664,11 @@ msgstr "Voce \"%s\" duplicata nella configurazione dei mirror!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Link duplicato in '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERRORE: il sottocomando \"server\" è stato rimosso, usa \"deploy\"!"
@ -804,6 +839,11 @@ msgstr "Trovati codici di versione non validi per alcune app"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Trovati più file di blocco della firma JAR in {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Trovati più certificati di firma per il repository."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -868,6 +908,11 @@ msgstr "Set-head remoto Git non riuscito: \"%s\""
msgid "Git reset failed"
msgstr "Ripristino Git non riuscito"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Aggiornamento del sottomodulo Git non riuscito"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Sincronizzazione del sottomodulo Git non riuscita"
@ -1073,6 +1118,10 @@ msgstr "Mantenimento della build fallita \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Keystore per la firma della chiave:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1210,6 +1259,11 @@ msgstr "Nessuna etichetta trovata"
msgid "No unsigned directory - nothing to do"
msgstr "Nessuna directory non firmata - niente da fare"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nessuna informazione sulla versione trovata"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Definizione di dimensione non valida: \"{}\""
@ -1368,6 +1422,11 @@ msgstr "Esegui il push del log in questo repository git remoto"
msgid "Pushing binary transparency log to {url}"
msgstr "Invio del log di trasparenza binaria su {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Set-head remoto Git non riuscito: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1401,6 +1460,11 @@ msgstr "Lettura di packageName/versionCode/versionName non riuscita, APK non val
msgid "Reading {apkfilename} from cache"
msgstr "Lettura di {apkfilename} dalla cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "recupera l'ultima versione delle firme dal web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Rimozione dei file specificati"
@ -1650,6 +1714,13 @@ msgstr "C'è una collisione keyalias - pubblicazione interrotta"
msgid "These are the apps that have been archived from the main repo."
msgstr "Queste sono le applicazioni che sono state archiviate dal repo principale."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERRORE: questo comando non deve mai essere utilizzato per il mirror f-droid.org!\n"
"Lintero mirror di f-droid.org richiede più di 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Questo è un repository di applicazioni da utilizzare con F-Droid. Le applicazioni in questo repository sono o binari ufficiali compilati dagli sviluppatori dell'applicazione originale, o sono binari compilati dai sorgenti dall'amministratore di f-droid.org usando gli strumenti su https://gitlab.com/fdroid."
@ -1818,10 +1889,15 @@ msgstr "UpdateCheckData deve usare l'URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData non è un URL valido: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode impostato ma sembra che checkupdates non sia ancora stato eseguito"
msgstr "UpdateCheckMode impostato ma sembra che checkupdates non sia ancora stato eseguito."
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode impostato ma sembra che checkupdates non sia ancora stato eseguito."
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1850,6 +1926,11 @@ msgstr "Uso"
msgid "Usage: %s\n"
msgstr "Utilizzo: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Usare /HEAD invece di /master per puntare a un file nel ramo predefinito"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Usare /HEAD invece di /master per puntare a un file nel ramo predefinito"
@ -1879,6 +1960,11 @@ msgstr "Usare la firma APK v2"
msgid "Using APK Signature v3"
msgstr "Usare la firma APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Usare la firma APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Utilizzando jarsigner di Java, non raccomandato per verificare APK! Utilizzare apksigner"
@ -1936,6 +2022,10 @@ msgstr "Se configurato per indici firmati, crea solo indici senza segno in quest
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Quando linting l'intero repository yamllint è disabilitato per impostazione predefinita. Questa opzione costringe yamllint a prescindere."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distinguished Name' usato quando si generano le chiavi"
@ -2085,6 +2175,11 @@ msgstr "subparser in conflitto: %s"
msgid "could not parse '{path}'"
msgstr "non ha potuto analizzare '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "non ha potuto analizzare la specifica srclib (nessun riferimento specificato): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "non ha potuto analizzare la specifica srclib (nessun riferimento specificato): '{}'"
@ -2259,6 +2354,11 @@ msgstr "local_copy_dir deve essere una cartella, non un file!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "il mirror '%s' non finisce con 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Ora imposta i seguenti campi in config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2416,6 +2516,11 @@ msgstr "repo_icon \"repo/icons/%s\" non esiste, genera un segnaposto."
msgid "repo_url needs to end with /repo"
msgstr "Il repo_url deve terminare con /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml non installato, non può scrivere metadati."
@ -2430,6 +2535,11 @@ msgstr "s3cmd sincronizza gli indici {path} con {url} e cancella"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "la cache dello scanner è malformata! Puoi svuotarla con: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir not finisce con \"fdroid\", forse intendevi: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "libreria condivisa"
@ -2634,6 +2744,31 @@ msgstr "{path} non esiste! Crealo eseguendo:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} ha una cattiva firma di file \"{pattern}\", possibile exploit di Janus!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "\"sdk_path\" non impostato in config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2644,6 +2779,11 @@ msgstr "{path} è di dimensioni zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} più di 200MB, caricare manualmente: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2021-01-15 13:25+0000\n"
"Last-Translator: R_SACI <rgebbid@gmail.com>\n"
"Language-Team: Kabyle <https://hosted.weblate.org/projects/f-droid/fdroidserver/kab/>\n"
@ -92,6 +92,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: tuccḍa: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -211,6 +216,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -288,6 +298,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -384,6 +398,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -551,6 +570,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -617,6 +646,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -783,6 +817,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -848,6 +886,11 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Asfaḍ Git yecceḍ"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1053,6 +1096,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1190,6 +1237,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1348,6 +1399,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1381,6 +1436,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1630,6 +1689,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1791,11 +1854,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1823,6 +1890,10 @@ msgstr "Aseqdec"
msgid "Usage: %s\n"
msgstr "Aseqdec: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1852,6 +1923,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1909,6 +1984,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2058,6 +2137,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2232,6 +2315,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2390,6 +2478,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2404,6 +2497,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2608,6 +2705,31 @@ msgstr "{path} ur yelli ara! Rnu-t s uselkem:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' ur yettwasbadu ara 'config.yml'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2618,6 +2740,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.8-135-g16dd6d28\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/f-droid/fdroidserver/ko/>\n"
@ -94,6 +94,11 @@ msgstr[0] "%(option)s 옵션은 %(number)d 인자가 필요합니다"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: 오류: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -213,6 +218,11 @@ msgstr "/이슈가 없습니다"
msgid "A URL is required as an argument!"
msgstr "URL은 인수로서 필요합니다!"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "저장소의 패키지를 위해 GnuPG를 사용하여 PGP 서명을 추가합니다"
@ -290,6 +300,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -385,6 +399,11 @@ msgstr "카테고리 '%s'는 올바르지 않습니다"
msgid "Categories are not set"
msgstr "카테고리가 설정되어 있지 않습니다"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "애플리케이션으로의 업데이트를 확인합니다"
@ -551,6 +570,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -617,6 +646,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -783,6 +817,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -848,6 +886,11 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "git svn 복제에 실패됨"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1053,6 +1096,10 @@ msgstr "삭제 중: repo/{apkfilename}"
msgid "Keystore for signing key:\t"
msgstr "서명 키를 위한 키저장소:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1190,6 +1237,11 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "버전 정보를 찾지 못했습니다"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1348,6 +1400,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1381,6 +1437,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1629,6 +1689,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1790,11 +1854,15 @@ msgstr "UpdateCheckData는 HTTPS URL을 사용해야 합니다: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData는 올바른 URL이 아닙니다: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1822,6 +1890,10 @@ msgstr "사용법"
msgid "Usage: %s\n"
msgstr "사용법: %s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1851,6 +1923,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Java의 jarsigner를 사용하여, APK를 검증하는 것은 권장되지 않습니다! apksigner를 사용하세요"
@ -1908,6 +1984,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2056,6 +2136,10 @@ msgstr "충돌하는 옵션 문자열: %s"
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2230,6 +2314,11 @@ msgstr "local_copy_dir는 파일이 아니라, 디렉터리여야 합니다!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "미러 '%s'는 'fdroid'로 끝나지 않습니다!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2388,6 +2477,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2402,6 +2496,10 @@ msgstr "s3cmd 동기화는 {url}로 {path}를 색인하고 삭제합나다"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2605,6 +2703,31 @@ msgstr "{path}는 존재하지 않습니다! 실행하여 그것을 만드세
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path'가 config.yml에서 설정되어 있지 않습니다!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2615,6 +2738,11 @@ msgstr "{path}는 영 크기입니다!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-70-g54bc858\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-06-23 14:52+0000\n"
"Last-Translator: abe1242 <abmdn1242@gmail.com>\n"
"Language-Team: Malayalam <https://hosted.weblate.org/projects/f-droid/fdroidserver/ml/>\n"
@ -95,6 +95,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -214,6 +219,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -291,6 +301,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -387,6 +401,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -553,6 +572,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -619,6 +648,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -785,6 +819,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -849,6 +887,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1054,6 +1096,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1191,6 +1237,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1349,6 +1399,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1382,6 +1436,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1631,6 +1689,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1795,11 +1857,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1827,6 +1893,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1856,6 +1926,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1913,6 +1987,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2062,6 +2140,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2236,6 +2318,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2393,6 +2480,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2407,6 +2499,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2611,6 +2707,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2621,6 +2742,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.8-74-ga380b9f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2022-09-06 14:30+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/f-droid/fdroidserver/nb_NO/>\n"
@ -97,6 +97,11 @@ msgstr[1] "%(option)s-valget krever %(number)d argumenter"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: feil: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -219,6 +224,11 @@ msgstr "/issues mangler"
msgid "A URL is required as an argument!"
msgstr "valg -%s krever et argument"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Ingen signeringssertifikater funnet i {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Legg til PGP-signaturer for pakker i pakkebrønnen ved bruk av GnuPG"
@ -297,6 +307,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -395,6 +409,11 @@ msgstr "Kategorien '%s' er ikke gyldig"
msgid "Categories are not set"
msgstr "Kategoreier ikke satt"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Se etter programoppdateringer"
@ -568,6 +587,16 @@ msgstr "Beskrivelsen har en liste (%s), men er ikke punktvis (*) eller nummerert
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Beskrivelse av lengde {length} overstiger {limit} tegngrensen"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Ikke legg til «deaktivert:» blant genererte bygg"
@ -636,6 +665,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr "Dobbeltlenke i \"{field}\": {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
@ -814,6 +848,11 @@ msgstr "Noen programmer ble funnet å ha ugldige versionCodes"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Fant flere signeringssertifikater i {path}."
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Fant flere signeringssertifikater for pakkebrønn."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -880,6 +919,11 @@ msgstr "Git set-head annensteds hen mislyktes: «%s»"
msgid "Git reset failed"
msgstr "Git-tilbakestilling mislyktes"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git-oppdatering av undermodul mislyktes"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git-synkronisering av undermodul mislyktes"
@ -1093,6 +1137,10 @@ msgstr "Kunne ikke lese minSdkVersion: \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Nøkkellager for signeringsnøkkel:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1238,6 +1286,11 @@ msgstr "Fant ingen tilknyttede enheter"
msgid "No unsigned directory - nothing to do"
msgstr "Ingen usignert mappe - ingenting å gjøre"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "ingen versjonsinfo funnet!"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Ikke en gyldig størrelsesdefinisjon: «{}»"
@ -1404,6 +1457,11 @@ msgstr "Dytt loggen til denne Git-pakkebrønnen annensteds hen"
msgid "Pushing binary transparency log to {url}"
msgstr "Dytter binærgjennomsiktighetslogg til {url}."
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git set-head annensteds hen mislyktes: «%s»"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1437,6 +1495,10 @@ msgstr "Kunne ikke lese packageName/versionCode/versionName, APK ugyldig: \"{apk
msgid "Reading {apkfilename} from cache"
msgstr "Behandler {apkfilename}"
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Fjerner angitte filer"
@ -1694,6 +1756,13 @@ msgstr "Nøkkelaliaskollisjon - offentliggjøring stanset"
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"Feil: Denne kommandoen bør aldri brukes til å speile f-droid.org.\n"
"Et helt speil av f-droid.org krever mer enn 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1859,11 +1928,15 @@ msgstr "UpdateCheckData må bruke HTTPS-nettadresse: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData er ikke en gyldig nettadresse: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1892,6 +1965,11 @@ msgstr "Bruk"
msgid "Usage: %s\n"
msgstr "Bruk: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Bruk /HEAD istedenfor /master for å peke til en fil i forvalgt forgrening"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Bruk /HEAD istedenfor /master for å peke til en fil i forvalgt forgrening"
@ -1923,6 +2001,11 @@ msgstr "Bruker APK Signature v2"
msgid "Using APK Signature v3"
msgstr "Bruker APK Signature v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Bruker APK Signature v2"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
@ -1982,6 +2065,10 @@ msgstr "Når oppsatt for signerte indekser, vil kun usignerte indekser bli oppre
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 \"Entydig navn\" (DN) brukt ved generering av nøkler."
@ -2138,6 +2225,10 @@ msgstr "konflikterende valgstreng: %s"
msgid "could not parse '{path}'"
msgstr "kunne ikke tolke'{path}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2320,6 +2411,11 @@ msgstr "local_copy_dir må være ei mappe, ikke ei fil!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "speilet \"%s\" slutter ikke med \"fdroid\"."
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Nå må du sette disse i config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2480,6 +2576,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
#, fuzzy
msgid "ruamel.yaml not installed, can not write metadata."
@ -2495,6 +2596,11 @@ msgstr "s3cmd synkroniserer indekser {path} til {url} og sletter"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir slutter ikke med \"fdroid\", kanskje du mente: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "delt bibliotek"
@ -2702,6 +2808,31 @@ msgstr "{path} finnes ikke. Opprett den ved å kjøre:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} har feilaktig filsignatur \"{pattern}\", mulig Janus-utnyttelse."
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' ble ikke funnet i config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2712,6 +2843,11 @@ msgstr "{path} er null størrelse."
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} er mer enn 200MB, last opp manuelt: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
msgid "{path}: {error}"

View File

@ -4,21 +4,21 @@
# Michal L <michalrmsmi@wp.pl>, 2020, 2021.
# mondstern <mondstern@snopyta.org>, 2021.
# Hans-Christoph Steiner <hans@guardianproject.info>, 2021.
# Agnieszka C <aga_04@o2.pl>, 2021, 2022, 2023.
# Agnieszka C <aga_04@o2.pl>, 2021, 2022, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-05-26 19:39+0000\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 18:44+0000\n"
"Last-Translator: Agnieszka C <aga_04@o2.pl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/f-droid/fdroidserver/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.18-dev\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -99,6 +99,11 @@ msgstr[2] "%(option)s opcje wymagają %(number)d argumentów"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: błąd: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -218,6 +223,11 @@ msgstr "/nie ma problemów"
msgid "A URL is required as an argument!"
msgstr "Adres URL jest wymagany jako argument!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nie znaleziono certyfikatów do podpisu w {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Dodaj podpisy PGP za pomocą GnuPG dla pakietów w repozytorium"
@ -295,6 +305,11 @@ msgstr "Aplikacja ma Binaries, ale nie ma odpowiednich kluczy AllowedAPKSingKeys
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikacja ma NoSourceSince lub ArchivePolicy „0 versions”, ale AutoUpdateMode lub UpdateCheckMode nie są None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikacja ma NoSourceSince lub ArchivePolicy „0 versions”, ale AutoUpdateMode lub UpdateCheckMode nie są None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -392,6 +407,11 @@ msgstr "Kategorie '%s' są nieprawidłowe"
msgid "Categories are not set"
msgstr "Kategorie nie są ustawione"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Sprawdź aktualizacje aplikacji"
@ -558,6 +578,16 @@ msgstr "Opis ma listę (%s), ale nie jest wypunktowana (*) ani ponumerowana (#)"
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Opis długości {length} przekracza limit {limit} char"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Nie dodawaj „wyłącz:” do wygenerowanych wpisów kompilacji"
@ -624,6 +654,11 @@ msgstr "Zduplikowany wpis „%s” w konfiguracji serwerów lustrzanych!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Zduplikowany link w '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "BŁĄD: podkomenda „serwer” została usunięta, użyj polecenia „deploy”!"
@ -794,6 +829,11 @@ msgstr "Znaleziono nieprawidłowe kody wersji dla niektórych aplikacji"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Znaleziono wiele plików bloków podpisów JAR w {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Znaleziono wiele certyfikatów do podpisywania dla repozytorium."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -858,6 +898,11 @@ msgstr "Błąd zdalnego ustawiania Git: \"%s\""
msgid "Git reset failed"
msgstr "Resetowanie Git nie powiodło się"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Aktualizacja submodułu Git nie powiodła się"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Nie udało się zsynchronizować modułu submodule Git"
@ -1063,6 +1108,10 @@ msgstr "Utrzymywanie nieudanej kompilacji „{apkfilename}”"
msgid "Keystore for signing key:\t"
msgstr "Magazyn kluczy do podpisywania klucza:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1200,6 +1249,11 @@ msgstr "Nie znaleziono tagów"
msgid "No unsigned directory - nothing to do"
msgstr "Brak katalogu bez podpisu - nic nie można zrobić"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nie znaleziono informacji o wersji"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Nieprawidłowa definicja rozmiaru: \"{}\""
@ -1358,6 +1412,11 @@ msgstr "Przepchnij dziennik do tego zdalnego repozytorium git"
msgid "Pushing binary transparency log to {url}"
msgstr "Przesyłanie dziennika przejrzystości plików binarnych do {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Błąd zdalnego ustawiania Git: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1391,6 +1450,11 @@ msgstr "Nie udało się odczytać packageName/versionCode/versionName, nieprawid
msgid "Reading {apkfilename} from cache"
msgstr "Czytanie {apkfilename} z pamięci podręcznej"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "pobierz najnowszą wersję sygnatur z sieci"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Usuwanie określonych plików"
@ -1641,6 +1705,13 @@ msgstr "Istnieje kolizja keyalias - wstrzymano publikowanie"
msgid "These are the apps that have been archived from the main repo."
msgstr "To są aplikacje, które zostały zarchiwizowane w głównym repozytorium."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"BŁĄD: tego polecenia nigdy nie należy używać do zwierciadlania f-droid.org!\n"
"Pełne lustro f-droid.org wymaga ponad 200 GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "To jest repozytorium aplikacji używanych z F-Droid. Aplikacje w tym repozytorium są albo oficjalnymi plikami binarnymi utworzonymi przez oryginalnych programistów aplikacji, albo plikami binarnymi utworzonymi ze źródła przez administratora f-droid.org przy użyciu narzędzi na https://gitlab.com/fdroid."
@ -1809,11 +1880,16 @@ msgstr "UpdateCheckData musi używać adresu URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData nie jest prawidłowym adresem URL: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode jest ustawiony, ale wygląda na to, że checkupdates nie został jeszcze uruchomiony"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode jest ustawiony, ale wygląda na to, że checkupdates nie został jeszcze uruchomiony"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName jest ustawiony na znany identyfikator aplikacji, można go usunąć"
@ -1841,6 +1917,11 @@ msgstr "Zastosowanie"
msgid "Usage: %s\n"
msgstr "Użycie: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Użyj /HEAD zamiast/ master, aby wskazać plik w domyślnej gałęzi"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Użyj /HEAD zamiast/ master, aby wskazać plik w domyślnej gałęzi"
@ -1870,6 +1951,11 @@ msgstr "Używając APK Signature v2"
msgid "Using APK Signature v3"
msgstr "Używając APK Signature v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Używając APK Signature v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Korzystanie z jarsignera Java nie jest zalecane do weryfikacji plików APK! Użyj apksigner"
@ -1927,6 +2013,10 @@ msgstr "Po skonfigurowaniu dla indeksów podpisanych utwórz na tym etapie tylko
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Podczas linkowania całego repozytorium yamllint jest domyślnie wyłączony. Ta opcja wymusza yamllint niezależnie od tego."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distinguished Name' używana podczas generowania kluczy"
@ -2077,6 +2167,11 @@ msgstr "kolidujący subparser: %s"
msgid "could not parse '{path}'"
msgstr "nie można przeanalizować '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "could not parse srclib spec (no ref specified):' {}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "could not parse srclib spec (no ref specified):' {}'"
@ -2252,6 +2347,11 @@ msgstr "local_copy_dir musi być katalogiem, a nie plikiem!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "mirror '%s'nie kończy się na 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Teraz ustaw je w config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2409,6 +2509,11 @@ msgstr "repo_icon \"repo / icons / %s\" nie istnieje, generuje symbol zastępczy
msgid "repo_url needs to end with /repo"
msgstr "repo_url musi kończyć się na /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "nie zainstalowano ruamel.yaml, nie można zapisać metadanych."
@ -2423,6 +2528,11 @@ msgstr "s3cmd zsynchronizuj indeksy {path} do {url} i usuń"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "pamięć podręczna skanera jest zniszczona! Możesz to wyczyścić poleceniem: „{clear}”"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir nie kończy się na \"fdroid\", może masz na myśli: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "biblioteka współdzielona"
@ -2628,6 +2738,31 @@ msgstr "{path} nie istnieje! Utwórz go, uruchamiając:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} ma zły podpis pliku \"{pattern}\", możliwe wykorzystanie Janusa!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' nie jest ustawiony w config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2638,6 +2773,11 @@ msgstr "{path} ma zerowy rozmiar!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} więcej niż 200MB, przesłane ręcznie: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-680-ge1d3de71\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-07-02 15:51+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt/>\n"
@ -97,6 +97,11 @@ msgstr[1] "A opção %(option)s requer os argumentos %(number)d"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: erro: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -216,6 +221,11 @@ msgstr "está faltando o /issues"
msgid "A URL is required as an argument!"
msgstr "Uma URL é necessária como um argumento!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nenhum certificado de assinatura encontrado em {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Adicione assinaturas PGP usando GnuPG para os pacotes no repositório"
@ -293,6 +303,11 @@ msgstr "A app tem binários, mas não tem AllowedAPKSigningKeys correspondentes
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "A app tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são Nenhum"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "A app tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são Nenhum"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -389,6 +404,11 @@ msgstr "As categorias '%s' não são válidas"
msgid "Categories are not set"
msgstr "As categorias não são definidas"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Verificação de actualizações das aplicações"
@ -555,6 +575,16 @@ msgstr "A descrição tem a lista (%s), mas não tem marcadores (*), nem é nume
msgid "Description of length {length} is over the {limit} char limit"
msgstr "A descrição de comprimento {length} é sobre o limite de char {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Não adicionar 'disable:' às entradas de compilação geradas"
@ -621,6 +651,11 @@ msgstr "Entrada \"%s\" duplicada na configuração de espelhos!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Ligação duplicada em '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERRO: o subcomando \"server\" foi removido, use \"deploy\"!"
@ -791,6 +826,11 @@ msgstr "versionCodes inválidos encontrados para algumas apps"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Vários ficheiros de blocos de assinaturas JAR foram encontrados em {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Vários certificados de assinatura encontrados para o repositório."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -855,6 +895,11 @@ msgstr "Git remote set-head falhou: \"%s\""
msgid "Git reset failed"
msgstr "Git reset falhou"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git submodule update falhou"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git submodule sync falhou"
@ -1060,6 +1105,10 @@ msgstr "Mantendo a compilação com falha \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Armazenamento de chaves de assinatura:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1197,6 +1246,11 @@ msgstr "Nenhuma etiqueta encontrada"
msgid "No unsigned directory - nothing to do"
msgstr "Nenhum diretório não assinado - nada a fazer"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nenhuma informação de versão encontrada"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Não é uma definição de tamanho válida: \"{}\""
@ -1355,6 +1409,11 @@ msgstr "Submeter o registo de eventos para este repositório git remoto"
msgid "Pushing binary transparency log to {url}"
msgstr "A submeter o registo de transparência de binário para {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head falhou: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1388,6 +1447,11 @@ msgstr "Falha ao ler packageName/versionCode/versionName, APK inválido: '{apkfi
msgid "Reading {apkfilename} from cache"
msgstr "Lendo {apkfilename} do cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "buscar a versão de assinaturas mais recente da Web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Apagando ficheiros especificados"
@ -1637,6 +1701,13 @@ msgstr "Há uma colisão do keyalias - publicação parada"
msgid "These are the apps that have been archived from the main repo."
msgstr "Estas são as aplicações que foram arquivadas do repositório principal."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERRO: este comando nunca deve ser usado para espelhar f-Droid.org!\n"
"Um espelho completo de f-Droid.org requer mais de 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Este é um repositório de apps a serem usados com o F-Droid. Aplicações neste repositório são binários oficiais compilados pelos programadores da aplicação original ou são binários compilados da fonte por f-droid.org a usar as ferramentas em https://gitlab.com/fdroid."
@ -1805,11 +1876,16 @@ msgstr "UpdateCheckData deve usar um URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData não é uma URL válida: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName (o nome da verificação de atualização) é definido como o ID comun da aplicação - pode ser removido"
@ -1837,6 +1913,11 @@ msgstr "Utilização"
msgid "Usage: %s\n"
msgstr "Utilização: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar num ficheiro na ramificação predefinida"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar num ficheiro na ramificação predefinida"
@ -1866,6 +1947,11 @@ msgstr "A usar a assinatura APK v2"
msgid "Using APK Signature v3"
msgstr "A usar a assinatura APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "A usar a assinatura APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Usando o jarsigner de Java, não recomendado para verificar APKs! Use apksigner"
@ -1923,6 +2009,10 @@ msgstr "Quando configurado para índices assinados, crie apenas índices não as
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Ao cotar todo o repositório o yamllint é desativado por predefinição. Esta opção força o yamllint independentemente."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distiguished Name' usado na geração de chaves"
@ -2072,6 +2162,11 @@ msgstr "subanalisador conflitante: %s"
msgid "could not parse '{path}'"
msgstr "não foi possível analisar '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência não especificada): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência não especificada): '{}'"
@ -2246,6 +2341,11 @@ msgstr "local_copy_dir deve ser directory, não um ficheiro!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "espelho '%s' não termina com 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Agora configure estes em config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2403,6 +2503,11 @@ msgstr "repo_icon \"repo/icons/%s\" não existe, a gerar um espaço reservado."
msgid "repo_url needs to end with /repo"
msgstr "repo_url precisa de terminar com /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "o ruamel.yaml não está instalado, não é possível escrever metadados."
@ -2417,6 +2522,11 @@ msgstr "s3cmd sincroniza índices {path} para {url} e apaga"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "o cache do scanner está malformado! Pode limpá-lo com: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir não termina com \"fdroid\", talvez quis: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "biblioteca compartilhada"
@ -2621,6 +2731,31 @@ msgstr "{path} não existe! Crie-o executando:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} tem uma má assinatura de ficheiro \"{pattern}\", um exploração Janus é possível!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' não definido em 'config.yml'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2631,6 +2766,11 @@ msgstr "{path} tem um tamanho de zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} mais de 200MB, enviar manualmente: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-08-18 15:51+0000\n"
"Last-Translator: The Cats <philosoph@danwin1210.de>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt_BR/>\n"
@ -102,6 +102,11 @@ msgstr[1] "opção %(option)s necessita %(number)d argumentos"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: erro: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -221,6 +226,11 @@ msgstr "está faltando o /issues"
msgid "A URL is required as an argument!"
msgstr "Uma URL é necessária como um argumento!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nenhum certificado de assinatura encontrado em {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Adicione assinaturas PGP usando GnuPG para os pacotes no repositório"
@ -298,6 +308,11 @@ msgstr "O aplicativo tem binários, mas não tem AllowedAPKSigningKeys correspon
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "O aplicativo tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "O aplicativo tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -394,6 +409,11 @@ msgstr "Categorias '%s' não são válidas"
msgid "Categories are not set"
msgstr "As categorias não estão definidas"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Verifica se existem atualizações para os aplicativos"
@ -560,6 +580,16 @@ msgstr "Descrição tem uma lista (%s), mas não é com marcadores (*) nem numer
msgid "Description of length {length} is over the {limit} char limit"
msgstr "A descrição de tamanho {length} está acima do limite de {limit} caracteres"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Não adicione \"disable:\" para as entradas de compilação geradas"
@ -626,6 +656,11 @@ msgstr "Entrada \"%s\" duplicada na configuração de espelhos!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Link duplicado em '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERRO: o subcomando \"server\" foi removido, use \"deploy\"!"
@ -796,6 +831,11 @@ msgstr "Encontrado versões de códigos inválidas para alguns aplicativos"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Encontrados vários arquivos de bloqueio de assinatura JAR em {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Encontrado vários certificados de assinatura para o repositório."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -860,6 +900,11 @@ msgstr "Git remote set-head falhou: \"%s\""
msgid "Git reset failed"
msgstr "Falha no 'reset' do Git"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Falha na atualização do submódulo Git"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Falha na sincronização do submódulo Git"
@ -1065,6 +1110,10 @@ msgstr "Mantendo a compilação com falha \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Armazenamento de chaves de assinatura:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1202,6 +1251,11 @@ msgstr "Nenhuma etiqueta encontrada"
msgid "No unsigned directory - nothing to do"
msgstr "Nenhum diretório não assinado - nada a fazer"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nenhuma informação de versão encontrada"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Não é uma definição de tamanho válida: \"{}\""
@ -1360,6 +1414,11 @@ msgstr "Mandar o registro de mudanças para este repositório git remoto"
msgid "Pushing binary transparency log to {url}"
msgstr "Atualizar o log de transparência de um binário para {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head falhou: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1393,6 +1452,11 @@ msgstr "Falha ao ler packageName/versionCode/versionName, APK inválido: '{apkfi
msgid "Reading {apkfilename} from cache"
msgstr "Lendo {apkfilename} do cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "obter a versão de assinaturas mais recente da Web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Removendo arquivos especificados"
@ -1642,6 +1706,13 @@ msgstr "Há uma colisão do keyalias - publicação parada"
msgid "These are the apps that have been archived from the main repo."
msgstr "Estas são as aplicações que foram arquivadas a partir do repositório principal."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERRO: este comando nunca deve ser usado para espelhar o f-droid.org!\n"
"Um espelho completo de f-droid.org requer mais de 200 GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Este é um repositório de aplicativos a serem usados com o F-Droid. Os aplicativos neste repositório são binários oficiais compilados pelos desenvolvedores do aplicativo original ou são binários compilados a partir da fonte por f-droid.org usando as ferramentas em https://gitlab.com/fdroid."
@ -1810,11 +1881,16 @@ msgstr "UpdateCheckData deve usar um URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData não é uma URL válida: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName (atualização da verificação do nome) é definido como o ID comun do app - pode ser removido"
@ -1842,6 +1918,11 @@ msgstr "Uso"
msgid "Usage: %s\n"
msgstr "Uso: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar em um arquivo na ramificação predefinida"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar em um arquivo na ramificação predefinida"
@ -1871,6 +1952,11 @@ msgstr "Usando a Assinatura APK v2"
msgid "Using APK Signature v3"
msgstr "Usando a Assinatura APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Usando a Assinatura APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Usando o jarsigner de Java, não recomendado para verificar APKs! Use apksigner"
@ -1928,6 +2014,10 @@ msgstr "Quando configurado para índices assinados, crie apenas índices não as
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Ao cotar todo o repositório, o yamllint é desativado por padrão. Independente de qualquer coisa esta opção impõem o uso do yamllint."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distiguished Name' usado na geração de chaves"
@ -2077,6 +2167,11 @@ msgstr "subanalizador conflitante: %s"
msgid "could not parse '{path}'"
msgstr "não foi possível analisar '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência sem especificação): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência sem especificação): '{}'"
@ -2251,6 +2346,11 @@ msgstr "local_copy_dir deve ser um diretório, não um arquivo!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "espelho '%s' não termina com 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Agora defina estes em config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2408,6 +2508,11 @@ msgstr "repo_icon \"repo/icons/%s\" não existe, gerando um espaço reservado."
msgid "repo_url needs to end with /repo"
msgstr "repo_url precisa terminar com /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "o ruamel.yaml não está instalado, não é possível escrever os metadados."
@ -2422,6 +2527,11 @@ msgstr "s3cmd sincroniza índices {path} para {url} e exclui"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "o cache do scanner está malformado! Você pode limpá-lo com: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir não termina com \"fdroid\", talvez você quis: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "biblioteca compartilhada"
@ -2626,6 +2736,31 @@ msgstr "{path} não existe! Crie-o executando:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} tem uma má assinatura de arquivo \"{pattern}\", um exploração Janus é possível!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "\"sdk_path\" não definido em config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2636,6 +2771,11 @@ msgstr "{path} tem um tamanho de zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "o {path} tem mais de 200MB, upload manual: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-07-02 15:51+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/f-droid/fdroidserver/pt_PT/>\n"
@ -98,6 +98,11 @@ msgstr[1] "A opção %(option)s requer os argumentos %(number)d"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: erro: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -217,6 +222,11 @@ msgstr "está faltando o /issues"
msgid "A URL is required as an argument!"
msgstr "Uma URL é necessária como um argumento!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nenhum certificado de assinatura encontrado em {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Adicione assinaturas PGP usando GnuPG para os pacotes no repositório"
@ -294,6 +304,11 @@ msgstr "A app tem binários, mas não tem AllowedAPKSigningKeys correspondentes
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "A app tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são Nenhum"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "A app tem NoSourceSince ou ArchivePolicy \"0 versões\", mas AutoUpdateMode ou UpdateCheckMode não são Nenhum"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -390,6 +405,11 @@ msgstr "As categorias '%s' não são válidas"
msgid "Categories are not set"
msgstr "As categorias não são definidas"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Verificação de actualizações das aplicações"
@ -556,6 +576,16 @@ msgstr "A descrição tem a lista (%s), mas não tem marcadores (*), nem é nume
msgid "Description of length {length} is over the {limit} char limit"
msgstr "A descrição de comprimento {length} é sobre o limite de char {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Não adicionar 'disable:' às entradas de compilação geradas"
@ -622,6 +652,11 @@ msgstr "Entrada \"%s\" duplicada na configuração de espelhos!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Ligação duplicada em '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERRO: o subcomando \"server\" foi removido, use \"deploy\"!"
@ -792,6 +827,11 @@ msgstr "versionCodes inválidos encontrados para algumas apps"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Vários ficheiros de blocos de assinaturas JAR foram encontrados em {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Vários certificados de assinatura encontrados para o repositório."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -856,6 +896,11 @@ msgstr "Git remote set-head falhou: \"%s\""
msgid "Git reset failed"
msgstr "Git reset falhou"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git submodule update falhou"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git submodule sync falhou"
@ -1061,6 +1106,10 @@ msgstr "Mantendo a compilação com falha \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Armazenamento de chaves de assinatura:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1198,6 +1247,11 @@ msgstr "Nenhuma etiqueta encontrada"
msgid "No unsigned directory - nothing to do"
msgstr "Nenhum diretório não assinado - nada a fazer"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "não há informações de versão encontrada"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Não é uma definição de tamanho válida: \"{}\""
@ -1356,6 +1410,11 @@ msgstr "Submeter o registo de eventos para este repositório git remoto"
msgid "Pushing binary transparency log to {url}"
msgstr "A submeter o registo de transparência de binário para {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head falhou: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1389,6 +1448,11 @@ msgstr "Falha ao ler packageName/versionCode/versionName, APK inválido: '{apkfi
msgid "Reading {apkfilename} from cache"
msgstr "Lendo {apkfilename} do cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "buscar a versão de assinaturas mais recente da Web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Apagando ficheiros especificados"
@ -1638,6 +1702,13 @@ msgstr "Há uma colisão do keyalias - publicação parada"
msgid "These are the apps that have been archived from the main repo."
msgstr "Estas são as aplicações que foram arquivadas do repositório principal."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERRO: este comando nunca deve ser usado para espelhar f-Droid.org!\n"
"Um espelho completo de f-Droid.org requer mais de 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Este é um repositório de apps a serem usados com o F-Droid. Aplicações neste repositório são binários oficiais compilados pelos programadores da aplicação original ou são binários compilados da fonte por f-droid.org a usar as ferramentas em https://gitlab.com/fdroid."
@ -1806,11 +1877,16 @@ msgstr "UpdateCheckData deve usar um URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData não é uma URL válida: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode é definido, mas parece que likecheckupdates ainda não foi executado"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName (o nome da verificação de atualização) é definido como o ID comun da aplicação - pode ser removido"
@ -1838,6 +1914,11 @@ msgstr "Utilização"
msgid "Usage: %s\n"
msgstr "Utilização: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar num ficheiro na ramificação predefinida"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Use /HEAD em vez de /master para apontar num ficheiro na ramificação predefinida"
@ -1867,6 +1948,11 @@ msgstr "A usar a assinatura APK v2"
msgid "Using APK Signature v3"
msgstr "A usar a assinatura APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "A usar a assinatura APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Usando o jarsigner de Java, não recomendado para verificar APKs! Use apksigner"
@ -1924,6 +2010,10 @@ msgstr "Quando configurado para índices assinados, crie apenas índices não as
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Ao cotar todo o repositório o yamllint é desativado por predefinição. Esta opção força o yamllint independentemente."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distiguished Name' usado na geração de chaves"
@ -2073,6 +2163,11 @@ msgstr "subanalisador conflitante: %s"
msgid "could not parse '{path}'"
msgstr "não foi possível analisar '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência não especificada): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "não foi possível analisar a especificação srclib (referência não especificada): '{}'"
@ -2247,6 +2342,11 @@ msgstr "local_copy_dir deve ser directory, não um ficheiro!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "espelho '%s' não termina com 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Agora configure estes em config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2404,6 +2504,11 @@ msgstr "repo_icon \"repo/icons/%s\" não existe, a gerar um espaço reservado."
msgid "repo_url needs to end with /repo"
msgstr "repo_url precisa de terminar com /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "o ruamel.yaml não está instalado, não é possível escrever metadados."
@ -2418,6 +2523,11 @@ msgstr "s3cmd sincroniza índices {path} para {url} e exclui"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "o cache do scanner está malformado! Pode limpá-lo com: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir não termina com \"fdroid\", talvez quis: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "biblioteca compartilhada"
@ -2622,6 +2732,31 @@ msgstr "{path} não existe! Crie-o executando:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} tem uma má assinatura de ficheiro \"{pattern}\", um exploração Janus é possível!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' não definido em 'config.yml'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2632,6 +2767,11 @@ msgstr "{path} tem um tamanho de zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} mais de 200MB, enviar manualmente: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.0a5-27-gf24eae0f\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/f-droid/fdroidserver/ro/>\n"
@ -99,6 +99,11 @@ msgstr[2] "Opțiunea %(option)s necesită %(number)d argumente"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: eroare: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -218,6 +223,11 @@ msgstr "/problemele lipsesc"
msgid "A URL is required as an argument!"
msgstr "Un URL este necesar ca argument!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Nu s-au găsit certificate de semnare în {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Adăugați semnături PGP folosind GnuPG pentru pachetele din depozit"
@ -295,6 +305,11 @@ msgstr "Aplicația are binare, dar nu are AllowedAPKSigningKeys corespunzătoare
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "App are NoSourceSince sau ArchivePolicy \"0 versions\" dar AutoUpdateMode sau UpdateCheckMode nu sunt None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "App are NoSourceSince sau ArchivePolicy \"0 versions\" dar AutoUpdateMode sau UpdateCheckMode nu sunt None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -392,6 +407,11 @@ msgstr "Categoriile \"%s\" nu sunt valabile"
msgid "Categories are not set"
msgstr "Categoriile nu sunt setate"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Verificați dacă există actualizări ale aplicațiilor"
@ -558,6 +578,16 @@ msgstr "Descrierea are o listă (%s), dar nu este punctată (*) și nici numerot
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Descrierea lungimii {length} este peste limita {limit} limitei de caractere"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Nu adăugați \"disable:\" la intrările de construcție generate"
@ -624,6 +654,11 @@ msgstr "Intrare duplicată \"%s\" în oglinzile config!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Legătură duplicată în \"{field}\": {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ERROR: Subcomanda \"server\" a fost eliminată, utilizați \"deploy\"!"
@ -794,6 +829,11 @@ msgstr "Am găsit coduri de versiune invalide pentru unele aplicații"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Am găsit mai multe fișiere JAR Signature Block în {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "S-au găsit mai multe certificate de semnare pentru depozit."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -858,6 +898,11 @@ msgstr "Git remote set-head a eșuat: \"%s\""
msgid "Git reset failed"
msgstr "Resetarea Git a eșuat"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Actualizarea submodulelor Git a eșuat"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Sincronizarea submodulelor Git a eșuat"
@ -1063,6 +1108,10 @@ msgstr "Nu a reușit să construiască \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Keystore pentru cheia de semnare:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1200,6 +1249,11 @@ msgstr "Nu s-au găsit etichete"
msgid "No unsigned directory - nothing to do"
msgstr "Niciun director nesemnat - nimic de făcut"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "nu s-au găsit informații despre versiune"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Nu este o definiție valabilă a dimensiunii: \"{}\""
@ -1358,6 +1412,11 @@ msgstr "Împingeți jurnalul în acest depozit de la distanță git"
msgid "Pushing binary transparency log to {url}"
msgstr "Trimiterea jurnalului de transparență binară la {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head a eșuat: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1391,6 +1450,11 @@ msgstr "Citirea packageName/versionCode/versionName a eșuat, APK invalid: '{apk
msgid "Reading {apkfilename} from cache"
msgstr "Citirea {apkfilename} din memoria cache"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "extrage cea mai recentă versiune de semnături de pe web"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Eliminarea fișierelor specificate"
@ -1641,6 +1705,13 @@ msgstr "Există o coliziune keyalias - publicarea a fost oprită"
msgid "These are the apps that have been archived from the main repo."
msgstr "Acestea sunt aplicațiile care au fost arhivate din depozitul principal."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ERROR: această comandă nu ar trebui să fie folosită niciodată pentru a oglindi f-droid.org!\n"
"O oglindă completă a f-droid.org necesită mai mult de 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Acesta este un depozit de aplicații care pot fi utilizate cu F-Droid. Aplicațiile din acest depozit sunt fie binare oficiale construite de către dezvoltatorii aplicațiilor originale, fie binare construite din sursă de către administratorul f-droid.org folosind instrumentele de pe https://gitlab.com/fdroid."
@ -1809,11 +1880,16 @@ msgstr "UpdateCheckData trebuie să utilizeze un URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData nu este un URL valid: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode este setat, dar se pare că checkupdates nu a fost încă rulat."
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode este setat, dar se pare că checkupdates nu a fost încă rulat."
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "UpdateCheckName este setat la ID-ul cunoscut al aplicației, acesta poate fi eliminat"
@ -1841,6 +1917,11 @@ msgstr "Utilizare"
msgid "Usage: %s\n"
msgstr "Utilizare: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Folosiți /HEAD în loc de /master pentru a indica un fișier din ramura implicită"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Folosiți /HEAD în loc de /master pentru a indica un fișier din ramura implicită"
@ -1870,6 +1951,11 @@ msgstr "Folosind APK Signature v2"
msgid "Using APK Signature v3"
msgstr "Folosind APK Signature v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Folosind APK Signature v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Folosind jarsigner de la Java, nu este recomandat pentru verificarea APK-urilor! Utilizați apksigner"
@ -1927,6 +2013,10 @@ msgstr "Atunci când este configurat pentru indici cu semnătură, creați numai
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Atunci când se face linting pentru întregul depozit, yamllint este dezactivat în mod implicit. Această opțiune forțează yamllint indiferent de aceasta."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 \"Distinguished Name\" utilizat la generarea cheilor"
@ -2077,6 +2167,11 @@ msgstr "șir de opțiuni conflictuale: %s"
msgid "could not parse '{path}'"
msgstr "nu s-a putut analiza '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "nu a putut analiza specificația srclib (nu a fost specificat niciun ref): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "nu a putut analiza specificația srclib (nu a fost specificat niciun ref): '{}'"
@ -2252,6 +2347,11 @@ msgstr "local_copy_dir trebuie să fie un director, nu un fișier!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "oglinda '%s' nu se termină cu 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Acum setați-le în config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2409,6 +2509,11 @@ msgstr "repo_icon \"repo/icons/%s\" nu există, se generează un înlocuitor."
msgid "repo_url needs to end with /repo"
msgstr "repo_url trebuie să se termine cu /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml nu este instalat, nu poate scrie metadatele."
@ -2423,6 +2528,11 @@ msgstr "s3cmd sincronizează indexurile {path} cu {url} și șterge"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "cache-ul scanerului este deformat! Puteți să o ștergeți cu: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir nu se termină cu \"fdroid\", poate ai vrut să spui: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "bibliotecă partajată"
@ -2628,6 +2738,31 @@ msgstr "{path} nu există! Creați-l prin rularea:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} are o semnătură proastă a fișierului \"{pattern}\", posibil exploit Janus!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' nu este setat în 'config.yml'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2638,6 +2773,11 @@ msgstr "{path} este de dimensiune zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} mai mult de 200MB, încărcați manual: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-02-23 12:59+0000\n"
"Last-Translator: Alexander Ivanov <saiv46.dev@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/f-droid/fdroidserver/ru/>\n"
@ -107,6 +107,11 @@ msgstr[2] "Параметр %(option)s требует %(number)d аргумен
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: ошибка: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -226,6 +231,11 @@ msgstr "Не хватает /issues"
msgid "A URL is required as an argument!"
msgstr "В качестве аргумента нужен URL-адрес!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "В {path} не обнаружены сертификаты для подписывания"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Добавить PGP подписи для пакетов в репозитории с помощью GnuPG"
@ -303,6 +313,11 @@ msgstr "Приложение имеет двоичные файлы, но не
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Приложение имеет NoSourceSince или ArchivePolicy \"0 версий\", но AutoUpdateMode или UpdateCheckMode не равны None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Приложение имеет NoSourceSince или ArchivePolicy \"0 версий\", но AutoUpdateMode или UpdateCheckMode не равны None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -400,6 +415,11 @@ msgstr "Неправильные категории: '%s'"
msgid "Categories are not set"
msgstr "Категории не выбраны"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Проверить обновления для приложений"
@ -566,6 +586,16 @@ msgstr "В описании есть неразмеченный список (%s
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Описание {length} превышает лимит по количеству знаков {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Не добавлять 'disable:' к сгенерированным данным сборки"
@ -632,6 +662,11 @@ msgstr "Дублирующаяся запись \"%s\" в конфигураци
msgid "Duplicate link in '{field}': {url}"
msgstr "Точная копия ссылки в '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ОШИБКА: подкоманда \"server\" была удалена, используйте \"deploy\"!"
@ -802,6 +837,11 @@ msgstr "Для некоторых приложений обнаружены не
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "В {path} обнаружено несколько сертификатов (JAR Signature Block File)"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Для этого репозитория обнаружено несколько ключей для подписывания."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -866,6 +906,11 @@ msgstr "Не удалось настроить HEAD для удаленного
msgid "Git reset failed"
msgstr "Не удалось отменить изменения (git reset)"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Не удалось обновить модули Git (git submodules update)"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Не удалось синхронизировать модули Git (git submodules sync)"
@ -1071,6 +1116,10 @@ msgstr "Сохранение неудачной сборки \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Хранилище ключа для подписывания:→\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1208,6 +1257,11 @@ msgstr "Теги не найдены"
msgid "No unsigned directory - nothing to do"
msgstr "Директории с неподписанными данными не существует. До новых встреч"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "информация о версии не найдена"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Неверное определение размера: \"{}\""
@ -1366,6 +1420,11 @@ msgstr "Отправить лог в удаленный репозиторий g
msgid "Pushing binary transparency log to {url}"
msgstr "Публикация лога прозрачности кода в {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Не удалось настроить HEAD для удаленного репозитория (git remote set-head): \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1399,6 +1458,11 @@ msgstr "Не удалось прочитать packageName/versionCode/versionNa
msgid "Reading {apkfilename} from cache"
msgstr "Чтение {apkfilename} из кеша"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "получить последнюю версию подписей из интернета"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Удаление выбранных файлов"
@ -1649,6 +1713,13 @@ msgstr "Есть расхождения в алиасах ключей для п
msgid "These are the apps that have been archived from the main repo."
msgstr "Это те приложения, которые были заархивированы из основного репозитория."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ОШИБКА: эту команду ни в коем случае нельзя использовать для создания зеркала f-droid.org!\n"
"Оно занимает больше 200 Гб."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Это репозиторий приложений, предназначенных для использования в FDroid. Приложения в этом репозитории являются либо официальными бинарными файлами, созданными разработчиками оригинального приложения, либо бинарными файлами, созданными f-droid.org из исходного кода с помощью инструментов на https://gitlab.com/fdroid."
@ -1817,11 +1888,16 @@ msgstr "URL-адрес в UpdateCheckData должен начинаться с H
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData содержит некорректный URL-адрес: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode настроен, но похоже, что команда checkupdates еще не была запущена"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode настроен, но похоже, что команда checkupdates еще не была запущена"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "Имя приложения для проверки обновлений (UpdateCheckName) соответствует ID приложения — это поле можно удалить"
@ -1849,6 +1925,11 @@ msgstr "Использование"
msgid "Usage: %s\n"
msgstr "Использование: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Указывайте /HEAD, а не /master, ссылаясь на файл в ветке по умолчанию"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Указывайте /HEAD, а не /master, ссылаясь на файл в ветке по умолчанию"
@ -1878,6 +1959,11 @@ msgstr "Используется схема подписи APK v2"
msgid "Using APK Signature v3"
msgstr "Используется схема подписи APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Используется схема подписи APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Проверка APK с помощью Java jarsigner. Так делать не следует! Пользуйтесь для этого apksigner"
@ -1935,6 +2021,10 @@ msgstr "Даже если в конфигурации сборки задано
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "При проверке целого репозитория, yamllint по умолчанию отключен. Этот параметр принудительно включает yamllint."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "При генерации ключей использовалось различимое имя (Distinguished Name) стандарта X.509"
@ -2085,6 +2175,11 @@ msgstr "конфликтный субпарсер:%s"
msgid "could not parse '{path}'"
msgstr "не удалось разобрать '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "не удалось разобрать спецификацию scrlib (не задана ссылка): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "не удалось разобрать спецификацию scrlib (не задана ссылка): '{}'"
@ -2260,6 +2355,11 @@ msgstr "local_copy_dir должна быть директорией, а не ф
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "адрес зеркала '%s' должен заканчиваться 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Определите эти переменные в config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2417,6 +2517,11 @@ msgstr "значок репозитория (repo_icon) 'repo/icons/%s' не с
msgid "repo_url needs to end with /repo"
msgstr "repo_url должен оканчиваться «/repo»"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml не установлен, не получается записать метаданные."
@ -2431,6 +2536,11 @@ msgstr "s3cmd синхронизировать индексы из {path} в {ur
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "кэш сканера поврежден! Вы можете очистить его с помощью: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir должна заканчиваться на \"fdroid\". Возможно, имелось в виду \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "разделяемая библиотека"
@ -2636,6 +2746,31 @@ msgstr "{path} не существует! Создайте, выполнив к
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path}: неверная подпись \"{pattern}\". Выглядит подозрительно и похоже на попытку нарушения безопасности (Janus exploit)!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' не найден в config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2646,6 +2781,11 @@ msgstr "размер {path} равен нулю!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "Размер {path} больше 200MB, загрузите его вручную на {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -90,6 +90,11 @@ msgstr[2] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -209,6 +214,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -286,6 +296,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1628,6 +1686,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1789,11 +1851,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1821,6 +1887,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1850,6 +1920,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1907,6 +1981,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2057,6 +2135,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2232,6 +2314,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2389,6 +2476,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2403,6 +2495,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2608,6 +2704,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2618,6 +2739,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.6-349-g907c04ea\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-02-20 18:58+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/f-droid/fdroidserver/sq/>\n"
@ -95,6 +95,11 @@ msgstr[1] "Mundësi %(option)s lyp %(number)d argumente"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: gabim: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -214,6 +219,11 @@ msgstr "/issues mungon"
msgid "A URL is required as an argument!"
msgstr "Lypset një URL si argument!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "Su gjetën dëshmi nënshkrimi te {path}"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Shtoni për paketa në depo nënshkrime PGP duke përdorur GnuPG-në"
@ -291,6 +301,11 @@ msgstr "Aplikacioni ka Dyorë, por ska AllowedAPKSigningKeys përkatës për
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikacioni ka NoSourceSince ose ArchivePolicy “0 versione”, por AutoUpdateMode ose UpdateCheckMode janë vënë si “Asnjë”"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Aplikacioni ka NoSourceSince ose ArchivePolicy “0 versione”, por AutoUpdateMode ose UpdateCheckMode janë vënë si “Asnjë”"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -387,6 +402,11 @@ msgstr "Kategoritë '%s' sjanë të vlefshme"
msgid "Categories are not set"
msgstr "Sjanë ujdisur kategori"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Kontrollo për përditësime aplikacionesh"
@ -553,6 +573,16 @@ msgstr "Përshkrimi ka një listë (%s), por kjo sështë as me toptha (*), a
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Përshkrimi me gjatësi {length} është mbi kufirin prej {limit} shenjash"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Mos shtoni 'disable:' te zëra të prodhuar të montimit"
@ -619,6 +649,11 @@ msgstr "Zë i përsëdytur “%s” në formësim pasqyrash!"
msgid "Duplicate link in '{field}': {url}"
msgstr "Lidhje e përsëdytur te '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "GABIM: Nënurdhri “server” është hequr, përdorni “deploy”!"
@ -789,6 +824,11 @@ msgstr "U gjetën versionCodes të pavlefshëm për disa aplikacione"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Te {path} u gjetën Kartela të shumta JAR Blloqesh Nënshkrimi"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "U gjetën dëshmi të shumta nënshkrimi për depon."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -853,6 +893,11 @@ msgstr "Veprimi “git remote set-head” dështoi: “%s”"
msgid "Git reset failed"
msgstr "Veprimi “git reset” dështoi"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Veprimi “git submodule update” dështoi"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Veprimi “git submodule sync” dështoi"
@ -1058,6 +1103,10 @@ msgstr "Po mbahet montim i dështuar “{apkfilename}”"
msgid "Keystore for signing key:\t"
msgstr "Depo kyçesh për kyç nënshkrimi:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1195,6 +1244,11 @@ msgstr "Su gjetën etiketa"
msgid "No unsigned directory - nothing to do"
msgstr "Ska drejtori të panënshkruar - ska çbëhet"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "su gjetën hollësi versioni"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Përkufizim jo i vlefshëm për madhësinë: “{}”"
@ -1353,6 +1407,11 @@ msgstr "Kryej <em>push</em> të regjistrit te kjo depo e largët git"
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Veprimi “git remote set-head” dështoi: “%s”"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1386,6 +1445,11 @@ msgstr "Leximi i packageName/versionCode/versionName dështoi, APK e pavlefshme:
msgid "Reading {apkfilename} from cache"
msgstr "Po lexohet {apkfilename} prej fshehtine"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "sill nga interneti versionin më të ri të nënshkrimeve"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Po hiqen kartelat e treguara"
@ -1635,6 +1699,13 @@ msgstr "Ka një përplasje keyalias-i - botimi u ndal"
msgid "These are the apps that have been archived from the main repo."
msgstr "Këto janë aplikacionet që janë arkivuar nga depoja kryesore."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"GABIM: ky urdhër sduhet përdorur kurrë për krijimin e një pasqyre të f-droid.org!\n"
"Një pasqyrë e plotë e f-droid.org lyp më tepër se 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Kjo është një depo aplikacionesh për tu përdorur me F-Droid. Aplikacionet në këtë depo ose janë dyorë zyrtarë të montuar nga zhvilluesit e aplikacionit origjinal, ose janë dyorë të montuar nga burimi prej f-droid.org duke përdorur mjetet në https://gitlab.com/fdroid."
@ -1804,11 +1875,16 @@ msgstr "UpdateCheckData duhet të përdorë URL HTTPS: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData sështë URL e vlefshme: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode është ujdisur, por duket sikur checkupdates sështë xhiruar ende"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode është ujdisur, por duket sikur checkupdates sështë xhiruar ende"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "Si UpdateCheckName është caktuar ID aplikacioni të njohur - smund të hiqet"
@ -1836,6 +1912,11 @@ msgstr "Përdorim"
msgid "Usage: %s\n"
msgstr "Përdorim: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Për të treguar një kartelë te dega parazgjedhje, përdorni /HEAD, në vend se /master"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Për të treguar një kartelë te dega parazgjedhje, përdorni /HEAD, në vend se /master"
@ -1865,6 +1946,11 @@ msgstr "Po përdoret Nënshkrimi APK-je v2"
msgid "Using APK Signature v3"
msgstr "Po përdoret Nënshkrimi APK-je v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Po përdoret Nënshkrimi APK-je v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Po përdoret jarsigner Java, srekomandohet për verifikim APK-sh! Përdorni apksigner"
@ -1922,6 +2008,10 @@ msgstr "Kur është formësuar për tregues të nënshkruar, në këtë fazë kr
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distinguished Name' i përdorur teksa prodhoheshin kyçe"
@ -2071,6 +2161,11 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr "su përtyp dot '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "su përtyp dot specifikim scrlib (su dha referencë): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "su përtyp dot specifikim scrlib (su dha referencë): '{}'"
@ -2245,6 +2340,11 @@ msgstr "local_copy_dir duhet të jetë një drejtori, jo një kartelë!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "pasqyra '%s' spërfundon me 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Tani, ujdisini këto te config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2402,6 +2502,11 @@ msgstr "repo_icon “repo/icons/%s” sekziston, po prodhohet vendmbajtëse."
msgid "repo_url needs to end with /repo"
msgstr "repo_url lypset të përfundojë me /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml sështë i instaluar, smund të shkruhen tejtëdhëna."
@ -2416,6 +2521,11 @@ msgstr "s3cmd sync indexes {path} to {url} and delete"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "fshehtina e kontrollorit është e keqformuar! Mund ta spastroni me: “{clear}”"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir does smbaron me “fdroid”, ndoshta kishit në mendje: “{path}”"
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "librari e përbashkët"
@ -2620,6 +2730,31 @@ msgstr "{path} sekziston! Krijojeni duke xhiruar:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} ka “{pattern}” të gabuar nënshkrimi kartele, ka gjasa të jetë rreng Janus!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' te 'config.yml' sështë ujdisur!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2630,6 +2765,11 @@ msgstr "{path} është me madhësi zero!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} më tepër se 200MB, ngarkojeni dorazi: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 2.1b0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2022-11-28 13:20+0000\n"
"Last-Translator: Đorđe Vasiljević <djordje.vasiljevich@gmail.com>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/f-droid/fdroidserver/sr/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1395,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1432,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1685,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,11 +1850,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1820,6 +1886,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1919,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1980,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2133,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2311,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -2,22 +2,22 @@
# Copyright (C) YEAR Free Software Foundation, Inc.
# Oğuz Ersen <oguzersen@protonmail.com>, 2020, 2021, 2022.
# Orhan <orya@pm.me>, 2021.
# Oğuz Ersen <oguz@ersen.moe>, 2022, 2023.
# Oğuz Ersen <oguz@ersen.moe>, 2022, 2023, 2024.
# Bai <batuhanakkurt000@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-09-09 10:53+0000\n"
"Last-Translator: Bai <batuhanakkurt000@gmail.com>\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-11 20:02+0000\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/f-droid/fdroidserver/tr/>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.1-dev\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -97,6 +97,11 @@ msgstr[1] "%(option)s seçeneği %(number)d argüman gerektirir"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: hata: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -216,6 +221,11 @@ msgstr "/issues eksik"
msgid "A URL is required as an argument!"
msgstr "Bir URL, argüman olarak gereklidir!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "{path} içinde imzalama sertifikaları bulunamadı"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Depodaki paketler için GnuPG ile PGP imzaları ekle"
@ -293,6 +303,11 @@ msgstr "Uygulama İkili Dosyalara sahip ancak sertifikayı sabitlemek için kar
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Uygulamanın NoSourceSince veya ArchivePolicy \"0 sürümü\" var ancak AutoUpdateMode veya UpdateCheckMode Yok değil"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Uygulamanın NoSourceSince veya ArchivePolicy \"0 sürümü\" var ancak AutoUpdateMode veya UpdateCheckMode Yok değil"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -389,6 +404,11 @@ msgstr "'%s' kategorileri geçersiz"
msgid "Categories are not set"
msgstr "Kategoriler ayarlı değil"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Uygulama güncellemelerini denetle"
@ -555,6 +575,16 @@ msgstr "Açıklamanın bir listesi (%s) var fakat madde imli (*) veya numaralı(
msgid "Description of length {length} is over the {limit} char limit"
msgstr "{length} uzunluğundaki açıklama, {limit} karakter sınırının üstünde"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Oluşturulan derleme girdilerine 'disable:' ekleme"
@ -621,6 +651,11 @@ msgstr "Aynalar yapılandırmasında yinelenen \"%s\" girişi!"
msgid "Duplicate link in '{field}': {url}"
msgstr "'{field}' içinde yinelenen bağlantı: {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "HATA: \"server\" alt komutu kaldırıldı, \"deploy\" kullanın!"
@ -791,6 +826,11 @@ msgstr "Bazı uygulamalar için geçersiz versionCodes bulundu"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "{path} içinde birden fazla JAR İmza Blok Dosyası bulundu"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Depo için birden çok imzalama sertifikası bulundu."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -855,6 +895,11 @@ msgstr "Git remote set-head başarısız: \"%s\""
msgid "Git reset failed"
msgstr "Git reset başarısız"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git alt modülü güncellemesi başarısız oldu"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git alt modülü eşzamanlaması başarısız oldu"
@ -1060,6 +1105,10 @@ msgstr "Başarısız yapı \"{apkfilename}\" tutuluyor"
msgid "Keystore for signing key:\t"
msgstr "İmzalama için anahtar deposu:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1197,6 +1246,11 @@ msgstr "Etiket bulunamadı"
msgid "No unsigned directory - nothing to do"
msgstr "İmzalanmamış dizin yok - yapılacak işlem yok"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "sürüm bilgisi bulunamadı"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Geçerli bir boyut tanımı değil: \"{}\""
@ -1355,6 +1409,11 @@ msgstr "Günlüğü bu git uzak deposuna it"
msgid "Pushing binary transparency log to {url}"
msgstr "İkili şeffaflık günlüğü {url} konumuna gönderiliyor"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head başarısız: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1388,6 +1447,11 @@ msgstr "packageName/versionCode/versionName okuma başarısız, APK geçersiz: '
msgid "Reading {apkfilename} from cache"
msgstr "{apkfilename} önbellekten okunuyor"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "imzaların en son sürümünü internetten al"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Belirtilen dosyalar kaldırılıyor"
@ -1637,6 +1701,13 @@ msgstr "Bir keyalias çakışması var - yayımlama durdu"
msgid "These are the apps that have been archived from the main repo."
msgstr "Bunlar ana depodan arşivlenmiş uygulamalardır."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"HATA: bu komut asla f-droid.org'u yansıtmak için kullanılmamalıdır!\n"
"f-droid.org'un tam bir yansıması 200GB'tan çok yer gerektirir."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Bu, F-Droid ile kullanılacak uygulamaların bir deposudur. Bu depodaki uygulamalar ya gerçek uygulama geliştiricileri tarafından oluşturulan resmi ikili dosyalardır ya da https://gitlab.com/fdroid adresindeki araçlar kullanılarak f-droid.org yöneticisi tarafından kaynaktan oluşturulan ikili dosyalardır."
@ -1805,10 +1876,15 @@ msgstr "UpdateCheckData, HTTPS URL'sini kullanmalıdır: {url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData geçerli bir URL değil: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode ayarlı ancak checkupdates henüz çalıştırılmamış gibi görünüyor"
msgstr "UpdateCheckMode ayarlı ancak checkupdates henüz çalıştırılmamış gibi görünüyor."
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode ayarlı ancak checkupdates henüz çalıştırılmamış gibi görünüyor."
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1837,6 +1913,11 @@ msgstr "Kullanım"
msgid "Usage: %s\n"
msgstr "Kullanım: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Öntanımlı daldaki bir dosyaya işaret etmek için /master yerine /HEAD kullanın"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Öntanımlı daldaki bir dosyaya işaret etmek için /master yerine /HEAD kullanın"
@ -1866,6 +1947,11 @@ msgstr "APK İmza v2 kullanılıyor"
msgid "Using APK Signature v3"
msgstr "APK İmza v3 kullanılıyor"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "APK İmza v2 kullanılıyor"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Java'nın jarsigner'ı kullanılıyor, APK'ları doğrulamak için önerilmez! apksigner'ı kullanın"
@ -1923,6 +2009,10 @@ msgstr "İmzalı indeksler için yapılandırıldığında, bu aşamada sadece i
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Tüm depo denetlenirken yamllint öntanımlı olarak devre dışı bırakılır. Bu seçenek, yamllint kullanımını ne olursa olsun zorlar."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "Anahtarlar üretilirken X.509 'Distinguished Name' kullanılır"
@ -2072,6 +2162,11 @@ msgstr "çakışan alt ayrıştırıcı: %s"
msgid "could not parse '{path}'"
msgstr "'{path}' ayrıştırılamadı"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "srclib belirtimi ayrıştırılamadı (referans belirtilmedi): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "srclib belirtimi ayrıştırılamadı (referans belirtilmedi): '{}'"
@ -2246,6 +2341,11 @@ msgstr "local_copy_dir bir dizin olmalı, dosya değil!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "Yansıma '%s' 'fdroid' ile bitmiyor!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Şimdi bunları config.yml içinde ayarlayın:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2403,6 +2503,11 @@ msgstr "repo_icon \"repo/icons/%s\" yok, yer tutucu oluşturuyor."
msgid "repo_url needs to end with /repo"
msgstr "repo_url'nin /repo ile bitmesi gerekiyor"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml kurulu değil, üst veriler yazılamıyor."
@ -2417,6 +2522,11 @@ msgstr "s3cmd sync {path} konumunu {url} adresine indeksler ve siler"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "tarayıcı önbelleği bozuk! Şu şekilde temizleyebilirsiniz: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir \"fdroid\" ile sonlanmıyor, belki de \"{path}\" demek istediniz"
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "paylaşımlı kütüphane"
@ -2621,6 +2731,31 @@ msgstr "{path} yok! Şunu çalıştırarak oluşturun:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} konumunun bozuk imzası \"{pattern}\" var, olası Janus istismarı!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' config.yml içinde ayarlı değil!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2631,6 +2766,11 @@ msgstr "{path} boyutu sıfır!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} 200MB'den fazla, elle yükleyin: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.1-681-gc19e8952\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2020-10-29 08:32+0000\n"
"Last-Translator: Hakim Oubouali <hakim.oubouali.skr@gmail.com>\n"
"Language-Team: Central Atlas Tamazight <https://hosted.weblate.org/projects/f-droid/fdroidserver/tzm/>\n"
@ -90,6 +90,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: tazgalt: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -209,6 +214,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -286,6 +296,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -382,6 +396,11 @@ msgstr ""
msgid "Categories are not set"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -548,6 +567,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -614,6 +643,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -780,6 +814,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -844,6 +882,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1049,6 +1091,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1186,6 +1232,10 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "No version information could be found."
msgstr ""
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1344,6 +1394,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1377,6 +1431,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1626,6 +1684,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1787,11 +1849,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1819,6 +1885,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1848,6 +1918,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1905,6 +1979,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2054,6 +2132,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2228,6 +2310,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2386,6 +2473,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2400,6 +2492,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2604,6 +2700,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2614,6 +2735,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 1.0.0-95-gd7af22b\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2018-06-08 03:44+0000\n"
"Last-Translator: ۋولقان <nureliosman@gmail.com>\n"
"Language-Team: Uyghur <https://hosted.weblate.org/projects/f-droid/fdroidserver/ug/>\n"
@ -91,6 +91,11 @@ msgstr[1] ""
msgid "%(prog)s: error: %(message)s\n"
msgstr ""
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -210,6 +215,11 @@ msgstr ""
msgid "A URL is required as an argument!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr ""
@ -287,6 +297,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -383,6 +397,11 @@ msgstr "تۈرلەر قۇرۇلمىغان '%s'"
msgid "Categories are not set"
msgstr "تۈرلەر قۇرۇلمىغان"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr ""
@ -549,6 +568,16 @@ msgstr ""
msgid "Description of length {length} is over the {limit} char limit"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr ""
@ -615,6 +644,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr ""
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr ""
@ -781,6 +815,10 @@ msgstr ""
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr ""
#: ../fdroidserver/common.py
msgid "Found multiple Signer Certificates!"
msgstr ""
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -845,6 +883,10 @@ msgstr ""
msgid "Git reset failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule deinit failed"
msgstr ""
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr ""
@ -1050,6 +1092,10 @@ msgstr ""
msgid "Keystore for signing key:\t"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1187,6 +1233,11 @@ msgstr ""
msgid "No unsigned directory - nothing to do"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "نەشىر ئۇچۇرى تېپىلمىدى!"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr ""
@ -1345,6 +1396,10 @@ msgstr ""
msgid "Pushing binary transparency log to {url}"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "Pushing to remote server failed!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1378,6 +1433,10 @@ msgstr ""
msgid "Reading {apkfilename} from cache"
msgstr ""
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr ""
@ -1627,6 +1686,10 @@ msgstr ""
msgid "These are the apps that have been archived from the main repo."
msgstr ""
#: ../fdroidserver/mirror.py
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr ""
@ -1788,11 +1851,15 @@ msgstr ""
msgid "UpdateCheckData not a valid URL: {url}"
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr ""
@ -1820,6 +1887,10 @@ msgstr ""
msgid "Usage: %s\n"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1849,6 +1920,10 @@ msgstr ""
msgid "Using APK Signature v3"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using JAR Signature"
msgstr ""
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
@ -1906,6 +1981,10 @@ msgstr ""
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr ""
@ -2055,6 +2134,10 @@ msgstr ""
msgid "could not parse '{path}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2229,6 +2312,11 @@ msgstr ""
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr ""
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2387,6 +2475,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2401,6 +2494,10 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr ""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2605,6 +2702,31 @@ msgstr ""
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not a standard config file!"
msgstr ""
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2615,6 +2737,11 @@ msgstr ""
msgid "{path} more than 200MB, manually upload: {url}"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2023-05-28 07:54+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/f-droid/fdroidserver/uk/>\n"
@ -102,6 +102,11 @@ msgstr[2] "%(option)s параметр вимагає %(number)d аргумен
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: помилка: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -221,6 +226,11 @@ msgstr "/issues відсутній"
msgid "A URL is required as an argument!"
msgstr "URL потребується як аргумент!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "У {path} не знайдено сертифікатів для підписання"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "Додати підписи GnuPG для пакунків у репозиторії"
@ -298,6 +308,11 @@ msgstr "Програма має двійкові файли, але не має
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Застосунок має NoSourceSince або ArchivePolicy «0 версій», але AutoUpdateMode або UpdateCheckMode не дорівнюють None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "Застосунок має NoSourceSince або ArchivePolicy «0 версій», але AutoUpdateMode або UpdateCheckMode не дорівнюють None"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -395,6 +410,11 @@ msgstr "Категорія '%s' неприпустима"
msgid "Categories are not set"
msgstr "Категорії не встановлено"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "Перевірте наявність оновлень для застосунків"
@ -561,6 +581,16 @@ msgstr "Опис містить список (%s) але не маркірова
msgid "Description of length {length} is over the {limit} char limit"
msgstr "Довжина опису {length} перевищує ліміт {limit}"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "Не додавайте 'disable:' до створених записів збірки"
@ -627,6 +657,11 @@ msgstr "Дубльований запис \"%s\" у конфігурації д
msgid "Duplicate link in '{field}': {url}"
msgstr "Дублікат посилання в '{field}': {url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "ПОМИЛКА: Підкоманду \"server\" вилучено, використовуйте \"deploy\"!"
@ -797,6 +832,11 @@ msgstr "Знайдено недійсні версії коду для деяк
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "Знайдено кілька файлів блоку підписів JAR у {path}"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "Знайдено кілька сертифікатів підписування для репозиторію."
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -861,6 +901,11 @@ msgstr "Помилка налаштування remote set-head для Git: «%s
msgid "Git reset failed"
msgstr "Скидання Git не вдалося"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Не вдалося оновити підмодуль Git"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Не вдалося синхронізувати підмодуль Git"
@ -1066,6 +1111,10 @@ msgstr "Зберігання невдалої збірки \"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "Шлях до сховища ключів для ключа підпису сховища\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1203,6 +1252,11 @@ msgstr "Теги не знайдено"
msgid "No unsigned directory - nothing to do"
msgstr "Немає непідписаної теки — нічого виконувати"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "не знайдено відомостей про версію"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "Недійсне визначення розміру: \"{}\""
@ -1361,6 +1415,11 @@ msgstr "Надіслати журнал цього віддаленого реп
msgid "Pushing binary transparency log to {url}"
msgstr "Оновити двійковий журнал прозорості для {url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Помилка налаштування remote set-head для Git: «%s»"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1394,6 +1453,11 @@ msgstr "Не вдалося прочитати packageName/versionCode/versionNa
msgid "Reading {apkfilename} from cache"
msgstr "Читання {apkfilename} з кешу"
#: ../fdroidserver/build.py
#, fuzzy
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr "отримати останню версію підписів з інтернету"
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "Вилучення вказаних файлів"
@ -1644,6 +1708,13 @@ msgstr "Відбулося зіткнення keyalias ключів - припи
msgid "These are the apps that have been archived from the main repo."
msgstr "Ці застосунки, заархівовано з основного репозиторію."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"ПОМИЛКА: ця команда ніколи не повинна використовуватися для створення дзеркала f-droid.org!\n"
"Повне дзеркало f-droid.org вимагає понад 200GB."
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "Цей репозиторій застосунків для використання з FDroid. Застосунки в цьому репозиторії — це або офіційні двійкові файли, побудовані розробниками оригінального застосунку, або двійкові файли, побудовані з джерела f-droid.org за допомогою інструментів з https://gitlab.com/fdroid."
@ -1812,11 +1883,16 @@ msgstr "UpdateCheckData має використовувати URL-адресу H
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData не є дійсною URL-адресою: {url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr "UpdateCheckMode налаштовано, але схоже, що команду checkupdates ще не було запущено"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr "UpdateCheckMode налаштовано, але схоже, що команду checkupdates ще не було запущено"
#: ../fdroidserver/lint.py
msgid "UpdateCheckName is set to the known application ID, it can be removed"
msgstr "Назву застосунку для перевірки оновлень встановлено на відомий ID застосунку — його можна буде вилучити"
@ -1844,6 +1920,11 @@ msgstr "Використання"
msgid "Usage: %s\n"
msgstr "Використання: %s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "Використовуйте /HEAD замість /master для вказання на файл типовій гілці"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "Використовуйте /HEAD замість /master для вказання на файл типовій гілці"
@ -1873,6 +1954,11 @@ msgstr "Використання підпису APK v2"
msgid "Using APK Signature v3"
msgstr "Використання підпису APK v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "Використання підпису APK v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "Не варто перевіряти APK за допомогою jarsigner Java! Користуйтеся apksigner"
@ -1930,6 +2016,10 @@ msgstr "Коли налаштовано для підписаних індекс
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "Під час перевірки всього репозиторію, yamllint типово вимкнено. Цей параметр змушує нехтувати yamllint."
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "X.509 'Distiguished Name' використовується під час створення ключів"
@ -2080,6 +2170,11 @@ msgstr "конфліктний субпарсер: %s"
msgid "could not parse '{path}'"
msgstr "не вдалося проаналізувати '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "не вдалося проаналізувати специфікацію srclib (посилання не вказано): '{}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr "не вдалося проаналізувати специфікацію srclib (посилання не вказано): '{}'"
@ -2255,6 +2350,11 @@ msgstr "local_copy_dir мусить бути текою, не файлом!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "дзеркало '%s' не закінчується на 'fdroid'!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "Тепер встановіть їх у config.yml:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2412,6 +2512,11 @@ msgstr "repo_icon \"repo/icons/%s\" не існує, створення запо
msgid "repo_url needs to end with /repo"
msgstr "repo_url повинен закінчуватися на /repo"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr "ruamel.yaml не встановлено, не вдається записати метадані."
@ -2426,6 +2531,11 @@ msgstr "s3cmd синхронізувати індекси з {path} до {url}
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr "кеш сканера пошкоджено! Ви можете очистити його за допомогою: '{clear}'"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir мусить закінчуватися на \"fdroid\", ймовірно, малося на увазі: \"{path}\""
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr "спільна бібліотека"
@ -2631,6 +2741,31 @@ msgstr "{path} не існує! Створіть його, запустивши:
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path}: недійсний підпис \"{pattern}\". Виглядає підозріло і схоже на спробу порушення безпеки Janus exploit!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'sdk_path' не встановлено в config.yml!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2641,6 +2776,11 @@ msgstr "{path} не має розміру!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path} понад 200 МБ, вивантажити власноруч: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path}: {error}"

View File

@ -29,21 +29,21 @@
# Kingo Bingo <bingokingosoft@gmail.com>, 2023.
# zhiqi <lzqlzq21@gmail.com>, 2023.
# David Jiang <david.jiang2024@gmail.com>, 2023.
# ALoLo_527 <ALoLo@users.noreply.hosted.weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"PO-Revision-Date: 2023-11-05 08:05+0000\n"
"Last-Translator: David Jiang <david.jiang2024@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/f-"
"droid/fdroidserver/zh_Hans/>\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-13 17:01+0000\n"
"Last-Translator: ALoLo_527 <ALoLo@users.noreply.hosted.weblate.org>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.2-dev\n"
"X-Generator: Weblate 5.5-dev\n"
#: ../fdroidserver/nightly.py
msgid ""
@ -122,6 +122,11 @@ msgstr[0] "%(option)s 选项需要 %(number)d 个参数"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s错误%(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -199,9 +204,7 @@ msgstr "'{aapt}' 太旧, F-Droid 需要 build-tools-{version} 或更新的版本
#: ../fdroidserver/common.py
#, python-brace-format
msgid ""
"'{field}' will be in random order! Use () or [] brackets if order is "
"important!"
msgid "'{field}' will be in random order! Use () or [] brackets if order is important!"
msgstr "{field} 将随机排列! 如果顺序很重要, 请使用 () 或 [] 括号!"
#: ../fdroidserver/common.py
@ -237,13 +240,17 @@ msgstr ".__call__() 未定义"
#: ../fdroidserver/lint.py
msgid "/issues is missing"
msgstr ""
"路径缺少 /issues ( 译者注: 此处仅支持 github 或 gitlab 之 issues 链接 )"
msgstr "路径缺少 /issues ( 译者注: 此处仅支持 github 或 gitlab 之 issues 链接 )"
#: ../fdroidserver/mirror.py
msgid "A URL is required as an argument!"
msgstr "需要有一个链接作为参数!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "在 {path} 中找不到签名证书"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "使用 GnuPG 为存储库之软件包添加 PGP 签名"
@ -270,9 +277,7 @@ msgid "AllowedAPKSigningKeys missing but reference binary supplied"
msgstr "缺少 AllowedAPKSigningKeys但提供了参考二进制文件"
#: ../fdroidserver/import_subcommand.py
msgid ""
"Allows a different revision (or git branch) to be specified for the initial "
"import"
msgid "Allows a different revision (or git branch) to be specified for the initial import"
msgstr "可让运行初始导入时指定不同修订 ( 或 git 分支 )"
#: ../fdroidserver/mirror.py
@ -316,18 +321,17 @@ msgid "Android SDK tool {cmd} not found!"
msgstr "没找到 Android SDK 工具 {cmd}"
#: ../fdroidserver/lint.py
msgid ""
"App has Binaries but does not have corresponding AllowedAPKSigningKeys to "
"pin certificate."
msgid "App has Binaries but does not have corresponding AllowedAPKSigningKeys to pin certificate."
msgstr "应用程序具有二进制文件但没有相应的AllowedAPKSigningKeys 来固定证书。"
#: ../fdroidserver/lint.py
msgid ""
"App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or "
"UpdateCheckMode are not None"
msgstr ""
"应用的 NoSourceSince 或 ArchivePolicy 为 “0 versions” 但 AutoUpdateMode 或 "
"UpdateCheckMode 不是 None"
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "应用的 NoSourceSince 或 ArchivePolicy 为 “0 versions” 但 AutoUpdateMode 或 UpdateCheckMode 不是 None"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr "应用的 NoSourceSince 或 ArchivePolicy 为 “0 versions” 但 AutoUpdateMode 或 UpdateCheckMode 不是 None"
#: ../fdroidserver/lint.py
#, python-brace-format
@ -335,11 +339,8 @@ msgid "App is in '{repo}' but has a link to {url}"
msgstr "应用 在 '{repo}' 中, 但有一个链接到 {url}"
#: ../fdroidserver/lint.py
msgid ""
"App version has binary but does not have corresponding AllowedAPKSigningKeys "
"to pin certificate."
msgstr ""
"应用程序版本具有二进制文件,但没有相应的 AllowedAPKSigningKeys 来固定证书。"
msgid "App version has binary but does not have corresponding AllowedAPKSigningKeys to pin certificate."
msgstr "应用程序版本具有二进制文件,但没有相应的 AllowedAPKSigningKeys 来固定证书。"
#: ../fdroidserver/lint.py
msgid "Appending .git is not necessary"
@ -360,9 +361,7 @@ msgid "Bad entry type \"{mirrortype}\" in mirrors config: {mirror}"
msgstr "镜像配置中的错误条目类型“{mirrortype}”:{mirror}"
#: ../fdroidserver/mirror.py
msgid ""
"Base URL to mirror, can include the index signing key using the query "
"string: ?fingerprint="
msgid "Base URL to mirror, can include the index signing key using the query string: ?fingerprint="
msgstr "镜像的基本链接可以使用此请求参数包含索引签名键: ?fingerprint="
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname
@ -429,18 +428,19 @@ msgstr "类别 '%s' 无效"
msgid "Categories are not set"
msgstr "没有设置类别"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "检查应用的更新"
#: ../fdroidserver/update.py
#, python-brace-format
msgid ""
"Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, "
"archapks:{arch}"
msgstr ""
"正为 {appid} 检查存档: 安装包: {integer}, 保留版本数: {keep}, 架构安装包: "
"{arch}"
msgid "Checking archiving for {appid} - apks:{integer}, keepversions:{keep}, archapks:{arch}"
msgstr "正为 {appid} 检查存档: 安装包: {integer}, 保留版本数: {keep}, 架构安装包: {arch}"
#: ../fdroidserver/update.py
msgid "Clean update - don't uses caches, reprocess all APKs"
@ -465,9 +465,7 @@ msgid "Conflicting \"{field}\" definitions between .yml and localized files:"
msgstr ".yml 和本地化文件之间的“{field}”定义冲突:"
#: ../fdroidserver/__main__.py
msgid ""
"Conflicting arguments: '--verbose' and '--quiet' can not be specified at the "
"same time."
msgid "Conflicting arguments: '--verbose' and '--quiet' can not be specified at the same time."
msgstr "冲突的参数: '--verbose' 和 '--quiet' 不能被同时使用."
#: ../fdroidserver/common.py
@ -601,6 +599,16 @@ msgstr "简介中带有列表(%s但它既不是子弹*)形列表也
msgid "Description of length {length} is over the {limit} char limit"
msgstr "简介长度 {length} 超过 {limit} 字限制"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
msgid "Do not add 'disable:' to the generated build entries"
msgstr "不要给生成的构建项添加 'disable:'"
@ -627,9 +635,7 @@ msgid "Don't create a source tarball, useful when testing a build"
msgstr "不创建源码 tarball 文件,便于内部版本测试"
#: ../fdroidserver/build.py
msgid ""
"Don't refresh the repository, useful when testing a build with no internet "
"connection"
msgid "Don't refresh the repository, useful when testing a build with no internet connection"
msgstr "不刷新资源库,便于没有互联网时的内部版本测试"
#: ../fdroidserver/deploy.py ../fdroidserver/nightly.py
@ -669,6 +675,11 @@ msgstr "镜像配置中的重复条目“%s”"
msgid "Duplicate link in '{field}': {url}"
msgstr "“{field}”中有重复的链接:{url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
msgstr "错误:\"server\" 子命令已被删除,请使用 \"deploy\""
@ -692,12 +703,8 @@ msgstr "错误:不支持的 git 主机类型 \"%s\",欢迎提交补丁添加
#: ../fdroidserver/__main__.py
#, python-brace-format
msgid ""
"Encoding is set to '{enc}' fdroid might run into encoding issues. Please set "
"it to 'UTF-8' for best results."
msgstr ""
"编码被设置为“{enc}”,可能会导致 fdroid 出现编码问题。为了最佳效果,请将其更改"
"为“UTF-8”。"
msgid "Encoding is set to '{enc}' fdroid might run into encoding issues. Please set it to 'UTF-8' for best results."
msgstr "编码被设置为“{enc}”,可能会导致 fdroid 出现编码问题。为了最佳效果请将其更改为“UTF-8”。"
#: ../fdroidserver/init.py
#, python-format
@ -807,9 +814,7 @@ msgid "Forbidden HTML tags"
msgstr "禁止的HTML标签"
#: ../fdroidserver/build.py
msgid ""
"Force build of disabled apps, and carries on regardless of scan problems. "
"Only allowed in test mode."
msgid "Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode."
msgstr "强制编译已禁用应用,忽略扫描出错。仅用于测试模式。"
#: ../fdroidserver/build.py
@ -845,6 +850,11 @@ msgstr "发现某些应用的版本代码无效"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "在{path}中发现多个JAR签名块文件"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "发现存储库的多个签名证书。"
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -909,6 +919,11 @@ msgstr "Git remote set-head 失败:\"%s\""
msgid "Git reset failed"
msgstr "Git reset 失败"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git 子模块更新失败"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git 子模块同步失败"
@ -1098,8 +1113,7 @@ msgid "Java compiled class"
msgstr "Java 编译类"
#: ../fdroidserver/signindex.py
msgid ""
"Java jarsigner not found! Install in standard location or set java_paths!"
msgid "Java jarsigner not found! Install in standard location or set java_paths!"
msgstr "未找到 Java jarsigner安装在标准位置或设置java_paths"
#: ../fdroidserver/lint.py
@ -1116,11 +1130,13 @@ msgid "Keystore for signing key:\t"
msgstr "签名密钥的密钥库:\t"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid ""
"Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
"最后使用的提交 '{commit}' 看起来像一个标签,但 UpdateCheckMode 是 '{ucm}'"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
msgstr "最后使用的提交 '{commit}' 看起来像一个标签,但 UpdateCheckMode 是 '{ucm}'"
#: ../fdroidserver/lint.py
msgid "Liberapay donation methods belong in the Liberapay: field"
@ -1254,6 +1270,11 @@ msgstr "未找到标签"
msgid "No unsigned directory - nothing to do"
msgstr "没有未签名的目录 - 无操作"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "没有找到版本信息"
#: ../fdroidserver/common.py
msgid "Not a valid size definition: \"{}\""
msgstr "不是有效的大小定义:“{}”"
@ -1412,6 +1433,11 @@ msgstr "拖送日志至 git 远程资源库"
msgid "Pushing binary transparency log to {url}"
msgstr "正推送二进制文件透明日志到{url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git remote set-head 失败:\"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1432,25 +1458,23 @@ msgstr "读取 '{config_file}'"
#: ../fdroidserver/common.py
#, python-brace-format
msgid ""
"Reading packageName/versionCode/versionName failed, APK invalid: "
"'{apkfilename}'"
msgstr ""
"读取 packageName/versionCode/versionName 失败APK 无效:'{apkfilename}'"
msgid "Reading packageName/versionCode/versionName failed, APK invalid: '{apkfilename}'"
msgstr "读取 packageName/versionCode/versionName 失败APK 无效:'{apkfilename}'"
#: ../fdroidserver/common.py
#, python-brace-format
msgid ""
"Reading packageName/versionCode/versionName failed,APK invalid: "
"'{apkfilename}'"
msgstr ""
"读取 packageName/versionCode/versionName 失败APK 无效:'{apkfilename}'"
msgid "Reading packageName/versionCode/versionName failed,APK invalid: '{apkfilename}'"
msgstr "读取 packageName/versionCode/versionName 失败APK 无效:'{apkfilename}'"
#: ../fdroidserver/update.py
#, python-brace-format
msgid "Reading {apkfilename} from cache"
msgstr "从缓存读取 {apkfilename}"
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "删除指定文件"
@ -1469,9 +1493,7 @@ msgid "RepoTrunk update mode only makes sense in git-svn repositories"
msgstr "RepoTrunk 更新模式仅对 git-svn 存储库有意义"
#: ../fdroidserver/build.py
msgid ""
"Reset and create a brand new build server, even if the existing one appears "
"to be ok."
msgid "Reset and create a brand new build server, even if the existing one appears to be ok."
msgstr "即使已有服务器看起来运行正常,请重置并创建一个全新的编译服务器。"
#: ../fdroidserver/nightly.py
@ -1655,9 +1677,7 @@ msgid "System clock is older than date in {path}!"
msgstr "系统时钟早于 {path} 中的日期!"
#: ../fdroidserver/checkupdates.py
msgid ""
"Tags update mode only works for git, hg, bzr and git-svn repositories "
"currently"
msgid "Tags update mode only works for git, hg, bzr and git-svn repositories currently"
msgstr "标签更新模式目前仅适用于 git、hg、bzr 和 git-svn 存储库"
#: ../fdroidserver/checkupdates.py
@ -1665,9 +1685,7 @@ msgid "Tags update mode used in git-svn, but the repo was not set up with tags"
msgstr "git-svn 中使用的标记更新模式,但未使用标记设置存储库"
#: ../fdroidserver/build.py
msgid ""
"Test mode - put output in the tmp directory only, and always build, even if "
"the output already exists."
msgid "Test mode - put output in the tmp directory only, and always build, even if the output already exists."
msgstr "测试模式:仅将输出保存至 tmp 目录,即使输出已存在,仍然编译。"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vcode
@ -1705,16 +1723,16 @@ msgstr "存在密钥别名冲突 - 发布已停止"
msgid "These are the apps that have been archived from the main repo."
msgstr "这些是已从主存储库存档的应用。"
#: ../fdroidserver/common.py
msgid ""
"This is a repository of apps to be used with F-Droid. Applications in this "
"repository are either official binaries built by the original application "
"developers, or are binaries built from source by the admin of f-droid.org "
"using the tools on https://gitlab.com/fdroid."
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"这是一个与F-Droid一起使用的应用的存储库。这个存储库中的应用要么是原应用开发者"
"构建的官方二进制文件,要么是 f-droid.org 的管理员使用 https://gitlab.com/"
"fdroid 上的工具从源代码构建而来的二进制文件。"
"错误:请不要使用此命令来镜像 f-droid.org\n"
"对 f-droid.org 进行完整镜像至少需要超过 200GB 的储存空间。"
#: ../fdroidserver/common.py
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
msgstr "这是一个与F-Droid一起使用的应用的存储库。这个存储库中的应用要么是原应用开发者构建的官方二进制文件要么是 f-droid.org 的管理员使用 https://gitlab.com/fdroid 上的工具从源代码构建而来的二进制文件。"
#: ../fdroidserver/import_subcommand.py
#, python-format
@ -1741,11 +1759,8 @@ msgstr ""
"和 https://f-droid.org/docs/Signing_Process"
#: ../fdroidserver/deploy.py
msgid ""
"To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config."
"yml!"
msgstr ""
"要使用 awsbucket还必须在 config.yml 中设置 awssecretkey 和 awsaccesskeyid"
msgid "To use awsbucket, awssecretkey and awsaccesskeyid must also be set in config.yml!"
msgstr "要使用 awsbucket还必须在 config.yml 中设置 awssecretkey 和 awsaccesskeyid"
#: ../fdroidserver/lint.py
msgid "URL must start with https:// or http://"
@ -1761,17 +1776,11 @@ msgid "URL {url} in Description: {error}"
msgstr "描述中的网址 {url}{error}"
#: ../fdroidserver/lint.py
msgid ""
"Unexpected license tag \"{}\"! Only use FSF or OSI approved tags from "
"https://spdx.org/license-list"
msgstr ""
"意外的许可证标签“{}”!仅使用来自 https://spdx.org/license-list 的 FSF 或 OSI "
"批准的标签"
msgid "Unexpected license tag \"{}\"! Only use FSF or OSI approved tags from https://spdx.org/license-list"
msgstr "意外的许可证标签“{}”!仅使用来自 https://spdx.org/license-list 的 FSF 或 OSI 批准的标签"
#: ../fdroidserver/lint.py
msgid ""
"Unexpected license tag \"{}\"! Only use license tags configured in your "
"config file"
msgid "Unexpected license tag \"{}\"! Only use license tags configured in your config file"
msgstr "意外的许可证标签“{}”!仅使用配置文件中配置的许可证标记"
#: ../fdroidserver/common.py
@ -1876,9 +1885,7 @@ msgstr "UpdateCheckData 具有无效的 URL{url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid ""
"UpdateCheckData must match the version code as integer (\\d or [0-9]): "
"{codeex}"
msgid "UpdateCheckData must match the version code as integer (\\d or [0-9]): {codeex}"
msgstr "UpdateCheckData 必须以整数(\\d 或 [0-9])的形式匹配版本代码:{codeex}"
#: ../fdroidserver/lint.py
@ -1891,10 +1898,13 @@ msgstr "UpdateCheckData必须使用HTTPS URL:{url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData 不是有效的网址:{url}"
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid ""
"UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
@ -1924,6 +1934,10 @@ msgstr "使用"
msgid "Usage: %s\n"
msgstr "用法:%s\n"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr ""
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr ""
@ -1954,8 +1968,12 @@ msgid "Using APK Signature v3"
msgstr "使用 APK 签名 v3"
#: ../fdroidserver/common.py
msgid ""
"Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
#, fuzzy
msgid "Using JAR Signature"
msgstr "使用 APK 签名 v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr ""
#: ../fdroidserver/common.py
@ -1996,9 +2014,7 @@ msgstr "验证目录签名中:"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid ""
"VirusTotal API key cannot upload files larger than 32MB, use {url} to upload "
"{path}."
msgid "VirusTotal API key cannot upload files larger than 32MB, use {url} to upload {path}."
msgstr ""
#: ../fdroidserver/__main__.py
@ -2006,15 +2022,15 @@ msgid "Warn about possible metadata errors"
msgstr "警告元数据中可能存在的错误"
#: ../fdroidserver/update.py
msgid ""
"When configured for signed indexes, create only unsigned indexes at this "
"stage"
msgid "When configured for signed indexes, create only unsigned indexes at this stage"
msgstr "如果已配置为使用签名索引,该阶段仅创建未签名索引"
#: ../fdroidserver/lint.py
msgid ""
"When linting the entire repository yamllint is disabled by default. This "
"option forces yamllint regardless."
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr ""
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
@ -2165,6 +2181,10 @@ msgstr "有冲突的子解析器:%s"
msgid "could not parse '{path}'"
msgstr "无法解析 '{path}'"
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr ""
#: ../fdroidserver/common.py
msgid "could not parse srclib spec (no ref specified): '{}'"
msgstr ""
@ -2308,9 +2328,7 @@ msgstr ""
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
#, python-format
msgid ""
"invalid option string %(option)r: must start with a character "
"%(prefix_chars)r"
msgid "invalid option string %(option)r: must start with a character %(prefix_chars)r"
msgstr ""
#: ../fdroidserver/common.py
@ -2324,8 +2342,7 @@ msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid ""
"local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\""
msgid "local_copy_dir does not end with \"fdroid\", perhaps you meant: \"{path}\""
msgstr "local_copy_dir未以“ fdroid”结尾也许你指的是“ {path}”"
#: ../fdroidserver/deploy.py
@ -2341,6 +2358,11 @@ msgstr "local_copy_dir必须是目录不能是文件"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr ""
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "现在在 config.yml 中设置这些:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2486,9 +2508,7 @@ msgstr ""
#: ../fdroidserver/signatures.py
#, python-brace-format
msgid ""
"refuse downloading via insecure HTTP connection (use HTTPS or specify --no-"
"https-check): {apkfilename}"
msgid "refuse downloading via insecure HTTP connection (use HTTPS or specify --no-https-check): {apkfilename}"
msgstr ""
#: ../fdroidserver/index.py
@ -2500,6 +2520,11 @@ msgstr ""
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
msgid "ruamel.yaml not installed, can not write metadata."
msgstr ""
@ -2514,6 +2539,11 @@ msgstr ""
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir未以“ fdroid”结尾也许你指的是“ {path}”"
#: ../fdroidserver/scanner.py
msgid "shared library"
msgstr ""
@ -2639,12 +2669,12 @@ msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{appid} from {path} is not a valid Android application ID!"
msgstr ""
msgstr "{appid}来自{path}不是一个有效的Android应用ID"
#: ../fdroidserver/metadata.py ../fdroidserver/update.py
#, python-brace-format
msgid "{appid} from {path} is not a valid Java Package Name!"
msgstr ""
msgstr "{appid}来自{path}不是一个有效的Java安装包名称"
#: ../fdroidserver/update.py
#, python-brace-format
@ -2654,7 +2684,7 @@ msgstr ""
#: ../fdroidserver/mirror.py
#, python-brace-format
msgid "{appid} is missing {name}"
msgstr ""
msgstr "{appid}缺失了{name}"
#. Translators: https://developer.android.com/guide/topics/manifest/manifest-element.html#vname
#: ../fdroidserver/lint.py
@ -2670,12 +2700,12 @@ msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{appid}: {field} must be a '{type}', but it is a '{fieldtype}!'"
msgstr ""
msgstr "{appid}{field}必须为‘{type}’,但它是‘{fieldtype}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{appid}: {field} must be a '{type}', but it is a '{fieldtype}'!"
msgstr ""
msgstr "{appid}{field}必须为‘{type}’,但它是‘{fieldtype}"
#: ../fdroidserver/metadata.py
#, python-brace-format
@ -2717,14 +2747,44 @@ msgstr "{path} 不存在!通过运行以下命令创建它:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "未在 config.yml 中设置 'sdk_path'!"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
msgstr ""
msgstr "{path}的大小为零!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "{path}的大小超过200MB请手动上传{url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
@ -2735,12 +2795,12 @@ msgstr "{path}{error}"
#: ../fdroidserver/mirror.py
#, python-brace-format
msgid "{url} does not end with \"fdroid\", check the URL path!"
msgstr ""
msgstr "{url}不是以“fdroid”结尾的请检查链接路径"
#: ../fdroidserver/import_subcommand.py
#, python-brace-format
msgid "{url} does not start with \"http\"!"
msgstr ""
msgstr "{url}不是以“http”为开头"
#: ../fdroidserver/build.py
msgid "{} build failed"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fdroidserver 0.9\n"
"Report-Msgid-Bugs-To: https://gitlab.com/fdroid/fdroidserver/issues\n"
"POT-Creation-Date: 2023-05-24 22:18+0200\n"
"POT-Creation-Date: 2024-05-13 13:50+0200\n"
"PO-Revision-Date: 2024-04-10 13:33+0000\n"
"Last-Translator: Hans-Christoph Steiner <hans@guardianproject.info>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hant/>\n"
@ -97,6 +97,11 @@ msgstr[0] "%(option)s 的選項需要 %(number)d 參數"
msgid "%(prog)s: error: %(message)s\n"
msgstr "%(prog)s: 錯誤: %(message)s\n"
#: ../fdroidserver/publish.py
#, python-format
msgid "%d APKs failed to be signed or verified!"
msgstr ""
#: ../fdroidserver/scanner.py
#, python-format
msgid "%d problems found"
@ -218,6 +223,11 @@ msgstr "/issues 有遺漏"
msgid "A URL is required as an argument!"
msgstr "需要 URL 作為參數!"
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "APK signatures have different certificates in {path}:"
msgstr "{path} 找不到簽署證書"
#: ../fdroidserver/__main__.py
msgid "Add PGP signatures using GnuPG for packages in repo"
msgstr "在軟體庫中加入使用 GnuPG 套件包的 gpg 簽署"
@ -298,6 +308,10 @@ msgstr ""
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
msgid "App has NoSourceSince or ArchivePolicy \"0 versions\" or 0 but AutoUpdateMode or UpdateCheckMode are not None"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "App is in '{repo}' but has a link to {url}"
@ -393,6 +407,11 @@ msgstr "'%s' 類別無效"
msgid "Categories are not set"
msgstr "類別未設定"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "Category \"{category}\" defined but not used for any apps!"
msgstr ""
#: ../fdroidserver/__main__.py
msgid "Check for updates to applications"
msgstr "檢查應用程式更新"
@ -564,6 +583,16 @@ msgstr "描述中有一個列表 (%s) 但它並未被編排 (*) 或作編號 (#)
msgid "Description of length {length} is over the {limit} char limit"
msgstr "描述的長度 {length} 已超過 {limit} 個字符限制"
#: ../fdroidserver/common.py
#, python-brace-format
msgid "Did you mean config/{name}.yml?"
msgstr ""
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "Did you mean {code}?"
msgstr ""
#: ../fdroidserver/import_subcommand.py
#, fuzzy
msgid "Do not add 'disable:' to the generated build entries"
@ -631,6 +660,11 @@ msgstr ""
msgid "Duplicate link in '{field}': {url}"
msgstr "'{field}' 有重複的連結:{url}"
#: ../fdroidserver/common.py
#, python-format
msgid "ERROR: %(message)s"
msgstr ""
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "ERROR: The \"server\" subcommand has been removed, use \"deploy\"!"
@ -805,6 +839,11 @@ msgstr "有些應用的版本代號無效"
msgid "Found multiple JAR Signature Block Files in {path}"
msgstr "{path} 找到多筆簽名證書"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Found multiple Signer Certificates!"
msgstr "軟體庫找到多份簽署證書。"
#: ../fdroidserver/metadata.py
#, python-brace-format
msgid "Found multiple metadata files for {appid}"
@ -870,6 +909,11 @@ msgstr "Git 遠端 set-head 失敗: \"%s\""
msgid "Git reset failed"
msgstr "Git 重置失敗"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Git submodule deinit failed"
msgstr "Git 子模組更新失敗"
#: ../fdroidserver/common.py
msgid "Git submodule sync failed"
msgstr "Git 子模組同步失敗"
@ -1081,6 +1125,10 @@ msgstr "讀取 minSdkVersion 失敗:\"{apkfilename}\""
msgid "Keystore for signing key:\t"
msgstr "金鑰庫的簽署金鑰:\t"
#: ../fdroidserver/lint.py
msgid "Known debug key is used in AllowedAPKSigningKeys: "
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy, python-brace-format
msgid "Last used commit '{commit}' looks like a tag, but UpdateCheckMode is '{ucm}'"
@ -1224,6 +1272,11 @@ msgstr "查無附加的設備"
msgid "No unsigned directory - nothing to do"
msgstr "無未簽署目錄 - 無須採取行動"
#: ../fdroidserver/__main__.py
#, fuzzy
msgid "No version information could be found."
msgstr "未發現版本資訊"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Not a valid size definition: \"{}\""
@ -1388,6 +1441,11 @@ msgstr "將日誌推送到 git 遠端軟體庫"
msgid "Pushing binary transparency log to {url}"
msgstr "推二進制的透明日誌到{url}"
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "Pushing to remote server failed!"
msgstr "Git 遠端 set-head 失敗: \"%s\""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "Pushing to {url}"
@ -1421,6 +1479,10 @@ msgstr "讀取套件名稱/版本代碼/版本名稱 失敗APK 無效:'{apk
msgid "Reading {apkfilename} from cache"
msgstr "從緩存讀取 {apkfilename}"
#: ../fdroidserver/build.py
msgid "Refresh and cache scanner rules and signatures from the network"
msgstr ""
#: ../fdroidserver/common.py
msgid "Removing specified files"
msgstr "移除指定檔案"
@ -1673,6 +1735,13 @@ msgstr "發生主要別名衝突 - 發佈中止"
msgid "These are the apps that have been archived from the main repo."
msgstr "這些是從主軟體庫中歸檔的軟體。"
#: ../fdroidserver/mirror.py
#, fuzzy
msgid "This command should never be used to mirror f-droid.org! A full copy requires more than 600GB."
msgstr ""
"錯誤:此命令絕不該用於鏡像 f-droid.org\n"
"完整的 f-droid.org 鏡像需要超過 200GB。"
#: ../fdroidserver/common.py
#, fuzzy
msgid "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."
@ -1838,11 +1907,15 @@ msgstr "UpdateCheckData 必須使用 HTTPS URL{url}"
msgid "UpdateCheckData not a valid URL: {url}"
msgstr "UpdateCheckData 不是有效的 URL{url}"
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks like checkupdates hasn't been run yet."
msgstr ""
#. Translators: https://developer.android.com/studio/build/application-id
#: ../fdroidserver/lint.py
msgid "UpdateCheckMode is set but it looks likecheckupdates hasn't been run yet"
msgstr ""
#: ../fdroidserver/lint.py
#, fuzzy
msgid "UpdateCheckName is set to the known application ID, it can be removed"
@ -1871,6 +1944,11 @@ msgstr "使用方法"
msgid "Usage: %s\n"
msgstr "使用方法:%s\n"
#: ../fdroidserver/lint.py
#, fuzzy
msgid "Use /HEAD instead of /master or /main to point at a file in the default branch"
msgstr "使用 /HEAD 取代 /master 來指向默認分支的一個檔案"
#: ../fdroidserver/lint.py
msgid "Use /HEAD instead of /master to point at a file in the default branch"
msgstr "使用 /HEAD 取代 /master 來指向默認分支的一個檔案"
@ -1902,6 +1980,11 @@ msgstr "使用 APK Signature v2"
msgid "Using APK Signature v3"
msgstr "使用 APK Signature v3"
#: ../fdroidserver/common.py
#, fuzzy
msgid "Using JAR Signature"
msgstr "使用 APK Signature v2"
#: ../fdroidserver/common.py
msgid "Using Java's jarsigner, not recommended for verifying APKs! Use apksigner"
msgstr "使用 Java 的 jarsigner這並不建議用於驗證 APK使用 apksigner"
@ -1960,6 +2043,10 @@ msgstr "當已組態為簽名的索引時,只能在此階段建立無簽名的
msgid "When linting the entire repository yamllint is disabled by default. This option forces yamllint regardless."
msgstr "在默認情況下, 檢查整個軟體庫中的可疑代碼時不會檢查 yaml 檔案 yamllint 。 使用本選項將會忽略默認選項,在檢查整個軟體庫中的可疑代碼時強制檢查 yaml 檔案 yamllint 。"
#: ../fdroidserver/publish.py
msgid "When signing or verifying fails, exit with an error code."
msgstr ""
#: ../fdroidserver/init.py
msgid "X.509 'Distinguished Name' used when generating keys"
msgstr "產生金鑰時使用 X.509 的'專有名稱'"
@ -2116,6 +2203,11 @@ msgstr "相衝突的選項字串:%s"
msgid "could not parse '{path}'"
msgstr "無法解析 '{path}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no name specified): '{}'"
msgstr "無法解析 scrlib spec (沒有指定參考文獻): '{}'"
#: ../fdroidserver/common.py
#, fuzzy
msgid "could not parse srclib spec (no ref specified): '{}'"
@ -2295,6 +2387,11 @@ msgstr "local_copy_dir 為目錄,不是檔案!"
msgid "mirror '%s' does not end with 'fdroid'!"
msgstr "鏡像 '%s' 並不是以 'fdroid' 作結尾!"
#: ../fdroidserver/index.py
#, fuzzy, python-brace-format
msgid "mirrors set twice, in config.yml and {path}!"
msgstr "現在設定這些在 config.yml 中:"
#: /usr/lib/python3.5/argparse.py /usr/lib/python3.6/argparse.py
#: /usr/lib/python3.7/argparse.py /usr/lib/python3.9/argparse.py
#: /usr/lib/python3.11/argparse.py
@ -2454,6 +2551,11 @@ msgstr "軟體庫圖標 repo_icon\"repo/icons/%s\" 不存在, 正在生
msgid "repo_url needs to end with /repo"
msgstr ""
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "rsync is missing or broken: {error}"
msgstr ""
#: ../fdroidserver/metadata.py
#, fuzzy
msgid "ruamel.yaml not installed, can not write metadata."
@ -2469,6 +2571,11 @@ msgstr "s3cmd 同步索引 {path} 到 {url} 並刪除"
msgid "scanner cache is malformed! You can clear it with: '{clear}'"
msgstr ""
#: ../fdroidserver/deploy.py
#, fuzzy
msgid "serverwebroot: path does not end with \"fdroid\", perhaps you meant one of these:"
msgstr "local_copy_dir 未以 \"fdroid\"結尾,也許你指示的是: \"{path}\""
#: ../fdroidserver/scanner.py
#, fuzzy
msgid "shared library"
@ -2675,6 +2782,31 @@ msgstr "\"{path}\" 不存在!經由執行建立它:"
msgid "{path} has bad file signature \"{pattern}\", possible Janus exploit!"
msgstr "{path} 有不正確的檔案簽章「{pattern}」,可能是 Janus 漏洞!"
#: ../fdroidserver/deploy.py
#, python-brace-format
msgid "{path} has been flagged by virustotal {count} times:"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not \"key: value\" dict, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, fuzzy, python-brace-format
msgid "{path} is not a standard config file!"
msgstr "'config.yml' 未設定 'sdk_path'"
#: ../fdroidserver/index.py
#, python-brace-format
msgid "{path} is not list, but a {datatype}!"
msgstr ""
#: ../fdroidserver/common.py
#, python-brace-format
msgid "{path} is not {expected_type}, but a {datatype}!"
msgstr ""
#: ../fdroidserver/update.py
#, python-brace-format
msgid "{path} is zero size!"
@ -2685,6 +2817,11 @@ msgstr "{path} 為零尺寸!"
msgid "{path} more than 200MB, manually upload: {url}"
msgstr "檔案 {path} 大於 200MB 手動上傳: {url}"
#: ../fdroidserver/lint.py
#, python-brace-format
msgid "{path}: \"{code}\" is not a valid ISO_3166-1 alpha-2 country code!"
msgstr ""
#: ../fdroidserver/update.py
#, fuzzy, python-brace-format
msgid "{path}: {error}"

View File

@ -38,7 +38,6 @@ force-exclude = '''(
| fdroidserver/build\.py
| fdroidserver/checkupdates\.py
| fdroidserver/common\.py
| fdroidserver/deploy\.py
| fdroidserver/import_subcommand\.py
| fdroidserver/index\.py
| fdroidserver/metadata\.py

View File

@ -71,7 +71,7 @@ with open("README.md", "r") as fh:
setup(
name='fdroidserver',
version='2.3a0',
version='2.3a1',
description='F-Droid Server Tools',
long_description=long_description,
long_description_content_type='text/markdown',
@ -92,15 +92,15 @@ setup(
],
install_requires=[
'appdirs',
'androguard >= 3.1.0, != 3.3.0, != 3.3.1, != 3.3.2, <4',
'androguard >= 3.3.5',
'asn1crypto',
'clint',
'defusedxml',
'GitPython',
'oscrypto',
'paramiko',
'Pillow',
'apache-libcloud >= 0.14.1',
'pyasn1 >=0.4.1',
'pyasn1-modules >= 0.2.1',
'python-vagrant',
'PyYAML',
'qrcode',

BIN
tests/SANAPPSI.RSA Normal file

Binary file not shown.

2044
tests/SANAPPSI.SF Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,6 @@
import inspect
import logging
import optparse
import os
import shutil
import sys
@ -29,7 +28,7 @@ import fdroidserver.common
import fdroidserver.metadata
import fdroidserver.scanner
import fdroidserver.vmtools
from testcommon import mkdtemp
from testcommon import mkdtemp, parse_args_for_test
class FakeProcess:
@ -49,8 +48,6 @@ class BuildTest(unittest.TestCase):
def setUp(self):
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger('androguard.axml')
logger.setLevel(logging.INFO) # tame the axml debug messages
self.basedir = os.path.join(localmodule, 'tests')
os.chdir(self.basedir)
fdroidserver.common.config = None
@ -564,7 +561,7 @@ class BuildTest(unittest.TestCase):
os.chdir(self.testdir)
os.mkdir("build")
config = fdroidserver.common.get_config()
config = fdroidserver.common.read_config()
config['sdk_path'] = os.getenv('ANDROID_HOME')
config['ndk_paths'] = {'r10d': os.getenv('ANDROID_NDK_HOME')}
fdroidserver.common.config = config
@ -1106,15 +1103,17 @@ class BuildTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(BuildTest))

View File

@ -3,7 +3,6 @@
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import logging
import optparse
import os
import sys
import unittest
@ -30,8 +29,6 @@ class CheckupdatesTest(unittest.TestCase):
os.chdir(self.basedir)
def test_autoupdatemode_no_suffix(self):
fdroidserver.checkupdates.options = mock.Mock()
fdroidserver.checkupdates.options.auto = 'bleh'
fdroidserver.checkupdates.config = {}
app = fdroidserver.metadata.App()
@ -52,7 +49,7 @@ class CheckupdatesTest(unittest.TestCase):
):
with mock.patch('fdroidserver.metadata.write_metadata', mock.Mock()):
with mock.patch('subprocess.call', lambda cmd: 0):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
build = app['Builds'][-1]
self.assertEqual(build.versionName, '1.1.9')
@ -64,15 +61,13 @@ class CheckupdatesTest(unittest.TestCase):
with mock.patch('fdroidserver.metadata.write_metadata', mock.Mock()):
with mock.patch('subprocess.call', lambda cmd: 0):
with self.assertRaises(FDroidException):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
build = app['Builds'][-1]
self.assertEqual(build.versionName, '1.1.9')
self.assertEqual(build.commit, '1.1.9')
def test_autoupdatemode_suffix(self):
fdroidserver.checkupdates.options = mock.Mock()
fdroidserver.checkupdates.options.auto = 'bleh'
fdroidserver.checkupdates.config = {}
app = fdroidserver.metadata.App()
@ -93,15 +88,13 @@ class CheckupdatesTest(unittest.TestCase):
):
with mock.patch('fdroidserver.metadata.write_metadata', mock.Mock()):
with mock.patch('subprocess.call', lambda cmd: 0):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
build = app['Builds'][-1]
self.assertEqual(build.versionName, '1.1.9.10109-fdroid')
self.assertEqual(build.commit, 'v1.1.9_10109')
def test_autoupdate_multi_variants(self):
fdroidserver.checkupdates.options = mock.Mock()
fdroidserver.checkupdates.options.auto = 'bleh'
fdroidserver.checkupdates.config = {}
app = fdroidserver.metadata.App()
@ -134,7 +127,7 @@ class CheckupdatesTest(unittest.TestCase):
):
with mock.patch('fdroidserver.metadata.write_metadata', mock.Mock()):
with mock.patch('subprocess.call', lambda cmd: 0):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
build = app['Builds'][-2]
self.assertEqual(build.versionName, '1.1.9')
@ -150,8 +143,6 @@ class CheckupdatesTest(unittest.TestCase):
self.assertEqual(app.CurrentVersionCode, 101093)
def test_checkupdates_app_http(self):
fdroidserver.checkupdates.options = mock.Mock()
fdroidserver.checkupdates.options.auto = 'bleh'
fdroidserver.checkupdates.config = {}
app = fdroidserver.metadata.App()
@ -165,7 +156,7 @@ class CheckupdatesTest(unittest.TestCase):
'fdroidserver.checkupdates.check_http', lambda app: (None, 'bla')
):
with self.assertRaises(FDroidException):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
with mock.patch(
'fdroidserver.checkupdates.check_http', lambda app: ('1.1.9', 10109)
@ -174,12 +165,10 @@ class CheckupdatesTest(unittest.TestCase):
'fdroidserver.metadata.write_metadata', mock.Mock()
) as wrmock:
with mock.patch('subprocess.call', lambda cmd: 0):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
wrmock.assert_called_with(app.metadatapath, app)
def test_checkupdates_app_tags(self):
fdroidserver.checkupdates.options = mock.Mock()
fdroidserver.checkupdates.options.auto = 'bleh'
fdroidserver.checkupdates.config = {}
app = fdroidserver.metadata.App()
@ -200,7 +189,7 @@ class CheckupdatesTest(unittest.TestCase):
lambda app, pattern: (None, 'bla', None),
):
with self.assertRaises(FDroidException):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
with mock.patch(
'fdroidserver.checkupdates.check_tags',
@ -208,15 +197,13 @@ class CheckupdatesTest(unittest.TestCase):
):
with mock.patch('fdroidserver.metadata.write_metadata', mock.Mock()):
with mock.patch('subprocess.call', lambda cmd: 0):
fdroidserver.checkupdates.checkupdates_app(app)
fdroidserver.checkupdates.checkupdates_app(app, auto=True)
build = app['Builds'][-1]
self.assertEqual(build.versionName, '1.1.9')
self.assertEqual(build.commit, 'v1.1.9')
def test_check_http(self):
fdroidserver.checkupdates.options = mock.Mock()
app = fdroidserver.metadata.App()
app.id = 'loop.starts.shooting'
app.metadatapath = 'metadata/' + app.id + '.yml'
@ -243,8 +230,6 @@ class CheckupdatesTest(unittest.TestCase):
fdroidserver.checkupdates.check_http(app)
def test_check_http_ignore(self):
fdroidserver.checkupdates.options = mock.Mock()
app = fdroidserver.metadata.App()
app.id = 'loop.starts.shooting'
app.metadatapath = 'metadata/' + app.id + '.yml'
@ -260,8 +245,6 @@ class CheckupdatesTest(unittest.TestCase):
self.assertEqual(vername, None)
def test_check_tags_data(self):
fdroidserver.checkupdates.options = mock.Mock()
app = fdroidserver.metadata.App()
app.id = 'loop.starts.shooting'
app.metadatapath = 'metadata/' + app.id + '.yml'
@ -336,15 +319,18 @@ class CheckupdatesTest(unittest.TestCase):
if __name__ == "__main__":
parser = optparse.OptionParser()
parser.add_option(
import argparse
from testcommon import parse_args_for_test
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(CheckupdatesTest))

View File

@ -9,7 +9,6 @@ import importlib
import inspect
import json
import logging
import optparse
import os
import re
import ruamel.yaml
@ -22,6 +21,7 @@ import unittest
import textwrap
import yaml
import gzip
from argparse import ArgumentParser
from zipfile import BadZipFile, ZipFile
from unittest import mock
from pathlib import Path
@ -38,13 +38,19 @@ import fdroidserver.index
import fdroidserver.signindex
import fdroidserver.common
import fdroidserver.metadata
from testcommon import TmpCwd, mkdtemp
from testcommon import TmpCwd, mkdtemp, parse_args_for_test
from fdroidserver.common import ANTIFEATURES_CONFIG_NAME, CATEGORIES_CONFIG_NAME
from fdroidserver.exception import FDroidException, VCSException,\
MetaDataException, VerificationException
from fdroidserver.looseversion import LooseVersion
def _mock_common_module_options_instance():
"""Helper method to deal with difficult visibility of the module-level options."""
fdroidserver.common.options = mock.Mock()
fdroidserver.common.options.verbose = False
class CommonTest(unittest.TestCase):
'''fdroidserver/common.py'''
@ -57,17 +63,22 @@ class CommonTest(unittest.TestCase):
if not os.path.exists(self.tmpdir):
os.makedirs(self.tmpdir)
os.chdir(self.basedir)
# these are declared as None at the top of the module file
fdroidserver.common.config = None
fdroidserver.common.options = mock.Mock()
fdroidserver.common.options.verbose = False
fdroidserver.common.options = None
fdroidserver.metadata.srclibs = None
self._td = mkdtemp()
self.testdir = self._td.name
def tearDown(self):
fdroidserver.common.config = None
fdroidserver.common.options = None
os.chdir(self.basedir)
self._td.cleanup()
shutil.rmtree(self.tmpdir)
if os.path.exists(self.tmpdir):
shutil.rmtree(self.tmpdir)
def test_parse_human_readable_size(self):
for k, v in (
@ -356,6 +367,7 @@ class CommonTest(unittest.TestCase):
config = dict()
fdroidserver.common.fill_config_defaults(config)
fdroidserver.common.config = config
_mock_common_module_options_instance()
srclibname = 'FakeSrcLib'
srclib_testdir = os.path.join(self.testdir, 'build', 'srclib')
@ -397,6 +409,7 @@ class CommonTest(unittest.TestCase):
onserver=True, refresh=False) # do not clone in this test
def test_prepare_sources_refresh(self):
_mock_common_module_options_instance()
packageName = 'org.fdroid.ci.test.app'
os.chdir(self.tmpdir)
os.mkdir('build')
@ -467,6 +480,7 @@ class CommonTest(unittest.TestCase):
config = dict()
fdroidserver.common.fill_config_defaults(config)
fdroidserver.common.config = config
_mock_common_module_options_instance()
commands = ['sh', '-c', 'echo stdout message && echo stderr message 1>&2']
@ -477,7 +491,8 @@ class CommonTest(unittest.TestCase):
self.assertEqual(p.output, 'stdout message\n')
def test_signjar(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
fdroidserver.common.config = config
fdroidserver.signindex.config = config
@ -497,7 +512,8 @@ class CommonTest(unittest.TestCase):
)
def test_verify_apk_signature(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
fdroidserver.common.config = config
self.assertTrue(fdroidserver.common.verify_apk_signature('bad-unicode-πÇÇ现代通用字-български-عربي1.apk'))
@ -519,7 +535,8 @@ class CommonTest(unittest.TestCase):
self.assertFalse(fdroidserver.common.verify_apk_signature('urzip-release-unsigned.apk'))
def test_verify_old_apk_signature(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
fdroidserver.common.config = config
@ -540,7 +557,7 @@ class CommonTest(unittest.TestCase):
def test_verify_jar_signature(self):
"""Sign entry.jar and make sure it validates"""
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
config['keystore'] = os.path.join(self.basedir, 'keystore.jks')
config['repo_keyalias'] = 'sova'
@ -558,7 +575,7 @@ class CommonTest(unittest.TestCase):
def test_verify_jar_signature_fails(self):
"""Test verify_jar_signature fails on unsigned and deprecated algorithms"""
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
fdroidserver.common.config = config
source_dir = os.path.join(self.basedir, 'signindex')
@ -568,7 +585,7 @@ class CommonTest(unittest.TestCase):
fdroidserver.common.verify_jar_signature(testfile)
def test_verify_deprecated_jar_signature(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
config['jarsigner'] = fdroidserver.common.find_sdk_tools_cmd('jarsigner')
fdroidserver.common.config = config
source_dir = os.path.join(self.basedir, 'signindex')
@ -581,8 +598,9 @@ class CommonTest(unittest.TestCase):
fdroidserver.common.verify_deprecated_jar_signature(testfile)
def test_verify_apks(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
fdroidserver.common.config = config
_mock_common_module_options_instance()
sourceapk = os.path.join(self.basedir, 'urzip.apk')
@ -615,6 +633,27 @@ class CommonTest(unittest.TestCase):
self.assertFalse(fdroidserver.common.verify_apk_signature(twosigapk))
self.assertIsNone(fdroidserver.common.verify_apks(sourceapk, twosigapk, self.tmpdir))
def test_get_certificate_with_chain_sandisk(self):
"""Test that APK signatures with a cert chain are parsed like apksigner.
SanDisk signs their APKs with a X.509 certificate chain of
trust, so there are actually three certificates
included. apksigner only cares about the certificate in the
chain that actually signs the manifest.
The correct value comes from:
apksigner verify --print-certs 883cbdae7aeb2e4b122e8ee8d89966c7062d0d49107a130235fa220a5b994a79.apk
"""
cert = fdroidserver.common.get_certificate(
signature_block_file=Path('SANAPPSI.RSA').read_bytes(),
signature_file=Path('SANAPPSI.SF').read_bytes(),
)
self.assertEqual(
'ea0abbf2a142e4b167405d516b2cc408c4af4b29cd50ba281aa4470d4aab3e53',
fdroidserver.common.signer_fingerprint(cert),
)
def test_write_to_config(self):
with tempfile.TemporaryDirectory() as tmpPath:
cfgPath = os.path.join(tmpPath, 'config.py')
@ -868,7 +907,8 @@ class CommonTest(unittest.TestCase):
)
def test_sign_apk(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
if 'apksigner' not in config:
self.skipTest('SKIPPING test_sign_apk, apksigner not installed!')
@ -902,7 +942,7 @@ class CommonTest(unittest.TestCase):
self.assertTrue(os.path.isfile(signed))
self.assertFalse(os.path.isfile(unsigned))
self.assertTrue(fdroidserver.common.verify_apk_signature(signed))
self.assertEqual('18', fdroidserver.common._get_androguard_APK(signed).get_min_sdk_version())
self.assertEqual('18', fdroidserver.common.get_androguard_APK(signed).get_min_sdk_version())
shutil.copy(os.path.join(self.basedir, 'minimal_targetsdk_30_unsigned.apk'), self.testdir)
unsigned = os.path.join(self.testdir, 'minimal_targetsdk_30_unsigned.apk')
@ -915,7 +955,7 @@ class CommonTest(unittest.TestCase):
self.assertFalse(os.path.isfile(unsigned))
self.assertTrue(fdroidserver.common.verify_apk_signature(signed))
# verify it has a v2 signature
self.assertTrue(fdroidserver.common._get_androguard_APK(signed).is_signed_v2())
self.assertTrue(fdroidserver.common.get_androguard_APK(signed).is_signed_v2())
shutil.copy(os.path.join(self.basedir, 'no_targetsdk_minsdk30_unsigned.apk'), self.testdir)
unsigned = os.path.join(self.testdir, 'no_targetsdk_minsdk30_unsigned.apk')
@ -923,7 +963,7 @@ class CommonTest(unittest.TestCase):
fdroidserver.common.sign_apk(unsigned, signed, config['keyalias'])
self.assertTrue(fdroidserver.common.verify_apk_signature(signed))
self.assertTrue(fdroidserver.common._get_androguard_APK(signed).is_signed_v2())
self.assertTrue(fdroidserver.common.get_androguard_APK(signed).is_signed_v2())
shutil.copy(os.path.join(self.basedir, 'no_targetsdk_minsdk1_unsigned.apk'), self.testdir)
unsigned = os.path.join(self.testdir, 'no_targetsdk_minsdk1_unsigned.apk')
@ -938,7 +978,8 @@ class CommonTest(unittest.TestCase):
@unittest.skipIf(os.getuid() == 0, 'This is meaningless when run as root')
def test_sign_apk_fail(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
if 'apksigner' not in config:
self.skipTest('SKIPPING test_sign_apk_fail, apksigner not installed!')
@ -961,7 +1002,8 @@ class CommonTest(unittest.TestCase):
self.assertFalse(os.path.isfile(signed))
def test_sign_apk_corrupt(self):
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
if 'apksigner' not in config:
self.skipTest('SKIPPING test_sign_apk_corrupt, apksigner not installed!')
@ -987,7 +1029,8 @@ class CommonTest(unittest.TestCase):
)
def test_resign_apk(self):
"""When using apksigner, it should resign signed APKs"""
config = fdroidserver.common.read_config(fdroidserver.common.options)
_mock_common_module_options_instance()
config = fdroidserver.common.read_config()
if 'apksigner' not in config:
self.skipTest('SKIPPING test_resign_apk, apksigner not installed!')
@ -1039,6 +1082,11 @@ class CommonTest(unittest.TestCase):
('org.bitbucket.tickytacky.mirrormirror_3.apk', 'org.bitbucket.tickytacky.mirrormirror', 3, '1.0.2'),
('org.bitbucket.tickytacky.mirrormirror_4.apk', 'org.bitbucket.tickytacky.mirrormirror', 4, '1.0.3'),
('org.dyndns.fules.ck_20.apk', 'org.dyndns.fules.ck', 20, 'v1.6pre2'),
('issue-1128-min-sdk-30-poc.apk', 'org.fdroid.ci', 1, '1.0'),
('issue-1128-poc1.apk', 'android.appsecurity.cts.tinyapp', 10, '1.0'),
('issue-1128-poc2.apk', 'android.appsecurity.cts.tinyapp', 10, '1.0'),
('issue-1128-poc3a.apk', 'android.appsecurity.cts.tinyapp', 10, '1.0'),
('issue-1128-poc3b.apk', 'android.appsecurity.cts.tinyapp', 10, '1.0'),
('urzip.apk', 'info.guardianproject.urzip', 100, '0.1'),
('urzip-badcert.apk', 'info.guardianproject.urzip', 100, '0.1'),
('urzip-badsig.apk', 'info.guardianproject.urzip', 100, '0.1'),
@ -1146,14 +1194,19 @@ class CommonTest(unittest.TestCase):
"""This is a sanity test that androguard isn't broken"""
def get_minSdkVersion(apkfile):
apk = fdroidserver.common._get_androguard_APK(apkfile)
apk = fdroidserver.common.get_androguard_APK(apkfile)
return fdroidserver.common.get_min_sdk_version(apk)
def get_targetSdkVersion(apkfile):
apk = fdroidserver.common._get_androguard_APK(apkfile)
apk = fdroidserver.common.get_androguard_APK(apkfile)
return apk.get_effective_target_sdk_version()
self.assertEqual(4, get_minSdkVersion('bad-unicode-πÇÇ现代通用字-български-عربي1.apk'))
self.assertEqual(30, get_minSdkVersion('issue-1128-min-sdk-30-poc.apk'))
self.assertEqual(29, get_minSdkVersion('issue-1128-poc1.apk'))
self.assertEqual(29, get_minSdkVersion('issue-1128-poc2.apk'))
self.assertEqual(23, get_minSdkVersion('issue-1128-poc3a.apk'))
self.assertEqual(23, get_minSdkVersion('issue-1128-poc3b.apk'))
self.assertEqual(14, get_minSdkVersion('org.bitbucket.tickytacky.mirrormirror_1.apk'))
self.assertEqual(14, get_minSdkVersion('org.bitbucket.tickytacky.mirrormirror_2.apk'))
self.assertEqual(14, get_minSdkVersion('org.bitbucket.tickytacky.mirrormirror_3.apk'))
@ -1164,6 +1217,7 @@ class CommonTest(unittest.TestCase):
self.assertEqual(4, get_minSdkVersion('urzip-badsig.apk'))
self.assertEqual(4, get_minSdkVersion('urzip-release.apk'))
self.assertEqual(4, get_minSdkVersion('urzip-release-unsigned.apk'))
self.assertEqual(27, get_minSdkVersion('v2.only.sig_2.apk'))
self.assertEqual(3, get_minSdkVersion('repo/com.politedroid_3.apk'))
self.assertEqual(3, get_minSdkVersion('repo/com.politedroid_4.apk'))
self.assertEqual(3, get_minSdkVersion('repo/com.politedroid_5.apk'))
@ -1882,7 +1936,7 @@ class CommonTest(unittest.TestCase):
os.chdir(self.tmpdir)
self.assertFalse(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertFalse(config.get('update_stats'))
self.assertIsNotNone(config.get('char_limits'))
@ -1892,7 +1946,7 @@ class CommonTest(unittest.TestCase):
open('config.yml', 'w').close()
self.assertTrue(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertFalse(config.get('update_stats'))
self.assertIsNotNone(config.get('char_limits'))
@ -1903,7 +1957,7 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner: yml')
self.assertTrue(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('yml', config.get('apksigner'))
def test_with_config_yml_utf8(self):
@ -1914,7 +1968,7 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner: ' + teststr)
self.assertTrue(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual(teststr, config.get('apksigner'))
def test_with_config_yml_utf8_as_ascii(self):
@ -1925,7 +1979,7 @@ class CommonTest(unittest.TestCase):
yaml.dump({'apksigner': teststr}, fp)
self.assertTrue(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual(teststr, config.get('apksigner'))
def test_with_config_yml_with_env_var(self):
@ -1937,20 +1991,20 @@ class CommonTest(unittest.TestCase):
fp.write("""keypass: {'env': 'SECRET'}""")
self.assertTrue(os.path.exists('config.yml'))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual(os.getenv('SECRET', 'fail'), config.get('keypass'))
def test_with_config_yml_is_dict(self):
os.chdir(self.tmpdir)
Path('config.yml').write_text('apksigner = /placeholder/path')
with self.assertRaises(TypeError):
fdroidserver.common.read_config(fdroidserver.common.options)
fdroidserver.common.read_config()
def test_with_config_yml_is_not_mixed_type(self):
os.chdir(self.tmpdir)
Path('config.yml').write_text('k: v\napksigner = /placeholder/path')
with self.assertRaises(yaml.scanner.ScannerError):
fdroidserver.common.read_config(fdroidserver.common.options)
fdroidserver.common.read_config()
def test_with_config_py(self):
"""Make sure it is still possible to use config.py alone."""
@ -1959,7 +2013,7 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner = "py"')
self.assertFalse(os.path.exists('config.yml'))
self.assertTrue(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual("py", config.get('apksigner'))
def test_config_perm_warning(self):
@ -1969,7 +2023,7 @@ class CommonTest(unittest.TestCase):
fp.write('keystore: foo.jks')
self.assertTrue(os.path.exists(fp.name))
os.chmod(fp.name, 0o666)
fdroidserver.common.read_config(fdroidserver.common.options)
fdroidserver.common.read_config()
os.remove(fp.name)
fdroidserver.common.config = None
@ -1977,7 +2031,7 @@ class CommonTest(unittest.TestCase):
fp.write('keystore = "foo.jks"')
self.assertTrue(os.path.exists(fp.name))
os.chmod(fp.name, 0o666)
fdroidserver.common.read_config(fdroidserver.common.options)
fdroidserver.common.read_config()
def test_with_both_config_yml_py(self):
"""If config.yml and config.py are present, config.py should be ignored."""
@ -1988,7 +2042,7 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner = "py"')
self.assertTrue(os.path.exists('config.yml'))
self.assertTrue(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('yml', config.get('apksigner'))
def test_config_repo_url(self):
@ -2039,14 +2093,14 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner: yml')
self.assertTrue(os.path.exists(fp.name))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertFalse('keypass' in config)
self.assertEqual('yml', config.get('apksigner'))
fdroidserver.common.write_to_config(config, 'keypass', 'mysecretpassword')
with open(fp.name) as fp:
print(fp.read())
fdroidserver.common.config = None
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('mysecretpassword', config['keypass'])
def test_write_to_config_py(self):
@ -2055,12 +2109,12 @@ class CommonTest(unittest.TestCase):
fp.write('apksigner = "py"')
self.assertTrue(os.path.exists(fp.name))
self.assertFalse(os.path.exists('config.yml'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertFalse('keypass' in config)
self.assertEqual('py', config.get('apksigner'))
fdroidserver.common.write_to_config(config, 'keypass', 'mysecretpassword')
fdroidserver.common.config = None
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('mysecretpassword', config['keypass'])
def test_config_dict_with_int_keys(self):
@ -2069,7 +2123,7 @@ class CommonTest(unittest.TestCase):
fp.write('java_paths:\n 8: /usr/lib/jvm/java-8-openjdk\n')
self.assertTrue(os.path.exists(fp.name))
self.assertFalse(os.path.exists('config.py'))
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('/usr/lib/jvm/java-8-openjdk', config.get('java_paths', {}).get('8'))
@mock.patch.dict(os.environ, {'PATH': os.getenv('PATH')}, clear=True)
@ -2147,7 +2201,7 @@ class CommonTest(unittest.TestCase):
shutil.copy(os.path.join(self.basedir, '..', 'buildserver', 'config.buildserver.yml'),
'config.yml')
self.assertFalse(os.path.exists('config.py'))
fdroidserver.common.read_config(fdroidserver.common.options)
fdroidserver.common.read_config()
def test_setup_status_output(self):
os.chdir(self.tmpdir)
@ -2500,6 +2554,7 @@ class CommonTest(unittest.TestCase):
@mock.patch.dict(os.environ, clear=True)
def test_FDroidPopen_envs_paths_can_be_pathlib(self):
_mock_common_module_options_instance()
os.environ['PATH'] = '/usr/bin:/usr/sbin'
envs = {'PATHLIB': Path('/pathlib/path'), 'STRING': '/string/path'}
p = fdroidserver.common.FDroidPopen(['/bin/sh', '-c', 'export'], envs=envs)
@ -2915,18 +2970,372 @@ class CommonTest(unittest.TestCase):
)
APKS_WITH_JAR_SIGNATURES = (
(
'SpeedoMeterApp.main_1.apk',
'2e6b3126fb7e0db6a9d4c2a06df690620655454d6e152cf244cc9efe9787a77d',
),
(
'apk.embedded_1.apk',
'764f0eaac0cdcde35023658eea865c4383ab580f9827c62fdd3daf9e654199ee',
),
(
'bad-unicode-πÇÇ现代通用字-български-عربي1.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'issue-1128-poc3a.apk',
'1dbb8be012293e988a0820f7d455b07abd267d2c0b500fc793fcfd80141cb5ce',
),
(
'issue-1128-poc3b.apk',
'1dbb8be012293e988a0820f7d455b07abd267d2c0b500fc793fcfd80141cb5ce',
),
(
'janus.apk',
'ebb0fedf1942a099b287c3db00ff732162152481abb2b6c7cbcdb2ba5894a768',
),
(
'org.bitbucket.tickytacky.mirrormirror_1.apk',
'feaa63df35b4635cf091513dfcd6d11209632555efdfc47e33b70d4e4eb5ba28',
),
(
'org.bitbucket.tickytacky.mirrormirror_2.apk',
'feaa63df35b4635cf091513dfcd6d11209632555efdfc47e33b70d4e4eb5ba28',
),
(
'org.bitbucket.tickytacky.mirrormirror_3.apk',
'feaa63df35b4635cf091513dfcd6d11209632555efdfc47e33b70d4e4eb5ba28',
),
(
'org.bitbucket.tickytacky.mirrormirror_4.apk',
'feaa63df35b4635cf091513dfcd6d11209632555efdfc47e33b70d4e4eb5ba28',
),
(
'org.dyndns.fules.ck_20.apk',
'9326a2cc1a2f148202bc7837a0af3b81200bd37fd359c9e13a2296a71d342056',
),
(
'org.sajeg.fallingblocks_3.apk',
'033389681f4288fdb3e72a28058c8506233ca50de75452ab6c9c76ea1ca2d70f',
),
(
'repo/com.example.test.helloworld_1.apk',
'c3a5ca5465a7585a1bda30218ae4017083605e3576867aa897d724208d99696c',
),
(
'repo/com.politedroid_3.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/com.politedroid_4.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/com.politedroid_5.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/com.politedroid_6.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/duplicate.permisssions_9999999.apk',
'659e1fd284549f70d13fb02c620100e27eeea3420558cce62b0f5d4cf2b77d84',
),
(
'repo/info.zwanenburg.caffeinetile_4.apk',
'51cfa5c8a743833ad89acf81cb755936876a5c8b8eca54d1ffdcec0cdca25d0e',
),
(
'repo/no.min.target.sdk_987.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/obb.main.oldversion_1444412523.apk',
'818e469465f96b704e27be2fee4c63ab9f83ddf30e7a34c7371a4728d83b0bc1',
),
(
'repo/obb.main.twoversions_1101613.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/obb.main.twoversions_1101615.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/obb.main.twoversions_1101617.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/obb.mainpatch.current_1619.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/obb.mainpatch.current_1619_another-release-key.apk',
'ce9e200667f02d96d49891a2e08a3c178870e91853d61bdd33ef5f0b54701aa5',
),
(
'repo/souch.smsbypass_9.apk',
'd3aec784b1fd71549fc22c999789122e3639895db6bd585da5835fbe3db6985c',
),
(
'repo/urzip-; Рахма́, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢·.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'repo/v1.v2.sig_1020.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'urzip-release.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
(
'urzip.apk',
'7eabd8c15de883d1e82b5df2fd4f7f769e498078e9ad6dc901f0e96db77ceac3',
),
)
APKS_WITHOUT_JAR_SIGNATURES = (
(
'issue-1128-poc1.apk', # APK v3 Signature only
'1dbb8be012293e988a0820f7d455b07abd267d2c0b500fc793fcfd80141cb5ce',
),
(
'issue-1128-poc2.apk', # APK v3 Signature only
'1dbb8be012293e988a0820f7d455b07abd267d2c0b500fc793fcfd80141cb5ce',
),
(
'issue-1128-min-sdk-30-poc.apk', # APK v3 Signature only
'09350d5f3460a8a0ea5cf6b68ccd296a58754f7e683ba6aa08c19be8353504f3',
),
(
'v2.only.sig_2.apk',
'32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6',
),
)
class SignerExtractionTest(unittest.TestCase):
"""Test extraction of the signer certificate from JARs and APKs
These fingerprints can be confirmed with:
apksigner verify --print-certs foo.apk | grep SHA-256
keytool -printcert -file ____.RSA
"""
def setUp(self):
os.chdir(os.path.join(localmodule, 'tests'))
self._td = mkdtemp()
self.testdir = self._td.name
self.apksigner = shutil.which('apksigner')
self.keytool = shutil.which('keytool')
def tearDown(self):
self._td.cleanup()
def test_get_first_signer_certificate_with_jars(self):
for jar in (
'signindex/guardianproject-v1.jar',
'signindex/guardianproject.jar',
'signindex/testy.jar',
):
outdir = os.path.join(self.testdir, jar[:-4].replace('/', '_'))
os.mkdir(outdir)
fdroidserver.common.apk_extract_signatures(jar, outdir)
certs = glob.glob(os.path.join(outdir, '*.RSA'))
with open(certs[0], 'rb') as fp:
self.assertEqual(
fdroidserver.common.get_certificate(fp.read()),
fdroidserver.common.get_first_signer_certificate(jar),
)
@unittest.skip("slow and only needed when adding to APKS_WITH_JAR_SIGNATURES")
def test_vs_keytool(self):
unittest.skipUnless(self.keytool, 'requires keytool to run')
pat = re.compile(r'[0-9A-F:]{95}')
cmd = [self.keytool, '-printcert', '-jarfile']
for apk, fingerprint in APKS_WITH_JAR_SIGNATURES:
o = subprocess.check_output(cmd + [apk], text=True)
try:
self.assertEqual(
fingerprint,
pat.search(o).group().replace(':', '').lower(),
)
except AttributeError as e:
print(e, o)
@unittest.skip("slow and only needed when adding to APKS_WITH_JAR_SIGNATURES")
def test_vs_apksigner(self):
unittest.skipUnless(self.apksigner, 'requires apksigner to run')
pat = re.compile(r'\s[0-9a-f]{64}\s')
cmd = [self.apksigner, 'verify', '--print-certs']
for apk, fingerprint in APKS_WITH_JAR_SIGNATURES + APKS_WITHOUT_JAR_SIGNATURES:
output = subprocess.check_output(cmd + [apk], text=True)
self.assertEqual(
fingerprint,
pat.search(output).group().strip(),
apk + " should have matching signer fingerprints",
)
def test_apk_signer_fingerprint_with_v1_apks(self):
for apk, fingerprint in APKS_WITH_JAR_SIGNATURES:
self.assertEqual(
fingerprint,
fdroidserver.common.apk_signer_fingerprint(apk),
f'apk_signer_fingerprint should match stored fingerprint for {apk}',
)
def test_apk_signer_fingerprint_without_v1_apks(self):
for apk, fingerprint in APKS_WITHOUT_JAR_SIGNATURES:
self.assertEqual(
fingerprint,
fdroidserver.common.apk_signer_fingerprint(apk),
f'apk_signer_fingerprint should match stored fingerprint for {apk}',
)
def test_get_first_signer_certificate_with_unsigned_jar(self):
self.assertIsNone(
fdroidserver.common.get_first_signer_certificate('signindex/unsigned.jar')
)
def test_apk_extract_fingerprint(self):
"""Test extraction of JAR signatures (does not cover APK v2+ extraction)."""
for apk, fingerprint in APKS_WITH_JAR_SIGNATURES:
outdir = os.path.join(self.testdir, apk[:-4].replace('/', '_'))
os.mkdir(outdir)
try:
fdroidserver.common.apk_extract_signatures(apk, outdir)
except fdroidserver.apksigcopier.APKSigCopierError:
# nothing to test here when this error is thrown
continue
v1_certs = [str(cert) for cert in Path(outdir).glob('*.[DR]SA')]
cert = fdroidserver.common.get_certificate(
signature_block_file=Path(v1_certs[0]).read_bytes(),
signature_file=Path(v1_certs[0][:-4] + '.SF').read_bytes(),
)
self.assertEqual(
fingerprint,
fdroidserver.common.signer_fingerprint(cert),
)
apkobject = fdroidserver.common.get_androguard_APK(apk, skip_analysis=True)
v2_certs = apkobject.get_certificates_der_v2()
if v2_certs:
if v1_certs:
self.assertEqual(len(v1_certs), len(v2_certs))
self.assertEqual(
fingerprint,
fdroidserver.common.signer_fingerprint(v2_certs[0]),
)
v3_certs = apkobject.get_certificates_der_v3()
if v3_certs:
if v2_certs:
self.assertEqual(len(v2_certs), len(v3_certs))
self.assertEqual(
fingerprint,
fdroidserver.common.signer_fingerprint(v3_certs[0]),
)
class ConfigOptionsScopeTest(unittest.TestCase):
"""Test assumptions about variable scope for "config" and "options".
The ancient architecture of config and options in fdroidserver has
weird issues around unexpected scope, like there are cases where
the global config is not the same as the module-level config, and
more.
This is about describing what is happening, it is not about
documenting behaviors that are good design. The config and options
handling should really be refactored into a well-known, workable
Pythonic pattern.
"""
def setUp(self):
# these are declared as None at the top of the module file
fdroidserver.common.config = None
fdroidserver.common.options = None
def tearDown(self):
fdroidserver.common.config = None
fdroidserver.common.options = None
if 'config' in globals():
global config
del config
if 'options' in globals():
global options
del options
def test_parse_args(self):
"""Test that options is properly set up at the module-level and not global."""
self.assertFalse('options' in globals())
self.assertIsNone(fdroidserver.common.options)
parser = ArgumentParser()
fdroidserver.common.setup_global_opts(parser)
with mock.patch('sys.argv', ['$0']):
o = fdroidserver.common.parse_args(parser)
self.assertEqual(o, fdroidserver.common.options)
# No function should set options as a global, and the global
# keyword does not create the variable.
global options
with self.assertRaises(NameError):
options
self.assertFalse('options' in globals())
def test_parse_args_without_args(self):
"""Test that the parsing function works fine when there are no args."""
parser = ArgumentParser()
fdroidserver.common.setup_global_opts(parser)
with mock.patch('sys.argv', ['$0']):
o = fdroidserver.common.parse_args(parser)
self.assertFalse(o.verbose)
def test_parse_args_with_args(self):
parser = ArgumentParser()
fdroidserver.common.setup_global_opts(parser)
with mock.patch('sys.argv', ['$0', '-v']):
o = fdroidserver.common.parse_args(parser)
self.assertTrue(o.verbose)
def test_get_config(self):
"""Show how the module-level variables are initialized."""
self.assertTrue('config' not in vars() and 'config' not in globals())
self.assertIsNone(fdroidserver.common.config)
config = fdroidserver.common.read_config()
self.assertIsNotNone(fdroidserver.common.config)
self.assertEqual(dict, type(config))
self.assertEqual(config, fdroidserver.common.config)
def test_get_config_global(self):
"""Test assumptions about variable scope using global keyword."""
global config
self.assertTrue('config' not in vars() and 'config' not in globals())
self.assertIsNone(fdroidserver.common.config)
c = fdroidserver.common.read_config()
self.assertIsNotNone(fdroidserver.common.config)
self.assertEqual(dict, type(c))
self.assertEqual(c, fdroidserver.common.config)
self.assertTrue(
'config' not in vars() and 'config' not in globals(),
"The config should not be set in the global context, only module-level.",
)
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
parser = ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(CommonTest))

File diff suppressed because it is too large Load Diff

View File

@ -56,9 +56,9 @@ def _build_yaml_representer(dumper, data):
parser = ArgumentParser()
fdroidserver.common.setup_global_opts(parser)
fdroidserver.metadata.add_metadata_arguments(parser)
options = parser.parse_args()
options = fdroidserver.common.parse_args(parser)
fdroidserver.metadata.warnings_action = options.W
fdroidserver.common.read_config(None)
fdroidserver.common.read_config()
if not os.path.isdir('metadata'):
print("This script must be run in an F-Droid data folder with a 'metadata' subdir!")

View File

@ -3,7 +3,6 @@
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import inspect
import optparse
import os
import sys
import unittest
@ -57,16 +56,18 @@ class ExceptionTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
from testcommon import parse_args_for_test
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.exception.options, args) = parser.parse_args(['--verbose'])
fdroidserver.common.options = fdroidserver.exception.options
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(ExceptionTest))

View File

@ -3,7 +3,6 @@
import inspect
import json
import logging
import optparse
import os
import shutil
import sys
@ -33,7 +32,7 @@ class GpgsignTest(unittest.TestCase):
self.repodir.mkdir()
gpgsign.config = None
config = common.read_config(common.options)
config = common.read_config()
config['verbose'] = True
config['gpghome'] = str((self.basedir / 'gnupghome').resolve())
config['gpgkey'] = '1DBA2E89'
@ -75,15 +74,17 @@ class GpgsignTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(common.options, args) = parser.parse_args(['--verbose'])
common.parse_args(parser)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(GpgsignTest))

View File

@ -4,7 +4,6 @@
import git
import logging
import optparse
import os
import shutil
import sys
@ -15,7 +14,6 @@ from unittest import mock
from pathlib import Path
import requests
from testcommon import TmpCwd, mkdtemp
localmodule = Path(__file__).resolve().parent.parent
print('localmodule: ' + str(localmodule))
@ -26,6 +24,7 @@ import fdroidserver.common
import fdroidserver.import_subcommand
import fdroidserver.metadata
from fdroidserver.exception import FDroidException
from testcommon import TmpCwd, mkdtemp, parse_args_for_test
class ImportTest(unittest.TestCase):
@ -34,8 +33,6 @@ class ImportTest(unittest.TestCase):
def setUp(self):
logging.basicConfig(level=logging.DEBUG)
self.basedir = localmodule / 'tests'
fdroidserver.import_subcommand.options = mock.Mock()
fdroidserver.import_subcommand.options.rev = None
os.chdir(self.basedir)
self._td = mkdtemp()
self.testdir = self._td.name
@ -146,7 +143,9 @@ class ImportTest(unittest.TestCase):
fdroidserver.import_subcommand.main()
@mock.patch('sys.argv', ['fdroid import', '-u', 'https://fake/git/url.git'])
@mock.patch('fdroidserver.import_subcommand.clone_to_tmp_dir', lambda a: Path('td'))
@mock.patch(
'fdroidserver.import_subcommand.clone_to_tmp_dir', lambda a, r: Path('td')
)
def test_main_local_git(self):
os.chdir(self.testdir)
git.Repo.init('td')
@ -161,15 +160,17 @@ class ImportTest(unittest.TestCase):
if __name__ == "__main__":
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(ImportTest))

View File

@ -2,9 +2,9 @@
import copy
import datetime
import glob
import inspect
import logging
import optparse
import os
import sys
import unittest
@ -25,7 +25,7 @@ if localmodule not in sys.path:
import fdroidserver
from fdroidserver import common, index, publish, signindex, update
from testcommon import TmpCwd, mkdtemp
from testcommon import TmpCwd, mkdtemp, parse_args_for_test
from pathlib import Path
@ -55,7 +55,7 @@ class IndexTest(unittest.TestCase):
common.config = None
common.options = Options
config = common.read_config(common.options)
config = common.read_config()
config['jarsigner'] = common.find_sdk_tools_cmd('jarsigner')
common.config = config
signindex.config = config
@ -418,6 +418,17 @@ class IndexTest(unittest.TestCase):
self.maxDiff = None
self.assertEqual(json.dumps(i, indent=2), json.dumps(o, indent=2))
# and test it still works with get_first_signer_certificate
outdir = os.path.join(self.testdir, 'publishsigkeys')
os.mkdir(outdir)
common.apk_extract_signatures(jarfile, outdir)
certs = glob.glob(os.path.join(outdir, '*.RSA'))
with open(certs[0], 'rb') as fp:
self.assertEqual(
common.get_certificate(fp.read()),
common.get_first_signer_certificate(jarfile),
)
def test_make_v0_repo_only(self):
os.chdir(self.testdir)
os.mkdir('repo')
@ -701,8 +712,14 @@ class IndexTest(unittest.TestCase):
app = apps[appid]
metadata = index.package_metadata(app, 'repo')
# files
self.assertEqual(36027, metadata['featureGraphic']['en-US']['size'])
self.assertEqual(1413, metadata['icon']['en-US']['size'])
self.assertEqual(
os.path.getsize(f'repo/{appid}/en-US/featureGraphic.png'),
metadata['featureGraphic']['en-US']['size'],
)
self.assertEqual(
os.path.getsize(f'repo/{appid}/en-US/icon.png'),
metadata['icon']['en-US']['size'],
)
# localized strings
self.assertEqual({'en-US': 'title'}, metadata['name'])
self.assertEqual({'en-US': 'video'}, metadata['video'])
@ -734,7 +751,7 @@ class IndexTest(unittest.TestCase):
yaml.dump(c, fp)
os.system('cat config.yml')
common.config = None
common.read_config(Options)
common.read_config()
repodict = {'address': common.config['repo_url']}
index.add_mirrors_to_repodict('repo', repodict)
self.assertEqual(
@ -829,20 +846,114 @@ class IndexTest(unittest.TestCase):
index.add_mirrors_to_repodict('repo', repodict)
class AltstoreIndexTest(unittest.TestCase):
def test_make_altstore(self):
self.maxDiff = None
apps = {
"app.fake": {
"AutoName": "Fake App",
"AuthorName": "Fake Author",
"iconv2": {"en_US": "fake_icon.png"},
}
}
apks = [
{
"packageName": "app.fake",
"apkName": "app.fake_123.ipa",
"versionName": "v123",
"added": datetime.datetime(2000, 2, 2, 2, 2, 2),
"size": 123,
"ipa_MinimumOSVersion": "10.0",
"ipa_DTPlatformVersion": "12.0",
"ipa_permissions": [
"NSCameraUsageDescription",
"NSDocumentsFolderUsageDescription",
],
"ipa_entitlements": [
"com.apple.developer.team-identifier",
"com.apple.developer.web-browser",
"keychain-access-groups",
],
},
]
config = {
"repo_icon": "fake_repo_icon.png",
"repo_name": "fake_repo",
"repo_url": "gopher://fake-repo.com/fdroid/repo",
}
with tempfile.TemporaryDirectory() as tmpdir, TmpCwd(tmpdir):
repodir = Path(tmpdir) / 'repo'
repodir.mkdir()
with open(repodir / "fake.ipa", "w") as f:
f.write("")
fdroidserver.index.make_altstore(
apps,
apks,
config,
repodir,
True,
)
with open(repodir / "altstore-index.json", 'r') as f:
self.assertDictEqual(
{
"apps": [
{
"appPermissions": {
"entitlements": [
'com.apple.developer.team-identifier',
'com.apple.developer.web-browser',
'keychain-access-groups',
],
'privacy': [
'NSCameraUsageDescription',
'NSDocumentsFolderUsageDescription',
],
},
'bundleIdentifier': 'app.fake',
'developerName': 'Fake Author',
'iconURL': 'gopher://fake-repo.com/fdroid/repo',
'localizedDescription': '',
'name': 'Fake App',
'screenshots': [],
'versions': [
{
'date': '2000-02-02T02:02:02',
'downloadURL': 'gopher://fake-repo.com/fdroid/repo/app.fake_123.ipa',
'maxOSVersion': '12.0',
'minOSVersion': '10.0',
'size': 123,
'version': 'v123',
}
],
},
],
'name': 'fake_repo',
'news': [],
},
json.load(f),
)
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(options, args) = parser.parse_args(["--verbose"])
Options.verbose = options.verbose
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(IndexTest))
newSuite.addTest(unittest.makeSuite(AltstoreIndexTest))
unittest.main(failfast=False)

View File

@ -5,7 +5,6 @@
import inspect
import logging
import os
import optparse
import shutil
import sys
import unittest
@ -19,7 +18,7 @@ if localmodule not in sys.path:
sys.path.insert(0, localmodule)
import fdroidserver.init
from testcommon import mkdtemp
from testcommon import mkdtemp, parse_args_for_test
class InitTest(unittest.TestCase):
@ -43,14 +42,14 @@ class InitTest(unittest.TestCase):
fp.write('keystore: NONE\n')
fp.write('keypass: mysupersecrets\n')
os.chmod('config.yml', 0o600)
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertEqual('NONE', config['keystore'])
self.assertEqual('mysupersecrets', config['keypass'])
fdroidserver.init.disable_in_config('keypass', 'comment')
with open(fp.name) as fp:
self.assertTrue('#keypass:' in fp.read())
fdroidserver.common.config = None
config = fdroidserver.common.read_config(fdroidserver.common.options)
config = fdroidserver.common.read_config()
self.assertIsNone(config.get('keypass'))
@unittest.skipIf(os.name == 'nt', "calling main() like this hangs on Windows")
@ -75,15 +74,17 @@ class InitTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.init.options, args) = parser.parse_args(['--verbose'])
fdroidserver.init.options = parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(InitTest))

View File

@ -3,7 +3,6 @@
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import inspect
import optparse
import os
import sys
import unittest
@ -38,16 +37,18 @@ class InstallTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
from testcommon import parse_args_for_test
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.install.options, args) = parser.parse_args(['--verbose'])
fdroidserver.common.options = fdroidserver.install.options
fdroidserver.install.options = parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(InstallTest))

Binary file not shown.

BIN
tests/issue-1128-poc1.apk Normal file

Binary file not shown.

BIN
tests/issue-1128-poc2.apk Normal file

Binary file not shown.

BIN
tests/issue-1128-poc3a.apk Normal file

Binary file not shown.

BIN
tests/issue-1128-poc3b.apk Normal file

Binary file not shown.

View File

@ -11,7 +11,7 @@ if os.getenv('CI') is None:
sys.exit(1)
os.chdir(os.path.dirname(__file__))
config = fdroidserver.common.read_config(common.options)
config = fdroidserver.common.read_config()
nightly.PASSWORD = config['keystorepass']
nightly.KEY_ALIAS = config['repo_keyalias']

View File

@ -3,7 +3,6 @@
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
import logging
import optparse
import os
import ruamel.yaml
import shutil
@ -11,7 +10,6 @@ import sys
import tempfile
import unittest
from pathlib import Path
from testcommon import mkdtemp
localmodule = Path(__file__).resolve().parent.parent
print('localmodule: ' + str(localmodule))
@ -22,6 +20,7 @@ import fdroidserver.common
import fdroidserver.lint
import fdroidserver.metadata
from fdroidserver.common import CATEGORIES_CONFIG_NAME
from testcommon import mkdtemp, parse_args_for_test
class LintTest(unittest.TestCase):
@ -438,6 +437,45 @@ class LintTest(unittest.TestCase):
with self.assertRaises(TypeError):
fdroidserver.lint.lint_config('mirrors.yml')
def test_check_certificate_pinned_binaries_empty(self):
fdroidserver.common.config = {}
app = fdroidserver.metadata.App()
app.AllowedAPKSigningKeys = [
'a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc'
]
self.assertEqual(
[],
list(fdroidserver.lint.check_certificate_pinned_binaries(app)),
"when the config is empty, any signing key should be allowed",
)
def test_lint_known_debug_keys_no_match(self):
fdroidserver.common.config = {
"apk_signing_key_block_list": "a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc"
}
app = fdroidserver.metadata.App()
app.AllowedAPKSigningKeys = [
'2fd4fd5f54babba4bcb21237809bb653361d0d2583c80964ec89b28a26e9539e'
]
self.assertEqual(
[],
list(fdroidserver.lint.check_certificate_pinned_binaries(app)),
"A signing key that does not match one in the config should be allowed",
)
def test_lint_known_debug_keys(self):
fdroidserver.common.config = {
'apk_signing_key_block_list': 'a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc'
}
app = fdroidserver.metadata.App()
app.AllowedAPKSigningKeys = [
'a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc'
]
for warn in fdroidserver.lint.check_certificate_pinned_binaries(app):
anywarns = True
logging.debug(warn)
self.assertTrue(anywarns)
class LintAntiFeaturesTest(unittest.TestCase):
def setUp(self):
@ -488,16 +526,17 @@ class LintAntiFeaturesTest(unittest.TestCase):
if __name__ == "__main__":
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.lint.options, args) = parser.parse_args(['--verbose'])
fdroidserver.common.options = fdroidserver.lint.options
fdroidserver.lint.options = parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(LintTest))

View File

@ -1,7 +1,6 @@
#!/usr/bin/env python3
import inspect
import optparse
import os
import sys
import pkgutil
@ -9,7 +8,6 @@ import textwrap
import unittest
import tempfile
from unittest import mock
from testcommon import TmpCwd, TmpPyPath
localmodule = os.path.realpath(
os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())), '..')
@ -20,6 +18,7 @@ if localmodule not in sys.path:
from fdroidserver import common
import fdroidserver.__main__
from testcommon import TmpCwd, TmpPyPath
class MainTest(unittest.TestCase):
@ -265,15 +264,17 @@ class MainTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(common.options, args) = parser.parse_args(['--verbose'])
common.options = common.parse_args(parser)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(MainTest))

View File

@ -3,7 +3,6 @@
import copy
import io
import logging
import optparse
import os
import random
import ruamel.yaml
@ -16,8 +15,6 @@ from collections import OrderedDict
from pathlib import Path
from unittest import mock
from testcommon import TmpCwd, mkdtemp
localmodule = Path(__file__).resolve().parent.parent
print('localmodule: ' + str(localmodule))
if localmodule not in sys.path:
@ -27,6 +24,7 @@ import fdroidserver
from fdroidserver import metadata
from fdroidserver.exception import MetaDataException
from fdroidserver.common import DEFAULT_LOCALE
from testcommon import TmpCwd, mkdtemp, parse_args_for_test
def _get_mock_mf(s):
@ -2447,15 +2445,17 @@ class PostMetadataParseTest(unittest.TestCase):
if __name__ == "__main__":
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(fdroidserver.common.options, args) = parser.parse_args(['--verbose'])
parse_args_for_test(parser, sys.argv)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(MetadataTest))

View File

@ -2,7 +2,6 @@
import inspect
import logging
import optparse
import os
import random
import requests
@ -126,15 +125,17 @@ class NetTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(common.options, args) = parser.parse_args(['--verbose'])
common.options = common.parse_args(parser)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(NetTest))

View File

@ -2,7 +2,6 @@
import inspect
import logging
import optparse
import os
import requests
import shutil
@ -70,7 +69,10 @@ class NightlyTest(unittest.TestCase):
def tearDown(self):
self.tempdir.cleanup()
os.rmdir(self.testroot)
try:
os.rmdir(self.testroot)
except OSError: # other test modules might have left stuff around
pass
def _copy_test_debug_keystore(self):
self.dot_android.mkdir()
@ -361,15 +363,17 @@ class NightlyTest(unittest.TestCase):
if __name__ == "__main__":
os.chdir(os.path.dirname(__file__))
parser = optparse.OptionParser()
parser.add_option(
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-v",
"--verbose",
action="store_true",
default=False,
help="Spew out even more information than normal",
)
(common.options, args) = parser.parse_args(['--verbose'])
common.options = common.parse_args(parser)
newSuite = unittest.TestSuite()
newSuite.addTest(unittest.makeSuite(NightlyTest))

View File

@ -0,0 +1,13 @@
#!/usr/bin/env python3
import ruamel.yaml
from pathlib import Path
mirrors_yml = Path('/home/hans/code/fdroid/fdroiddata/config/mirrors.yml')
with mirrors_yml.open() as fp:
mirrors_config = ruamel.yaml.YAML(typ='safe').load(fp)
for d in mirrors_config:
d['url'] += '/repo'
print(d, end=',\n')

Some files were not shown because too many files have changed in this diff Show More