_docs.zh_Hans.po 398 KB
Newer Older
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1 2 3 4 5 6 7 8 9
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: team@f-droid.org\n"
10
"POT-Creation-Date: 2018-05-18 12:44+0200\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
11 12
"PO-Revision-Date: 2018-02-10 13:34+0000\n"
"Last-Translator: Yunyang Liu <ensigma96@gmail.com>\n"
13
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/f-droid/website-docs/zh_Hans/>\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
14 15 16 17 18
"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"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
19
"X-Generator: Weblate 2.19-dev\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
20 21

#. type: Title #
22
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
23 24 25 26 27
#, no-wrap
msgid "All About Descriptions, Graphics, and Screenshots"
msgstr "说明、图片和屏幕截图"

#. type: Plain text
28
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
29
#, fuzzy
30 31
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) 添加应用,或简单资源库包含预编译文件。为应用添加应用商店内容的三种路径:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
32 33

#. type: Plain text
34
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
35 36
#: build/_docs/md/Build_Server_Setup.md build/_docs/md/FAQ_-_App_Developers.md
#: build/_docs/md/FAQ_-_Client.md build/_docs/md/FAQ_-_General.md
37 38
#: build/_docs/md/Installing_the_Server_and_Repo_Tools.md
#: build/_docs/md/Setup_an_F-Droid_App_Repo.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
39 40 41 42 43 44 45 46 47
#, no-wrap
msgid ""
"* Do not remove this line (it will not be displayed)\n"
"{:toc}\n"
msgstr ""
"* Do not remove this line (it will not be displayed)\n"
"{:toc}\n"

#. type: Plain text
48
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
49 50 51 52
msgid "There are two data formats:"
msgstr "两种数据格式:"

#. type: Bullet: '* '
53
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
54 55 56 57
msgid "descriptive materials in plain text or HTML"
msgstr "纯文本或 HTML 格式的描述说明"

#. type: Bullet: '* '
58
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
59 60 61
msgid "graphics and screenshots as PNG or JPEG files"
msgstr "PNG 或 JPEG 格式的图片和屏幕截图文件"

62 63
#. type: Plain text
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
64
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."
65 66
msgstr ""

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
67
#. type: Title ##
68
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
69 70 71 72 73
#, no-wrap
msgid "In the app's source repository"
msgstr "位于应用源资源库"

#. type: Plain text
74
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
75 76
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 将包含所有这些文件。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
77 78

#. type: Plain text
79
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
80 81
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 已包含一些这样的文件,它们完全基于这些工具所用的标准文件布局。"
82 83 84

#. type: Plain text
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
85
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."
86 87 88 89
msgstr ""

#. type: Plain text
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
90
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."
91
msgstr ""
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
92 93

#. type: Title ##
94
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
95 96 97 98 99
#, no-wrap
msgid "In the app's build metadata in an _fdroiddata_ collection"
msgstr "位于应用 _fdroiddata_ 中编译元数据"

#. type: Plain text
100
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
101 102
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` 可将该布局中的全部文件复制到资源库并添加至该资源库的索引文件。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
103 104

#. type: Plain text
105
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
#, no-wrap
msgid ""
"```\n"
"- <fdroiddata>/\n"
"  └── metadata/\n"
"      └── <package-id>/\n"
"          └── <locale>/\n"
"              ├── full_description.txt\n"
"              ├── short_description.txt\n"
"              ├── title.txt\n"
"              ├── video.txt\n"
"              ├── images/\n"
"              │   ├── featureGraphic.png\n"
"              │   ├── icon.png\n"
"              │   ├── promoGraphic.png\n"
"              │   └── tvBanner.png\n"
"              ├── changelogs/\n"
"              │   ├── <version-code>.txt\n"
"              │   └── <version-code>.txt\n"
"              ├── phoneScreenshots/\n"
"              │   └── *.png\n"
"              ├── sevenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tvScreenshots/\n"
"              │   └── *.png\n"
"              └── wearScreenshots/\n"
"                  └── *.png\n"
"```\n"
msgstr ""
"```\n"
"- <fdroiddata>/\n"
"  └── metadata/\n"
"      └── <package-id>/\n"
"          └── <locale>/\n"
"              ├── full_description.txt\n"
"              ├── short_description.txt\n"
"              ├── title.txt\n"
"              ├── video.txt\n"
"              ├── images/\n"
"              │   ├── featureGraphic.png\n"
"              │   ├── icon.png\n"
"              │   ├── promoGraphic.png\n"
"              │   └── tvBanner.png\n"
"              ├── changelogs/\n"
"              │   ├── <version-code>.txt\n"
"              │   └── <version-code>.txt\n"
"              ├── phoneScreenshots/\n"
"              │   └── *.png\n"
"              ├── sevenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tvScreenshots/\n"
"              │   └── *.png\n"
"              └── wearScreenshots/\n"
"                  └── *.png\n"
"```\n"

166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
#. type: Plain text
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
msgid "Example:"
msgstr ""

#. type: Plain text
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
#, no-wrap
msgid ""
"* .../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 ""

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
190
#. type: Title ##
191
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
192 193 194 195 196
#, no-wrap
msgid "Directly in the F-Droid repo"
msgstr "位于 F-Droid 资源库"

#. type: Plain text
197
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
198 199
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_ 布局将被忽略如果同时包含在资源库中。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
200 201

#. type: Plain text
202
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
#, no-wrap
msgid ""
"```\n"
"- fdroid/\n"
"  └── repo/\n"
"      └── <package-id>/\n"
"          └── <locale>/\n"
"              ├── featureGraphic.png\n"
"              ├── icon.png\n"
"              ├── promoGraphic.png\n"
"              ├── tvBanner.png\n"
"              ├── phoneScreenshots/\n"
"              │   └── *.png\n"
"              ├── sevenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tvScreenshots/\n"
"              │   └── *.png\n"
"              └── wearScreenshots/\n"
"                  └── *.png\n"
"```\n"
msgstr ""
"```\n"
"- fdroid/\n"
"  └── repo/\n"
"      └── <package-id>/\n"
"          └── <locale>/\n"
"              ├── featureGraphic.png\n"
"              ├── icon.png\n"
"              ├── promoGraphic.png\n"
"              ├── tvBanner.png\n"
"              ├── phoneScreenshots/\n"
"              │   └── *.png\n"
"              ├── sevenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tenInchScreenshots/\n"
"              │   └── *.png\n"
"              ├── tvScreenshots/\n"
"              │   └── *.png\n"
"              └── wearScreenshots/\n"
"                  └── *.png\n"
"```\n"

