Skip to content


Repository files navigation

Privacy Badger - Website

Code and content of


Thank you for your interest in translating the Privacy Badger website! Translations are handled in Weblate.

⚠️ EFF wants to be sure that our translators make informed consent regarding registering with Weblate. Before you register, please review Weblate's Terms and Privacy Policy and note that any legal dispute with Weblate would be under Czech Republic law, and must be resolved in a Czech court.


  1. Install the extended version of Hugo version 0.111.3.
  2. Install node and npm. Run npm install to get the node dependencies.
  3. Run hugo serve.

See also our Dockerfile and Travis config for how we get set up on Docker and Travis.

Content authoring

Frequently asked questions are stored as Markdown in content/en/faqs. Each file holds a question, an answer, and a weight that indicates how high up the FAQ should appear on the page.

As Weblate does not yet support Markdown, FAQ translations are handled via Po4a. Translations live in .po files in the po directory.

  • All .po translation updates should be followed by regenerating the localized Markdown files used by Hugo (in locale-specific content directories defined in config.toml) by running npm run po4a.
  • Adding/removing FAQ entries or locales should be followed by first regenerating the Po4a config file using po/ > po/po4a.conf, and then updating the .po files with npm run po4a.
  • Adding a new locale should at some point be followed by telling Privacy Badger to use the localized FAQ link when the user's browser is in that locale.

To install Po4a, check out its repository, switch to the v0.66 tag, and then create a helper script to run po4a from the checkout. For example, create ~/.local/bin/po4a, set the file as executable, and save the following text there, replacing /PATH/TO/CHECKOUT/ with your actual checkout path:

#!/usr/bin/env bash

Non-FAQ translations can be found in /i18n. These strings are used to render templates in the layouts directory. See Hugo's multilingual documentation for more on using translated strings.

A list of supported browsers and download links can be found in data/browsers.toml.