msgid "Each app can have complete app store content, including localized descriptions, feature graphics, and screenshots (as of v0.103 of the F-Droid client app and v0.8 of _fdroidserver_). This is possible both when apps are added via [build metadata](../Build_Metadata_Reference) as well as when including pre-built files in a simple repository. There are three paths to including app store content for apps (in order of preference):"msgstr "每个应用可拥有完整的应用商店内容，包括本地化的说明、功能图片和屏幕截图（适用于 F-Droid 客户端应用 v0.103 版本与 _fdroidserver_ v0.8 版本）。可通过两种方式实现：通过[编译元数据](../Build_Metadata_Reference) 添加应用，或简单资源库包含预编译文件。为应用添加应用商店内容的三种路径："

msgid "One important detail: dangerous and unneeded metadata is stripped from image files before they are included in the repo. For example, JPEG EXIF data has [security issues](https://threatpost.com/google-shuts-down-potentially-massive-android-bug/120393/), and it is not needed to display images. This can also mean that the images are recompressed."

msgid "There are two options for including the app store materials in an app's source repository: [fastlane supply](https://github.com/fastlane/fastlane/blob/2.28.7/supply/README.md#images-and-screenshots) and [Triple-T Gradle Play Publisher](https://github.com/Triple-T/gradle-play-publisher#play-store-metadata). Both of these are free software tools that integrate into an Android developer's workflow. Once the files are included in the app's source repo, and those files are included in a tagged release of the app, F-Droid will include all those files."msgstr "将应用商店数据包含至应用源资源库有两种方式：[fastlane supply](https://github.com/fastlane/fastlane/blob/2.28.7/supply/README.md#images-and-screenshots) 和 [Triple-T Gradle Play Publisher](https://github.com/Triple-T/gradle-play-publisher#play-store-metadata)。两种方式所用的都是自由软件工具，已集成至 Android 开发人员工具流程。一旦这些文件包含于应用源资源库和应用标记发布，那么 F-Droid 将包含所有这些文件。"

msgid "In the end, it is not actually necessary to actually install or use either _fastlane supply_ nor _Gradle Play Publisher_. F-Droid includes these files purely based on the standard file layout that those tools use."msgstr "最终，无需真的安装或使用 _fastlane supply_ 和 _Gradle Play Publisher_，因为 F-Droid 已包含一些这样的文件，它们完全基于这些工具所用的标准文件布局。"

msgid "All the localized descriptions and graphics will automatically show up in the F-Droid repo once they are available in the source repo of a release that the repo builds. For example, if these files are included in a _git_ repo's _master_ branch but not yet in a tagged release, they will not be included."

msgid "The last important detail is that the texts in the app's metadata file will override all other descriptive texts from _Fastlane_/_Triple-T_. That is specifically [Name](../Build_Metadata_Reference/#Name)/[AutoName](../Build_Metadata_Reference/#AutoName), [Summary](../Build_Metadata_Reference/#Summary), and [Description](../Build_Metadata_Reference/#Description). Once an app's descriptive texts have been moved into the source repo, then file a [merge request](https://gitlab.com/fdroid/fdroiddata/merge_requests) or [issue](https://gitlab.com/fdroid/fdroiddata/issues) to remove _Summary_ and _Description_ from the app's metadata file."

msgid "All the app store materials can also be added to any _fdroiddata_ repository of build metadata. This follows a file layout modeled after [fastlane supply](https://github.com/fastlane/fastlane/blob/2.28.7/supply/README.md#images-and-screenshots), modified to fit into the _fdroiddata_ workflow. Any files in this layout will be copied into the repo and added to the repo's index file by `fdroid update`."msgstr "应用商店的全部内容也可以添加至编译元数据的如何 _fdroiddata_ 资源库。其数据模型源于 [fastlane supply](https://github.com/fastlane/fastlane/blob/2.28.7/supply/README.md#images-and-screenshots)，并经过修改以用于 _fdroiddata_ 工作流。使用 `fdroid update` 可将该布局中的全部文件复制到资源库并添加至该资源库的索引文件。"