#. type: Plain text
248
#: build/_docs/md/All_About_Descriptions_Graphics_and_Screenshots.md
249 250
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` 将资源库中所有文件同步至资源库实际所在的位置。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
251 252

#. type: Title #
253
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
254 255 256 257 258
#, no-wrap
msgid "Building Applications"
msgstr "编译应用"

#. type: Plain text
259
#: build/_docs/md/Building_Applications.md
260
msgid "Instead of (or as well as) including binary APKs from external sources in a repository, you can build them directly from the source code."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
261 262 263
msgstr "资源库包含的二进制 APK 可以来自外部资源,也可以直接从源码编译。"

#. type: Plain text
264
#: build/_docs/md/Building_Applications.md
265
#, fuzzy
266 267
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 来展示自身为自由软件,但实际情况可能如下:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
268 269

#. type: Bullet: '1.  '
270
#: build/_docs/md/Building_Applications.md
271
msgid "The source code (either for a particular version, or even all versions!) is unavailable or incomplete."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
272 273 274
msgstr "源码(对于特定版本或所有版本)未提供或不完整。"

#. type: Bullet: '2.  '
275
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
276 277 278 279
msgid "The source code is not capable of producing the actual binary supplied."
msgstr "源码实际无法生成所提供的二进制。"

#. type: Bullet: '3.  '
280
#: build/_docs/md/Building_Applications.md
281
msgid "The ’source code’ contains binary files of unknown origin, or with proprietary licenses."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
282 283 284
msgstr "“源码”所含二进制文件来源未知,或者使用专有授权。"

#. type: Plain text
285
#: build/_docs/md/Building_Applications.md
286 287
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 主资源库首选方式为从源码编译应用,但是出于技术或历史的原因,有时存在例外。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
288 289

#. type: Plain text
290
#: build/_docs/md/Building_Applications.md
291 292
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 上安装)。如果设备已安装某个应用,升级至使用不同密钥签署的新版本时,需首先卸载该应用。这可能对用户带来不便,因为卸载将导致与已安装应用相关联数据的丢失。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
293 294

#. type: Plain text
295
#: build/_docs/md/Building_Applications.md
296 297
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 "源编译应用资源库管理流程与《简单二进制资源库》部分的说明非常类似,不过还需:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
298 299

#. type: Bullet: '1.  '
300
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
301 302 303 304
msgid "Include Build entries in the metadata files."
msgstr "包含编译条目至元数据文件。"

#. type: Bullet: '2.  '
305
#: build/_docs/md/Building_Applications.md
306
msgid "Run `fdroid build` to build any applications that are not already built."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
307 308 309
msgstr "运行 `fdroid build` 编译如何尚未编译的应用。"

#. type: Bullet: '3.  '
310
#: build/_docs/md/Building_Applications.md
311 312
msgid "Run `fdroid publish` to finalise packaging and sign any APKs that have been built."
msgstr "运行 `fdroid publish`  对打包进行最后处理,并对任何已编译的 APK 进行签名。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
313 314

#. type: Title ###
315
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
316 317 318 319 320
#, no-wrap
msgid "App data directory aka _fdroiddata_"
msgstr "应用数据目录,即 _fdroiddata_"

#. type: Plain text
321
#: build/_docs/md/Building_Applications.md
322 323
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 主资源库使用的数据:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
324 325

#. type: Plain text
326
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
327 328 329 330
msgid "```bash git clone https://gitlab.com/fdroid/fdroiddata.git ```"
msgstr ""

#. type: Plain text
331
#: build/_docs/md/Building_Applications.md
332 333
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`) 至您的数据目录,然后根据内置指南进行编辑。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
334 335

#. type: Plain text
336
#: build/_docs/md/Building_Applications.md
337 338
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` 命令访问这些工具的所有功能。运行该命令本身可显示可用子命令列表。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
339 340

#. type: Plain text
341
#: build/_docs/md/Building_Applications.md
342
msgid "You can follow any command with `--help` to get a list of additional options available for that command."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
343 344 345
msgstr "任何命令后加上 `--help` 可获取相应的可用附加命令。"

#. type: Plain text
346
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
347 348 349 350
msgid "```bash fdroid update --help ```"
msgstr "```bash fdroid update --help ```"

#. type: Title ###
351
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
352 353 354 355 356
#, no-wrap
msgid "More about `fdroid build`"
msgstr "有关 `fdroid build` 的更多信息"

