diff --git a/.gitignore b/.gitignore index 0feee07..d60f5a6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,10 @@ __pycache__/ # C extensions *.so +# compiled translations +*.mo + + # Distribution / packaging .Python build/ diff --git a/docs/locale/en/LC_MESSAGES/admin/api/config.po b/docs/locale/en/LC_MESSAGES/admin/api/config.po new file mode 100644 index 0000000..65e032d --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/api/config.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/config.rst:3 +msgid "Configuration File" +msgstr "" + +#: ../../admin/api/config.rst:5 +msgid "" +"The application uses a YAML configuration file to specify various " +"settings. The configuration file should follow the YAML syntax and " +"provide values for the following fields:" +msgstr "" + +#: ../../admin/api/config.rst:7 +msgid "" +"`DEFAULT_REDIRECTOR_DOMAIN`: The default domain name to use for " +"generating short links when no pool-specific redirector domain is " +"provided. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:8 +msgid "" +"`MIRROR_COUNTRIES`: A list of country codes for which clients should be " +"redirected to a mirror server. If a client's IP address matches one of " +"the specified countries, they will be redirected. If not specified, " +"clients will always be redirected to a mirror server." +msgstr "" + +#: ../../admin/api/config.rst:9 +msgid "" +"`PUBLIC_KEY`: The public API key used for generating short links for " +"anonymous users. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:10 +msgid "" +"`UPDATE_KEY`: The API key required for updating the application data via " +"the `/updt` endpoint. This key must be provided in the `Authorization` " +"header as a bearer token." +msgstr "" + +#: ../../admin/api/config.rst:11 +msgid "" +"`GEOIP_DATABASE` (optional): The file path to the GeoIP database used for" +" country lookup. If not specified, it defaults to " +"`/usr/share/GeoIP/GeoIP2-Country.mmdb`." +msgstr "" + +#: ../../admin/api/config.rst:14 +msgid "Example Configuration" +msgstr "" + +#: ../../admin/api/config.rst:16 +msgid "An example configuration file may look like this:" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/api/index.po b/docs/locale/en/LC_MESSAGES/admin/api/index.po new file mode 100644 index 0000000..b726ffc --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/api/index.po @@ -0,0 +1,135 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/index.rst:38 +msgid "Contents:" +msgstr "" + +#: ../../admin/api/index.rst:3 +msgid "Short Link Redirector" +msgstr "" + +#: ../../admin/api/index.rst:5 +msgid "" +"Welcome to the documentation for the *Bypass Censorship's Short Link " +"Redirector* application. This documentation provides detailed information" +" about the features, components, and usage of the application. The Short " +"Link Redirector is a web application that allows users to generate short " +"links and direct mirror links for URLs." +msgstr "" + +#: ../../admin/api/index.rst:8 +msgid "Features" +msgstr "" + +#: ../../admin/api/index.rst:10 +msgid "The Short Link Redirector application offers the following features:" +msgstr "" + +#: ../../admin/api/index.rst:12 +msgid "" +"Short Link Generation: Users can generate short links for URLs, making " +"them easier to share and remember." +msgstr "" + +#: ../../admin/api/index.rst:13 +msgid "" +"Direct Mirror Links: Users can generate and discover direct mirror links " +"that are currently live." +msgstr "" + +#: ../../admin/api/index.rst:14 +msgid "" +"Country-based Redirect: The application can redirect users to mirror " +"servers based on their country, improving user experience." +msgstr "" + +#: ../../admin/api/index.rst:15 +msgid "" +"API Key Authentication: Users can authenticate their requests using API " +"keys, enabling access to mirrors in private resource pools." +msgstr "" + +#: ../../admin/api/index.rst:16 +msgid "" +"GeoIP Integration: The application optionally leverages GeoIP data to " +"perform country lookups for IP addresses." +msgstr "" + +#: ../../admin/api/index.rst:19 +msgid "Components" +msgstr "" + +#: ../../admin/api/index.rst:21 +msgid "" +"The Short Link Redirector application consists of the following main " +"components:" +msgstr "" + +#: ../../admin/api/index.rst:23 +msgid "" +"Flask Web Server: The web server that hosts the application and handles " +"incoming HTTP requests." +msgstr "" + +#: ../../admin/api/index.rst:24 +msgid "" +"SQLAlchemy: The ORM (Object-Relational Mapping) library used for " +"interacting with the database." +msgstr "" + +#: ../../admin/api/index.rst:25 +msgid "" +"GeoIP Database: The MaxMind GeoIP database that provides country " +"information for IP addresses." +msgstr "" + +#: ../../admin/api/index.rst:26 +msgid "Hashids: The library used for encoding and decoding the short link hashes." +msgstr "" + +#: ../../admin/api/index.rst:29 +msgid "Documentation Structure" +msgstr "" + +#: ../../admin/api/index.rst:31 +msgid "This documentation is structured into the following sections:" +msgstr "" + +#: ../../admin/api/index.rst:33 +msgid "" +":doc:`Installation `: Provides instructions for installing and " +"setting up the Short Link Redirector application." +msgstr "" + +#: ../../admin/api/index.rst:34 +msgid "" +":doc:`Configuration `: Explains the configuration options and how" +" to customize the application's behavior." +msgstr "" + +#: ../../admin/api/index.rst:36 +msgid "" +"We recommend reading through the documentation sequentially to gain a " +"comprehensive understanding of the application and its features." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/api/install.po b/docs/locale/en/LC_MESSAGES/admin/api/install.po new file mode 100644 index 0000000..2109f4d --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/api/install.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/install.rst:3 +msgid "Installation" +msgstr "" + +#: ../../admin/api/install.rst:5 +msgid "" +"The application is intended to be deployed in AWS using the `bc-" +"redirector `_ Terraform module. This deployment is not managed" +" through the portal itself but may be managed alongside the IaC that " +"manages the deployment of the portal itself." +msgstr "" + +#: ../../admin/api/install.rst:12 +msgid "Deployment" +msgstr "" + +#: ../../admin/api/install.rst:14 +msgid "" +"The Terraform module takes care of setting up multiple entry-points to " +"the redirector allowing for per-pool redirector domains, and also " +"generating the necessary configuration file for the redirector. Once " +"deployed, the redirector will not require further manual configuration, " +"although the deployed EC2 instance will be accessible via AWS Systems " +"Manager Session Manager if required for debugging." +msgstr "" + +#: ../../admin/api/install.rst:19 +msgid "The following Terraform configuration shows an example using the module:" +msgstr "" + +#: ../../admin/api/install.rst:47 +msgid "" +"The `public_key` must match the API key of the public pool configured " +"within the portal. The `update_key` may must match the \"filename\" " +"configured for the distribution list below." +msgstr "" + +#: ../../admin/api/install.rst:50 +msgid "" +"The MaxMind account used will need to have at least a subscription for " +"the GeoIP2 Country database. A subscription for GeoIP2 City will include " +"the GeoIP2 Country database." +msgstr "" + +#: ../../admin/api/install.rst:55 +msgid "Data Updates" +msgstr "" + +#: ../../admin/api/install.rst:57 +msgid "" +"Once deployed, the redirector must learn about the available mirror " +"resources. This requires configuring a :doc:`distribution list " +"<../../user/lists>` inside the portal." +msgstr "" + +#: ../../admin/api/install.rst:60 +msgid "**Resource Pool**: any (ignored)" +msgstr "" + +#: ../../admin/api/install.rst:61 +msgid "**Provider**: HTTP POST" +msgstr "" + +#: ../../admin/api/install.rst:62 +msgid "**Distribution Method**: Redirector Data" +msgstr "" + +#: ../../admin/api/install.rst:63 +msgid "**Encoding**: JSON (Plain)" +msgstr "" + +#: ../../admin/api/install.rst:64 +msgid "**Description**: <*description of the redirector instance*>" +msgstr "" + +#: ../../admin/api/install.rst:65 +msgid "**Container**: \\https://<*redirector domain*>/updt" +msgstr "" + +#: ../../admin/api/install.rst:66 +msgid "**Git Branch/Region**: na" +msgstr "" + +#: ../../admin/api/install.rst:67 +msgid "**Role ARN**: <*blank*>" +msgstr "" + +#: ../../admin/api/install.rst:68 +msgid "**Filename**: <*update key*>" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/conf.po b/docs/locale/en/LC_MESSAGES/admin/conf.po new file mode 100644 index 0000000..b895a75 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/conf.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/conf.rst:2 +msgid "Configuration File" +msgstr "" + +#: ../../admin/conf.rst:4 +msgid "" +"A file named ``config.yaml`` must exist. For specifics about the provider" +" configurations, see :doc:`External Services `." +msgstr "" + +#: ../../admin/conf.rst:8 +msgid "Base Configuration" +msgstr "" + +#: ../../admin/conf.rst:11 +msgid "Template" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/eotk.po b/docs/locale/en/LC_MESSAGES/admin/eotk.po new file mode 100644 index 0000000..f52b2f9 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/eotk.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../admin/eotk.rst:4 +msgid "" +"When EOTK instances are deployed for a group, the following main AWS " +"resources are created:" +msgstr "" + +#: ../../admin/eotk.rst:6 +msgid "An EC2 instance in us-east-2" +msgstr "" + +#: ../../admin/eotk.rst:7 +msgid "An EC2 instance in eu-central-1" +msgstr "" + +#: ../../admin/eotk.rst:8 +msgid "A S3 bucket to hold nginx access logs" +msgstr "" + +#: ../../admin/eotk.rst:10 +msgid "" +"The EC2 instances are running Ubuntu 20.04 LTS and are configured with " +"`ssm-agent `_ and `unattended-upgrades " +"`_." +msgstr "" + +#: ../../admin/eotk.rst:13 +msgid "" +"EOTK is automatically cloned at instance creation time from Alec Muffet's" +" `GitHub repository `_ to " +"``/home/ubuntu/eotk``. The script to automatically build and install all " +"dependencies is also executed at the instance creation time." +msgstr "" + +#: ../../admin/eotk.rst:17 +msgid "" +"For full details on the instance configuration, refer to the `cloud-init " +"user data `_." +msgstr "" + +#: ../../admin/eotk.rst:21 +msgid "Logging in to an instance" +msgstr "" + +#: ../../admin/eotk.rst:24 +msgid "Via the console" +msgstr "" + +#: ../../admin/eotk.rst:26 +msgid "" +"Using the AWS console, visit the `Session Manager `_ in the Systems Manager service. If " +"using SSO, login before attempting to open the link." +msgstr "" + +#: ../../admin/eotk.rst:33 +msgid "Click \"Start Session\" to start a new session." +msgstr "" + +#: ../../admin/eotk.rst:38 +msgid "" +"Select the instance from the list, and click \"Start Session\" again. " +"Remember that the second instance will be found in the eu-central-1 " +"region." +msgstr "" + +#: ../../admin/eotk.rst:44 +msgid "" +"Use the following commands to get into the EOTK directory as the correct " +"user::" +msgstr "" + +#: ../../admin/eotk.rst:50 +msgid "Via the command line" +msgstr "" + +#: ../../admin/eotk.rst:52 +msgid "Begin by discovering the instance ID::" +msgstr "" + +#: ../../admin/eotk.rst:56 +msgid "Start an SSM session::" +msgstr "" + +#: ../../admin/eotk.rst:60 +msgid "To login with SSH via SSM, add the following to your ``~/.ssh/config``:" +msgstr "" + +#: ../../admin/eotk.rst:64 +msgid "" +"No user SSH public keys are provisioned to the instance. You will need to" +" add the public key you plan to use to the correct user's authorized_keys" +" file using a plain SSM session before attempting to use SSH." +msgstr "" + +#: ../../admin/eotk.rst:72 +msgid "" +"You can then login with SSH, but be sure to include environment variables" +" for your AWS region::" +msgstr "" + +#: ../../admin/eotk.rst:76 +msgid "This will also work for scp, rsync, etc." +msgstr "" + +#: ../../admin/eotk.rst:79 +msgid "Configuring EOTK" +msgstr "" + +#: ../../admin/eotk.rst:81 +msgid "" +"Refer to the `EOTK documentation " +"`_." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/external.po b/docs/locale/en/LC_MESSAGES/admin/external.po new file mode 100644 index 0000000..187b1cf --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/external.po @@ -0,0 +1,246 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/external.rst:2 +msgid "External Services" +msgstr "" + +#: ../../admin/external.rst:5 +msgid "Overview" +msgstr "" + +#: ../../admin/external.rst:7 +msgid "" +"In order to deploy the circumvention resources, the following providers " +"can be used:" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Resource" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:25 +msgid "AWS" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Azure" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Fastly" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Hetzner" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "GandiCloud VPS" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:129 +msgid "OVH" +msgstr "" + +#: ../../admin/external.rst:12 +msgid "Web Proxy" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "✅" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "❌" +msgstr "" + +#: ../../admin/external.rst:14 +msgid "Tor Bridge" +msgstr "" + +#: ../../admin/external.rst:17 +msgid "Circumvention resource lists can be distributed via:" +msgstr "" + +#: ../../admin/external.rst:19 +msgid "AWS S3" +msgstr "" + +#: ../../admin/external.rst:20 ../../admin/external.rst:64 +msgid "GitHub" +msgstr "" + +#: ../../admin/external.rst:21 ../../admin/external.rst:96 +msgid "GitLab" +msgstr "" + +#: ../../admin/external.rst:22 +msgid "HTTP POST" +msgstr "" + +#: ../../admin/external.rst:27 +msgid "" +"Configuring AWS will require an `IAM account " +"`_" +" with programmatic access. As the portal may deploy resources using many " +"AWS services it is currently It is recommended that a dedicated account " +"is used for the deployement of portal managed resources. The dedicated " +"account may be part of an existing AWS organisation." +msgstr "" + +#: ../../admin/external.rst:42 +msgid "Route 53" +msgstr "" + +#: ../../admin/external.rst:44 +msgid "" +"Some resources that can be deployed via the portal, e.g. mirrors, rely on" +" DNS names to map internal connections. These DNS names are only used " +"within AWS and are never accessed directly by end users. A registered " +"domain must be used for this purpose." +msgstr "" + +#: ../../admin/external.rst:48 +msgid "" +"Once a domain name has been registered, `create a hosted zone " +"`_" +" within Route 53. Ensure that the domain registrar is updated to point to" +" the Route 53 nameservers. Optionally, enable DNSSEC to improve the " +"security of the hosted zone. Add the domain name, including the " +"terminating period, to the configuration for the portal:" +msgstr "" + +#: ../../admin/external.rst:61 +msgid "" +"Do not create any other records on this domain manually as these may " +"conflict with names created by the portal." +msgstr "" + +#: ../../admin/external.rst:66 +msgid "" +"To configure GitHub, you will need a \"personal access token\". It is not" +" possible to restrict a token to specific repositories, so it is best to " +"create a `machine user `_ and then invite that user to only " +"the repositories that should be accessed to limit the impact of a token " +"disclosure." +msgstr "" + +#: ../../admin/external.rst:73 +msgid "" +"To create a token, visit the `New personal access token " +"`_ page of the GitHub settings. " +"Add a note so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitHub will `send an email warning " +"`_ before the token expires allowing you to " +"generate a new token and update your configuration." +msgstr "" + +#: ../../admin/external.rst:81 +msgid "" +"Your access token will need the \"repo\" OAuth scope. If you are only " +"using public repos, you could limit the token to use the \"public_repo\" " +"scope." +msgstr "" + +#: ../../admin/external.rst:84 ../../admin/external.rst:117 +msgid "Once you've generated your token, you can add it to your ``config.yaml``:" +msgstr "" + +#: ../../admin/external.rst:92 ../../admin/external.rst:125 +msgid "" +"The organisation, repository, filename and formats are all configured via" +" the portal interface under :doc:`mirror lists <../user/lists>`." +msgstr "" + +#: ../../admin/external.rst:98 +msgid "" +"To configure GitLab, you will need an access token. GitLab has a variety " +"of scoped access tokens, including `personal " +"`_, " +"`group " +"`_" +" and `project " +"`_" +" access tokens. Create the type of token that is suitable according to " +"your threat model." +msgstr "" + +#: ../../admin/external.rst:107 +msgid "" +"Add a name so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitLab will send an email warning to token owners 7 days " +"before expiry allowing you to generate a new token and update your " +"configuration." +msgstr "" + +#: ../../admin/external.rst:113 +msgid "" +"Your access token will need the \"api\" scope. Unforunately the " +"\"write_repository\" scope only works for Git-over-HTTPS, but the portal " +"uses the API to update mirror lists in GitLab." +msgstr "" + +#: ../../admin/external.rst:131 +msgid "" +"OVH requires two different sets of credentials. The first is for the " +"OpenStack Horizon API, and the second for the OVH API." +msgstr "" + +#: ../../admin/external.rst:134 +msgid "" +"OVH provides documentation on creating the OpenStack Horizon user `here " +"`_. As the portal will manage " +"all resources within your OVH project, it is fine to allow for the user " +"to have \"Administrator\" access." +msgstr "" + +#: ../../admin/external.rst:139 +msgid "" +"Once you have the username and password, you can complete the first " +"fields of the configuration:" +msgstr "" + +#: ../../admin/external.rst:149 +msgid "" +"You can find the tenant ID in the top-left corner of the OVH cloud " +"dashboard, or in the `OpenStack RC file `_ available for " +"download in the Horizon interface." +msgstr "" + +#: ../../admin/external.rst:157 +msgid "" +"Finally, you'll need to create credentials for the OVH API. Go to the " +"`key creation page `_ and add an " +"application name and description to remind you later what the token is " +"for. Set a validity (expiry) according to your threat model. This token " +"is only used for read-only access, so it is sufficient to allow only GET " +"requests. Place an asterisk (*) in the text box to the right of GET so " +"that API paths are allowed." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/admin/install.po b/docs/locale/en/LC_MESSAGES/admin/install.po new file mode 100644 index 0000000..e067835 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/admin/install.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/install.rst:2 +msgid "Installation" +msgstr "" + +#: ../../admin/install.rst:4 +msgid "" +"The current installation method is to use a Python virtual envrionment. " +"Many of the dependencies needed by the portal can be installed from PyPI," +" although some dependencies will need to be satisfied in other ways:" +msgstr "" + +#: ../../admin/install.rst:8 +msgid "A cron daemon - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:9 +msgid "Terraform binary - static binaries available from Hashicorp" +msgstr "" + +#: ../../admin/install.rst:10 +msgid "PostgreSQL server - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:12 +msgid "Create and activate a virtual environment with:" +msgstr "" + +#: ../../admin/install.rst:20 +msgid "You will need to install an entry into the portal user's crontab::" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/index.po b/docs/locale/en/LC_MESSAGES/index.po new file mode 100644 index 0000000..45c3284 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/index.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../index.rst:7 +msgid "User Guide" +msgstr "" + +#: ../../index.rst:18 +msgid "Publisher Guide" +msgstr "" + +#: ../../index.rst:24 +msgid "Admin Guide" +msgstr "" + +#: ../../index.rst:34 +msgid "Technical Documentation" +msgstr "" + +#: ../../index.rst:2 +msgid "Documentation Home" +msgstr "" + +#: ../../index.rst:45 +msgid "Indices and tables" +msgstr "" + +#: ../../index.rst:47 +msgid ":ref:`genindex`" +msgstr "" + +#: ../../index.rst:48 +msgid ":ref:`modindex`" +msgstr "" + +#: ../../index.rst:49 +msgid ":ref:`search`" +msgstr "" + +#: ../../index.rst:52 +msgid "Maintained by" +msgstr "" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "|logo-gp|" +msgstr "" + +#: ../../index.rst:76 +msgid "Guardian Project" +msgstr "" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "`Guardian Project `_" +msgstr "" + +#: ../../index.rst:59 +msgid "Developed by" +msgstr "" + +#: ../../index.rst:64 +msgid "|logo-tor|" +msgstr "" + +#: ../../index.rst:80 +msgid "Tor Project" +msgstr "" + +#: ../../index.rst:64 +msgid "`Tor Project `_" +msgstr "" + +#: ../../index.rst:68 +msgid "Supported by [*]_" +msgstr "" + +#: ../../index.rst:71 +msgid "|logo-otf|" +msgstr "" + +#: ../../index.rst:84 +msgid "Open Technology Fund" +msgstr "" + +#: ../../index.rst:71 +msgid "`Open Technology Fund `_" +msgstr "" + +#: ../../index.rst:89 +msgid "Footnotes" +msgstr "" + +#: ../../index.rst:90 +msgid "Support received does not imply endorsement." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/publisher/api.po b/docs/locale/en/LC_MESSAGES/publisher/api.po new file mode 100644 index 0000000..80db0ee --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/publisher/api.po @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../publisher/api.rst:3 +msgid "Publisher API" +msgstr "" + +#: ../../:1 +msgid "**Retrieve information about the authenticated user's pool**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Query Parameters" +msgstr "" + +#: ../../:1 +msgid "The API key of the pool. If not provided, the public API key is used." +msgstr "" + +#: ../../:1 +msgid "**Example request:**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Status Codes" +msgstr "" + +#: ../../:1 +msgid "" +"Success **Example response:** .. sourcecode:: http HTTP/1.1 200 OK" +" Content-Type: application/json {}" +msgstr "" + +#: ../../:1 +msgid "Success" +msgstr "" + +#: ../../:1 +msgid "**Example response:**" +msgstr "" + +#: ../../:1 +msgid "Invalid API key" +msgstr "" + +#: ../../:1 +msgid "**Generate a circumvention link for a specific resource**" +msgstr "" + +#: ../../:1 +msgid "The URL for which a circumvention link needs to be generated. (Required)" +msgstr "" + +#: ../../:1 +msgid "" +"The type of link to generate. Valid values are \"live\", \"short\", or " +"\"snapshot\". If not provided, \"direct\" is used." +msgstr "" + +#: ../../:1 +msgid "" +"The duration that a snapshot will remain published for. Valid values are " +"\"long\" and \"short\". If not provided, \"short\" is used." +msgstr "" + +#: ../../:1 +msgid "Defines the footer text to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Defines the footer link to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Resource not on a supported domain" +msgstr "" + +#: ../../:1 +msgid "No live mirror exists for the resource" +msgstr "" + +#: ../../:1 +msgid "Could not generate a snapshot for the resource" +msgstr "" + +#: ../../:1 +msgid "**Redirect to the live mirror associated with the given hash**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Parameters" +msgstr "" + +#: ../../:1 +msgid "The hash associated with the short link" +msgstr "" + +#: ../../:1 +msgid "Always redirect to a mirror and ignore GeoIP information." +msgstr "" + +#: ../../:1 +msgid "" +"Override the client IP address and base the GeoIP lookup on this IP " +"address instead." +msgstr "" + +#: ../../:1 +msgid "Redirects the client to the original URL" +msgstr "" + +#: ../../:1 +msgid "The hash is invalid or not found" +msgstr "" + +#: ../../publisher/api.rst +msgid "Response Headers" +msgstr "" + +#: ../../:1 +msgid "The URL of the live mirror" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/sphinx.po b/docs/locale/en/LC_MESSAGES/sphinx.po new file mode 100644 index 0000000..36d8eb7 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/sphinx.po @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../_templates/sidebar/ethical-ads.html:2 +msgid "Translations" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/tech/automation.po b/docs/locale/en/LC_MESSAGES/tech/automation.po new file mode 100644 index 0000000..5cf2f5d --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/tech/automation.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/automation.rst:2 +msgid "Automation Plugins" +msgstr "" + +#: ../../tech/automation.rst:5 +msgid "Base" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:1 of +msgid "" +"Write a Jinja2 template to the working directory for use by an automation" +" module." +msgstr "" + +#: ../../tech/automation.rst +msgid "Parameters" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:3 of +msgid "filename to write to" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:4 of +msgid "Jinja2 template" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:5 of +msgid "variables for use with the template" +msgstr "" + +#: ../../tech/automation.rst +msgid "Returns" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:6 +#: app.terraform.terraform.TerraformAutomation.tf_posthook:7 of +msgid "None" +msgstr "" + +#: ../../docstring app.terraform.BaseAutomation.working_dir:1 of +msgid "" +"The short name of the automation provider. This is used as an opaque " +"token throughout the portal system." +msgstr "" + +#: ../../tech/automation.rst:12 +msgid "Terraform" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation:1 of +msgid "" +"An abstract class to be extended by automation plugins using Terraform " +"providers to deploy resources." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.always_refresh:1 +#: of +msgid "Force refresh even when not a full run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:1 of +msgid "Runs the Terraform automation module. The run will follow these steps:" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:3 of +msgid "The :func:`tf_prehook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:4 of +msgid "" +"Generate a Terraform configuration and write it to a single ``main.tf`` " +"file in the working directory (see :func:`working_directory " +"`)." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:6 of +msgid "Run ``terraform init``." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:7 of +msgid "" +"Run ``terraform apply``. This will only include a refresh if *full* is " +"**True**. The apply will wait up to *lock_timeout* minutes for a lock to " +"be released before failing. Up to *parallelism* requests will be sent to " +"remote APIs concurrently." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:10 of +msgid "The :func:`tf_posthook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:11 of +msgid "The logs from the apply step are returned as a string." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:13 of +msgid "include a Terraform refresh in the automation module run" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:14 of +msgid "success status and Terraform apply logs" +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.parallelism:1 of +msgid "Default parallelism for remote API calls." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.provider:1 of +msgid "Short name for the provider used by this module." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:1 of +msgid "" +"This hook function is called as part of normal automation, after the " +"completion of :func:`tf_apply`." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:4 +#: app.terraform.terraform.TerraformAutomation.tf_prehook:5 of +msgid "The default, if not overridden by a subclass, is to do nothing." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:6 of +msgid "the returned value of :func:`tf_prehook`" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_prehook:1 of +msgid "" +"This hook function is called as part of normal automation, before " +"generating the terraform configuration file. The return value will be " +"passed to :func:`tf_posthook` but is otherwise ignored." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_prehook:7 of +msgid "state that is useful to :func:`tf_posthook`, if required" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/tech/conf.po b/docs/locale/en/LC_MESSAGES/tech/conf.po new file mode 100644 index 0000000..07889cc --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/tech/conf.po @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/conf.rst:2 +msgid "Configuration Objects" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/tech/index.po b/docs/locale/en/LC_MESSAGES/tech/index.po new file mode 100644 index 0000000..2c80299 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/tech/index.po @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/index.rst:2 +msgid "Technical Overview" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/tech/resource.po b/docs/locale/en/LC_MESSAGES/tech/resource.po new file mode 100644 index 0000000..d357214 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/tech/resource.po @@ -0,0 +1,63 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/resource.rst:2 +msgid "Resource Objects" +msgstr "" + +#: app.models.AbstractResource.deprecate:1 of +msgid "" +"Marks the resource as deprecated. In the event that the resource was " +"already deprecated, no change will be recorded and the function will " +"return False." +msgstr "" + +#: ../../tech/resource.rst +msgid "Parameters" +msgstr "" + +#: app.models.AbstractResource.deprecate:4 of +msgid "an opaque string that records the deprecation reason" +msgstr "" + +#: app.models.AbstractResource.deprecate:5 of +msgid "" +"metadata associated with the deprecation reason, such as the " +"circumstances in which censorship was detected" +msgstr "" + +#: ../../tech/resource.rst +msgid "Returns" +msgstr "" + +#: app.models.AbstractResource.deprecate:7 of +msgid "if the proxy was deprecated" +msgstr "" + +#: app.models.AbstractResource.destroy:1 of +msgid "Marks the resource for destruction." +msgstr "" + +#: app.models.AbstractResource.destroy:3 of +msgid "None" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/automation.po b/docs/locale/en/LC_MESSAGES/user/automation.po new file mode 100644 index 0000000..3b5234a --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/automation.po @@ -0,0 +1,52 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/automation.rst:2 +msgid "Automation" +msgstr "" + +#: ../../user/automation.rst:4 +msgid "" +"When changes are made in the portal, the effects usually do not take " +"place immediately, but rather are stored in the database for an " +"automation job to action shortly after. There are many automation jobs " +"that run in the portal, and you can find an overview of them on the " +"\"Automation\" page, under \"Monitoring\" in the sidebar:" +msgstr "" + +#: ../../user/automation.rst:12 +msgid "" +"This page lists all the automation jobs, their current status, if they " +"are enabled, their last, and their next run times. The last run time is " +"updated after the completion of a run, and the next run time indicates " +"the earliest time that a job may be started by the scheduler, although it" +" may not start for up to a minute after this time." +msgstr "" + +#: ../../user/automation.rst:17 +msgid "" +"Once a task has started, the status will change from idle (🕰️) to running" +" (🏃). If the run completes successfully, it will revert to idle again " +"until the next run. If an error occurred (💥) then the module will " +"automatically be disabled to allow for an administrator to investigate." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/bridges.po b/docs/locale/en/LC_MESSAGES/user/bridges.po new file mode 100644 index 0000000..fc63514 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/bridges.po @@ -0,0 +1,287 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/bridges.rst:2 +msgid "Tor Bridges" +msgstr "" + +#: ../../user/bridges.rst:5 +msgid "Background" +msgstr "" + +#: ../../user/bridges.rst:7 +msgid "" +"When someone uses the Tor network to browse the internet, their traffic " +"is routed through a series of relays, making it difficult to trace the " +"origin of the traffic or the content being accessed. However, in some " +"countries or networks, access to the Tor network is blocked, making it " +"impossible to use the network." +msgstr "" + +#: ../../user/bridges.rst:11 +msgid "" +"A Tor bridge, a special type of node on the Tor network that is not " +"listed in the public directory of nodes, is designed to help users in " +"these situations. Instead of connecting directly to the Tor network, a " +"user can connect to a Tor bridge first. The bridge will then forward the " +"user's traffic to the Tor network, effectively bypassing any censorship " +"or blocking. This makes it harder for governments and other organizations" +" to block access to the Tor network, because users can still connect to " +"the network through these unlisted bridges." +msgstr "" + +#: ../../user/bridges.rst:19 +msgid "Pluggable Transports" +msgstr "" + +#: ../../user/bridges.rst:21 +msgid "" +"A key feature of a Tor bridge is its \"obfuscation\" capability, provided" +" by pluggable transports. This means that the bridge's traffic is " +"disguised in a way that makes it difficult for censors to detect that it " +"is Tor traffic through deep packet inspection (DPI). For example, the " +"bridge may use a different network protocol or port than standard Tor " +"traffic, making it harder for censors to identify and block it." +msgstr "" + +#: ../../user/bridges.rst:27 +msgid "" +"A pluggable transport allows users to obfuscate their Tor traffic using a" +" variety of different protocols and techniques. Different pluggable " +"transports will have different levels of success in different censorship " +"environments, and new techniques are always being designed and studied. " +"The portal currently only supports deploying bridges using the obfs4proxy" +" pluggable transport." +msgstr "" + +#: ../../user/bridges.rst:33 +msgid "Distribution Methods" +msgstr "" + +#: ../../user/bridges.rst:35 +msgid "" +"`BridgeDB `_, and its upcoming " +"replacement rdsys, is a service used by the Tor network to distribute " +"bridge addresses to users who need them. If you're running bridges for " +"the general public to use then BridgeDB will help users get hold of the " +"details for your bridges. Unless you have specific requirements, you can " +"let BridgeDB determine the best distribution method for your bridge by " +"choosing the \"Any\" method." +msgstr "" + +#: ../../user/bridges.rst:42 +msgid "" +"Within each distribution method the bridges are further split up into " +"*pools* (a concept borrowed by the portal too, see: *Resource Pools*). In" +" some countries or networks, censors may attempt to block all known " +"bridge addresses associated with the Tor network. Depending on criteria " +"such as geography, your ISP, and other secret factors, each user request " +"for a bridge is mapped to one of these pools. The aim is to prevent any " +"censor from being able to discover all of the bridges, leaving bridges " +"unblocked for other legitimate users." +msgstr "" + +#: ../../user/bridges.rst:49 +msgid "" +"If you already have a channel to your users then you should select the " +"\"None\" BridgeDB distribution method to ensure that your bridges remain " +"private and only for use by your community." +msgstr "" + +#: ../../user/bridges.rst:53 +msgid "Managing Configurations" +msgstr "" + +#: ../../user/bridges.rst:55 +msgid "" +"As with other circumvention resources, the dashboard takes the approach " +"of managing collections of resources that are uniformly configured and " +"expendable. For this reason the only configuration that can be performed " +"is at a high level with the management of individual resources taking " +"place through the automation subsystem." +msgstr "" + +#: ../../user/bridges.rst:59 +msgid "" +"Bridges will be deployed to all available cloud providers, although you " +"can disable providers by setting a zero instance limit within the Cloud " +"Account configuration." +msgstr "" + +#: ../../user/bridges.rst:62 +msgid "" +"Once your administrator has provided you access to the portal, you can " +"begin to configure your Tor Bridge deployments. To get started, select " +"\"Tor Bridges\" under \"Configuration\" from the menu on the left hand " +"side. If you are using a mobile device, you may need to click the " +"hamburger icon at the top of the screen to open the menu." +msgstr "" + +#: ../../user/bridges.rst:70 +msgid "New Configuration" +msgstr "" + +#: ../../user/bridges.rst:72 +msgid "" +"To create a new configuration, click \"Create new configuration\" at the " +"top of the configuration list. This will present you with the new " +"configuration form:" +msgstr "" + +#: ../../user/bridges.rst:79 +msgid "Distribution Method" +msgstr "" + +#: ../../user/bridges.rst:81 +msgid "" +"The distribution method for `BridgeDB " +"`_. Unless you have specific " +"requirements you will likely choose either \"Any\" to allow for BridgeDB " +"to allocate the bridge to where it is most needed, or \"None\" to have a " +"bridge that is not distributed by BridgeDB for you to distribute directly" +" to the end-user via another channel." +msgstr "" + +#: ../../user/bridges.rst:87 +msgid "Description" +msgstr "" + +#: ../../user/bridges.rst:89 +msgid "A free-form text description to help identify the collection." +msgstr "" + +#: ../../user/bridges.rst:92 +msgid "Pool" +msgstr "" + +#: ../../user/bridges.rst:94 +msgid "" +"The Resource Pool the bridges in this configuration belong to. If you " +"distribute your bridges by Distribution List within the portal, this will" +" allow you to split up which bridges are distributed." +msgstr "" + +#: ../../user/bridges.rst:99 +msgid "Target Number" +msgstr "" + +#: ../../user/bridges.rst:101 +msgid "" +"The target number of active bridges to have deployed at any time, " +"excluding deprecated bridges. When editing, increasing or decreasing this" +" number will cause new bridges to be created, or existing bridges to be " +"destroyed, so that the number deployed is less than the maximum number " +"while having as close as possible to the target number of non-deprecated " +"bridges." +msgstr "" + +#: ../../user/bridges.rst:107 +msgid "Maximum Number" +msgstr "" + +#: ../../user/bridges.rst:109 +msgid "The maximum number of bridges to deploy including deprecated bridges." +msgstr "" + +#: ../../user/bridges.rst:112 +msgid "Expiry Timer" +msgstr "" + +#: ../../user/bridges.rst:114 +msgid "" +"The number of hours to wait after a bridge is deprecated before its " +"destruction. It is not advisable to set this number to zero as this does " +"not allow any churn of IP address usage within the cloud provider and you" +" are likely to get the same IP address back for the new bridge, leading " +"it to arriving dead on arrival. It is also not advisable to set this " +"number too high as this will result in cost incurred for a bridge that " +"may not be able to be used. Remember that just because the bridge is " +"blocked in one network, it may remain accessible from other networks, and" +" so it is not instantly worthless when the first block is detected (with " +"the exception perhaps of very specific community use cases)." +msgstr "" + +#: ../../user/bridges.rst:122 +msgid "Provider Allocation Method" +msgstr "" + +#: ../../user/bridges.rst:124 +msgid "Two provider allocation methods have been implemented:" +msgstr "" + +#: ../../user/bridges.rst:126 +msgid "" +"Use cheapest provider first - based on the prevailing cost of a Tor " +"bridge at each provider, deploy on the cheapest provider first until the " +"quota is fully utilised, and then proceed to deploy on other providers in" +" order of cost." +msgstr "" + +#: ../../user/bridges.rst:128 +msgid "" +"Use providers randomly - each bridge deployed will go to a random choice " +"of cloud provider (RNG is not cryptographic)." +msgstr "" + +#: ../../user/bridges.rst:131 +msgid "Edit Configuration" +msgstr "" + +#: ../../user/bridges.rst:136 +msgid "" +"See the \"New Configuration\" section above for the descriptions of each " +"field." +msgstr "" + +#: ../../user/bridges.rst:138 +msgid "" +"Once a configuration has been created, the Resource Pool and Distribution" +" Method may not be modified. This is because the bridges may already have" +" been distributed by some method, and rather than reallocating the " +"existing bridges to a new Distribution Method or Resource Pool it would " +"be more effective to destroy the configuration and then create a new " +"configuration with new bridges for those new users." +msgstr "" + +#: ../../user/bridges.rst:144 +msgid "Destroy Configuration" +msgstr "" + +#: ../../user/bridges.rst:149 +msgid "" +"When destroying a configuration, the bridges deployed for that " +"configuration will be automatically destroyed with it." +msgstr "" + +#: ../../user/bridges.rst:152 +msgid "Bridge Rotation" +msgstr "" + +#: ../../user/bridges.rst:157 +msgid "" +"If not using an automated block detection and replacement system, bridges" +" can be manually replaced as needed. When viewing the bridge list, either" +" while editing the configuration or the full list of bridges, select " +"\"Mark as blocked\". The bridge will be replaced on the next automation " +"run." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/eotk.po b/docs/locale/en/LC_MESSAGES/user/eotk.po new file mode 100644 index 0000000..779d079 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/eotk.po @@ -0,0 +1,184 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../user/eotk.rst:4 +msgid "" +"Tor onion services, also known as hidden services, are websites that can " +"be accessed through the Tor network. These services are useful for " +"publishers because they allow them to host their content on the internet " +"without revealing their physical location or IP address. This can provide" +" a greater level of privacy and security for both the publisher and the " +"users accessing the content." +msgstr "" + +#: ../../user/eotk.rst:9 +msgid "" +"Because Tor onion services are accessed through the Tor network, they are" +" much more difficult to block or censor than regular websites. This is " +"because the connection between the user and the website is encrypted and " +"routed through multiple nodes on the network, making it difficult for " +"anyone to determine the source or destination of the traffic. This means " +"that even if one node on the network is blocked, the traffic can still be" +" routed through other nodes to reach the website." +msgstr "" + +#: ../../user/eotk.rst:16 +msgid "" +"To deploy an Onion service, you first need to deploy EOTK instances for " +"the related origin group, and then configure the individual Onion " +"services that will be served by those EOTK instances." +msgstr "" + +#: ../../user/eotk.rst:19 +msgid "" +"Once your administrator has provided you access to the portal, you can " +"begin to configure your onion service deployments. To get started, select" +" \"Groups\" under \"Configuration\" from the menu on the left hand side. " +"If you are using a mobile device, you may need to click the hamburger " +"icon at the top of the screen to open the menu." +msgstr "" + +#: ../../user/eotk.rst:26 +msgid "" +"You will see a ✅ or ❌ in the \"EOTK\" column for the group to show " +"whether or not EOTK instances are enabled for that group." +msgstr "" + +#: ../../user/eotk.rst:30 +msgid "Creating a new group" +msgstr "" + +#: ../../user/eotk.rst:32 +msgid "" +"If the group you would like to use EOTK for does not yet exist, create a " +"new group by clicking the \"Create new group\" button." +msgstr "" + +#: ../../user/eotk.rst:39 +msgid "Short Name" +msgstr "" + +#: ../../user/eotk.rst:41 +msgid "" +"This must be a unique short name for the group. It needs to be short. No " +"more than 4-5 characters." +msgstr "" + +#: ../../user/eotk.rst:44 ../../user/eotk.rst:62 ../../user/eotk.rst:88 +msgid "Description" +msgstr "" + +#: ../../user/eotk.rst:46 ../../user/eotk.rst:64 +msgid "A free-form description for the group." +msgstr "" + +#: ../../user/eotk.rst:49 ../../user/eotk.rst:67 +msgid "Deploy EOTK instances" +msgstr "" + +#: ../../user/eotk.rst:51 ../../user/eotk.rst:69 +msgid "Tick this checkbox to deploy EOTK instances for this group." +msgstr "" + +#: ../../user/eotk.rst:54 +msgid "Adding EOTK to an existing group" +msgstr "" + +#: ../../user/eotk.rst:56 +msgid "Click \"View/Edit\" next to the group that you'd like to edit." +msgstr "" + +#: ../../user/eotk.rst:72 +msgid "Managing Onion services" +msgstr "" + +#: ../../user/eotk.rst:74 +msgid "" +"To create a new Onion service, click \"Create new onion service\" at the " +"top of the list page. This will present you with the new onion service " +"form:" +msgstr "" + +#: ../../user/eotk.rst:81 +msgid "Domain Name" +msgstr "" + +#: ../../user/eotk.rst:83 +msgid "" +"The base origin domain name that the Onion service will be for. This " +"should be the common domain name of all the subdomains you want to serve " +"on the Onion service, not including any subdomain (e.g. example.com not " +"www.example.com)." +msgstr "" + +#: ../../user/eotk.rst:90 +msgid "A free-form text description to help identify the Onion service." +msgstr "" + +#: ../../user/eotk.rst:93 +msgid "Onion Private Key" +msgstr "" + +#: ../../user/eotk.rst:95 +msgid "" +"The private key for the Onion service. This could be generated by ``tor``" +" or by a tool such as `mkp224o `_." +msgstr "" + +#: ../../user/eotk.rst:99 +msgid "Onion Public Key" +msgstr "" + +#: ../../user/eotk.rst:101 +msgid "" +"The corresponding public key. The Onion hostname will be derived from the" +" public key, however no checks are made to ensure that the public key is " +"the correct key to correspond to the private key." +msgstr "" + +#: ../../user/eotk.rst:105 +msgid "TLS Private Key (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:107 +msgid "" +"The PEM formatted TLS private key. If not specified, the self-signed " +"certificates generated by EOTK will be used. Beware that in that case, " +"each EOTK instance will have different TLS keys and certificates." +msgstr "" + +#: ../../user/eotk.rst:111 +msgid "TLS Certificate (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:113 +msgid "" +"The PEM formatted TLS certificate. Either a self-signed certificate, or a" +" certificate issued by an authority that will validate .onion hostnames. " +"This should be a wildcard cert for the domain name given above (e.g. " +"\\*.example.com)." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/index.po b/docs/locale/en/LC_MESSAGES/user/index.po new file mode 100644 index 0000000..5810c29 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/index.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/index.rst:2 +msgid "Introduction" +msgstr "" + +#: ../../user/index.rst:4 +msgid "" +"Censorship is the suppression of speech, public communication, or other " +"information. This may be done on the basis that such material is " +"considered objectionable, harmful, sensitive, or \"inconvenient\". " +"Regardless of the reasons for censorship, the technical measures taken to" +" implement it often look the same. The *Bypass Censorship* portal " +"provides a toolkit for circumventing censorship of Internet resources. " +"The circumvention methods available will often exploit either collateral " +"freedom, traffic obfuscation, or both in order to counter the measures " +"put in place by the censor." +msgstr "" + +#: ../../user/index.rst:12 +msgid "Collateral Freedom" +msgstr "" + +#: ../../user/index.rst:14 +msgid "*Used by:* :doc:`Web Mirrors `, :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:16 +msgid "" +"\"Collateral freedom\" is an anti-censorship strategy that attempts to " +"make it economically prohibitive for censors to block an Internet " +"resource. The way in which a censor restricts access to resources will " +"require knowing which content to block and which to allow. It's " +"incredibly difficult to achieve accuracy with filtering as the Internet " +"is comprised of untagged free-form content that must be categorised at " +"speed. This results in either over-blocking or under-blocking, and " +"neither of these are desirable properties for the censor." +msgstr "" + +#: ../../user/index.rst:23 +msgid "" +"This can be exploited by circumvention systems by deploying solutions at " +"places that are \"too big to block\", like cloud providers. Either " +"encryption or constantly rotating identifiers are then used to prevent " +"censors from identifying requests for censored information that is hosted" +" among other content. This forces censors to either allow access to the " +"censored information or take down entire services." +msgstr "" + +#: ../../user/index.rst:30 +msgid "Traffic Obfuscation" +msgstr "" + +#: ../../user/index.rst:32 +msgid "*Used by:* :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:34 +msgid "" +"\"Traffic Obfuscation\" is an anti-censorship strategy that attempts to " +"make it difficult to fingerprint traffic. This is more commonly used for " +"general censorship circumvention solutions rather than means of accessing" +" specific resources. There is a long tail of types of traffic on the " +"Internet, including critical infrastructure communications like " +"industrial control systems, point-of-sale systems and security systems. " +"This can be exploited by circumvention systems by making their traffic " +"look like one of these unclassified systems. Not being able to accurately" +" identify the traffic means that the cost of blocking access is unknown, " +"and so it is more difficult for a censor to justify the block." +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/lists.po b/docs/locale/en/LC_MESSAGES/user/lists.po new file mode 100644 index 0000000..8c50837 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/lists.po @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/lists.rst:2 +msgid "Distribution Lists" +msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user/mirrors.po b/docs/locale/en/LC_MESSAGES/user/mirrors.po new file mode 100644 index 0000000..bd81d54 --- /dev/null +++ b/docs/locale/en/LC_MESSAGES/user/mirrors.po @@ -0,0 +1,187 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/mirrors.rst:2 +msgid "Web Mirrors" +msgstr "" + +#: ../../user/mirrors.rst:5 +msgid "Background" +msgstr "" + +#: ../../user/mirrors.rst:7 +msgid "" +"A web mirror can help users by providing alternate URLs to access " +"censored resources, allowing them to bypass technical censorship and " +"access information that may be otherwise unavailable. Web proxies work by" +" forwarding requests to the original website, and providing a different " +"URL to access that content. By accessing the web proxy URL, users can " +"access the same content that would be blocked by censors if accessed " +"through the original website's URL." +msgstr "" + +#: ../../user/mirrors.rst:11 +msgid "" +"Web mirrors also use frequently changing URLs to evade censorship, making" +" it more difficult for censors to block access to the content. This " +"assumption of a limited lifetime is built-in to the system, allowing for " +"automated block detection to trigger the deployment of new URLs, and for " +"the :doc:`distribution lists ` to allow applications and end-users" +" to discover new URLs." +msgstr "" + +#: ../../user/mirrors.rst:16 +msgid "" +"Additionally, web proxies can be accessed via a normal web browser, " +"making them easily accessible to users without requiring any special " +"software or technical knowledge." +msgstr "" + +#: ../../user/mirrors.rst:19 +msgid "Architecture" +msgstr "" + +#: ../../user/mirrors.rst:21 +msgid "" +"Before configuring any web origins to create mirrors, you must first " +"configure an origin group. The group is used to organise larger numbers " +"of web origins so that mirrors can be created for them with a shared " +"configuration. The shared configuration will include which pools will " +"require mirrors for the origins." +msgstr "" + +#: ../../user/mirrors.rst:25 +msgid "" +"For each configured origin group, a smart proxy instance will be created " +"at each provider where proxies are deployed. This instance runs the " +"active proxy that will rewrite URLs in responses from the origin " +"webserver to ensure that all resources are loaded via the mirrors. Some " +"providers, e.g. Fastly, do not require an instance as they already " +"provide the means for URL re-writing in their standard functionality." +msgstr "" + +#: ../../user/mirrors.rst:29 +msgid "Web origins represent the source website that has been blocked." +msgstr "" + +#: ../../user/mirrors.rst:32 +msgid "Web Origins" +msgstr "" + +#: ../../user/mirrors.rst:35 +msgid "Rate Limiting" +msgstr "" + +#: ../../user/mirrors.rst:37 +msgid "" +"CDNs (Content Delivery Networks) can impose rate limiting on websites to " +"ensure that the network resources are efficiently utilized, to protect " +"the websites from DDoS (Distributed Denial of Service) attacks and to " +"maintain the quality of service for all the websites using the CDN." +msgstr "" + +#: ../../user/mirrors.rst:41 +msgid "" +"These rate limits will be sized according to the expected rate of " +"requests from an average user, however the mirror system is a bottleneck " +"that aggregates requests from multiple users and passes these on to the " +"original CDN. When a single system is used to send a large number of " +"requests to a CDN like this, the CDN may interpret this as a denial of " +"service (DoS) attack and prevent access to the website." +msgstr "" + +#: ../../user/mirrors.rst:46 +msgid "" +"Deploying mirrors for websites hosted on CDNs will require co-operation " +"from the CDN provider. If you find that mirrors are producing many \"Rate" +" Limited Exceeded\" or \"Access Denied\" errors then you may be suffering" +" from this problem. Ask your administrator to configure the `Bypass-Rate-" +"Limit-Token` header in the portal and at the CDN to disable the rate " +"limiting for requests originating via the mirrors." +msgstr "" + +#: ../../user/mirrors.rst:52 +msgid "New Web Origin" +msgstr "" + +#: ../../user/mirrors.rst:54 +msgid "" +"To create a new web origin, click \"Create new origin\" at the top of the" +" list. This will present you with the new origin form:" +msgstr "" + +#: ../../user/mirrors.rst:61 +msgid "Domain Name" +msgstr "" + +#: ../../user/mirrors.rst:63 +msgid "" +"Enter the domain name that you want to create a mirror for in this field." +" This is a required field." +msgstr "" + +#: ../../user/mirrors.rst:66 +msgid "Description" +msgstr "" + +#: ../../user/mirrors.rst:68 +msgid "" +"Enter a brief description of the website that you are creating a mirror " +"for in this field. This is also a required field." +msgstr "" + +#: ../../user/mirrors.rst:71 +msgid "Group" +msgstr "" + +#: ../../user/mirrors.rst:73 +msgid "" +"Select the group that you want the mirror to belong to from the drop-down" +" menu in this field. This is a required field." +msgstr "" + +#: ../../user/mirrors.rst:76 +msgid "Auto-Rotate" +msgstr "" + +#: ../../user/mirrors.rst:78 +msgid "" +"Select this field if you want to enable auto-rotation for the mirror. " +"This means that the mirror will automatically redeploy with a new domain " +"name if it is detected to be blocked. This field is optional and is " +"enabled by default." +msgstr "" + +#: ../../user/mirrors.rst:82 +msgid "Asset Domain" +msgstr "" + +#: ../../user/mirrors.rst:84 +msgid "" +"Select this field if you want to use mirrors of this domain to host " +"assets for other domains. This is an optional field and is disabled by " +"default. All of the asset domains within a group will be available for " +"all mirrors using smart proxies. The smart proxy will rewrite URLs for " +"the asset domains that are included in the source code of the mirror " +"hosted by a smart proxy." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/api/config.po b/docs/locale/pl/LC_MESSAGES/admin/api/config.po new file mode 100644 index 0000000..f6da429 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/api/config.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/config.rst:3 +msgid "Configuration File" +msgstr "" + +#: ../../admin/api/config.rst:5 +msgid "" +"The application uses a YAML configuration file to specify various " +"settings. The configuration file should follow the YAML syntax and " +"provide values for the following fields:" +msgstr "" + +#: ../../admin/api/config.rst:7 +msgid "" +"`DEFAULT_REDIRECTOR_DOMAIN`: The default domain name to use for " +"generating short links when no pool-specific redirector domain is " +"provided. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:8 +msgid "" +"`MIRROR_COUNTRIES`: A list of country codes for which clients should be " +"redirected to a mirror server. If a client's IP address matches one of " +"the specified countries, they will be redirected. If not specified, " +"clients will always be redirected to a mirror server." +msgstr "" + +#: ../../admin/api/config.rst:9 +msgid "" +"`PUBLIC_KEY`: The public API key used for generating short links for " +"anonymous users. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:10 +msgid "" +"`UPDATE_KEY`: The API key required for updating the application data via " +"the `/updt` endpoint. This key must be provided in the `Authorization` " +"header as a bearer token." +msgstr "" + +#: ../../admin/api/config.rst:11 +msgid "" +"`GEOIP_DATABASE` (optional): The file path to the GeoIP database used for" +" country lookup. If not specified, it defaults to " +"`/usr/share/GeoIP/GeoIP2-Country.mmdb`." +msgstr "" + +#: ../../admin/api/config.rst:14 +msgid "Example Configuration" +msgstr "" + +#: ../../admin/api/config.rst:16 +msgid "An example configuration file may look like this:" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/api/index.po b/docs/locale/pl/LC_MESSAGES/admin/api/index.po new file mode 100644 index 0000000..e69de29 diff --git a/docs/locale/pl/LC_MESSAGES/admin/api/install.po b/docs/locale/pl/LC_MESSAGES/admin/api/install.po new file mode 100644 index 0000000..6c53cc6 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/api/install.po @@ -0,0 +1,115 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/install.rst:3 +msgid "Installation" +msgstr "" + +#: ../../admin/api/install.rst:5 +msgid "" +"The application is intended to be deployed in AWS using the `bc-" +"redirector `_ Terraform module. This deployment is not managed" +" through the portal itself but may be managed alongside the IaC that " +"manages the deployment of the portal itself." +msgstr "" + +#: ../../admin/api/install.rst:12 +msgid "Deployment" +msgstr "" + +#: ../../admin/api/install.rst:14 +msgid "" +"The Terraform module takes care of setting up multiple entry-points to " +"the redirector allowing for per-pool redirector domains, and also " +"generating the necessary configuration file for the redirector. Once " +"deployed, the redirector will not require further manual configuration, " +"although the deployed EC2 instance will be accessible via AWS Systems " +"Manager Session Manager if required for debugging." +msgstr "" + +#: ../../admin/api/install.rst:19 +msgid "The following Terraform configuration shows an example using the module:" +msgstr "" + +#: ../../admin/api/install.rst:47 +msgid "" +"The `public_key` must match the API key of the public pool configured " +"within the portal. The `update_key` may must match the \"filename\" " +"configured for the distribution list below." +msgstr "" + +#: ../../admin/api/install.rst:50 +msgid "" +"The MaxMind account used will need to have at least a subscription for " +"the GeoIP2 Country database. A subscription for GeoIP2 City will include " +"the GeoIP2 Country database." +msgstr "" + +#: ../../admin/api/install.rst:55 +msgid "Data Updates" +msgstr "" + +#: ../../admin/api/install.rst:57 +msgid "" +"Once deployed, the redirector must learn about the available mirror " +"resources. This requires configuring a :doc:`distribution list " +"<../../user/lists>` inside the portal." +msgstr "" + +#: ../../admin/api/install.rst:60 +msgid "**Resource Pool**: any (ignored)" +msgstr "" + +#: ../../admin/api/install.rst:61 +msgid "**Provider**: HTTP POST" +msgstr "" + +#: ../../admin/api/install.rst:62 +msgid "**Distribution Method**: Redirector Data" +msgstr "" + +#: ../../admin/api/install.rst:63 +msgid "**Encoding**: JSON (Plain)" +msgstr "" + +#: ../../admin/api/install.rst:64 +msgid "**Description**: <*description of the redirector instance*>" +msgstr "" + +#: ../../admin/api/install.rst:65 +msgid "**Container**: \\https://<*redirector domain*>/updt" +msgstr "" + +#: ../../admin/api/install.rst:66 +msgid "**Git Branch/Region**: na" +msgstr "" + +#: ../../admin/api/install.rst:67 +msgid "**Role ARN**: <*blank*>" +msgstr "" + +#: ../../admin/api/install.rst:68 +msgid "**Filename**: <*update key*>" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/conf.po b/docs/locale/pl/LC_MESSAGES/admin/conf.po new file mode 100644 index 0000000..7e08aac --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/conf.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/conf.rst:2 +msgid "Configuration File" +msgstr "" + +#: ../../admin/conf.rst:4 +msgid "" +"A file named ``config.yaml`` must exist. For specifics about the provider" +" configurations, see :doc:`External Services `." +msgstr "" + +#: ../../admin/conf.rst:8 +msgid "Base Configuration" +msgstr "" + +#: ../../admin/conf.rst:11 +msgid "Template" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/eotk.po b/docs/locale/pl/LC_MESSAGES/admin/eotk.po new file mode 100644 index 0000000..729e0ba --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/eotk.po @@ -0,0 +1,144 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../admin/eotk.rst:4 +msgid "" +"When EOTK instances are deployed for a group, the following main AWS " +"resources are created:" +msgstr "" + +#: ../../admin/eotk.rst:6 +msgid "An EC2 instance in us-east-2" +msgstr "" + +#: ../../admin/eotk.rst:7 +msgid "An EC2 instance in eu-central-1" +msgstr "" + +#: ../../admin/eotk.rst:8 +msgid "A S3 bucket to hold nginx access logs" +msgstr "" + +#: ../../admin/eotk.rst:10 +msgid "" +"The EC2 instances are running Ubuntu 20.04 LTS and are configured with " +"`ssm-agent `_ and `unattended-upgrades " +"`_." +msgstr "" + +#: ../../admin/eotk.rst:13 +msgid "" +"EOTK is automatically cloned at instance creation time from Alec Muffet's" +" `GitHub repository `_ to " +"``/home/ubuntu/eotk``. The script to automatically build and install all " +"dependencies is also executed at the instance creation time." +msgstr "" + +#: ../../admin/eotk.rst:17 +msgid "" +"For full details on the instance configuration, refer to the `cloud-init " +"user data `_." +msgstr "" + +#: ../../admin/eotk.rst:21 +msgid "Logging in to an instance" +msgstr "" + +#: ../../admin/eotk.rst:24 +msgid "Via the console" +msgstr "" + +#: ../../admin/eotk.rst:26 +msgid "" +"Using the AWS console, visit the `Session Manager `_ in the Systems Manager service. If " +"using SSO, login before attempting to open the link." +msgstr "" + +#: ../../admin/eotk.rst:33 +msgid "Click \"Start Session\" to start a new session." +msgstr "" + +#: ../../admin/eotk.rst:38 +msgid "" +"Select the instance from the list, and click \"Start Session\" again. " +"Remember that the second instance will be found in the eu-central-1 " +"region." +msgstr "" + +#: ../../admin/eotk.rst:44 +msgid "" +"Use the following commands to get into the EOTK directory as the correct " +"user::" +msgstr "" + +#: ../../admin/eotk.rst:50 +msgid "Via the command line" +msgstr "" + +#: ../../admin/eotk.rst:52 +msgid "Begin by discovering the instance ID::" +msgstr "" + +#: ../../admin/eotk.rst:56 +msgid "Start an SSM session::" +msgstr "" + +#: ../../admin/eotk.rst:60 +msgid "To login with SSH via SSM, add the following to your ``~/.ssh/config``:" +msgstr "" + +#: ../../admin/eotk.rst:64 +msgid "" +"No user SSH public keys are provisioned to the instance. You will need to" +" add the public key you plan to use to the correct user's authorized_keys" +" file using a plain SSM session before attempting to use SSH." +msgstr "" + +#: ../../admin/eotk.rst:72 +msgid "" +"You can then login with SSH, but be sure to include environment variables" +" for your AWS region::" +msgstr "" + +#: ../../admin/eotk.rst:76 +msgid "This will also work for scp, rsync, etc." +msgstr "" + +#: ../../admin/eotk.rst:79 +msgid "Configuring EOTK" +msgstr "" + +#: ../../admin/eotk.rst:81 +msgid "" +"Refer to the `EOTK documentation " +"`_." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/external.po b/docs/locale/pl/LC_MESSAGES/admin/external.po new file mode 100644 index 0000000..ee1835e --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/external.po @@ -0,0 +1,247 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/external.rst:2 +msgid "External Services" +msgstr "" + +#: ../../admin/external.rst:5 +msgid "Overview" +msgstr "" + +#: ../../admin/external.rst:7 +msgid "" +"In order to deploy the circumvention resources, the following providers " +"can be used:" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Resource" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:25 +msgid "AWS" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Azure" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Fastly" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Hetzner" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "GandiCloud VPS" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:129 +msgid "OVH" +msgstr "" + +#: ../../admin/external.rst:12 +msgid "Web Proxy" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "✅" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "❌" +msgstr "" + +#: ../../admin/external.rst:14 +msgid "Tor Bridge" +msgstr "" + +#: ../../admin/external.rst:17 +msgid "Circumvention resource lists can be distributed via:" +msgstr "" + +#: ../../admin/external.rst:19 +msgid "AWS S3" +msgstr "" + +#: ../../admin/external.rst:20 ../../admin/external.rst:64 +msgid "GitHub" +msgstr "" + +#: ../../admin/external.rst:21 ../../admin/external.rst:96 +msgid "GitLab" +msgstr "" + +#: ../../admin/external.rst:22 +msgid "HTTP POST" +msgstr "" + +#: ../../admin/external.rst:27 +msgid "" +"Configuring AWS will require an `IAM account " +"`_" +" with programmatic access. As the portal may deploy resources using many " +"AWS services it is currently It is recommended that a dedicated account " +"is used for the deployement of portal managed resources. The dedicated " +"account may be part of an existing AWS organisation." +msgstr "" + +#: ../../admin/external.rst:42 +msgid "Route 53" +msgstr "" + +#: ../../admin/external.rst:44 +msgid "" +"Some resources that can be deployed via the portal, e.g. mirrors, rely on" +" DNS names to map internal connections. These DNS names are only used " +"within AWS and are never accessed directly by end users. A registered " +"domain must be used for this purpose." +msgstr "" + +#: ../../admin/external.rst:48 +msgid "" +"Once a domain name has been registered, `create a hosted zone " +"`_" +" within Route 53. Ensure that the domain registrar is updated to point to" +" the Route 53 nameservers. Optionally, enable DNSSEC to improve the " +"security of the hosted zone. Add the domain name, including the " +"terminating period, to the configuration for the portal:" +msgstr "" + +#: ../../admin/external.rst:61 +msgid "" +"Do not create any other records on this domain manually as these may " +"conflict with names created by the portal." +msgstr "" + +#: ../../admin/external.rst:66 +msgid "" +"To configure GitHub, you will need a \"personal access token\". It is not" +" possible to restrict a token to specific repositories, so it is best to " +"create a `machine user `_ and then invite that user to only " +"the repositories that should be accessed to limit the impact of a token " +"disclosure." +msgstr "" + +#: ../../admin/external.rst:73 +msgid "" +"To create a token, visit the `New personal access token " +"`_ page of the GitHub settings. " +"Add a note so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitHub will `send an email warning " +"`_ before the token expires allowing you to " +"generate a new token and update your configuration." +msgstr "" + +#: ../../admin/external.rst:81 +msgid "" +"Your access token will need the \"repo\" OAuth scope. If you are only " +"using public repos, you could limit the token to use the \"public_repo\" " +"scope." +msgstr "" + +#: ../../admin/external.rst:84 ../../admin/external.rst:117 +msgid "Once you've generated your token, you can add it to your ``config.yaml``:" +msgstr "" + +#: ../../admin/external.rst:92 ../../admin/external.rst:125 +msgid "" +"The organisation, repository, filename and formats are all configured via" +" the portal interface under :doc:`mirror lists <../user/lists>`." +msgstr "" + +#: ../../admin/external.rst:98 +msgid "" +"To configure GitLab, you will need an access token. GitLab has a variety " +"of scoped access tokens, including `personal " +"`_, " +"`group " +"`_" +" and `project " +"`_" +" access tokens. Create the type of token that is suitable according to " +"your threat model." +msgstr "" + +#: ../../admin/external.rst:107 +msgid "" +"Add a name so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitLab will send an email warning to token owners 7 days " +"before expiry allowing you to generate a new token and update your " +"configuration." +msgstr "" + +#: ../../admin/external.rst:113 +msgid "" +"Your access token will need the \"api\" scope. Unforunately the " +"\"write_repository\" scope only works for Git-over-HTTPS, but the portal " +"uses the API to update mirror lists in GitLab." +msgstr "" + +#: ../../admin/external.rst:131 +msgid "" +"OVH requires two different sets of credentials. The first is for the " +"OpenStack Horizon API, and the second for the OVH API." +msgstr "" + +#: ../../admin/external.rst:134 +msgid "" +"OVH provides documentation on creating the OpenStack Horizon user `here " +"`_. As the portal will manage " +"all resources within your OVH project, it is fine to allow for the user " +"to have \"Administrator\" access." +msgstr "" + +#: ../../admin/external.rst:139 +msgid "" +"Once you have the username and password, you can complete the first " +"fields of the configuration:" +msgstr "" + +#: ../../admin/external.rst:149 +msgid "" +"You can find the tenant ID in the top-left corner of the OVH cloud " +"dashboard, or in the `OpenStack RC file `_ available for " +"download in the Horizon interface." +msgstr "" + +#: ../../admin/external.rst:157 +msgid "" +"Finally, you'll need to create credentials for the OVH API. Go to the " +"`key creation page `_ and add an " +"application name and description to remind you later what the token is " +"for. Set a validity (expiry) according to your threat model. This token " +"is only used for read-only access, so it is sufficient to allow only GET " +"requests. Place an asterisk (*) in the text box to the right of GET so " +"that API paths are allowed." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/admin/install.po b/docs/locale/pl/LC_MESSAGES/admin/install.po new file mode 100644 index 0000000..7b1f52a --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/admin/install.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/install.rst:2 +msgid "Installation" +msgstr "" + +#: ../../admin/install.rst:4 +msgid "" +"The current installation method is to use a Python virtual envrionment. " +"Many of the dependencies needed by the portal can be installed from PyPI," +" although some dependencies will need to be satisfied in other ways:" +msgstr "" + +#: ../../admin/install.rst:8 +msgid "A cron daemon - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:9 +msgid "Terraform binary - static binaries available from Hashicorp" +msgstr "" + +#: ../../admin/install.rst:10 +msgid "PostgreSQL server - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:12 +msgid "Create and activate a virtual environment with:" +msgstr "" + +#: ../../admin/install.rst:20 +msgid "You will need to install an entry into the portal user's crontab::" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/index.po b/docs/locale/pl/LC_MESSAGES/index.po new file mode 100644 index 0000000..569fcf5 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/index.po @@ -0,0 +1,115 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../index.rst:7 +msgid "User Guide" +msgstr "" + +#: ../../index.rst:18 +msgid "Publisher Guide" +msgstr "" + +#: ../../index.rst:24 +msgid "Admin Guide" +msgstr "" + +#: ../../index.rst:34 +msgid "Technical Documentation" +msgstr "" + +#: ../../index.rst:2 +msgid "Documentation Home" +msgstr "" + +#: ../../index.rst:45 +msgid "Indices and tables" +msgstr "" + +#: ../../index.rst:47 +msgid ":ref:`genindex`" +msgstr "" + +#: ../../index.rst:48 +msgid ":ref:`modindex`" +msgstr "" + +#: ../../index.rst:49 +msgid ":ref:`search`" +msgstr "" + +#: ../../index.rst:52 +msgid "Maintained by" +msgstr "" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "|logo-gp|" +msgstr "" + +#: ../../index.rst:76 +msgid "Guardian Project" +msgstr "" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "`Guardian Project `_" +msgstr "" + +#: ../../index.rst:59 +msgid "Developed by" +msgstr "" + +#: ../../index.rst:64 +msgid "|logo-tor|" +msgstr "" + +#: ../../index.rst:80 +msgid "Tor Project" +msgstr "" + +#: ../../index.rst:64 +msgid "`Tor Project `_" +msgstr "" + +#: ../../index.rst:68 +msgid "Supported by [*]_" +msgstr "" + +#: ../../index.rst:71 +msgid "|logo-otf|" +msgstr "" + +#: ../../index.rst:84 +msgid "Open Technology Fund" +msgstr "" + +#: ../../index.rst:71 +msgid "`Open Technology Fund `_" +msgstr "" + +#: ../../index.rst:89 +msgid "Footnotes" +msgstr "" + +#: ../../index.rst:90 +msgid "Support received does not imply endorsement." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/publisher/api.po b/docs/locale/pl/LC_MESSAGES/publisher/api.po new file mode 100644 index 0000000..6271f73 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/publisher/api.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../publisher/api.rst:3 +msgid "Publisher API" +msgstr "" + +#: ../../:1 +msgid "**Retrieve information about the authenticated user's pool**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Query Parameters" +msgstr "" + +#: ../../:1 +msgid "The API key of the pool. If not provided, the public API key is used." +msgstr "" + +#: ../../:1 +msgid "**Example request:**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Status Codes" +msgstr "" + +#: ../../:1 +msgid "" +"Success **Example response:** .. sourcecode:: http HTTP/1.1 200 OK" +" Content-Type: application/json {}" +msgstr "" + +#: ../../:1 +msgid "Success" +msgstr "" + +#: ../../:1 +msgid "**Example response:**" +msgstr "" + +#: ../../:1 +msgid "Invalid API key" +msgstr "" + +#: ../../:1 +msgid "**Generate a circumvention link for a specific resource**" +msgstr "" + +#: ../../:1 +msgid "The URL for which a circumvention link needs to be generated. (Required)" +msgstr "" + +#: ../../:1 +msgid "" +"The type of link to generate. Valid values are \"live\", \"short\", or " +"\"snapshot\". If not provided, \"direct\" is used." +msgstr "" + +#: ../../:1 +msgid "" +"The duration that a snapshot will remain published for. Valid values are " +"\"long\" and \"short\". If not provided, \"short\" is used." +msgstr "" + +#: ../../:1 +msgid "Defines the footer text to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Defines the footer link to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Resource not on a supported domain" +msgstr "" + +#: ../../:1 +msgid "No live mirror exists for the resource" +msgstr "" + +#: ../../:1 +msgid "Could not generate a snapshot for the resource" +msgstr "" + +#: ../../:1 +msgid "**Redirect to the live mirror associated with the given hash**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Parameters" +msgstr "" + +#: ../../:1 +msgid "The hash associated with the short link" +msgstr "" + +#: ../../:1 +msgid "Always redirect to a mirror and ignore GeoIP information." +msgstr "" + +#: ../../:1 +msgid "" +"Override the client IP address and base the GeoIP lookup on this IP " +"address instead." +msgstr "" + +#: ../../:1 +msgid "Redirects the client to the original URL" +msgstr "" + +#: ../../:1 +msgid "The hash is invalid or not found" +msgstr "" + +#: ../../publisher/api.rst +msgid "Response Headers" +msgstr "" + +#: ../../:1 +msgid "The URL of the live mirror" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/sphinx.po b/docs/locale/pl/LC_MESSAGES/sphinx.po new file mode 100644 index 0000000..8398cfd --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/sphinx.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../_templates/sidebar/ethical-ads.html:2 +msgid "Translations" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/tech/automation.po b/docs/locale/pl/LC_MESSAGES/tech/automation.po new file mode 100644 index 0000000..fd12499 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/tech/automation.po @@ -0,0 +1,140 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/automation.rst:2 +msgid "Automation Plugins" +msgstr "" + +#: ../../tech/automation.rst:5 +msgid "Base" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:1 of +msgid "" +"Write a Jinja2 template to the working directory for use by an automation" +" module." +msgstr "" + +#: ../../tech/automation.rst +msgid "Parameters" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:3 of +msgid "filename to write to" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:4 of +msgid "Jinja2 template" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:5 of +msgid "variables for use with the template" +msgstr "" + +#: ../../tech/automation.rst +msgid "Returns" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:6 +#: app.terraform.terraform.TerraformAutomation.tf_posthook:7 of +msgid "None" +msgstr "" + +#: ../../docstring app.terraform.BaseAutomation.working_dir:1 of +msgid "" +"The short name of the automation provider. This is used as an opaque " +"token throughout the portal system." +msgstr "" + +#: ../../tech/automation.rst:12 +msgid "Terraform" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation:1 of +msgid "" +"An abstract class to be extended by automation plugins using Terraform " +"providers to deploy resources." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.always_refresh:1 +#: of +msgid "Force refresh even when not a full run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:1 of +msgid "Runs the Terraform automation module. The run will follow these steps:" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:3 of +msgid "The :func:`tf_prehook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:4 of +msgid "" +"Generate a Terraform configuration and write it to a single ``main.tf`` " +"file in the working directory (see :func:`working_directory " +"`)." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:6 of +msgid "Run ``terraform init``." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:7 of +msgid "" +"Run ``terraform apply``. This will only include a refresh if *full* is " +"**True**. The apply will wait up to *lock_timeout* minutes for a lock to " +"be released before failing. Up to *parallelism* requests will be sent to " +"remote APIs concurrently." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:10 of +msgid "The :func:`tf_posthook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:11 of +msgid "The logs from the apply step are returned as a string." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:13 of +msgid "include a Terraform refresh in the automation module run" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:14 of +msgid "success status and Terraform apply logs" +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.parallelism:1 of +msgid "Default parallelism for remote API calls." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.provider:1 of +msgid "Short name for the provider used by this module." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:1 of +msgid "" +"This hook function is called as part of normal automation, after the " +"completion of :func:`tf_apply`." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/user/automation.po b/docs/locale/pl/LC_MESSAGES/user/automation.po new file mode 100644 index 0000000..b8570bc --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/user/automation.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/automation.rst:2 +msgid "Automation" +msgstr "" + +#: ../../user/automation.rst:4 +msgid "" +"When changes are made in the portal, the effects usually do not take " +"place immediately, but rather are stored in the database for an " +"automation job to action shortly after. There are many automation jobs " +"that run in the portal, and you can find an overview of them on the " +"\"Automation\" page, under \"Monitoring\" in the sidebar:" +msgstr "" + +#: ../../user/automation.rst:12 +msgid "" +"This page lists all the automation jobs, their current status, if they " +"are enabled, their last, and their next run times. The last run time is " +"updated after the completion of a run, and the next run time indicates " +"the earliest time that a job may be started by the scheduler, although it" +" may not start for up to a minute after this time." +msgstr "" + +#: ../../user/automation.rst:17 +msgid "" +"Once a task has started, the status will change from idle (🕰️) to running" +" (🏃). If the run completes successfully, it will revert to idle again " +"until the next run. If an error occurred (💥) then the module will " +"automatically be disabled to allow for an administrator to investigate." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/user/bridges.po b/docs/locale/pl/LC_MESSAGES/user/bridges.po new file mode 100644 index 0000000..e69de29 diff --git a/docs/locale/pl/LC_MESSAGES/user/eotk.po b/docs/locale/pl/LC_MESSAGES/user/eotk.po new file mode 100644 index 0000000..249767e --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/user/eotk.po @@ -0,0 +1,185 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../user/eotk.rst:4 +msgid "" +"Tor onion services, also known as hidden services, are websites that can " +"be accessed through the Tor network. These services are useful for " +"publishers because they allow them to host their content on the internet " +"without revealing their physical location or IP address. This can provide" +" a greater level of privacy and security for both the publisher and the " +"users accessing the content." +msgstr "" + +#: ../../user/eotk.rst:9 +msgid "" +"Because Tor onion services are accessed through the Tor network, they are" +" much more difficult to block or censor than regular websites. This is " +"because the connection between the user and the website is encrypted and " +"routed through multiple nodes on the network, making it difficult for " +"anyone to determine the source or destination of the traffic. This means " +"that even if one node on the network is blocked, the traffic can still be" +" routed through other nodes to reach the website." +msgstr "" + +#: ../../user/eotk.rst:16 +msgid "" +"To deploy an Onion service, you first need to deploy EOTK instances for " +"the related origin group, and then configure the individual Onion " +"services that will be served by those EOTK instances." +msgstr "" + +#: ../../user/eotk.rst:19 +msgid "" +"Once your administrator has provided you access to the portal, you can " +"begin to configure your onion service deployments. To get started, select" +" \"Groups\" under \"Configuration\" from the menu on the left hand side. " +"If you are using a mobile device, you may need to click the hamburger " +"icon at the top of the screen to open the menu." +msgstr "" + +#: ../../user/eotk.rst:26 +msgid "" +"You will see a ✅ or ❌ in the \"EOTK\" column for the group to show " +"whether or not EOTK instances are enabled for that group." +msgstr "" + +#: ../../user/eotk.rst:30 +msgid "Creating a new group" +msgstr "" + +#: ../../user/eotk.rst:32 +msgid "" +"If the group you would like to use EOTK for does not yet exist, create a " +"new group by clicking the \"Create new group\" button." +msgstr "" + +#: ../../user/eotk.rst:39 +msgid "Short Name" +msgstr "" + +#: ../../user/eotk.rst:41 +msgid "" +"This must be a unique short name for the group. It needs to be short. No " +"more than 4-5 characters." +msgstr "" + +#: ../../user/eotk.rst:44 ../../user/eotk.rst:62 ../../user/eotk.rst:88 +msgid "Description" +msgstr "" + +#: ../../user/eotk.rst:46 ../../user/eotk.rst:64 +msgid "A free-form description for the group." +msgstr "" + +#: ../../user/eotk.rst:49 ../../user/eotk.rst:67 +msgid "Deploy EOTK instances" +msgstr "" + +#: ../../user/eotk.rst:51 ../../user/eotk.rst:69 +msgid "Tick this checkbox to deploy EOTK instances for this group." +msgstr "" + +#: ../../user/eotk.rst:54 +msgid "Adding EOTK to an existing group" +msgstr "" + +#: ../../user/eotk.rst:56 +msgid "Click \"View/Edit\" next to the group that you'd like to edit." +msgstr "" + +#: ../../user/eotk.rst:72 +msgid "Managing Onion services" +msgstr "" + +#: ../../user/eotk.rst:74 +msgid "" +"To create a new Onion service, click \"Create new onion service\" at the " +"top of the list page. This will present you with the new onion service " +"form:" +msgstr "" + +#: ../../user/eotk.rst:81 +msgid "Domain Name" +msgstr "" + +#: ../../user/eotk.rst:83 +msgid "" +"The base origin domain name that the Onion service will be for. This " +"should be the common domain name of all the subdomains you want to serve " +"on the Onion service, not including any subdomain (e.g. example.com not " +"www.example.com)." +msgstr "" + +#: ../../user/eotk.rst:90 +msgid "A free-form text description to help identify the Onion service." +msgstr "" + +#: ../../user/eotk.rst:93 +msgid "Onion Private Key" +msgstr "" + +#: ../../user/eotk.rst:95 +msgid "" +"The private key for the Onion service. This could be generated by ``tor``" +" or by a tool such as `mkp224o `_." +msgstr "" + +#: ../../user/eotk.rst:99 +msgid "Onion Public Key" +msgstr "" + +#: ../../user/eotk.rst:101 +msgid "" +"The corresponding public key. The Onion hostname will be derived from the" +" public key, however no checks are made to ensure that the public key is " +"the correct key to correspond to the private key." +msgstr "" + +#: ../../user/eotk.rst:105 +msgid "TLS Private Key (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:107 +msgid "" +"The PEM formatted TLS private key. If not specified, the self-signed " +"certificates generated by EOTK will be used. Beware that in that case, " +"each EOTK instance will have different TLS keys and certificates." +msgstr "" + +#: ../../user/eotk.rst:111 +msgid "TLS Certificate (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:113 +msgid "" +"The PEM formatted TLS certificate. Either a self-signed certificate, or a" +" certificate issued by an authority that will validate .onion hostnames. " +"This should be a wildcard cert for the domain name given above (e.g. " +"\\*.example.com)." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/user/index.po b/docs/locale/pl/LC_MESSAGES/user/index.po new file mode 100644 index 0000000..107655d --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/user/index.po @@ -0,0 +1,92 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/index.rst:2 +msgid "Introduction" +msgstr "" + +#: ../../user/index.rst:4 +msgid "" +"Censorship is the suppression of speech, public communication, or other " +"information. This may be done on the basis that such material is " +"considered objectionable, harmful, sensitive, or \"inconvenient\". " +"Regardless of the reasons for censorship, the technical measures taken to" +" implement it often look the same. The *Bypass Censorship* portal " +"provides a toolkit for circumventing censorship of Internet resources. " +"The circumvention methods available will often exploit either collateral " +"freedom, traffic obfuscation, or both in order to counter the measures " +"put in place by the censor." +msgstr "" + +#: ../../user/index.rst:12 +msgid "Collateral Freedom" +msgstr "" + +#: ../../user/index.rst:14 +msgid "*Used by:* :doc:`Web Mirrors `, :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:16 +msgid "" +"\"Collateral freedom\" is an anti-censorship strategy that attempts to " +"make it economically prohibitive for censors to block an Internet " +"resource. The way in which a censor restricts access to resources will " +"require knowing which content to block and which to allow. It's " +"incredibly difficult to achieve accuracy with filtering as the Internet " +"is comprised of untagged free-form content that must be categorised at " +"speed. This results in either over-blocking or under-blocking, and " +"neither of these are desirable properties for the censor." +msgstr "" + +#: ../../user/index.rst:23 +msgid "" +"This can be exploited by circumvention systems by deploying solutions at " +"places that are \"too big to block\", like cloud providers. Either " +"encryption or constantly rotating identifiers are then used to prevent " +"censors from identifying requests for censored information that is hosted" +" among other content. This forces censors to either allow access to the " +"censored information or take down entire services." +msgstr "" + +#: ../../user/index.rst:30 +msgid "Traffic Obfuscation" +msgstr "" + +#: ../../user/index.rst:32 +msgid "*Used by:* :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:34 +msgid "" +"\"Traffic Obfuscation\" is an anti-censorship strategy that attempts to " +"make it difficult to fingerprint traffic. This is more commonly used for " +"general censorship circumvention solutions rather than means of accessing" +" specific resources. There is a long tail of types of traffic on the " +"Internet, including critical infrastructure communications like " +"industrial control systems, point-of-sale systems and security systems. " +"This can be exploited by circumvention systems by making their traffic " +"look like one of these unclassified systems. Not being able to accurately" +" identify the traffic means that the cost of blocking access is unknown, " +"and so it is more difficult for a censor to justify the block." +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/user/lists.po b/docs/locale/pl/LC_MESSAGES/user/lists.po new file mode 100644 index 0000000..8d5b5f1 --- /dev/null +++ b/docs/locale/pl/LC_MESSAGES/user/lists.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 15:12+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: pl\n" +"Language-Team: pl \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/lists.rst:2 +msgid "Distribution Lists" +msgstr "" + diff --git a/docs/locale/pl/LC_MESSAGES/user/mirrors.po b/docs/locale/pl/LC_MESSAGES/user/mirrors.po new file mode 100644 index 0000000..e69de29 diff --git a/docs/locale/ro/LC_MESSAGES/admin/api/config.po b/docs/locale/ro/LC_MESSAGES/admin/api/config.po new file mode 100644 index 0000000..f7b4c30 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/api/config.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/config.rst:3 +msgid "Configuration File" +msgstr "" + +#: ../../admin/api/config.rst:5 +msgid "" +"The application uses a YAML configuration file to specify various " +"settings. The configuration file should follow the YAML syntax and " +"provide values for the following fields:" +msgstr "" + +#: ../../admin/api/config.rst:7 +msgid "" +"`DEFAULT_REDIRECTOR_DOMAIN`: The default domain name to use for " +"generating short links when no pool-specific redirector domain is " +"provided. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:8 +msgid "" +"`MIRROR_COUNTRIES`: A list of country codes for which clients should be " +"redirected to a mirror server. If a client's IP address matches one of " +"the specified countries, they will be redirected. If not specified, " +"clients will always be redirected to a mirror server." +msgstr "" + +#: ../../admin/api/config.rst:9 +msgid "" +"`PUBLIC_KEY`: The public API key used for generating short links for " +"anonymous users. If not specified, it defaults to an empty string." +msgstr "" + +#: ../../admin/api/config.rst:10 +msgid "" +"`UPDATE_KEY`: The API key required for updating the application data via " +"the `/updt` endpoint. This key must be provided in the `Authorization` " +"header as a bearer token." +msgstr "" + +#: ../../admin/api/config.rst:11 +msgid "" +"`GEOIP_DATABASE` (optional): The file path to the GeoIP database used for" +" country lookup. If not specified, it defaults to " +"`/usr/share/GeoIP/GeoIP2-Country.mmdb`." +msgstr "" + +#: ../../admin/api/config.rst:14 +msgid "Example Configuration" +msgstr "" + +#: ../../admin/api/config.rst:16 +msgid "An example configuration file may look like this:" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/api/index.po b/docs/locale/ro/LC_MESSAGES/admin/api/index.po new file mode 100644 index 0000000..7064de4 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/api/index.po @@ -0,0 +1,136 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/index.rst:38 +msgid "Contents:" +msgstr "" + +#: ../../admin/api/index.rst:3 +msgid "Short Link Redirector" +msgstr "" + +#: ../../admin/api/index.rst:5 +msgid "" +"Welcome to the documentation for the *Bypass Censorship's Short Link " +"Redirector* application. This documentation provides detailed information" +" about the features, components, and usage of the application. The Short " +"Link Redirector is a web application that allows users to generate short " +"links and direct mirror links for URLs." +msgstr "" + +#: ../../admin/api/index.rst:8 +msgid "Features" +msgstr "" + +#: ../../admin/api/index.rst:10 +msgid "The Short Link Redirector application offers the following features:" +msgstr "" + +#: ../../admin/api/index.rst:12 +msgid "" +"Short Link Generation: Users can generate short links for URLs, making " +"them easier to share and remember." +msgstr "" + +#: ../../admin/api/index.rst:13 +msgid "" +"Direct Mirror Links: Users can generate and discover direct mirror links " +"that are currently live." +msgstr "" + +#: ../../admin/api/index.rst:14 +msgid "" +"Country-based Redirect: The application can redirect users to mirror " +"servers based on their country, improving user experience." +msgstr "" + +#: ../../admin/api/index.rst:15 +msgid "" +"API Key Authentication: Users can authenticate their requests using API " +"keys, enabling access to mirrors in private resource pools." +msgstr "" + +#: ../../admin/api/index.rst:16 +msgid "" +"GeoIP Integration: The application optionally leverages GeoIP data to " +"perform country lookups for IP addresses." +msgstr "" + +#: ../../admin/api/index.rst:19 +msgid "Components" +msgstr "" + +#: ../../admin/api/index.rst:21 +msgid "" +"The Short Link Redirector application consists of the following main " +"components:" +msgstr "" + +#: ../../admin/api/index.rst:23 +msgid "" +"Flask Web Server: The web server that hosts the application and handles " +"incoming HTTP requests." +msgstr "" + +#: ../../admin/api/index.rst:24 +msgid "" +"SQLAlchemy: The ORM (Object-Relational Mapping) library used for " +"interacting with the database." +msgstr "" + +#: ../../admin/api/index.rst:25 +msgid "" +"GeoIP Database: The MaxMind GeoIP database that provides country " +"information for IP addresses." +msgstr "" + +#: ../../admin/api/index.rst:26 +msgid "Hashids: The library used for encoding and decoding the short link hashes." +msgstr "" + +#: ../../admin/api/index.rst:29 +msgid "Documentation Structure" +msgstr "" + +#: ../../admin/api/index.rst:31 +msgid "This documentation is structured into the following sections:" +msgstr "" + +#: ../../admin/api/index.rst:33 +msgid "" +":doc:`Installation `: Provides instructions for installing and " +"setting up the Short Link Redirector application." +msgstr "" + +#: ../../admin/api/index.rst:34 +msgid "" +":doc:`Configuration `: Explains the configuration options and how" +" to customize the application's behavior." +msgstr "" + +#: ../../admin/api/index.rst:36 +msgid "" +"We recommend reading through the documentation sequentially to gain a " +"comprehensive understanding of the application and its features." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/api/install.po b/docs/locale/ro/LC_MESSAGES/admin/api/install.po new file mode 100644 index 0000000..5582ab5 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/api/install.po @@ -0,0 +1,115 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/api/install.rst:3 +msgid "Installation" +msgstr "" + +#: ../../admin/api/install.rst:5 +msgid "" +"The application is intended to be deployed in AWS using the `bc-" +"redirector `_ Terraform module. This deployment is not managed" +" through the portal itself but may be managed alongside the IaC that " +"manages the deployment of the portal itself." +msgstr "" + +#: ../../admin/api/install.rst:12 +msgid "Deployment" +msgstr "" + +#: ../../admin/api/install.rst:14 +msgid "" +"The Terraform module takes care of setting up multiple entry-points to " +"the redirector allowing for per-pool redirector domains, and also " +"generating the necessary configuration file for the redirector. Once " +"deployed, the redirector will not require further manual configuration, " +"although the deployed EC2 instance will be accessible via AWS Systems " +"Manager Session Manager if required for debugging." +msgstr "" + +#: ../../admin/api/install.rst:19 +msgid "The following Terraform configuration shows an example using the module:" +msgstr "" + +#: ../../admin/api/install.rst:47 +msgid "" +"The `public_key` must match the API key of the public pool configured " +"within the portal. The `update_key` may must match the \"filename\" " +"configured for the distribution list below." +msgstr "" + +#: ../../admin/api/install.rst:50 +msgid "" +"The MaxMind account used will need to have at least a subscription for " +"the GeoIP2 Country database. A subscription for GeoIP2 City will include " +"the GeoIP2 Country database." +msgstr "" + +#: ../../admin/api/install.rst:55 +msgid "Data Updates" +msgstr "" + +#: ../../admin/api/install.rst:57 +msgid "" +"Once deployed, the redirector must learn about the available mirror " +"resources. This requires configuring a :doc:`distribution list " +"<../../user/lists>` inside the portal." +msgstr "" + +#: ../../admin/api/install.rst:60 +msgid "**Resource Pool**: any (ignored)" +msgstr "" + +#: ../../admin/api/install.rst:61 +msgid "**Provider**: HTTP POST" +msgstr "" + +#: ../../admin/api/install.rst:62 +msgid "**Distribution Method**: Redirector Data" +msgstr "" + +#: ../../admin/api/install.rst:63 +msgid "**Encoding**: JSON (Plain)" +msgstr "" + +#: ../../admin/api/install.rst:64 +msgid "**Description**: <*description of the redirector instance*>" +msgstr "" + +#: ../../admin/api/install.rst:65 +msgid "**Container**: \\https://<*redirector domain*>/updt" +msgstr "" + +#: ../../admin/api/install.rst:66 +msgid "**Git Branch/Region**: na" +msgstr "" + +#: ../../admin/api/install.rst:67 +msgid "**Role ARN**: <*blank*>" +msgstr "" + +#: ../../admin/api/install.rst:68 +msgid "**Filename**: <*update key*>" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/conf.po b/docs/locale/ro/LC_MESSAGES/admin/conf.po new file mode 100644 index 0000000..6094536 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/conf.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/conf.rst:2 +msgid "Configuration File" +msgstr "" + +#: ../../admin/conf.rst:4 +msgid "" +"A file named ``config.yaml`` must exist. For specifics about the provider" +" configurations, see :doc:`External Services `." +msgstr "" + +#: ../../admin/conf.rst:8 +msgid "Base Configuration" +msgstr "" + +#: ../../admin/conf.rst:11 +msgid "Template" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/eotk.po b/docs/locale/ro/LC_MESSAGES/admin/eotk.po new file mode 100644 index 0000000..cf21c26 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/eotk.po @@ -0,0 +1,144 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../admin/eotk.rst:4 +msgid "" +"When EOTK instances are deployed for a group, the following main AWS " +"resources are created:" +msgstr "" + +#: ../../admin/eotk.rst:6 +msgid "An EC2 instance in us-east-2" +msgstr "" + +#: ../../admin/eotk.rst:7 +msgid "An EC2 instance in eu-central-1" +msgstr "" + +#: ../../admin/eotk.rst:8 +msgid "A S3 bucket to hold nginx access logs" +msgstr "" + +#: ../../admin/eotk.rst:10 +msgid "" +"The EC2 instances are running Ubuntu 20.04 LTS and are configured with " +"`ssm-agent `_ and `unattended-upgrades " +"`_." +msgstr "" + +#: ../../admin/eotk.rst:13 +msgid "" +"EOTK is automatically cloned at instance creation time from Alec Muffet's" +" `GitHub repository `_ to " +"``/home/ubuntu/eotk``. The script to automatically build and install all " +"dependencies is also executed at the instance creation time." +msgstr "" + +#: ../../admin/eotk.rst:17 +msgid "" +"For full details on the instance configuration, refer to the `cloud-init " +"user data `_." +msgstr "" + +#: ../../admin/eotk.rst:21 +msgid "Logging in to an instance" +msgstr "" + +#: ../../admin/eotk.rst:24 +msgid "Via the console" +msgstr "" + +#: ../../admin/eotk.rst:26 +msgid "" +"Using the AWS console, visit the `Session Manager `_ in the Systems Manager service. If " +"using SSO, login before attempting to open the link." +msgstr "" + +#: ../../admin/eotk.rst:33 +msgid "Click \"Start Session\" to start a new session." +msgstr "" + +#: ../../admin/eotk.rst:38 +msgid "" +"Select the instance from the list, and click \"Start Session\" again. " +"Remember that the second instance will be found in the eu-central-1 " +"region." +msgstr "" + +#: ../../admin/eotk.rst:44 +msgid "" +"Use the following commands to get into the EOTK directory as the correct " +"user::" +msgstr "" + +#: ../../admin/eotk.rst:50 +msgid "Via the command line" +msgstr "" + +#: ../../admin/eotk.rst:52 +msgid "Begin by discovering the instance ID::" +msgstr "" + +#: ../../admin/eotk.rst:56 +msgid "Start an SSM session::" +msgstr "" + +#: ../../admin/eotk.rst:60 +msgid "To login with SSH via SSM, add the following to your ``~/.ssh/config``:" +msgstr "" + +#: ../../admin/eotk.rst:64 +msgid "" +"No user SSH public keys are provisioned to the instance. You will need to" +" add the public key you plan to use to the correct user's authorized_keys" +" file using a plain SSM session before attempting to use SSH." +msgstr "" + +#: ../../admin/eotk.rst:72 +msgid "" +"You can then login with SSH, but be sure to include environment variables" +" for your AWS region::" +msgstr "" + +#: ../../admin/eotk.rst:76 +msgid "This will also work for scp, rsync, etc." +msgstr "" + +#: ../../admin/eotk.rst:79 +msgid "Configuring EOTK" +msgstr "" + +#: ../../admin/eotk.rst:81 +msgid "" +"Refer to the `EOTK documentation " +"`_." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/external.po b/docs/locale/ro/LC_MESSAGES/admin/external.po new file mode 100644 index 0000000..4f1d906 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/external.po @@ -0,0 +1,247 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/external.rst:2 +msgid "External Services" +msgstr "" + +#: ../../admin/external.rst:5 +msgid "Overview" +msgstr "" + +#: ../../admin/external.rst:7 +msgid "" +"In order to deploy the circumvention resources, the following providers " +"can be used:" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Resource" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:25 +msgid "AWS" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Azure" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Fastly" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "Hetzner" +msgstr "" + +#: ../../admin/external.rst:10 +msgid "GandiCloud VPS" +msgstr "" + +#: ../../admin/external.rst:10 ../../admin/external.rst:129 +msgid "OVH" +msgstr "" + +#: ../../admin/external.rst:12 +msgid "Web Proxy" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "✅" +msgstr "" + +#: ../../admin/external.rst:12 ../../admin/external.rst:14 +msgid "❌" +msgstr "" + +#: ../../admin/external.rst:14 +msgid "Tor Bridge" +msgstr "" + +#: ../../admin/external.rst:17 +msgid "Circumvention resource lists can be distributed via:" +msgstr "" + +#: ../../admin/external.rst:19 +msgid "AWS S3" +msgstr "" + +#: ../../admin/external.rst:20 ../../admin/external.rst:64 +msgid "GitHub" +msgstr "" + +#: ../../admin/external.rst:21 ../../admin/external.rst:96 +msgid "GitLab" +msgstr "" + +#: ../../admin/external.rst:22 +msgid "HTTP POST" +msgstr "" + +#: ../../admin/external.rst:27 +msgid "" +"Configuring AWS will require an `IAM account " +"`_" +" with programmatic access. As the portal may deploy resources using many " +"AWS services it is currently It is recommended that a dedicated account " +"is used for the deployement of portal managed resources. The dedicated " +"account may be part of an existing AWS organisation." +msgstr "" + +#: ../../admin/external.rst:42 +msgid "Route 53" +msgstr "" + +#: ../../admin/external.rst:44 +msgid "" +"Some resources that can be deployed via the portal, e.g. mirrors, rely on" +" DNS names to map internal connections. These DNS names are only used " +"within AWS and are never accessed directly by end users. A registered " +"domain must be used for this purpose." +msgstr "" + +#: ../../admin/external.rst:48 +msgid "" +"Once a domain name has been registered, `create a hosted zone " +"`_" +" within Route 53. Ensure that the domain registrar is updated to point to" +" the Route 53 nameservers. Optionally, enable DNSSEC to improve the " +"security of the hosted zone. Add the domain name, including the " +"terminating period, to the configuration for the portal:" +msgstr "" + +#: ../../admin/external.rst:61 +msgid "" +"Do not create any other records on this domain manually as these may " +"conflict with names created by the portal." +msgstr "" + +#: ../../admin/external.rst:66 +msgid "" +"To configure GitHub, you will need a \"personal access token\". It is not" +" possible to restrict a token to specific repositories, so it is best to " +"create a `machine user `_ and then invite that user to only " +"the repositories that should be accessed to limit the impact of a token " +"disclosure." +msgstr "" + +#: ../../admin/external.rst:73 +msgid "" +"To create a token, visit the `New personal access token " +"`_ page of the GitHub settings. " +"Add a note so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitHub will `send an email warning " +"`_ before the token expires allowing you to " +"generate a new token and update your configuration." +msgstr "" + +#: ../../admin/external.rst:81 +msgid "" +"Your access token will need the \"repo\" OAuth scope. If you are only " +"using public repos, you could limit the token to use the \"public_repo\" " +"scope." +msgstr "" + +#: ../../admin/external.rst:84 ../../admin/external.rst:117 +msgid "Once you've generated your token, you can add it to your ``config.yaml``:" +msgstr "" + +#: ../../admin/external.rst:92 ../../admin/external.rst:125 +msgid "" +"The organisation, repository, filename and formats are all configured via" +" the portal interface under :doc:`mirror lists <../user/lists>`." +msgstr "" + +#: ../../admin/external.rst:98 +msgid "" +"To configure GitLab, you will need an access token. GitLab has a variety " +"of scoped access tokens, including `personal " +"`_, " +"`group " +"`_" +" and `project " +"`_" +" access tokens. Create the type of token that is suitable according to " +"your threat model." +msgstr "" + +#: ../../admin/external.rst:107 +msgid "" +"Add a name so that you will be reminded of the purpose of this token when" +" you go to look at it later. The expiry can be set according to your " +"threat model. GitLab will send an email warning to token owners 7 days " +"before expiry allowing you to generate a new token and update your " +"configuration." +msgstr "" + +#: ../../admin/external.rst:113 +msgid "" +"Your access token will need the \"api\" scope. Unforunately the " +"\"write_repository\" scope only works for Git-over-HTTPS, but the portal " +"uses the API to update mirror lists in GitLab." +msgstr "" + +#: ../../admin/external.rst:131 +msgid "" +"OVH requires two different sets of credentials. The first is for the " +"OpenStack Horizon API, and the second for the OVH API." +msgstr "" + +#: ../../admin/external.rst:134 +msgid "" +"OVH provides documentation on creating the OpenStack Horizon user `here " +"`_. As the portal will manage " +"all resources within your OVH project, it is fine to allow for the user " +"to have \"Administrator\" access." +msgstr "" + +#: ../../admin/external.rst:139 +msgid "" +"Once you have the username and password, you can complete the first " +"fields of the configuration:" +msgstr "" + +#: ../../admin/external.rst:149 +msgid "" +"You can find the tenant ID in the top-left corner of the OVH cloud " +"dashboard, or in the `OpenStack RC file `_ available for " +"download in the Horizon interface." +msgstr "" + +#: ../../admin/external.rst:157 +msgid "" +"Finally, you'll need to create credentials for the OVH API. Go to the " +"`key creation page `_ and add an " +"application name and description to remind you later what the token is " +"for. Set a validity (expiry) according to your threat model. This token " +"is only used for read-only access, so it is sufficient to allow only GET " +"requests. Place an asterisk (*) in the text box to the right of GET so " +"that API paths are allowed." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/admin/install.po b/docs/locale/ro/LC_MESSAGES/admin/install.po new file mode 100644 index 0000000..844e09f --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/admin/install.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../admin/install.rst:2 +msgid "Installation" +msgstr "" + +#: ../../admin/install.rst:4 +msgid "" +"The current installation method is to use a Python virtual envrionment. " +"Many of the dependencies needed by the portal can be installed from PyPI," +" although some dependencies will need to be satisfied in other ways:" +msgstr "" + +#: ../../admin/install.rst:8 +msgid "A cron daemon - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:9 +msgid "Terraform binary - static binaries available from Hashicorp" +msgstr "" + +#: ../../admin/install.rst:10 +msgid "PostgreSQL server - probably available in your system package manager" +msgstr "" + +#: ../../admin/install.rst:12 +msgid "Create and activate a virtual environment with:" +msgstr "" + +#: ../../admin/install.rst:20 +msgid "You will need to install an entry into the portal user's crontab::" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/index.po b/docs/locale/ro/LC_MESSAGES/index.po new file mode 100644 index 0000000..7199584 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/index.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../index.rst:7 +msgid "User Guide" +msgstr "Ghidul utilizatorului" + +#: ../../index.rst:18 +msgid "Publisher Guide" +msgstr "Ghidul editorului" + +#: ../../index.rst:24 +msgid "Admin Guide" +msgstr "Ghidul administratorului" + +#: ../../index.rst:34 +msgid "Technical Documentation" +msgstr "Documentație tehnică" + +#: ../../index.rst:2 +msgid "Documentation Home" +msgstr "Pagina principală a documentației" + +#: ../../index.rst:45 +msgid "Indices and tables" +msgstr "Indici și tabele" + +#: ../../index.rst:47 +msgid ":ref:`genindex`" +msgstr ":ref:`genindex`" + +#: ../../index.rst:48 +msgid ":ref:`modindex`" +msgstr ":ref:`modindex`" + +#: ../../index.rst:49 +msgid ":ref:`search`" +msgstr ":ref:`search`" + +#: ../../index.rst:52 +msgid "Maintained by" +msgstr "Întreținut de" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "|logo-gp|" +msgstr "|logo-gp|" + +#: ../../index.rst:76 +msgid "Guardian Project" +msgstr "Guardian Project" + +#: ../../index.rst:55 ../../index.rst:62 +msgid "`Guardian Project `_" +msgstr "`Guardian Project `_" + +#: ../../index.rst:59 +msgid "Developed by" +msgstr "Dezvoltat de" + +#: ../../index.rst:64 +msgid "|logo-tor|" +msgstr "|logo-tor|" + +#: ../../index.rst:80 +msgid "Tor Project" +msgstr "Tor Project" + +#: ../../index.rst:64 +msgid "`Tor Project `_" +msgstr "`Tor Project `_" + +#: ../../index.rst:68 +msgid "Supported by [*]_" +msgstr "Susținut de [*]_" + +#: ../../index.rst:71 +msgid "|logo-otf|" +msgstr "|logo-otf|" + +#: ../../index.rst:84 +msgid "Open Technology Fund" +msgstr "Open Technology Fund" + +#: ../../index.rst:71 +msgid "`Open Technology Fund `_" +msgstr "`Open Technology Fund `_" + +#: ../../index.rst:89 +msgid "Footnotes" +msgstr "Note de subsol" + +#: ../../index.rst:90 +msgid "Support received does not imply endorsement." +msgstr "Sprijinul primit nu implică susținerea." diff --git a/docs/locale/ro/LC_MESSAGES/publisher/api.po b/docs/locale/ro/LC_MESSAGES/publisher/api.po new file mode 100644 index 0000000..15a94e9 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/publisher/api.po @@ -0,0 +1,143 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../publisher/api.rst:3 +msgid "Publisher API" +msgstr "" + +#: ../../:1 +msgid "**Retrieve information about the authenticated user's pool**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Query Parameters" +msgstr "" + +#: ../../:1 +msgid "The API key of the pool. If not provided, the public API key is used." +msgstr "" + +#: ../../:1 +msgid "**Example request:**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Status Codes" +msgstr "" + +#: ../../:1 +msgid "" +"Success **Example response:** .. sourcecode:: http HTTP/1.1 200 OK" +" Content-Type: application/json {}" +msgstr "" + +#: ../../:1 +msgid "Success" +msgstr "" + +#: ../../:1 +msgid "**Example response:**" +msgstr "" + +#: ../../:1 +msgid "Invalid API key" +msgstr "" + +#: ../../:1 +msgid "**Generate a circumvention link for a specific resource**" +msgstr "" + +#: ../../:1 +msgid "The URL for which a circumvention link needs to be generated. (Required)" +msgstr "" + +#: ../../:1 +msgid "" +"The type of link to generate. Valid values are \"live\", \"short\", or " +"\"snapshot\". If not provided, \"direct\" is used." +msgstr "" + +#: ../../:1 +msgid "" +"The duration that a snapshot will remain published for. Valid values are " +"\"long\" and \"short\". If not provided, \"short\" is used." +msgstr "" + +#: ../../:1 +msgid "Defines the footer text to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Defines the footer link to be used when publishing a snapshot." +msgstr "" + +#: ../../:1 +msgid "Resource not on a supported domain" +msgstr "" + +#: ../../:1 +msgid "No live mirror exists for the resource" +msgstr "" + +#: ../../:1 +msgid "Could not generate a snapshot for the resource" +msgstr "" + +#: ../../:1 +msgid "**Redirect to the live mirror associated with the given hash**" +msgstr "" + +#: ../../publisher/api.rst +msgid "Parameters" +msgstr "" + +#: ../../:1 +msgid "The hash associated with the short link" +msgstr "" + +#: ../../:1 +msgid "Always redirect to a mirror and ignore GeoIP information." +msgstr "" + +#: ../../:1 +msgid "" +"Override the client IP address and base the GeoIP lookup on this IP " +"address instead." +msgstr "" + +#: ../../:1 +msgid "Redirects the client to the original URL" +msgstr "" + +#: ../../:1 +msgid "The hash is invalid or not found" +msgstr "" + +#: ../../publisher/api.rst +msgid "Response Headers" +msgstr "" + +#: ../../:1 +msgid "The URL of the live mirror" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/sphinx.po b/docs/locale/ro/LC_MESSAGES/sphinx.po new file mode 100644 index 0000000..359a02d --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/sphinx.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 14:55+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../_templates/sidebar/ethical-ads.html:2 +msgid "Translations" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/tech/automation.po b/docs/locale/ro/LC_MESSAGES/tech/automation.po new file mode 100644 index 0000000..c3d5bef --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/tech/automation.po @@ -0,0 +1,160 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/automation.rst:2 +msgid "Automation Plugins" +msgstr "" + +#: ../../tech/automation.rst:5 +msgid "Base" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:1 of +msgid "" +"Write a Jinja2 template to the working directory for use by an automation" +" module." +msgstr "" + +#: ../../tech/automation.rst +msgid "Parameters" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:3 of +msgid "filename to write to" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:4 of +msgid "Jinja2 template" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:5 of +msgid "variables for use with the template" +msgstr "" + +#: ../../tech/automation.rst +msgid "Returns" +msgstr "" + +#: app.terraform.BaseAutomation.tmpl_write:6 +#: app.terraform.terraform.TerraformAutomation.tf_posthook:7 of +msgid "None" +msgstr "" + +#: ../../docstring app.terraform.BaseAutomation.working_dir:1 of +msgid "" +"The short name of the automation provider. This is used as an opaque " +"token throughout the portal system." +msgstr "" + +#: ../../tech/automation.rst:12 +msgid "Terraform" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation:1 of +msgid "" +"An abstract class to be extended by automation plugins using Terraform " +"providers to deploy resources." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.always_refresh:1 +#: of +msgid "Force refresh even when not a full run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:1 of +msgid "Runs the Terraform automation module. The run will follow these steps:" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:3 of +msgid "The :func:`tf_prehook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:4 of +msgid "" +"Generate a Terraform configuration and write it to a single ``main.tf`` " +"file in the working directory (see :func:`working_directory " +"`)." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:6 of +msgid "Run ``terraform init``." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:7 of +msgid "" +"Run ``terraform apply``. This will only include a refresh if *full* is " +"**True**. The apply will wait up to *lock_timeout* minutes for a lock to " +"be released before failing. Up to *parallelism* requests will be sent to " +"remote APIs concurrently." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:10 of +msgid "The :func:`tf_posthook` hook is run." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:11 of +msgid "The logs from the apply step are returned as a string." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:13 of +msgid "include a Terraform refresh in the automation module run" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.automate:14 of +msgid "success status and Terraform apply logs" +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.parallelism:1 of +msgid "Default parallelism for remote API calls." +msgstr "" + +#: ../../docstring app.terraform.terraform.TerraformAutomation.provider:1 of +msgid "Short name for the provider used by this module." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:1 of +msgid "" +"This hook function is called as part of normal automation, after the " +"completion of :func:`tf_apply`." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:4 +#: app.terraform.terraform.TerraformAutomation.tf_prehook:5 of +msgid "The default, if not overridden by a subclass, is to do nothing." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_posthook:6 of +msgid "the returned value of :func:`tf_prehook`" +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_prehook:1 of +msgid "" +"This hook function is called as part of normal automation, before " +"generating the terraform configuration file. The return value will be " +"passed to :func:`tf_posthook` but is otherwise ignored." +msgstr "" + +#: app.terraform.terraform.TerraformAutomation.tf_prehook:7 of +msgid "state that is useful to :func:`tf_posthook`, if required" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/tech/conf.po b/docs/locale/ro/LC_MESSAGES/tech/conf.po new file mode 100644 index 0000000..1b4f75b --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/tech/conf.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/conf.rst:2 +msgid "Configuration Objects" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/tech/index.po b/docs/locale/ro/LC_MESSAGES/tech/index.po new file mode 100644 index 0000000..b312930 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/tech/index.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/index.rst:2 +msgid "Technical Overview" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/tech/resource.po b/docs/locale/ro/LC_MESSAGES/tech/resource.po new file mode 100644 index 0000000..6f28bf5 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/tech/resource.po @@ -0,0 +1,64 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../tech/resource.rst:2 +msgid "Resource Objects" +msgstr "" + +#: app.models.AbstractResource.deprecate:1 of +msgid "" +"Marks the resource as deprecated. In the event that the resource was " +"already deprecated, no change will be recorded and the function will " +"return False." +msgstr "" + +#: ../../tech/resource.rst +msgid "Parameters" +msgstr "" + +#: app.models.AbstractResource.deprecate:4 of +msgid "an opaque string that records the deprecation reason" +msgstr "" + +#: app.models.AbstractResource.deprecate:5 of +msgid "" +"metadata associated with the deprecation reason, such as the " +"circumstances in which censorship was detected" +msgstr "" + +#: ../../tech/resource.rst +msgid "Returns" +msgstr "" + +#: app.models.AbstractResource.deprecate:7 of +msgid "if the proxy was deprecated" +msgstr "" + +#: app.models.AbstractResource.destroy:1 of +msgid "Marks the resource for destruction." +msgstr "" + +#: app.models.AbstractResource.destroy:3 of +msgid "None" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/automation.po b/docs/locale/ro/LC_MESSAGES/user/automation.po new file mode 100644 index 0000000..0285358 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/automation.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/automation.rst:2 +msgid "Automation" +msgstr "" + +#: ../../user/automation.rst:4 +msgid "" +"When changes are made in the portal, the effects usually do not take " +"place immediately, but rather are stored in the database for an " +"automation job to action shortly after. There are many automation jobs " +"that run in the portal, and you can find an overview of them on the " +"\"Automation\" page, under \"Monitoring\" in the sidebar:" +msgstr "" + +#: ../../user/automation.rst:12 +msgid "" +"This page lists all the automation jobs, their current status, if they " +"are enabled, their last, and their next run times. The last run time is " +"updated after the completion of a run, and the next run time indicates " +"the earliest time that a job may be started by the scheduler, although it" +" may not start for up to a minute after this time." +msgstr "" + +#: ../../user/automation.rst:17 +msgid "" +"Once a task has started, the status will change from idle (🕰️) to running" +" (🏃). If the run completes successfully, it will revert to idle again " +"until the next run. If an error occurred (💥) then the module will " +"automatically be disabled to allow for an administrator to investigate." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/bridges.po b/docs/locale/ro/LC_MESSAGES/user/bridges.po new file mode 100644 index 0000000..0b9551c --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/bridges.po @@ -0,0 +1,288 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/bridges.rst:2 +msgid "Tor Bridges" +msgstr "" + +#: ../../user/bridges.rst:5 +msgid "Background" +msgstr "" + +#: ../../user/bridges.rst:7 +msgid "" +"When someone uses the Tor network to browse the internet, their traffic " +"is routed through a series of relays, making it difficult to trace the " +"origin of the traffic or the content being accessed. However, in some " +"countries or networks, access to the Tor network is blocked, making it " +"impossible to use the network." +msgstr "" + +#: ../../user/bridges.rst:11 +msgid "" +"A Tor bridge, a special type of node on the Tor network that is not " +"listed in the public directory of nodes, is designed to help users in " +"these situations. Instead of connecting directly to the Tor network, a " +"user can connect to a Tor bridge first. The bridge will then forward the " +"user's traffic to the Tor network, effectively bypassing any censorship " +"or blocking. This makes it harder for governments and other organizations" +" to block access to the Tor network, because users can still connect to " +"the network through these unlisted bridges." +msgstr "" + +#: ../../user/bridges.rst:19 +msgid "Pluggable Transports" +msgstr "" + +#: ../../user/bridges.rst:21 +msgid "" +"A key feature of a Tor bridge is its \"obfuscation\" capability, provided" +" by pluggable transports. This means that the bridge's traffic is " +"disguised in a way that makes it difficult for censors to detect that it " +"is Tor traffic through deep packet inspection (DPI). For example, the " +"bridge may use a different network protocol or port than standard Tor " +"traffic, making it harder for censors to identify and block it." +msgstr "" + +#: ../../user/bridges.rst:27 +msgid "" +"A pluggable transport allows users to obfuscate their Tor traffic using a" +" variety of different protocols and techniques. Different pluggable " +"transports will have different levels of success in different censorship " +"environments, and new techniques are always being designed and studied. " +"The portal currently only supports deploying bridges using the obfs4proxy" +" pluggable transport." +msgstr "" + +#: ../../user/bridges.rst:33 +msgid "Distribution Methods" +msgstr "" + +#: ../../user/bridges.rst:35 +msgid "" +"`BridgeDB `_, and its upcoming " +"replacement rdsys, is a service used by the Tor network to distribute " +"bridge addresses to users who need them. If you're running bridges for " +"the general public to use then BridgeDB will help users get hold of the " +"details for your bridges. Unless you have specific requirements, you can " +"let BridgeDB determine the best distribution method for your bridge by " +"choosing the \"Any\" method." +msgstr "" + +#: ../../user/bridges.rst:42 +msgid "" +"Within each distribution method the bridges are further split up into " +"*pools* (a concept borrowed by the portal too, see: *Resource Pools*). In" +" some countries or networks, censors may attempt to block all known " +"bridge addresses associated with the Tor network. Depending on criteria " +"such as geography, your ISP, and other secret factors, each user request " +"for a bridge is mapped to one of these pools. The aim is to prevent any " +"censor from being able to discover all of the bridges, leaving bridges " +"unblocked for other legitimate users." +msgstr "" + +#: ../../user/bridges.rst:49 +msgid "" +"If you already have a channel to your users then you should select the " +"\"None\" BridgeDB distribution method to ensure that your bridges remain " +"private and only for use by your community." +msgstr "" + +#: ../../user/bridges.rst:53 +msgid "Managing Configurations" +msgstr "" + +#: ../../user/bridges.rst:55 +msgid "" +"As with other circumvention resources, the dashboard takes the approach " +"of managing collections of resources that are uniformly configured and " +"expendable. For this reason the only configuration that can be performed " +"is at a high level with the management of individual resources taking " +"place through the automation subsystem." +msgstr "" + +#: ../../user/bridges.rst:59 +msgid "" +"Bridges will be deployed to all available cloud providers, although you " +"can disable providers by setting a zero instance limit within the Cloud " +"Account configuration." +msgstr "" + +#: ../../user/bridges.rst:62 +msgid "" +"Once your administrator has provided you access to the portal, you can " +"begin to configure your Tor Bridge deployments. To get started, select " +"\"Tor Bridges\" under \"Configuration\" from the menu on the left hand " +"side. If you are using a mobile device, you may need to click the " +"hamburger icon at the top of the screen to open the menu." +msgstr "" + +#: ../../user/bridges.rst:70 +msgid "New Configuration" +msgstr "" + +#: ../../user/bridges.rst:72 +msgid "" +"To create a new configuration, click \"Create new configuration\" at the " +"top of the configuration list. This will present you with the new " +"configuration form:" +msgstr "" + +#: ../../user/bridges.rst:79 +msgid "Distribution Method" +msgstr "" + +#: ../../user/bridges.rst:81 +msgid "" +"The distribution method for `BridgeDB " +"`_. Unless you have specific " +"requirements you will likely choose either \"Any\" to allow for BridgeDB " +"to allocate the bridge to where it is most needed, or \"None\" to have a " +"bridge that is not distributed by BridgeDB for you to distribute directly" +" to the end-user via another channel." +msgstr "" + +#: ../../user/bridges.rst:87 +msgid "Description" +msgstr "" + +#: ../../user/bridges.rst:89 +msgid "A free-form text description to help identify the collection." +msgstr "" + +#: ../../user/bridges.rst:92 +msgid "Pool" +msgstr "" + +#: ../../user/bridges.rst:94 +msgid "" +"The Resource Pool the bridges in this configuration belong to. If you " +"distribute your bridges by Distribution List within the portal, this will" +" allow you to split up which bridges are distributed." +msgstr "" + +#: ../../user/bridges.rst:99 +msgid "Target Number" +msgstr "" + +#: ../../user/bridges.rst:101 +msgid "" +"The target number of active bridges to have deployed at any time, " +"excluding deprecated bridges. When editing, increasing or decreasing this" +" number will cause new bridges to be created, or existing bridges to be " +"destroyed, so that the number deployed is less than the maximum number " +"while having as close as possible to the target number of non-deprecated " +"bridges." +msgstr "" + +#: ../../user/bridges.rst:107 +msgid "Maximum Number" +msgstr "" + +#: ../../user/bridges.rst:109 +msgid "The maximum number of bridges to deploy including deprecated bridges." +msgstr "" + +#: ../../user/bridges.rst:112 +msgid "Expiry Timer" +msgstr "" + +#: ../../user/bridges.rst:114 +msgid "" +"The number of hours to wait after a bridge is deprecated before its " +"destruction. It is not advisable to set this number to zero as this does " +"not allow any churn of IP address usage within the cloud provider and you" +" are likely to get the same IP address back for the new bridge, leading " +"it to arriving dead on arrival. It is also not advisable to set this " +"number too high as this will result in cost incurred for a bridge that " +"may not be able to be used. Remember that just because the bridge is " +"blocked in one network, it may remain accessible from other networks, and" +" so it is not instantly worthless when the first block is detected (with " +"the exception perhaps of very specific community use cases)." +msgstr "" + +#: ../../user/bridges.rst:122 +msgid "Provider Allocation Method" +msgstr "" + +#: ../../user/bridges.rst:124 +msgid "Two provider allocation methods have been implemented:" +msgstr "" + +#: ../../user/bridges.rst:126 +msgid "" +"Use cheapest provider first - based on the prevailing cost of a Tor " +"bridge at each provider, deploy on the cheapest provider first until the " +"quota is fully utilised, and then proceed to deploy on other providers in" +" order of cost." +msgstr "" + +#: ../../user/bridges.rst:128 +msgid "" +"Use providers randomly - each bridge deployed will go to a random choice " +"of cloud provider (RNG is not cryptographic)." +msgstr "" + +#: ../../user/bridges.rst:131 +msgid "Edit Configuration" +msgstr "" + +#: ../../user/bridges.rst:136 +msgid "" +"See the \"New Configuration\" section above for the descriptions of each " +"field." +msgstr "" + +#: ../../user/bridges.rst:138 +msgid "" +"Once a configuration has been created, the Resource Pool and Distribution" +" Method may not be modified. This is because the bridges may already have" +" been distributed by some method, and rather than reallocating the " +"existing bridges to a new Distribution Method or Resource Pool it would " +"be more effective to destroy the configuration and then create a new " +"configuration with new bridges for those new users." +msgstr "" + +#: ../../user/bridges.rst:144 +msgid "Destroy Configuration" +msgstr "" + +#: ../../user/bridges.rst:149 +msgid "" +"When destroying a configuration, the bridges deployed for that " +"configuration will be automatically destroyed with it." +msgstr "" + +#: ../../user/bridges.rst:152 +msgid "Bridge Rotation" +msgstr "" + +#: ../../user/bridges.rst:157 +msgid "" +"If not using an automated block detection and replacement system, bridges" +" can be manually replaced as needed. When viewing the bridge list, either" +" while editing the configuration or the full list of bridges, select " +"\"Mark as blocked\". The bridge will be replaced on the next automation " +"run." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/eotk.po b/docs/locale/ro/LC_MESSAGES/user/eotk.po new file mode 100644 index 0000000..227e9a9 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/eotk.po @@ -0,0 +1,185 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/eotk.rst:2 +msgid "Enterprise Onion Toolkit" +msgstr "" + +#: ../../user/eotk.rst:4 +msgid "" +"Tor onion services, also known as hidden services, are websites that can " +"be accessed through the Tor network. These services are useful for " +"publishers because they allow them to host their content on the internet " +"without revealing their physical location or IP address. This can provide" +" a greater level of privacy and security for both the publisher and the " +"users accessing the content." +msgstr "" + +#: ../../user/eotk.rst:9 +msgid "" +"Because Tor onion services are accessed through the Tor network, they are" +" much more difficult to block or censor than regular websites. This is " +"because the connection between the user and the website is encrypted and " +"routed through multiple nodes on the network, making it difficult for " +"anyone to determine the source or destination of the traffic. This means " +"that even if one node on the network is blocked, the traffic can still be" +" routed through other nodes to reach the website." +msgstr "" + +#: ../../user/eotk.rst:16 +msgid "" +"To deploy an Onion service, you first need to deploy EOTK instances for " +"the related origin group, and then configure the individual Onion " +"services that will be served by those EOTK instances." +msgstr "" + +#: ../../user/eotk.rst:19 +msgid "" +"Once your administrator has provided you access to the portal, you can " +"begin to configure your onion service deployments. To get started, select" +" \"Groups\" under \"Configuration\" from the menu on the left hand side. " +"If you are using a mobile device, you may need to click the hamburger " +"icon at the top of the screen to open the menu." +msgstr "" + +#: ../../user/eotk.rst:26 +msgid "" +"You will see a ✅ or ❌ in the \"EOTK\" column for the group to show " +"whether or not EOTK instances are enabled for that group." +msgstr "" + +#: ../../user/eotk.rst:30 +msgid "Creating a new group" +msgstr "" + +#: ../../user/eotk.rst:32 +msgid "" +"If the group you would like to use EOTK for does not yet exist, create a " +"new group by clicking the \"Create new group\" button." +msgstr "" + +#: ../../user/eotk.rst:39 +msgid "Short Name" +msgstr "" + +#: ../../user/eotk.rst:41 +msgid "" +"This must be a unique short name for the group. It needs to be short. No " +"more than 4-5 characters." +msgstr "" + +#: ../../user/eotk.rst:44 ../../user/eotk.rst:62 ../../user/eotk.rst:88 +msgid "Description" +msgstr "" + +#: ../../user/eotk.rst:46 ../../user/eotk.rst:64 +msgid "A free-form description for the group." +msgstr "" + +#: ../../user/eotk.rst:49 ../../user/eotk.rst:67 +msgid "Deploy EOTK instances" +msgstr "" + +#: ../../user/eotk.rst:51 ../../user/eotk.rst:69 +msgid "Tick this checkbox to deploy EOTK instances for this group." +msgstr "" + +#: ../../user/eotk.rst:54 +msgid "Adding EOTK to an existing group" +msgstr "" + +#: ../../user/eotk.rst:56 +msgid "Click \"View/Edit\" next to the group that you'd like to edit." +msgstr "" + +#: ../../user/eotk.rst:72 +msgid "Managing Onion services" +msgstr "" + +#: ../../user/eotk.rst:74 +msgid "" +"To create a new Onion service, click \"Create new onion service\" at the " +"top of the list page. This will present you with the new onion service " +"form:" +msgstr "" + +#: ../../user/eotk.rst:81 +msgid "Domain Name" +msgstr "" + +#: ../../user/eotk.rst:83 +msgid "" +"The base origin domain name that the Onion service will be for. This " +"should be the common domain name of all the subdomains you want to serve " +"on the Onion service, not including any subdomain (e.g. example.com not " +"www.example.com)." +msgstr "" + +#: ../../user/eotk.rst:90 +msgid "A free-form text description to help identify the Onion service." +msgstr "" + +#: ../../user/eotk.rst:93 +msgid "Onion Private Key" +msgstr "" + +#: ../../user/eotk.rst:95 +msgid "" +"The private key for the Onion service. This could be generated by ``tor``" +" or by a tool such as `mkp224o `_." +msgstr "" + +#: ../../user/eotk.rst:99 +msgid "Onion Public Key" +msgstr "" + +#: ../../user/eotk.rst:101 +msgid "" +"The corresponding public key. The Onion hostname will be derived from the" +" public key, however no checks are made to ensure that the public key is " +"the correct key to correspond to the private key." +msgstr "" + +#: ../../user/eotk.rst:105 +msgid "TLS Private Key (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:107 +msgid "" +"The PEM formatted TLS private key. If not specified, the self-signed " +"certificates generated by EOTK will be used. Beware that in that case, " +"each EOTK instance will have different TLS keys and certificates." +msgstr "" + +#: ../../user/eotk.rst:111 +msgid "TLS Certificate (PEM format)" +msgstr "" + +#: ../../user/eotk.rst:113 +msgid "" +"The PEM formatted TLS certificate. Either a self-signed certificate, or a" +" certificate issued by an authority that will validate .onion hostnames. " +"This should be a wildcard cert for the domain name given above (e.g. " +"\\*.example.com)." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/index.po b/docs/locale/ro/LC_MESSAGES/user/index.po new file mode 100644 index 0000000..6b5a7b9 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/index.po @@ -0,0 +1,92 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/index.rst:2 +msgid "Introduction" +msgstr "" + +#: ../../user/index.rst:4 +msgid "" +"Censorship is the suppression of speech, public communication, or other " +"information. This may be done on the basis that such material is " +"considered objectionable, harmful, sensitive, or \"inconvenient\". " +"Regardless of the reasons for censorship, the technical measures taken to" +" implement it often look the same. The *Bypass Censorship* portal " +"provides a toolkit for circumventing censorship of Internet resources. " +"The circumvention methods available will often exploit either collateral " +"freedom, traffic obfuscation, or both in order to counter the measures " +"put in place by the censor." +msgstr "" + +#: ../../user/index.rst:12 +msgid "Collateral Freedom" +msgstr "" + +#: ../../user/index.rst:14 +msgid "*Used by:* :doc:`Web Mirrors `, :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:16 +msgid "" +"\"Collateral freedom\" is an anti-censorship strategy that attempts to " +"make it economically prohibitive for censors to block an Internet " +"resource. The way in which a censor restricts access to resources will " +"require knowing which content to block and which to allow. It's " +"incredibly difficult to achieve accuracy with filtering as the Internet " +"is comprised of untagged free-form content that must be categorised at " +"speed. This results in either over-blocking or under-blocking, and " +"neither of these are desirable properties for the censor." +msgstr "" + +#: ../../user/index.rst:23 +msgid "" +"This can be exploited by circumvention systems by deploying solutions at " +"places that are \"too big to block\", like cloud providers. Either " +"encryption or constantly rotating identifiers are then used to prevent " +"censors from identifying requests for censored information that is hosted" +" among other content. This forces censors to either allow access to the " +"censored information or take down entire services." +msgstr "" + +#: ../../user/index.rst:30 +msgid "Traffic Obfuscation" +msgstr "" + +#: ../../user/index.rst:32 +msgid "*Used by:* :doc:`Tor Bridges `" +msgstr "" + +#: ../../user/index.rst:34 +msgid "" +"\"Traffic Obfuscation\" is an anti-censorship strategy that attempts to " +"make it difficult to fingerprint traffic. This is more commonly used for " +"general censorship circumvention solutions rather than means of accessing" +" specific resources. There is a long tail of types of traffic on the " +"Internet, including critical infrastructure communications like " +"industrial control systems, point-of-sale systems and security systems. " +"This can be exploited by circumvention systems by making their traffic " +"look like one of these unclassified systems. Not being able to accurately" +" identify the traffic means that the cost of blocking access is unknown, " +"and so it is more difficult for a censor to justify the block." +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/lists.po b/docs/locale/ro/LC_MESSAGES/user/lists.po new file mode 100644 index 0000000..8535f2e --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/lists.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/lists.rst:2 +msgid "Distribution Lists" +msgstr "" + diff --git a/docs/locale/ro/LC_MESSAGES/user/mirrors.po b/docs/locale/ro/LC_MESSAGES/user/mirrors.po new file mode 100644 index 0000000..5d2e062 --- /dev/null +++ b/docs/locale/ro/LC_MESSAGES/user/mirrors.po @@ -0,0 +1,188 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2021-202r SR2 Communications Limited +# This file is distributed under the same license as the Bypass Censorship +# Portal package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Bypass Censorship Portal \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-05 11:42+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100" +" < 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../user/mirrors.rst:2 +msgid "Web Mirrors" +msgstr "" + +#: ../../user/mirrors.rst:5 +msgid "Background" +msgstr "" + +#: ../../user/mirrors.rst:7 +msgid "" +"A web mirror can help users by providing alternate URLs to access " +"censored resources, allowing them to bypass technical censorship and " +"access information that may be otherwise unavailable. Web proxies work by" +" forwarding requests to the original website, and providing a different " +"URL to access that content. By accessing the web proxy URL, users can " +"access the same content that would be blocked by censors if accessed " +"through the original website's URL." +msgstr "" + +#: ../../user/mirrors.rst:11 +msgid "" +"Web mirrors also use frequently changing URLs to evade censorship, making" +" it more difficult for censors to block access to the content. This " +"assumption of a limited lifetime is built-in to the system, allowing for " +"automated block detection to trigger the deployment of new URLs, and for " +"the :doc:`distribution lists ` to allow applications and end-users" +" to discover new URLs." +msgstr "" + +#: ../../user/mirrors.rst:16 +msgid "" +"Additionally, web proxies can be accessed via a normal web browser, " +"making them easily accessible to users without requiring any special " +"software or technical knowledge." +msgstr "" + +#: ../../user/mirrors.rst:19 +msgid "Architecture" +msgstr "" + +#: ../../user/mirrors.rst:21 +msgid "" +"Before configuring any web origins to create mirrors, you must first " +"configure an origin group. The group is used to organise larger numbers " +"of web origins so that mirrors can be created for them with a shared " +"configuration. The shared configuration will include which pools will " +"require mirrors for the origins." +msgstr "" + +#: ../../user/mirrors.rst:25 +msgid "" +"For each configured origin group, a smart proxy instance will be created " +"at each provider where proxies are deployed. This instance runs the " +"active proxy that will rewrite URLs in responses from the origin " +"webserver to ensure that all resources are loaded via the mirrors. Some " +"providers, e.g. Fastly, do not require an instance as they already " +"provide the means for URL re-writing in their standard functionality." +msgstr "" + +#: ../../user/mirrors.rst:29 +msgid "Web origins represent the source website that has been blocked." +msgstr "" + +#: ../../user/mirrors.rst:32 +msgid "Web Origins" +msgstr "" + +#: ../../user/mirrors.rst:35 +msgid "Rate Limiting" +msgstr "" + +#: ../../user/mirrors.rst:37 +msgid "" +"CDNs (Content Delivery Networks) can impose rate limiting on websites to " +"ensure that the network resources are efficiently utilized, to protect " +"the websites from DDoS (Distributed Denial of Service) attacks and to " +"maintain the quality of service for all the websites using the CDN." +msgstr "" + +#: ../../user/mirrors.rst:41 +msgid "" +"These rate limits will be sized according to the expected rate of " +"requests from an average user, however the mirror system is a bottleneck " +"that aggregates requests from multiple users and passes these on to the " +"original CDN. When a single system is used to send a large number of " +"requests to a CDN like this, the CDN may interpret this as a denial of " +"service (DoS) attack and prevent access to the website." +msgstr "" + +#: ../../user/mirrors.rst:46 +msgid "" +"Deploying mirrors for websites hosted on CDNs will require co-operation " +"from the CDN provider. If you find that mirrors are producing many \"Rate" +" Limited Exceeded\" or \"Access Denied\" errors then you may be suffering" +" from this problem. Ask your administrator to configure the `Bypass-Rate-" +"Limit-Token` header in the portal and at the CDN to disable the rate " +"limiting for requests originating via the mirrors." +msgstr "" + +#: ../../user/mirrors.rst:52 +msgid "New Web Origin" +msgstr "" + +#: ../../user/mirrors.rst:54 +msgid "" +"To create a new web origin, click \"Create new origin\" at the top of the" +" list. This will present you with the new origin form:" +msgstr "" + +#: ../../user/mirrors.rst:61 +msgid "Domain Name" +msgstr "" + +#: ../../user/mirrors.rst:63 +msgid "" +"Enter the domain name that you want to create a mirror for in this field." +" This is a required field." +msgstr "" + +#: ../../user/mirrors.rst:66 +msgid "Description" +msgstr "" + +#: ../../user/mirrors.rst:68 +msgid "" +"Enter a brief description of the website that you are creating a mirror " +"for in this field. This is also a required field." +msgstr "" + +#: ../../user/mirrors.rst:71 +msgid "Group" +msgstr "" + +#: ../../user/mirrors.rst:73 +msgid "" +"Select the group that you want the mirror to belong to from the drop-down" +" menu in this field. This is a required field." +msgstr "" + +#: ../../user/mirrors.rst:76 +msgid "Auto-Rotate" +msgstr "" + +#: ../../user/mirrors.rst:78 +msgid "" +"Select this field if you want to enable auto-rotation for the mirror. " +"This means that the mirror will automatically redeploy with a new domain " +"name if it is detected to be blocked. This field is optional and is " +"enabled by default." +msgstr "" + +#: ../../user/mirrors.rst:82 +msgid "Asset Domain" +msgstr "" + +#: ../../user/mirrors.rst:84 +msgid "" +"Select this field if you want to use mirrors of this domain to host " +"assets for other domains. This is an optional field and is disabled by " +"default. All of the asset domains within a group will be available for " +"all mirrors using smart proxies. The smart proxy will rewrite URLs for " +"the asset domains that are included in the source code of the mirror " +"hosted by a smart proxy." +msgstr "" +