#. type: Plain text#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.mdmsgid "Example:"msgstr ""#. type: Plain text#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md#, no-wrapmsgid """* .../ToGoZip/app/...\n"" * the sourcecode for the android app ToGoZip\n""* [.../ToGoZip/fastlane/metadata/android/en-US/full_description.txt](https://github.com/k3b/ToGoZip/blob/master/fastlane/metadata/android/en-US/full_description.txt)\n"" * contains the (us-) english description of the app ToGoZip.\n""* [.../ToGoZip/fastlane/metadata/android/de-DE/full_description.txt](https://github.com/k3b/ToGoZip/blob/master/fastlane/metadata/android/de-DE/full_description.txt)\n"" * contains the german description of the app ToGoZip.\n""* [.../ToGoZip/fastlane/metadata/android/en-US/changelogs/9.txt](https://github.com/k3b/ToGoZip/blob/master/fastlane/metadata/android/en-US/changelogs/9.txt)\n"" * contains description of the changes made in versionCode **9**\n"" * in fdroid app this will be shown above the app description\n""* .../ToGoZip/fastlane/metadata/android/en-US/images/featureGraphic.png \n"" * this image will be shown on top of the fdroid-s app description\n""* .../ToGoZip/fastlane/metadata/android/en-US/images/phoneScreenshots/....\n"" * images in this folder will be shown below the fdroid-s app description\n"msgstr ""

msgid "The ultimate destination for files from the app's source repo and _fdroiddata_ metadata sub-directories is in the F-Droid repo. The text all gets included into the index file (aka _index-v1.json_). All of the graphics files can be directly included in the repo. If graphics files are also in the app's source or _fdroiddata_, then the files directly in the repo will be overwritten. The text files from the _fastlane_ layout are ignored if they are in the repo."msgstr "来自应用源资源库和 _fdroiddata_ 元数据子文件夹的文件，最终目的地是 F-Droid 资源库。所有文本将包含至索引文件（即 _index-v1.json_）。所有图片文件可直接包含在资源库中。如果应用源或 _fdroiddata_ 也包含这些文件，那么资源库的文件将被覆盖。 _fastlane_ 布局将被忽略如果同时包含在资源库中。"

msgid "`fdroid update` adds all the graphics files it finds in the repo to the index. `fdroid server update` will sync all of the files in the repo to the various locations where the repo is actually hosted."msgstr "`fdroid update` 将查找资源库中所有图像文件并将其添加至索引。`fdroid server update` 将资源库中所有文件同步至资源库实际所在的位置。"

msgid "Using this method, it is is possible to verify that the application builds correctly, corresponds to the source code, and contains only free software. Unfortunately, in the Android world, it seems to be very common for an application supplied as a binary APK to present itself as Free Software when in fact some if not all of the following is true:"msgstr "使用编译方式，可根据源码验证应用编译是否正确，以及确保应用仅包含自由软件。遗憾的是，在 Android 平台上，更常见的是应用提供二进制 APK 来展示自身为自由软件，但实际情况可能如下："

msgid "For this reason, source-built applications are the preferred method for the main F-Droid repository, although occasionally for technical or historical reasons, exceptions are made to this policy."msgstr "由于上述原因，F-Droid 主资源库首选方式为从源码编译应用，但是出于技术或历史的原因，有时存在例外。"

msgid "When building applications from source, it should be noted that you will be signing them (all APK files must be signed to be installable on Android) with your own key. When an application is already installed on a device, it is not possible to upgrade it in place to a new version signed with a different key without first uninstalling the original. This may present an inconvenience to users, as the process of uninstalling loses any data associated with the previous installation."msgstr "从源码编译时，应注意，您需使用自己的密钥签署应用（所有 APK 必须经过签名才能在 Android 上安装）。如果设备已安装某个应用，升级至使用不同密钥签署的新版本时，需首先卸载该应用。这可能对用户带来不便，因为卸载将导致与已安装应用相关联数据的丢失。"

msgid "The process for managing a repository for built-from-source applications is very similar to that described in the Simple Binary Repository chapter, except now you need to:"msgstr "源编译应用资源库管理流程与《简单二进制资源库》部分的说明非常类似，不过还需："