#. type: Plain text
357
#: build/_docs/md/Building_Applications.md
358 359
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` 选项很有帮助,以下为一些常见用途的示例和说明:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
360 361

#. type: Plain text
362
#: build/_docs/md/Building_Applications.md
363
msgid "To build a single version of a single application, you could run the following:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
364 365 366
msgstr "针对一个应用编译一个版本,命令如下:"

#. type: Plain text
367
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
368 369 370 371
msgid "```bash fdroid build org.fdroid.fdroid:16 ```"
msgstr "```bash fdroid build org.fdroid.fdroid:16 ```"

#. type: Plain text
372
#: build/_docs/md/Building_Applications.md
373 374
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 客户端。这些工具中许多命令可将参数识别为包,以便其活动仅限于特定一组包。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
375 376

#. type: Plain text
377
#: build/_docs/md/Building_Applications.md
378
msgid "If the build above was successful, two files will have been placed in the `unsigned` directory:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
379 380 381
msgstr "编译成功后, `unsigned` 目录将生成两个文件:"

#. type: Plain text
382
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
383 384 385 386
msgid "``` org.fdroid.fdroid_16.apk org.fdroid.fdroid_16_src.tar.gz ```"
msgstr "``` org.fdroid.fdroid_16.apk org.fdroid.fdroid_16_src.tar.gz ```"

#. type: Plain text
387
#: build/_docs/md/Building_Applications.md
388 389
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,其中包含生成二进制所用的源码。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
390 391

#. type: Plain text
392
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
393 394 395 396
msgid "If you were intending to publish these files, you could then run:"
msgstr "如果想要发布这些文件,请运行:"

#. type: Plain text
397
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
398 399 400 401
msgid "```bash fdroid publish ```"
msgstr "```bash fdroid publish ```"

#. type: Plain text
402
#: build/_docs/md/Building_Applications.md
403
#, fuzzy
404
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
405
msgstr ""
406
"源码 tarball 将移至 `repo` 目录(即发送至 web 服务器的目录)。该目录下还将生成经过签名和 zipalign 处理的\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
407 408 409
" APK 文件。两个文件将从 `unsigned` 目录删除。"

#. type: Plain text
410
#: build/_docs/md/Building_Applications.md
411 412
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` 中的输出文件,但可能会忘记这样做!"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
413 414

#. type: Plain text
415
#: build/_docs/md/Building_Applications.md
416 417
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=`。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
418 419

#. type: Plain text
420
#: build/_docs/md/Building_Applications.md
421 422
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。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
423 424

#. type: Plain text
425
#: build/_docs/md/Building_Applications.md
426 427
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 主资源库,所有这些预编应通过元数据或可信第三方进行编译,这点非常重要。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
428 429

#. type: Title ###
430
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
431 432 433 434 435
#, no-wrap
msgid "Running `fdroid build` in your app’s source"
msgstr "在应用源码中运行 `fdroid build`"

#. type: Plain text
436
#: build/_docs/md/Building_Applications.md
437
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
438
msgstr ""
439
"使用 `fdroid build` 的另一种方式:使用应用源码中包含的元数据文件,而不是包含其他许多应用的 `metadata/` 目录。这个元数据文件应位于源资源库根目录;根据您所选数据格式 JSON,XML,YAML 或 F-Droid 的 `.txt`\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
440 441 442
",文件名应为 `.fdroid.json`,`.fdroid.xml`,`.fdroid.yaml`或`.fdroid.txt`。"

#. type: Plain text
443
#: build/_docs/md/Building_Applications.md
444
msgid "Once you have that setup, you can build the most recent version of the app using the whole F-Droid stack by running:"
445
msgstr "设置完成之后,使用整个 F-Droid 栈编译最新版本应用,运行:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
446 447

#. type: Plain text
448
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
449 450 451 452
msgid "```bash fdroid build ```"
msgstr "```bash fdroid build ```"

#. type: Plain text
453
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
454 455 456 457
msgid "If you want to build every single version, then specify `--all`."
msgstr "如需编译每一个版本,可指定 `--all`。"

#. type: Title ###
458
#: build/_docs/md/Building_Applications.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
459 460 461 462 463
#, no-wrap
msgid "Direct Installation"
msgstr "直接安装"

#. type: Plain text
464
#: build/_docs/md/Building_Applications.md
465 466
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` 覆盖这一规则。请注意,当前,该模式不会进行严格的检查,如果已签名输出目录中的文件经过修改,不会提示修改。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
467 468

#. type: Title #
469
#: build/_docs/md/Building_a_Signing_Server.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
470
#, no-wrap
471 472
msgid "Building a Signing Server"
msgstr ""
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
473 474

#. type: Plain text
475
#: build/_docs/md/Building_a_Signing_Server.md
476
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."
477
msgstr ""
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
478

479 480
#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
481
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."
482
msgstr ""
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
483

484 485
#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
486
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."
487
msgstr ""
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
488

489 490 491 492 493 494 495 496
#. type: Title ###
#: build/_docs/md/Building_a_Signing_Server.md
#, no-wrap
msgid "Automated Signing Server with with HSM"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
497
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
498 499
msgstr ""

500 501
#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
502
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
503 504 505
msgstr ""

#. type: Plain text
506
#: build/_docs/md/Building_a_Signing_Server.md
507
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
508 509 510
msgstr ""

#. type: Plain text
511
#: build/_docs/md/Building_a_Signing_Server.md
512
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."
513 514 515 516 517 518 519 520 521 522
msgstr ""

#. type: Title ###
#: build/_docs/md/Building_a_Signing_Server.md
#, no-wrap
msgid "Basic laptop dedicated to signing"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
523
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."
524 525 526 527
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
528
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."
529 530 531 532 533 534 535 536 537 538
msgstr ""

#. type: Title ###
#: build/_docs/md/Building_a_Signing_Server.md
#, no-wrap
msgid "Fully offline signing laptop with USB thumb drives"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
539
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."
540 541 542 543
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
544
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."
545 546 547 548
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
549
msgid "To be extra careful, all of the software used should be verified.  Chromebooks are nice, cheap laptops that run Linux natively.  They also use Coreboot for the BIOS."
550 551 552 553
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
554
msgid "Buy a computer off the shelf with cash, avoid having it shipped, especially across borders"
555 556 557 558
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
559
msgid "Buy a Debian-supported [Chromebook](https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook) with removeable WiFi hardware, and needs no binary blobs"
560 561 562 563 564 565 566 567 568
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "Install a reproducibly built coreboot binary"
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
569
msgid "Install from a reproducibly built Debian image, wiping out Chrome OS entirely"
570 571 572 573 574 575 576 577 578 579
msgstr ""

#. type: Title ##
#: build/_docs/md/Building_a_Signing_Server.md
#, no-wrap
msgid "The Physical Environment"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
580
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."
581 582 583 584
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
585
msgid "For high risk signing keys, using multiple layers of defense is important:"
586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "Restricted physical access to HSMs or smart cards"
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "Security cameras"
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "Onsite security guards"
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "Visitor logging"
msgstr ""

