Commit 63d3f786 authored by Tails developers's avatar Tails developers
Browse files

Merge remote-tracking branch 'origin/master' into devel

Conflicts:
	wiki/src/doc/first_steps.index.fr.po
	wiki/src/doc/first_steps/bug_reporting/tails_does_not_start.de.po
	wiki/src/doc/first_steps/bug_reporting/tails_does_not_start.es.po
	wiki/src/doc/first_steps/bug_reporting/tails_does_not_start.fr.po
	wiki/src/doc/first_steps/bug_reporting/tails_does_not_start.pt.po
	wiki/src/doc/first_steps/persistence/configure.de.po
	wiki/src/doc/first_steps/persistence/configure.es.po
	wiki/src/doc/first_steps/persistence/configure.pt.po
	wiki/src/doc/first_steps/usb_installation.de.po
	wiki/src/doc/first_steps/usb_installation.es.po
	wiki/src/doc/first_steps/usb_installation.fr.po
	wiki/src/doc/first_steps/usb_installation.pt.po
	wiki/src/doc/first_steps/usb_upgrade.de.po
	wiki/src/doc/first_steps/usb_upgrade.es.po
	wiki/src/doc/first_steps/usb_upgrade.fr.po
	wiki/src/doc/first_steps/usb_upgrade.pt.po