msgid "To do anything, you’ll need at least one repository data directory. It’s from this directory that you run the `fdroid` command to perform all repository management tasks. You can either create a brand new one, or grab a copy of the data used by the main F-Droid repository:"msgstr "开始之前，您需要至少一个资源库数据目录。从该目录，可运行 `fdroid` 命令执行所有资源库管理任务。可创建全新的数据，或者复制 F-Droid 主资源库使用的数据："

msgid "Regardless of the intended usage of the tools, you will always need to set up some basic configuration details. This is done by creating a file called `config.py` in the data directory. You should do this by copying the example file (`./examples/config.py`) from the fdroidserver project to your data directory and then editing according to the instructions within."msgstr "无论如何使用这些工具，总需要对某些基本设定的细节进行设置：在数据目录创建名为 `config.py` 的文件。可将 fdroidserver 项目复制示例文件 (`./examples/config.py`) 至您的数据目录，然后根据内置指南进行编辑。"

msgid "Once configured in this way, all the functionality of the tools is accessed by running the `fdroid` command. Run it on its own to get a list of the available sub-commands."msgstr "按照这种方式设置之后，即可通过 `fdroid` 命令访问这些工具的所有功能。运行该命令本身可显示可用子命令列表。"

msgid "When run without any parameters, `fdroid build` will build any and all versions of applications that you don’t already have in the `repo` directory (or more accurately, the `unsigned` directory). There are various other things you can do. As with all the tools, the `--help` option is your friend, but a few annotated examples and discussion of the more common usage modes follows:"msgstr "不加任何参数时，`fdroid build` 可编译 `repo` 目录中没有的所有应用版本（具体为 `unsigned` 目录）。还有其他用途。和所有工具一样，`--help` 选项很有帮助，以下为一些常见用途的示例和说明："

msgid "This attempts to build version code 16 (which is version 0.25) of the F-Droid client. Many of the tools recognise arguments as packages, allowing their activity to be limited to just a limited set of packages."msgstr "该命令用于编译版本代码 16（即 0.25 版本）的 F-Droid 客户端。这些工具中许多命令可将参数识别为包，以便其活动仅限于特定一组包。"

msgid "The first is the (unsigned) APK. You could sign this with a debug key and push it direct to your device or an emulator for testing. The second is a source tarball containing exactly the source that was used to generate the binary."msgstr "第一个文件是（未签名的）APK。可使用调试密钥签名并直接在设备或模拟器中进行测试。第二个为源码 tarball，其中包含生成二进制所用的源码。"

msgid "The source tarball would move to the `repo` directory (which is the directory you would push to your web server). A signed and zipaligned version of the APK would also appear there, and both files would be removed from the `unsigned` directory."

msgid "If you’re building purely for the purposes of testing, and not intending to push the results to a repository, at least yet, the `--test` option can be used to direct output to the `tmp` directory instead of `unsigned`. A similar effect could by achieved by simply deleting the output files from `unsigned` after the build, but with the risk of forgetting to do so!"msgstr "如果仅用于测试，结果不发送至资源库（或者现在不发布），可使用 `--test` 选项将输出导入至 `tmp` 目录，而不是 `unsigned`。也可以编译后删除 `unsigned` 中的输出文件，但可能会忘记这样做！"

msgid "Along similar lines (and only in conjunction with `--test`, you can use `--force` to force a build of a Disabled application, where normally it would be completely ignored. Similarly a version that was found to contain ELFs or known non-free libraries can be forced to build. See also — `scanignore=` and `scandelete=` in the `Build:` section."msgstr "使用这些命令行（仅限于同时使用 `--test`），可使用 `--force` 强制编译“已禁用”应用，通常禁用的应用完全被忽略。类似，可强制编译包含 ELF 或已知非自由库的版本。另外，请参阅：`Build:` 部分`scanignore=` 和 `scandelete=`。"

msgid "If the build was unsuccessful, you can find out why by looking at the output in the logs/ directory. If that isn’t illuminating, try building the app the regular way, step by step: android update project, ndk-build, ant debug."msgstr "如果编译未成功，可查看 logs/ 目录输出寻找原因。如果这样仍未找到原因，可按照常规方式编译应用，逐步排除：android update project，ndk-build，ant debug。"