#. type: Bullet: '* '
#: build/_docs/md/Building_a_Signing_Server.md
msgid "A tools-resistant server safe for online code-signing servers"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
615
msgid "The signing server should be physically separate from the rest of the infrastructure.  And the logs, machine, and network should be periodically audited."
616 617 618 619 620 621 622 623 624 625
msgstr ""

#. type: Title ##
#: build/_docs/md/Building_a_Signing_Server.md
#, no-wrap
msgid "Difficult decisions"
msgstr ""

#. type: Plain text
#: build/_docs/md/Building_a_Signing_Server.md
626
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."
627 628 629 630 631 632 633 634 635 636
msgstr ""

#. type: Title #
#: build/_docs/md/Build_Metadata_Reference.md
#, no-wrap
msgid "Build Metadata Reference"
msgstr "编译元数据引用"

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
637
msgid "Information used by `fdroid update` to compile the public index comes from several sources:"
638 639 640 641 642 643 644 645 646 647 648 649 650 651 652
msgstr "`fdroid update` 编译公共索引所用信息来自:"

#. type: Bullet: '* '
#: build/_docs/md/Build_Metadata_Reference.md
msgid "APK, media, etc files in the _repo_ sub-directory"
msgstr "_repo_ 子目录中的 APK、媒体等文件"

#. type: Bullet: '* '
#: build/_docs/md/Build_Metadata_Reference.md
msgid "per-package \"metadata\" files in the _metadata_ sub-directory"
msgstr "_metadata_ 子目录中每个包的“元数据”文件"

#. type: Bullet: '* '
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
653 654
msgid "[localizable texts and graphics](../All_About_Descriptions_Graphics_and_Screenshots#in-the-apps-build-metadata-in-an-fdroiddata-collection) in the _metadata_ subdirectory"
msgstr "_metadata_ 子目录下的[可本地化的文本和图片](../All_About_Descriptions_Graphics_and_Screenshots#in-the-apps-build-metadata-in-an-fdroiddata-collection)"
655 656 657 658

