Support Portal
Tor Support Portal is a static site based on Lektor. The code of the website is located at Support Portal repository and you can submit pull requests via github.
The Support Portal is hosted at several computers for redundancy, and these computers are together called "the www rotation". Please check the static sites help page for more info.
The support portal has a staging environment: lektor-staging.torproject.org/support/staging/
And a production environment: support.torproject.org
How to update the content
To update the content you need to:
- Install lektor and the lektor-i18n plugin
- Clone our repository
- Make your changes and verify they look OK on your local install
- Submit a pull request at our repository
-
Install lektor: https://www.getlektor.com/downloads/
-
Clone the repo: https://github.com/torproject/support/
-
The translations are imported by jenkins when bulding the page, but if you want to test them, clone the correct branch of the translations repo into the ./i18n/ folder:
git clone https://git.torproject.org/translation.git i18n
cd i18n
git checkout support-portal
- Install the i18n plugin:
lektor plugins add lektor-i18n
Content and Translations structure
The support portal takes the files at the the /content folder and creates html files with them. The website source language is English.
Inside the content folder, each subfolder represents a support topic. In this case the contents.lr is where the topic title is defined and the control key that decides the order of the topic within all the questions list.
Topics
For each topic folder there will be a number of subfolders representing a question each. For each question there is a .lr file and in your local install there will be locale files in the format contents+.lr. Dont edit the contents+.lr files, only the contents.lr file. The contents+.lr, for example contents+es.lr, are generated from the translation files automatically.
So for example, all the questions that appear at https://support.torproject.org/connecting/ can be seen at https://github.com/torproject/support/tree/master/content/connecting
Questions
Example: https://github.com/torproject/support/blob/master/content/connecting/connecting-2/contents.lr that becomes https://support.torproject.org/connecting/connecting-2/
Inside a contents file you will find question title and description in the format:
_model: question
---
title: Our website is blocked by a censor. Can Tor Browser help users access our website?
---
description:
Tor Browser can certainly help people access your website in places where it is blocked.
Most of the time, simply downloading the <a href="https://www.torproject.org/download/download-easy.html.en">Tor Browser</a> and then using it to navigate to the blocked site will allow access.
In places where there is heavy censorship we have a number of censorship circumvention options available, including <a href="https://www.torproject.org/docs/pluggable-transports.html.en">pluggable transports</a>.
For more information, please see the <a href="https://tb-manual.torproject.org/en-US/">Tor Browser User Manual</a> section on <a href="https://tb-manual.torproject.org/en-US/circumvention.html">censorship</a>.
When creating a document:
- Use MarkDown format to generate the layout more cleanly. Avoid unnecessary html tags. They make translators confused and they may break the page with the errors
- Add a line break after each period to create a new translation string. 2 linebreaks to create a paragraph.
Then you can make changes to the contents.lr files, and then
lektor build
lektor server
You will be able to see your changes in your local server at http://127.0.0.1:5000/
Update translations
Similarly, if you want to get the last translations, you do:
cd i18n
git reset --hard HEAD # this is because lektor changes the .po files and you will get a merge conflict otherwise
git pull
Add a new language to the Support portal
This is usually done by emmapeel, but it is documented here just in case:
To add a new language, it should appear first here:
https://gitweb.torproject.org/translation.git/tree/?h=support-portal_completed
You will need to edit this files:
- databags/alternatives.ini
- configs/i18n.ini
- portal.lektorproject
and then, create the files:
export lang=bn
cp databags/menu+en.ini databags/menu+$lang\.ini
cp databags/topics+en.ini databags/topics+$lang\.ini
== Support Portal's Ticket Query ==
[[TicketQuery(status=accepted|assigned|needs_information|needs_review|needs_revision|merge_ready|new|reopened&component=Webpages/Support,order=id,desc=1,format=table,col=status|summary|owner|reporter)]]