msgid "Note that source code repositories often contain prebuilt libraries. If the app is being considered for the main F-Droid repository, it is important that all such prebuilts are built either via the metadata or by a reputable third party."msgstr "请注意，源码资源库通常包含预编译库。如果该应用用于 F-Droid 主资源库，所有这些预编应通过元数据或可信第三方进行编译，这点非常重要。"

msgid "Another option for using `fdroid build` is to use a metadata file that is included in the app’s source itself, rather than in a `metadata/` folder with lots of other apps. This metadata file should be in the root of your source repo, and be called `.fdroid.json`, `.fdroid.xml`, `.fdroid.yaml`, or `.fdroid.txt`, depending on your preferred data format: JSON, XML, YAML, or F-Droid’s `.txt` format."

msgid "You can also build and install directly to a connected device or emulator using the `fdroid install` command. If you do this without passing packages as arguments then all the latest built and signed version available of each package will be installed . In most cases, this will not be what you want to do, so execution will stop straight away. However, you can override this if you’re sure that’s what you want, by using `--all`. Note that currently, no sanity checks are performed with this mode, so if the files in the signed output directory were modified, you won’t be notified."msgstr "使用 `fdroid install` 命令，还可以编译并直接安装应用至连接的设置或模拟器。参数为指定包时，将安装每个包所有最新编译和签名的版本。通常，这并非人们想要的结果，因此将直接终止该命令执行。不过，可使用 `--all` 覆盖这一规则。请注意，当前，该模式不会进行严格的检查，如果已签名输出目录中的文件经过修改，不会提示修改。"

msgid "The Android APK signing model sets the expectation that the signing key will be the same for the entire lifetime of the app. That can be seen in the recommended lifetype of an Android signing key: [20+ years](https://developer.android.com/studio/publish/app-signing.html#considerations). On top of that, it is difficult to [migrate an app to a new key](https://guardianproject.info/2015/12/29/how-to-migrate-your-android-apps-signing-key/). Since the signing key is an essential part to preventing APKs from impersonating another, Android signing keys must be kept safe for the entire life of the app."

msgid "The F-Droid repo signing keys follow a very similar model: the signing key is the essential way to safely identify an F-Droid repo. So the same considerations apply to F-Droid repo signing keys as to APK signing keys. This also provides some really useful benefits. Since the integrity of the repo index file and the APKs are guaranteed by the repo signature, the files can be delivered via whatever method is most convenient, and their integrity will be automatically verified by the F-Droid client app, the _f-droid.org_ deploy process, and Repomaker."

msgid "This means the security burden is shifted from the online, public webserver to a private signing machine. Just keeping that machine out of the public eye goes a long way towards improving security. There are a number of additional measures that can be taken to further improve the security of the signing process. Here are some approaches, starting with the easiest and least security, and going on to more secure setups that require more work to setup and run. Signing is not an resource intensive process, so any machine will work, even a 10 year old, basic laptop. We recommend using a minimal [Debian](https://www.debian.org) install, and rebuilding the machine from scratch."

msgid "For a fully automated signing setup, the machine running the signing needs to be online and running. Ideally this machine would have no remote access, at the very least remote access should be very carefully controlled and monitored. A laptop makes it easy to work with even when remote access is disabled, since it provides a built-in keyboard and monitor. If remote access is required, then any basic PC will work fine. Using a Hardware Security Module (HSM) to store the keys prevents them from being stolen if the server is broken into. An attacker could only run the signing process on that server."

msgid "Ideally, this machine would only be accessible via Tor. That hides the physical location of the server, and hides the traffic from network. This makes it much harder attackers to find the actual machine to attack."

msgid "For the HSM, we recommend using [Nitrokey](https://www.nitrokey.com/) hardware, since they are free software/hardware, and provide a wide range of options. Use a separate machine to put the signing keys on HSM. A good HSM will keep an audit trail of how many signatures have been made, so that information could be used to create an automatic auditing process to raise alarms if too many signatures have been made. That could mean that this server was breached and used to sign unauthorized packages."

msgid "Other possibility it to use a setup like [Fedora](https://pagure.io/sigul)'s [Sigul](http://www.devops-blog.net/koji/gpg-signing-rpms-with-sigul-signing-server-koji-integration) that involves three machines."