#. type: Bullet: '* '
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
659 660
msgid "localizable texts and graphics [embedded in an app's source code](../All_About_Descriptions_Graphics_and_Screenshots#in-the-apps-source-repository)"
msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots#in-the-apps-source-repository)的可本地化文本和图片"
661 662 663

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
664 665
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`,字段命名方式为大写开头的驼峰式大小写。其他字段使用小写开头的驼峰式大小写,包括预编译字段,本地化字段等。"
666 667 668 669

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
msgid "There are three supported file types for metadata files:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
670 671 672
msgstr "元数据文件支持三种文件类型:"

#. type: Bullet: '* '
673
#: build/_docs/md/Build_Metadata_Reference.md
674
msgid "_.yml_ files in [YAML](http://www.yaml.org/start.html) format, used by f-droid.org"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
675 676 677
msgstr "[YAML](http://www.yaml.org/start.html) 格式的 _.yml_,f-droid.org 所用"

#. type: Bullet: '* '
678
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
679 680 681 682
msgid "_.txt_ files in the old, custom, F-Droid text-based format"
msgstr "_.txt_ 文件,可自定义的 F-Droid 基于文本的旧格式"

#. type: Bullet: '* '
683
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
684 685 686 687
msgid "_.json_ files in [JSON](http://json.org/) format"
msgstr "[JSON](http://json.org/) 格式的_.json_ 文件"

#. type: Plain text
688
#: build/_docs/md/Build_Metadata_Reference.md
689 690
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 "请注意,虽然元数据文件是为了方便开发者对其进行读写,同时可使用各种脚本进行处理或编辑。在需要时,可自动清除。元数据结构和评论可正确保留下来,但将对字段顺序进行标准化处理。(对于使用不同顺序的原文件,评论在前,被评论的字段在后。)实际上,可使用一条简单的命令对资源库中所有包进行标准化,而不更改功能内容,该命令为:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
691 692

#. type: Plain text
693
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
694 695 696 697
msgid "``` fdroid rewritemeta ```"
msgstr "``` fdroid rewritemeta ```"

#. type: Plain text
698
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
699 700 701 702
msgid "Or just run it on a specific app:"
msgstr "或对特定应用,运行:"

#. type: Plain text
703
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
704 705 706 707
msgid "``` fdroid rewritemeta org.adaway ```"
msgstr "``` fdroid rewritemeta org.adaway ```"

#. type: Plain text
708
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
709 710 711 712
msgid "The following sections describe the fields recognised within the file."
msgstr "以下各部分描述了文件内可识别的字段。"

#. type: Plain text
713
#: build/_docs/md/Build_Metadata_Reference.md
714
#, fuzzy
715 716
msgid "- [Categories](#Categories)  - [Author Name](#Author-Name)  - [Author Email](#Author-Email)  - [License](#License)  - [Auto Name](#Auto-Name)  - [Name](#Name)  - [Provides](#Provides)  - [Web Site](#Web-Site)  - [Source Code](#Source-Code)  - [Issue Tracker](#Issue-Tracker)  - [Changelog](#Changelog)  - [Donate](#Donate)  - [FlattrID](#FlattrID)  - [LiberapayID](#LiberapayID)  - [Bitcoin](#Bitcoin)  - [Litecoin](#Litecoin)  - [Summary](#Summary)  - [Description](#Description)  - [Maintainer Notes](#Maintainer-Notes)  - [Repo Type](#Repo-Type)  - [Repo](#Repo)  - [Binaries](#Binaries)  - [Build](#Build)  - [AntiFeatures](#AntiFeatures)  - [Disabled](#Disabled)  - [Requires Root](#Requires-Root)  - [Archive Policy](#Archive-Policy)  - [Update Check Mode](#Update-Check-Mode)  - [Update Check Ignore](#Update-Check-Ignore)  - [Vercode Operation](#Vercode-Operation)  - [Update Check Name](#Update-Check-Name)  - [Update Check Data](#Update-Check-Data)  - [Auto Update Mode](#Auto-Update-Mode)  - [Current Version](#Current-Version)  - [Current Version Code](#Current-Version-Code)  - [No Source Since](#No-Source-Since)"
msgstr "- [Categories](#Categories)  - [Author Name](#Author-Name)  - [Author Email](#Author-Email)  - [License](#License)  - [Auto Name](#Auto-Name)  - [Name](#Name)  - [Provides](#Provides)  - [Web Site](#Web-Site)  - [Source Code](#Source-Code)  - [Issue Tracker](#Issue-Tracker)  - [Changelog](#Changelog)  - [Donate](#Donate)  - [FlattrID](#FlattrID)  - [LiberapayID](#LiberapayID)  - [Bitcoin](#Bitcoin)  - [Litecoin](#Litecoin)  - [Summary](#Summary)  - [Description](#Description)  - [Maintainer Notes](#Maintainer-Notes)  - [Repo Type](#Repo-Type)  - [Repo](#Repo)  - [Binaries](#Binaries)  - [Build](#Build)  - [AntiFeatures](#AntiFeatures)  - [Disabled](#Disabled)  - [Requires Root](#Requires-Root)  - [Archive Policy](#Archive-Policy)  - [Update Check Mode](#Update-Check-Mode)  - [Update Check Ignore](#Update-Check-Ignore)  - [Vercode Operation](#Vercode-Operation)  - [Update Check Name](#Update-Check-Name)  - [Update Check Data](#Update-Check-Data)  - [Auto Update Mode](#Auto-Update-Mode)  - [Current Version](#Current-Version)  - [Current Version Code](#Current-Version-Code)  - [No Source Since](#No-Source-Since)"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
717 718

#. type: Title ###
719
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
720 721 722 723 724
#, no-wrap
msgid "7.1 Categories<a name=\"Categories\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"

#. type: Plain text
725
#: build/_docs/md/Build_Metadata_Reference.md
726 727
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 主资源库,应从客户端或网站上现有的类别中选项,也可提议添加新类别。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
728 729

#. type: Plain text
730
#: build/_docs/md/Build_Metadata_Reference.md
731 732
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; 元素,这样至少可以显示一个类别。"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
733 734

#. type: Plain text
735
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
736 737 738 739 740
#, no-wrap
msgid "This is converted to (`<categories>`) in the XML file (_index.xml_).\n"
msgstr "在 XML 文件(_index.xml_)中,该部分转换为 (`<categories>`)。\n"

#. type: Title ###
741
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
742 743 744 745 746
#, no-wrap
msgid "7.2 Author Name<a name=\"Author-Name\"></a>"
msgstr "7.2 作者名字 Name<a name=\"Author-Name\"></a>"

#. type: Plain text
747
#: build/_docs/md/Build_Metadata_Reference.md
748 749
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 "作者名字可为全名、缩写或别名。如果存在,应显示为上游发布的名字,如版权或作者文档。该部分可省略(或留白)。"
750 751 752 753

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
754 755
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)的可本地化文本和图片"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
756 757

#. type: Plain text
758
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
759 760 761 762 763
#, no-wrap
msgid "This is converted to (`<author>`) in the XML file (_index.xml_).\n"
msgstr "在 XML 文件 (_index.xml_) 中将转换为 (`<author>`)。\n"

#. type: Title ###
764
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
765 766 767 768 769
#, no-wrap
msgid "7.3 Author Email<a name=\"Author-Email\"></a>"
msgstr "7.3 作者电子邮箱<a name=\"Author-Email\"></a>"

#. type: Plain text
770
#: build/_docs/md/Build_Metadata_Reference.md
771
msgid "The e-mail address of the author(s). This can be omitted (or left blank)."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
772 773
msgstr "作者的电子邮箱地址。可省略(或留白)。"

774 775 776
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
777 778
msgid "__Warning__: this overrides all Author Email entries [set in the app's source code](../All_About_Descriptions_Graphics_and_Screenshots)."
msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots)的可本地化文本和图片"
779

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
780
#. type: Plain text
781
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
782 783 784 785 786
#, no-wrap
msgid "This is converted to (`<email>`) in the XML file (_index.xml_).\n"
msgstr "在 XML 文件 (_index.xml_) 中将转换为 (`<email>`)。\n"

#. type: Title ###
787
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
788 789 790 791 792
#, no-wrap
msgid "7.4 License<a name=\"License\"></a>"
msgstr ""

#. type: Plain text
793
#: build/_docs/md/Build_Metadata_Reference.md
794
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
795 796 797
msgstr ""

#. type: Plain text
798
#: build/_docs/md/Build_Metadata_Reference.md
799
msgid "This field cannot represent the complexity of licenses that apply to parts of the app, or apps that have the entire thing released under more than one license."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
800 801 802
msgstr ""

#. type: Plain text
803
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
804 805 806 807 808
#, no-wrap
msgid "This is converted to (`<license>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
809
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
810 811 812 813 814
#, no-wrap
msgid "7.5 Auto Name<a name=\"Auto-Name\"></a>"
msgstr ""

#. type: Plain text
815
#: build/_docs/md/Build_Metadata_Reference.md
816
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
817 818 819
msgstr ""

#. type: Plain text
820
#: build/_docs/md/Build_Metadata_Reference.md
821
#, fuzzy
822 823
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)的可本地化文本和图片"
824 825

#. type: Plain text
826
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
827 828 829 830 831
#, no-wrap
msgid "This is converted to (`<name>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
832
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
833 834 835 836 837
#, no-wrap
msgid "7.6 Name<a name=\"Name\"></a>"
msgstr ""

#. type: Plain text
838
#: build/_docs/md/Build_Metadata_Reference.md
839
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
840 841 842
msgstr ""