parents 41af2984 0bd8b948
......@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2013-08-19 21:22+0300\n"
"POT-Creation-Date: 2013-10-11 17:31+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -22,9 +22,12 @@ msgid "[[!meta title=\"About\"]]\n"
msgstr "[[!meta title=\"Über Tails\"]]\n"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "> **amnesiac**, *noun*:<br/>\n"
#| "> forgetfulness; loss of long-term memory.\n"
msgid ""
"> **amnesiac**, *noun*:<br/>\n"
"> **amnesia**, *noun*:<br/>\n"
"> forgetfulness; loss of long-term memory.\n"
msgstr ""
"> **Amne**|**sie** (*die; -, Nomen*)<br/>\n"
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"POT-Creation-Date: 2013-08-19 21:22+0300\n"
"POT-Creation-Date: 2013-10-11 17:31+0300\n"
"PO-Revision-Date: 2012-02-29 00:49-0600\n"
"Last-Translator: Alfredo Rubio <alfrb76@hotmail.com>\n"
"Language-Team: Spanish <LL@li.org>\n"
......@@ -24,9 +24,12 @@ msgid "[[!meta title=\"About\"]]\n"
msgstr "[[!meta title=\"Acerca de Tails\"]]\n"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "> **amnesiac**, *noun*:<br/>\n"
#| "> forgetfulness; loss of long-term memory.\n"
msgid ""
"> **amnesiac**, *noun*:<br/>\n"
"> **amnesia**, *noun*:<br/>\n"
"> forgetfulness; loss of long-term memory.\n"
msgstr ""
"> **amnésico**, *sustantivo*:<br/>\n"
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: tails-about-fr\n"
"POT-Creation-Date: 2013-09-09 13:08+0200\n"
"POT-Creation-Date: 2013-10-11 17:31+0300\n"
"PO-Revision-Date: 2013-08-21 11:42+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
......@@ -22,9 +22,12 @@ msgid "[[!meta title=\"About\"]]\n"
msgstr "[[!meta title=\"À propos\"]]\n"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "> **amnesiac**, *noun*:<br/>\n"
#| "> forgetfulness; loss of long-term memory.\n"
msgid ""
"> **amnesiac**, *noun*:<br/>\n"
"> **amnesia**, *noun*:<br/>\n"
"> forgetfulness; loss of long-term memory.\n"
msgstr ""
"> **amnésie**, *nom*:<br/>\n"
......@@ -271,9 +274,9 @@ msgid ""
"span>, the Linux standard for disk-encryption."
msgstr ""
"[[Chiffrez votre clé USB ou votre disque dur externe|doc/"
"encryption_and_privacy/encrypted_volumes]] avec <span class=\"definition"
"\">[[!wikipedia Linux_Unified_Key_Setup desc=\"LUKS\"]]</span>, le standard "
"de Linux en matière de chiffrement de volume."
"encryption_and_privacy/encrypted_volumes]] avec <span class=\"definition\">"
"[[!wikipedia Linux_Unified_Key_Setup desc=\"LUKS\"]]</span>, le standard de "
"Linux en matière de chiffrement de volume."
#. type: Bullet: ' - '
msgid ""
......
[[!meta title="About"]]
> **amnesiac**, *noun*:<br/>
> **amnesia**, *noun*:<br/>
> forgetfulness; loss of long-term memory.
> **incognito**, *adjective & adverb*:<br/>
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"POT-Creation-Date: 2013-08-19 21:22+0300\n"
"POT-Creation-Date: 2013-10-11 17:31+0300\n"
"PO-Revision-Date: 2012-10-26 13:43-0300\n"
"Last-Translator: Tails Developers <amnesia@boum.org>\n"
"Language-Team: Portuguese <LL@li.org>\n"
......@@ -24,9 +24,12 @@ msgid "[[!meta title=\"About\"]]\n"
msgstr "[[!meta title=\"Sobre\"]]\n"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "> **amnesiac**, *noun*:<br/>\n"
#| "> forgetfulness; loss of long-term memory.\n"
msgid ""
"> **amnesiac**, *noun*:<br/>\n"
"> **amnesia**, *noun*:<br/>\n"
"> forgetfulness; loss of long-term memory.\n"
msgstr ""
"> **amnésico**, *adjetivo*:<br/>\n"
......
......@@ -43,8 +43,18 @@ would fix this problem on such hardware.
* ArchLinux' page about
[UEFI Bootloaders](https://wiki.archlinux.org/index.php/UEFI_Bootloaders)
* syslinux 6 (released in June 2013) has UEFI support. Debian Live's
UEFI support will be based on it. Early users [discussion and
hints](http://www.marshut.com/kyxhm/question-about-syslinux-efi-alpha-version.html).
UEFI support will be based on it.
- Early users [discussion and
hints](http://www.marshut.com/kyxhm/question-about-syslinux-efi-alpha-version.html).
- It seems that syslinux does not do very well with CD booting and
UEFI: a FAT32 ElTorito image (with kernel, initrd and boot loader
configuration) must be embedded into the ISO9660. syslinux can't
read any other file system than the one it was booted from, so we
have to duplicate these files. Also, this image must be smaller
than 32MB. Indeed,
[Knoppix](http://www.knopper.net/knoppix/index-en.html) 7.2 uses
syslinux 6, and supports "UEFI-Boot (DVD: 32 and 64bit, CD: only
32bit) *after installation on USB flash disk*".
* Kanotix, based on Debian Live and GRUB2, has a isohybrid setup that
allows "multi-hybrid booting" as CD-ROM (EFI or El Torito) or as
a hard-drive (e.g. a USB pendrive) on Intel-Macs (EFI) and PCs (EFI
......@@ -57,6 +67,11 @@ would fix this problem on such hardware.
* [Booting a Self-signed Linux
Kernel](http://www.kroah.com/log/blog/2013/09/02/booting-a-self-signed-linux-kernel/),
by Greg Kroah-Hartman
* [Ubuntu Privacy Remix](https://www.privacy-cd.org/)'s next release
(UPR 12.04r1) will support UEFI; a beta is available; they copied
the solution from Ubuntu 13.10 (beta): the shim bootloader and
a corresponding GRUB binary which passes secure boot. See their
[build script](https://www.privacy-cd.org/en/tutorials/build-your-own-cd/79).
Matthew Garrett:
......
Tickets: [[!tails_ticket 6165]] and [[!tails_ticket 6173]].
[[!meta title="Contribute section"]]
[[!toc]]
How to restructure the huge set of links from the second half of the contribute
page? Here is a proposal.
<div class="contribute-roles-1">
<h2>User</h2>
<div class="contribute-role" id="user">
<ul>
<li>Report bugs</li>
<li>Provide needed input to developers</li>
<li>Help other Tails users</li>
</ul>
</div>
</div>
Reference documents
===================
<div class="contribute-roles-1">
<h2>Donate</h2>
<div class="contribute-role" id="donate">
<ul>
<li>Make a donation</li>
</ul>
</div>
</div>
- [[Design documents|contribute/design]]
- [[Blueprints|blueprint]]
- [[Merge policy|contribute/merge_policy]]
<div class="contribute-roles-3">
<h2>Contribute with your language skills</h2>
<div class="contribute-role" id="content-writer">
<h3>Writer</h3>
<ul>
<li>Improve documentation</li>
<li>Write press releases</li>
</ul>
</div>
<div class="contribute-role" id="translator">
<h3>Translator</h3>
<ul>
<li>Improve Tails in your own language</li>
</ul>
</div>
<div class="contribute-role" id="speaker">
<h3>Speaker</h3>
<ul>
<li>Talk at events</li>
</ul>
</div>
</div>
Tools for contributors
======================
<div class="contribute-roles-3">
<h2>Contribute with your technical skills</h2>
<div class="contribute-role" id="developer">
<h3>Software developer</h3>
<ul>
<li>Fix a bug</li>
<li>Implement a feature</li>
</ul>
</div>
<div class="contribute-role" id="sysadmin">
<h3>System administrator</h3>
<ul>
<li>Run a BitTorrent seed</li>
<li>Run a HTTP mirror</li>
</ul>
</div>
<div class="contribute-role" id="designer">
<h3>Designer</h3>
<ul>
<li>Improve the website</li>
</ul>
</div>
</div>
- Source code: [[Git repositories|contribute/git]]
- [Redmine bug tracker](https://labs.riseup.net/code/projects/tails/issues?query_id=108)
- [Roadmap](https://labs.riseup.net/code/projects/tails/roadmap)
- [Easy tasks](https://labs.riseup.net/code/projects/tails/issues?query_id=112)
- Tasks by type of work:
[code](https://labs.riseup.net/code/projects/tails/issues?query_id=119),
[documentation](https://labs.riseup.net/code/projects/tails/issues?query_id=118),
[website](https://labs.riseup.net/code/projects/tails/issues?query_id=115),
[test](https://labs.riseup.net/code/projects/tails/issues?query_id=116),
[sysadmin](https://labs.riseup.net/code/projects/tails/issues?query_id=113)
- [[Building a Tails image|contribute/build]]
- [[Build the website|contribute/build/website]]
- [[Customize Tails|contribute/customize]]
- [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom Debian packages
- [[APT repository|contribute/APT_repository]], to store our custom Debian packages
Release cycle
=============
- [[Release schedule|contribute/release_schedule]]
- [[Release process|contribute/release_process]]
- [[Test suite|contribute/release_process/test]]
Relationship with upstream
==========================
- [[Relationship with upstream|contribute/relationship_with_upstream]]
- [Bugs that we are interested in on the Debian BTS](http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=tails-dev@boum.org)
Collective process
==================
- [[Meetings|contribute/meetings]], and minutes from past meetings
- [[Criteria for easy tasks|contribute/working_together/criteria_for_easy_tasks]]
- [[Document progress|contribute/working_together/document_progress]]
- Roles
- [[Front desk|contribute/working_together/roles/front_desk]]
- [[Release manager|contribute/working_together/roles/release_manager]]
- [[Ticket gardener|contribute/working_together/roles/ticket_gardener]]
- [[Welcome and annoying nitpicker|contribute/working_together/roles/welcome_and_annoying_nitpicker]]
Talk with us
============
*As it is*
*Left over*
===========
- *FAQ (probably merged into /faq)*
- *l10n_tricks (move into translator role?)*
[[!toc levels=2]]
**Ticket**: [[!tails_ticket 6370 desc="#6370"]]
Current status
==============
The `feature/ff24` builds, boots and basically works fine.
Needs to be checked
===================
Prefs in a weird state
----------------------
We already have a list of prefs that are in a weird state
([[!tails_ticket 5768]]). It can be useful to check what follows, and
perhaps the move to FF24 would be a great time to clean them up,
update the list, and if possible finally empty it and be done with
that task.
Differing user-set prefs
------------------------
* `browser.startup.homepage_override.buildID`
* `browser.startup.homepage_override.mstone`
New(ly) user-set prefs
----------------------
* `dom.mozApps.used`
* `extensions.ui.*`
* `pdfjs.*`
* `plugin.disable_full_page_plugin_for_types`
Torbrowser prefs bundled into omni.ja
-------------------------------------
The `0022-Tor-Browser-s-Firefox-preference-overrides.patch` Torbrowser
patch bundles their prefs directly into `omni.ja`.
Most of them are probably just what we want, so we could just drop
them from our own `/etc/iceweasel/{pref/iceweasel.js,profile/user.js`:
this would be a nice first step for [[!tails_ticket 5706]].
Some others default Torbrowser prefs may not be what we want, and then
we have to check that they are correctly overriden by our own prefs.
Known working
=============
Basic fingerprinting
--------------------
A build from `feature/ff24` is seen by ip-check.info just the same way
is Tails 0.20.1's browser.
This diff is collapsed.
......@@ -45,6 +45,10 @@ Usability study
We may want to ask input from UX experts, and/or pay one to run the
usability study.
### References
http://design.canonical.com/2013/08/usability-testing-how-do-we-design-effective-tasks/
Prototypes
==========
......
[[!toc levels=2]]
# Installation
This is currently easiest to set up (to avoid backporting, see below)
on a Debian Sid box with libvirt installed:
sudo apt-get install vagrant
vagrant plugin install vagrant-libvirt
After this, the Tails branch `feature/vagrant-libvirt` makes
everything work like when Vagrant was using Virtualbox, except basebox
building (see below).
# Issues (and their workarounds) with vagrant-libvirt
## Packaging
`vagrant-libvirt` is not packaged in Debian yet, so we need to RFP it,
and then have it backported to Wheezy.
Also, some of `vagrant-libvirt`'s dependencies are too old in Wheezy:
* `ruby-fog >= 1.10.0`: Sid has 1.12.1 and backporting is trivial
(i.e. just rebuild in a Wheezy chroot).
* `vagrant >= 1.1`: Sid has 1.2.2, backporting is trivial but also
requires packporting the follwing dependencies:
- `ruby-childprocess >= 0.3.7`: Sid has 0.3.9 and backporting is
trivial.
- `ruby-net-scp >= 1.1.0`: Sid has 1.1.1 and backporting is almost
trivial; tests are failing due to errors loading `ruby-mocha`.
This can probably be fixed in
`debian/patches/disable-rubygems-in-tests.patch` by requiring
`mocha` instead of `mocha/setup` or similar (see the difference
between this patch in the Wheezy and Sid sources). It of course
builds if tests are disabled (i.e. `DEB_BUILD_OPTIONS=nocheck`).
- `ruby-net-ssh >= 2.6.6`: Sid has 2.6.8, and backporting is
identical to backporting `ruby-net-scp`, described above.
## Syncing (Tails' Git and built images)
When using the libvirt provider in Vagrant, "synced folders" are
simply `rsync`:ed into the VM's filesystem, unlike with Vagrant with
Virtualbox, which uses its shared folder feature. The `rsync:`ing only
happens at VM start (not at VM stop; Vagrant specifies this as legit
behaviour, so it's not a bug), so any changes made to Tails' git after
that are not pulled into `/amnesia.git` (a VM restart is required),
and the built image can't be synced to the host using `/vagrant`
(remember, syncing back to host never happens). The current
implementation therefore doesn't rely on synced folders but instead:
* manually uploads Tails' git before starting the build using
Vagrant's upload feature.
* manually downloads the built image after building is complete
using Vagrant's download feature.
Proper synced folders (bidirectional, continously "syncing", like
Virtualbox' shared folders) would be preferable (faster, less disk
usage (size of Tails' .git) in build guest, less code complexity,
etc.), so we'd like this
[upstream issue](https://github.com/pradels/vagrant-libvirt/issues/7)
to get fixed.
It should be noted that the libvirt provider does support shares using
NFS, which would give synced folders with the properties we want, but
this requires configuring an NFS server on the host box, which makes
this approach too complicated.
## Get rid of the Vagrant "verified downloads" monkeypatch
We monkeypatch Vagrant to verify the integrity of the downloaded
basebox in `vagrant/lib/vagrant_verified_download.rb`. Due to heavy
code reorganizing of Vagrant beween 1.0.x and 1.2.x, the monkeypatch
isn't very pretty or convenient any more. Although the current one
works, it's very fragile, but so are monkeypatches in general. A
proper patch has been written and submitted upstream
([issue](https://github.com/mitchellh/vagrant/issues/1124), [pull
request](https://github.com/tails-developers/vagrant/pull/1)) and, if
accepted, we hopefully can get the next Vagrant containing the patch
backported to Wheezy.
## Basebox building
The squeeze definition on Tails branch `feature/vagrant-libvirt` can
be successfully built using KVM (`veewee kvm build squeeze`) with the
current release of `veewee` (0.3.7, installed per our
[[current instructions|contribute/design/vagrant]]), but:
* `veewee kvm export` is not implemented.
* the box image is created in the `raw` format, so it consumes the
full 10 GiB disk space, and is incompatible with `vagrant-libvirt`,
which only supports `qcow2`.
Both of these issues are fixed in `veewee`'s Git, but getting it to
run/install brought gem dependency hell onto my machine, so I've been
unable to test it. Hopefully this will be easier after next realse (so
there's a Ruby gem). Having the next version of `veewee` in Debian
(and backported to Wheezy) would of course be ideal
([RFP](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658863)).
Until a `vagrant-libvirt`-compatible `veewee` is released, basebox
building won't be fully automatic using `rake` any more. One will have
to pick either of steps `1.{a,b,c}` below to create a disk image, and
then step `2` to package it into a `.box` (personally I went with `1c
+ 2` as that doesn't require any fiddling with Ruby gems):
### 1.a How to fix images built with veewee 0.3.7 using KVM
For now we can manually convert the `raw` image created by `veewee`
like this (note: `squeeze.img` below can be found in your libvirt pool's
directory):
qemu-img convert -c -O qcow2 squeeze.img box.img
### 1.b How to fix images built with veewee using Virtualbox
Since Virtualbox currently is better supported (both be `veewee` and
our Rakefile) this may be an easier approach. The disk image can be
extracted from the exported `.box` with `tar xf` (or `tar xzf`), and
if we assume it's named `box.vmdk` we can make it compatible with
`vagrant-libvirt` like this:
qemu-img convert -c -O qcow2 box.vmdk box.img
### 1.c How to fix our old squeeze.box
We can actually use the disk image `box-disk1.vmdk` from our
[old `squeeze.box`](http://dl.amnesia.boum.org/tails/project/vagrant/squeeze.box),
unpack it with `tar xf`). While libvirt/KVM supports the vmdk format I
recommend converting it to a better supported one (I/O errors are
common in libvirt/KVM when using vmdk):
qemu-img convert -c -O qcow2 box-disk1.vmdk box-disk1.img
Next, setup a `x86_64` domain in libvirt and boot it with a virtual
hard drive backed by `box-disk1.img`, and install the new
dependencies, which actually only is `rsync`, and while we're at it we
might just as well update the system and take steps to reduce the
image size:
unset HISTFILE
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install rsync
sudo apt-get remove virtualbox*
sudo apt-get autoremove
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo rm -f /var/lib/dhcp/*.leases
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY
date | sudo tee /etc/vagrant_box_build_time
sudo halt
Note that even though our `box-disk1.img` is in `qcow2` format
already, we want to re-convert it using `qemu-img` to reduce the image
size (that's why we run `dd` in the VM above):
qemu-img convert -c -O qcow2 box-disk1.img box.img
### 2 How to package the .box
This is how we package `box.img` from any of the previous steps into a
`vagrant-libvirt`-compatible `.box`:
echo 'Vagrant.require_plugin "vagrant-libvirt"' > Vagrantfile
cat > metadata.json << END
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 10
}
END
tar czf squeeze-libvirt.box ./metadata.json ./Vagrantfile ./box.img
To test it, temporarily set (overwriting existing values):
config.vm.box_url = 'file:///path/to/squeeze-libvirt.box'
config.vm.box_checksum = '<sha256 checksum of squeeze-libvirt.box>'
in `vagrant/Vagrantfile`.
......@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2013-09-19 20:56+0300\n"
"POT-Creation-Date: 2013-10-11 23:40+0300\n"
"PO-Revision-Date: 2013-04-05 14:08+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -16,83 +16,102 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: Content of: outside any tag (error?)
msgid "[[!meta title=\"Contributing to Tails\"]]"
#. type: Plain text
#, fuzzy, no-wrap
#| msgid "[[!meta title=\"Contributing to Tails\"]]"
msgid "[[!meta title=\"Contributing to Tails\"]]\n"
msgstr "[[!meta title=\"Bei Tails mitmachen\"]]"
#. type: Content of: <div><div><p>
msgid "There are many ways <strong>you</strong> can contribute to Tails:"
msgstr "Es gibt viele Möglichkeiten wie Sie zu Tails beitragen können:"
#. type: Content of: <div><div><p><ul><li>
#. type: Plain text
#, fuzzy
#| msgid "[[Improve documentation|contribute/how/documentation]]"
msgid "[[Make a donation|contribute/how/donate]]"
msgstr "[[Verbessern Sie die Dokumentation|contribute/how/documentation]]"
#| msgid "There are many ways <strong>you</strong> can contribute to Tails:"
msgid "There are many ways **you** can contribute to Tails."
msgstr "Es gibt viele Möglichkeiten wie Sie zu Tails beitragen können:"
#. type: Content of: <div><div><p><ul><li>
msgid "[[Test our release candidates|contribute/how/testing]]"
#. type: Plain text
#, no-wrap
msgid ""
"<div class=\"contribute-roles-1\">\n"
"<h2>User</h2>\n"
"<div class=\"contribute-role\" id=\"user\">\n"
" <ul>\n"
" <li>[[Report bugs|doc/first_steps/bug_reporting]]</li>\n"
" <li>[[Provide needed input to developers|contribute/how/input]]</li>\n"
" <li>[[Help other Tails users|contribute/how/help]]</li>\n"
" </ul>\n"
"</div>\n"
"</div>\n"
msgstr ""
"[[Testen Sie unsere Release Candidates (Vorabveröffentlichungen)|contribute/"
"how/testing]]"
#. type: Content of: <div><div><p><ul><li>
#, fuzzy
#| msgid "[[Setup a BitTorrent or HTTP mirror|contribute/how/mirror]]"
msgid "[[Run a BitTorrent or HTTP mirror|contribute/how/mirror]]"
#. type: Plain text
#, no-wrap
msgid ""
"<div class=\"contribute-roles-1\">\n"
"<h2>Donate</h2>\n"
"<div class=\"contribute-role\" id=\"donate\">\n"
" <ul>\n"
" <li>[[Make a donation|contribute/how/donate]]</li>\n"
" </ul>\n"
"</div>\n"
"</div>\n"
msgstr ""
"[[Stellen Sie einen BitTorrent- oder HTTP-Mirror (Spiegelserver) zur "
"Verfügung|contribute/how/mirror]]"
#. type: Content of: <div><div><p><ul><li>
msgid "[[Help other Tails users|contribute/how/help]]"
msgstr "[[Helfen Sie anderen Tails-Nutzern|contribute/how/help]]"
#. type: Content of: <div><div><p><ul><li>
msgid "[[Improve documentation|contribute/how/documentation]]"
msgstr "[[Verbessern Sie die Dokumentation|contribute/how/documentation]]"
#. type: Content of: <div><div><p><ul><li>
#, fuzzy
#| msgid "[[Reporting Bugs|doc/first_steps/bug_reporting]]"
msgid "[[Report bugs|doc/first_steps/bug_reporting]]"
msgstr "[[Melden Sie einen Bug (Fehler)|doc/first_steps/bug_reporting]]"
#. type: Content of: <div><div><p><ul><li>
msgid "[[Spread the word|contribute/how/promote]]"
msgstr "[[Empfehlen Sie Tails weiter|contribute/how/promote]]"
#. type: Content of: <div><div><p><ul><li>
msgid "[[Fix a bug|contribute/how/code]]"
msgstr "[[Beheben Sie einen Bug|contribute/how/code]]"
#. type: Content of: <div><div><p><ul><li>
#, fuzzy
#| msgid "[[Implement a new feature|contribute/how/code]]"
msgid "[[Implement a feature|contribute/how/code]]"
msgstr "[[Implementieren Sie eine neue Funktion|contribute/how/code]]"
#. type: Content of: <div><div><p><ul><li>
#, fuzzy
#| msgid "[[Improve Tails in your own language|contribute/how/translate]]"
#. type: Plain text
#, no-wrap
msgid ""
"[[Translate: improve Tails in your own language|contribute/how/translate]]"