msgid "Start with a laptop that can be wiped clean and rebuilt from scratch. What is most important is that only the essential software is installed on it, and nothing else. Do not include any browser at all, for example, since that is the most common vector of attack. No remote access setup (e.g. SSH or VNC) should be installed or configured. To sign apps and repos, someone would take out this laptop, connect it to the network, and run the signing process. The signed results can then be published via the network connection. When the signing is complete, the machine can be turned off and disconnected and kept in a safe place."

msgid "This could be made quite automatic with some custom scripts. The person running the process would only need to take out the machine, connect it, turn it on, wait until the process completes, then put it all away again."

msgid "This process is based on the same basic, stripped down laptop as the previous example. But this time, the networking should be entirely disabled before the install process. For example, it is easy in many laptops to physically remove the WiFi card. Therefore, it makes sense to use a laptop that does not include an ethernet jack, which are usually not possible to remove. Otherwise, blacklisting all kernel modules related to neworking can suffice. Since this machine is fully offline, the extra work of using an HSM is not as important, but it can't hurt to include it."

msgid "Download the full \"CD\" or \"DVD\" image of Debian to run the install. Be sure to [verify](https://www.debian.org/CD/verify) the GPG signatures and the SHA-256 hashes. One essential utility is _apt-offline_, which automates the process of downloading Debian packages, verifying their signatures, and copying them over to an offline machine."

msgid "The last thing to consider is the physical location where signatures happen, and where essential equipment is stored. The signing environment must be physically secure. Otherwise, there is no way to prevent laptops or HSMs from being lost or used to sign inappropriate content. For the offline machines, keeping them in a locked room is a good start. For an online machine, forcing all network traffic and remote access over Tor hides the physical location of the machine from network observers."

msgid "Ideally all of these practices would be put into place, but each of these security measures comes at a cost of difficulty, expense, and complexity. They can also delay the process of getting regular updates out. So there are risks of implementing too strict security policies, much like the risks of not implementing enough."

msgid "These metadata files are simple, easy to edit text files, always named as the \"package name\" with file type appended. There are a wide range of available fields for adding information to describe packages and/or apps. For all of the fields like `AuthorName` that apply to all releases of a package/app, the fields use CamelCase starting with an upper case letter. All other fields use camelCase starting with a lower case letter, including per-build fields, localized fields, etc."msgstr "这些元数据文件是简单的文本文件，易于编辑，文件名通常为“包名称”加文件类型。许多字段可添加信息作为包或应用的说明。对于适用于包或应用所有发布版本的字段，如 `AuthorName`，字段命名方式为大写开头的驼峰式大小写。其他字段使用小写开头的驼峰式大小写，包括预编译字段，本地化字段等。"

msgid "Note that although the metadata files are designed to be easily read and writable by humans, they are also processed and written by various scripts. They can be automatically cleaned up when necessary. The structure and comments will be preserved correctly, although the order of fields will be standardised. (In the event that the original file was in a different order, comments are considered as being attached to the field following them). In fact, you can standardise all packages in a repository using a single command, without changing the functional content, by running:"msgstr "请注意，虽然元数据文件是为了方便开发者对其进行读写，同时可使用各种脚本进行处理或编辑。在需要时，可自动清除。元数据结构和评论可正确保留下来，但将对字段顺序进行标准化处理。（对于使用不同顺序的原文件，评论在前，被评论的字段在后。）实际上，可使用一条简单的命令对资源库中所有包进行标准化，而不更改功能内容，该命令为："

msgid "Any number of categories for the application to be placed in. There is no fixed list of categories - both the client and the web site will automatically show any categories that exist in any applications. However, if your metadata is intended for the main F-Droid repository, you should use one of the existing categories (look at the site/client), or discuss the proposal to add a new one."msgstr "应用可属于任意数量的类别。类别多少没有固定，客户端和网站可自动显示任何应用所属的任何类别。不过，如果元数据是针对 F-Droid 主资源库，应从客户端或网站上现有的类别中选项，也可提议添加新类别。"

msgid "Categories must be separated by a single comma character, ’,’. For backwards compatibility, F-Droid will use the first category given as &lt;category&gt; element for older clients to at least see one category."msgstr "类别必须使用单个逗号（,）隔开。为了向后兼容，F-Droid 旧版客户端使用指定的第一个类别为 &lt;category&gt; 元素，这样至少可以显示一个类别。"