#. type: Title ###
843
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
844 845 846 847 848
#, no-wrap
msgid "7.7 Provides<a name=\"Provides\"></a>"
msgstr ""

#. type: Plain text
849
#: build/_docs/md/Build_Metadata_Reference.md
850
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
851 852 853
msgstr ""

#. type: Plain text
854
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
855 856 857 858
msgid "Currently this functionality is a stub."
msgstr ""

#. type: Plain text
859
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
860 861 862 863 864
#, no-wrap
msgid "This is converted to (`<provides>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
865
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
866 867 868 869 870
#, no-wrap
msgid "7.8 Web Site<a name=\"Web-Site\"></a>"
msgstr ""

#. type: Plain text
871
#: build/_docs/md/Build_Metadata_Reference.md
872
msgid "The URL for the application’s web site. If there is no relevant web site, this can be omitted (or left blank)."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
873 874 875
msgstr ""

#. type: Plain text
876
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
877 878 879 880 881
#, no-wrap
msgid "This is converted to (`<web>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
882
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
883 884 885 886 887
#, no-wrap
msgid "7.9 Source Code<a name=\"Source-Code\"></a>"
msgstr ""

#. type: Plain text
888
#: build/_docs/md/Build_Metadata_Reference.md
889
msgid "The URL to view or obtain the application’s source code. This should be something human-friendly. Machine-readable source-code is covered in the ’Repo’ field."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
890 891 892
msgstr ""

#. type: Plain text
893
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
894 895 896 897 898
#, no-wrap
msgid "This is converted to (`<source>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
899
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
900 901 902 903 904
#, no-wrap
msgid "7.10 Issue Tracker<a name=\"Issue-Tracker\"></a>"
msgstr ""

#. type: Plain text
905
#: build/_docs/md/Build_Metadata_Reference.md
906
msgid "The URL for the application’s issue tracker. Optional, since not all applications have one."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
907 908 909
msgstr ""

#. type: Plain text
910
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
911 912 913 914 915
#, no-wrap
msgid "This is converted to (`<tracker>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
916
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
917 918 919 920 921
#, no-wrap
msgid "7.11 Changelog<a name=\"Changelog\"></a>"
msgstr ""

#. type: Plain text
922
#: build/_docs/md/Build_Metadata_Reference.md
923
msgid "The URL for the application’s changelog. Optional, since not all applications have one."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
924 925 926
msgstr ""

#. type: Plain text
927
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
928 929 930 931 932
#, no-wrap
msgid "This is converted to (`<changelog>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
933
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
934 935 936 937 938
#, no-wrap
msgid "7.12 Donate<a name=\"Donate\"></a>"
msgstr ""

#. type: Plain text
939
#: build/_docs/md/Build_Metadata_Reference.md
940
msgid "The URL to donate to the project. This should be the project’s donate page if it has one."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
941 942 943
msgstr ""

#. type: Plain text
944
#: build/_docs/md/Build_Metadata_Reference.md
945
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’."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
946 947 948
msgstr ""

#. type: Plain text
949
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
950 951 952 953 954
#, no-wrap
msgid "This is converted to (`<donate>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
955
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
956 957 958 959 960
#, no-wrap
msgid "7.13 FlattrID<a name=\"FlattrID\"></a>"
msgstr ""

#. type: Plain text
961
#: build/_docs/md/Build_Metadata_Reference.md
962
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
963 964 965
msgstr ""

#. type: Plain text
966
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
967 968 969 970 971
#, no-wrap
msgid "This is converted to (`<flattr>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
972
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
973
#, no-wrap
974 975 976 977 978
msgid "7.14 LiberapayID<a name=\"LiberapayID\"></a>"
msgstr ""

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
979
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
980 981
msgstr ""

982 983 984 985 986 987 988 989 990 991 992 993
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy, no-wrap
msgid "This is converted to (`<liberapay>`) in the XML file (_index.xml_).\n"
msgstr "在 XML 文件 (_index.xml_) 中将转换为 (`<email>`)。\n"

#. type: Title ###
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy, no-wrap
msgid "7.15 Bitcoin<a name=\"Bitcoin\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
994
#. type: Plain text
995
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
996 997 998 999
msgid "A bitcoin address for donating to the project."
msgstr ""

#. type: Plain text
1000
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1001 1002 1003 1004 1005
#, no-wrap
msgid "This is converted to (`<bitcoin>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
1006
#: build/_docs/md/Build_Metadata_Reference.md
1007 1008 1009
#, fuzzy, no-wrap
msgid "7.16 Litecoin<a name=\"Litecoin\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1010 1011

#. type: Plain text
1012
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1013 1014 1015 1016
msgid "A litecoin address for donating to the project."
msgstr ""

#. type: Plain text
1017
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1018 1019 1020 1021 1022
#, no-wrap
msgid "This is converted to (`<litecoin>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
1023
#: build/_docs/md/Build_Metadata_Reference.md
1024 1025 1026
#, fuzzy, no-wrap
msgid "7.17 Summary<a name=\"Summary\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1027 1028

#. type: Plain text
1029
#: build/_docs/md/Build_Metadata_Reference.md
1030
msgid "A brief summary of what the application is. Since the summary is only allowed one line on the list of the F-Droid client, keeping it to within 80 characters will ensure it fits most screens."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1031 1032
msgstr ""

1033 1034 1035
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
1036 1037
msgid "__Warning__: this overrides all Summary entries [set in the app's source code](../All_About_Descriptions_Graphics_and_Screenshots)."
msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots)的可本地化文本和图片"
1038

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1039
#. type: Plain text
1040
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1041 1042 1043 1044 1045
#, no-wrap
msgid "This is converted to (`<summary>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
1046
#: build/_docs/md/Build_Metadata_Reference.md
1047 1048 1049
#, fuzzy, no-wrap
msgid "7.18 Description<a name=\"Description\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1050 1051

#. type: Plain text
1052
#: build/_docs/md/Build_Metadata_Reference.md
1053
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 ’.’."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1054 1055 1056
msgstr ""

#. type: Plain text
1057
#: build/_docs/md/Build_Metadata_Reference.md
1058
msgid "Basic MediaWiki-style formatting can be used. Leaving a blank line starts a new paragraph. Surrounding text with `''` make it italic, and with `'''` makes it bold."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1059 1060 1061
msgstr ""

#. type: Plain text
1062
#: build/_docs/md/Build_Metadata_Reference.md
1063
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1064 1065 1066
msgstr ""

#. type: Plain text
1067
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1068 1069 1070 1071
msgid "Links to web addresses can be done using `[http://example.com Text]`."
msgstr ""

#. type: Plain text
1072
#: build/_docs/md/Build_Metadata_Reference.md
1073
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1074 1075 1076
msgstr ""

#. type: Plain text
1077
#: build/_docs/md/Build_Metadata_Reference.md
1078
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)."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1079 1080
msgstr ""

1081 1082 1083 1084 1085 1086 1087 1088
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
msgid "4000 char limit"
msgstr ""

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, fuzzy
1089 1090
msgid "__Warning__: this overrides all Description entries [set in the app's source code](../All_About_Descriptions_Graphics_and_Screenshots)."
msgstr "[嵌入在应用源码中](../All_About_Descriptions_Graphics_and_Screenshots)的可本地化文本和图片"
1091

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1092
#. type: Plain text
1093
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1094 1095 1096 1097 1098
#, no-wrap
msgid "This is converted to (`<desc>`) in the XML file (_index.xml_).\n"
msgstr ""

#. type: Title ###
1099
#: build/_docs/md/Build_Metadata_Reference.md
1100 1101 1102
#, fuzzy, no-wrap
msgid "7.19 Maintainer Notes<a name=\"Maintainer-Notes\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1103 1104

#. type: Plain text
1105
#: build/_docs/md/Build_Metadata_Reference.md
1106
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."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1107 1108 1109
msgstr ""

#. type: Plain text
1110
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1111 1112 1113 1114
msgid "This information is also published to the wiki."
msgstr ""

#. type: Title ###
1115
#: build/_docs/md/Build_Metadata_Reference.md
1116 1117 1118
#, fuzzy, no-wrap
msgid "7.20 Repo Type<a name=\"Repo-Type\"></a>"
msgstr "7.2 作者名字 Name<a name=\"Author-Name\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1119 1120

#. type: Plain text
1121
#: build/_docs/md/Build_Metadata_Reference.md
1122
msgid "The type of repository - for automatic building from source. If this is not specified, automatic building is disabled for this application.  Possible values are:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1123 1124 1125
msgstr ""

#. type: Bullet: '-   '
1126
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1127 1128 1129 1130
msgid "‘git’"
msgstr ""

#. type: Bullet: '-   '
1131
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1132 1133 1134 1135
msgid "‘svn’"
msgstr ""

#. type: Bullet: '-   '
1136
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1137 1138 1139 1140
msgid "‘git-svn’"
msgstr ""

#. type: Bullet: '-   '
1141
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1142 1143 1144 1145
msgid "‘hg’"
msgstr ""

#. type: Bullet: '-   '
1146
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1147 1148 1149 1150
msgid "‘bzr’"
msgstr ""

#. type: Bullet: '-   '
1151
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1152 1153 1154 1155
msgid "‘srclib’"
msgstr ""

#. type: Title ###
1156
#: build/_docs/md/Build_Metadata_Reference.md
1157 1158 1159
#, fuzzy, no-wrap
msgid "7.21 Repo<a name=\"Repo\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1160 1161

#. type: Plain text
1162
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1163 1164 1165 1166
msgid "The repository location. Usually a git: or svn: URL, for example."
msgstr ""

#. type: Plain text
1167
#: build/_docs/md/Build_Metadata_Reference.md
1168
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"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1169 1170 1171
msgstr ""

#. type: Plain text
1172
#: build/_docs/md/Build_Metadata_Reference.md
1173
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`."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1174 1175 1176
msgstr ""

#. type: Title ###
1177
#: build/_docs/md/Build_Metadata_Reference.md
1178 1179 1180
#, fuzzy, no-wrap
msgid "7.22 Binaries<a name=\"Binaries\"></a>"
msgstr "7.1 类别<a name=\"Categories\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1181 1182

#. type: Plain text
1183
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1184 1185 1186 1187
msgid "The location of binaries used in verification process."
msgstr ""

#. type: Plain text
1188
#: build/_docs/md/Build_Metadata_Reference.md
1189
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`"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1190 1191 1192
msgstr ""

#. type: Plain text
1193
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1194 1195 1196 1197
msgid "F-Droid will use upstream binaries if the verification succeeded."
msgstr ""

#. type: Title ###
1198
#: build/_docs/md/Build_Metadata_Reference.md
1199 1200 1201
#, fuzzy, no-wrap
msgid "7.23 Build<a name=\"Build\"></a>"
msgstr "7.3 作者电子邮箱<a name=\"Author-Email\"></a>"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1202 1203

#. type: Plain text
1204
#: build/_docs/md/Build_Metadata_Reference.md
1205
msgid "Any number of these fields can be present, each specifying a version to automatically build from source. The value is a comma-separated list.  For example:"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1206 1207 1208
msgstr ""

#. type: Plain text
1209
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1210 1211 1212 1213
msgid "‘Build:1.2,12’"
msgstr ""