msgid "The name of the author, either full, abbreviated or pseudonym. If present, it should represent the name(s) as published by upstream, e.g. in their copyright or authors file. This can be omitted (or left blank)."msgstr "作者名字可为全名、缩写或别名。如果存在，应显示为上游发布的名字，如版权或作者文档。该部分可省略（或留白）。"

msgid "__Warning__: this overrides all Author Name entries [set in the app's source code](../All_About_Descriptions_Graphics_and_Screenshots)."msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots)的可本地化文本和图片"

msgid "The overall license for the application in terms of the binary that the user can install. Values should correspond to short identifiers of the [SPDX](https://spdx.org/licenses/) license list. There can only be one license listed here. If there are multiple licenses that apply to the source code, then this field should contain the least restrictive license that the whole app can be used under. When multiple licenses are combined, that usually means the most restrictive wins."

msgid "The name of the application as can best be retrieved from the source code. This is done so that the commitupdates script can put a familiar name in the description of commits created when a new update of the application is found. The Auto Name entry is generated automatically when `fdroid checkupdates` is run."

msgid "__Warning__: this overrides all Name entries [set in the app's source code](../All_About_Descriptions_Graphics_and_Screenshots)."msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots)的可本地化文本和图片"

msgid "The name of the application. Normally, this field should not be present since the application’s correct name is retrieved from the APK file. However, in a situation where an APK contains a bad or missing application name, it can be overridden using this. Note that this only overrides the name in the list of apps presented in the client; it doesn’t changed the name or application label in the source code."

msgid "Comma-separated list of application IDs that this app provides. In other words, if the user has any of these apps installed, F-Droid will show this app as installed instead. It will also appear if the user clicks on urls linking to the other app IDs. Useful when an app switches package name, or when you want an app to act as multiple apps."

msgid "It is possible to use a direct PayPal link here, if that is all that is available. However, bear in mind that the developer may not be aware of that direct link, and if they later changed to a different PayPal account, or the PayPal link format changed, things could go wrong. It is always best to use a link that the developer explicitly makes public, rather than something that is auto-generated ’button code’."

msgid "The project’s Flattr (https://flattr.com) ID, if it has one. This should be a numeric ID, such that (for example) https://flattr.com/thing/xxxx leads directly to the page to donate to the project."

msgid "The project’s Liberapay (https://liberapay.com) ID, if it has one. This should be a numeric ID, such that (for example) https://liberapay.com/~xxxxx which redirects to your account page. Currently the numeric ID is not displayed on Liberapay’s site, but you can add /public.json behind your team page and get the value of id field in the JSON response."

msgid "A full description of the application, relevant to the latest version. This can span multiple lines (which should be kept to a maximum of 80 characters), and is terminated by a line containing a single ’.’."

msgid "You can link to another app in the repo by using `[[app.id]]`. The link will be made appropriately whether in the Android client, the web repo browser or the wiki. The link text will be the apps name."

msgid "Bulletted lists are done by simply starting each item with a `*` on a new line, and numbered lists are the same but using `#`. There is currently no support for nesting lists - you can have one level only."

msgid "It can be helpful to note information pertaining to updating from an earlier version; whether the app contains any prebuilts built by the upstream developers or whether non-free elements were removed; whether the app is in rapid development or whether the latest version lags behind the current version; whether the app supports multiple architectures or whether there is a maximum SDK specified (such info not being recorded in the index)."

msgid "This is a multi-line field using the same rules and syntax as the description. It’s used to record notes for F-Droid maintainers to assist in maintaining and updating the application in the repository."

msgid "The git-svn option connects to an SVN repository, and you specify the URL in exactly the same way, but git is used as a back-end. This is preferable for performance reasons, and also because a local copy of the entire history is available in case the upstream repository disappears. (It happens!). In order to use Tags as update check mode for this VCS type, the URL must have the tags= special argument set. Likewise, if you intend to use the RepoManifest/branch scheme, you would want to specify branches= as well. Finally, trunk= can also be added. All these special arguments will be passed to \"git svn\" in order, and their values must be relative paths to the svn repo root dir. Here’s an example of a complex git-svn Repo URL: http://svn.code.sf.net/p/project/code/svn;trunk=trunk;tags=tags;branches=branches"

msgid "If the Repo Type is `srclib`, then you must specify the name of the according srclib .txt file. For example if `scrlibs/FooBar.txt` exist and you want to use this srclib, then you have to set Repo to `FooBar`."

msgid "If specified, F-Droid will verify the output apk file of a build against the one specified. You can use %v and %c to point to the version name and version code of the current build. To verify the F-Droid client itself you could use: `Binaries:https://f-droid.org/repo/org.fdroid.fdroid_%c.apk`"

msgid "The above specifies to build version 1.2, which has a version code of 12. The `commit=` parameter specifies the tag, commit or revision number from which to build it in the source repository. It is the only mandatory flag, which in this case could for example be `commit=v1.2`."

msgid "In addition to the three, always required, parameters described above, further parameters can be added (in name=value format) to apply further configuration to the build. These are (roughly in order of application):"

#, no-wrapmsgid """ The purpose of this feature is to allow non-buildable releases (e.g.\n"" the source is not published) to be flagged, so the scripts don’t\n"" generate repeated messages about them. (And also to record the\n"" information for review later). If an apk has already been built,\n"" disabling causes it to be deleted once `fdroid update` is run; this\n"" is the procedure if ever a version has to be replaced.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """: Use if the project (git only) has submodules - causes\n"" `git submodule update --init --recursive` to be executed after the\n"" source is cloned. Submodules are reset and cleaned like the main app\n"" repository itself before each build.\n"msgstr ""

#. type: Plain text#: build/_docs/md/Build_Metadata_Reference.mdmsgid "`sudo=xxxx`"msgstr ""#. type: Plain text#: build/_docs/md/Build_Metadata_Reference.md#, no-wrapmsgid """: Specifies a script to be run using `sudo bash -x -c \"xxxx\"` in the\n"" buildserver VM guest. This script is run with full root privileges,\n"" but the state will be reset after each build. The vast majority of\n"" apps build using the standard Debian/stable base environment. This\n"" is useful for setting up the buildserver for complex builds that\n"" need very specific things that are not appropriate to install for\n"" all builds, or for things that would conflict with other builds.\n"msgstr ""

#, no-wrapmsgid """: The sdk location in the repo is in an old format, or the build.xml\n"" is expecting such. The ’new’ format is sdk.dir while the VERY OLD\n"" format is sdk-location. Typically, if you get a message along the\n"" lines of: \"com.android.ant.SetupTask cannot be found\" when trying to\n"" build, then try enabling this option.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """: Specifies a particular SDK target for compilation, overriding the\n"" value defined in the code by upstream. This has different effects\n"" depending on what build system used — this flag currently affects\n"" Ant, Maven and Gradle projects only. Note that this does not change\n"" the target SDK in the AndroidManifest.xml, which determines the\n"" level of features that can be included in the build.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """ In the case of an Ant project, it modifies project.properties of the\n"" app and possibly sub-projects. This is likely to cause the whole\n"" build.xml to be rewritten, which is fine if it’s a ’standard’\n"" android file or doesn’t already exist, but not a good idea if it’s\n"" heavily customised.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """: By default, ’android update’ is used in Ant builds to generate or\n"" update the project and all its referenced projects. Specifying\n"" update=no bypasses that. Note that this is useless in builds that\n"" don’t use Ant.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """: Adds a java.encoding property to local.properties with the\n"" given value. Generally the value will be ’utf-8’. This is picked up\n"" by the SDK’s ant rules, and forces the Java compiler to interpret\n"" source files with this encoding. If you receive warnings during the\n"" compile about character encodings, you probably need this.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """ This is useful for cases when upstream repo failed to update it for\n"" specific tag; to build an arbitrary revision; to make it apparent\n"" that the version differs significantly from upstream; or to make it\n"" apparent which architecture or platform the apk is designed to\n"" run on.\n"msgstr ""#. type: Plain text

#, no-wrapmsgid """: Specifies the relative paths of files or directories to delete\n"" before the build is done. The paths are relative to the base of the\n"" build directory - i.e. the root of the directory structure checked\n"" out from the source respository - not necessarily the directory that\n"" contains AndroidManifest.xml.\n"msgstr ""#. type: Plain text