#. type: Plain text
1214
#: build/_docs/md/Build_Metadata_Reference.md
1215
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`."
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1216 1217 1218
msgstr ""

#. type: Plain text
1219
#: build/_docs/md/Build_Metadata_Reference.md
1220
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):"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1221 1222 1223
msgstr ""

#. type: Plain text
1224
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1225 1226 1227 1228 1229
#, no-wrap
msgid "`disable=<message>`\n"
msgstr ""

#. type: Plain text
1230
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1231 1232 1233 1234 1235 1236 1237 1238
#, no-wrap
msgid ""
":   Disables this build, giving a reason why. (For backwards\n"
"    compatibility, this can also be achieved by starting the commit ID\n"
"    with ’!’)\n"
msgstr ""

#. type: Plain text
1239
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250
#, no-wrap
msgid ""
"    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
1251
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1252 1253 1254 1255 1256
#, no-wrap
msgid "`subdir=<path>`\n"
msgstr ""

#. type: Plain text
1257
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1258 1259 1260 1261 1262 1263 1264
#, no-wrap
msgid ""
":   Specifies to build from a subdirectory of the checked out source\n"
"    code. Normally this directory is changed to before building,\n"
msgstr ""

#. type: Plain text
1265
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1266 1267 1268 1269
msgid "`submodules=yes`"
msgstr ""

#. type: Plain text
1270
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1271 1272 1273 1274 1275 1276 1277 1278
#, no-wrap
msgid ""
":   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 ""

1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
msgid "`sudo=xxxx`"
msgstr ""

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, no-wrap
msgid ""
":   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 ""

1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319
#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, no-wrap
msgid "`timeout=<seconds>`\n"
msgstr ""

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, no-wrap
msgid ""
":   Time limit for this build (in seconds).  After time is up,\n"
"    buildserver VM is forcefully terminated.  The default is 7200\n"
"    (2 hours); 0 means no limit.\n"
msgstr ""

#. type: Plain text
#: build/_docs/md/Build_Metadata_Reference.md
#, no-wrap
msgid ""
"    Limitation is applied only in server mode, i.e. when `fdroid build`\n"
"    is invoked with the `--server` option.\n"
msgstr ""

Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1320
#. type: Plain text
1321
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1322 1323 1324 1325
msgid "`init=xxxx`"
msgstr ""

#. type: Plain text
1326
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1327 1328
#, no-wrap
msgid ""
1329
":   Like ’prebuild’, but runs on the source code BEFORE any other\n"
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1330 1331 1332 1333
"    processing takes place.\n"
msgstr ""

#. type: Plain text
1334
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1335 1336 1337 1338 1339 1340 1341 1342 1343 1344
#, no-wrap
msgid ""
"    You can use \\$\\$SDK\\$\\$, \\$\\$NDK\\$\\$, \\$\\$MVN3\\$\\$ and \\$\\$QT\\$\\$ to\n"
"    substitute the paths to the android SDK and NDK directories, maven 3\n"
"    executable, and Qt SDK directory respectively. The following\n"
"    per-build variables are available likewise: \\$\\$VERSION\\$\\$,\n"
"    \\$\\$VERCODE\\$\\$ and \\$\\$COMMIT\\$\\$.\n"
msgstr ""

#. type: Plain text
1345
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1346 1347 1348 1349
msgid "`oldsdkloc=yes`"
msgstr ""

#. type: Plain text
1350
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1351 1352 1353 1354 1355 1356 1357 1358 1359 1360
#, no-wrap
msgid ""
":   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
1361
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1362 1363 1364 1365 1366
#, no-wrap
msgid "`target=<target>`\n"
msgstr ""

#. type: Plain text
1367
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378
#, no-wrap
msgid ""
":   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
1379
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1380 1381 1382 1383 1384 1385 1386 1387 1388 1389
#, no-wrap
msgid ""
"    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
1390
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1391 1392 1393 1394 1395
#, no-wrap
msgid "`update=<auto/dirs>`\n"
msgstr ""

#. type: Plain text
1396
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1397 1398 1399 1400 1401 1402 1403 1404 1405
#, no-wrap
msgid ""
":   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
1406
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1407 1408 1409 1410 1411 1412 1413
#, no-wrap
msgid ""
"    Default value is ’`auto`’, which recursively uses the paths in\n"
"    project.properties to find all the subprojects to update.\n"
msgstr ""

#. type: Plain text
1414
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1415 1416 1417 1418 1419 1420 1421
#, no-wrap
msgid ""
"    Otherwise, the value can be a comma-separated list of directories in\n"
"    which to run ’android update’ relative to the application directory.\n"
msgstr ""

#. type: Plain text
1422
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1423 1424 1425 1426
msgid "`encoding=xxxx`"
msgstr ""

#. type: Plain text
1427
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1428 1429 1430 1431 1432 1433 1434 1435 1436 1437
#, no-wrap
msgid ""
":   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
1438
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1439 1440 1441 1442
msgid "`forceversion=yes`"
msgstr ""

#. type: Plain text
1443
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1444 1445 1446 1447 1448 1449 1450
#, no-wrap
msgid ""
":   If specified, the package version in AndroidManifest.xml is replaced\n"
"    with the version name for the build as specified in the metadata.\n"
msgstr ""

#. type: Plain text
1451
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
#, no-wrap
msgid ""
"    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
1462
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1463 1464 1465 1466
msgid "`forcevercode=yes`"
msgstr ""

#. type: Plain text
1467
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1468 1469 1470 1471 1472 1473 1474
#, no-wrap
msgid ""
":   If specified, the package version code in the AndroidManifest.xml is\n"
"    replaced with the version code for the build. See also forceversion.\n"
msgstr ""

#. type: Plain text
1475
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1476 1477 1478 1479 1480
#, no-wrap
msgid "`rm=<path1>[,<path2>,...]`\n"
msgstr ""

#. type: Plain text
1481
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1482 1483 1484 1485 1486 1487 1488 1489 1490 1491
#, no-wrap
msgid ""
":   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
1492
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1493 1494 1495 1496 1497 1498 1499
#, no-wrap
msgid ""
"    Multiple files/directories can be specified by separating them with\n"
"    ’,’. Directories will be recursively deleted.\n"
msgstr ""

#. type: Plain text
1500
#: build/_docs/md/Build_Metadata_Reference.md
Hans-Christoph Steiner's avatar
Hans-Christoph Steiner committed
1501 1502 1503 1504 1505
#, no-wrap
msgid "`extlibs=<lib1>[,<lib2>,...]`\n"
msgstr ""

#. type: Plain text