From 986c9cdcfeacabe43b824c96433f5a3f00bd8786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Wed, 11 Mar 2026 20:45:06 +0100 Subject: [PATCH 01/35] Add initial documentation folder --- documentation/README.md | 54 ++ documentation/docs/admin/adding-new-locale.md | 68 ++ .../docs/admin/adding-new-project.md | 68 ++ .../docs/admin/adding-short-term-project.md | 44 + .../docs/admin/adding-terminology.md | 25 + documentation/docs/admin/index.md | 55 ++ .../docs/admin/managing-pretranslation.md | 51 ++ documentation/docs/admin/managing-users.md | 28 + documentation/docs/admin/messaging-center.md | 53 ++ documentation/docs/admin/renaming-file.md | 13 + documentation/docs/admin/renaming-project.md | 16 + documentation/docs/assets/pontoon-logo.svg | 6 + documentation/docs/dev/contributing.md | 400 +++++++++ documentation/docs/dev/deployment.md | 809 ++++++++++++++++++ .../docs/dev/feature-development-process.md | 112 +++ documentation/docs/dev/first-contribution.md | 187 ++++ documentation/docs/dev/index.md | 52 ++ .../docs/dev/localizing-your-projects.md | 108 +++ documentation/docs/dev/maintenance.md | 108 +++ documentation/docs/dev/setup-virtualenv.md | 211 +++++ documentation/docs/dev/setup.md | 126 +++ documentation/docs/index.md | 61 ++ documentation/docs/localizer/glossary.md | 60 ++ documentation/docs/localizer/index.md | 53 ++ documentation/docs/localizer/notifications.md | 26 + documentation/docs/localizer/profile.md | 21 + .../docs/localizer/teams-projects.md | 95 ++ documentation/docs/localizer/translate.md | 99 +++ .../docs/localizer/translation-workspace.md | 119 +++ documentation/docs/localizer/users.md | 72 ++ documentation/docs/stylesheets/extra.css | 48 ++ documentation/mkdocs.yml | 106 +++ 32 files changed, 3354 insertions(+) create mode 100644 documentation/README.md create mode 100644 documentation/docs/admin/adding-new-locale.md create mode 100644 documentation/docs/admin/adding-new-project.md create mode 100644 documentation/docs/admin/adding-short-term-project.md create mode 100644 documentation/docs/admin/adding-terminology.md create mode 100644 documentation/docs/admin/index.md create mode 100644 documentation/docs/admin/managing-pretranslation.md create mode 100644 documentation/docs/admin/managing-users.md create mode 100644 documentation/docs/admin/messaging-center.md create mode 100644 documentation/docs/admin/renaming-file.md create mode 100644 documentation/docs/admin/renaming-project.md create mode 100644 documentation/docs/assets/pontoon-logo.svg create mode 100644 documentation/docs/dev/contributing.md create mode 100644 documentation/docs/dev/deployment.md create mode 100644 documentation/docs/dev/feature-development-process.md create mode 100644 documentation/docs/dev/first-contribution.md create mode 100644 documentation/docs/dev/index.md create mode 100644 documentation/docs/dev/localizing-your-projects.md create mode 100644 documentation/docs/dev/maintenance.md create mode 100644 documentation/docs/dev/setup-virtualenv.md create mode 100644 documentation/docs/dev/setup.md create mode 100644 documentation/docs/index.md create mode 100644 documentation/docs/localizer/glossary.md create mode 100644 documentation/docs/localizer/index.md create mode 100644 documentation/docs/localizer/notifications.md create mode 100644 documentation/docs/localizer/profile.md create mode 100644 documentation/docs/localizer/teams-projects.md create mode 100644 documentation/docs/localizer/translate.md create mode 100644 documentation/docs/localizer/translation-workspace.md create mode 100644 documentation/docs/localizer/users.md create mode 100644 documentation/docs/stylesheets/extra.css create mode 100644 documentation/mkdocs.yml diff --git a/documentation/README.md b/documentation/README.md new file mode 100644 index 0000000000..400a9182c7 --- /dev/null +++ b/documentation/README.md @@ -0,0 +1,54 @@ +# Pontoon Documentation + +This folder contains the unified Pontoon documentation site, built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/). + +It consolidates three previously separate documentation sites: + +| Audience | Previous location | +|---|---| +| Developers | `docs/` (ReadTheDocs / Sphinx) | +| Localizers | [mozilla-l10n/localizer-documentation](https://github.com/mozilla-l10n/localizer-documentation) | +| Admins | [mozilla-l10n/documentation](https://github.com/mozilla-l10n/documentation) | + +## Structure + +``` +documentation/ +├── mkdocs.yml # MkDocs configuration +├── requirements.txt # Python dependencies for building +└── docs/ + ├── index.md # Home page + ├── stylesheets/ + │ └── extra.css # Mozilla/Pontoon brand styles + ├── assets/ # Logo and other static assets + ├── localizer/ # Localizer guide + │ ├── index.md + │ ├── translate.md + │ ├── translation-workspace.md + │ ├── teams-projects.md + │ ├── users.md + │ ├── notifications.md + │ ├── profile.md + │ └── glossary.md + ├── admin/ # Admin & Project Manager guide + │ ├── index.md + │ ├── adding-new-project.md + │ ├── adding-short-term-project.md + │ ├── adding-new-locale.md + │ ├── managing-pretranslation.md + │ ├── messaging-center.md + │ ├── renaming-file.md + │ ├── renaming-project.md + │ ├── managing-users.md + │ └── adding-terminology.md + └── dev/ # Developer guide + ├── index.md + ├── first-contribution.md + ├── setup.md + ├── setup-virtualenv.md + ├── contributing.md + ├── feature-development-process.md + ├── deployment.md + ├── localizing-your-projects.md + └── maintenance.md +``` diff --git a/documentation/docs/admin/adding-new-locale.md b/documentation/docs/admin/adding-new-locale.md new file mode 100644 index 0000000000..4003ec77c3 --- /dev/null +++ b/documentation/docs/admin/adding-new-locale.md @@ -0,0 +1,68 @@ +# Adding a New Locale + +This page explains how to add a new language/locale to Pontoon. The example used throughout is Amharic (`am`). + +## Step 1 — Add the locale in Django admin + +Access Django's admin interface at `/a/` (not the standard `/admin/`), then click **Locales**. + +Search for the locale you want to add (searching by locale code is safer). If the locale is not yet in Pontoon, click **ADD LOCALE+** in the top-right corner. + +Complete the following fields: + +### Core fields + +| Field | Example | Notes | +|---|---|---| +| **Code** | `am` | The locale code (BCP 47). | +| **Name** | `Amharic` | The language name displayed in Pontoon. | +| **Plural rule** | *(see below)* | The Gettext plural rule expression. | +| **Cldr plurals** | `1,5` | Comma-separated list of available CLDR plural categories (no spaces). | + +### Machine translation fields + +| Field | Notes | +|---|---| +| **Google translate locale** | Google's locale code for this language. Leave blank to disable Google Translate for this locale. See [Google's supported locales list](https://cloud.google.com/translate/docs/languages). | +| **Google automl model** | Google AutoML model ID (usually starts with `NM`). Set after training a custom model (see [Managing Pretranslation](managing-pretranslation.md)). | +| **MS translator locale** | Microsoft Translator's locale code. Leave blank to disable. | +| **MS terminology locale** | Microsoft Terminology locale code. Leave blank to disable. | + +### Plural rules + +Look up the locale on [CLDR](https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html). For Amharic, two cardinal plural forms are listed: `one` and `other`. + +The **Gettext plural rule** is a C expression. For Amharic: +``` +nplurals=2; plural=(n > 1); +``` + +The **CLDR plurals** field uses numbers corresponding to plural categories: +`0`=zero, `1`=one, `2`=two, `3`=few, `4`=many, `5`=other. + +For Amharic (`one`, `other`) → `1,5`. + +Irish (`ga-IE`) has all forms except zero → `1,2,3,4,5`. + +### Access keys + +Access keys allow keyboard-activated menu commands (shown as underlined characters). + +- **Access key attribute checkbox checked** (default) — Pontoon leaves the access key field empty and shows a dynamic UI for translators to pick from available characters in the localized label. For pretranslation, it uses the first character of the pretranslated label. +- **Access key attribute checkbox unchecked** — Pontoon automatically uses the same access key as the source string (useful for locales using non-Latin scripts like Chinese or Japanese). + +## Step 2 — Set up the Terminology project + +The "Terminology" project appears automatically under the new team's page (e.g., `pontoon.mozilla.org/am/`) after the locale is saved. + +## Step 3 — Populate CLDR population data (optional) + +A helper script is available to assist with population data. Save the script as `cldr_population.py` and run: + +```bash +python cldr_population.py LOCALE_CODE +``` + +## Step 4 — Enable pretranslation (optional) + +Once the locale is added, you can set up a custom AutoML model and enable pretranslation. See [Managing Pretranslation](managing-pretranslation.md). diff --git a/documentation/docs/admin/adding-new-project.md b/documentation/docs/admin/adding-new-project.md new file mode 100644 index 0000000000..67a5006c61 --- /dev/null +++ b/documentation/docs/admin/adding-new-project.md @@ -0,0 +1,68 @@ +# Adding a New Project + +This page explains how to add a standard VCS-backed project to Pontoon. For database-backed short-term projects (newsletters, campaigns, etc.), see [Adding a Short-Term Project](adding-short-term-project.md). + +## Prerequisites + +Before adding a project to Pontoon, ensure that: + +1. The project uses a [supported localization file format](../dev/localizing-your-projects.md#supported-file-formats). +2. Localizable strings are extracted into resource files and pushed to a GitHub (or Mercurial) repository. +3. Pontoon has **write access** to the repository — the recommended approach is to create a dedicated GitHub account for your Pontoon instance, add it as a collaborator to the repository, and configure `SSH_KEY` and `SSH_CONFIG` in your deployment. + +Check the repository structure against [Pontoon's requirements](../dev/localizing-your-projects.md#repository-structure). Review files for localization quality issues: unclear strings, missing localization comments, missing plural forms. + +## Creating the project + +Access Pontoon's admin console at `/admin/` and click **ADD NEW PROJECT**. + +### Required fields + +| Field | Notes | +|---|---| +| **Name** | Displayed throughout Pontoon. Reserved names: *Terminology*, *Tutorial*, *Pontoon Intro*. | +| **Slug** | Used in URLs; auto-generated from Name. | +| **Locales** | Select at least one localizable locale by clicking on it. | +| **Repository URL** | Use the SSH URL: `git@github.com:user/repo.git`. | + +### Optional fields + +| Field | Notes | +|---|---| +| **Branch** | Leave empty to use the default branch (usually `main` or `master`). | +| **Public Repository Website** | Displayed on dashboards. Pontoon attempts to prefill this from the Repository URL. | +| **Download prefix or path to TOML file** | A URL prefix for downloading localized files. | +| **Visibility** | `private` (default) — admins only; `public` — visible to all. | +| **Project info** | Context or testing instructions for localizers. HTML supported. | +| **Internal admin notes** | For developer contacts and PM handoff notes; not visible to localizers. | +| **Deadline** | Format: `YYYY-MM-DD`. | +| **Priority** | 1 (Lowest) to 5 (Highest). | +| **Contact** | The L10n driver responsible for this project. | +| **External Resources** | Links to preview environments, screenshots, etc. | +| **Pretranslation** | See [Managing Pretranslation](managing-pretranslation.md). | +| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | +| **Tags enabled** | Check to allow resource grouping by tag. | +| **Read-only** | Column in the Locales section; marks a locale as read-only. | + +## First sync + +1. Click **SAVE PROJECT** at the bottom of the page. +2. Click **SYNC** to run a test sync. +3. Monitor progress in the **Sync log** at `/sync/log/`. +4. Verify that imported resources and strings look correct. + +!!! important + The new project only appears in the public project list after the next sync cycle AND after you set **Visibility** to `Public`. + +## Tags + +Tags logically group resources and can be assigned a priority. To use tags: + +1. Check **Tags enabled** and save the project. +2. After saving, a tag management section appears — create tags and save again. +3. Associate resources with tags via the resource section of the admin panel. +4. It's also possible to set a **deadline** per Resource (not just per project) from the resource section. + +## Read-only locales + +In the Locales table, the **Read-only** column marks a locale's translations as visible but not editable in Pontoon. Other locales can reference these translations in the LOCALES tab. diff --git a/documentation/docs/admin/adding-short-term-project.md b/documentation/docs/admin/adding-short-term-project.md new file mode 100644 index 0000000000..da3b8cfad3 --- /dev/null +++ b/documentation/docs/admin/adding-short-term-project.md @@ -0,0 +1,44 @@ +# Adding a Short-Term Project + +Short-term projects are used for content that does not have a repository — newsletters, marketing campaigns, surveys, and similar one-off content. Strings are stored only in Pontoon's database. + +## Process overview + +The process mirrors creating a standard project, with two key differences: + +- **Data Source** is set to `Database` instead of a VCS repository. +- You should **test on the staging server first** before creating on production. + +## Step 1 — Create on staging + +Access Pontoon's admin console on the **staging server** and click **ADD NEW PROJECT**. + +| Field | Notes | +|---|---| +| **Name** | Name of the project (displayed in Pontoon's project selector). | +| **Slug** | Auto-generated from Name; used in URLs. | +| **Locales** | Select at least one locale. Use *copy supported locales from an existing project* to speed this up. | +| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | +| **Data Source** | Select **Database**. | +| **Deadline** | Format: `YYYY-MM-DD`. | +| **Priority** | 1 (Lowest) to 5 (Highest). | + +Click **SAVE PROJECT** and verify that the project behaves as expected on staging. + +## Step 2 — Manage strings + +Once the project is created, two string management links appear on the admin project page: + +- **MANAGE STRINGS** — view, edit, add, and delete strings. + - Click **NEW STRING** to add a string. + - Click the trashcan icon to remove a string. + - Edit the string content and comment inline. + - Click **SAVE STRINGS** to commit changes. +- **DOWNLOAD STRINGS** — download current strings for local editing or archiving. + +## Step 3 — Create on production + +Once validated on staging, access the production admin console and recreate the project with the same settings. Select all supported locales. The new project immediately appears in the public project list after saving. + +!!! note + Unlike VCS-backed projects, short-term projects do not have a Sync process. String changes take effect immediately after saving. diff --git a/documentation/docs/admin/adding-terminology.md b/documentation/docs/admin/adding-terminology.md new file mode 100644 index 0000000000..91db5f2ab7 --- /dev/null +++ b/documentation/docs/admin/adding-terminology.md @@ -0,0 +1,25 @@ +# Adding Terminology + +The **Terminology** project is a special built-in project in Pontoon that powers the glossary feature. When a source string contains a recognized term, Pontoon highlights it and shows its definition and existing translations. + +## Accessing the Terminology project + +The Terminology project is managed like any other project. Access it from Pontoon's admin console → **Terminology** project, or navigate directly to `/admin/projects/terminology/`. + +## Adding a new term + +1. Go to the Terminology project admin page. +2. Under **Strings**, click **MANAGE STRINGS**. +3. Click **NEW STRING**. +4. Enter: + - **String** — the term in the source language (English). + - **Comment** — the definition or usage notes. +5. Click **SAVE STRINGS**. + +## Translating terminology + +Once a term is added as a source string, localizers can translate it in the Terminology project like any other string. Translations appear in the **Terminology** tab of the translation workspace when a matching term is found in a source string. + +## Downloading terminology + +The full glossary can be downloaded as a **TBX** (TermBase eXchange) file. Click the profile icon in the top-right corner of any Pontoon page and select **Download Terminology**. diff --git a/documentation/docs/admin/index.md b/documentation/docs/admin/index.md new file mode 100644 index 0000000000..20c25a5e0f --- /dev/null +++ b/documentation/docs/admin/index.md @@ -0,0 +1,55 @@ +# Admin Guide + +This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. + +!!! note "Mozilla-specific content" + Most of this guide is specific to Mozilla's deployment of Pontoon at [pontoon.mozilla.org](https://pontoon.mozilla.org). Some procedures (such as URLs and Google AutoML details) will differ for other deployments. + +## Sections + +
+ +- :material-folder-plus: **[Adding a New Project](adding-new-project.md)** + + How to set up a standard VCS-backed project in Pontoon, including repository configuration, locale selection, tags, and deadlines. + +- :material-calendar-clock: **[Adding a Short-Term Project](adding-short-term-project.md)** + + How to create database-backed projects for newsletters, campaigns, and surveys — no VCS required. + +- :material-translate: **[Adding a New Locale](adding-new-locale.md)** + + How to add a new language/locale to Pontoon, including machine translation setup and plural rules. + +- :material-robot: **[Managing Pretranslation](managing-pretranslation.md)** + + How to enable automated pretranslation for a project and train custom Google AutoML models. + +- :material-message-text: **[Messaging Center](messaging-center.md)** + + How to send targeted emails and in-app notifications to contributors. + +- :material-file-edit: **[Renaming a Localization File](renaming-file.md)** + + Steps to rename a resource file without losing translation history. + +- :material-pencil: **[Renaming a Project](renaming-project.md)** + + Steps to safely rename a project slug and update references. + +- :material-account-multiple: **[Managing Users](managing-users.md)** + + How to deactivate or remove user accounts. + +- :material-book-alphabet: **[Adding Terminology](adding-terminology.md)** + + How to add terms to the Pontoon glossary/terminology project. + +
+ +## Accessing the admin console + +The Pontoon admin console is available at `/admin/` (e.g., `pontoon.mozilla.org/admin/`). Django's standard admin interface is at `/a/`. + +!!! warning + Only Administrators have access to the admin console. Changes made here affect all users and projects. diff --git a/documentation/docs/admin/managing-pretranslation.md b/documentation/docs/admin/managing-pretranslation.md new file mode 100644 index 0000000000..bc26978afb --- /dev/null +++ b/documentation/docs/admin/managing-pretranslation.md @@ -0,0 +1,51 @@ +# Managing Pretranslation + +Pretranslation automatically translates new strings using translation memory (TM) and machine translation, saving results as *Pretranslated* strings that can be reviewed before going live. + +When pretranslation is enabled for a locale+project combination and a new string is added to Pontoon: + +1. Pontoon checks for a **100% TM match** — if found, it is used directly. +2. If no TM match exists, the **Google AutoML Translation** custom model for the locale is used. +3. The string is saved with the *Pretranslated* status. +4. For VCS projects, the pretranslation is stored in localized files outside Pontoon. + +## Enabling pretranslation for a project + +Access Pontoon's admin console → open the project → scroll to the **Pretranslation** section at the bottom of the page. + +!!! important + If this is the **first project** being enabled for a locale, you must first train and set up a custom AutoML model (see below) before enabling pretranslation. + +1. Check **PRETRANSLATION ENABLED**. +2. Move the desired locales from the **Available** list to **Chosen**. +3. Optionally, click **PRETRANSLATE** to immediately pretranslate all missing strings for enabled locales. Otherwise, pretranslation runs automatically as new strings are added. + +## Training a custom AutoML model + +Custom models are trained per locale using Pontoon's translation memory, resulting in better quality than the generic Google Translate engine. + +### Step 1 — Download the TM + +Go to the **Team page** for the locale → **TM** tab → download the TMX file. + +### Step 2 — Import the TM into Google AutoML + +1. Open the [Google Cloud Console](https://console.cloud.google.com) (requires permission). +2. Navigate to **AutoML Translation** → **Datasets** → **CREATE DATASET**. +3. Import the TMX file: + - Click **BROWSE** in the *Destination on Cloud Storage* field and select `pontoon-prod-model-data-c1107144`. + - Click **CONTINUE** to start the import. + - Wait for the Status column to show `Success: ImportData` (a few minutes; you can close the window and return). + +### Step 3 — Train the model + +1. Navigate to the **TRAIN** tab → click **START TRAINING**. +2. Training is a background job that takes **several hours**. At most 4 locale models can train concurrently. +3. Wait for the Status column to show `Success: CreateModel`. +4. Note the model name (usually starts with `NM`, followed by alphanumeric characters). + +### Step 4 — Register the model in Pontoon + +In Django's admin interface at `/a/` → **Locales** → find the locale → set the **Google automl model** field to the model name noted above. + +From this point, the Machinery tab uses the custom model and pretranslation is ready to be enabled. diff --git a/documentation/docs/admin/managing-users.md b/documentation/docs/admin/managing-users.md new file mode 100644 index 0000000000..722b571f50 --- /dev/null +++ b/documentation/docs/admin/managing-users.md @@ -0,0 +1,28 @@ +# Managing Users + +## Deactivating users + +Deactivating a user prevents them from logging in but preserves their contribution history and attribution in translation records. + +1. Access Django's admin interface at `/a/`. +2. Click **Users** and search for the user. +3. Uncheck the **Active** checkbox on the user's record. +4. Click **Save**. + +Deactivation is reversible — you can reactivate the user by checking **Active** again. + +## Removing users + +Removing a user **permanently deletes** their account. This is irreversible and should only be done when strictly necessary (e.g., for GDPR/privacy requests). + +1. Access Django's admin interface at `/a/`. +2. Click **Users** and search for the user. +3. Select the user and choose **Delete selected users** from the action dropdown. +4. Confirm the deletion. + +!!! danger + Deleting a user is permanent. Their username may be replaced with an anonymized placeholder in historical translation records. + +## Adjusting permissions + +To change a user's role (Contributor, Translator, Team Manager), use the **Permissions** tab on the relevant Team page. See [User Accounts & Settings](../localizer/users.md#managing-permissions-team-managers) for details. diff --git a/documentation/docs/admin/messaging-center.md b/documentation/docs/admin/messaging-center.md new file mode 100644 index 0000000000..a995f0eff3 --- /dev/null +++ b/documentation/docs/admin/messaging-center.md @@ -0,0 +1,53 @@ +# Messaging Center + +The Messaging Center allows Administrators to send targeted emails and in-app notifications to contributors, with advanced filtering options. + +## Accessing the Messaging Center + +Click **Messaging** in the page header when logged in as an Administrator. The Messaging Center is at `/messaging/`. + +## Composing a message + +### Message type + +At the top of the page, choose one or more delivery types: + +| Type | Notes | +|---|---| +| **Notification** | Sent as an in-app notification. Not included in notification email digests. | +| **Email** | Sent as an email. By default, only sent to users who have opted in to *News and updates*. | +| **Both** | Sends both a notification and an email. | + +For emails, if the message is **transactional** (e.g., about an account action), check the **Transactional** option. Transactional emails are sent even to users who have not opted in to email communication. + +### Subject and body + +Enter your message using the **Subject** and **Body** fields. + +## Audience filtering + +### By role + +Select whether to send to **Managers**, **Translators**, **Contributors**, or **All of them**. + +### By locale + +All locales are included by default (shown in the **Chosen** column). Remove individual locales by clicking them to move them to the **Available** column. Use **MOVE ALL** to move all locales at once between columns. + +### By project + +All projects are included by default. Remove individual projects by clicking them. Use **MOVE ALL** to move all projects. + +### By activity + +Filter recipients based on their contribution history: + +- **Number of translations submitted** — minimum or maximum threshold. +- **When they last submitted a translation** — date range. + +## Sending + +After configuring the message and audience, click **Send** to deliver. Recipients are determined by the intersection of all applied filters. + +!!! note + Notifications sent via the Messaging Center are **not** included in the regular notification email digests that users receive. diff --git a/documentation/docs/admin/renaming-file.md b/documentation/docs/admin/renaming-file.md new file mode 100644 index 0000000000..077cb2d205 --- /dev/null +++ b/documentation/docs/admin/renaming-file.md @@ -0,0 +1,13 @@ +# Renaming a Localization File + +Renaming a resource file in the VCS repository requires corresponding updates in Pontoon's database to avoid losing translation history. + +## Steps + +1. Rename the file in your VCS repository and push the change. +2. Access Pontoon's admin console → the affected project. +3. In the **Resources** section, find the old filename and update it to match the new filename. +4. Save the project and trigger a manual **SYNC**. + +!!! warning + If you sync before updating the resource name in Pontoon, the old resource will be marked as deleted and a new one created, losing all translation history. diff --git a/documentation/docs/admin/renaming-project.md b/documentation/docs/admin/renaming-project.md new file mode 100644 index 0000000000..00e0596716 --- /dev/null +++ b/documentation/docs/admin/renaming-project.md @@ -0,0 +1,16 @@ +# Renaming a Project + +Renaming a project changes its **Name** and, if desired, its **Slug** (used in URLs). + +## Steps + +1. Access Pontoon's admin console → the project you want to rename. +2. Update the **Name** field. +3. If you also want to update the slug, update the **Slug** field. Be aware that this changes all URLs for the project and localization pages. +4. Click **SAVE PROJECT**. + +!!! warning + Changing the **Slug** invalidates any bookmarked or shared links to the project's pages. Coordinate with the team and update any external references (documentation, bug trackers, etc.) before or immediately after renaming. + +!!! note + For VCS-backed projects, renaming does not affect the repository or its file structure. diff --git a/documentation/docs/assets/pontoon-logo.svg b/documentation/docs/assets/pontoon-logo.svg new file mode 100644 index 0000000000..85d323e2f1 --- /dev/null +++ b/documentation/docs/assets/pontoon-logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/documentation/docs/dev/contributing.md b/documentation/docs/dev/contributing.md new file mode 100644 index 0000000000..2a3beefae9 --- /dev/null +++ b/documentation/docs/dev/contributing.md @@ -0,0 +1,400 @@ +# Contributing Guidelines + +## Source code + +Pontoon source code is available on +[GitHub](https://github.com/mozilla/pontoon). + +## Issues + +Our work is tracked in +[GitHub](https://github.com/mozilla/pontoon/issues). + +[Report a new issue](https://github.com/mozilla/pontoon/issues/new). + +## Docker + +While the front-end (JavaScript) build and tests use the host +environment for development, the back-end systems (Python/Django, +databases, etc.) run in Docker containers. For production use, also the +front-end is built in a container. Thus Pontoon requires fewer things to +get started and you\'re guaranteed to have the same server setup as +everyone else. + +If you\'re not familiar with [Docker](https://docs.docker.com/) and +[docker-compose](https://docs.docker.com/compose/overview/), it\'s worth +reading up on. + +## Writing to external repositories + +`Environment variables <../admin/deployment>`{.interpreted-text +role="doc"} like `SSH_KEY` and `SSH_CONFIG` have no effect in a Docker +setup. + +The [\~/.ssh]{.title-ref} folder of the host system is mapped +automatically to the home folder within the container. In order to +connect to a remote repository via SSH, you need to create a +passwordless SSH key, and configure [\~/.ssh/config]{.title-ref} +accordingly. + +Here\'s an example for GitHub, assuming the private key file is called +[id_ed25519]{.title-ref} (see also [GitHub\'s +instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +to generate a new key): + +``` +Host github.com + User YOUR_USERNAME + IdentityFile ~/.ssh/id_ed25519 + StrictHostKeyChecking no +``` + +The project\'s repository will use the format +`git@github.com:{ORGANIZATION}/{REPOSITORY}.git` for the `URL` field. + +An alternative approach for GitHub is to use a [Personal Access Token +(PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), +and set up the project\'s `URL` as [https://]{.title-ref} instead of +[git@]{.title-ref}. In this case, the `URL` will need to include both +the PAT and username, e.g. +`https://{USER}:{TOKEN}@github.com/{REPOSITORY}`. + +## JavaScript setup + +For working on the front-end, you need the latest versions of Node.js +and npm ([installation +instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)). +Parts of the front-end use [npm +workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces), which +are not supported by earlier npm versions. + +## Database + +If you have a database dump, you can load it into your PostgreSQL +database. + +Make sure you backup your existing database first: + +``` shell +$ make dumpdb +``` + +And then load the dump: + +``` shell +$ make loaddb DB_DUMP_FILE=path/to/my/dump +``` + +Note that your database container needs to be running while you do that. +You can start just the postgresql container by running: + +``` shell +$ docker-compose up -d postgresql +``` + +## Interactive shell + +If you need to run specific commands, that are not covered by our +[Makefile]{.title-ref}, you can start an interactive shell inside a +Pontoon container: + +``` shell +$ make shell +``` + +[make shell-root]{.title-ref} is also available to log in as +[root]{.title-ref}, instead of the default [pontoon]{.title-ref} user. + +## Browser Support + +The list of browsers supported by Pontoon is defined in the +[\"browserslist\"]{.title-ref} entry of the root package.json, and +contains by default: + +``` bash +Firefox >= 78 +Chrome >= 80 +Edge >= 91 +Safari >= 13.1 +``` + +## Code style + +We use code formatters so that we do not have to fight over code style. +You are free to write code however you like, because in the end the +formatter is the one that will format it. We thus don\'t need to pay +attention to style during code reviews, and are free from those +never-ending code style discussions. + +To format the Python and the JavaScript code at once you can use: + +``` shell +$ make format +``` + +Code formatting is explained in more detail in the following sections. + +To run the required linters on the Python and the JavaScript code at +once you can use: + +``` shell +$ make lint +``` + +## Python code conventions + +Our Python code is automatically formatted using +[ruff](https://docs.astral.sh/ruff/). We enforce that in our Continuous +Integration, so you will need to run ruff on your code before sending it +for review. + +You can run ruff locally either as an [add-on in your code +editor](https://docs.astral.sh/ruff/integrations/#vs-code-official), or +as a [git pre-hook +commit](https://docs.astral.sh/ruff/integrations/#pre-commit). +Alternatively, you can format your code using: + +``` shell +$ make ruff +``` + +In the rare case when you cannot fix an error, use `# noqa` to make the +linter ignore that error (see +[documentation](https://docs.astral.sh/ruff/linter/#error-suppression)). +Note that in most cases, it is better to fix the issues than ignoring +them. + +## JavaScript code conventions + +Our JavaScript code is automatically formatted using +[Prettier](https://prettier.io/docs/en/index.html). We enforce that in +our Continuous Integration, so you will need to run prettier on your +code before sending it for review. + +You can run prettier locally either as an [add-on in your code +editor](https://prettier.io/docs/en/editors.html), or as a [git pre-hook +commit](https://prettier.io/docs/en/precommit.html). Alternatively, you +can format your code using: + +``` shell +$ make prettier +``` + +Additionally, there are linting rules that are defined in our +`eslint.config.mjs` file. To run the linter, do: + +``` shell +$ make eslint +``` + +In the rare case when you cannot fix an eslint error, use +`// eslint-disable` to make the linter ignore that error. Note that in +most cases, it is better to fix the issues than ignore them. + +For more specifics about the `translate` folder, look at the README.md +file there. + +## Git conventions + +The first line is a summary of the commit. It should start with one of +the following: + + Fix #1234 + +or: + + #1234 + +The first, when it lands, will cause the issue to be closed. The second +one just adds a cross-reference. + +After that, the commit should explain *why* the changes are being made +and any notes that future readers should know for context or be aware +of. + +We follow [The seven rules of a great Git commit +message](https://chris.beams.io/posts/git-commit/#seven-rules): + +1. Separate subject from body with a blank line +2. Limit the subject line to 50 characters +3. Capitalize the subject line +4. Do not end the subject line with a period +5. Use the imperative mood in the subject line +6. Wrap the body at 72 characters +7. Use the body to explain what and why vs. how + +## Pull requests + +Pull request summary should indicate the issue the pull request +addresses. + +Pull request descriptions should cover at least some of the following: + +1. what is the issue the pull request is addressing? +2. why does this pull request fix the issue? +3. how should a reviewer review the pull request? +4. what did you do to test the changes? +5. any steps-to-reproduce for the reviewer to use to test the changes + +## Code reviews + +Pull requests should be reviewed before merging. + +Style nits should be covered by linting as much as possible. + +Code reviews should review the changes in the context of the rest of the +system. + +## Python Dependencies + +Direct dependencies for Pontoon are distributed across four files: + +1. `requirements/default.in`: Running Pontoon in production +2. `requirements/dev.in`: Development +3. `requirements/test.in`: Testing +4. `requirements/lint.in`: Linting + +In order to pin and hash the direct and indirect dependencies, we use +[uv pip compile](https://docs.astral.sh/uv/#the-pip-interface), which +yields corresponding `*.txt` files. These `*.txt` files contain all +direct and indirect dependencies, and can be used for installation with +`uv pip`. After any change to the `*.in` files, you should run the +following command to update all `requirements/*.txt` files. + +``` shell +$ make requirements +``` + +When adding a new requirement, add it to the appropriate +`requirements/*.in` file. For example, to add the development dependency +`foobar` version 5, add `foobar==5` to `requirements/dev.in`, and then +run the command from above. + +Once you are done adding, removing or updating requirements, rebuild +your docker environment: + +``` shell +$ make build-server +``` + +If there are problems, it\'ll tell you. + +To upgrade existing dependencies within the given constraints of the +input files, you can pass options through to the `uv pip compile` +invocations, i.e. + +``` shell +$ make requirements opts=--upgrade +``` + +## Documentation + +Documentation for Pontoon is built with +[Sphinx](http://www.sphinx-doc.org/en/stable/) and is available on +ReadTheDocs. + +Building docs is not covered with docker yet, so you will have to do it +on your host. To make a virtualenv to build docs, do this: + +``` shell +$ cd docs/ +$ uv venv +$ source .venv/bin/activate +$ uv pip install -r requirements/default.txt +``` + +Then, to build the docs, run this: + +``` shell +$ make html +``` + +The HTML documentation will be in [docs/\_build/html/]{.title-ref}. Try +to open [docs/\_build/html/index.html]{.title-ref} for example. + +## Running tests + +To run the entire test suite, do: + +``` shell +$ make test +``` + +To run only the `translate` tests: + +``` shell +$ make test-translate +``` + +To run only the Python tests: + +``` shell +$ make pytest +``` + +To run specific tests or specify arguments, you\'ll want to start a +shell in the test container: + +``` shell +$ make shell +``` + +Then you can run tests as you like. + +Running all the unittests (make sure you run `./manage.py collectstatic` +first): + +``` shell +app@...:/app$ pytest +``` + +Running a directory of tests: + +``` shell +app@...:/app$ pytest pontoon/base/ +``` + +Running a file of tests: + +``` shell +app@...:/app$ pytest pontoon/base/tests/test_views.py +``` + +## Writing tests + +Put your tests in the `tests/` directory of the appropriate app in +`pontoon/`. + +## Mock usage + +[Mock](https://docs.python.org/dev/library/unittest.mock.html) is a +python library for mocks objects. This allows us to write isolated tests +by simulating services besides using the real ones. Best examples are +existing tests which admittedly do mocking different depending on the +context. + +Tip! Try to mock in limited context so that individual tests don\'t +affect other tests. Use context managers instead of monkey patching +imported modules. + +## Updating Your Local Instance + +When changes are merged into the main Pontoon repository, you\'ll want +to update your local development instance to reflect the latest version +of the site. You can use Git as normal to pull the latest changes, but +if the changes add any new dependencies or alter the database, you\'ll +want to install any new libraries and run any new migrations. + +If you\'re unsure what needs to be run, it\'s safe to just perform all +of these steps, as they don\'t affect your setup if nothing has changed: + +``` shell +# Pull the latest code (assuming you've already checked out main). +git pull origin main + +# Install new dependencies or update existing ones. +uv pip install -U --force -r requirements/default.txt + +# Run database migrations. +python manage.py migrate +``` diff --git a/documentation/docs/dev/deployment.md b/documentation/docs/dev/deployment.md new file mode 100644 index 0000000000..2fc4d24ad9 --- /dev/null +++ b/documentation/docs/dev/deployment.md @@ -0,0 +1,809 @@ +--- +title: Deployment +--- + +Pontoon is designed to be deployed on Heroku. To deploy an instance of +Pontoon on Heroku, you must first create an app on your Heroku +dashboard. The steps below assume you\'ve already created an app and +have installed the [Heroku +CLI](https://devcenter.heroku.com/articles/heroku-cli). + +For quick and easy deployment without leaving your web browser, click +this button: + +```{=html} + + + +``` +# Buildpack + +Pontoon uses several buildpacks in a specific order. They are (in +order): + +1. [heroku-buildpack-ssh](https://github.com/Osmose/heroku-buildpack-ssh) + for setting up the SSH keys necessary for committing to version + control. +2. The official `heroku/nodejs` buildpack for installing Node.js + programs for pre-processing frontend assets. +3. The official `heroku/python` buildpack as our primary buildpack. + +You can set these buildpacks on your app with the following toolbelt +commands: + +``` bash +# Note that we use add and --index 1 to append to the top of the list. +heroku buildpacks:set heroku/python +heroku buildpacks:add --index 1 heroku/nodejs +heroku buildpacks:add --index 1 https://github.com/Osmose/heroku-buildpack-ssh.git#v0.1 +heroku buildpacks:add --index 1 https://github.com/mozilla/heroku-buildpack-apt.git#v0.1 +``` + +# Environment Variables + +The following is a list of environment variables you\'ll want to set on +the app you create: + +::: note +::: title +Note +::: + +Alternatively, you can put all variables below in a +[dotenv](https://saurabh-kumar.com/python-dotenv/) text file: + + VAR="value 1" + OTHER_VAR="other value" + +If you do so, you will only have to give the path of this file to +Pontoon through the `DOTENV_PATH` environment variable: + + DOTENV_PATH=/path/to/my/config.env +::: + +`ADMIN_EMAIL` + +: Optional. Email address for the `ADMINS` setting. + +`ADMIN_NAME` + +: Optional. Name for the `ADMINS` setting. + +`AUTHENTICATION_METHOD` + +: The default value is [django]{.title-ref}, which allows you to log + in via accounts created using [manage.py shell]{.title-ref}. Set to + \'fxa\' if you want to use \'Mozilla Accounts\' (corresponding + [FXA]()\* settings must be set). Set to \'github\' if you want to + use \'GitHub\' (corresponding [GITHUB]()\* settings must be set). + Set to \'gitlab\' if you want to use \'GitLab\' (corresponding + [GITLAB]()\* settings must be set if required). Set to \'google\' if + you want to use \'Google\' (corresponding [GOOGLE]()\* settings must + be set). + +`USE_X_FORWARDED_HOST` + +: Optional. If using a reverse proxy, set to True to make + django-allauth redirect_url work as expected. Default value is + [False]{.title-ref}. + +`BADGES_START_DATE` + +: Optional. Specifies the start date from which user activities count + towards badge achievements. This variable should be in YYYY-MM-DD + format. + +`BADGES_PROMOTION_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Community Builder badge. + +`BADGES_REVIEW_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Review Master badge. + +`BADGES_TRANSLATION_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Translation Champion badge. + +`BLOCKED_IPS` + +: A comma-separated list of IP addresses or IP ranges (expressed using + the [CIDR notation](), e.g. [192.168.1.0/24]{.title-ref}) to be + blocked from accessing the app, for example because they are + DDoS\'ing the server. + +`CELERY_ALWAYS_EAGER` + +: Controls whether asynchronous tasks (mainly used during sync) are + sent to Celery or executed immediately and synchronously. Set this + to `False` on production. + +`CELERYD_MAX_TASKS_PER_CHILD` + +: Maximum number of tasks a Celery worker process can execute before + it's replaced with a new one. Defaults to 20 tasks. + +`DATABASE_SSLMODE` + +: Optional. Controls if the database needs a secure connection with + the app. Default value is [True]{.title-ref}. + +`DEFAULT_FROM_EMAIL` + +: Optional. Default email address to send emails from. Default value: + `Pontoon `. + +`DISABLE_COLLECTSTATIC` + +: Disables running `./manage.py collectstatic` during the build. + Should be set to `1`. + + Heroku\'s Python buildpack has a bug that causes issues when running + node binaries during the compile step of the buildpack. To get + around this, we run the command in our post-compile step (see + `bin/post_compile`) when the issue doesn\'t occur. + +`DJANGO_DEBUG` + +: Controls `DEBUG` mode for the site. Should be set to + [False]{.title-ref} in production. + +`DJANGO_DEBUG_TOOLBAR` + +: Enables Django Debug Toolbar (default: `False`). `DJANGO_DEV` must + be set to [True]{.title-ref}. + +`DJANGO_DEV` + +: Signifies whether this is a development server or not. Should be + [False]{.title-ref} in production. Adds some additional django apps + that can be helpful during day to day development. + +`EMAIL_HOST` + +: SMTP host (default: `'smtp.sendgrid.net'`). + +`EMAIL_HOST_PASSWORD` + +: Password for the SMTP connection. + +`EMAIL_HOST_USER` + +: Username for the SMTP connection (default: `'apikey'`). + +`EMAIL_PORT` + +: SMTP port (default: `587`). + +`EMAIL_USE_TLS` + +: Use explicit TLS for the SMTP connection (default: `True`). + +`EMAIL_USE_SSL` + +: Use implicit TLS for the SMTP connection (default: `False`). + +`EMAIL_CONSENT_ENABLED` + +: Optional. Enables Email consent page (default: `False`). + +`EMAIL_CONSENT_TITLE` + +: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Title of the + Email consent page. + +`EMAIL_CONSENT_MAIN_TEXT` + +: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Main text of the + Email consent page. You can use that to explain what type of + communication to expect among other things. + +`EMAIL_CONSENT_PRIVACY_NOTICE` + +: Optional. Privacy notice on the Email consent page. It\'s possible + to use HTML and link to external privacy notice page. + +`EMAIL_COMMUNICATIONS_HELP_TEXT` + +: Optional. Help text to use under the Email communications checkbox + in user settings. It allows to explain what type of communication to + expect and to link to deployment-specific privacy notices among + other things. + +`EMAIL_COMMUNICATIONS_FOOTER_PRE_TEXT` + +: Optional. Text to be shown in the footer of the non-transactional + emails sent using the Messaging Center, just above the unsubscribe + text. + +`EMAIL_MONTHLY_ACTIVITY_SUMMARY_INTRO` + +: Optional. Custom text to be shown in the Monthly activity summary + emails after the greeting and before the stats. + +`ENABLE_BUGS_TAB` + +: Optional. Enables Bugs tab on team pages, which pulls team data from + bugzilla.mozilla.org. Specific for Mozilla deployments. + +`ENABLE_INSIGHTS` + +: Optional. Enables Insights pages, which present data that needs to + be collected by the `collect-insights`{.interpreted-text role="ref"} + scheduled job. It is advised to run the job at least once before + enabling the tab, otherwise the content will be empty. See [the + spec](https://github.com/mozilla/pontoon/blob/HEAD/specs/0108-community-health-dashboard.md) + for more information. + +`ERROR_PAGE_URL` + +: Optional. URL to the page displayed to your users when the + application encounters a system error. See [Heroku + Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) + for more information. + +`GOOGLE_ANALYTICS_KEY` + +: Optional. Set your [Google Analytics + key](https://www.google.com/analytics/) to use Google Analytics. + +`GOOGLE_TRANSLATE_API_KEY` + +: Optional. Set your [Google Cloud Translation + API](https://cloud.google.com/translate/) key to use generic machine + translation engine by Google. + +`GOOGLE_AUTOML_PROJECT_ID` + +: Optional. Set your [Google Cloud AutoML + Translation](https://cloud.google.com/translate/) model ID to use + custom machine translation engine by Google. + +`GOOGLE_APPLICATION_CREDENTIALS` + +: Optional. Path to a Google Cloud service account JSON key file used + by Google client libraries for authentication. + +`INACTIVE_CONTRIBUTOR_PERIOD` + +: Optional. Number of months in which the contributor needs to log in + in order not to receive the inactive account email. The default + value is 6. + +`INACTIVE_TRANSLATOR_PERIOD` + +: Optional. Number of months in which the locale translator needs to + submit or review at least one translation in order not to receive + the inactive account email. The default value is 2. + +`INACTIVE_MANAGER_PERIOD` + +: Optional. Number of months in which the locale manager needs to + submit or review at least one translation in order not to receive + the inactive account email. The default value is 2. + +`LOG_TO_FILE` + +: Optional. Enables logging to a file (default: `False`). This is + useful for retaining log data for later analysis or troubleshooting. + +`MAINTENANCE_PAGE_URL` + +: Optional. URL to the page displayed to your users when the + application is placed in the maintenance state. See [Heroku + Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) + for more information. + +`MANUAL_SYNC` + +: Optional. Enable Sync button in project Admin. + +`MEDIA_ROOT` + +: Optional. The absolute path of the \"media\" folder the projects + will be cloned into (it is located next to the \"pontoon\" Python + module by default). + +`MICROSOFT_TRANSLATOR_API_KEY` + +: Optional. Set your [Microsoft Translator + API](http://msdn.microsoft.com/en-us/library/hh454950) key to use + machine translation by Microsoft. + +`MONTHLY_ACTIVITY_SUMMARY_DAY` + +: Optional. Integer representing a day of the month on which the + Monthly activity summary emails will be sent. 1 represents the first + day of the month. The default value is 1. + +`NEW_RELIC_API_KEY` + +: Optional. API key for accessing the New Relic REST API. Used to mark + deploys on New Relic. + +`NEW_RELIC_APP_NAME` + +: Optional. Name to give to this app on New Relic. Required if you\'re + using New Relic. + +`NOTIFICATION_DIGEST_DAY` + +: Optional. Integer representing a day of the week on which the weekly + notification digest email will be sent. 0 represents Monday, 6 + represents Sunday. The default value is 4 (Friday). + +`ONBOARDING_EMAIL_2_DELAY` + +: Optional. The number of days to wait after user registration before + sending the 2nd onboarding email. The default value is 2. + +`ONBOARDING_EMAIL_3_DELAY` + +: Optional. The number of days to wait after user registration before + sending the 3rd onboarding email. The default value is 7. + +`OPENAI_API_KEY` + +: Optional. Set your [OpenAI API]{.title-ref} key to add the ability + to refine machine translations using ChatGPT. + +`PERSONAL_ACCESS_TOKEN_MAX_COUNT` + +: Optional. The maximum number of personal access tokens a user can + create. The default value is 10. + +`PRETRANSLATION_API_MAX_CHARS` + +: Optional. Specifies the maximum length of input text allowed for + pretranslation API. The default value is 2048. + +`PROJECT_MANAGERS` + +: Optional. A list of project manager email addresses to send project + requests to + +`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION` + +: Required. Must be set to `python`. Needed for Google AutoML + Translation. Learn more on [Protocol Buffers + Homepage](https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates). + +`SECRET_KEY` + +: Required. Secret key used for sessions, cryptographic signing, etc. + +`SITE_URL` + +: Controls the base URL for the site, including the protocol and port. + Defaults to `http://localhost:8000`, should always be set in + production. + +`ALLOWED_HOSTS` + +: A list of strings representing the host/domain names the site can + serve. Defaults to `.localhost, 127.0.0.1, [::1]`, should always be + set in production. + +`SECURE_SSL_REDIRECT` + +: Optional. If True, redirects all non-HTTPS requests to HTTPS. + Default value is [True]{.title-ref}. Learn more in the [Django + documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#secure-ssl-redirect). + +`CSRF_TRUSTED_ORIGINS` + +: Optional. A comma-separated list of trusted origins for unsafe + requests. It should contain the domains where the app is available. + The setting also supports subdomains, so you could add + `https://*.example.com`, for example, to allow access from all + subdomains of `example.com`. Default value is an empty string. Learn + more in the [Django + documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins). + +`SSH_CONFIG` + +: Contents of the `~/.ssh/config` file used when Pontoon connects to + VCS servers via SSH. Used for disabling strict key checking and + setting the default user for SSH. For example: + + StrictHostKeyChecking=no + + Host hg.mozilla.org + User pontoon@mozilla.com + +`SSH_KEY` + +: SSH private key to use for authentication when Pontoon connects to + VCS servers via SSH. + +::: note +::: title +Note +::: + +Changing the `SSH_CONFIG` or `SSH_KEY` environment variables *requires* +a rebuild of the site, as these settings are only used at build time. +Simply changing them will not actually update the site until the next +build. + +The [Heroku Repo]() plugin includes a rebuild command that is handy for +triggering builds without making code changes. +::: + +::: note +::: title +Note +::: + +Some environment variables, such as the SSH-related ones, may contain +newlines. The easiest way to set these is using the `heroku` +command-line tool to pass the contents of an existing file to them: + +``` bash +heroku config:set SSH_KEY="`cat /path/to/key_rsa`" +``` +::: + +`STATIC_HOST` + +: Optional. Hostname to prepend to static resources paths. Useful for + serving static files from a CDN. Example: `//asdf.cloudfront.net`. + +`SUGGESTION_NOTIFICATIONS_DAY` + +: Optional. Integer representing a day of the week on which the + [send_suggestion_notifications]{.title-ref} management command will + run. 0 represents Monday, 6 represents Sunday. The default value is + 4 (Friday). + +`SYNC_TASK_TIMEOUT` + +: Optional. Multiple sync tasks for the same project cannot run + concurrently to prevent potential DB and VCS inconsistencies. We + store the information about the running task in cache and clear it + after the task completes. In case of an error, we might never clear + the cache, so we use SYNC_TASK_TIMEOUT as the longest possible + period after which the cache is cleared and the subsequent task can + run. The value should exceed the longest sync task of the instance. + The default value is 3600 seconds (1 hour). + +`SYSTRAN_TRANSLATE_API_KEY` + +: Optional. Set your [SYSTRAN Translate API key]{.title-ref} to use + machine translation by SYSTRAN. + +`TBX_DESCRIPTION` + +: Optional. Description to be used in the header of the Terminology + (.TBX) files. + +`TBX_TITLE` + +: Optional. Title to be used in the header of the Terminology (.TBX) + files. + +`THROTTLE_ENABLED` + +: Optional. Enables traffic throttling based on IP address (default: + `False`). + +`THROTTLE_MAX_COUNT` + +: Optional. Maximum number of requests allowed in + `THROTTLE_OBSERVATION_PERIOD` (default: `300`). + +`THROTTLE_OBSERVATION_PERIOD` + +: Optional. A period (in seconds) in which `THROTTLE_MAX_COUNT` + requests are allowed. (default: `60`). If longer than + `THROTTLE_BLOCK_DURATION`, `THROTTLE_BLOCK_DURATION` will be used. + +`THROTTLE_BLOCK_DURATION` + +: Optional. A duration (in seconds) for which IPs are blocked + (default: `600`). + +`TZ` + +: Timezone for the dynos that will run the app. Pontoon operates in + UTC, so set this to `UTC`. + +`VCS_SYNC_NAME` + +: Optional. Default committer\'s name used when committing + translations to version control system. + +`VCS_SYNC_EMAIL` + +: Optional. Default committer\'s email used when committing + translations to version control system. + +# Add-ons + +Pontoon is designed to run with the following add-ons enabled: + +- Database: Heroku Postgres +- Log Management: Papertrail +- Email: Sendgrid +- Scheduled Jobs: Heroku Scheduler +- Cache: Memcachier +- RabbitMQ: CloudAMQP + +It\'s possible to run with the free tiers of all of these add-ons, but +it is recommended that, at a minimum, you run the \"Standard 0\" tier of +Postgres. + +## SendGrid Add-on + +Pontoon uses [SendGrid](https://devcenter.heroku.com/articles/sendgrid), +which expects the following environment variable: + +`SENDGRID_PASSWORD` + +: Use SendGrid API key. + +## Cache Add-on + +Pontoon uses +[django-bmemcached](https://github.com/jaysonsantos/python-binary-memcached), +which expects the following environment variables from the cache add-on: + +`MEMCACHE_SERVERS` + +: Semi-colon separated list of memcache server addresses. + +`MEMCACHE_USERNAME` + +: Username to use for authentication. + +`MEMCACHE_PASSWORD` + +: Password to use for authentication. + +::: note +::: title +Note +::: + +By default, the environment variables added by Memcachier are prefixed +with `MEMCACHIER` instead of `MEMCACHE`. You can \"attach\" the +configuration variables with the correct prefix using the +`addons:attach` command: + +``` bash +heroku addons:attach resource_name --as MEMCACHE +``` + +Replace `resource_name` with the name of the resource provided by the +cache addon you wish to use, such as `memcachier:100`. Use the +`heroku addons` command to see a list of resource names that are +available. +::: + +## RabbitMQ Add-on + +Similar to the cache add-ons, Pontoon expects environment variables from +the RabbitMQ add-on: + +`RABBITMQ_URL` + +: URL for connecting to the RabbitMQ server. This should be in the + format for Celery\'s + [BROKER_URL](https://docs.celeryq.dev/en/stable/userguide/configuration.html#broker-url) + setting. + +::: note +::: title +Note +::: + +Again, you must attach the resource for RabbitMQ as `RABBITMQ`. See the +note in the Cache Add-ons section for details. +::: + +# Scheduled Jobs + +Pontoon requires several scheduled jobs to run regularly. + +## Sync Projects + +While internal Pontoon DB can be used for storing localizable strings, +Pontoon specializes in using version control systems for that purpose. +If you choose this option as well, you\'ll need to run the following +scheduled job: + +``` bash +./manage.py sync_projects +``` + +It\'s recommended to run this job at least once an hour. It commits any +string changes in the database to the remote VCS servers associated with +each project, and pulls down the latest changes to keep the database in +sync. + +The command supports the following options: + +- `--force` \-- Consider all version control repository files to have + changed. +- `--no-pull` \-- Do not pull new changes for version control + repositories. +- `--no-commit` \-- Do not commit and push any new changes to version + control. + +## Send Deadline Notifications + +Pontoon allows you to set deadlines for projects. This job sends +deadline reminders to contributors of projects when they are due in 7 +days. If 2 days before the deadline project still isn\'t complete for +the contributor\'s locale, notifications are sent again. The command is +designed to run daily. + +``` bash +./manage.py send_deadline_notifications +``` + +## Send Suggestion Notifications + +This job sends notifications about newly created unreviewed suggestions +that were submitted, unapproved or unrejected in the last 7 days. +Recipients of notifications are users with permission to review them, as +well as authors of any previous translations or comments of the same +string. The command is designed to run on a weekly basis. + +``` bash +./manage.py send_suggestion_notifications +``` + +## Send Review Notifications + +This job sends notifications about newly reviewed (approved or rejected) +suggestions to the authors of those suggestions. The command is designed +to run on a daily basis. + +``` bash +./manage.py send_review_notifications +``` + +## Send Notification Emails + +This job sends notifications in daily and weekly email digests. Daily +notifications are sent every time the command runs, while weekly +notifications are sent only on the configured day (e.g., Friday). + +``` bash +./manage.py send_notification_emails +``` + +## Send Monthly Activity Emails + +This job sends a summary of monthly activity to users via email. It is +designed to run on a specific day of the month but can be forced to run +at any time using the \--force argument. + +``` bash +./manage.py send_monthly_activity_emails +``` + +## Send Onboarding Emails + +Pontoon sends onboarding emails to new users. The first one is sent upon +registration, while this job sends the 2nd and 3rd email. You can +configure the number of days to wait before sending the 2nd and 3rd +emails. The command is designed to run daily. + +``` bash +./manage.py send_onboarding_emails +``` + +## Send Inactive Account Emails + +This command sends reminder emails to inactive users. Users in different +roles get different emails based on different activity criteria, which +can be configured in settings. The command is designed to run daily. + +``` bash +./manage.py send_inactive_account_emails +``` + +## Collect Insights + +The Insights tab in the dashboards presents data that cannot be +retrieved from the existing data models efficiently upon each request. +This job gathers all the required data and stores it in a dedicated +denormalized data model. The job is designed to run in the beginning of +the day, every day. + +``` bash +./manage.py collect_insights +``` + +## Warm up cache + +We cache data for some of the views (e.g. Contributors) for a day. Some +of them don\'t get a lot of visits, not even one per day, meaning that +the visitors of these pages often hit the cold cache. We use this job to +refresh data in the cache every day, because it changes often. The +command is designed to run daily. + +``` bash +./manage.py warmup_cache +``` + +## Clearing the session store + +When a user logs in, Django adds a row to the `django_session` database +table. If the user logs out manually, Django deletes the row. But if the +user does not log out, the row never gets deleted. + +Django does not provide automatic purging of expired sessions. +Therefore, it's your job to purge expired sessions on a regular basis. +Django provides a clean-up management command for this purpose: +`clearsessions`. It's recommended to run this command as a daily cron +job. + +``` bash +./manage.py clearsessions +``` + +## Sync Log Retention + +You may also optionally run the `clear_old_sync_logs` management command +on a schedule to remove sync logs from the database that are over 90 +days old: + +``` bash +./manage.py clear_old_sync_logs +``` + +## Provisioning Workers + +Pontoon executes scheduled jobs using +[Celery](http://www.celeryproject.org/). These jobs are handled by the +`worker` process type. You\'ll need to manually provision workers based +on how many projects you plan to support and how complex they are. At a +minimum, you\'ll want to provision at least one `worker` dyno: + +``` bash +heroku ps:scale worker=1 +``` + +# Database Migrations + +After deploying Pontoon for the first time, you must run the database +migrations. This can be done via the toolbelt: + +``` bash +heroku run ./manage.py migrate +``` + +# Creating an Admin User + +After deploying the site, you can create a superuser account using the +`createsuperuser` management command: + +``` bash +heroku run ./manage.py createsuperuser --user=admin --email=your@email.com +``` + +You\'ll then be prompted to set a password for your new user. + +If you\'ve already logged into the site with the email that you want to +use, you\'ll have to use the Django shell to mark your user account as +an admin: + +``` bash +heroku run ./manage.py shell +# Connection and Python info... +>>> from django.contrib.auth.models import User +>>> user = User.objects.get(email='your@email.com') +>>> user.is_staff = True +>>> user.is_superuser = True +>>> user.save() +>>> exit() +``` + +And with that, you\'re ready to start +`../user/localizing-your-projects`{.interpreted-text role="doc"}! diff --git a/documentation/docs/dev/feature-development-process.md b/documentation/docs/dev/feature-development-process.md new file mode 100644 index 0000000000..25a9c22784 --- /dev/null +++ b/documentation/docs/dev/feature-development-process.md @@ -0,0 +1,112 @@ +# Feature Development Process + +Landing a new feature or significant change in Pontoon follows a +structured yet flexible process. The goal is to ensure high-quality, +well-considered contributions that align with project priorities and +community needs. + +::: {.contents depth="1" local=""} +Table of Contents +::: + +## Propose the Idea (Filing an Issue) + +Anyone can suggest improvements: new features, enhancements to existing +ones, or feature removals. + +- For trivial changes (typos, minor bugfixes), a pull request (PR) + alone may suffice---no dedicated issue required. +- For anything non-trivial, create a GitHub issue in the + mozilla/pontoon repository. + - Clearly describe the problem/opportunity. + - Explain the motivation, expected impact, and user value. + - Include relevant context (screenshots, use cases, alternatives + considered). + +## Triage + +Core maintainers review new issues and perform triage on a weekly basis +to assign: + +- Type: Bug, Feature, Task. +- Priority label: P1 (must be fixed immediately) to P5 (valid bug, but + you might need to fix it). +- Labels such as "needs specification" or "needs documentation" if + required. +- Labels for rough time estimate: hours, days, weeks, months, + quarters. + +The issue is added to the Pontoon Roadmap GitHub project: + +- Initially placed in "Needs triage". +- Moved to "Ready" once actionable. +- Kept in "Not ready yet" if more discussion or a spec is needed. +- High-priority items ready for near-term work move to the top of the + "Ready" column. +- Larger initiatives (estimated to take months or quarters) are always + kept in the \"Not ready\" column before they are split into smaller + issues. + +## Specification (Recommended for Larger Features) + +For medium-to-large features (those affecting UX flows, data models, +multiple areas, or needing community consensus): + +- Draft a specification document in Markdown format and submit it as a + PR to the [specs/]{.title-ref} folder. +- Follow the structure seen in existing specs (problem statement, + goals, user stories, proposed solution, impacted areas, risks, + alternatives, migration plan if applicable). +- Get feedback and approval from core team members. + +Once approved, remove any "needs specification" label and move the issue +to "Ready" on the Roadmap. + +## Implementation (Writing Code) + +- When ready to begin, assign yourself or get assigned to the issue. +- The issue will then move to "In Progress" on the Roadmap. +- Work in a feature branch. +- Deliver: + - Clean, complete code. + - Unit and integration tests with good coverage. + - Any necessary database migrations or data changes. + +## Code Review + +- Open a pull request targeting the "main" branch. +- Make sure CI tests pass. +- Review is requested from core Pontoon team members. +- Address feedback on code quality, security, performance, test + coverage, and best practices. +- Once approved, the PR is merged. +- The associated issue is automatically closed and moved to "Done" on + the Roadmap. + +## Testing + +- The contributor is primarily responsible for thorough testing. +- Verify the feature behaves as intended. +- Check for regressions. +- For larger features, perform extensive testing in the development + environment during/after review. +- Core team may run additional testing. + +## Release + +- Features are first deployed to the [development + environments](https://pontoon.allizom.org/) for final validation. +- Once confirmed stable, they go live on production. +- Deployments are handled by core maintainers and occur as changes are + ready (typically immediately after, no strict cadence). + +## Documentation & Discoverability (as Needed) + +- If labeled "needs documentation" or if the change affects users + noticeably: + - Update or add content in the Pontoon documentation for + localizers. +- For major or high-impact features: + - Core team may add in-app announcements. + - The contributor might write a blog post on the [Mozilla L10n + blog](https://blog.mozilla.org/l10n/). diff --git a/documentation/docs/dev/first-contribution.md b/documentation/docs/dev/first-contribution.md new file mode 100644 index 0000000000..d8b3639e64 --- /dev/null +++ b/documentation/docs/dev/first-contribution.md @@ -0,0 +1,187 @@ +--- +title: The Guide to your First Contribution to Pontoon +--- + +Welcome to Pontoon! + +This document is going to guide you as you discover Pontoon and make +valuable contributions. It will walk you step by step until you are in a +position to write code that you can reliably run, test, and send for +review. + +# 1. Make sure it\'s a good match + +*Before contributing to an open source project, it is important to make +sure that the project uses technologies that you know and want to learn +more about.* + +Pontoon is a web application, with both back-end and front-end code. The +two languages we use are **Python** (back-end) and **JavaScript** +(front-end). On the back-end, we use the **Django** framework. On the +front-end, we use the **React** framework. To be able to contribute, you +will want to have knowledge of either Python and Django or JavaScript +and React. Having experience with both pairs is of course even better! + +We use **git** to version our code, and we use **GitHub** to handle pull +requests and code reviews. Basic knowledge of git is required to be able +to send your contributions our way. + + ------------------------------------------------------ + Skill Expected Level Notes + -------------- ------------------- ------------------- + git Basic knowledge + + Python Some experience Python 3 + + Django Basic knowledge + + JavaScript Some experience ECMAScript 2018 + + React Basic knowledge + ------------------------------------------------------ + +# 2. Install Pontoon + +*In order to be able to contribute code to an open source project, you +first need to be able to run that project on your computer.* + +The recommended method of installing Pontoon is using `docker` and our +scripts. It is straightforward if your computer is running with Linux or +macOS, and a tad more difficult for Windows. In all cases, follow the +instructions in our `setup`{.interpreted-text role="doc"} page. + +# 3. Populate your database + +*After installing a tool, it is likely that its database is empty. You +will need to create some data in order to have things show up in the +interface.* + +Once Pontoon is installed and you have it running, you will want to +create some data so that you can play with it, and test it in action. +You can create any kind of data you want, of course, but to make it +easier we have a special git repository that we made for testing +Pontoon. Here are the steps to add that project to your Pontoon +instance: + +1. Log in to your local instance with the superuser account you created + during the previous step. +2. Click the avatar in the top-right corner, and in the menu click + \"Admin\". +3. You will see the Admin panel, with a table of projects that will + likely be empty. Click the \"Add New Project\" button. +4. Fill the project creation form as follows: + 1. Name: Pontoon Test + 2. Slug (auto-filled): pontoon-test + 3. Locales: select Slovenian (sl), then add any locales you want + 4. Repositories - URL: + +5. Leave the rest as it is, then scroll to the bottom of the page, and + click the \"Save Project\" button. +6. Once the project is saved, scroll to the bottom of the page again, + and click the \"Sync\" button. This will pull the data from the + repository, and create entries for each of the locales you have + enabled. +7. And that\'s it! You should now have a project enabled for some + locale. + +# 4. Verify your setup + +*Setting up a project means more than installing it: it also means +making sure that the tool runs and that tests pass.* + +Once you have successfully installed and populated Pontoon on your +computer, you will need to make a few verifications. First and foremost, +make sure the site works correctly, and the data you created previously +shows up. Make sure you can log in, that you can send some translations, +that projects appear on the dashboards, etc. + +Second, you will want to run the tests and make sure they pass. We have +a few test suites for Pontoon, some for the front-end, others for the +back-end, as well as a few code-quality tests. To run all of the tests +(same as what will happen when you open a pull request in GitHub), use +the command `make test`. + +When you have successfully verified that your setup works correctly, you +can safely move to the next part. + +# 5. Choose an issue to work on + +*You are now ready to make a contribution! Open source projects usually +have a list of mentored issues that are appropriate to work on first, +and on which mentors will be available to help you.* + +Work that needs to be done on Pontoon is tracked in +[GitHub](https://github.com/mozilla/pontoon/issues), where we maintain a +list of what we deem [good first +issues](https://github.com/mozilla/pontoon/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). + +Look through that list for unassigned issues, choose one that is +appealing to you and seems appropriate for your skill set, then comment +on that issue asking to be assigned to it. Feel free to start working on +it right away --- even if you end up not being assigned for some reason, +it will still be a good experience for you. + +# 6. Read the contributing rules + +*Most projects have strict contributing rules, and your contributions +risk not being accepted if you don\'t respect them.* + +To make developer\'s lives easier, we enforce a few contribution rules +around Pontoon. They range from how to style your code to how to write +commit messages. All these rules are written in our +`contributing`{.interpreted-text role="doc"} page. Please read it before +opening a pull request! + +There is more documentation around Pontoon, and it is often worth +reading it, if only to understand better how the tool works and how and +where to make your contributions. Here are a few links to important +documentation resources: + +- If you want to work on the front-end, it is important that you read + the [Front-End + Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). +- Most of the documentation around installing and developing can be + found in [Pontoon\'s + Documentation](https://mozilla-pontoon.readthedocs.io/en/latest/). +- For documentation about using Pontoon to localize, see [How to use + Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/). +- For documentation about exposing a project on Pontoon, see [How to + localize your + projects](https://mozilla-pontoon.readthedocs.io/en/latest/user/localizing-your-projects.html). +- For documentation about managing communities in Pontoon, see + [Working with + Pontoon](https://mozilla-l10n.github.io/documentation/tools/pontoon/). + +# 7. Communicate with us + +*Open source projects are usually built around a community of people. +Communicating with that community is an important part of contributing +to such projects.* + +There are two main places where we communicate about Pontoon\'s +development. The first one is +[chat.mozilla.org](https://chat.mozilla.org/), used for real-time chat, +quick questions, side-track conversations, etc. Find us in the [#pontoon +channel](https://chat.mozilla.org/#/room/#pontoon:mozilla.org). + +The second is [GitHub +Discussions](https://github.com/mozilla/pontoon/discussions), a forum +platform that we use for more long-term conversations. + +These are both places that we strongly encourage you to join, and they +are where you should introduce yourself, ask questions, show your work, +etc. + +Pontoon\'s core developer team is currently composed of Matjaž and +Eemeli. We also regularly receive invaluable help from community +members. + + ------------------------------------------------------------------------------------------------------------------------------------------------------------ + Name ROLE chat.mozilla.org github + --------------------------------------------------------------------- -------- --------------- ------------------ ------------------------------------------ + ![image0](https://avatars2.githubusercontent.com/u/626716?s=32&v=4) Matjaž Pontoon Core mathjazz [mathjazz](https://github.com/mathjazz/) + Developer + + ![image1](https://avatars3.githubusercontent.com/u/617000?s=32&v=4) Eemeli Pontoon Core eemeli [eemeli](https://github.com/eemeli/) + Developer + ------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/documentation/docs/dev/index.md b/documentation/docs/dev/index.md new file mode 100644 index 0000000000..f8430fd27b --- /dev/null +++ b/documentation/docs/dev/index.md @@ -0,0 +1,52 @@ +# Developer Guide + +[Pontoon](https://github.com/mozilla/pontoon) is a translation +management system used and developed by the Mozilla localization +community. It can handle any project that uses one of the supported file +formats: + +- .dtd +- .ftl (Fluent) +- .ini +- .json (WebExtensions) +- .json (key-value) +- .po (Gettext) +- .properties +- .xliff +- .xml (Android) + +Pontoon pulls strings it needs to translate from an external source and +writes them back periodically. Typically these external sources are +version control repositories that store the strings for an application. +Supported external sources are **Git** and **Mercurial** repositories. + +## Contributing + +If you are interested in contributing to Pontoon\'s code, start with +`dev/first-contribution`{.interpreted-text role="doc"}. + +## Deploying + +If you want to deploy your own instance of Pontoon, read the +`admin/deployment`{.interpreted-text role="doc"} section. + +Once you have a running instance, you will likely want to learn about +`user/localizing-your-projects`{.interpreted-text role="doc"}, and then +dive into [management +tasks](https://mozilla-l10n.github.io/documentation/tools/pontoon/). + +## Localizing + +If you\'re looking for help on using Pontoon for localizing projects, +whether on Mozilla\'s instance or any other, you can read our [How to +use +Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) +documentation. + +## Contents + +::: {.toctree maxdepth="2"} +dev/first-contribution dev/setup dev/contributing +dev/feature-development-process admin/deployment admin/maintenance +user/localizing-your-projects dev/setup-virtualenv +::: diff --git a/documentation/docs/dev/localizing-your-projects.md b/documentation/docs/dev/localizing-your-projects.md new file mode 100644 index 0000000000..bfc59e2835 --- /dev/null +++ b/documentation/docs/dev/localizing-your-projects.md @@ -0,0 +1,108 @@ +--- +title: Localizing your projects +--- + +The following describes how to make your projects localizable with your +Pontoon instance. + +Pontoon specializes in using version control systems as the source and +store of localizable strings. While internal Pontoon DB can be used for +that purpose as well, steps below assume you store strings in a [GitHub +repository](https://help.github.com/en/articles/create-a-repo). + +# Prerequisites + +Before you can set up a new project in Pontoon: + +1. Ensure your project works with one of the + `supported l10n frameworks <../index>`{.interpreted-text + role="doc"}. + +2. Extract localizable strings into resource files. + +3. Push resource files to your GitHub repository. + +4. Make sure your Pontoon instance has write access to your repository. + + ::: note + ::: title + Note + ::: + + The recommended way for that is to create a dedicated GitHub account + for your Pontoon instance, [add it as a + collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) + to your repository, and set `SSH_KEY` and `SSH_CONFIG` + `as documented <../admin/deployment>`{.interpreted-text role="doc"}. + ::: + +# Folder structure + +To let Pontoon discover your localizable files, you\'ll either need to +specify paths in the [project configuration +file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) +or strictly follow the file and folder structure as expected by Pontoon: + +1. Locale folders (including source locale) must be located at the same + nesting level of the directory tree. You may want to put all locale + folders under a `locales` folder. +2. Source locale needs to be called `templates`, `en-US`, `en-us` or + `en`. If multiple folders with such name exist in the repository and + contain files in a supported file format, the first one will be + used. +3. Locale folder names must always match locale identifiers used by + Pontoon. If your application requires different identifiers, you can + try creating symbolic links to locale folders. +4. Locale code must not be part of the file name. + +Correct pattern: + + locales/{locale_code}/path/to/file.extension + +Incorrect pattern: + + locales/{locale_code}/path/to/file.{locale_code}.extension + +For Gettext files, you will need to ensure that `.po` files are included +in the repository for each target locale for which they are to be +translated (these files may be initially empty). For all other supported +formats, Pontoon will automatically add files for each locale when it is +translated. + +# Adding a new project to Pontoon + +When accessing your deployed app, your email address is your login in +the Sign In page and your password is the one picked during setup. After +you log in, access Pontoon Admin (`/admin/`), click **ADD NEW PROJECT** +and fill out the following required fields: + +1. **Name**: name of the project to be displayed throughout Pontoon + app. The following project names are reserved: `Terminology`, + `Tutorial`, `Pontoon Intro`. +2. **Slug**: used in URLs, will be generated automatically based on the + Name. +3. **Locales**: select at least one Localizable locale by clicking on + it. +4. **Repository URL**: enter your repository\'s SSH URL of the form + `git@github.com:user/repo.git`. +5. **Download prefix or path to TOML file**: a URL prefix for + downloading localized files. +6. Click **SAVE PROJECT** at the bottom of the page. +7. After the page reloads, click **SYNC** and wait for Pontoon to + import strings. You can monitor the progress in the Sync log + (`/sync/log/`). +8. When the synchronization is finished, you should check the imported + resources and the entities. If everything went okay, you can proceed + to the next step. +9. Go to the project\'s admin page and change the visibility option to + make the project public. It\'s required because all new projects in + Pontoon are private by default and aren\'t visible to localizers and + locale managers. + +For complete documentation of the Admin form, please refer to Mozilla\'s +[new project +documentation](https://mozilla-l10n.github.io/documentation/tools/pontoon/adding_new_project.html). + +At this point you are ready to [start localizing your +project](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) +at `/projects/SLUG/`! diff --git a/documentation/docs/dev/maintenance.md b/documentation/docs/dev/maintenance.md new file mode 100644 index 0000000000..50f4d29480 --- /dev/null +++ b/documentation/docs/dev/maintenance.md @@ -0,0 +1,108 @@ +--- +title: Maintenance +--- + +The following describes tricks and tools useful for debugging and +maintaining an instance of Pontoon deployed to Heroku. + +# Monitoring Celery + +[Flower](https://github.com/mher/flower) is a web interface for +monitoring a [Celery](http://www.celeryproject.org/) task queue. It\'s +useful for seeing how the worker dynos are handling sync jobs. + +After installation, you can run a local instance of Flower and connect +it to a Heroku-hosted instance of RabbitMQ: + +``` bash +# Replace my-app-name with your Heroku app's name. +flower --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` +``` + +# Releasing the queue + +If queue gets stuck, tasks don\'t make it to the worker until manual +intervention. You can fix this by running the following commands from +your local development environment. + +First, you need to purge the queue: + +``` bash +# Replace my-app-name with your Heroku app's name. +celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` amqp +# Replace my-queue-name with your queue's name (e.g. celery). +1> queue.purge my-queue-name +``` + +Finally, you need to simply access the worker: + +``` bash +# Replace my-app-name with your Heroku app's name. +celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` worker +``` + +# Mitigating DDoS attacks + +In a distributed denial-of-service attack +([DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack), +the incoming traffic flooding the victim originates from many different +sources. This stops everyone else from accessing the website as there is +too much traffic flowing to it. + +One way to mitigate DDoS attacks is to enable traffic throttling. Set +the [THROTTLE_ENABLED]{.title-ref} environment variable to True and +configure other THROTTLE\* variables to limit the number of requests per +period from a single IP address. + +A more involved but also more controlled approach is to identify the IP +addresses of the attackers (see the handy [IP detection +script](https://github.com/mozilla-l10n/pontoon-scripts/blob/main/dev/check_ips_heroku_log.py) +to help with that) and block them. Find the attacking IP addresses in +the Log Management Add-On (Papertrail) and add them to the BLOCKED_IPs +config variable in Heroku Settings. + +# Vacuuming a Database + +To reduce the size of Postgres DB tables and improve performance, it is +recommended to [vacuum the +database](https://devcenter.heroku.com/articles/managing-vacuum-on-heroku-postgres) +regularly. Heroku already does that partially by running the +[VACUUM]{.title-ref} command automatically, but that only marks the +space as available for reuse. + +Running [VACUUM FULL]{.title-ref} offers a more exhaustive cleanup and +reduces bloat. + +> ::: warning +> ::: title +> Warning +> ::: +> +> [VACUUM FULL]{.title-ref} is a heavyweight operation, which prevents +> any other statements from running concurrently, even simple SELECT +> queries. For most tables it only takes a few seconds to complete, but +> on the bigger tables it can take up to a few minutes. During that +> time, the application will be unresponsive. +> ::: + +You can run [VACUUM FULL]{.title-ref} with the following command: + +``` bash +$ heroku pg:psql --app mozilla-pontoon +=> VACUUM FULL table_name; +``` + +To list the DB tables, ordered by size, run: + +``` bash +$ heroku pg:psql --app mozilla-pontoon +=> SELECT + table_name, + pg_size_pretty(pg_total_relation_size(table_name::text)) AS size + FROM + information_schema.tables + WHERE + table_schema = 'public' + ORDER BY + pg_total_relation_size(table_name::text) DESC; +``` diff --git a/documentation/docs/dev/setup-virtualenv.md b/documentation/docs/dev/setup-virtualenv.md new file mode 100644 index 0000000000..af2f83e54e --- /dev/null +++ b/documentation/docs/dev/setup-virtualenv.md @@ -0,0 +1,211 @@ +--- +title: Developer Setup with virtualenv +--- + +The following document describes how to set up an instance of the site +on your computer for development. + +> ::: note +> ::: title +> Note +> ::: +> +> Installation with virtualenv is not recommended. If possible, please +> use Developer Setup with Docker, which is simpler and makes it easier +> to reproduce potential issues. +> ::: + +# Prerequisites + +This guide assumes you have already installed and set up the following: + +1. [Git](https://git-scm.com) +2. [Python 3.11](https://www.python.org) +3. [uv](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer) +4. [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com) +5. [PostgreSQL 15](http://www.postgresql.org) + +These docs assume a Unix-like operating system, although the site +should, in theory, run on Windows as well. All the example commands +given below are intended to be run in a terminal. + +If you\'re on Ubuntu 24.04 LTS, you can install all the prerequisites +using the following commands: + +> ``` bash +> # These steps are required to install PostgreSQL 15 (default is 16) +> sudo apt install -y dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl +> curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null +> echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list +> sudo apt update +> +> sudo apt install -y git python3-dev python-is-python3 virtualenv postgresql-client-15 postgresql-15 libxml2-dev libxslt1-dev libmemcached-dev libpq-dev nodejs npm +> # Set Python 3.11 as default +> update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 +> +> # Install uv +> curl -LsSf https://astral.sh/uv/install.sh | sh +> source $HOME/.cargo/env +> +> # Start PostgreSQL server +> /etc/init.d/postgresql start +> ``` + +# Installation + +1. Clone this [repository](https://github.com/mozilla/pontoon) or your + [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo): + + ``` bash + git clone https://github.com/mozilla/pontoon.git + cd pontoon + ``` + +2. Create a virtualenv for Pontoon with Python 3.11 and activate it: + + ``` bash + uv python install 3.11 + uv venv --python 3.11 + # Activate virtualenv + source .venv/bin/activate + ``` + + ::: note + ::: title + Note + ::: + + Whenever you want to work on Pontoon in a new terminal you\'ll have + to re-activate the virtualenv. + ::: + +3. Install the dependencies: + + ``` bash + uv pip install -r requirements/default.txt -r requirements/dev.txt -r requirements/test.txt + ``` + +4. Create your database, using the following set of commands. + + First connect to Postgres: + + ``` bash + sudo -u postgres psql + ``` + + Then run the following commands in the console: + + ``` bash + CREATE USER pontoon WITH PASSWORD 'asdf' SUPERUSER; + CREATE DATABASE pontoon; + GRANT ALL PRIVILEGES ON DATABASE pontoon to pontoon; + \q + ``` + +5. Create a `.env` file at the root of the repository to configure the + settings for your development instance. It should look something + like this: + + ``` ini + SECRET_KEY=insert_random_key + DJANGO_DEV=True + DJANGO_DEBUG=True + DATABASE_URL=postgres://pontoon:asdf@localhost/pontoon + SESSION_COOKIE_SECURE=False + SITE_URL=http://localhost:8000 + FXA_CLIENT_ID=2651b9211a44b7b2 + FXA_SECRET_KEY=a3cafccbafe39db54f2723f8a6f804c337e362950f197b5b33050d784129d570 + FXA_OAUTH_ENDPOINT=https://oauth-stable.dev.lcip.org/v1 + FXA_PROFILE_ENDPOINT=https://stable.dev.lcip.org/profile/v1 + ``` + + Make sure to make the following modifications to the template above: + + - `SECRET_KEY` should be set to some random key you come up with, + as it is used to secure the authentication data for your local + instance. + - `DATABASE_URL` should contain the connection data for connecting + to your Postgres database. It takes the form + `postgres://username:password@server_addr/database_name`. + - `SITE_URL` should be set to the URL you will use to connect to + your local development site. Some people prefer to use + `http://127.0.0.1:8000` instead of `localhost`. However, should + you decide to change the `SITE_URL`, you also need to + [request](https://mozilla.github.io/ecosystem-platform/) the new + `FXA_CLIENT_ID` and `FXA_SECRET_KEY`. + +6. Initialize your database by running the migrations: + + ``` bash + python manage.py migrate + ``` + +7. Create a new superuser account: + + ``` bash + python manage.py createsuperuser + ``` + + Make sure that the email address you use for the superuser account + matches the email that you will log in with via Firefox Accounts. + +8. After you\'ve provided credentials for your django-allauth provider, + you have to update them in database, because it\'s required by + django-allauth. You will have to call this command after every + change in your django-allauth settings (e.g. client key): + + ``` bash + python manage.py update_auth_providers + ``` + +9. Install the required Node libraries using `npm`: + + ``` bash + npm install + ``` + +10. Build the client: + +> ``` bash +> npm run build +> ``` + +Once you\'ve finished these steps, you should be able to start the site +by running: + +``` bash +python manage.py runserver +``` + +The site should be available at . + +# Extra settings + +The following extra settings can be added to your `.env` file. + +`GOOGLE_TRANSLATE_API_KEY` + +: Set your [Google Cloud Translation + API](https://cloud.google.com/translate/) key to use generic machine + translation engine by Google. + +`GOOGLE_AUTOML_PROJECT_ID` + +: Set your [Google Cloud AutoML + Translation](https://cloud.google.com/translate/) model ID to use + custom machine translation engine by Google. + +`MICROSOFT_TRANSLATOR_API_KEY` + +: Set your [Microsoft Translator + API](http://msdn.microsoft.com/en-us/library/hh454950) key to use + machine translation by Microsoft. + +`GOOGLE_ANALYTICS_KEY` + +: Set your [Google Analytics key](https://www.google.com/analytics/) + to use Google Analytics. + +`MANUAL_SYNC` + +: Enable Sync button in project Admin. diff --git a/documentation/docs/dev/setup.md b/documentation/docs/dev/setup.md new file mode 100644 index 0000000000..10c2c8c294 --- /dev/null +++ b/documentation/docs/dev/setup.md @@ -0,0 +1,126 @@ +--- +title: Developer Setup +--- + +The following describes how to set up an instance of the site on your +computer for development with Docker. + +> ::: warning +> ::: title +> Warning +> ::: +> +> These installation steps are made for development only. It is not +> recommended to run Pontoon via Docker in production. +> ::: + +# Prerequisites + +1. Install [Docker](https://docs.docker.com/install/). +2. Install [latest versions of Node.js and + npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). +3. Install [make](https://www.gnu.org/software/make/) using either your + system\'s package manager (Linux) or Xcode command line developer + tools (OSX). On Windows, you can use + [MozillaBuild](https://wiki.mozilla.org/MozillaBuild). + +# Quickstart + +1. Clone the [Pontoon repository](https://github.com/mozilla/pontoon): + + $ git clone https://github.com/mozilla/pontoon.git + + ::: note + ::: title + Note + ::: + + To contribute changes to the project, you will need to + [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) + the repository under your own GitHub account. + ::: + +2. From the root of the repository, run: + + $ make build + + That will install Pontoon\'s JS dependencies, build the frontend + packages, and build the server container. + + ::: note + ::: title + Note + ::: + + If you want to share your development instance in your local + network, set SITE_URL to bind the server to any address you like, + e.g. `make build SITE_URL="http://192.168.1.14:8000"`. + ::: + +3. Run the webapp: + + $ make run + + ::: note + ::: title + Note + ::: + + The first time you run this, the PostgreSQL container needs to do + some work before it becomes available to the server container. + Hence, the server might not be able to perform things like + migrations. You can simply wait for the postgresql container to + report that it\'s ready, then abort the process, then restart it. + That should let the server do all its setup as expected. + + Alternatively, you can run `docker-compose up postgresql` and wait + until it reports that the database is ready, then stop that and run + `make run`. + ::: + +4. Finally, you need to run some setup steps, while the server is + running: + + $ make setup + + This will ask you to create a superuser, and then will update your + Firefox account settings. + +The app should now be available at or the custom +SITE_URL. + +And with that, you\'re ready to start `contributing`{.interpreted-text +role="doc"}! + +# Installing Docker on Windows Pro/Enterprise/Education + +Install [Docker Desktop for +Windows](https://docs.docker.com/desktop/install/windows-install/). + +## Install tools (git, make, cygwin) + +The easiest way is to use a package manager like +[Chocolatey](https://chocolatey.org/install). Follow the installation +instructions for Windows Powershell (Admin), then run +`choco install make git cygwin` to install all packages. + +Follow the prompt requests allowing script execution. At the end, verify +that packages are available with `make --version` and `git --version`, +it should return a version for each command. + +At this point you need to disable the config `core.autocrlf` before +cloning the Pontoon repository, otherwise all files will use Windows +line-endings (CRLF), and docker images will fail to build. To do so, +open a Powershell as Admin (right click on the Start Menu, select +*Windows Powershell (Admin)*), and run: + + git config --system --unset core.autocrlf + git config --global core.autocrlf false + +You can use `git config -l` to verify that the value for `core.autocrlf` +is correctly set. + +At this point, you can open the *Cygwin64 Terminal* and proceed with the +installation (the content of `C:` will be available in `/cygdrive/c`). +Once the Docker image is running, Pontoon\'s instance will be available +at [http://localhost:8000]{.title-ref}. diff --git a/documentation/docs/index.md b/documentation/docs/index.md new file mode 100644 index 0000000000..fe3c9f3d47 --- /dev/null +++ b/documentation/docs/index.md @@ -0,0 +1,61 @@ +# Pontoon Documentation + +**Pontoon** is Mozilla's translation management system (TMS) — a web-based platform that enables the Mozilla localization community to translate, review, and manage strings for Mozilla's products and websites. + +Pontoon specializes in community-driven open source localization, pulling strings directly from version control repositories (Git and Mercurial) and writing translations back automatically. It supports a wide range of localization file formats including Fluent, Gettext PO, XLIFF, .properties, DTD, and more. + +--- + +## Who is this documentation for? + +
+ +- :material-translate: **Localizers** + + --- + + You're a contributor who translates and reviews strings in Pontoon. + + [:octicons-arrow-right-24: Localizer Guide](localizer/index.md) + +- :material-cog: **Admins & Project Managers** + + --- + + You manage Pontoon's projects, locales, users, and configuration. + + [:octicons-arrow-right-24: Admin Guide](admin/index.md) + +- :material-code-braces: **Developers** + + --- + + You contribute to Pontoon's codebase or deploy your own instance. + + [:octicons-arrow-right-24: Developer Guide](dev/index.md) + +
+ +--- + +## Quick links + +| I want to… | Go to | +|---|---| +| Start translating a project | [How to Translate](localizer/translate.md) | +| Learn the translation workspace UI | [Translation Workspace](localizer/translation-workspace.md) | +| Understand user roles | [User Accounts & Settings](localizer/users.md) | +| Add a new project | [Adding a New Project](admin/adding-new-project.md) | +| Add a new locale | [Adding a New Locale](admin/adding-new-locale.md) | +| Set up Pontoon locally for development | [Developer Setup](dev/setup.md) | +| Deploy Pontoon to production | [Deployment](dev/deployment.md) | +| Make my first code contribution | [Your First Contribution](dev/first-contribution.md) | + +--- + +## About Pontoon + +Pontoon is developed and maintained by Mozilla and is available as open source software at [github.com/mozilla/pontoon](https://github.com/mozilla/pontoon). The Mozilla instance is hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org). + +!!! note "Scope of this documentation" + While most of this documentation applies to any Pontoon deployment, the Mozilla instance is used as the primary example. Some sections — particularly in the Admin Guide — are specific to Mozilla's deployment. diff --git a/documentation/docs/localizer/glossary.md b/documentation/docs/localizer/glossary.md new file mode 100644 index 0000000000..43215350a6 --- /dev/null +++ b/documentation/docs/localizer/glossary.md @@ -0,0 +1,60 @@ +# Glossary + +Key terms used throughout Pontoon and this documentation. + +## Contributor +A user without translator permissions. Contributors can only submit **suggestions**, which must be reviewed and approved by a Translator or Team Manager before appearing in the product. + +## Concordance search +A search feature in the Machinery tab that searches across **all projects** in Pontoon using either the source or target language. Results show the source string, translation, and project name; clicking a result fills the translation into the editor. + +## Fuzzy +An internal state available only in Gettext (`.po`) files. A string may be marked fuzzy when: + +- The source string changed after it was already translated. +- A translator manually marked it for review. +- New strings were merged into the localized files using the option to match existing translations. + +Fuzzy strings are equivalent to "needs review" and are not used by the website or application. + +## Locale +The combination of a language and a region, represented in Pontoon by a locale code. For example, American English is `en-US`, where `en` is the language and `US` is the region. In some cases, the region is omitted. Each locale in Pontoon maps to a **Team**. + +## Pretranslation +An automated feature that uses **translation memory** (100% matches first) and **Google AutoML Translation** (a custom trained model) to automatically translate new strings. Pretranslated strings have the *Pretranslated* status and must be reviewed before they are considered final. For VCS projects, pretranslations are saved directly to localized files. + +## Resource +A localization file within a repository used to store source content and translations. Resources generally follow a key-value structure where the key (displayed as *Context* in Pontoon) is a unique identifier and the value is the text to translate. Supported formats include Fluent, Gettext PO, XLIFF, `.properties`, DTD, and others. + +## Suggestion +A translation submitted by a Contributor, or by a Translator/Manager who has enabled *Make suggestions*. A suggestion exists only in the Pontoon database — it is not committed to the VCS or added to the translation memory until approved. + +## Sync +The process by which Pontoon periodically (typically every 10 minutes) pulls source strings and translations from VCS repositories and writes approved translations back. Sync keeps the Pontoon database and the repository in sync. + +## TBX (TermBase eXchange) +A standard XML file format for exchanging **terminology** (glossary) data between translation tools. + +## Terminology / Glossary +A curated list of terms and their definitions. Pontoon highlights recognized terms in source strings and shows their definitions and existing translations into the target language. + +## TMX (Translation Memory eXchange) +A standard XML file format for exchanging **translation memory** data between translation tools. Pontoon's translation memory can be downloaded as a TMX file from any Team page. + +## Translation memory (TM) +A database of all approved translations for any string in Pontoon. It is used as a suggestion source in the Machinery tab and powers the pretranslation feature. Translation memory can be downloaded as a TMX file. + +## Translation Mode +The editing mode available to Translators and Team Managers in which a green **SAVE** button is displayed. Saving a translation approves it directly, commits it to VCS (where applicable), and rejects all pending suggestions. + +## Suggestion Mode +The editing mode (default for Contributors; optionally enabled by Translators/Managers) in which a blue **SUGGEST** button is displayed. Submissions are stored as unreviewed suggestions. + +## Translator +A user with permission to submit approved translations directly and to review suggestions. See [User Accounts & Settings](users.md#roles-and-permissions). + +## Team Manager +A user who has Translator permissions and can also manage permissions for other users within their locale. See [User Accounts & Settings](users.md#roles-and-permissions). + +## VCS (Version Control System) +The external system where source strings and translations are stored — typically a Git or Mercurial repository. Pontoon reads from and writes to VCS repositories as part of the Sync process. diff --git a/documentation/docs/localizer/index.md b/documentation/docs/localizer/index.md new file mode 100644 index 0000000000..10c239c23b --- /dev/null +++ b/documentation/docs/localizer/index.md @@ -0,0 +1,53 @@ +# Localizer Guide + +This guide covers everything you need to know to translate and review strings in Pontoon, from day-to-day translation work to managing your account and notifications. + +!!! note + The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](users.md). + +## Sections + +
+ +- :material-pencil: **[How to Translate](translate.md)** + + Step-by-step guide to submitting translations and suggestions, reviewing other contributors' work, and an example team workflow. + +- :material-view-dashboard: **[Translation Workspace](translation-workspace.md)** + + A detailed tour of the translation editor: the sidebar, string filters, machinery tab, AI refinement, comments, and keyboard shortcuts. + +- :material-folder-multiple: **[Team & Project Pages](teams-projects.md)** + + How to navigate team dashboards, project pages, and localization pages; how to request new projects or locales. + +- :material-account-cog: **[User Accounts & Settings](users.md)** + + Account setup, roles and permissions, profile visibility settings, and personal preferences. + +- :material-bell: **[Notifications](notifications.md)** + + How Pontoon notifies you of new strings, reviews, mentions, and project updates. + +- :material-account: **[Profile Page](profile.md)** + + What's on your public profile and how to customize it. + +- :material-book-open-variant: **[Glossary](glossary.md)** + + Definitions of key terms used throughout Pontoon and this documentation. + +
+ +## User roles + +Pontoon has four user roles, each with different capabilities: + +| Role | Can submit translations | Can review | Can manage users | +|---|---|---|---| +| **Contributor** | Suggestions only | ✗ | ✗ | +| **Translator** | ✓ (directly or via suggestion) | ✓ | ✗ | +| **Team Manager** | ✓ | ✓ | ✓ (within their locale) | +| **Administrator** | ✓ | ✓ | ✓ (all locales) | + +New users automatically start as Contributors and can be promoted by Team Managers or Administrators. diff --git a/documentation/docs/localizer/notifications.md b/documentation/docs/localizer/notifications.md new file mode 100644 index 0000000000..70a0596372 --- /dev/null +++ b/documentation/docs/localizer/notifications.md @@ -0,0 +1,26 @@ +# Notifications + +Pontoon notifies you of relevant activity through in-app notifications and optional email digests. + +## Types of notifications + +- **New unreviewed suggestions** — sent when new suggestions are submitted, unapproved, or unrejected in the last 7 days. +- **Review decisions** — when one of your suggestions is approved or rejected. +- **Mentions** — when someone mentions you in a comment using REQUEST CONTEXT or REPORT ISSUE. +- **Deadline reminders** — sent 7 days and 2 days before a project deadline for your active locale. +- **Pinned comments** — when an Administrator pins a source string comment. +- **Messaging Center** — messages sent by Administrators (in-app or email; see [Messaging Center](../admin/messaging-center.md)). + +## Notification digests + +Pontoon sends a **weekly notification digest** summarizing recent activity. You can configure the day of the week for delivery in your account settings. + +!!! note + Notifications sent via the Messaging Center are **not** included in notification email digests. + +## Pontoon Notifications browser add-on + +The Pontoon Notifications add-on, created by Mozilla localizer Michal Stanke, brings Pontoon notifications directly into your browser toolbar. It also includes features for proofreading and bug reporting. + +- [Chrome add-on](https://chrome.google.com/webstore/detail/pontoon-add-on/gnbfbnpjncpghhjmmhklfhcglbopagbb) +- Firefox add-on available on addons.mozilla.org diff --git a/documentation/docs/localizer/profile.md b/documentation/docs/localizer/profile.md new file mode 100644 index 0000000000..0a5165b34d --- /dev/null +++ b/documentation/docs/localizer/profile.md @@ -0,0 +1,21 @@ +# Profile Page + +Your Pontoon profile page is your public (or semi-public) contributor page. It shows your contribution history and account information. + +## What's on your profile + +- **Display name and avatar** (from your Mozilla account / Firefox Accounts). +- **User banner** — a badge displayed next to your name across Pontoon, reflecting your role or contribution milestones. +- **Contribution statistics** — total translations submitted, approval rate, and self-approval rate. +- **External accounts** — links to other accounts (e.g., GitHub) if you've added them and made them visible. +- **Recent contribution activity** — a timeline of recent translation and review activity. + +## Privacy + +You control who can see your profile information. See [User Accounts & Settings](users.md#profile-visibility) for visibility options for each field. + +## Accessing your profile + +Click your avatar or username in the top-right corner of any Pontoon page, then select **Profile**. + +To view another contributor's profile, click their name or avatar in the Contributors tab of any Team or Project page. diff --git a/documentation/docs/localizer/teams-projects.md b/documentation/docs/localizer/teams-projects.md new file mode 100644 index 0000000000..e20cdae539 --- /dev/null +++ b/documentation/docs/localizer/teams-projects.md @@ -0,0 +1,95 @@ +# Team & Project Pages + +Pontoon organizes work around **Teams** (one per locale) and **Projects** (one per product or website). This page explains how to navigate these pages and what you can do from each. + +## Projects page + +The Projects page lists all projects available in Pontoon. Access it by clicking **Projects** in the page header or navigating to `/projects`. + +Each project entry shows: + +- **Priority** (1–5 stars), based on product importance, user base size, and update frequency. +- **Target date** (for projects with a deadline). +- **Repository** link. +- **External resources** (e.g., testing instructions, screenshots). + +A blue lightbulb icon in the rightmost column indicates the project has unreviewed translations. Click the lightbulb icon in the column header to sort by unreviewed count. + +## Project page + +Clicking a project opens its Project page. The header shows the project manager, overall completion status, and statistics across all enabled locales. + +Tabs available on the Project page: + +| Tab | Description | +|---|---| +| **Teams** | All locales enabled for this project. Clicking a locale opens the Localization page. | +| **Tags** | Logical groups of resources (visible only if tags are enabled). | +| **Contributors** | Active contributors and their statistics, filterable by time period. | +| **Insights** | Charts showing translation completion trends, human vs. machinery translations, active users, and time-to-review metrics. | +| **Info** | Project description and context. | + +### Requesting a new language for a project + +From the Project page, click **REQUEST NEW LANGUAGE**, select the locale, and click **REQUEST NEW LANGUAGE** again. An email is sent to Pontoon administrators; the Project Manager acts on the request. + +!!! note + Some projects have a closed list of supported locales and cannot be requested. + +## Team page + +Each locale has a Team page (e.g., `pontoon.mozilla.org/fr/`). The header shows the team's overall completion and statistics. + +Tabs available on the Team page: + +| Tab | Description | +|---|---| +| **Projects** | All projects enabled for this locale. | +| **Contributors** | Active contributors and their statistics, filterable by time period. | +| **Insights** | Trends for translation activity, active users, and review time. | +| **Bugs** | Open Bugzilla bugs for the locale (Mozilla deployment only). | +| **Info** | Team description; editable by Team Managers. | +| **Permissions** | User permissions panel (Team Managers and Admins only). | +| **TM** | Translation memory management (Translators and Team Managers). | + +### Team Insights + +The **Insights** tab on the Team page shows: + +- **Translation activity** — completion percentage trend, with human vs. machinery translation bars per month. +- **New source strings** — toggle to show/hide. +- **Active users** — ratio of active vs. total users per role (managers, reviewers, contributors), filterable by time period. +- **Time to review suggestions** — average age of reviewed suggestions per month, with a 12-month rolling average. + +### Requesting more projects for a locale + +From the Team page, click **REQUEST MORE PROJECTS**, select the projects, and click **REQUEST NEW PROJECT**. This requests that an existing Pontoon project be enabled for your locale — it cannot be used to request a brand new project. + +### Requesting pretranslation + +From the Team page, click **REQUEST PRETRANSLATION**, select the projects, and click **REQUEST PRETRANSLATION**. Administrators will evaluate the request. + +### Translation memory management + +Team Managers and Translators can manage the team's TM from the **TM** tab: + +- View all TM entries (source string + translation), searchable by source string or translation. +- Click a TM entry to open the corresponding string in the translation workspace. +- **Edit** a TM entry by clicking the Edit button in the Actions column, modifying the text, and clicking Save. +- **Upload** a TMX file using the upload control. Import progress is shown, and a success or error message appears when complete. + +## Localization page + +The Localization page shows project-specific information for a single locale. Access it by: + +- Selecting a locale from a Project page. +- Selecting a project from a Team page. + +Tabs on the Localization page: + +| Tab | Description | +|---|---| +| **Resources** | Files available in this project for the locale. | +| **Tags** | Tag groups (if enabled for the project). | +| **Contributors** | Contributors to this locale+project combination, filterable by time. | +| **Insights** | Localization-specific trends. | diff --git a/documentation/docs/localizer/translate.md b/documentation/docs/localizer/translate.md new file mode 100644 index 0000000000..7899106f34 --- /dev/null +++ b/documentation/docs/localizer/translate.md @@ -0,0 +1,99 @@ +# How to Translate + +This page describes how to translate and review strings in Pontoon, and provides an example of a typical team workflow. + +## The editor + +When you select a string in the sidebar, the translation editor appears in the center of the page. If the string already has a translation, the editor is pre-populated with the existing text for you to modify. + +### Suggestion Mode vs Translation Mode + +Your editing mode depends on your [permissions](users.md#roles-and-permissions): + +**Suggestion Mode** — a blue **SUGGEST** button is shown. Used when: + +- You are a Contributor (default for new users). +- You are a Translator or Team Manager who has manually enabled *Make suggestions* in settings. + +Suggestions are stored only in the Pontoon database. They are not committed to the version control system (VCS) and do not appear in the translation memory until approved. + +**Translation Mode** — a green **SAVE** button is shown. Available to Translators and Team Managers. When you save a translation: + +- It is displayed below the editing space and in the sidebar. +- It is stored in the VCS (where applicable). +- All pending suggestions or pretranslations for that string are rejected. + +!!! tip + Even if you have permission to save translations directly, submitting suggestions for peer review is good practice and improves overall quality. + +To manually switch to Suggestion Mode, click the **gear icon** in the lower-left of the editor and select **Make suggestions**. + +## Submitting a translation + +1. Select a string from the sidebar. +2. Type your translation in the editor. +3. Click **SUGGEST** (Suggestion Mode) or **SAVE** (Translation Mode). + +## Quality checks + +Pontoon automatically checks every translation or suggestion you submit for potential issues. There are two severity levels: + +**Errors** — critical issues that would break the product (e.g., incorrect syntax, exceeding maximum string length). The submit button is hidden until the error is fixed. + +**Warnings** — potential issues that may or may not cause problems. You can bypass warnings and submit anyway, but review them carefully first. + +Failures are stored in the database and can be filtered from the search bar. + +## Reviewing suggestions + +If you have Translator permissions, you can review other contributors' suggestions: + +- **Approve** a suggestion by clicking the green checkmark. The suggestion becomes a saved translation. +- **Reject** a suggestion by clicking the red X. +- After rejecting, you can **delete** it entirely using the trashcan icon. +- Alternatively, enable *Make suggestions*, edit the translation as appropriate, and click **SUGGEST** to add a corrected version. + +For pretranslations, rejecting also removes the text from the VCS (where applicable). + +## Downloading and uploading translations + +Click the **profile icon** in the top-right corner of any page to access download and upload options. These are only visible when you are in the translation workspace. + +- **Anyone** can download terminology (`.tbx`), translation memory (`.tmx`), and translations. +- **Translators** can also upload translations. + +When downloading: + +- The currently selected resource is downloaded in its original format. +- If the project has multiple files, a ZIP of all files is downloaded. +- If a project has more than 10 files, only the currently translated file is downloaded. + +When uploading, translations that differ from Pontoon's current state are imported and attributed to you. + +## Requesting context or reporting issues + +If a source string is unclear, use the **REQUEST CONTEXT** or **REPORT ISSUE** feature to ask the Project Manager. This tags them in a comment on the string. + +## Workflow example + +The following describes a typical AB workflow (two-translator model), but can be adapted for a single-translator AA workflow or a multi-translator ABCn workflow. + +### Phase 1 — Submit suggestions (Contributor / Translator in Suggestion Mode) + +1. Log in to Pontoon. +2. Browse to the project. +3. Use filters to select **Missing** strings (missing translation, fuzzy, or containing errors). +4. Click the gear icon below the editor → enable **Make suggestions**. +5. For each string, type a translation and click **SUGGEST**. +6. If a string is unclear, use **REQUEST CONTEXT** or **REPORT ISSUE** to ask the Project Manager. +7. Use [Pontoon's translation tools](translation-workspace.md#machinery-tab) to ensure consistency and speed. + +### Phase 2 — Review suggestions (Translator / Team Manager) + +1. Log in to Pontoon. +2. Browse to the project. +3. Use filters to select **Unreviewed** strings. +4. For each suggestion: + - If the translation is correct → click the green checkmark to **approve**. + - If the translation needs changes → edit in the editor and click **SAVE**, or add a new suggestion. + - If the translation is unacceptable → reject and optionally delete it. diff --git a/documentation/docs/localizer/translation-workspace.md b/documentation/docs/localizer/translation-workspace.md new file mode 100644 index 0000000000..dd5e1965e5 --- /dev/null +++ b/documentation/docs/localizer/translation-workspace.md @@ -0,0 +1,119 @@ +# Translation Workspace + +The translation workspace is the main interface for translating strings in Pontoon. It is divided into three main areas: the **sidebar** (left), the **editor** (center), and the **tools panel** (right). + +## Sidebar + +The sidebar lists all strings in the currently selected resource, along with their status. + +### String statuses + +| Status | Description | +|---|---| +| **Translated** | Has an approved translation; saved to the localized file in VCS. | +| **Pretranslated** | Automatically translated but not yet reviewed; saved to VCS. | +| **Warnings** | Has a translation, but with non-critical quality check issues. | +| **Errors** | Has critical quality check issues. | +| **Missing** | No approved translation exists. | +| **Unreviewed** | Has suggested translations awaiting review; not in VCS. | + +### Search + +Use the search field to search within the currently selected project. Searches cover string text and string IDs, and they respect any active filters. + +- By default, Pontoon matches strings containing **any** of the search terms. +- For an **exact match**, wrap terms in double quotes: `"new tab"`. +- To search for strings containing literal double quotes, escape them: `\"`. + +**Additional search options** (click the magnifying glass icon): + +- **Match case** — exact capitalization matching. +- **Match whole word** — avoids partial matches. + +### Filters + +Click the filter icon to filter strings by status. Filters can be combined with search. + +### Context button + +When a string is selected, a small icon with four arrows appears near the checkbox. Clicking it shows strings that surround the selected string in the resource, providing translation context. + +## Editor + +See [How to Translate](translate.md) for full details on the editor, suggestion mode, and translation mode. + +### Read-only mode + +Some locales may have read-only access to a project. Their translations are still visible in the LOCALES tab for other teams to reference, but it is not possible to submit or modify translations directly. + +## Translation tools (right panel) + +### Machinery tab + +The Machinery tab shows possible translations from multiple sources: + +- Pontoon's internal **translation memory** (all approved translations across all projects). +- **Google Translate**. +- **Microsoft Translator / Bing Translator** (availability varies by deployment). +- **Concordance search** — search across all projects in Pontoon by source or target language text. + +!!! warning + Use machinery suggestions with care. Even when source strings match, the context in different projects may be different, leading to incorrect or unnatural translations. Always prioritize the meaning and purpose of the string. + +The number of entries is shown next to the **MACHINERY** heading. Translation memory matches appear separately in green. + +### AI refinement + +For locales with Google Translate enabled, an **AI** dropdown appears above the machinery suggestions. It refines the Google Translate output using a large language model and provides three options: + +- **REPHRASE** — generates an alternative translation. +- **MAKE FORMAL** — generates a more formal version. +- **MAKE INFORMAL** — generates a simpler, more informal version. + +After selecting an option, the revised translation replaces the original in the editor. A **SHOW ORIGINAL** option then becomes available to revert to the original suggestion. + +### LOCALES tab + +Shows translations of the current string in other locales enabled for the project. Useful for cross-language context, especially for locales with read-only access. + +### COMMENTS tab + +The Comments tab has two types of comments: + +**Source string comments** — associated with the source string itself. These are displayed in the COMMENTS tab in the right column and are designed for team discussion about the string's meaning or context. Administrators can **pin** a comment to make it visible alongside the editing area as a **PINNED COMMENT**, and users will receive a notification. + +**Translation comments** — associated with a specific translation, displayed under the editor in the translation list. + +!!! note + These are different from **Resource comments**, which are added by developers directly in the resource file and are displayed in the editing area alongside the resource path and context. + +### Tags + +Tags can be used in a project to logically group resources and assign them a priority. If tags are enabled for a project, a Tags tab appears in Team and Project pages. Resources can be filtered by tag in the sidebar. + +## Translation history + +Below the editor, a list of all past translations for the current string is shown, including: + +- The translator's name, profile picture, and banner. +- How long ago the entry was submitted (hover for the exact date/time). +- The translation text. +- Status icons (approved, pretranslated, unreviewed, rejected). +- Translation comments. + +## Keyboard shortcuts + +| Action | Shortcut | +|---|---| +| Copy source string to editor | `Ctrl`+`Shift`+`C` | +| Submit translation / suggestion | `Ctrl`+`Enter` | +| Navigate to previous string | `Alt`+`↑` | +| Navigate to next string | `Alt`+`↓` | +| Navigate to previous unreviewed | `Alt`+`Shift`+`↑` | +| Navigate to next unreviewed | `Alt`+`Shift`+`↓` | +| Approve translation | `Alt`+`Enter` | +| Select all strings in sidebar | `Ctrl`+`Shift`+`A` | +| Open machinery tab | `Ctrl`+`Shift`+`M` | +| Open history tab | `Ctrl`+`Shift`+`H` | +| Open comments tab | `Ctrl`+`Shift`+`X` | +| Toggle find & replace | `Ctrl`+`H` | diff --git a/documentation/docs/localizer/users.md b/documentation/docs/localizer/users.md new file mode 100644 index 0000000000..e9d0036e8f --- /dev/null +++ b/documentation/docs/localizer/users.md @@ -0,0 +1,72 @@ +# User Accounts & Settings + +## Roles and permissions + +Users in Pontoon are assigned one of four roles, each with different capabilities: + +Contributor +: The default role for new users. Can submit translation **suggestions** only; suggestions must be reviewed and approved by a Translator or Team Manager before they appear in the product. + +Translator +: Can submit **approved translations** directly and **review** suggestions from other users. Can also manually switch to Suggestion Mode if preferred. Translators need access to contributor contact details for review, so their email addresses are visible to translators by default. + +Team Manager +: Has all Translator capabilities, plus can **manage permissions** for other users within their locale. Responsible for maintaining team quality and unreviewed suggestion queues. + +Administrator +: Can manage all aspects of Pontoon — adding/removing projects, acting as a Team Manager for all locales, and accessing the admin console. + +Additionally, **Project Managers** are not a permission level but a point of contact designation for a specific project. Their names appear in project headers, and they are tagged when contributors use REQUEST CONTEXT or REPORT ISSUE. + +## Managing permissions (Team Managers) + +To manage user permissions, open the **Team page** → **Permissions** tab (visible only to Team Managers and Administrators). + +The permissions panel has a **General** section by default. Permissions defined here apply to all projects for the locale, but can be overridden by project-specific custom permissions. + +To move a user between permission levels, hover their email address — arrows will appear to move them left or right between columns. Click **SAVE** before leaving the window. + +!!! note + A user must log in to Pontoon at least once before their permissions can be changed. + +By default, the TEAM CONTRIBUTORS column shows only users who have already submitted suggestions for the locale. Click **ALL USERS** to display all Pontoon users, then use the search field to narrow down. + +### Custom permissions per project + +Click **ADD CUSTOM PERMISSIONS PER PROJECT** to set permissions for a specific project. This is useful if a project is maintained by a dedicated person or a restricted group. Custom project permissions override the General section for that project. + +!!! warning + If a user needs to translate **all** projects, they must be listed in every custom permissions section **and** in the General section. + +## Account settings + +Access account settings via the profile icon in the top-right corner. + +### Personal preferences + +| Setting | Description | +|---|---| +| **Make suggestions** | Switches a Translator or Team Manager to Suggestion Mode by default. | +| **Default homepage** | Choose between Pontoon's homepage or a specific Team page as your landing page after login. | +| **Preferred source locales** | Display a different source locale when translating (Mozilla projects use `en-US` as the default). | +| **Preferred locales** | Pin specific locales to appear first in the LOCALES tab when reviewing translations. | + +### Profile visibility + +Control who can see specific profile fields: + +| Field | Default visibility | Can be changed to | +|---|---|---| +| Email address | Translators only | All logged-in users (never public, to prevent spam) | +| External accounts | Translators only | Public | +| Approval rate / Self-approval rate | Public | Translators only | + +!!! note + Team and Project Managers always have their email address visible to logged-in users, regardless of visibility settings. + +### Email notifications + +Control which Pontoon emails you receive, including notification digests and news updates. + +!!! note + Opting out of *News and updates* prevents you from receiving Messaging Center emails unless the message is marked as **Transactional** by the sender. diff --git a/documentation/docs/stylesheets/extra.css b/documentation/docs/stylesheets/extra.css new file mode 100644 index 0000000000..4eef0c0afb --- /dev/null +++ b/documentation/docs/stylesheets/extra.css @@ -0,0 +1,48 @@ +/* Pontoon brand colors */ +:root { + --md-primary-fg-color: #333941; + --md-primary-fg-color--light: #FF7E88; + --md-primary-fg-color--dark: #CC2233; + --md-accent-fg-color: #7bc876; + --md-accent-fg-color--transparent: #0060DF1a; +} + +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #7bc876; + --md-accent-fg-color: #7bc876; + --md-default-bg-color: #272a2f; +} + +/* Navigation tabs */ +.md-tabs { + background-color: var(--md-primary-fg-color); +} + +/* Admonition tweaks */ +.md-typeset .admonition, +.md-typeset details { + border-radius: 4px; +} + +/* Code block copy button */ +.md-clipboard { + color: var(--md-accent-fg-color); +} + +/* Role badges in localizer docs */ +.role-badge { + display: inline-block; + padding: 2px 8px; + border-radius: 12px; + font-size: 0.75em; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; +} +.role-contributor { background: #e3f2fd; color: #1565c0; } +.role-translator { background: #e8f5e9; color: #2e7d32; } +.role-manager { background: #fff3e0; color: #e65100; } +.role-admin { background: #fce4ec; color: #c62828; } + +/* Hide "Made with Material" footer */ +.md-footer-meta { display: none; } diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml new file mode 100644 index 0000000000..012e1c5312 --- /dev/null +++ b/documentation/mkdocs.yml @@ -0,0 +1,106 @@ +site_name: Pontoon Documentation +site_url: https://pontoon.mozilla.org/docs/ +site_description: >- + Pontoon is Mozilla's translation management system. This documentation covers + everything from translating strings to deploying your own instance. +repo_url: https://github.com/mozilla/pontoon +repo_name: mozilla/pontoon +edit_uri: edit/main/documentation/docs/ + +theme: + name: material + logo: assets/pontoon-logo.svg + favicon: assets/pontoon-logo.svg + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + primary: custom + accent: custom + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: custom + accent: custom + toggle: + icon: material/brightness-4 + name: Switch to light mode + features: + - navigation.tabs + - navigation.tabs.sticky + - navigation.sections + - navigation.expand + - navigation.path + - navigation.top + - search.highlight + - search.suggest + - content.code.copy + - content.action.edit + - toc.follow + +extra_css: + - stylesheets/extra.css + +plugins: + - search + - glightbox + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.superfences + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.tabbed: + alternate_style: true + - attr_list + - md_in_html + - toc: + permalink: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + +nav: + - Home: index.md + - Localizer Guide: + - Overview: localizer/index.md + - How to Translate: localizer/translate.md + - Translation Workspace: localizer/translation-workspace.md + - Team & Project Pages: localizer/teams-projects.md + - User Accounts & Settings: localizer/users.md + - Notifications: localizer/notifications.md + - Profile Page: localizer/profile.md + - Glossary: localizer/glossary.md + - Admin Guide: + - Overview: admin/index.md + - Adding a New Project: admin/adding-new-project.md + - Adding a Short-Term Project: admin/adding-short-term-project.md + - Adding a New Locale: admin/adding-new-locale.md + - Managing Pretranslation: admin/managing-pretranslation.md + - Messaging Center: admin/messaging-center.md + - Renaming a Localization File: admin/renaming-file.md + - Renaming a Project: admin/renaming-project.md + - Managing Users: admin/managing-users.md + - Adding Terminology: admin/adding-terminology.md + - Developer Guide: + - Overview: dev/index.md + - Your First Contribution: dev/first-contribution.md + - Developer Setup: dev/setup.md + - Contributing Guidelines: dev/contributing.md + - Feature Development Process: dev/feature-development-process.md + - Deployment: dev/deployment.md + - Maintenance: dev/maintenance.md + - Localizing Your Projects: dev/localizing-your-projects.md + - Developer Setup (Virtualenv): dev/setup-virtualenv.md + +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/mozilla/pontoon + - icon: fontawesome/brands/firefox-browser + link: https://pontoon.mozilla.org + generator: false From 08702399ce8032d792b0500db08a7b71d77adac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Wed, 11 Mar 2026 20:45:13 +0100 Subject: [PATCH 02/35] Django config changes --- pontoon/settings/base.py | 20 ++++++++++++++++++-- pontoon/urls.py | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/pontoon/settings/base.py b/pontoon/settings/base.py index a29d588bb3..7eb97c8836 100644 --- a/pontoon/settings/base.py +++ b/pontoon/settings/base.py @@ -823,6 +823,7 @@ def _default_from_email(): STATICFILES_DIRS = [ os.path.join(TRANSLATE_DIR, "dist"), os.path.join(TRANSLATE_DIR, "public"), + ("docs", os.path.join(ROOT, "documentation", "site")), ] allowed_hosts = os.environ.get("ALLOWED_HOSTS") @@ -941,7 +942,10 @@ def _default_from_email(): ) # Content-Security-Policy headers -CSP_DEFAULT_SRC = ("'none'",) +CSP_DEFAULT_SRC = ( + # Needed for Docs + "'self'", +) CSP_FRAME_SRC = ("https:",) CSP_WORKER_SRC = ( "https:", @@ -953,7 +957,11 @@ def _default_from_email(): "https://bugzilla.mozilla.org/rest/bug", "https://region1.google-analytics.com/g/collect", ) -CSP_FONT_SRC = ("'self'",) +CSP_FONT_SRC = ( + "'self'", + # Needed for Docs + "https://fonts.gstatic.com", +) CSP_IMG_SRC = ( "'self'", "https:", @@ -970,10 +978,18 @@ def _default_from_email(): # Needed for Google Analytics "'sha256-MAn2iEyXLmB7sfv/20ImVRdQs8NCZ0A5SShdZsZdv20='", "https://www.googletagmanager.com/gtag/js", + # Needed for Docs + "'sha256-apoQPHefCNWjxbCm+HzVDOAW4CSVWhY7VylQjgOFyfk='", + "'sha256-DrEMJJ29sL7vIloQzly+VUGMxKcBTMII+OfW7Y8AkG4='", + "'sha256-/8wPdzX9q0NNJXyA5lzsLojXFpkeaXVxhbfkUOQaWy8='", + "'sha256-/K9p2JtEqCycL2fSbEonMakkteWpAHv57x2wndLqMNo='", + "'sha256-/nhm8p50KJxvwWLggwJ1OF8Xgq5W/b3iKECITLASfOg='", ) CSP_STYLE_SRC = ( "'self'", "'unsafe-inline'", + # Needed for Docs + "https://fonts.googleapis.com", ) # Needed if site not hosted on HTTPS domains (like local setup) diff --git a/pontoon/urls.py b/pontoon/urls.py index efa89cd99b..9e216be952 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -1,8 +1,13 @@ +import os + +from django.conf import settings from django.contrib import admin from django.contrib.auth import logout -from django.urls import include, path, register_converter +from django.http import HttpResponseRedirect +from django.urls import include, path, re_path, register_converter from django.urls.converters import StringConverter from django.views.generic import RedirectView, TemplateView +from django.views.static import serve from pontoon.teams.views import team @@ -11,6 +16,10 @@ class LocaleConverter(StringConverter): regex = r"[A-Za-z0-9\-\@\.]+" +def docs_dir_index(request, path=""): + return HttpResponseRedirect(f"/docs/{path}index.html") + + register_converter(LocaleConverter, "locale") permission_denied_view = TemplateView.as_view(template_name="403.html") @@ -51,6 +60,14 @@ class LocaleConverter(StringConverter): "favicon.ico", RedirectView.as_view(url="/static/img/favicon.ico", permanent=True), ), + # Docs + path("docs/", docs_dir_index), + re_path(r"^docs/(?P.+/)$", docs_dir_index), + path( + "docs/", + serve, + {"document_root": os.path.join(settings.STATIC_ROOT, "docs")}, + ), # Legacy path("in-context/", RedirectView.as_view(url="/", permanent=True)), # Include URL configurations from installed apps From 1d060fdaa5a9d06ecd052a0051442e630249b86b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 12 Mar 2026 12:39:01 +0100 Subject: [PATCH 03/35] Install mkdocs requirements and build docs --- .github/workflows/backend.yml | 1 + bin/post_compile | 3 + docker/Dockerfile | 3 + docker/Dockerfile-mozcloud | 3 + requirements/default.in | 3 + requirements/default.txt | 1914 +++++++++++++++++++-------------- requirements/dev.txt | 18 +- requirements/test.txt | 251 +++-- 8 files changed, 1295 insertions(+), 901 deletions(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 36271ad82a..b50c0bc245 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -79,6 +79,7 @@ jobs: - run: npm install working-directory: pontoon - run: mkdir -p translate/dist translate/public + - run: mkdocs build -f documentation/mkdocs.yml - run: python manage.py collectstatic # Check if there are missing migrations diff --git a/bin/post_compile b/bin/post_compile index 39928e070d..3f70f0b0a4 100644 --- a/bin/post_compile +++ b/bin/post_compile @@ -22,6 +22,9 @@ else python manage.py migrate --noinput fi +echo "Building documentation..." +mkdocs build -f documentation/mkdocs.yml + echo "Collecting static files..." ./manage.py collectstatic --noinput diff --git a/docker/Dockerfile b/docker/Dockerfile index 9e5fcc509c..92afb721a9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -51,6 +51,9 @@ RUN npm install COPY --chown=pontoon:pontoon ./docker/config/server.env .env COPY --chown=pontoon:pontoon . /app/ +# Build documentation with MkDocs (generates static files in documentation/site) +RUN mkdocs build -f documentation/mkdocs.yml + RUN python manage.py collectstatic STOPSIGNAL SIGINT diff --git a/docker/Dockerfile-mozcloud b/docker/Dockerfile-mozcloud index 747440c18e..bfcc68d59c 100644 --- a/docker/Dockerfile-mozcloud +++ b/docker/Dockerfile-mozcloud @@ -92,6 +92,9 @@ COPY --from=node-builder /app/translate/public /app/translate/public # Copy application code COPY . /app/ +# Build documentation with MkDocs (generates static files in documentation/site) +RUN mkdocs build -f documentation/mkdocs.yml + # Set up environment variables for collectstatic ENV YUGLIFY_BINARY=/app/node_modules/.bin/yuglify ENV TERSER_BINARY=/app/node_modules/.bin/terser diff --git a/requirements/default.in b/requirements/default.in index f2496a2aca..adee2d34b3 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -38,6 +38,9 @@ gunicorn==23.0.0 jsonfield==3.1.0 markupsafe==2.0.1 moz.l10n[xml]==0.11.2 +mkdocs==1.6.1 +mkdocs-material==9.7.5 +mkdocs-glightbox==0.5.2 newrelic==9.6.0 openai==1.99.9 psycopg2==2.9.6 diff --git a/requirements/default.txt b/requirements/default.txt index b6834ab465..f9aaf5d705 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -1,55 +1,64 @@ # This file was autogenerated by uv via the following command: # uv pip compile --generate-hashes --no-strip-extras default.in -o default.txt -amqp==5.2.0 \ - --hash=sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637 \ - --hash=sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd +amqp==5.3.1 \ + --hash=sha256:43b3319e1b4e7d1251833a93d672b4af1e40f3d632d479b98661a95f117880a2 \ + --hash=sha256:cddc00c725449522023bad949f70fff7b48f0b1ade74d170a6f10ab044739432 # via kombu annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.6.0 \ - --hash=sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb \ - --hash=sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a +anyio==4.13.0 \ + --hash=sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708 \ + --hash=sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc # via # httpx # openai -asgiref==3.8.1 \ - --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ - --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 +asgiref==3.11.1 \ + --hash=sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce \ + --hash=sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133 # via # django # django-allauth # django-cors-headers -attrs==25.3.0 \ - --hash=sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3 \ - --hash=sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b +attrs==26.1.0 \ + --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ + --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 # via # jsonschema # referencing +babel==2.18.0 \ + --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ + --hash=sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35 + # via mkdocs-material +backrefs==6.2 \ + --hash=sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be \ + --hash=sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8 \ + --hash=sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b \ + --hash=sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7 \ + --hash=sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90 \ + --hash=sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7 \ + --hash=sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49 + # via mkdocs-material beautifulsoup4==4.12.3 \ --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed # via -r default.in -billiard==4.2.1 \ - --hash=sha256:12b641b0c539073fc8d3f5b8b7be998956665c4233c7c1fcd66a7e677c4fb36f \ - --hash=sha256:40b59a4ac8806ba2c2369ea98d876bc6108b051c227baffd928c644d15d8f3cb +billiard==4.2.4 \ + --hash=sha256:525b42bdec68d2b983347ac312f892db930858495db601b5836ac24e6477cde5 \ + --hash=sha256:55f542c371209e03cd5862299b74e52e4fbcba8250ba611ad94276b369b6a85f # via celery bleach==6.1.0 \ --hash=sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe \ --hash=sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6 # via -r default.in -cachetools==5.5.0 \ - --hash=sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292 \ - --hash=sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a - # via google-auth celery==5.4.0 \ --hash=sha256:369631eb580cf8c51a82721ec538684994f8277637edde2dfc0dacd73ed97f64 \ --hash=sha256:504a19140e8d3029d5acad88330c541d4c3f64c789d85f94756762d8bca7e706 # via -r default.in -certifi==2024.8.30 \ - --hash=sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 \ - --hash=sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9 +certifi==2026.2.25 \ + --hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \ + --hash=sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7 # via # httpcore # httpx @@ -140,114 +149,154 @@ cffi==2.0.0 \ --hash=sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453 \ --hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf # via cryptography -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +charset-normalizer==3.4.6 \ + --hash=sha256:06a7e86163334edfc5d20fe104db92fcd666e5a5df0977cb5680a506fe26cc8e \ + --hash=sha256:0c173ce3a681f309f31b87125fecec7a5d1347261ea11ebbb856fa6006b23c8c \ + --hash=sha256:0e28d62a8fc7a1fa411c43bd65e346f3bce9716dc51b897fbe930c5987b402d5 \ + --hash=sha256:0e901eb1049fdb80f5bd11ed5ea1e498ec423102f7a9b9e4645d5b8204ff2815 \ + --hash=sha256:11afb56037cbc4b1555a34dd69151e8e069bee82e613a73bef6e714ce733585f \ + --hash=sha256:150b8ce8e830eb7ccb029ec9ca36022f756986aaaa7956aad6d9ec90089338c0 \ + --hash=sha256:172985e4ff804a7ad08eebec0a1640ece87ba5041d565fff23c8f99c1f389484 \ + --hash=sha256:197c1a244a274bb016dd8b79204850144ef77fe81c5b797dc389327adb552407 \ + --hash=sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6 \ + --hash=sha256:1cf0a70018692f85172348fe06d3a4b63f94ecb055e13a00c644d368eb82e5b8 \ + --hash=sha256:1ed80ff870ca6de33f4d953fda4d55654b9a2b340ff39ab32fa3adbcd718f264 \ + --hash=sha256:22c6f0c2fbc31e76c3b8a86fba1a56eda6166e238c29cdd3d14befdb4a4e4815 \ + --hash=sha256:231d4da14bcd9301310faf492051bee27df11f2bc7549bc0bb41fef11b82daa2 \ + --hash=sha256:259695e2ccc253feb2a016303543d691825e920917e31f894ca1a687982b1de4 \ + --hash=sha256:2a24157fa36980478dd1770b585c0f30d19e18f4fb0c47c13aa568f871718579 \ + --hash=sha256:2b1a63e8224e401cafe7739f77efd3f9e7f5f2026bda4aead8e59afab537784f \ + --hash=sha256:2bd9d128ef93637a5d7a6af25363cf5dec3fa21cf80e68055aad627f280e8afa \ + --hash=sha256:2e1d8ca8611099001949d1cdfaefc510cf0f212484fe7c565f735b68c78c3c95 \ + --hash=sha256:2ef7fedc7a6ecbe99969cd09632516738a97eeb8bd7258bf8a0f23114c057dab \ + --hash=sha256:2f7fdd9b6e6c529d6a2501a2d36b240109e78a8ceaef5687cfcfa2bbe671d297 \ + --hash=sha256:30f445ae60aad5e1f8bdbb3108e39f6fbc09f4ea16c815c66578878325f8f15a \ + --hash=sha256:31215157227939b4fb3d740cd23fe27be0439afef67b785a1eb78a3ae69cba9e \ + --hash=sha256:34315ff4fc374b285ad7f4a0bf7dcbfe769e1b104230d40f49f700d4ab6bbd84 \ + --hash=sha256:3516bbb8d42169de9e61b8520cbeeeb716f12f4ecfe3fd30a9919aa16c806ca8 \ + --hash=sha256:3778fd7d7cd04ae8f54651f4a7a0bd6e39a0cf20f801720a4c21d80e9b7ad6b0 \ + --hash=sha256:39f5068d35621da2881271e5c3205125cc456f54e9030d3f723288c873a71bf9 \ + --hash=sha256:404a1e552cf5b675a87f0651f8b79f5f1e6fd100ee88dc612f89aa16abd4486f \ + --hash=sha256:419a9d91bd238052642a51938af8ac05da5b3343becde08d5cdeab9046df9ee1 \ + --hash=sha256:423fb7e748a08f854a08a222b983f4df1912b1daedce51a72bd24fe8f26a1843 \ + --hash=sha256:4482481cb0572180b6fd976a4d5c72a30263e98564da68b86ec91f0fe35e8565 \ + --hash=sha256:461598cd852bfa5a61b09cae2b1c02e2efcd166ee5516e243d540ac24bfa68a7 \ + --hash=sha256:47955475ac79cc504ef2704b192364e51d0d473ad452caedd0002605f780101c \ + --hash=sha256:48696db7f18afb80a068821504296eb0787d9ce239b91ca15059d1d3eaacf13b \ + --hash=sha256:4be9f4830ba8741527693848403e2c457c16e499100963ec711b1c6f2049b7c7 \ + --hash=sha256:4d1d02209e06550bdaef34af58e041ad71b88e624f5d825519da3a3308e22687 \ + --hash=sha256:4f41da960b196ea355357285ad1316a00099f22d0929fe168343b99b254729c9 \ + --hash=sha256:517ad0e93394ac532745129ceabdf2696b609ec9f87863d337140317ebce1c14 \ + --hash=sha256:51fb3c322c81d20567019778cb5a4a6f2dc1c200b886bc0d636238e364848c89 \ + --hash=sha256:5273b9f0b5835ff0350c0828faea623c68bfa65b792720c453e22b25cc72930f \ + --hash=sha256:530d548084c4a9f7a16ed4a294d459b4f229db50df689bfe92027452452943a0 \ + --hash=sha256:530e8cebeea0d76bdcf93357aa5e41336f48c3dc709ac52da2bb167c5b8271d9 \ + --hash=sha256:54fae94be3d75f3e573c9a1b5402dc593de19377013c9a0e4285e3d402dd3a2a \ + --hash=sha256:572d7c822caf521f0525ba1bce1a622a0b85cf47ffbdae6c9c19e3b5ac3c4389 \ + --hash=sha256:58c948d0d086229efc484fe2f30c2d382c86720f55cd9bc33591774348ad44e0 \ + --hash=sha256:5d11595abf8dd942a77883a39d81433739b287b6aa71620f15164f8096221b30 \ + --hash=sha256:5f8ddd609f9e1af8c7bd6e2aca279c931aefecd148a14402d4e368f3171769fd \ + --hash=sha256:5feb91325bbceade6afab43eb3b508c63ee53579fe896c77137ded51c6b6958e \ + --hash=sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9 \ + --hash=sha256:613f19aa6e082cf96e17e3ffd89383343d0d589abda756b7764cf78361fd41dc \ + --hash=sha256:659a1e1b500fac8f2779dd9e1570464e012f43e580371470b45277a27baa7532 \ + --hash=sha256:695f5c2823691a25f17bc5d5ffe79fa90972cc34b002ac6c843bb8a1720e950d \ + --hash=sha256:69dd852c2f0ad631b8b60cfbe25a28c0058a894de5abb566619c205ce0550eae \ + --hash=sha256:6cceb5473417d28edd20c6c984ab6fee6c6267d38d906823ebfe20b03d607dc2 \ + --hash=sha256:71be7e0e01753a89cf024abf7ecb6bca2c81738ead80d43004d9b5e3f1244e64 \ + --hash=sha256:74119174722c4349af9708993118581686f343adc1c8c9c007d59be90d077f3f \ + --hash=sha256:74a2e659c7ecbc73562e2a15e05039f1e22c75b7c7618b4b574a3ea9118d1557 \ + --hash=sha256:7504e9b7dc05f99a9bbb4525c67a2c155073b44d720470a148b34166a69c054e \ + --hash=sha256:79090741d842f564b1b2827c0b82d846405b744d31e84f18d7a7b41c20e473ff \ + --hash=sha256:7a6967aaf043bceabab5412ed6bd6bd26603dae84d5cb75bf8d9a74a4959d398 \ + --hash=sha256:7bda6eebafd42133efdca535b04ccb338ab29467b3f7bf79569883676fc628db \ + --hash=sha256:7edbed096e4a4798710ed6bc75dcaa2a21b68b6c356553ac4823c3658d53743a \ + --hash=sha256:7f9019c9cb613f084481bd6a100b12e1547cf2efe362d873c2e31e4035a6fa43 \ + --hash=sha256:802168e03fba8bbc5ce0d866d589e4b1ca751d06edee69f7f3a19c5a9fe6b597 \ + --hash=sha256:80d0a5615143c0b3225e5e3ef22c8d5d51f3f72ce0ea6fb84c943546c7b25b6c \ + --hash=sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e \ + --hash=sha256:836ab36280f21fc1a03c99cd05c6b7af70d2697e374c7af0b61ed271401a72a2 \ + --hash=sha256:8761ac29b6c81574724322a554605608a9960769ea83d2c73e396f3df896ad54 \ + --hash=sha256:87725cfb1a4f1f8c2fc9890ae2f42094120f4b44db9360be5d99a4c6b0e03a9e \ + --hash=sha256:899d28f422116b08be5118ef350c292b36fc15ec2daeb9ea987c89281c7bb5c4 \ + --hash=sha256:8bc5f0687d796c05b1e28ab0d38a50e6309906ee09375dd3aff6a9c09dd6e8f4 \ + --hash=sha256:8bea55c4eef25b0b19a0337dc4e3f9a15b00d569c77211fa8cde38684f234fb7 \ + --hash=sha256:8e5a94886bedca0f9b78fecd6afb6629142fd2605aa70a125d49f4edc6037ee6 \ + --hash=sha256:90ca27cd8da8118b18a52d5f547859cc1f8354a00cd1e8e5120df3e30d6279e5 \ + --hash=sha256:92734d4d8d187a354a556626c221cd1a892a4e0802ccb2af432a1d85ec012194 \ + --hash=sha256:947cf925bc916d90adba35a64c82aace04fa39b46b52d4630ece166655905a69 \ + --hash=sha256:95b52c68d64c1878818687a473a10547b3292e82b6f6fe483808fb1468e2f52f \ + --hash=sha256:97d0235baafca5f2b09cf332cc275f021e694e8362c6bb9c96fc9a0eb74fc316 \ + --hash=sha256:9ca4c0b502ab399ef89248a2c84c54954f77a070f28e546a85e91da627d1301e \ + --hash=sha256:9cc4fc6c196d6a8b76629a70ddfcd4635a6898756e2d9cac5565cf0654605d73 \ + --hash=sha256:9cc6e6d9e571d2f863fa77700701dae73ed5f78881efc8b3f9a4398772ff53e8 \ + --hash=sha256:a056d1ad2633548ca18ffa2f85c202cfb48b68615129143915b8dc72a806a923 \ + --hash=sha256:a26611d9987b230566f24a0a125f17fe0de6a6aff9f25c9f564aaa2721a5fb88 \ + --hash=sha256:a4474d924a47185a06411e0064b803c68be044be2d60e50e8bddcc2649957c1f \ + --hash=sha256:a4ea868bc28109052790eb2b52a9ab33f3aa7adc02f96673526ff47419490e21 \ + --hash=sha256:a9e68c9d88823b274cf1e72f28cb5dc89c990edf430b0bfd3e2fb0785bfeabf4 \ + --hash=sha256:aa9cccf4a44b9b62d8ba8b4dd06c649ba683e4bf04eea606d2e94cfc2d6ff4d6 \ + --hash=sha256:ab30e5e3e706e3063bc6de96b118688cb10396b70bb9864a430f67df98c61ecc \ + --hash=sha256:ac2393c73378fea4e52aa56285a3d64be50f1a12395afef9cce47772f60334c2 \ + --hash=sha256:ad8faf8df23f0378c6d527d8b0b15ea4a2e23c89376877c598c4870d1b2c7866 \ + --hash=sha256:b35b200d6a71b9839a46b9b7fff66b6638bb52fc9658aa58796b0326595d3021 \ + --hash=sha256:b3694e3f87f8ac7ce279d4355645b3c878d24d1424581b46282f24b92f5a4ae2 \ + --hash=sha256:b4ff1d35e8c5bd078be89349b6f3a845128e685e751b6ea1169cf2160b344c4d \ + --hash=sha256:bbc8c8650c6e51041ad1be191742b8b421d05bbd3410f43fa2a00c8db87678e8 \ + --hash=sha256:bc72863f4d9aba2e8fd9085e63548a324ba706d2ea2c83b260da08a59b9482de \ + --hash=sha256:bf625105bb9eef28a56a943fec8c8a98aeb80e7d7db99bd3c388137e6eb2d237 \ + --hash=sha256:c2274ca724536f173122f36c98ce188fd24ce3dad886ec2b7af859518ce008a4 \ + --hash=sha256:c45a03a4c69820a399f1dda9e1d8fbf3562eda46e7720458180302021b08f778 \ + --hash=sha256:c8ae56368f8cc97c7e40a7ee18e1cedaf8e780cd8bc5ed5ac8b81f238614facb \ + --hash=sha256:c907cdc8109f6c619e6254212e794d6548373cc40e1ec75e6e3823d9135d29cc \ + --hash=sha256:ca0276464d148c72defa8bb4390cce01b4a0e425f3b50d1435aa6d7a18107602 \ + --hash=sha256:cd5e2801c89992ed8c0a3f0293ae83c159a60d9a5d685005383ef4caca77f2c4 \ + --hash=sha256:d08ec48f0a1c48d75d0356cea971921848fb620fdeba805b28f937e90691209f \ + --hash=sha256:d1a2ee9c1499fc8f86f4521f27a973c914b211ffa87322f4ee33bb35392da2c5 \ + --hash=sha256:d5f5d1e9def3405f60e3ca8232d56f35c98fb7bf581efcc60051ebf53cb8b611 \ + --hash=sha256:d60377dce4511655582e300dc1e5a5f24ba0cb229005a1d5c8d0cb72bb758ab8 \ + --hash=sha256:d73beaac5e90173ac3deb9928a74763a6d230f494e4bfb422c217a0ad8e629bf \ + --hash=sha256:d7de2637729c67d67cf87614b566626057e95c303bc0a55ffe391f5205e7003d \ + --hash=sha256:dad6e0f2e481fffdcf776d10ebee25e0ef89f16d691f1e5dee4b586375fdc64b \ + --hash=sha256:dda86aba335c902b6149a02a55b38e96287157e609200811837678214ba2b1db \ + --hash=sha256:df01808ee470038c3f8dc4f48620df7225c49c2d6639e38f96e6d6ac6e6f7b0e \ + --hash=sha256:e1f6e2f00a6b8edb562826e4632e26d063ac10307e80f7461f7de3ad8ef3f077 \ + --hash=sha256:e25369dc110d58ddf29b949377a93e0716d72a24f62bad72b2b39f155949c1fd \ + --hash=sha256:e3c701e954abf6fc03a49f7c579cc80c2c6cc52525340ca3186c41d3f33482ef \ + --hash=sha256:e5bcc1a1ae744e0bb59641171ae53743760130600da8db48cbb6e4918e186e4e \ + --hash=sha256:e68c14b04827dd76dcbd1aeea9e604e3e4b78322d8faf2f8132c7138efa340a8 \ + --hash=sha256:e8aeb10fcbe92767f0fa69ad5a72deca50d0dca07fbde97848997d778a50c9fe \ + --hash=sha256:e985a16ff513596f217cee86c21371b8cd011c0f6f056d0920aa2d926c544058 \ + --hash=sha256:ecbbd45615a6885fe3240eb9db73b9e62518b611850fdf8ab08bd56de7ad2b17 \ + --hash=sha256:ee4ec14bc1680d6b0afab9aea2ef27e26d2024f18b24a2d7155a52b60da7e833 \ + --hash=sha256:ef5960d965e67165d75b7c7ffc60a83ec5abfc5c11b764ec13ea54fbef8b4421 \ + --hash=sha256:f0cdaecd4c953bfae0b6bb64910aaaca5a424ad9c72d85cb88417bb9814f7550 \ + --hash=sha256:f1ce721c8a7dfec21fcbdfe04e8f68174183cf4e8188e0645e92aa23985c57ff \ + --hash=sha256:f50498891691e0864dc3da965f340fada0771f6142a378083dc4608f4ea513e2 \ + --hash=sha256:f5ea69428fa1b49573eef0cc44a1d43bebd45ad0c611eb7d7eac760c7ae771bc \ + --hash=sha256:f61aa92e4aad0be58eb6eb4e0c21acf32cf8065f4b2cae5665da756c4ceef982 \ + --hash=sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d \ + --hash=sha256:f820f24b09e3e779fe84c3c456cb4108a7aa639b0d1f02c28046e11bfcd088ed \ + --hash=sha256:f98059e4fcd3e3e4e2d632b7cf81c2faae96c43c60b569e9c621468082f1d104 \ + --hash=sha256:fcce033e4021347d80ed9c66dcf1e7b1546319834b74445f561d2e2221de5659 # via requests -click==8.1.7 \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de +click==8.3.1 \ + --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \ + --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 # via # celery # click-didyoumean # click-plugins # click-repl + # mkdocs # sacremoses click-didyoumean==0.3.1 \ --hash=sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463 \ --hash=sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c # via celery -click-plugins==1.1.1 \ - --hash=sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b \ - --hash=sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8 +click-plugins==1.1.1.2 \ + --hash=sha256:008d65743833ffc1f5417bf0e78e8d2c23aab04d9745ba817bd3e71b0feb6aa6 \ + --hash=sha256:d7af3984a99d243c131aa1a828331e7630f4a88a9741fd05c927b204bcf92261 # via celery click-repl==0.3.0 \ --hash=sha256:17849c23dba3d667247dc4defe1757fff98694e90fe37474f3feebb69ced26a9 \ @@ -256,7 +305,9 @@ click-repl==0.3.0 \ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - # via sacrebleu + # via + # mkdocs-material + # sacrebleu compare-locales==9.0.4 \ --hash=sha256:73d0d384aefa0bc96f5fd8521c08c8bb89b16a37316701323a77960accabd551 \ --hash=sha256:933d2b6e20f460d3ac2d3176295684505a42085b25e6c31944fcafbaf52f1cc0 @@ -445,9 +496,9 @@ drf-spectacular[sidecar]==0.28.0 \ --hash=sha256:2c778a47a40ab2f5078a7c42e82baba07397bb35b074ae4680721b2805943061 \ --hash=sha256:856e7edf1056e49a4245e87a61e8da4baff46c83dbc25be1da2df77f354c7cb4 # via -r default.in -drf-spectacular-sidecar==2026.1.1 \ - --hash=sha256:6f7c173a8ddbbbdafc7a27e028614b65f07a89ca90f996a432d57460463b56be \ - --hash=sha256:af8df62f1b594ec280351336d837eaf2402ab25a6bc2a1fad7aee9935821070f +drf-spectacular-sidecar==2026.3.1 \ + --hash=sha256:5b7fedad66e3851f2f442480792c08115d79217959d01645b93d3d2258938be1 \ + --hash=sha256:864edb83e022e13e3941c325c3cc0c954c843fa2e1d0bc95e81887664b2d3dad # via drf-spectacular fluent-syntax==0.19.0 \ --hash=sha256:920326d7f46864b9758f0044e9968e3112198bc826acee16ddd8f11d359004fd \ @@ -455,117 +506,136 @@ fluent-syntax==0.19.0 \ # via # compare-locales # moz-l10n +ghp-import==2.1.0 \ + --hash=sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619 \ + --hash=sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343 + # via mkdocs gitignorant==0.3.1 \ --hash=sha256:d2b96ffe90eaf4fa2e1d68ad4e3f807213c8ec1e54a943a9e7105a9f7aaa4232 \ --hash=sha256:eb51b3421761e41f594758ef1f93aa438f94856da8beea44ccd043f9c2373442 # via moz-l10n -google-api-core[grpc]==2.20.0 \ - --hash=sha256:ef0591ef03c30bb83f79b3d0575c3f31219001fc9c5cf37024d08310aeffed8a \ - --hash=sha256:f74dff1889ba291a4b76c5079df0711810e2d9da81abfdc99957bc961c1eb28f +google-api-core[grpc]==2.30.0 \ + --hash=sha256:02edfa9fab31e17fc0befb5f161b3bf93c9096d99aed584625f38065c511ad9b \ + --hash=sha256:80be49ee937ff9aba0fd79a6eddfde35fe658b9953ab9b79c57dd7061afa8df5 # via # google-cloud-core # google-cloud-translate -google-auth==2.35.0 \ - --hash=sha256:25df55f327ef021de8be50bad0dfd4a916ad0de96da86cd05661c9297723ad3f \ - --hash=sha256:f4c64ed4e01e8e8b646ef34c018f8bf3338df0c8e37d8b3bba40e7f574a3278a +google-auth==2.49.1 \ + --hash=sha256:16d40da1c3c5a0533f57d268fe72e0ebb0ae1cc3b567024122651c045d879b64 \ + --hash=sha256:195ebe3dca18eddd1b3db5edc5189b76c13e96f29e73043b923ebcf3f1a860f7 # via # google-api-core # google-cloud-core # google-cloud-translate -google-cloud-core==2.4.1 \ - --hash=sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073 \ - --hash=sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61 +google-cloud-core==2.5.0 \ + --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ + --hash=sha256:7c1b7ef5c92311717bd05301aa1a91ffbc565673d3b0b4163a52d8413a186963 # via google-cloud-translate google-cloud-translate==3.16.0 \ --hash=sha256:0797d954c4f6ea073229e950012ba083a4cc9752b431dc0624e2594e287469ef \ --hash=sha256:26de33b011da3ec3046625c855c0159a73ff7ed7e0a489cf582aa4d82b8f1201 # via -r default.in -googleapis-common-protos[grpc]==1.65.0 \ - --hash=sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63 \ - --hash=sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0 +googleapis-common-protos[grpc]==1.73.0 \ + --hash=sha256:778d07cd4fbeff84c6f7c72102f0daf98fa2bfd3fa8bea426edc545588da0b5a \ + --hash=sha256:dfdaaa2e860f242046be561e6d6cb5c5f1541ae02cfbcb034371aadb2942b4e8 # via # google-api-core # grpc-google-iam-v1 # grpcio-status -grpc-google-iam-v1==0.13.1 \ - --hash=sha256:3ff4b2fd9d990965e410965253c0da6f66205d5a8291c4c31c6ebecca18a9001 \ - --hash=sha256:c3e86151a981811f30d5e7330f271cee53e73bb87755e88cc3b6f0c7b5fe374e +grpc-google-iam-v1==0.14.3 \ + --hash=sha256:7a7f697e017a067206a3dfef44e4c634a34d3dee135fe7d7a4613fe3e59217e6 \ + --hash=sha256:879ac4ef33136c5491a6300e27575a9ec760f6cdf9a2518798c1b8977a5dc389 # via google-cloud-translate -grpcio==1.66.1 \ - --hash=sha256:0e6c9b42ded5d02b6b1fea3a25f036a2236eeb75d0579bfd43c0018c88bf0a3e \ - --hash=sha256:161d5c535c2bdf61b95080e7f0f017a1dfcb812bf54093e71e5562b16225b4ce \ - --hash=sha256:17663598aadbedc3cacd7bbde432f541c8e07d2496564e22b214b22c7523dac8 \ - --hash=sha256:1c17ebcec157cfb8dd445890a03e20caf6209a5bd4ac5b040ae9dbc59eef091d \ - --hash=sha256:292a846b92cdcd40ecca46e694997dd6b9be6c4c01a94a0dfb3fcb75d20da858 \ - --hash=sha256:2ca2559692d8e7e245d456877a85ee41525f3ed425aa97eb7a70fc9a79df91a0 \ - --hash=sha256:307b1d538140f19ccbd3aed7a93d8f71103c5d525f3c96f8616111614b14bf2a \ - --hash=sha256:30a1c2cf9390c894c90bbc70147f2372130ad189cffef161f0432d0157973f45 \ - --hash=sha256:31a049daa428f928f21090403e5d18ea02670e3d5d172581670be006100db9ef \ - --hash=sha256:35334f9c9745add3e357e3372756fd32d925bd52c41da97f4dfdafbde0bf0ee2 \ - --hash=sha256:3750c5a00bd644c75f4507f77a804d0189d97a107eb1481945a0cf3af3e7a5ac \ - --hash=sha256:3885f037eb11f1cacc41f207b705f38a44b69478086f40608959bf5ad85826dd \ - --hash=sha256:4573608e23f7e091acfbe3e84ac2045680b69751d8d67685ffa193a4429fedb1 \ - --hash=sha256:4825a3aa5648010842e1c9d35a082187746aa0cdbf1b7a2a930595a94fb10fce \ - --hash=sha256:4877ba180591acdf127afe21ec1c7ff8a5ecf0fe2600f0d3c50e8c4a1cbc6492 \ - --hash=sha256:48b0d92d45ce3be2084b92fb5bae2f64c208fea8ceed7fccf6a7b524d3c4942e \ - --hash=sha256:4d813316d1a752be6f5c4360c49f55b06d4fe212d7df03253dfdae90c8a402bb \ - --hash=sha256:5dd67ed9da78e5121efc5c510f0122a972216808d6de70953a740560c572eb44 \ - --hash=sha256:6f914386e52cbdeb5d2a7ce3bf1fdfacbe9d818dd81b6099a05b741aaf3848bb \ - --hash=sha256:7101db1bd4cd9b880294dec41a93fcdce465bdbb602cd8dc5bd2d6362b618759 \ - --hash=sha256:7e06aa1f764ec8265b19d8f00140b8c4b6ca179a6dc67aa9413867c47e1fb04e \ - --hash=sha256:84ca1be089fb4446490dd1135828bd42a7c7f8421e74fa581611f7afdf7ab761 \ - --hash=sha256:8a1e224ce6f740dbb6b24c58f885422deebd7eb724aff0671a847f8951857c26 \ - --hash=sha256:97ae7edd3f3f91480e48ede5d3e7d431ad6005bfdbd65c1b56913799ec79e791 \ - --hash=sha256:9c9bebc6627873ec27a70fc800f6083a13c70b23a5564788754b9ee52c5aef6c \ - --hash=sha256:a013c5fbb12bfb5f927444b477a26f1080755a931d5d362e6a9a720ca7dbae60 \ - --hash=sha256:a66fe4dc35d2330c185cfbb42959f57ad36f257e0cc4557d11d9f0a3f14311df \ - --hash=sha256:a92c4f58c01c77205df6ff999faa008540475c39b835277fb8883b11cada127a \ - --hash=sha256:aa8ba945c96e73de29d25331b26f3e416e0c0f621e984a3ebdb2d0d0b596a3b3 \ - --hash=sha256:b0aa03d240b5539648d996cc60438f128c7f46050989e35b25f5c18286c86734 \ - --hash=sha256:b1b24c23d51a1e8790b25514157d43f0a4dce1ac12b3f0b8e9f66a5e2c4c132f \ - --hash=sha256:b7ffb8ea674d68de4cac6f57d2498fef477cef582f1fa849e9f844863af50083 \ - --hash=sha256:b9feb4e5ec8dc2d15709f4d5fc367794d69277f5d680baf1910fc9915c633524 \ - --hash=sha256:bff2096bdba686019fb32d2dde45b95981f0d1490e054400f70fc9a8af34b49d \ - --hash=sha256:c30aeceeaff11cd5ddbc348f37c58bcb96da8d5aa93fed78ab329de5f37a0d7a \ - --hash=sha256:c9f80f9fad93a8cf71c7f161778ba47fd730d13a343a46258065c4deb4b550c0 \ - --hash=sha256:cfd349de4158d797db2bd82d2020554a121674e98fbe6b15328456b3bf2495bb \ - --hash=sha256:d0cd7050397b3609ea51727b1811e663ffda8bda39c6a5bb69525ef12414b503 \ - --hash=sha256:d639c939ad7c440c7b2819a28d559179a4508783f7e5b991166f8d7a34b52815 \ - --hash=sha256:e3ba04659e4fce609de2658fe4dbf7d6ed21987a94460f5f92df7579fd5d0e22 \ - --hash=sha256:ecfe735e7a59e5a98208447293ff8580e9db1e890e232b8b292dc8bd15afc0d2 \ - --hash=sha256:ef82d361ed5849d34cf09105d00b94b6728d289d6b9235513cb2fcc79f7c432c \ - --hash=sha256:f03a5884c56256e08fd9e262e11b5cfacf1af96e2ce78dc095d2c41ccae2c80d \ - --hash=sha256:f1fe60d0772831d96d263b53d83fb9a3d050a94b0e94b6d004a5ad111faa5b5b \ - --hash=sha256:f517fd7259fe823ef3bd21e508b653d5492e706e9f0ef82c16ce3347a8a5620c \ - --hash=sha256:fdb14bad0835914f325349ed34a51940bc2ad965142eb3090081593c6e347be9 +grpcio==1.78.0 \ + --hash=sha256:082653eecbdf290e6e3e2c276ab2c54b9e7c299e07f4221872380312d8cf395e \ + --hash=sha256:10a9a644b5dd5aec3b82b5b0b90d41c0fa94c85ef42cb42cf78a23291ddb5e7d \ + --hash=sha256:12a771591ae40bc65ba67048fa52ef4f0e6db8279e595fd349f9dfddeef571f9 \ + --hash=sha256:185dea0d5260cbb2d224c507bf2a5444d5abbb1fa3594c1ed7e4c709d5eb8383 \ + --hash=sha256:1afa62af6e23f88629f2b29ec9e52ec7c65a7176c1e0a83292b93c76ca882558 \ + --hash=sha256:2045397e63a7a0ee7957c25f7dbb36ddc110e0cfb418403d110c0a7a68a844e9 \ + --hash=sha256:207db540302c884b8848036b80db352a832b99dfdf41db1eb554c2c2c7800f65 \ + --hash=sha256:271c73e6e5676afe4fc52907686670c7cea22ab2310b76a59b678403ed40d670 \ + --hash=sha256:2777b783f6c13b92bd7b716667452c329eefd646bfb3f2e9dabea2e05dbd34f6 \ + --hash=sha256:2bf5e2e163b356978b23652c4818ce4759d40f4712ee9ec5a83c4be6f8c23a3a \ + --hash=sha256:35eb275bf1751d2ffbd8f57cdbc46058e857cf3971041521b78b7db94bdaf127 \ + --hash=sha256:391e93548644e6b2726f1bb84ed60048d4bcc424ce5e4af0843d28ca0b754fec \ + --hash=sha256:3c586ac70e855c721bda8f548d38c3ca66ac791dc49b66a8281a1f99db85e452 \ + --hash=sha256:3f8904a8165ab21e07e58bf3e30a73f4dffc7a1e0dbc32d51c61b5360d26f43e \ + --hash=sha256:459ab414b35f4496138d0ecd735fed26f1318af5e52cb1efbc82a09f0d5aa911 \ + --hash=sha256:4c5533d03a6cbd7f56acfc9cfb44ea64f63d29091e40e44010d34178d392d7eb \ + --hash=sha256:51b13f9aed9d59ee389ad666b8c2214cc87b5de258fa712f9ab05f922e3896c6 \ + --hash=sha256:5361a0630a7fdb58a6a97638ab70e1dae2893c4d08d7aba64ded28bb9e7a29df \ + --hash=sha256:5397fff416b79e4b284959642a4e95ac4b0f1ece82c9993658e0e477d40551ec \ + --hash=sha256:57bab6deef2f4f1ca76cc04565df38dc5713ae6c17de690721bdf30cb1e0545c \ + --hash=sha256:6092beabe1966a3229f599d7088b38dfc8ffa1608b5b5cdda31e591e6500f856 \ + --hash=sha256:684083fd383e9dc04c794adb838d4faea08b291ce81f64ecd08e4577c7398adf \ + --hash=sha256:735e38e176a88ce41840c21bb49098ab66177c64c82426e24e0082500cc68af5 \ + --hash=sha256:7382b95189546f375c174f53a5fa873cef91c4b8005faa05cc5b3beea9c4f1c5 \ + --hash=sha256:748b6138585379c737adc08aeffd21222abbda1a86a0dca2a39682feb9196c20 \ + --hash=sha256:74be1268d1439eaaf552c698cdb11cd594f0c49295ae6bb72c34ee31abbe611b \ + --hash=sha256:7cc47943d524ee0096f973e1081cb8f4f17a4615f2116882a5f1416e4cfe92b5 \ + --hash=sha256:859b13906ce098c0b493af92142ad051bf64c7870fa58a123911c88606714996 \ + --hash=sha256:85f93781028ec63f383f6bc90db785a016319c561cc11151fbb7b34e0d012303 \ + --hash=sha256:86ce2371bfd7f212cf60d8517e5e854475c2c43ce14aa910e136ace72c6db6c1 \ + --hash=sha256:86f85dd7c947baa707078a236288a289044836d4b640962018ceb9cd1f899af5 \ + --hash=sha256:8dfffba826efcf366b1e3ccc37e67afe676f290e13a3b48d31a46739f80a8724 \ + --hash=sha256:8f2ac84905d12918e4e55a16da17939eb63e433dc11b677267c35568aa63fc84 \ + --hash=sha256:94309f498bcc07e5a7d16089ab984d42ad96af1d94b5a4eb966a266d9fcabf68 \ + --hash=sha256:94f95cf5d532d0e717eed4fc1810e8e6eded04621342ec54c89a7c2f14b581bf \ + --hash=sha256:9566fe4ababbb2610c39190791e5b829869351d14369603702e890ef3ad2d06e \ + --hash=sha256:9dca934f24c732750389ce49d638069c3892ad065df86cb465b3fa3012b70c9e \ + --hash=sha256:a9f136fbafe7ccf4ac7e8e0c28b31066e810be52d6e344ef954a3a70234e1702 \ + --hash=sha256:ab399ef5e3cd2a721b1038a0f3021001f19c5ab279f145e1146bb0b9f1b2b12c \ + --hash=sha256:b0c689c02947d636bc7fab3e30cc3a3445cca99c834dfb77cd4a6cabfc1c5597 \ + --hash=sha256:b2342d87af32790f934a79c3112641e7b27d63c261b8b4395350dad43eff1dc7 \ + --hash=sha256:b58f37edab4a3881bc6c9bca52670610e0c9ca14e2ea3cf9debf185b870457fb \ + --hash=sha256:bd8cb8026e5f5b50498a3c4f196f57f9db344dad829ffae16b82e4fdbaea2813 \ + --hash=sha256:be63c88b32e6c0f1429f1398ca5c09bc64b0d80950c8bb7807d7d7fb36fb84c7 \ + --hash=sha256:c3f293fdc675ccba4db5a561048cca627b5e7bd1c8a6973ffedabe7d116e22e2 \ + --hash=sha256:c41bc64626db62e72afec66b0c8a0da76491510015417c127bfc53b2fe6d7f7f \ + --hash=sha256:ce3a90455492bf8bfa38e56fbbe1dbd4f872a3d8eeaf7337dc3b1c8aa28c271b \ + --hash=sha256:ce7599575eeb25c0f4dc1be59cada6219f3b56176f799627f44088b21381a28a \ + --hash=sha256:dce09d6116df20a96acfdbf85e4866258c3758180e8c49845d6ba8248b6d0bbb \ + --hash=sha256:de8cb00d1483a412a06394b8303feec5dcb3b55f81d83aa216dbb6a0b86a94f5 \ + --hash=sha256:df2c8f3141f7cbd112a6ebbd760290b5849cda01884554f7c67acc14e7b1758a \ + --hash=sha256:e87cbc002b6f440482b3519e36e1313eb5443e9e9e73d6a52d43bd2004fcfd8e \ + --hash=sha256:e888474dee2f59ff68130f8a397792d8cb8e17e6b3434339657ba4ee90845a8c \ + --hash=sha256:f12857d24d98441af6a1d5c87442d624411db486f7ba12550b07788f74b67b04 \ + --hash=sha256:f2d4e43ee362adfc05994ed479334d5a451ab7bc3f3fee1b796b8ca66895acb4 \ + --hash=sha256:f3d6379493e18ad4d39537a82371c5281e153e963cecb13f953ebac155756525 \ + --hash=sha256:f8dff3d9777e5d2703a962ee5c286c239bf0ba173877cc68dc02c17d042e29de \ + --hash=sha256:f9ab915a267fc47c7e88c387a3a28325b58c898e23d4995f765728f4e3dedb97 \ + --hash=sha256:fbe6e89c7ffb48518384068321621b2a69cab509f58e40e4399fdd378fa6d074 \ + --hash=sha256:fd5f135b1bd58ab088930b3c613455796dfa0393626a6972663ccdda5b4ac6ce \ + --hash=sha256:ff870aebe9a93a85283837801d35cd5f8814fe2ad01e606861a7fb47c762a2b7 # via # google-api-core # googleapis-common-protos # grpc-google-iam-v1 # grpcio-status -grpcio-status==1.66.1 \ - --hash=sha256:b3f7d34ccc46d83fea5261eea3786174459f763c31f6e34f1d24eba6d515d024 \ - --hash=sha256:cf9ed0b4a83adbe9297211c95cb5488b0cd065707e812145b842c85c4782ff02 +grpcio-status==1.71.2 \ + --hash=sha256:803c98cb6a8b7dc6dbb785b1111aed739f241ab5e9da0bba96888aa74704cfd3 \ + --hash=sha256:c7a97e176df71cdc2c179cd1847d7fc86cca5832ad12e9798d7fed6b7a1aab50 # via google-api-core gunicorn==23.0.0 \ --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec # via -r default.in -h11==0.14.0 \ - --hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \ - --hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 +h11==0.16.0 \ + --hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \ + --hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 # via httpcore -httpcore==1.0.5 \ - --hash=sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61 \ - --hash=sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5 +httpcore==1.0.9 \ + --hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \ + --hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8 # via httpx -httpx==0.27.2 \ - --hash=sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0 \ - --hash=sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2 +httpx==0.28.1 \ + --hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \ + --hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad # via openai -idna==3.10 \ - --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ - --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 +idna==3.11 \ + --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ + --hash=sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902 # via # anyio # httpx @@ -582,73 +652,117 @@ iniparse==0.5 \ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 - # via django-jinja -jiter==0.5.0 \ - --hash=sha256:044f2f1148b5248ad2c8c3afb43430dccf676c5a5834d2f5089a4e6c5bbd64df \ - --hash=sha256:04d461ad0aebf696f8da13c99bc1b3e06f66ecf6cfd56254cc402f6385231c06 \ - --hash=sha256:0af3838cfb7e6afee3f00dc66fa24695199e20ba87df26e942820345b0afc566 \ - --hash=sha256:1c834133e59a8521bc87ebcad773608c6fa6ab5c7a022df24a45030826cf10bc \ - --hash=sha256:1d916ba875bcab5c5f7d927df998c4cb694d27dceddf3392e58beaf10563368a \ - --hash=sha256:1ece0a115c05efca597c6d938f88c9357c843f8c245dbbb53361a1c01afd7148 \ - --hash=sha256:26351cc14507bdf466b5f99aba3df3143a59da75799bf64a53a3ad3155ecded9 \ - --hash=sha256:2a063f71c4b06225543dddadbe09d203dc0c95ba352d8b85f1221173480a71d5 \ - --hash=sha256:2cec323a853c24fd0472517113768c92ae0be8f8c384ef4441d3632da8baa646 \ - --hash=sha256:308fce789a2f093dca1ff91ac391f11a9f99c35369117ad5a5c6c4903e1b3e3a \ - --hash=sha256:335942557162ad372cc367ffaf93217117401bf930483b4b3ebdb1223dbddfa7 \ - --hash=sha256:368084d8d5c4fc40ff7c3cc513c4f73e02c85f6009217922d0823a48ee7adf61 \ - --hash=sha256:44dfc9ddfb9b51a5626568ef4e55ada462b7328996294fe4d36de02fce42721f \ - --hash=sha256:462a52be85b53cd9bffd94e2d788a09984274fe6cebb893d6287e1c296d50653 \ - --hash=sha256:4829df14d656b3fb87e50ae8b48253a8851c707da9f30d45aacab2aa2ba2d614 \ - --hash=sha256:489875bf1a0ffb3cb38a727b01e6673f0f2e395b2aad3c9387f94187cb214bbf \ - --hash=sha256:503b2c27d87dfff5ab717a8200fbbcf4714516c9d85558048b1fc14d2de7d8dc \ - --hash=sha256:5206144578831a6de278a38896864ded4ed96af66e1e63ec5dd7f4a1fce38a3a \ - --hash=sha256:5280e68e7740c8c128d3ae5ab63335ce6d1fb6603d3b809637b11713487af9e6 \ - --hash=sha256:528d742dcde73fad9d63e8242c036ab4a84389a56e04efd854062b660f559544 \ - --hash=sha256:550b11d669600dbc342364fd4adbe987f14d0bbedaf06feb1b983383dcc4b961 \ - --hash=sha256:583c57fc30cc1fec360e66323aadd7fc3edeec01289bfafc35d3b9dcb29495e4 \ - --hash=sha256:63314832e302cc10d8dfbda0333a384bf4bcfce80d65fe99b0f3c0da8945a91a \ - --hash=sha256:649b0ee97a6e6da174bffcb3c8c051a5935d7d4f2f52ea1583b5b3e7822fbf14 \ - --hash=sha256:6baa88334e7af3f4d7a5c66c3a63808e5efbc3698a1c57626541ddd22f8e4fbf \ - --hash=sha256:6d1f3d27cce923713933a844872d213d244e09b53ec99b7a7fdf73d543529d6d \ - --hash=sha256:6f1223f88b6d76b519cb033a4d3687ca157c272ec5d6015c322fc5b3074d8a5e \ - --hash=sha256:6f433a4169ad22fcb550b11179bb2b4fd405de9b982601914ef448390b2954f3 \ - --hash=sha256:702e3520384c88b6e270c55c772d4bd6d7b150608dcc94dea87ceba1b6391248 \ - --hash=sha256:7f5ad4a7c6b0d90776fdefa294f662e8a86871e601309643de30bf94bb93a64e \ - --hash=sha256:8120c60f8121ac3d6f072b97ef0e71770cc72b3c23084c72c4189428b1b1d3b6 \ - --hash=sha256:8cf80e5fe6ab582c82f0c3331df27a7e1565e2dcf06265afd5173d809cdbf9ba \ - --hash=sha256:8ea18e01f785c6667ca15407cd6dabbe029d77474d53595a189bdc813347218e \ - --hash=sha256:92cc68b48d50fa472c79c93965e19bd48f40f207cb557a8346daa020d6ba973b \ - --hash=sha256:9f664e7351604f91dcdd557603c57fc0d551bc65cc0a732fdacbf73ad335049a \ - --hash=sha256:a25fbd8a5a58061e433d6fae6d5298777c0814a8bcefa1e5ecfff20c594bd749 \ - --hash=sha256:a42a4bdcf7307b86cb863b2fb9bb55029b422d8f86276a50487982d99eed7c6e \ - --hash=sha256:a586832f70c3f1481732919215f36d41c59ca080fa27a65cf23d9490e75b2ef5 \ - --hash=sha256:aa1db0967130b5cab63dfe4d6ff547c88b2a394c3410db64744d491df7f069bb \ - --hash=sha256:aa9d2b85b2ed7dc7697597dcfaac66e63c1b3028652f751c81c65a9f220899ae \ - --hash=sha256:ab3a71ff31cf2d45cb216dc37af522d335211f3a972d2fe14ea99073de6cb104 \ - --hash=sha256:acc0d5b8b3dd12e91dd184b87273f864b363dfabc90ef29a1092d269f18c7e28 \ - --hash=sha256:ad4a6398c85d3a20067e6c69890ca01f68659da94d74c800298581724e426c7e \ - --hash=sha256:afa66939d834b0ce063f57d9895e8036ffc41c4bd90e4a99631e5f261d9b518e \ - --hash=sha256:b250ca2594f5599ca82ba7e68785a669b352156260c5362ea1b4e04a0f3e2389 \ - --hash=sha256:b2950e4798e82dd9176935ef6a55cf6a448b5c71515a556da3f6b811a7844f1e \ - --hash=sha256:b599f4e89b3def9a94091e6ee52e1d7ad7bc33e238ebb9c4c63f211d74822c3f \ - --hash=sha256:c22541f0b672f4d741382a97c65609332a783501551445ab2df137ada01e019e \ - --hash=sha256:c451f7922992751a936b96c5f5b9bb9312243d9b754c34b33d0cb72c84669f4e \ - --hash=sha256:c59614b225d9f434ea8fc0d0bec51ef5fa8c83679afedc0433905994fb36d631 \ - --hash=sha256:c6f16e21276074a12d8421692515b3fd6d2ea9c94fd0734c39a12960a20e85f3 \ - --hash=sha256:c95980207b3998f2c3b3098f357994d3fd7661121f30669ca7cb945f09510a87 \ - --hash=sha256:cccd3af9c48ac500c95e1bcbc498020c87e1781ff0345dd371462d67b76643eb \ - --hash=sha256:ce03f7b4129eb72f1687fa11300fbf677b02990618428934662406d2a76742a1 \ - --hash=sha256:d4c8e1ed0ef31ad29cae5ea16b9e41529eb50a7fba70600008e9f8de6376d553 \ - --hash=sha256:e3bbe3910c724b877846186c25fe3c802e105a2c1fc2b57d6688b9f8772026e4 \ - --hash=sha256:e6375923c5f19888c9226582a124b77b622f8fd0018b843c45eeb19d9701c403 \ - --hash=sha256:ea189db75f8eca08807d02ae27929e890c7d47599ce3d0a6a5d41f2419ecf338 \ - --hash=sha256:f04bc2fc50dc77be9d10f73fcc4e39346402ffe21726ff41028f36e179b587e6 \ - --hash=sha256:f16ca8f10e62f25fd81d5310e852df6649af17824146ca74647a018424ddeccf \ - --hash=sha256:f4be354c5de82157886ca7f5925dbda369b77344b4b4adf2723079715f823989 + # via + # django-jinja + # mkdocs + # mkdocs-material +jiter==0.13.0 \ + --hash=sha256:00203f47c214156df427b5989de74cb340c65c8180d09be1bf9de81d0abad599 \ + --hash=sha256:04670992b576fa65bd056dbac0c39fe8bd67681c380cb2b48efa885711d9d726 \ + --hash=sha256:0733312953b909688ae3c2d58d043aa040f9f1a6a75693defed7bc2cc4bf2654 \ + --hash=sha256:07b75fe09a4ee8e0c606200622e571e44943f47254f95e2436c8bdcaceb36d7d \ + --hash=sha256:0a2bd69fc1d902e89925fc34d1da51b2128019423d7b339a45d9e99c894e0663 \ + --hash=sha256:0a8d76c7524087272c8ae913f5d9d608bd839154b62c4322ef65723d2e5bb0b8 \ + --hash=sha256:0b34c519e17658ed88d5047999a93547f8889f3c1824120c26ad6be5f27b6cf5 \ + --hash=sha256:0bf670e3b1445fc4d31612199f1744f67f889ee1bbae703c4b54dc097e5dd394 \ + --hash=sha256:0c365005b05505a90d1c47856420980d0237adf82f70c4aff7aebd3c1cc143ad \ + --hash=sha256:0e3a5f0cde8ff433b8e88e41aa40131455420fb3649a3c7abdda6145f8cb7202 \ + --hash=sha256:0f0c065695f616a27c920a56ad0d4fc46415ef8b806bf8fc1cacf25002bd24e1 \ + --hash=sha256:1211427574b17b633cfceba5040de8081e5abf114f7a7602f73d2e16f9fdaa59 \ + --hash=sha256:1317fdffd16f5873e46ce27d0e0f7f4f90f0cdf1d86bf6abeaea9f63ca2c401d \ + --hash=sha256:15db60e121e11fe186c0b15236bd5d18381b9ddacdcf4e659feb96fc6c969c92 \ + --hash=sha256:19928b5d1ce0ff8c1ee1b9bdef3b5bfc19e8304f1b904e436caf30bc15dc6cf5 \ + --hash=sha256:19cd6f85e1dc090277c3ce90a5b7d96f32127681d825e71c9dce28788e39fc0c \ + --hash=sha256:1f4748aad1b4a93c8bdd70f604d0f748cdc0e8744c5547798acfa52f10e79228 \ + --hash=sha256:1f8a55b848cbabf97d861495cd65f1e5c590246fabca8b48e1747c4dfc8f85bf \ + --hash=sha256:2113c17c9a67071b0f820733c0893ed1d467b5fcf4414068169e5c2cabddb1e2 \ + --hash=sha256:24ab43126d5e05f3d53a36a8e11eb2f23304c6c1117844aaaf9a0aa5e40b5018 \ + --hash=sha256:24dc96eca9f84da4131cdf87a95e6ce36765c3b156fc9ae33280873b1c32d5f6 \ + --hash=sha256:2b4972c6df33731aac0742b64fd0d18e0a69bc7d6e03108ce7d40c85fd9e3e6d \ + --hash=sha256:2c26cf47e2cad140fa23b6d58d435a7c0161f5c514284802f25e87fddfe11024 \ + --hash=sha256:2d08c9475d48b92892583df9da592a0e2ac49bcd41fae1fec4f39ba6cf107820 \ + --hash=sha256:2ffc63785fd6c7977defe49b9824ae6ce2b2e2b77ce539bdaf006c26da06342e \ + --hash=sha256:309549b778b949d731a2f0e1594a3f805716be704a73bf3ad9a807eed5eb5721 \ + --hash=sha256:3097d665a27bc96fd9bbf7f86178037db139f319f785e4757ce7ccbf390db6c2 \ + --hash=sha256:36ebfbcffafb146d0e6ffb3e74d51e03d9c35ce7c625c8066cdbfc7b953bdc72 \ + --hash=sha256:3b3fb8c2053acaef8580809ac1d1f7481a0a0bdc012fd7f5d8b18fb696a5a089 \ + --hash=sha256:3d744a6061afba08dd7ae375dcde870cffb14429b7477e10f67e9e6d68772a0a \ + --hash=sha256:41f92313d17989102f3cb5dd533a02787cdb99454d494344b0361355da52fcb9 \ + --hash=sha256:4397ee562b9f69d283e5674445551b47a5e8076fdde75e71bfac5891113dc543 \ + --hash=sha256:45f6f8efb2f3b0603092401dc2df79fa89ccbc027aaba4174d2d4133ed661434 \ + --hash=sha256:47455245307e4debf2ce6c6e65a717550a0244231240dcf3b8f7d64e4c2f22f4 \ + --hash=sha256:4a638816427006c1e3f0013eb66d391d7a3acda99a7b0cf091eff4497ccea33a \ + --hash=sha256:5467696f6b827f1116556cb0db620440380434591e93ecee7fd14d1a491b6daa \ + --hash=sha256:57aab48f40be1db920a582b30b116fe2435d184f77f0e4226f546794cedd9cf0 \ + --hash=sha256:597245258e6ad085d064780abfb23a284d418d3e61c57362d9449c6c7317ee2d \ + --hash=sha256:5a1aff1fbdb803a376d4d22a8f63f8e7ccbce0b4890c26cc7af9e501ab339ef0 \ + --hash=sha256:5d9b34ad56761b3bf0fbe8f7e55468704107608512350962d3317ffd7a4382d5 \ + --hash=sha256:6207fc61c395b26fffdcf637a0b06b4326f35bfa93c6e92fe1a166a21aeb6731 \ + --hash=sha256:632bf7c1d28421c00dd8bbb8a3bac5663e1f57d5cd5ed962bce3c73bf62608e6 \ + --hash=sha256:66aa3e663840152d18cc8ff1e4faad3dd181373491b9cfdc6004b92198d67911 \ + --hash=sha256:682161a67adea11e3aae9038c06c8b4a9a71023228767477d683f69903ebc607 \ + --hash=sha256:6c26a424569a59140fb51160a56df13f438a2b0967365e987889186d5fc2f6f9 \ + --hash=sha256:6eeb7db8bc77dc20476bc2f7407a23dbe3d46d9cc664b166e3d474e1c1de4baa \ + --hash=sha256:701a1e77d1e593c1b435315ff625fd071f0998c5f02792038a5ca98899261b7d \ + --hash=sha256:775e10de3849d0631a97c603f996f518159272db00fdda0a780f81752255ee9d \ + --hash=sha256:7772115877c53f62beeb8fd853cab692dbc04374ef623b30f997959a4c0e7e95 \ + --hash=sha256:7b88d649135aca526da172e48083da915ec086b54e8e73a425ba50999468cc08 \ + --hash=sha256:7bb00b6d26db67a05fe3e12c76edc75f32077fb51deed13822dc648fa373bc19 \ + --hash=sha256:7beae3a3d3b5212d3a55d2961db3c292e02e302feb43fce6a3f7a31b90ea6dfe \ + --hash=sha256:7c26ad6967c9dcedf10c995a21539c3aa57d4abad7001b7a84f621a263a6b605 \ + --hash=sha256:7f90023f8f672e13ea1819507d2d21b9d2d1c18920a3b3a5f1541955a85b5504 \ + --hash=sha256:879e768938e7b49b5e90b7e3fecc0dbec01b8cb89595861fb39a8967c5220d09 \ + --hash=sha256:87ce0f14c6c08892b610686ae8be350bf368467b6acd5085a5b65441e2bf36d2 \ + --hash=sha256:8d76029f077379374cf0dbc78dbe45b38dec4a2eb78b08b5194ce836b2517afc \ + --hash=sha256:9621ca242547edc16400981ca3231e0c91c0c4c1ab8573a596cd9bb3575d5c2b \ + --hash=sha256:964538479359059a35fb400e769295d4b315ae61e4105396d355a12f7fef09f0 \ + --hash=sha256:9776ebe51713acf438fd9b4405fcd86893ae5d03487546dae7f34993217f8a91 \ + --hash=sha256:98fbafb6e88256f4454de33c1f40203d09fc33ed19162a68b3b257b29ca7f663 \ + --hash=sha256:9950290340acc1adaded363edd94baebcee7dabdfa8bee4790794cd5cfad2af6 \ + --hash=sha256:9d01ecc3a8cbdb6f25a37bd500510550b64ddf9f7d64a107d92f3ccb25035d0f \ + --hash=sha256:9da38b4fedde4fb528c740c2564628fbab737166a0e73d6d46cb4bb5463ff411 \ + --hash=sha256:9ffda299e417dc83362963966c50cb76d42da673ee140de8a8ac762d4bb2378b \ + --hash=sha256:a13b68cd1cd8cc9de8f244ebae18ccb3e4067ad205220ef324c39181e23bbf66 \ + --hash=sha256:a3a377af27b236abbf665a69b2bdd680e3b5a0bd2af825cd3b81245279a7606c \ + --hash=sha256:a576f5dce9ac7de5d350b8e2f552cf364f32975ed84717c35379a51c7cb198bd \ + --hash=sha256:a7637d92b1c9d7a771e8c56f445c7f84396d48f2e756e5978840ecba2fac0894 \ + --hash=sha256:ab1185ca5c8b9491b55ebf6c1e8866b8f68258612899693e24a92c5fdb9455d5 \ + --hash=sha256:ab44b178f7981fcaea7e0a5df20e773c663d06ffda0198f1a524e91b2fde7e59 \ + --hash=sha256:ade8cb6ff5632a62b7dbd4757d8c5573f7a2e9ae285d6b5b841707d8363205ef \ + --hash=sha256:aed40e099404721d7fcaf5b89bd3b4568a4666358bcac7b6b15c09fb6252ab68 \ + --hash=sha256:b1cbfa133241d0e6bdab48dcdc2604e8ba81512f6bbd68ec3e8e1357dd3c316c \ + --hash=sha256:b22945be8425d161f2e536cdae66da300b6b000f1c0ba3ddf237d1bfd45d21b8 \ + --hash=sha256:bb7613e1a427cfcb6ea4544f9ac566b93d5bf67e0d48c787eca673ff9c9dff2b \ + --hash=sha256:bcdabaea26cb04e25df3103ce47f97466627999260290349a88c8136ecae0060 \ + --hash=sha256:bdaba7d87e66f26a2c45d8cbadcbfc4bf7884182317907baf39cfe9775bb4d93 \ + --hash=sha256:c05b450d37ba0c9e21c77fef1f205f56bcee2330bddca68d344baebfc55ae0df \ + --hash=sha256:c1b609e5cbd2f52bb74fb721515745b407df26d7b800458bd97cb3b972c29e7d \ + --hash=sha256:c1e2b199f446d3e82246b4fd9236d7cb502dc2222b18698ba0d986d2fecc6152 \ + --hash=sha256:c3524798e70655ff19aec58c7d05adb1f074fecff62da857ea9be2b908b6d701 \ + --hash=sha256:cc5223ab19fe25e2f0bf2643204ad7318896fe3729bf12fde41b77bfc4fafff0 \ + --hash=sha256:d2a6394e6af690d462310a86b53c47ad75ac8c21dc79f120714ea449979cb1d3 \ + --hash=sha256:db367d8be9fad6e8ebbac4a7578b7af562e506211036cba2c06c3b998603c3d2 \ + --hash=sha256:dc3ce84cfd4fa9628fe62c4f85d0d597a4627d4242cfafac32a12cc1455d00f7 \ + --hash=sha256:e104da1db1c0991b3eaed391ccd650ae8d947eab1480c733e5a3fb28d4313e40 \ + --hash=sha256:e404ea551d35438013c64b4f357b0474c7abf9f781c06d44fcaf7a14c69ff9e2 \ + --hash=sha256:e5562a0f0e90a6223b704163ea28e831bd3a9faa3512a711f031611e6b06c939 \ + --hash=sha256:ea026e70a9a28ebbdddcbcf0f1323128a8db66898a06eaad3a4e62d2f554d096 \ + --hash=sha256:ec7e287d7fbd02cb6e22f9a00dd9c9cd504c40a61f2c61e7e1f9690a82726b4c \ + --hash=sha256:ed0240dd1536a98c3ab55e929c60dfff7c899fecafcb7d01161b21a99fc8c363 \ + --hash=sha256:ed9bbc30f5d60a3bdf63ae76beb3f9db280d7f195dfcfa61af792d6ce912d159 \ + --hash=sha256:ee9da221dca6e0429c2704c1b3655fe7b025204a71d4d9b73390c759d776d165 \ + --hash=sha256:f22ef501c3f87ede88f23f9b11e608581c14f04db59b6a801f354397ae13739f \ + --hash=sha256:f2839f9c2c7e2dffc1bc5929a510e14ce0a946be9365fd1219e7ef342dae14f4 \ + --hash=sha256:f556aa591c00f2c45eb1b89f68f52441a016034d18b65da60e2d2875bbbf344a \ + --hash=sha256:f7e1d61da332ec412350463891923f960c3073cf1aae93b538f0bb4c8cd46efb \ + --hash=sha256:f917a04240ef31898182f76a332f508f2cc4b57d2b4d7ad2dbfebbfe167eb505 \ + --hash=sha256:fa476ab5dd49f3bf3a168e05f89358c75a17608dbabb080ef65f96b27c19ab10 \ + --hash=sha256:fe49d3ff6db74321f144dff9addd4a5874d3105ac5ba7c5b77fac099cfae31ae \ + --hash=sha256:ff732bd0a0e778f43d5009840f20b935e79087b4dc65bd36f1cd0f9b04b8ff7f # via openai -joblib==1.4.2 \ - --hash=sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6 \ - --hash=sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e +joblib==1.5.3 \ + --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ + --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via sacremoses jsonfield==3.1.0 \ --hash=sha256:7e4e84597de21eeaeeaaa7cc5da08c61c48a9b64d0c446b2d71255d01812887a \ @@ -656,17 +770,17 @@ jsonfield==3.1.0 \ # via # -r default.in # django-notifications-hq -jsonschema==4.24.0 \ - --hash=sha256:0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196 \ - --hash=sha256:a462455f19f5faf404a7902952b6f0e3ce868f3ee09a359b05eca6673bd8412d +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via drf-spectacular -jsonschema-specifications==2025.4.1 \ - --hash=sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af \ - --hash=sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608 +jsonschema-specifications==2025.9.1 \ + --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ + --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -kombu==5.4.2 \ - --hash=sha256:14212f5ccf022fc0a70453bb025a1dcc32782a588c49ea866884047d66e14763 \ - --hash=sha256:eef572dd2fd9fc614b37580e3caeafdd5af46c1eff31e7fba89138cdb406f2cf +kombu==5.6.2 \ + --hash=sha256:8060497058066c6f5aed7c26d7cd0d3b574990b09de842a8c5aaed0b92cc5a55 \ + --hash=sha256:efcfc559da324d41d61ca311b0c64965ea35b4c55cc04ee36e55386145dace93 # via celery lxml==6.0.2 \ --hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \ @@ -813,6 +927,13 @@ lxml==6.0.2 \ # moz-l10n # sacrebleu # translate-toolkit +markdown==3.10.2 \ + --hash=sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950 \ + --hash=sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36 + # via + # mkdocs + # mkdocs-material + # pymdown-extensions markupsafe==2.0.1 \ --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ @@ -886,6 +1007,35 @@ markupsafe==2.0.1 \ # via # -r default.in # jinja2 + # mkdocs +mergedeep==1.3.4 \ + --hash=sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8 \ + --hash=sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307 + # via + # mkdocs + # mkdocs-get-deps +mkdocs==1.6.1 \ + --hash=sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2 \ + --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e + # via + # -r default.in + # mkdocs-material +mkdocs-get-deps==0.2.2 \ + --hash=sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1 \ + --hash=sha256:e7878cbeac04860b8b5e0ca31d3abad3df9411a75a32cde82f8e44b6c16ff650 + # via mkdocs +mkdocs-glightbox==0.5.2 \ + --hash=sha256:23a431ea802b60b1030c73323db2eed6ba859df1a0822ce575afa43e0ea3f47e \ + --hash=sha256:c7622799347c32310878e01ccf14f70648445561010911c80590cec0353370ac + # via -r default.in +mkdocs-material==9.7.5 \ + --hash=sha256:7cf9df2ff121fd098ff6e05c732b0be3699afca9642e2dfe4926c40eb5873eec \ + --hash=sha256:f76bdab532bad1d9c57ca7187b37eccf64dd12e1586909307f8856db3be384ea + # via -r default.in +mkdocs-material-extensions==1.3.1 \ + --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ + --hash=sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31 + # via mkdocs-material moz-l10n[xml]==0.11.2 \ --hash=sha256:04e11f7fc7f1932dbd73a9a50b5e6dfb1767e0d27da2451c5579e9d2593459de \ --hash=sha256:4e06e839c6c75dbad72a13672209f69893f594598887ceb52a5a8a4932b5efc1 @@ -923,60 +1073,79 @@ newrelic==9.6.0 \ --hash=sha256:f346aeb418c9da6cff4382cb4f50d314ae5126a6a6037f01224b0072eb30ff49 \ --hash=sha256:f681c005b1d44ec01b3fe1a7b4ec589572f681f27130ea367155ac0245e133d4 # via -r default.in -numpy==2.1.1 \ - --hash=sha256:046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5 \ - --hash=sha256:0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0 \ - --hash=sha256:0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550 \ - --hash=sha256:13cc11c00000848702322af4de0147ced365c81d66053a67c2e962a485b3717c \ - --hash=sha256:13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7 \ - --hash=sha256:24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2 \ - --hash=sha256:251105b7c42abe40e3a689881e1793370cc9724ad50d64b30b358bbb3a97553b \ - --hash=sha256:2ca4b53e1e0b279142113b8c5eb7d7a877e967c306edc34f3b58e9be12fda8df \ - --hash=sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f \ - --hash=sha256:397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d \ - --hash=sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270 \ - --hash=sha256:50a95ca3560a6058d6ea91d4629a83a897ee27c00630aed9d933dff191f170cd \ - --hash=sha256:52ac2e48f5ad847cd43c4755520a2317f3380213493b9d8a4c5e37f3b87df504 \ - --hash=sha256:53e27293b3a2b661c03f79aa51c3987492bd4641ef933e366e0f9f6c9bf257ec \ - --hash=sha256:57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647 \ - --hash=sha256:5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f \ - --hash=sha256:59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab \ - --hash=sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe \ - --hash=sha256:6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5 \ - --hash=sha256:7be6a07520b88214ea85d8ac8b7d6d8a1839b0b5cb87412ac9f49fa934eb15d5 \ - --hash=sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e \ - --hash=sha256:7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd \ - --hash=sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313 \ - --hash=sha256:8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0 \ - --hash=sha256:910b47a6d0635ec1bd53b88f86120a52bf56dcc27b51f18c7b4a2e2224c29f0f \ - --hash=sha256:913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6 \ - --hash=sha256:920b0911bb2e4414c50e55bd658baeb78281a47feeb064ab40c2b66ecba85553 \ - --hash=sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed \ - --hash=sha256:981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb \ - --hash=sha256:98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e \ - --hash=sha256:99f4a9ee60eed1385a86e82288971a51e71df052ed0b2900ed30bc840c0f2e39 \ - --hash=sha256:9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728 \ - --hash=sha256:ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e \ - --hash=sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a \ - --hash=sha256:b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95 \ - --hash=sha256:b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f \ - --hash=sha256:bab7c09454460a487e631ffc0c42057e3d8f2a9ddccd1e60c7bb8ed774992480 \ - --hash=sha256:c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9 \ - --hash=sha256:caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0 \ - --hash=sha256:cea427d1350f3fd0d2818ce7350095c1a2ee33e30961d2f0fef48576ddbbe90f \ - --hash=sha256:d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd \ - --hash=sha256:d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae \ - --hash=sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201 \ - --hash=sha256:d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136 \ - --hash=sha256:d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf \ - --hash=sha256:e097507396c0be4e547ff15b13dc3866f45f3680f789c1a1301b07dadd3fbc78 \ - --hash=sha256:e30356d530528a42eeba51420ae8bf6c6c09559051887196599d96ee5f536468 \ - --hash=sha256:e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca \ - --hash=sha256:e8dfa9e94fc127c40979c3eacbae1e61fda4fe71d84869cc129e2721973231ef \ - --hash=sha256:f212d4f46b67ff604d11fff7cc62d36b3e8714edf68e44e9760e19be38c03eb0 \ - --hash=sha256:f7506387e191fe8cdb267f912469a3cccc538ab108471291636a96a54e599556 \ - --hash=sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521 \ - --hash=sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b +numpy==2.4.3 \ + --hash=sha256:0200b25c687033316fb39f0ff4e3e690e8957a2c3c8d22499891ec58c37a3eb5 \ + --hash=sha256:0448e7f9caefb34b4b7dd2b77f21e8906e5d6f0365ad525f9f4f530b13df2afc \ + --hash=sha256:0a195f4216be9305a73c0e91c9b026a35f2161237cf1c6de9b681637772ea657 \ + --hash=sha256:0a60e17a14d640f49146cb38e3f105f571318db7826d9b6fef7e4dce758faecd \ + --hash=sha256:120df8c0a81ebbf5b9020c91439fccd85f5e018a927a39f624845be194a2be02 \ + --hash=sha256:148d59127ac95979d6f07e4d460f934ebdd6eed641db9c0db6c73026f2b2101a \ + --hash=sha256:1ec84fd7c8e652b0f4aaaf2e6e9cc8eaa9b1b80a537e06b2e3a2fb176eedcb26 \ + --hash=sha256:22654fe6be0e5206f553a9250762c653d3698e46686eee53b399ab90da59bd92 \ + --hash=sha256:22c31dc07025123aedf7f2db9e91783df13f1776dc52c6b22c620870dc0fab22 \ + --hash=sha256:23b46bb6d8ecb68b58c09944483c135ae5f0e9b8d8858ece5e4ead783771d2a9 \ + --hash=sha256:2629289168f4897a3c4e23dc98d6f1731f0fc0fe52fb9db19f974041e4cc12b9 \ + --hash=sha256:26952e18d82a1dbbc2f008d402021baa8d6fc8e84347a2072a25e08b46d698b9 \ + --hash=sha256:29363fbfa6f8ee855d7569c96ce524845e3d726d6c19b29eceec7dd555dab152 \ + --hash=sha256:297837823f5bc572c5f9379b0c9f3a3365f08492cbdc33bcc3af174372ebb168 \ + --hash=sha256:2abad5c7fef172b3377502bde47892439bae394a71bc329f31df0fd829b41a9e \ + --hash=sha256:2b3f8d2c4589b1a2028d2a770b0fc4d1f332fb5e01521f4de3199a896d158ddd \ + --hash=sha256:2ddb7919366ee468342b91dea2352824c25b55814a987847b6c52003a7c97f15 \ + --hash=sha256:2e03c05abaee1f672e9d67bc858f300b5ccba1c21397211e8d77d98350972093 \ + --hash=sha256:32e3bef222ad6b052280311d1d60db8e259e4947052c3ae7dd6817451fc8a4c5 \ + --hash=sha256:33b3bf58ee84b172c067f56aeadc7ee9ab6de69c5e800ab5b10295d54c581adb \ + --hash=sha256:45f003dbdffb997a03da2d1d0cb41fbd24a87507fb41605c0420a3db5bd4667b \ + --hash=sha256:483a201202b73495f00dbc83796c6ae63137a9bdade074f7648b3e32613412dd \ + --hash=sha256:48da3a4ee1336454b07497ff7ec83903efa5505792c4e6d9bf83d99dc07a1e18 \ + --hash=sha256:4b42639cdde6d24e732ff823a3fa5b701d8acad89c4142bc1d0bd6dc85200ba5 \ + --hash=sha256:4bd4741a6a676770e0e97fe9ab2e51de01183df3dcbcec591d26d331a40de950 \ + --hash=sha256:4d382735cecd7bcf090172489a525cd7d4087bc331f7df9f60ddc9a296cf208e \ + --hash=sha256:52077feedeff7c76ed7c9f1a0428558e50825347b7545bbb8523da2cd55c547a \ + --hash=sha256:54f29b877279d51e210e0c80709ee14ccbbad647810e8f3d375561c45ef613dd \ + --hash=sha256:5884ce5c7acfae1e4e1b6fde43797d10aa506074d25b531b4f54bde33c0c31d4 \ + --hash=sha256:5e10da9e93247e554bb1d22f8edc51847ddd7dde52d85ce31024c1b4312bfba0 \ + --hash=sha256:61b0cbabbb6126c8df63b9a3a0c4b1f44ebca5e12ff6997b80fcf267fb3150ef \ + --hash=sha256:65f3c2455188f09678355f5cae1f959a06b778bc66d535da07bf2ef20cd319d5 \ + --hash=sha256:679f2a834bae9020f81534671c56fd0cc76dd7e5182f57131478e23d0dc59e24 \ + --hash=sha256:6bd06731541f89cdc01b261ba2c9e037f1543df7472517836b78dfb15bd6e476 \ + --hash=sha256:715de7f82e192e8cae5a507a347d97ad17598f8e026152ca97233e3666daaa71 \ + --hash=sha256:737f630a337364665aba3b5a77e56a68cc42d350edd010c345d65a3efa3addcc \ + --hash=sha256:7395e69ff32526710748f92cd8c9849b361830968ea3e24a676f272653e8983e \ + --hash=sha256:76dbb9d4e43c16cf9aa711fcd8de1e2eeb27539dcefb60a1d5e9f12fae1d1ed8 \ + --hash=sha256:76f0f283506c28b12bba319c0fab98217e9f9b54e6160e9c79e9f7348ba32e9c \ + --hash=sha256:77e76d932c49a75617c6d13464e41203cd410956614d0a0e999b25e9e8d27eec \ + --hash=sha256:7aa4e54f6469300ebca1d9eb80acd5253cdfa36f2c03d79a35883687da430875 \ + --hash=sha256:7d1ce23cce91fcea443320a9d0ece9b9305d4368875bab09538f7a5b4131938a \ + --hash=sha256:7e58765ad74dcebd3ef0208a5078fba32dc8ec3578fe84a604432950cd043d79 \ + --hash=sha256:7f3408ff897f8ab07a07fbe2823d7aee6ff644c097cc1f90382511fe982f647f \ + --hash=sha256:8ba7b51e71c05aa1f9bc3641463cd82308eab40ce0d5c7e1fd4038cbf9938147 \ + --hash=sha256:8e236dbda4e1d319d681afcbb136c0c4a8e0f1a5c58ceec2adebb547357fe857 \ + --hash=sha256:94f3c4a151a2e529adf49c1d54f0f57ff8f9b233ee4d44af623a81553ab86368 \ + --hash=sha256:9684823a78a6cd6ad7511fc5e25b07947d1d5b5e2812c93fe99d7d4195130720 \ + --hash=sha256:a016db5c5dba78fa8fe9f5d80d6708f9c42ab087a739803c0ac83a43d686a470 \ + --hash=sha256:a111698b4a3f8dcbe54c64a7708f049355abd603e619013c346553c1fd4ca90b \ + --hash=sha256:a1988292870c7cb9d0ebb4cc96b4d447513a9644801de54606dc7aabf2b7d920 \ + --hash=sha256:a315e5234d88067f2d97e1f2ef670a7569df445d55400f1e33d117418d008d52 \ + --hash=sha256:a749547700de0a20a6718293396ec237bb38218049cfce788e08fcb716e8cf73 \ + --hash=sha256:a97cbf7e905c435865c2d939af3d93f99d18eaaa3cabe4256f4304fb51604349 \ + --hash=sha256:abdce0f71dcb4a00e4e77f3faf05e4616ceccfe72ccaa07f47ee79cda3b7b0f4 \ + --hash=sha256:b346845443716c8e542d54112966383b448f4a3ba5c66409771b8c0889485dd3 \ + --hash=sha256:b44fd60341c4d9783039598efadd03617fa28d041fc37d22b62d08f2027fa0e7 \ + --hash=sha256:bb2e3cf95854233799013779216c57e153c1ee67a0bf92138acca0e429aefaee \ + --hash=sha256:bc71942c789ef415a37f0d4eab90341425a00d538cd0642445d30b41023d3395 \ + --hash=sha256:be3b8487d725a77acccc9924f65fd8bce9af7fac8c9820df1049424a2115af6c \ + --hash=sha256:c59020932feb24ed49ffd03704fbab89f22aa9c0d4b180ff45542fe8918f5611 \ + --hash=sha256:c6b124bfcafb9e8d3ed09130dbee44848c20b3e758b6bbf006e641778927c028 \ + --hash=sha256:c9619741e9da2059cd9c3f206110b97583c7152c1dc9f8aafd4beb450ac1c89d \ + --hash=sha256:cd32fbacb9fd1bf041bf8e89e4576b6f00b895f06d00914820ae06a616bdfef7 \ + --hash=sha256:d1b90d840b25874cf5cd20c219af10bac3667db3876d9a495609273ebe679070 \ + --hash=sha256:d213c7e6e8d211888cc359bab7199670a00f5b82c0978b9d1c75baf1eddbeac0 \ + --hash=sha256:d5f51900414fc9204a0e0da158ba2ac52b75656e7dce7e77fb9f84bfa343b4cc \ + --hash=sha256:d71e379452a2f670ccb689ec801b1218cd3983e253105d6e83780967e899d687 \ + --hash=sha256:d84f0f881cb2225c2dfd7f78a10a5645d487a496c6668d6cc39f0f114164f3d0 \ + --hash=sha256:decb0eb8a53c3b009b0962378065589685d66b23467ef5dac16cbe818afde27f \ + --hash=sha256:e7dd01a46700b1967487141a66ac1a3cf0dd8ebf1f08db37d46389401512ca97 \ + --hash=sha256:eb610595dd91560905c132c709412b512135a60f1851ccbd2c959e136431ff67 # via sacrebleu oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ @@ -986,25 +1155,40 @@ openai==1.99.9 \ --hash=sha256:9dbcdb425553bae1ac5d947147bebbd630d91bbfc7788394d4c4f3a35682ab3a \ --hash=sha256:f2082d155b1ad22e83247c3de3958eb4255b20ccf4a1de2e6681b6957b554e92 # via -r default.in -packaging==24.1 \ - --hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \ - --hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124 - # via gunicorn +packaging==26.0 \ + --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \ + --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529 + # via + # gunicorn + # kombu + # mkdocs +paginate==0.5.7 \ + --hash=sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945 \ + --hash=sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591 + # via mkdocs-material +pathspec==1.0.4 \ + --hash=sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645 \ + --hash=sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723 + # via mkdocs +platformdirs==4.9.4 \ + --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \ + --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868 + # via mkdocs-get-deps polib==1.2.0 \ --hash=sha256:1c77ee1b81feb31df9bca258cbc58db1bbb32d10214b173882452c73af06d62d \ --hash=sha256:f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b # via moz-l10n -portalocker==2.10.1 \ - --hash=sha256:53a5984ebc86a025552264b459b46a2086e269b21823cb572f8f28ee759e45bf \ - --hash=sha256:ef1bf844e878ab08aee7e40184156e1151f228f103aa5c6bd0724cc330960f8f +portalocker==3.2.0 \ + --hash=sha256:1f3002956a54a8c3730586c5c77bf18fae4149e07eaf1c29fc3faf4d5a3f89ac \ + --hash=sha256:3cdc5f565312224bc570c49337bd21428bba0ef363bbcf58b9ef4a9f11779968 # via sacrebleu -prompt-toolkit==3.0.48 \ - --hash=sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90 \ - --hash=sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e +prompt-toolkit==3.0.52 \ + --hash=sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855 \ + --hash=sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955 # via click-repl -proto-plus==1.24.0 \ - --hash=sha256:30b72a5ecafe4406b0d339db35b56c4059064e69227b8c3bda7462397f966445 \ - --hash=sha256:402576830425e5f6ce4c2a6702400ac79897dab0b4343821aa5188b0fab81a12 +proto-plus==1.27.1 \ + --hash=sha256:912a7460446625b792f6448bade9e55cd4e41e6ac10e27009ef71a7f317fa147 \ + --hash=sha256:e4643061f3a4d0de092d62aa4ad09fa4756b2cbb89d4627f3985018216f9fefc # via # google-api-core # google-cloud-translate @@ -1045,121 +1229,159 @@ psycopg2==2.9.6 \ pyasn1==0.6.3 \ --hash=sha256:697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf \ --hash=sha256:a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.4.1 \ - --hash=sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd \ - --hash=sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c + # via pyasn1-modules +pyasn1-modules==0.4.2 \ + --hash=sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a \ + --hash=sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6 # via google-auth -pycparser==2.23 \ - --hash=sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2 \ - --hash=sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934 +pycparser==3.0 \ + --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ + --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via cffi -pydantic==2.9.2 \ - --hash=sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f \ - --hash=sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12 +pydantic==2.12.5 \ + --hash=sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49 \ + --hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d # via openai -pydantic-core==2.23.4 \ - --hash=sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36 \ - --hash=sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05 \ - --hash=sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071 \ - --hash=sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327 \ - --hash=sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c \ - --hash=sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36 \ - --hash=sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29 \ - --hash=sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744 \ - --hash=sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d \ - --hash=sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec \ - --hash=sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e \ - --hash=sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e \ - --hash=sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577 \ - --hash=sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232 \ - --hash=sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863 \ - --hash=sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6 \ - --hash=sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368 \ - --hash=sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480 \ - --hash=sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2 \ - --hash=sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2 \ - --hash=sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6 \ - --hash=sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769 \ - --hash=sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d \ - --hash=sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2 \ - --hash=sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84 \ - --hash=sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166 \ - --hash=sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271 \ - --hash=sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5 \ - --hash=sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb \ - --hash=sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13 \ - --hash=sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323 \ - --hash=sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556 \ - --hash=sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665 \ - --hash=sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef \ - --hash=sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb \ - --hash=sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119 \ - --hash=sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126 \ - --hash=sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510 \ - --hash=sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b \ - --hash=sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87 \ - --hash=sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f \ - --hash=sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc \ - --hash=sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8 \ - --hash=sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21 \ - --hash=sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f \ - --hash=sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6 \ - --hash=sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658 \ - --hash=sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b \ - --hash=sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3 \ - --hash=sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb \ - --hash=sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59 \ - --hash=sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24 \ - --hash=sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9 \ - --hash=sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3 \ - --hash=sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd \ - --hash=sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753 \ - --hash=sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55 \ - --hash=sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad \ - --hash=sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a \ - --hash=sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605 \ - --hash=sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e \ - --hash=sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b \ - --hash=sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433 \ - --hash=sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8 \ - --hash=sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07 \ - --hash=sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728 \ - --hash=sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0 \ - --hash=sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327 \ - --hash=sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555 \ - --hash=sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64 \ - --hash=sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6 \ - --hash=sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea \ - --hash=sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b \ - --hash=sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df \ - --hash=sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e \ - --hash=sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd \ - --hash=sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068 \ - --hash=sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3 \ - --hash=sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040 \ - --hash=sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12 \ - --hash=sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916 \ - --hash=sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f \ - --hash=sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f \ - --hash=sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801 \ - --hash=sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231 \ - --hash=sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5 \ - --hash=sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8 \ - --hash=sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee \ - --hash=sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607 +pydantic-core==2.41.5 \ + --hash=sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90 \ + --hash=sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740 \ + --hash=sha256:0384e2e1021894b1ff5a786dbf94771e2986ebe2869533874d7e43bc79c6f504 \ + --hash=sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84 \ + --hash=sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33 \ + --hash=sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c \ + --hash=sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0 \ + --hash=sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e \ + --hash=sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0 \ + --hash=sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a \ + --hash=sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34 \ + --hash=sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2 \ + --hash=sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3 \ + --hash=sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815 \ + --hash=sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14 \ + --hash=sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba \ + --hash=sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375 \ + --hash=sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf \ + --hash=sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963 \ + --hash=sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1 \ + --hash=sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808 \ + --hash=sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553 \ + --hash=sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1 \ + --hash=sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2 \ + --hash=sha256:299e0a22e7ae2b85c1a57f104538b2656e8ab1873511fd718a1c1c6f149b77b5 \ + --hash=sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470 \ + --hash=sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2 \ + --hash=sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b \ + --hash=sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660 \ + --hash=sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c \ + --hash=sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093 \ + --hash=sha256:346285d28e4c8017da95144c7f3acd42740d637ff41946af5ce6e5e420502dd5 \ + --hash=sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594 \ + --hash=sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008 \ + --hash=sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a \ + --hash=sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a \ + --hash=sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd \ + --hash=sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284 \ + --hash=sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586 \ + --hash=sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869 \ + --hash=sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294 \ + --hash=sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f \ + --hash=sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66 \ + --hash=sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51 \ + --hash=sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc \ + --hash=sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97 \ + --hash=sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a \ + --hash=sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d \ + --hash=sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9 \ + --hash=sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c \ + --hash=sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07 \ + --hash=sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36 \ + --hash=sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e \ + --hash=sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05 \ + --hash=sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e \ + --hash=sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941 \ + --hash=sha256:707625ef0983fcfb461acfaf14de2067c5942c6bb0f3b4c99158bed6fedd3cf3 \ + --hash=sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612 \ + --hash=sha256:753e230374206729bf0a807954bcc6c150d3743928a73faffee51ac6557a03c3 \ + --hash=sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b \ + --hash=sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe \ + --hash=sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146 \ + --hash=sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11 \ + --hash=sha256:7b93a4d08587e2b7e7882de461e82b6ed76d9026ce91ca7915e740ecc7855f60 \ + --hash=sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd \ + --hash=sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b \ + --hash=sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c \ + --hash=sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a \ + --hash=sha256:873e0d5b4fb9b89ef7c2d2a963ea7d02879d9da0da8d9d4933dee8ee86a8b460 \ + --hash=sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1 \ + --hash=sha256:8bfeaf8735be79f225f3fefab7f941c712aaca36f1128c9d7e2352ee1aa87bdf \ + --hash=sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf \ + --hash=sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858 \ + --hash=sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2 \ + --hash=sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9 \ + --hash=sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2 \ + --hash=sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3 \ + --hash=sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6 \ + --hash=sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770 \ + --hash=sha256:a75dafbf87d6276ddc5b2bf6fae5254e3d0876b626eb24969a574fff9149ee5d \ + --hash=sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc \ + --hash=sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23 \ + --hash=sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26 \ + --hash=sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa \ + --hash=sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8 \ + --hash=sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d \ + --hash=sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3 \ + --hash=sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d \ + --hash=sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034 \ + --hash=sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9 \ + --hash=sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1 \ + --hash=sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56 \ + --hash=sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b \ + --hash=sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c \ + --hash=sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a \ + --hash=sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e \ + --hash=sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9 \ + --hash=sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5 \ + --hash=sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a \ + --hash=sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556 \ + --hash=sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e \ + --hash=sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49 \ + --hash=sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2 \ + --hash=sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9 \ + --hash=sha256:e4f4a984405e91527a0d62649ee21138f8e3d0ef103be488c1dc11a80d7f184b \ + --hash=sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc \ + --hash=sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb \ + --hash=sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0 \ + --hash=sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8 \ + --hash=sha256:e8465ab91a4bd96d36dde3263f06caa6a8a6019e4113f24dc753d79a8b3a3f82 \ + --hash=sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69 \ + --hash=sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b \ + --hash=sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c \ + --hash=sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75 \ + --hash=sha256:f0cd744688278965817fd0839c4a4116add48d23890d468bc436f78beb28abf5 \ + --hash=sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f \ + --hash=sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad \ + --hash=sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b \ + --hash=sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7 \ + --hash=sha256:f41eb9797986d6ebac5e8edff36d5cef9de40def462311b3eb3eeded1431e425 \ + --hash=sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52 # via pydantic +pygments==2.19.2 \ + --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ + --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b + # via mkdocs-material pyjwt[crypto]==2.12.0 \ --hash=sha256:2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02 \ --hash=sha256:9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e # via # -r default.in # django-allauth -python-binary-memcached==0.31.2 \ - --hash=sha256:290f70451e277df6a39aa0eea3cb6ca2eefcf5d601f957cf2ec1d353d7676c03 \ - --hash=sha256:e5b93d54429e835cab7d5b33988649f9748344aa49adaed8eed94b37e714d562 +pymdown-extensions==10.21 \ + --hash=sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5 \ + --hash=sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f + # via mkdocs-material +python-binary-memcached==0.31.4 \ + --hash=sha256:f183bc67fd218c01ebc0bf4e9929a210dd5aa07fda53d5b627d0b443b76e2818 \ + --hash=sha256:f7a74f212567e37520dd550f0d088b99bb4bae01034d3078135bfc16285960f9 # via django-bmemcached python-dateutil==2.9.0 \ --hash=sha256:78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709 \ @@ -1167,69 +1389,99 @@ python-dateutil==2.9.0 \ # via # -r default.in # celery + # ghp-import python-dotenv==1.0.1 \ --hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \ --hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a # via -r default.in -pytz==2024.2 \ - --hash=sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a \ - --hash=sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725 +pytz==2026.1.post1 \ + --hash=sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1 \ + --hash=sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a # via django-notifications-hq -pyyaml==6.0.2 \ - --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ - --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ - --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ - --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ - --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ - --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ - --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ - --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ - --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ - --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ - --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ - --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ - --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ - --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ - --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ - --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ - --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ - --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ - --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ - --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ - --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ - --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ - --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ - --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ - --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ - --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ - --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ - --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ - --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ - --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ - --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ - --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ - --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ - --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ - --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ - --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ - --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ - --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ - --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ - --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ - --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ - --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ - --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ - --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ - --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ - --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ - --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ - --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ - --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ - --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ - --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ - --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ - --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 - # via drf-spectacular +pyyaml==6.0.3 \ + --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ + --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \ + --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \ + --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \ + --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \ + --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \ + --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \ + --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \ + --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \ + --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \ + --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \ + --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \ + --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \ + --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \ + --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \ + --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \ + --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \ + --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \ + --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \ + --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \ + --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \ + --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \ + --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \ + --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \ + --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \ + --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \ + --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \ + --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \ + --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \ + --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \ + --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \ + --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \ + --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \ + --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \ + --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \ + --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \ + --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \ + --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \ + --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \ + --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \ + --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \ + --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \ + --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \ + --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \ + --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \ + --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \ + --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \ + --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \ + --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \ + --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \ + --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \ + --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \ + --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \ + --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \ + --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \ + --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \ + --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \ + --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \ + --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \ + --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \ + --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \ + --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \ + --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \ + --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \ + --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \ + --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \ + --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \ + --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \ + --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \ + --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \ + --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \ + --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \ + --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 + # via + # drf-spectacular + # mkdocs + # mkdocs-get-deps + # pymdown-extensions + # pyyaml-env-tag +pyyaml-env-tag==1.1 \ + --hash=sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04 \ + --hash=sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff + # via mkdocs rapidfuzz==3.9.7 \ --hash=sha256:03126f9a040ff21d2a110610bfd6b93b79377ce8b4121edcb791d61b7df6eec5 \ --hash=sha256:048d55d36c02c6685a2b2741688503c3d15149694506655b6169dcfd3b6c2585 \ @@ -1340,107 +1592,127 @@ rapidfuzz==3.9.7 \ --hash=sha256:fcf79b686962d7bec458a0babc904cb4fa319808805e036b9d5a531ee6b9b835 \ --hash=sha256:fde81b1da9a947f931711febe2e2bee694e891f6d3e6aa6bc02c1884702aea19 # via -r default.in -referencing==0.36.2 \ - --hash=sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa \ - --hash=sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0 +referencing==0.37.0 \ + --hash=sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231 \ + --hash=sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8 # via # jsonschema # jsonschema-specifications -regex==2024.9.11 \ - --hash=sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623 \ - --hash=sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199 \ - --hash=sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664 \ - --hash=sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f \ - --hash=sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca \ - --hash=sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066 \ - --hash=sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca \ - --hash=sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39 \ - --hash=sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d \ - --hash=sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6 \ - --hash=sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35 \ - --hash=sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408 \ - --hash=sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5 \ - --hash=sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a \ - --hash=sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9 \ - --hash=sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92 \ - --hash=sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766 \ - --hash=sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168 \ - --hash=sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca \ - --hash=sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508 \ - --hash=sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df \ - --hash=sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf \ - --hash=sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b \ - --hash=sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4 \ - --hash=sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268 \ - --hash=sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6 \ - --hash=sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c \ - --hash=sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62 \ - --hash=sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231 \ - --hash=sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36 \ - --hash=sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba \ - --hash=sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4 \ - --hash=sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e \ - --hash=sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822 \ - --hash=sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4 \ - --hash=sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d \ - --hash=sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71 \ - --hash=sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50 \ - --hash=sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d \ - --hash=sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad \ - --hash=sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8 \ - --hash=sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8 \ - --hash=sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8 \ - --hash=sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd \ - --hash=sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16 \ - --hash=sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664 \ - --hash=sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a \ - --hash=sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f \ - --hash=sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd \ - --hash=sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a \ - --hash=sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9 \ - --hash=sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199 \ - --hash=sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d \ - --hash=sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963 \ - --hash=sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009 \ - --hash=sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a \ - --hash=sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679 \ - --hash=sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96 \ - --hash=sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42 \ - --hash=sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8 \ - --hash=sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e \ - --hash=sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7 \ - --hash=sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8 \ - --hash=sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802 \ - --hash=sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366 \ - --hash=sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137 \ - --hash=sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784 \ - --hash=sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29 \ - --hash=sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3 \ - --hash=sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771 \ - --hash=sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60 \ - --hash=sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a \ - --hash=sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4 \ - --hash=sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0 \ - --hash=sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84 \ - --hash=sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd \ - --hash=sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1 \ - --hash=sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776 \ - --hash=sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142 \ - --hash=sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89 \ - --hash=sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c \ - --hash=sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8 \ - --hash=sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35 \ - --hash=sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a \ - --hash=sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86 \ - --hash=sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9 \ - --hash=sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64 \ - --hash=sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554 \ - --hash=sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85 \ - --hash=sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb \ - --hash=sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0 \ - --hash=sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8 \ - --hash=sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb \ - --hash=sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919 +regex==2026.2.28 \ + --hash=sha256:00945d007fd74a9084d2ab79b695b595c6b7ba3698972fadd43e23230c6979c1 \ + --hash=sha256:00f2b8d9615aa165fdff0a13f1a92049bfad555ee91e20d246a51aa0b556c60a \ + --hash=sha256:01d65fd24206c8e1e97e2e31b286c59009636c022eb5d003f52760b0f42155d4 \ + --hash=sha256:02473c954af35dd2defeb07e44182f5705b30ea3f351a7cbffa9177beb14da5d \ + --hash=sha256:03a83cc26aa2acda6b8b9dfe748cf9e84cbd390c424a1de34fdcef58961a297a \ + --hash=sha256:09500be324f49b470d907b3ef8af9afe857f5cca486f853853f7945ddbf75911 \ + --hash=sha256:0b1d2b07614d95fa2bf8a63fd1e98bd8fa2b4848dc91b1efbc8ba219fdd73952 \ + --hash=sha256:0d25a10811de831c2baa6aef3c0be91622f44dd8d31dd12e69f6398efb15e48b \ + --hash=sha256:0d5bef2031cbf38757a0b0bc4298bb4824b6332d28edc16b39247228fbdbad97 \ + --hash=sha256:10d28e19bd4888e4abf43bd3925f3c134c52fdf7259219003588a42e24c2aa25 \ + --hash=sha256:180e08a435a0319e6a4821c3468da18dc7001987e1c17ae1335488dfe7518dd8 \ + --hash=sha256:195237dc327858a7721bf8b0bbbef797554bc13563c3591e91cd0767bacbe359 \ + --hash=sha256:19a9c9e0a8f24f39d575a6a854d516b48ffe4cbdcb9de55cb0570a032556ecff \ + --hash=sha256:1c2c95e1a2b0f89d01e821ff4de1be4b5d73d1f4b0bf679fa27c1ad8d2327f1a \ + --hash=sha256:1d367257cd86c1cbb97ea94e77b373a0bbc2224976e247f173d19e8f18b4afa7 \ + --hash=sha256:1e496956106fd59ba6322a8ea17141a27c5040e5ee8f9433ae92d4e5204462a0 \ + --hash=sha256:1f8b17be5c27a684ea6759983c13506bd77bfc7c0347dff41b18ce5ddd2ee09a \ + --hash=sha256:2234059cfe33d9813a3677ef7667999caea9eeaa83fef98eb6ce15c6cf9e0215 \ + --hash=sha256:25b6eb660c5cf4b8c3407a1ed462abba26a926cc9965e164268a3267bcc06a43 \ + --hash=sha256:2954379dd20752e82d22accf3ff465311cbb2bac6c1f92c4afd400e1757f7451 \ + --hash=sha256:2afa673660928d0b63d84353c6c08a8a476ddfc4a47e11742949d182e6863ce8 \ + --hash=sha256:2b2b23587b26496ff5fd40df4278becdf386813ec00dc3533fa43a4cf0e2ad3c \ + --hash=sha256:2fb950ac1d88e6b6a9414381f403797b236f9fa17e1eee07683af72b1634207b \ + --hash=sha256:3935174fa4d9f70525a4367aaff3cb8bc0548129d114260c29d9dfa4a5b41692 \ + --hash=sha256:39bb5727650b9a0275c6a6690f9bb3fe693a7e6cc5c3155b1240aedf8926423e \ + --hash=sha256:3b24bd7e9d85dc7c6a8bd2aa14ecd234274a0248335a02adeb25448aecdd420d \ + --hash=sha256:4390c365fd2d45278f45afd4673cb90f7285f5701607e3ad4274df08e36140ae \ + --hash=sha256:481df4623fa4969c8b11f3433ed7d5e3dc9cec0f008356c3212b3933fb77e3d8 \ + --hash=sha256:4f5c0b182ad4269e7381b7c27fdb0408399881f7a92a4624fd5487f2971dfc11 \ + --hash=sha256:50c2fc924749543e0eacc93ada6aeeb3ea5f6715825624baa0dccaec771668ae \ + --hash=sha256:511f7419f7afab475fd4d639d4aedfc54205bcb0800066753ef68a59f0f330b5 \ + --hash=sha256:516604edd17b1c2c3e579cf4e9b25a53bf8fa6e7cedddf1127804d3e0140ca64 \ + --hash=sha256:52b017b35ac2214d0db5f4f90e303634dc44e4aba4bd6235a27f97ecbe5b0472 \ + --hash=sha256:5a932ea8ad5d0430351ff9c76c8db34db0d9f53c1d78f06022a21f4e290c5c18 \ + --hash=sha256:5cdcc17d935c8f9d3f4db5c2ebe2640c332e3822ad5d23c2f8e0228e6947943a \ + --hash=sha256:5d10303dd18cedfd4d095543998404df656088240bcfd3cd20a8f95b861f74bd \ + --hash=sha256:5e68192bb3a1d6fb2836da24aa494e413ea65853a21505e142e5b1064a595f3d \ + --hash=sha256:64e7c6ad614573e0640f271e811a408d79a9e1fe62a46adb602f598df42a818d \ + --hash=sha256:6591f281cb44dc13de9585b552cec6fc6cf47fb2fe7a48892295ee9bc4a612f9 \ + --hash=sha256:69fc560ccbf08a09dc9b52ab69cacfae51e0ed80dc5693078bdc97db2f91ae96 \ + --hash=sha256:6d63a07e5ec8ce7184452cb00c41c37b49e67dc4f73b2955b5b8e782ea970784 \ + --hash=sha256:6db7bfae0f8a2793ff1f7021468ea55e2699d0790eb58ee6ab36ae43aa00bc5b \ + --hash=sha256:71a911098be38c859ceb3f9a9ce43f4ed9f4c6720ad8684a066ea246b76ad9ff \ + --hash=sha256:73cdcdbba8028167ea81490c7f45280113e41db2c7afb65a276f4711fa3bcbff \ + --hash=sha256:78454178c7df31372ea737996fb7f36b3c2c92cccc641d251e072478afb4babc \ + --hash=sha256:7900157786428a79615a8264dac1f12c9b02957c473c8110c6b1f972dcecaddf \ + --hash=sha256:7ab218076eb0944549e7fe74cf0e2b83a82edb27e81cc87411f76240865e04d5 \ + --hash=sha256:7c1b34dfa72f826f535b20712afa9bb3ba580020e834f3c69866c5bddbf10098 \ + --hash=sha256:851fa70df44325e1e4cdb79c5e676e91a78147b1b543db2aec8734d2add30ec2 \ + --hash=sha256:864cdd1a2ef5716b0ab468af40139e62ede1b3a53386b375ec0786bb6783fc05 \ + --hash=sha256:8710d61737b0c0ce6836b1da7109f20d495e49b3809f30e27e9560be67a257bf \ + --hash=sha256:9036b400b20e4858d56d117108d7813ed07bb7803e3eed766675862131135ca6 \ + --hash=sha256:9185cc63359862a6e80fe97f696e04b0ad9a11c4ac0a4a927f979f611bfe3768 \ + --hash=sha256:948c12ef30ecedb128903c2c2678b339746eb7c689c5c21957c4a23950c96d15 \ + --hash=sha256:94d63db12e45a9b9f064bfe4800cefefc7e5f182052e4c1b774d46a40ab1d9bb \ + --hash=sha256:96f6269a2882fbb0ee76967116b83679dc628e68eaea44e90884b8d53d833881 \ + --hash=sha256:97054c55db06ab020342cc0d35d6f62a465fa7662871190175f1ad6c655c028f \ + --hash=sha256:98adf340100cbe6fbaf8e6dc75e28f2c191b1be50ffefe292fb0e6f6eefdb0d8 \ + --hash=sha256:99985a2c277dcb9ccb63f937451af5d65177af1efdeb8173ac55b61095a0a05c \ + --hash=sha256:9b65d33a17101569f86d9c5966a8b1d7fbf8afdda5a8aa219301b0a80f58cf7d \ + --hash=sha256:9dd450db6458387167e033cfa80887a34c99c81d26da1bf8b0b41bf8c9cac88e \ + --hash=sha256:a25c7701e4f7a70021db9aaf4a4a0a67033c6318752146e03d1b94d32006217e \ + --hash=sha256:a448af01e3d8031c89c5d902040b124a5e921a25c4e5e07a861ca591ce429341 \ + --hash=sha256:a5dac14d0872eeb35260a8e30bac07ddf22adc1e3a0635b52b02e180d17c9c7e \ + --hash=sha256:a729e47d418ea11d03469f321aaf67cdee8954cde3ff2cf8403ab87951ad10f2 \ + --hash=sha256:aaffaecffcd2479ce87aa1e74076c221700b7c804e48e98e62500ee748f0f550 \ + --hash=sha256:b059e71ec363968671693a78c5053bd9cb2fe410f9b8e4657e88377ebd603a2e \ + --hash=sha256:b387a0d092dac157fb026d737dde35ff3e49ef27f285343e7c6401851239df27 \ + --hash=sha256:b389c61aa28a79c2e0527ac36da579869c2e235a5b208a12c5b5318cda2501d8 \ + --hash=sha256:b42f7466e32bf15a961cf09f35fa6323cc72e64d3d2c990b10de1274a5da0a59 \ + --hash=sha256:b49eb78048c6354f49e91e4b77da21257fecb92256b6d599ae44403cab30b05b \ + --hash=sha256:b5acd4b6a95f37c3c3828e5d053a7d4edaedb85de551db0153754924cb7c83e3 \ + --hash=sha256:b8b3f1be1738feadc69f62daa250c933e85c6f34fa378f54a7ff43807c1b9117 \ + --hash=sha256:b8cf76f1a29f0e99dcfd7aef1551a9827588aae5a737fe31442021165f1920dc \ + --hash=sha256:ba55c50f408fb5c346a3a02d2ce0ebc839784e24f7c9684fde328ff063c3cdea \ + --hash=sha256:bba2b18d70eeb7b79950f12f633beeecd923f7c9ad6f6bae28e59b4cb3ab046b \ + --hash=sha256:bbb882061f742eb5d46f2f1bd5304055be0a66b783576de3d7eef1bed4778a6e \ + --hash=sha256:bcb399ed84eabf4282587ba151f2732ad8168e66f1d3f85b1d038868fe547703 \ + --hash=sha256:bd477d5f79920338107f04aa645f094032d9e3030cc55be581df3d1ef61aa318 \ + --hash=sha256:bec23c11cbbf09a4df32fe50d57cbdd777bc442269b6e39a1775654f1c95dee2 \ + --hash=sha256:c0b5ccbb8ffb433939d248707d4a8b31993cb76ab1a0187ca886bf50e96df952 \ + --hash=sha256:c15af43c72a7fb0c97cbc66fa36a43546eddc5c06a662b64a0cbf30d6ac40944 \ + --hash=sha256:c7815afb0ca45456613fdaf60ea9c993715511c8d53a83bc468305cbc0ee23c7 \ + --hash=sha256:cb3b1db8ff6c7b8bf838ab05583ea15230cb2f678e569ab0e3a24d1e8320940b \ + --hash=sha256:d0b02e8b7e5874b48ae0f077ecca61c1a6a9f9895e9c6dfb191b55b242862033 \ + --hash=sha256:d6b08a06976ff4fb0d83077022fde3eca06c55432bb997d8c0495b9a4e9872f4 \ + --hash=sha256:d6cfe798d8da41bb1862ed6e0cba14003d387c3c0c4a5d45591076ae9f0ce2f8 \ + --hash=sha256:d8511a01d0e4ee1992eb3ba19e09bc1866fe03f05129c3aec3fdc4cbc77aad3f \ + --hash=sha256:dc8ed8c3f41c27acb83f7b6a9eb727a73fc6663441890c5cb3426a5f6a91ce7d \ + --hash=sha256:dd8847c4978bc3c7e6c826fb745f5570e518b8459ac2892151ce6627c7bc00d5 \ + --hash=sha256:de0cf053139f96219ccfabb4a8dd2d217c8c82cb206c91d9f109f3f552d6b43d \ + --hash=sha256:dee50f1be42222f89767b64b283283ef963189da0dda4a515aa54a5563c62dec \ + --hash=sha256:e1e7b24cb3ae9953a560c563045d1ba56ee4749fbd05cf21ba571069bd7be81b \ + --hash=sha256:e59bc8f30414d283ae8ee1617b13d8112e7135cb92830f0ec3688cb29152585a \ + --hash=sha256:e61eea47230eba62a31f3e8a0e3164d0f37ef9f40529fb2c79361bc6b53d2a92 \ + --hash=sha256:e621fb7c8dc147419b28e1702f58a0177ff8308a76fa295c71f3e7827849f5d9 \ + --hash=sha256:e71dcecaa113eebcc96622c17692672c2d104b1d71ddf7adeda90da7ddeb26fc \ + --hash=sha256:e7ce83654d1ab701cb619285a18a8e5a889c1216d746ddc710c914ca5fd71022 \ + --hash=sha256:e8c8cb2deba42f5ec1ede46374e990f8adc5e6456a57ac1a261b19be6f28e4e6 \ + --hash=sha256:ec0c608b7a7465ffadb344ed7c987ff2f11ee03f6a130b569aa74d8a70e8333c \ + --hash=sha256:ec6f5674c5dc836994f50f1186dd1fafde4be0666aae201ae2fcc3d29d8adf27 \ + --hash=sha256:edb1b1b3a5576c56f08ac46f108c40333f222ebfd5cf63afdfa3aab0791ebe5b \ + --hash=sha256:ef77bdde9c9eba3f7fa5b58084b29bbcc74bcf55fdbeaa67c102a35b5bd7e7cc \ + --hash=sha256:f2791948f7c70bb9335a9102df45e93d428f4b8128020d85920223925d73b9e1 \ + --hash=sha256:f467cb602f03fbd1ab1908f68b53c649ce393fde056628dc8c7e634dab6bfc07 \ + --hash=sha256:f8ed9a5d4612df9d4de15878f0bc6aa7a268afbe5af21a3fdd97fa19516e978c \ + --hash=sha256:fa539be029844c0ce1114762d2952ab6cfdd7c7c9bd72e0db26b94c3c36dcc5a \ + --hash=sha256:fb1c4ff62277d87a7335f2c1ea4e0387b8f2b3ad88a64efd9943906aafad4f33 \ + --hash=sha256:fb4db2f17e6484904f986c5a657cec85574c76b5c5e61c7aae9ffa1bc6224f95 \ + --hash=sha256:fb66e5245db9652abd7196ace599b04d9c0e4aa7c8f0e2803938377835780081 \ + --hash=sha256:fc48c500838be6882b32748f60a15229d2dea96e59ef341eaa96ec83538f498d \ + --hash=sha256:fcf26c3c6d0da98fada8ae4ef0aa1c3405a431c0a77eb17306d38a89b02adcd7 \ + --hash=sha256:fd0ce43e71d825b7c0661f9c54d4d74bd97c56c3fd102a8985bcfea48236bacb \ + --hash=sha256:fd63453f10d29097cc3dc62d070746523973fb5aa1c66d25f8558bebd47fed61 # via # sacrebleu # sacremoses @@ -1450,158 +1722,126 @@ requests==2.33.0 \ # via # django-allauth # google-api-core -rpds-py==0.26.0 \ - --hash=sha256:0919f38f5542c0a87e7b4afcafab6fd2c15386632d249e9a087498571250abe3 \ - --hash=sha256:093d63b4b0f52d98ebae33b8c50900d3d67e0666094b1be7a12fffd7f65de74b \ - --hash=sha256:0a0b60701f2300c81b2ac88a5fb893ccfa408e1c4a555a77f908a2596eb875a5 \ - --hash=sha256:0c71c2f6bf36e61ee5c47b2b9b5d47e4d1baad6426bfed9eea3e858fc6ee8806 \ - --hash=sha256:0dc23bbb3e06ec1ea72d515fb572c1fea59695aefbffb106501138762e1e915e \ - --hash=sha256:0dfa6115c6def37905344d56fb54c03afc49104e2ca473d5dedec0f6606913b4 \ - --hash=sha256:12bff2ad9447188377f1b2794772f91fe68bb4bbfa5a39d7941fbebdbf8c500f \ - --hash=sha256:1533b7eb683fb5f38c1d68a3c78f5fdd8f1412fa6b9bf03b40f450785a0ab915 \ - --hash=sha256:1766b5724c3f779317d5321664a343c07773c8c5fd1532e4039e6cc7d1a815be \ - --hash=sha256:181ef9b6bbf9845a264f9aa45c31836e9f3c1f13be565d0d010e964c661d1e2b \ - --hash=sha256:183f857a53bcf4b1b42ef0f57ca553ab56bdd170e49d8091e96c51c3d69ca696 \ - --hash=sha256:191aa858f7d4902e975d4cf2f2d9243816c91e9605070aeb09c0a800d187e323 \ - --hash=sha256:1a8b0dd8648709b62d9372fc00a57466f5fdeefed666afe3fea5a6c9539a0331 \ - --hash=sha256:1c962145c7473723df9722ba4c058de12eb5ebedcb4e27e7d902920aa3831ee8 \ - --hash=sha256:1cc81d14ddfa53d7f3906694d35d54d9d3f850ef8e4e99ee68bc0d1e5fed9a9c \ - --hash=sha256:1d815d48b1804ed7867b539236b6dd62997850ca1c91cad187f2ddb1b7bbef19 \ - --hash=sha256:1e6c15d2080a63aaed876e228efe4f814bc7889c63b1e112ad46fdc8b368b9e1 \ - --hash=sha256:20ab1ae4fa534f73647aad289003f1104092890849e0266271351922ed5574f8 \ - --hash=sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0 \ - --hash=sha256:238e8c8610cb7c29460e37184f6799547f7e09e6a9bdbdab4e8edb90986a2318 \ - --hash=sha256:24a4146ccb15be237fdef10f331c568e1b0e505f8c8c9ed5d67759dac58ac246 \ - --hash=sha256:257d011919f133a4746958257f2c75238e3ff54255acd5e3e11f3ff41fd14256 \ - --hash=sha256:2a343f91b17097c546b93f7999976fd6c9d5900617aa848c81d794e062ab302b \ - --hash=sha256:2abe21d8ba64cded53a2a677e149ceb76dcf44284202d737178afe7ba540c1eb \ - --hash=sha256:2c03c9b0c64afd0320ae57de4c982801271c0c211aa2d37f3003ff5feb75bb04 \ - --hash=sha256:2c9c1b92b774b2e68d11193dc39620d62fd8ab33f0a3c77ecdabe19c179cdbc1 \ - --hash=sha256:3021933c2cb7def39d927b9862292e0f4c75a13d7de70eb0ab06efed4c508c19 \ - --hash=sha256:3100b3090269f3a7ea727b06a6080d4eb7439dca4c0e91a07c5d133bb1727ea7 \ - --hash=sha256:313cfcd6af1a55a286a3c9a25f64af6d0e46cf60bc5798f1db152d97a216ff6f \ - --hash=sha256:35e9a70a0f335371275cdcd08bc5b8051ac494dd58bff3bbfb421038220dc871 \ - --hash=sha256:38721d4c9edd3eb6670437d8d5e2070063f305bfa2d5aa4278c51cedcd508a84 \ - --hash=sha256:390e3170babf42462739a93321e657444f0862c6d722a291accc46f9d21ed04e \ - --hash=sha256:39bfea47c375f379d8e87ab4bb9eb2c836e4f2069f0f65731d85e55d74666387 \ - --hash=sha256:3ac51b65e8dc76cf4949419c54c5528adb24fc721df722fd452e5fbc236f5c40 \ - --hash=sha256:3c0909c5234543ada2515c05dc08595b08d621ba919629e94427e8e03539c958 \ - --hash=sha256:3da5852aad63fa0c6f836f3359647870e21ea96cf433eb393ffa45263a170d44 \ - --hash=sha256:3e1157659470aa42a75448b6e943c895be8c70531c43cb78b9ba990778955582 \ - --hash=sha256:4019a9d473c708cf2f16415688ef0b4639e07abaa569d72f74745bbeffafa2c7 \ - --hash=sha256:43f10b007033f359bc3fa9cd5e6c1e76723f056ffa9a6b5c117cc35720a80292 \ - --hash=sha256:49028aa684c144ea502a8e847d23aed5e4c2ef7cadfa7d5eaafcb40864844b7a \ - --hash=sha256:4916dc96489616a6f9667e7526af8fa693c0fdb4f3acb0e5d9f4400eb06a47ba \ - --hash=sha256:4a59e5bc386de021f56337f757301b337d7ab58baa40174fb150accd480bc953 \ - --hash=sha256:4b1f66eb81eab2e0ff5775a3a312e5e2e16bf758f7b06be82fb0d04078c7ac51 \ - --hash=sha256:4c5fe114a6dd480a510b6d3661d09d67d1622c4bf20660a474507aaee7eeeee9 \ - --hash=sha256:4c70c70f9169692b36307a95f3d8c0a9fcd79f7b4a383aad5eaa0e9718b79b37 \ - --hash=sha256:4d11382bcaf12f80b51d790dee295c56a159633a8e81e6323b16e55d81ae37e9 \ - --hash=sha256:4f01a5d6444a3258b00dc07b6ea4733e26f8072b788bef750baa37b370266137 \ - --hash=sha256:4f789e32fa1fb6a7bf890e0124e7b42d1e60d28ebff57fe806719abb75f0e9a3 \ - --hash=sha256:4feb7511c29f8442cbbc28149a92093d32e815a28aa2c50d333826ad2a20fdf0 \ - --hash=sha256:511d15193cbe013619dd05414c35a7dedf2088fcee93c6bbb7c77859765bd4e8 \ - --hash=sha256:519067e29f67b5c90e64fb1a6b6e9d2ec0ba28705c51956637bac23a2f4ddae1 \ - --hash=sha256:521ccf56f45bb3a791182dc6b88ae5f8fa079dd705ee42138c76deb1238e554e \ - --hash=sha256:529c8156d7506fba5740e05da8795688f87119cce330c244519cf706a4a3d618 \ - --hash=sha256:582462833ba7cee52e968b0341b85e392ae53d44c0f9af6a5927c80e539a8b67 \ - --hash=sha256:5963b72ccd199ade6ee493723d18a3f21ba7d5b957017607f815788cef50eaf1 \ - --hash=sha256:59b2093224a18c6508d95cfdeba8db9cbfd6f3494e94793b58972933fcee4c6d \ - --hash=sha256:5afaddaa8e8c7f1f7b4c5c725c0070b6eed0228f705b90a1732a48e84350f4e9 \ - --hash=sha256:5afea17ab3a126006dc2f293b14ffc7ef3c85336cf451564a0515ed7648033da \ - --hash=sha256:5e09330b21d98adc8ccb2dbb9fc6cb434e8908d4c119aeaa772cb1caab5440a0 \ - --hash=sha256:6188de70e190847bb6db3dc3981cbadff87d27d6fe9b4f0e18726d55795cee9b \ - --hash=sha256:68ffcf982715f5b5b7686bdd349ff75d422e8f22551000c24b30eaa1b7f7ae84 \ - --hash=sha256:696764a5be111b036256c0b18cd29783fab22154690fc698062fc1b0084b511d \ - --hash=sha256:69a607203441e07e9a8a529cff1d5b73f6a160f22db1097211e6212a68567d11 \ - --hash=sha256:69b312fecc1d017b5327afa81d4da1480f51c68810963a7336d92203dbb3d4f1 \ - --hash=sha256:69f0c0a3df7fd3a7eec50a00396104bb9a843ea6d45fcc31c2d5243446ffd7a7 \ - --hash=sha256:6a1cb5d6ce81379401bbb7f6dbe3d56de537fb8235979843f0d53bc2e9815a79 \ - --hash=sha256:6d3498ad0df07d81112aa6ec6c95a7e7b1ae00929fb73e7ebee0f3faaeabad2f \ - --hash=sha256:72a8d9564a717ee291f554eeb4bfeafe2309d5ec0aa6c475170bdab0f9ee8e88 \ - --hash=sha256:777c62479d12395bfb932944e61e915741e364c843afc3196b694db3d669fcd0 \ - --hash=sha256:77a7711fa562ba2da1aa757e11024ad6d93bad6ad7ede5afb9af144623e5f76a \ - --hash=sha256:79061ba1a11b6a12743a2b0f72a46aa2758613d454aa6ba4f5a265cc48850158 \ - --hash=sha256:7a48af25d9b3c15684059d0d1fc0bc30e8eee5ca521030e2bffddcab5be40226 \ - --hash=sha256:7ab504c4d654e4a29558eaa5bb8cea5fdc1703ea60a8099ffd9c758472cf913f \ - --hash=sha256:7bdb17009696214c3b66bb3590c6d62e14ac5935e53e929bcdbc5a495987a84f \ - --hash=sha256:7da84c2c74c0f5bc97d853d9e17bb83e2dcafcff0dc48286916001cc114379a1 \ - --hash=sha256:801a71f70f9813e82d2513c9a96532551fce1e278ec0c64610992c49c04c2dad \ - --hash=sha256:824e6d3503ab990d7090768e4dfd9e840837bae057f212ff9f4f05ec6d1975e7 \ - --hash=sha256:82b165b07f416bdccf5c84546a484cc8f15137ca38325403864bfdf2b5b72f6a \ - --hash=sha256:84cfbd4d4d2cdeb2be61a057a258d26b22877266dd905809e94172dff01a42ae \ - --hash=sha256:84d142d2d6cf9b31c12aa4878d82ed3b2324226270b89b676ac62ccd7df52d08 \ - --hash=sha256:87a5531de9f71aceb8af041d72fc4cab4943648d91875ed56d2e629bef6d4c03 \ - --hash=sha256:893b022bfbdf26d7bedb083efeea624e8550ca6eb98bf7fea30211ce95b9201a \ - --hash=sha256:894514d47e012e794f1350f076c427d2347ebf82f9b958d554d12819849a369d \ - --hash=sha256:8a7898b6ca3b7d6659e55cdac825a2e58c638cbf335cde41f4619e290dd0ad11 \ - --hash=sha256:8ad7fd2258228bf288f2331f0a6148ad0186b2e3643055ed0db30990e59817a6 \ - --hash=sha256:92c8db839367ef16a662478f0a2fe13e15f2227da3c1430a782ad0f6ee009ec9 \ - --hash=sha256:941c1cfdf4799d623cf3aa1d326a6b4fdb7a5799ee2687f3516738216d2262fb \ - --hash=sha256:9bc596b30f86dc6f0929499c9e574601679d0341a0108c25b9b358a042f51bca \ - --hash=sha256:9c55b0a669976cf258afd718de3d9ad1b7d1fe0a91cd1ab36f38b03d4d4aeaaf \ - --hash=sha256:9da4e873860ad5bab3291438525cae80169daecbfafe5657f7f5fb4d6b3f96b9 \ - --hash=sha256:9def736773fd56b305c0eef698be5192c77bfa30d55a0e5885f80126c4831a15 \ - --hash=sha256:9dfbe56b299cf5875b68eb6f0ebaadc9cac520a1989cac0db0765abfb3709c19 \ - --hash=sha256:9e851920caab2dbcae311fd28f4313c6953993893eb5c1bb367ec69d9a39e7ed \ - --hash=sha256:9e8cb77286025bdb21be2941d64ac6ca016130bfdcd228739e8ab137eb4406ed \ - --hash=sha256:a547e21c5610b7e9093d870be50682a6a6cf180d6da0f42c47c306073bfdbbf6 \ - --hash=sha256:a90a13408a7a856b87be8a9f008fff53c5080eea4e4180f6c2e546e4a972fb5d \ - --hash=sha256:a9a63785467b2d73635957d32a4f6e73d5e4df497a16a6392fa066b753e87387 \ - --hash=sha256:aa81873e2c8c5aa616ab8e017a481a96742fdf9313c40f14338ca7dbf50cb55f \ - --hash=sha256:ac64f4b2bdb4ea622175c9ab7cf09444e412e22c0e02e906978b3b488af5fde8 \ - --hash=sha256:aea1f9741b603a8d8fedb0ed5502c2bc0accbc51f43e2ad1337fe7259c2b77a5 \ - --hash=sha256:b0afb8cdd034150d4d9f53926226ed27ad15b7f465e93d7468caaf5eafae0d37 \ - --hash=sha256:b37a04d9f52cb76b6b78f35109b513f6519efb481d8ca4c321f6a3b9580b3f45 \ - --hash=sha256:b5f7a446ddaf6ca0fad9a5535b56fbfc29998bf0e0b450d174bbec0d600e1d72 \ - --hash=sha256:b6d9e5a2ed9c4988c8f9b28b3bc0e3e5b1aaa10c28d210a594ff3a8c02742daf \ - --hash=sha256:b6e2c12160c72aeda9d1283e612f68804621f448145a210f1bf1d79151c47090 \ - --hash=sha256:b818a592bd69bfe437ee8368603d4a2d928c34cffcdf77c2e761a759ffd17d20 \ - --hash=sha256:c1851f429b822831bd2edcbe0cfd12ee9ea77868f8d3daf267b189371671c80e \ - --hash=sha256:c1fb0cda2abcc0ac62f64e2ea4b4e64c57dfd6b885e693095460c61bde7bb18e \ - --hash=sha256:c5ab0ee51f560d179b057555b4f601b7df909ed31312d301b99f8b9fc6028284 \ - --hash=sha256:c70d9ec912802ecfd6cd390dadb34a9578b04f9bcb8e863d0a7598ba5e9e7ccc \ - --hash=sha256:c741107203954f6fc34d3066d213d0a0c40f7bb5aafd698fb39888af277c70d8 \ - --hash=sha256:ca3f059f4ba485d90c8dc75cb5ca897e15325e4e609812ce57f896607c1c0867 \ - --hash=sha256:caf51943715b12af827696ec395bfa68f090a4c1a1d2509eb4e2cb69abbbdb33 \ - --hash=sha256:cb28c1f569f8d33b2b5dcd05d0e6ef7005d8639c54c2f0be824f05aedf715255 \ - --hash=sha256:cdad4ea3b4513b475e027be79e5a0ceac8ee1c113a1a11e5edc3c30c29f964d8 \ - --hash=sha256:cf47cfdabc2194a669dcf7a8dbba62e37a04c5041d2125fae0233b720da6f05c \ - --hash=sha256:d04cab0a54b9dba4d278fe955a1390da3cf71f57feb78ddc7cb67cbe0bd30323 \ - --hash=sha256:d422b945683e409000c888e384546dbab9009bb92f7c0b456e217988cf316107 \ - --hash=sha256:d80bf832ac7b1920ee29a426cdca335f96a2b5caa839811803e999b41ba9030d \ - --hash=sha256:da619979df60a940cd434084355c514c25cf8eb4cf9a508510682f6c851a4f7a \ - --hash=sha256:dafd4c44b74aa4bed4b250f1aed165b8ef5de743bcca3b88fc9619b6087093d2 \ - --hash=sha256:dca83c498b4650a91efcf7b88d669b170256bf8017a5db6f3e06c2bf031f57e0 \ - --hash=sha256:de2713f48c1ad57f89ac25b3cb7daed2156d8e822cf0eca9b96a6f990718cc41 \ - --hash=sha256:de4ed93a8c91debfd5a047be327b7cc8b0cc6afe32a716bbbc4aedca9e2a83af \ - --hash=sha256:df52098cde6d5e02fa75c1f6244f07971773adb4a26625edd5c18fee906fa84d \ - --hash=sha256:dfbf280da5f876d0b00c81f26bedce274e72a678c28845453885a9b3c22ae632 \ - --hash=sha256:e3730a48e5622e598293eee0762b09cff34dd3f271530f47b0894891281f051d \ - --hash=sha256:e5162afc9e0d1f9cae3b577d9c29ddbab3505ab39012cb794d94a005825bde21 \ - --hash=sha256:e5d524d68a474a9688336045bbf76cb0def88549c1b2ad9dbfec1fb7cfbe9170 \ - --hash=sha256:e99685fc95d386da368013e7fb4269dd39c30d99f812a8372d62f244f662709c \ - --hash=sha256:ea89a2458a1a75f87caabefe789c87539ea4e43b40f18cff526052e35bbb4fdf \ - --hash=sha256:ec671691e72dff75817386aa02d81e708b5a7ec0dec6669ec05213ff6b77e1bd \ - --hash=sha256:eed5ac260dd545fbc20da5f4f15e7efe36a55e0e7cf706e4ec005b491a9546a0 \ - --hash=sha256:f14440b9573a6f76b4ee4770c13f0b5921f71dde3b6fcb8dabbefd13b7fe05d7 \ - --hash=sha256:f405c93675d8d4c5ac87364bb38d06c988e11028a64b52a47158a355079661f3 \ - --hash=sha256:f53ec51f9d24e9638a40cabb95078ade8c99251945dad8d57bf4aabe86ecee35 \ - --hash=sha256:f61a9326f80ca59214d1cceb0a09bb2ece5b2563d4e0cd37bfd5515c28510674 \ - --hash=sha256:f7bf2496fa563c046d05e4d232d7b7fd61346e2402052064b773e5c378bf6f73 \ - --hash=sha256:fbaa70553ca116c77717f513e08815aec458e6b69a028d4028d403b3bc84ff37 \ - --hash=sha256:fc3e55a7db08dc9a6ed5fb7103019d2c1a38a349ac41901f9f66d7f95750942f \ - --hash=sha256:fc921b96fa95a097add244da36a1d9e4f3039160d1d30f1b35837bf108c21136 \ - --hash=sha256:fd0641abca296bc1a00183fe44f7fced8807ed49d501f188faa642d0e4975b83 \ - --hash=sha256:feac1045b3327a45944e7dcbeb57530339f6b17baff154df51ef8b0da34c8c12 \ - --hash=sha256:ff110acded3c22c033e637dd8896e411c7d3a11289b2edf041f86663dbc791e9 + # mkdocs-material +rpds-py==0.30.0 \ + --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ + --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ + --hash=sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3 \ + --hash=sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7 \ + --hash=sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65 \ + --hash=sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4 \ + --hash=sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169 \ + --hash=sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf \ + --hash=sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4 \ + --hash=sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2 \ + --hash=sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c \ + --hash=sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4 \ + --hash=sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3 \ + --hash=sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6 \ + --hash=sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7 \ + --hash=sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89 \ + --hash=sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85 \ + --hash=sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6 \ + --hash=sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa \ + --hash=sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb \ + --hash=sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6 \ + --hash=sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87 \ + --hash=sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856 \ + --hash=sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4 \ + --hash=sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f \ + --hash=sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53 \ + --hash=sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229 \ + --hash=sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad \ + --hash=sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23 \ + --hash=sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db \ + --hash=sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038 \ + --hash=sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27 \ + --hash=sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00 \ + --hash=sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18 \ + --hash=sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083 \ + --hash=sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c \ + --hash=sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738 \ + --hash=sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898 \ + --hash=sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e \ + --hash=sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7 \ + --hash=sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08 \ + --hash=sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6 \ + --hash=sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551 \ + --hash=sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e \ + --hash=sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288 \ + --hash=sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df \ + --hash=sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0 \ + --hash=sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2 \ + --hash=sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05 \ + --hash=sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0 \ + --hash=sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464 \ + --hash=sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5 \ + --hash=sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404 \ + --hash=sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7 \ + --hash=sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139 \ + --hash=sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394 \ + --hash=sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb \ + --hash=sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15 \ + --hash=sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff \ + --hash=sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed \ + --hash=sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6 \ + --hash=sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e \ + --hash=sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95 \ + --hash=sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d \ + --hash=sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950 \ + --hash=sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3 \ + --hash=sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5 \ + --hash=sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97 \ + --hash=sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e \ + --hash=sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e \ + --hash=sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b \ + --hash=sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd \ + --hash=sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad \ + --hash=sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8 \ + --hash=sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425 \ + --hash=sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221 \ + --hash=sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d \ + --hash=sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825 \ + --hash=sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51 \ + --hash=sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e \ + --hash=sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f \ + --hash=sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8 \ + --hash=sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f \ + --hash=sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d \ + --hash=sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07 \ + --hash=sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877 \ + --hash=sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31 \ + --hash=sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58 \ + --hash=sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94 \ + --hash=sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28 \ + --hash=sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000 \ + --hash=sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1 \ + --hash=sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1 \ + --hash=sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7 \ + --hash=sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7 \ + --hash=sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40 \ + --hash=sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d \ + --hash=sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0 \ + --hash=sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84 \ + --hash=sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f \ + --hash=sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a \ + --hash=sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7 \ + --hash=sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419 \ + --hash=sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8 \ + --hash=sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a \ + --hash=sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9 \ + --hash=sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be \ + --hash=sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed \ + --hash=sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a \ + --hash=sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d \ + --hash=sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324 \ + --hash=sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f \ + --hash=sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2 \ + --hash=sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f \ + --hash=sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5 # via # jsonschema # referencing -rsa==4.9 \ - --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ - --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via google-auth sacrebleu==2.4.3 \ --hash=sha256:a976fd6998d8ced267a722120ec7fc47083c8e9745d8808ccee6424464a0aa31 \ --hash=sha256:e734b1e0baeaea6ade0fefc9d23bac3df50bf15775d8b78edc108db63654192a @@ -1610,9 +1850,75 @@ sacremoses==0.1.1 \ --hash=sha256:31e04c98b169bfd902144824d191825cd69220cdb4ae4bcf1ec58a7db5587b1a \ --hash=sha256:b6fd5d3a766b02154ed80b962ddca91e1fd25629c0978c7efba21ebccf663934 # via -r default.in -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 +selectolax==0.4.7 \ + --hash=sha256:00953c3c6a7e4dfd990a5651315b713d50131706c239c1f1c5b6d4a75a11975a \ + --hash=sha256:0e221e7403005e343c636ed51846ae20e52b81be24becaf9195308d24114c061 \ + --hash=sha256:17f7ba5a21714d450b4eea0451608a36be2bba8d327990ddbda812eb3f36fa51 \ + --hash=sha256:1a7016db9c55ae541f1669a3433aee03fc0a1111d70c84aa5636a5a6b9499854 \ + --hash=sha256:1d72c67fb56639433f130b2e44a783f4d0efb862a285413b9fc8789a851f5383 \ + --hash=sha256:26e24768ce86d376b50d311c1bdf54c5445139ac90cc5d955a7703402d2e2f7c \ + --hash=sha256:2a0e9b1e3b1d091a0133b44b3967c79db8de73d99efe38af85bab615775aa4e8 \ + --hash=sha256:2c275e5e5579e308a09ae77922c468a8ca63666534d00a42ebfd912f3c842a2e \ + --hash=sha256:2cf39b5200ec82ae75b35549ee71fb5b344ba0420b1a8a49f3fb38d14082c463 \ + --hash=sha256:2f19bb52c27f526d89383ec178daa31fcb93dbec90106bfb3e2d43c2970f3b72 \ + --hash=sha256:3799b39d60266f7d4c48f322fac8eaecc6dec38f4342d6d3b17085d11815bcb4 \ + --hash=sha256:3840b79f5f39744b95dc80e3b428cf4e49b86d8c6e9cbb3e7df3e702bf240cce \ + --hash=sha256:3968f272b0aa93927b3ba17104c0d2980286fcb0def44babb87dab3673936377 \ + --hash=sha256:3e3dac7de3864701a18cd6c4806d07944a5a48d1db2f107a0ce8531f72881462 \ + --hash=sha256:434ee92be15534c10db308ae9ab3f93a224e2a60f1c0ab9453a97ee09b056ca7 \ + --hash=sha256:48d95f3bbe37caa6fe341992ac7b4fb5b7efad1ed8bd939af67b6be0ccd5634e \ + --hash=sha256:4cc5c190277ff34f2e42be473ec5947ad5d87c07a072e25d0701c03b7ceb5b12 \ + --hash=sha256:50a668ede8d3f2dbe872c2713a28348e9e3e154a49118b898568243bfb356c96 \ + --hash=sha256:5a613760d2b890d7befd2e585a37dd0bdae9e23eee0cacb15d24adb83232c94e \ + --hash=sha256:5a6735711f492532a83df6d501e8647feea48d893e703f0354e61ba868757f9b \ + --hash=sha256:5fb1c01d39570f0990e8e2a2037e3f0cf8d193da6ea9ca1936d5818d5cf6a260 \ + --hash=sha256:64de787422ad342b35fef86e488d8b76d70fc3266cb74dfc154d4a89291c62b1 \ + --hash=sha256:7134b119c011e18d1e914d5adbb8f953e391649b4af734fcec61dad691a16f59 \ + --hash=sha256:771710fe52b082804d959944e3e0fe67f094ea1bf81669b4f654b957a7490d95 \ + --hash=sha256:7cbd1143920b7bd1b80e092d5a16c97fdc741b0325a42862f20edcb55ab493e8 \ + --hash=sha256:85e4ada1c4a3a69e503c9866e74bce24e716bd0ada060c7c2b56677d4f073928 \ + --hash=sha256:87bd651514491b9bdd8254e71295e43b790575021b87ebc2351ed6a2aeaa9313 \ + --hash=sha256:88344c8764f3a2fbcae2fd2353201c330920943c2da34a16e9b063f918deb7d6 \ + --hash=sha256:8ca0af7156315d9193fac699e8e4c3281ea6dccc6262eed33b32001a633e57a9 \ + --hash=sha256:8e7f847b38195c45f6f6c966df5d8600ab9d522df632d61b28db2edd92deeb3c \ + --hash=sha256:8edbec5ad8a51cb60e6761231d88d34ed3a8158db3ae1f448aede2d146111d0f \ + --hash=sha256:8fa541a520cc6213d754ec747ebbff12fdcc5b9f6bb7615784486e18697209fb \ + --hash=sha256:90fc1146b9130a4891f3fc1f414113ccbee419e84c7f1c5948071f88e46ef16c \ + --hash=sha256:98007b5882c968f5f33f9e01d088fbd796aa7debcbbadb68e95c130a7cecfd19 \ + --hash=sha256:9bddcca1fd74a7a92d53f13116b244fbd4dce84ac0dde60b6ee722212840fe2f \ + --hash=sha256:9c70be8f4154a80b8d435bcc3217c04a82f928849fa2f6acd554d24c5b911db6 \ + --hash=sha256:9f29ad4506fe84152391998ae5b05aaae80d237795567009a518496d0daf4908 \ + --hash=sha256:a151972637887614dad8ea77bd36ea992fef1fb42cf246be60fe2aff83080537 \ + --hash=sha256:a231801ae248bdb511417af568f2890768c486f6f5dde4251c6e7eadea637103 \ + --hash=sha256:a4782cc1e162ca422a325302cdad344cd853cfde19004b870e5b6c3df651abab \ + --hash=sha256:ab50b89f3d9b791696bc04eb2761c617f6c5979d57cde1ae93373a9d42d3a6ae \ + --hash=sha256:ad71d3b31ceb49820787d19d983e2851835ad03bbfd302c6e243a97215e36557 \ + --hash=sha256:bcf6e535cb2b2c0e5b35eb0d5bbe6d17f8d2cf96108addda1491cda083b798d7 \ + --hash=sha256:c0d6a2ad265b95a9c1abef15fedcfebf3d6ec250520b1b64a3d2887dcee17ec6 \ + --hash=sha256:c74313af027e989f3b8432c8da6511a34fffd7b3f2fec3cb7019ab32e6e11973 \ + --hash=sha256:d322e725e0c575cacc8ba2f0041fb8405dc3932bff9073a563f568c6ef3a217b \ + --hash=sha256:d3da9e1609cefc9bb403f62c2b03d2f5622cbe3057c2f06e308a29fad8ae5654 \ + --hash=sha256:d9591ec48af16003a79db89f070688fe0fb68d2c16ac6b479b0ee8b78eb4e486 \ + --hash=sha256:da9afa778ebce19c48de1e6fe5ff5bf7c719cd7f9cd14e5d530bd00ec15b149f \ + --hash=sha256:df8a8db519484c868839f1d36be720feeb228c8f75cf7b745e325db183b319c6 \ + --hash=sha256:e475e009e9f2df91e3971d89aa889072219bfee8fcf4b6c36db859a4301982cd \ + --hash=sha256:e6b8d0f7cbdc6ca5cbf52dbd37f70c170184040499ac59a23409724724276784 \ + --hash=sha256:e9d46ffaded9c3dd09371174f4302314851bacb7e0ff1a370f609b3aaa93431a \ + --hash=sha256:ea46dbb3592ec0aa78662ecdcac8c083313dafbc6bd8277620b8301db658d638 \ + --hash=sha256:eaf2e15076fa7e2e5fe7c3b5a88e54b14bbd49a53da983534f6cb448f3f0e300 \ + --hash=sha256:eb2757147ba48c2ac75ad79ad47e4b4d9e7ddb08ac614b90347cdff6b98c860b \ + --hash=sha256:eb6faf15e6cc6a7c61c04e15c3490e3f6693c98f732e531941687093de36db81 \ + --hash=sha256:ed00a4244c52f96f610a164b87e807b49fcd06bb045fe9f9fb0ca2ed8b973a13 \ + --hash=sha256:f222827fef20c142131f1948bc08ebf1c9f3294c79bca8fa9c0a71e234be7b2f \ + --hash=sha256:f815a0bd233ca188b117006c6ca7540031f259a8332592b276e802d24fed44bf \ + --hash=sha256:fb8f169511f037b662dac1a0e27cff30f4317f9aa30af2e37c8a37c3ca8c7e3c \ + --hash=sha256:fc504cad873bc4e95fca9141008ccf0d5e44350dfe450b71ccee86bd0b7b0572 \ + --hash=sha256:fdc5ec34ccce3a691e1664a14bf0f40ad6a41117e5de88e85d8ac8e68a7ea8bd \ + --hash=sha256:feaea6ac95da2fa137abad3c1ae13596bffed44c8e2bfa7802f89a37a1e5e39a + # via mkdocs-glightbox +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via # bleach # compare-locales @@ -1622,33 +1928,30 @@ six==1.16.0 \ sniffio==1.3.1 \ --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc - # via - # anyio - # httpx - # openai -soupsieve==2.6 \ - --hash=sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb \ - --hash=sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9 + # via openai +soupsieve==2.8.3 \ + --hash=sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349 \ + --hash=sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95 # via beautifulsoup4 -sqlparse==0.5.4 \ - --hash=sha256:4396a7d3cf1cd679c1be976cf3dc6e0a51d0111e87787e7a8d780e7d5a998f9e \ - --hash=sha256:99a9f0314977b76d776a0fcb8554de91b9bb8a18560631d6bc48721d07023dcb +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e # via django swapper==1.4.0 \ --hash=sha256:57b8378aad234242542fe32dc6e8cff0ed24b63493d20b3c88ee01f894b9345e \ --hash=sha256:9e083af114ee0593241a7b877e3e0e7d3a580454f5d59016c667a5563306f8fe # via django-notifications-hq -tabulate==0.9.0 \ - --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ - --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f +tabulate==0.10.0 \ + --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ + --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 # via sacrebleu toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via compare-locales -tqdm==4.66.5 \ - --hash=sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd \ - --hash=sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad +tqdm==4.67.3 \ + --hash=sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb \ + --hash=sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf # via # openai # sacremoses @@ -1656,25 +1959,32 @@ translate-toolkit==3.19.3 \ --hash=sha256:a12120f7567e338ac9f3cebc8506e142c9783e182628ebd08303903e1ad54da6 \ --hash=sha256:d5133e3c16d241e0828f0f5822103588e199108db5887f65425ae7bc17228b73 # via -r default.in -typing-extensions==4.12.2 \ - --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ - --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 +typing-extensions==4.15.0 \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via + # anyio # dj-database-url # fluent-syntax + # grpcio # openai # pydantic # pydantic-core # referencing -tzdata==2024.2 \ - --hash=sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc \ - --hash=sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd + # typing-inspection +typing-inspection==0.4.2 \ + --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ + --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 + # via pydantic +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # celery # kombu -uhashring==2.3 \ - --hash=sha256:7ee8a25ca495a97effad10bd563c83b4054a6d7606d9530757049a04edab9297 \ - --hash=sha256:9f76187e8d8e82f6e5519c995eef1f1bf44d4a5e0fc4fdd1219a044b10040612 +uhashring==2.4 \ + --hash=sha256:0d6cae4ac3205ef039860b0befd6bc762f1686a276805bf1b998c8657124df62 \ + --hash=sha256:8ab30868f4ac079d2a8c58c43c35a294339efef7b069d260428617da48e5f020 # via python-binary-memcached unicode-segmentation-rs==0.2.1 \ --hash=sha256:0e6ee10a2c7ee76a81b9aef2a13cbd199b3613adc5e7f865b1a9d212d3928f1b \ @@ -1725,9 +2035,9 @@ uritemplate==4.2.0 \ --hash=sha256:480c2ed180878955863323eea31b0ede668795de182617fef9c6ca09e6ec9d0e \ --hash=sha256:962201ba1c4edcab02e60f9a0d3821e82dfc5d2d6662a21abd533879bdb8a686 # via drf-spectacular -urllib3==2.6.0 \ - --hash=sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f \ - --hash=sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1 +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via requests vine==5.1.0 \ --hash=sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc \ @@ -1736,9 +2046,41 @@ vine==5.1.0 \ # amqp # celery # kombu -wcwidth==0.2.13 \ - --hash=sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 \ - --hash=sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5 +watchdog==6.0.0 \ + --hash=sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a \ + --hash=sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2 \ + --hash=sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f \ + --hash=sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c \ + --hash=sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c \ + --hash=sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c \ + --hash=sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0 \ + --hash=sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13 \ + --hash=sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134 \ + --hash=sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa \ + --hash=sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e \ + --hash=sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379 \ + --hash=sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a \ + --hash=sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11 \ + --hash=sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282 \ + --hash=sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b \ + --hash=sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f \ + --hash=sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c \ + --hash=sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112 \ + --hash=sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948 \ + --hash=sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881 \ + --hash=sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860 \ + --hash=sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3 \ + --hash=sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680 \ + --hash=sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26 \ + --hash=sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26 \ + --hash=sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e \ + --hash=sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8 \ + --hash=sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c \ + --hash=sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2 + # via mkdocs +wcwidth==0.6.0 \ + --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ + --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 # via prompt-toolkit webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ diff --git a/requirements/dev.txt b/requirements/dev.txt index 3396ee14e4..0703c76076 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,8 +1,8 @@ # This file was autogenerated by uv via the following command: # uv pip compile --generate-hashes --no-strip-extras dev.in -o dev.txt -asgiref==3.8.1 \ - --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ - --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 +asgiref==3.11.1 \ + --hash=sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce \ + --hash=sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133 # via # -c default.txt # django @@ -70,9 +70,9 @@ mypy-extensions==1.0.0 \ --hash=sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d \ --hash=sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782 # via mypy -sqlparse==0.5.4 \ - --hash=sha256:4396a7d3cf1cd679c1be976cf3dc6e0a51d0111e87787e7a8d780e7d5a998f9e \ - --hash=sha256:99a9f0314977b76d776a0fcb8554de91b9bb8a18560631d6bc48721d07023dcb +sqlparse==0.5.5 \ + --hash=sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba \ + --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e # via # -c default.txt # django @@ -81,9 +81,9 @@ types-pyyaml==6.0.12.20241230 \ --hash=sha256:7f07622dbd34bb9c8b264fe860a17e0efcad00d50b5f27e93984909d9363498c \ --hash=sha256:fa4d32565219b68e6dee5f67534c722e53c00d1cfc09c435ef04d7353e1e96e6 # via django-stubs -typing-extensions==4.12.2 \ - --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ - --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 +typing-extensions==4.15.0 \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # -c default.txt # django-stubs diff --git a/requirements/test.txt b/requirements/test.txt index e1c4b7fe76..c64bf7fe74 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,102 +1,141 @@ # This file was autogenerated by uv via the following command: # uv pip compile --generate-hashes --no-strip-extras test.in -o test.txt -certifi==2024.8.30 \ - --hash=sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 \ - --hash=sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9 +certifi==2026.2.25 \ + --hash=sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa \ + --hash=sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7 # via # -c default.txt # requests -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +charset-normalizer==3.4.6 \ + --hash=sha256:06a7e86163334edfc5d20fe104db92fcd666e5a5df0977cb5680a506fe26cc8e \ + --hash=sha256:0c173ce3a681f309f31b87125fecec7a5d1347261ea11ebbb856fa6006b23c8c \ + --hash=sha256:0e28d62a8fc7a1fa411c43bd65e346f3bce9716dc51b897fbe930c5987b402d5 \ + --hash=sha256:0e901eb1049fdb80f5bd11ed5ea1e498ec423102f7a9b9e4645d5b8204ff2815 \ + --hash=sha256:11afb56037cbc4b1555a34dd69151e8e069bee82e613a73bef6e714ce733585f \ + --hash=sha256:150b8ce8e830eb7ccb029ec9ca36022f756986aaaa7956aad6d9ec90089338c0 \ + --hash=sha256:172985e4ff804a7ad08eebec0a1640ece87ba5041d565fff23c8f99c1f389484 \ + --hash=sha256:197c1a244a274bb016dd8b79204850144ef77fe81c5b797dc389327adb552407 \ + --hash=sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6 \ + --hash=sha256:1cf0a70018692f85172348fe06d3a4b63f94ecb055e13a00c644d368eb82e5b8 \ + --hash=sha256:1ed80ff870ca6de33f4d953fda4d55654b9a2b340ff39ab32fa3adbcd718f264 \ + --hash=sha256:22c6f0c2fbc31e76c3b8a86fba1a56eda6166e238c29cdd3d14befdb4a4e4815 \ + --hash=sha256:231d4da14bcd9301310faf492051bee27df11f2bc7549bc0bb41fef11b82daa2 \ + --hash=sha256:259695e2ccc253feb2a016303543d691825e920917e31f894ca1a687982b1de4 \ + --hash=sha256:2a24157fa36980478dd1770b585c0f30d19e18f4fb0c47c13aa568f871718579 \ + --hash=sha256:2b1a63e8224e401cafe7739f77efd3f9e7f5f2026bda4aead8e59afab537784f \ + --hash=sha256:2bd9d128ef93637a5d7a6af25363cf5dec3fa21cf80e68055aad627f280e8afa \ + --hash=sha256:2e1d8ca8611099001949d1cdfaefc510cf0f212484fe7c565f735b68c78c3c95 \ + --hash=sha256:2ef7fedc7a6ecbe99969cd09632516738a97eeb8bd7258bf8a0f23114c057dab \ + --hash=sha256:2f7fdd9b6e6c529d6a2501a2d36b240109e78a8ceaef5687cfcfa2bbe671d297 \ + --hash=sha256:30f445ae60aad5e1f8bdbb3108e39f6fbc09f4ea16c815c66578878325f8f15a \ + --hash=sha256:31215157227939b4fb3d740cd23fe27be0439afef67b785a1eb78a3ae69cba9e \ + --hash=sha256:34315ff4fc374b285ad7f4a0bf7dcbfe769e1b104230d40f49f700d4ab6bbd84 \ + --hash=sha256:3516bbb8d42169de9e61b8520cbeeeb716f12f4ecfe3fd30a9919aa16c806ca8 \ + --hash=sha256:3778fd7d7cd04ae8f54651f4a7a0bd6e39a0cf20f801720a4c21d80e9b7ad6b0 \ + --hash=sha256:39f5068d35621da2881271e5c3205125cc456f54e9030d3f723288c873a71bf9 \ + --hash=sha256:404a1e552cf5b675a87f0651f8b79f5f1e6fd100ee88dc612f89aa16abd4486f \ + --hash=sha256:419a9d91bd238052642a51938af8ac05da5b3343becde08d5cdeab9046df9ee1 \ + --hash=sha256:423fb7e748a08f854a08a222b983f4df1912b1daedce51a72bd24fe8f26a1843 \ + --hash=sha256:4482481cb0572180b6fd976a4d5c72a30263e98564da68b86ec91f0fe35e8565 \ + --hash=sha256:461598cd852bfa5a61b09cae2b1c02e2efcd166ee5516e243d540ac24bfa68a7 \ + --hash=sha256:47955475ac79cc504ef2704b192364e51d0d473ad452caedd0002605f780101c \ + --hash=sha256:48696db7f18afb80a068821504296eb0787d9ce239b91ca15059d1d3eaacf13b \ + --hash=sha256:4be9f4830ba8741527693848403e2c457c16e499100963ec711b1c6f2049b7c7 \ + --hash=sha256:4d1d02209e06550bdaef34af58e041ad71b88e624f5d825519da3a3308e22687 \ + --hash=sha256:4f41da960b196ea355357285ad1316a00099f22d0929fe168343b99b254729c9 \ + --hash=sha256:517ad0e93394ac532745129ceabdf2696b609ec9f87863d337140317ebce1c14 \ + --hash=sha256:51fb3c322c81d20567019778cb5a4a6f2dc1c200b886bc0d636238e364848c89 \ + --hash=sha256:5273b9f0b5835ff0350c0828faea623c68bfa65b792720c453e22b25cc72930f \ + --hash=sha256:530d548084c4a9f7a16ed4a294d459b4f229db50df689bfe92027452452943a0 \ + --hash=sha256:530e8cebeea0d76bdcf93357aa5e41336f48c3dc709ac52da2bb167c5b8271d9 \ + --hash=sha256:54fae94be3d75f3e573c9a1b5402dc593de19377013c9a0e4285e3d402dd3a2a \ + --hash=sha256:572d7c822caf521f0525ba1bce1a622a0b85cf47ffbdae6c9c19e3b5ac3c4389 \ + --hash=sha256:58c948d0d086229efc484fe2f30c2d382c86720f55cd9bc33591774348ad44e0 \ + --hash=sha256:5d11595abf8dd942a77883a39d81433739b287b6aa71620f15164f8096221b30 \ + --hash=sha256:5f8ddd609f9e1af8c7bd6e2aca279c931aefecd148a14402d4e368f3171769fd \ + --hash=sha256:5feb91325bbceade6afab43eb3b508c63ee53579fe896c77137ded51c6b6958e \ + --hash=sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9 \ + --hash=sha256:613f19aa6e082cf96e17e3ffd89383343d0d589abda756b7764cf78361fd41dc \ + --hash=sha256:659a1e1b500fac8f2779dd9e1570464e012f43e580371470b45277a27baa7532 \ + --hash=sha256:695f5c2823691a25f17bc5d5ffe79fa90972cc34b002ac6c843bb8a1720e950d \ + --hash=sha256:69dd852c2f0ad631b8b60cfbe25a28c0058a894de5abb566619c205ce0550eae \ + --hash=sha256:6cceb5473417d28edd20c6c984ab6fee6c6267d38d906823ebfe20b03d607dc2 \ + --hash=sha256:71be7e0e01753a89cf024abf7ecb6bca2c81738ead80d43004d9b5e3f1244e64 \ + --hash=sha256:74119174722c4349af9708993118581686f343adc1c8c9c007d59be90d077f3f \ + --hash=sha256:74a2e659c7ecbc73562e2a15e05039f1e22c75b7c7618b4b574a3ea9118d1557 \ + --hash=sha256:7504e9b7dc05f99a9bbb4525c67a2c155073b44d720470a148b34166a69c054e \ + --hash=sha256:79090741d842f564b1b2827c0b82d846405b744d31e84f18d7a7b41c20e473ff \ + --hash=sha256:7a6967aaf043bceabab5412ed6bd6bd26603dae84d5cb75bf8d9a74a4959d398 \ + --hash=sha256:7bda6eebafd42133efdca535b04ccb338ab29467b3f7bf79569883676fc628db \ + --hash=sha256:7edbed096e4a4798710ed6bc75dcaa2a21b68b6c356553ac4823c3658d53743a \ + --hash=sha256:7f9019c9cb613f084481bd6a100b12e1547cf2efe362d873c2e31e4035a6fa43 \ + --hash=sha256:802168e03fba8bbc5ce0d866d589e4b1ca751d06edee69f7f3a19c5a9fe6b597 \ + --hash=sha256:80d0a5615143c0b3225e5e3ef22c8d5d51f3f72ce0ea6fb84c943546c7b25b6c \ + --hash=sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e \ + --hash=sha256:836ab36280f21fc1a03c99cd05c6b7af70d2697e374c7af0b61ed271401a72a2 \ + --hash=sha256:8761ac29b6c81574724322a554605608a9960769ea83d2c73e396f3df896ad54 \ + --hash=sha256:87725cfb1a4f1f8c2fc9890ae2f42094120f4b44db9360be5d99a4c6b0e03a9e \ + --hash=sha256:899d28f422116b08be5118ef350c292b36fc15ec2daeb9ea987c89281c7bb5c4 \ + --hash=sha256:8bc5f0687d796c05b1e28ab0d38a50e6309906ee09375dd3aff6a9c09dd6e8f4 \ + --hash=sha256:8bea55c4eef25b0b19a0337dc4e3f9a15b00d569c77211fa8cde38684f234fb7 \ + --hash=sha256:8e5a94886bedca0f9b78fecd6afb6629142fd2605aa70a125d49f4edc6037ee6 \ + --hash=sha256:90ca27cd8da8118b18a52d5f547859cc1f8354a00cd1e8e5120df3e30d6279e5 \ + --hash=sha256:92734d4d8d187a354a556626c221cd1a892a4e0802ccb2af432a1d85ec012194 \ + --hash=sha256:947cf925bc916d90adba35a64c82aace04fa39b46b52d4630ece166655905a69 \ + --hash=sha256:95b52c68d64c1878818687a473a10547b3292e82b6f6fe483808fb1468e2f52f \ + --hash=sha256:97d0235baafca5f2b09cf332cc275f021e694e8362c6bb9c96fc9a0eb74fc316 \ + --hash=sha256:9ca4c0b502ab399ef89248a2c84c54954f77a070f28e546a85e91da627d1301e \ + --hash=sha256:9cc4fc6c196d6a8b76629a70ddfcd4635a6898756e2d9cac5565cf0654605d73 \ + --hash=sha256:9cc6e6d9e571d2f863fa77700701dae73ed5f78881efc8b3f9a4398772ff53e8 \ + --hash=sha256:a056d1ad2633548ca18ffa2f85c202cfb48b68615129143915b8dc72a806a923 \ + --hash=sha256:a26611d9987b230566f24a0a125f17fe0de6a6aff9f25c9f564aaa2721a5fb88 \ + --hash=sha256:a4474d924a47185a06411e0064b803c68be044be2d60e50e8bddcc2649957c1f \ + --hash=sha256:a4ea868bc28109052790eb2b52a9ab33f3aa7adc02f96673526ff47419490e21 \ + --hash=sha256:a9e68c9d88823b274cf1e72f28cb5dc89c990edf430b0bfd3e2fb0785bfeabf4 \ + --hash=sha256:aa9cccf4a44b9b62d8ba8b4dd06c649ba683e4bf04eea606d2e94cfc2d6ff4d6 \ + --hash=sha256:ab30e5e3e706e3063bc6de96b118688cb10396b70bb9864a430f67df98c61ecc \ + --hash=sha256:ac2393c73378fea4e52aa56285a3d64be50f1a12395afef9cce47772f60334c2 \ + --hash=sha256:ad8faf8df23f0378c6d527d8b0b15ea4a2e23c89376877c598c4870d1b2c7866 \ + --hash=sha256:b35b200d6a71b9839a46b9b7fff66b6638bb52fc9658aa58796b0326595d3021 \ + --hash=sha256:b3694e3f87f8ac7ce279d4355645b3c878d24d1424581b46282f24b92f5a4ae2 \ + --hash=sha256:b4ff1d35e8c5bd078be89349b6f3a845128e685e751b6ea1169cf2160b344c4d \ + --hash=sha256:bbc8c8650c6e51041ad1be191742b8b421d05bbd3410f43fa2a00c8db87678e8 \ + --hash=sha256:bc72863f4d9aba2e8fd9085e63548a324ba706d2ea2c83b260da08a59b9482de \ + --hash=sha256:bf625105bb9eef28a56a943fec8c8a98aeb80e7d7db99bd3c388137e6eb2d237 \ + --hash=sha256:c2274ca724536f173122f36c98ce188fd24ce3dad886ec2b7af859518ce008a4 \ + --hash=sha256:c45a03a4c69820a399f1dda9e1d8fbf3562eda46e7720458180302021b08f778 \ + --hash=sha256:c8ae56368f8cc97c7e40a7ee18e1cedaf8e780cd8bc5ed5ac8b81f238614facb \ + --hash=sha256:c907cdc8109f6c619e6254212e794d6548373cc40e1ec75e6e3823d9135d29cc \ + --hash=sha256:ca0276464d148c72defa8bb4390cce01b4a0e425f3b50d1435aa6d7a18107602 \ + --hash=sha256:cd5e2801c89992ed8c0a3f0293ae83c159a60d9a5d685005383ef4caca77f2c4 \ + --hash=sha256:d08ec48f0a1c48d75d0356cea971921848fb620fdeba805b28f937e90691209f \ + --hash=sha256:d1a2ee9c1499fc8f86f4521f27a973c914b211ffa87322f4ee33bb35392da2c5 \ + --hash=sha256:d5f5d1e9def3405f60e3ca8232d56f35c98fb7bf581efcc60051ebf53cb8b611 \ + --hash=sha256:d60377dce4511655582e300dc1e5a5f24ba0cb229005a1d5c8d0cb72bb758ab8 \ + --hash=sha256:d73beaac5e90173ac3deb9928a74763a6d230f494e4bfb422c217a0ad8e629bf \ + --hash=sha256:d7de2637729c67d67cf87614b566626057e95c303bc0a55ffe391f5205e7003d \ + --hash=sha256:dad6e0f2e481fffdcf776d10ebee25e0ef89f16d691f1e5dee4b586375fdc64b \ + --hash=sha256:dda86aba335c902b6149a02a55b38e96287157e609200811837678214ba2b1db \ + --hash=sha256:df01808ee470038c3f8dc4f48620df7225c49c2d6639e38f96e6d6ac6e6f7b0e \ + --hash=sha256:e1f6e2f00a6b8edb562826e4632e26d063ac10307e80f7461f7de3ad8ef3f077 \ + --hash=sha256:e25369dc110d58ddf29b949377a93e0716d72a24f62bad72b2b39f155949c1fd \ + --hash=sha256:e3c701e954abf6fc03a49f7c579cc80c2c6cc52525340ca3186c41d3f33482ef \ + --hash=sha256:e5bcc1a1ae744e0bb59641171ae53743760130600da8db48cbb6e4918e186e4e \ + --hash=sha256:e68c14b04827dd76dcbd1aeea9e604e3e4b78322d8faf2f8132c7138efa340a8 \ + --hash=sha256:e8aeb10fcbe92767f0fa69ad5a72deca50d0dca07fbde97848997d778a50c9fe \ + --hash=sha256:e985a16ff513596f217cee86c21371b8cd011c0f6f056d0920aa2d926c544058 \ + --hash=sha256:ecbbd45615a6885fe3240eb9db73b9e62518b611850fdf8ab08bd56de7ad2b17 \ + --hash=sha256:ee4ec14bc1680d6b0afab9aea2ef27e26d2024f18b24a2d7155a52b60da7e833 \ + --hash=sha256:ef5960d965e67165d75b7c7ffc60a83ec5abfc5c11b764ec13ea54fbef8b4421 \ + --hash=sha256:f0cdaecd4c953bfae0b6bb64910aaaca5a424ad9c72d85cb88417bb9814f7550 \ + --hash=sha256:f1ce721c8a7dfec21fcbdfe04e8f68174183cf4e8188e0645e92aa23985c57ff \ + --hash=sha256:f50498891691e0864dc3da965f340fada0771f6142a378083dc4608f4ea513e2 \ + --hash=sha256:f5ea69428fa1b49573eef0cc44a1d43bebd45ad0c611eb7d7eac760c7ae771bc \ + --hash=sha256:f61aa92e4aad0be58eb6eb4e0c21acf32cf8065f4b2cae5665da756c4ceef982 \ + --hash=sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d \ + --hash=sha256:f820f24b09e3e779fe84c3c456cb4108a7aa639b0d1f02c28046e11bfcd088ed \ + --hash=sha256:f98059e4fcd3e3e4e2d632b7cf81c2faae96c43c60b569e9c621468082f1d104 \ + --hash=sha256:fcce033e4021347d80ed9c66dcf1e7b1546319834b74445f561d2e2221de5659 # via # -c default.txt # requests @@ -184,9 +223,9 @@ faker==29.0.0 \ --hash=sha256:32d0ee7d42925ff06e4a7d906ee7efbf34f5052a41a2a1eb8bb174a422a5498f \ --hash=sha256:34e89aec594cad9773431ca479ee95c7ce03dd9f22fda2524e2373b880a2fa77 # via factory-boy -idna==3.10 \ - --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ - --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 +idna==3.11 \ + --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ + --hash=sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902 # via # -c default.txt # requests @@ -194,9 +233,9 @@ iniconfig==2.0.0 \ --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ --hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374 # via pytest -packaging==24.1 \ - --hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \ - --hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124 +packaging==26.0 \ + --hash=sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 \ + --hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529 # via # -c default.txt # pytest @@ -235,15 +274,15 @@ requests-mock==1.12.1 \ --hash=sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563 \ --hash=sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401 # via -r test.in -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via # -c default.txt # python-dateutil -urllib3==2.6.0 \ - --hash=sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f \ - --hash=sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1 +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # -c default.txt # requests From 4c7d68608a023122f5882002f8b541856867b7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 12 Mar 2026 14:42:16 +0100 Subject: [PATCH 04/35] Add `make docs` command to build docs --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c1d0e0686c..959044cc4b 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ SITE_URL ?= http://localhost:8000 USER_ID?=1000 GROUP_ID?=1000 -.PHONY: build build-translate build-server server-env setup run clean shell ci test test-translate test-server vitest pytest format lint types eslint prettier check-prettier ruff check-ruff dropdb dumpdb loaddb sync-projects requirements +.PHONY: build build-translate build-server server-env setup run clean shell ci test test-translate test-server vitest pytest format lint types eslint prettier check-prettier ruff check-ruff dropdb dumpdb loaddb sync-projects requirements docs help: @echo "Welcome to Pontoon!\n" @@ -39,7 +39,8 @@ help: @echo " dumpdb Create a postgres database dump with timestamp used as file name" @echo " loaddb Load a database dump into postgres, file name in DB_DUMP_FILE" @echo " sync-projects Runs the synchronization task on all projects" - @echo " requirements Compiles all requirements files with uv pip compile\n" + @echo " requirements Compiles all requirements files with uv pip compile" + @echo " docs Builds the documentation site\n" translate/dist: make build-translate @@ -159,3 +160,7 @@ requirements: # Pass --upgrade to upgrade all dependencies # The arguments are passed through to `uv pip compile` "${DC}" run --rm server //app/docker/compile_requirements.sh ${opts} + +docs: + "${DC}" run --rm server mkdocs build -f //app/documentation/mkdocs.yml + "${DC}" run --rm server python manage.py collectstatic --noinput From 9e0af89d117e0a63ee34091a839e44c8d714882e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 19 Mar 2026 14:52:41 +0100 Subject: [PATCH 05/35] Add zensical --- .github/workflows/backend.yml | 1 + Makefile | 1 + bin/post_compile | 1 + docker/Dockerfile | 3 +- docker/Dockerfile-mozcloud | 3 +- docz/docs/admin/adding-new-locale.md | 68 ++ docz/docs/admin/adding-new-project.md | 68 ++ docz/docs/admin/adding-short-term-project.md | 44 + docz/docs/admin/adding-terminology.md | 25 + docz/docs/admin/index.md | 55 ++ docz/docs/admin/managing-pretranslation.md | 51 ++ docz/docs/admin/managing-users.md | 28 + docz/docs/admin/messaging-center.md | 53 ++ docz/docs/admin/renaming-file.md | 13 + docz/docs/admin/renaming-project.md | 16 + docz/docs/assets/pontoon-logo.svg | 6 + docz/docs/dev/contributing.md | 400 +++++++++ docz/docs/dev/deployment.md | 809 +++++++++++++++++++ docz/docs/dev/feature-development-process.md | 112 +++ docz/docs/dev/first-contribution.md | 187 +++++ docz/docs/dev/index.md | 52 ++ docz/docs/dev/localizing-your-projects.md | 108 +++ docz/docs/dev/maintenance.md | 108 +++ docz/docs/dev/setup-virtualenv.md | 211 +++++ docz/docs/dev/setup.md | 126 +++ docz/docs/index.md | 61 ++ docz/docs/localizer/glossary.md | 60 ++ docz/docs/localizer/index.md | 53 ++ docz/docs/localizer/notifications.md | 26 + docz/docs/localizer/profile.md | 21 + docz/docs/localizer/teams-projects.md | 95 +++ docz/docs/localizer/translate.md | 99 +++ docz/docs/localizer/translation-workspace.md | 119 +++ docz/docs/localizer/users.md | 72 ++ docz/docs/stylesheets/extra.css | 48 ++ docz/zensical.toml | 305 +++++++ pontoon/settings/base.py | 1 + pontoon/urls.py | 12 + requirements/default.in | 1 + requirements/default.txt | 30 +- 40 files changed, 3548 insertions(+), 4 deletions(-) create mode 100644 docz/docs/admin/adding-new-locale.md create mode 100644 docz/docs/admin/adding-new-project.md create mode 100644 docz/docs/admin/adding-short-term-project.md create mode 100644 docz/docs/admin/adding-terminology.md create mode 100644 docz/docs/admin/index.md create mode 100644 docz/docs/admin/managing-pretranslation.md create mode 100644 docz/docs/admin/managing-users.md create mode 100644 docz/docs/admin/messaging-center.md create mode 100644 docz/docs/admin/renaming-file.md create mode 100644 docz/docs/admin/renaming-project.md create mode 100644 docz/docs/assets/pontoon-logo.svg create mode 100644 docz/docs/dev/contributing.md create mode 100644 docz/docs/dev/deployment.md create mode 100644 docz/docs/dev/feature-development-process.md create mode 100644 docz/docs/dev/first-contribution.md create mode 100644 docz/docs/dev/index.md create mode 100644 docz/docs/dev/localizing-your-projects.md create mode 100644 docz/docs/dev/maintenance.md create mode 100644 docz/docs/dev/setup-virtualenv.md create mode 100644 docz/docs/dev/setup.md create mode 100644 docz/docs/index.md create mode 100644 docz/docs/localizer/glossary.md create mode 100644 docz/docs/localizer/index.md create mode 100644 docz/docs/localizer/notifications.md create mode 100644 docz/docs/localizer/profile.md create mode 100644 docz/docs/localizer/teams-projects.md create mode 100644 docz/docs/localizer/translate.md create mode 100644 docz/docs/localizer/translation-workspace.md create mode 100644 docz/docs/localizer/users.md create mode 100644 docz/docs/stylesheets/extra.css create mode 100644 docz/zensical.toml diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index b50c0bc245..1db455f097 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -80,6 +80,7 @@ jobs: working-directory: pontoon - run: mkdir -p translate/dist translate/public - run: mkdocs build -f documentation/mkdocs.yml + - run: zensical build -f docz/zensical.toml - run: python manage.py collectstatic # Check if there are missing migrations diff --git a/Makefile b/Makefile index 959044cc4b..5dd88aa798 100644 --- a/Makefile +++ b/Makefile @@ -163,4 +163,5 @@ requirements: docs: "${DC}" run --rm server mkdocs build -f //app/documentation/mkdocs.yml + "${DC}" run --rm server zensical build -f //app/docz/zensical.toml "${DC}" run --rm server python manage.py collectstatic --noinput diff --git a/bin/post_compile b/bin/post_compile index 3f70f0b0a4..a6fa23487a 100644 --- a/bin/post_compile +++ b/bin/post_compile @@ -24,6 +24,7 @@ fi echo "Building documentation..." mkdocs build -f documentation/mkdocs.yml +zensical build -f docz/zensical.toml echo "Collecting static files..." ./manage.py collectstatic --noinput diff --git a/docker/Dockerfile b/docker/Dockerfile index 92afb721a9..37dee29b79 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -51,8 +51,9 @@ RUN npm install COPY --chown=pontoon:pontoon ./docker/config/server.env .env COPY --chown=pontoon:pontoon . /app/ -# Build documentation with MkDocs (generates static files in documentation/site) +# Build documentation (generates static files) RUN mkdocs build -f documentation/mkdocs.yml +RUN zensical build -f docz/zensical.toml RUN python manage.py collectstatic diff --git a/docker/Dockerfile-mozcloud b/docker/Dockerfile-mozcloud index bfcc68d59c..301d60aade 100644 --- a/docker/Dockerfile-mozcloud +++ b/docker/Dockerfile-mozcloud @@ -92,8 +92,9 @@ COPY --from=node-builder /app/translate/public /app/translate/public # Copy application code COPY . /app/ -# Build documentation with MkDocs (generates static files in documentation/site) +# Build documentation (generates static files) RUN mkdocs build -f documentation/mkdocs.yml +RUN zensical build -f docz/zensical.toml # Set up environment variables for collectstatic ENV YUGLIFY_BINARY=/app/node_modules/.bin/yuglify diff --git a/docz/docs/admin/adding-new-locale.md b/docz/docs/admin/adding-new-locale.md new file mode 100644 index 0000000000..4003ec77c3 --- /dev/null +++ b/docz/docs/admin/adding-new-locale.md @@ -0,0 +1,68 @@ +# Adding a New Locale + +This page explains how to add a new language/locale to Pontoon. The example used throughout is Amharic (`am`). + +## Step 1 — Add the locale in Django admin + +Access Django's admin interface at `/a/` (not the standard `/admin/`), then click **Locales**. + +Search for the locale you want to add (searching by locale code is safer). If the locale is not yet in Pontoon, click **ADD LOCALE+** in the top-right corner. + +Complete the following fields: + +### Core fields + +| Field | Example | Notes | +|---|---|---| +| **Code** | `am` | The locale code (BCP 47). | +| **Name** | `Amharic` | The language name displayed in Pontoon. | +| **Plural rule** | *(see below)* | The Gettext plural rule expression. | +| **Cldr plurals** | `1,5` | Comma-separated list of available CLDR plural categories (no spaces). | + +### Machine translation fields + +| Field | Notes | +|---|---| +| **Google translate locale** | Google's locale code for this language. Leave blank to disable Google Translate for this locale. See [Google's supported locales list](https://cloud.google.com/translate/docs/languages). | +| **Google automl model** | Google AutoML model ID (usually starts with `NM`). Set after training a custom model (see [Managing Pretranslation](managing-pretranslation.md)). | +| **MS translator locale** | Microsoft Translator's locale code. Leave blank to disable. | +| **MS terminology locale** | Microsoft Terminology locale code. Leave blank to disable. | + +### Plural rules + +Look up the locale on [CLDR](https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html). For Amharic, two cardinal plural forms are listed: `one` and `other`. + +The **Gettext plural rule** is a C expression. For Amharic: +``` +nplurals=2; plural=(n > 1); +``` + +The **CLDR plurals** field uses numbers corresponding to plural categories: +`0`=zero, `1`=one, `2`=two, `3`=few, `4`=many, `5`=other. + +For Amharic (`one`, `other`) → `1,5`. + +Irish (`ga-IE`) has all forms except zero → `1,2,3,4,5`. + +### Access keys + +Access keys allow keyboard-activated menu commands (shown as underlined characters). + +- **Access key attribute checkbox checked** (default) — Pontoon leaves the access key field empty and shows a dynamic UI for translators to pick from available characters in the localized label. For pretranslation, it uses the first character of the pretranslated label. +- **Access key attribute checkbox unchecked** — Pontoon automatically uses the same access key as the source string (useful for locales using non-Latin scripts like Chinese or Japanese). + +## Step 2 — Set up the Terminology project + +The "Terminology" project appears automatically under the new team's page (e.g., `pontoon.mozilla.org/am/`) after the locale is saved. + +## Step 3 — Populate CLDR population data (optional) + +A helper script is available to assist with population data. Save the script as `cldr_population.py` and run: + +```bash +python cldr_population.py LOCALE_CODE +``` + +## Step 4 — Enable pretranslation (optional) + +Once the locale is added, you can set up a custom AutoML model and enable pretranslation. See [Managing Pretranslation](managing-pretranslation.md). diff --git a/docz/docs/admin/adding-new-project.md b/docz/docs/admin/adding-new-project.md new file mode 100644 index 0000000000..67a5006c61 --- /dev/null +++ b/docz/docs/admin/adding-new-project.md @@ -0,0 +1,68 @@ +# Adding a New Project + +This page explains how to add a standard VCS-backed project to Pontoon. For database-backed short-term projects (newsletters, campaigns, etc.), see [Adding a Short-Term Project](adding-short-term-project.md). + +## Prerequisites + +Before adding a project to Pontoon, ensure that: + +1. The project uses a [supported localization file format](../dev/localizing-your-projects.md#supported-file-formats). +2. Localizable strings are extracted into resource files and pushed to a GitHub (or Mercurial) repository. +3. Pontoon has **write access** to the repository — the recommended approach is to create a dedicated GitHub account for your Pontoon instance, add it as a collaborator to the repository, and configure `SSH_KEY` and `SSH_CONFIG` in your deployment. + +Check the repository structure against [Pontoon's requirements](../dev/localizing-your-projects.md#repository-structure). Review files for localization quality issues: unclear strings, missing localization comments, missing plural forms. + +## Creating the project + +Access Pontoon's admin console at `/admin/` and click **ADD NEW PROJECT**. + +### Required fields + +| Field | Notes | +|---|---| +| **Name** | Displayed throughout Pontoon. Reserved names: *Terminology*, *Tutorial*, *Pontoon Intro*. | +| **Slug** | Used in URLs; auto-generated from Name. | +| **Locales** | Select at least one localizable locale by clicking on it. | +| **Repository URL** | Use the SSH URL: `git@github.com:user/repo.git`. | + +### Optional fields + +| Field | Notes | +|---|---| +| **Branch** | Leave empty to use the default branch (usually `main` or `master`). | +| **Public Repository Website** | Displayed on dashboards. Pontoon attempts to prefill this from the Repository URL. | +| **Download prefix or path to TOML file** | A URL prefix for downloading localized files. | +| **Visibility** | `private` (default) — admins only; `public` — visible to all. | +| **Project info** | Context or testing instructions for localizers. HTML supported. | +| **Internal admin notes** | For developer contacts and PM handoff notes; not visible to localizers. | +| **Deadline** | Format: `YYYY-MM-DD`. | +| **Priority** | 1 (Lowest) to 5 (Highest). | +| **Contact** | The L10n driver responsible for this project. | +| **External Resources** | Links to preview environments, screenshots, etc. | +| **Pretranslation** | See [Managing Pretranslation](managing-pretranslation.md). | +| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | +| **Tags enabled** | Check to allow resource grouping by tag. | +| **Read-only** | Column in the Locales section; marks a locale as read-only. | + +## First sync + +1. Click **SAVE PROJECT** at the bottom of the page. +2. Click **SYNC** to run a test sync. +3. Monitor progress in the **Sync log** at `/sync/log/`. +4. Verify that imported resources and strings look correct. + +!!! important + The new project only appears in the public project list after the next sync cycle AND after you set **Visibility** to `Public`. + +## Tags + +Tags logically group resources and can be assigned a priority. To use tags: + +1. Check **Tags enabled** and save the project. +2. After saving, a tag management section appears — create tags and save again. +3. Associate resources with tags via the resource section of the admin panel. +4. It's also possible to set a **deadline** per Resource (not just per project) from the resource section. + +## Read-only locales + +In the Locales table, the **Read-only** column marks a locale's translations as visible but not editable in Pontoon. Other locales can reference these translations in the LOCALES tab. diff --git a/docz/docs/admin/adding-short-term-project.md b/docz/docs/admin/adding-short-term-project.md new file mode 100644 index 0000000000..da3b8cfad3 --- /dev/null +++ b/docz/docs/admin/adding-short-term-project.md @@ -0,0 +1,44 @@ +# Adding a Short-Term Project + +Short-term projects are used for content that does not have a repository — newsletters, marketing campaigns, surveys, and similar one-off content. Strings are stored only in Pontoon's database. + +## Process overview + +The process mirrors creating a standard project, with two key differences: + +- **Data Source** is set to `Database` instead of a VCS repository. +- You should **test on the staging server first** before creating on production. + +## Step 1 — Create on staging + +Access Pontoon's admin console on the **staging server** and click **ADD NEW PROJECT**. + +| Field | Notes | +|---|---| +| **Name** | Name of the project (displayed in Pontoon's project selector). | +| **Slug** | Auto-generated from Name; used in URLs. | +| **Locales** | Select at least one locale. Use *copy supported locales from an existing project* to speed this up. | +| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | +| **Data Source** | Select **Database**. | +| **Deadline** | Format: `YYYY-MM-DD`. | +| **Priority** | 1 (Lowest) to 5 (Highest). | + +Click **SAVE PROJECT** and verify that the project behaves as expected on staging. + +## Step 2 — Manage strings + +Once the project is created, two string management links appear on the admin project page: + +- **MANAGE STRINGS** — view, edit, add, and delete strings. + - Click **NEW STRING** to add a string. + - Click the trashcan icon to remove a string. + - Edit the string content and comment inline. + - Click **SAVE STRINGS** to commit changes. +- **DOWNLOAD STRINGS** — download current strings for local editing or archiving. + +## Step 3 — Create on production + +Once validated on staging, access the production admin console and recreate the project with the same settings. Select all supported locales. The new project immediately appears in the public project list after saving. + +!!! note + Unlike VCS-backed projects, short-term projects do not have a Sync process. String changes take effect immediately after saving. diff --git a/docz/docs/admin/adding-terminology.md b/docz/docs/admin/adding-terminology.md new file mode 100644 index 0000000000..91db5f2ab7 --- /dev/null +++ b/docz/docs/admin/adding-terminology.md @@ -0,0 +1,25 @@ +# Adding Terminology + +The **Terminology** project is a special built-in project in Pontoon that powers the glossary feature. When a source string contains a recognized term, Pontoon highlights it and shows its definition and existing translations. + +## Accessing the Terminology project + +The Terminology project is managed like any other project. Access it from Pontoon's admin console → **Terminology** project, or navigate directly to `/admin/projects/terminology/`. + +## Adding a new term + +1. Go to the Terminology project admin page. +2. Under **Strings**, click **MANAGE STRINGS**. +3. Click **NEW STRING**. +4. Enter: + - **String** — the term in the source language (English). + - **Comment** — the definition or usage notes. +5. Click **SAVE STRINGS**. + +## Translating terminology + +Once a term is added as a source string, localizers can translate it in the Terminology project like any other string. Translations appear in the **Terminology** tab of the translation workspace when a matching term is found in a source string. + +## Downloading terminology + +The full glossary can be downloaded as a **TBX** (TermBase eXchange) file. Click the profile icon in the top-right corner of any Pontoon page and select **Download Terminology**. diff --git a/docz/docs/admin/index.md b/docz/docs/admin/index.md new file mode 100644 index 0000000000..20c25a5e0f --- /dev/null +++ b/docz/docs/admin/index.md @@ -0,0 +1,55 @@ +# Admin Guide + +This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. + +!!! note "Mozilla-specific content" + Most of this guide is specific to Mozilla's deployment of Pontoon at [pontoon.mozilla.org](https://pontoon.mozilla.org). Some procedures (such as URLs and Google AutoML details) will differ for other deployments. + +## Sections + +
+ +- :material-folder-plus: **[Adding a New Project](adding-new-project.md)** + + How to set up a standard VCS-backed project in Pontoon, including repository configuration, locale selection, tags, and deadlines. + +- :material-calendar-clock: **[Adding a Short-Term Project](adding-short-term-project.md)** + + How to create database-backed projects for newsletters, campaigns, and surveys — no VCS required. + +- :material-translate: **[Adding a New Locale](adding-new-locale.md)** + + How to add a new language/locale to Pontoon, including machine translation setup and plural rules. + +- :material-robot: **[Managing Pretranslation](managing-pretranslation.md)** + + How to enable automated pretranslation for a project and train custom Google AutoML models. + +- :material-message-text: **[Messaging Center](messaging-center.md)** + + How to send targeted emails and in-app notifications to contributors. + +- :material-file-edit: **[Renaming a Localization File](renaming-file.md)** + + Steps to rename a resource file without losing translation history. + +- :material-pencil: **[Renaming a Project](renaming-project.md)** + + Steps to safely rename a project slug and update references. + +- :material-account-multiple: **[Managing Users](managing-users.md)** + + How to deactivate or remove user accounts. + +- :material-book-alphabet: **[Adding Terminology](adding-terminology.md)** + + How to add terms to the Pontoon glossary/terminology project. + +
+ +## Accessing the admin console + +The Pontoon admin console is available at `/admin/` (e.g., `pontoon.mozilla.org/admin/`). Django's standard admin interface is at `/a/`. + +!!! warning + Only Administrators have access to the admin console. Changes made here affect all users and projects. diff --git a/docz/docs/admin/managing-pretranslation.md b/docz/docs/admin/managing-pretranslation.md new file mode 100644 index 0000000000..bc26978afb --- /dev/null +++ b/docz/docs/admin/managing-pretranslation.md @@ -0,0 +1,51 @@ +# Managing Pretranslation + +Pretranslation automatically translates new strings using translation memory (TM) and machine translation, saving results as *Pretranslated* strings that can be reviewed before going live. + +When pretranslation is enabled for a locale+project combination and a new string is added to Pontoon: + +1. Pontoon checks for a **100% TM match** — if found, it is used directly. +2. If no TM match exists, the **Google AutoML Translation** custom model for the locale is used. +3. The string is saved with the *Pretranslated* status. +4. For VCS projects, the pretranslation is stored in localized files outside Pontoon. + +## Enabling pretranslation for a project + +Access Pontoon's admin console → open the project → scroll to the **Pretranslation** section at the bottom of the page. + +!!! important + If this is the **first project** being enabled for a locale, you must first train and set up a custom AutoML model (see below) before enabling pretranslation. + +1. Check **PRETRANSLATION ENABLED**. +2. Move the desired locales from the **Available** list to **Chosen**. +3. Optionally, click **PRETRANSLATE** to immediately pretranslate all missing strings for enabled locales. Otherwise, pretranslation runs automatically as new strings are added. + +## Training a custom AutoML model + +Custom models are trained per locale using Pontoon's translation memory, resulting in better quality than the generic Google Translate engine. + +### Step 1 — Download the TM + +Go to the **Team page** for the locale → **TM** tab → download the TMX file. + +### Step 2 — Import the TM into Google AutoML + +1. Open the [Google Cloud Console](https://console.cloud.google.com) (requires permission). +2. Navigate to **AutoML Translation** → **Datasets** → **CREATE DATASET**. +3. Import the TMX file: + - Click **BROWSE** in the *Destination on Cloud Storage* field and select `pontoon-prod-model-data-c1107144`. + - Click **CONTINUE** to start the import. + - Wait for the Status column to show `Success: ImportData` (a few minutes; you can close the window and return). + +### Step 3 — Train the model + +1. Navigate to the **TRAIN** tab → click **START TRAINING**. +2. Training is a background job that takes **several hours**. At most 4 locale models can train concurrently. +3. Wait for the Status column to show `Success: CreateModel`. +4. Note the model name (usually starts with `NM`, followed by alphanumeric characters). + +### Step 4 — Register the model in Pontoon + +In Django's admin interface at `/a/` → **Locales** → find the locale → set the **Google automl model** field to the model name noted above. + +From this point, the Machinery tab uses the custom model and pretranslation is ready to be enabled. diff --git a/docz/docs/admin/managing-users.md b/docz/docs/admin/managing-users.md new file mode 100644 index 0000000000..722b571f50 --- /dev/null +++ b/docz/docs/admin/managing-users.md @@ -0,0 +1,28 @@ +# Managing Users + +## Deactivating users + +Deactivating a user prevents them from logging in but preserves their contribution history and attribution in translation records. + +1. Access Django's admin interface at `/a/`. +2. Click **Users** and search for the user. +3. Uncheck the **Active** checkbox on the user's record. +4. Click **Save**. + +Deactivation is reversible — you can reactivate the user by checking **Active** again. + +## Removing users + +Removing a user **permanently deletes** their account. This is irreversible and should only be done when strictly necessary (e.g., for GDPR/privacy requests). + +1. Access Django's admin interface at `/a/`. +2. Click **Users** and search for the user. +3. Select the user and choose **Delete selected users** from the action dropdown. +4. Confirm the deletion. + +!!! danger + Deleting a user is permanent. Their username may be replaced with an anonymized placeholder in historical translation records. + +## Adjusting permissions + +To change a user's role (Contributor, Translator, Team Manager), use the **Permissions** tab on the relevant Team page. See [User Accounts & Settings](../localizer/users.md#managing-permissions-team-managers) for details. diff --git a/docz/docs/admin/messaging-center.md b/docz/docs/admin/messaging-center.md new file mode 100644 index 0000000000..a995f0eff3 --- /dev/null +++ b/docz/docs/admin/messaging-center.md @@ -0,0 +1,53 @@ +# Messaging Center + +The Messaging Center allows Administrators to send targeted emails and in-app notifications to contributors, with advanced filtering options. + +## Accessing the Messaging Center + +Click **Messaging** in the page header when logged in as an Administrator. The Messaging Center is at `/messaging/`. + +## Composing a message + +### Message type + +At the top of the page, choose one or more delivery types: + +| Type | Notes | +|---|---| +| **Notification** | Sent as an in-app notification. Not included in notification email digests. | +| **Email** | Sent as an email. By default, only sent to users who have opted in to *News and updates*. | +| **Both** | Sends both a notification and an email. | + +For emails, if the message is **transactional** (e.g., about an account action), check the **Transactional** option. Transactional emails are sent even to users who have not opted in to email communication. + +### Subject and body + +Enter your message using the **Subject** and **Body** fields. + +## Audience filtering + +### By role + +Select whether to send to **Managers**, **Translators**, **Contributors**, or **All of them**. + +### By locale + +All locales are included by default (shown in the **Chosen** column). Remove individual locales by clicking them to move them to the **Available** column. Use **MOVE ALL** to move all locales at once between columns. + +### By project + +All projects are included by default. Remove individual projects by clicking them. Use **MOVE ALL** to move all projects. + +### By activity + +Filter recipients based on their contribution history: + +- **Number of translations submitted** — minimum or maximum threshold. +- **When they last submitted a translation** — date range. + +## Sending + +After configuring the message and audience, click **Send** to deliver. Recipients are determined by the intersection of all applied filters. + +!!! note + Notifications sent via the Messaging Center are **not** included in the regular notification email digests that users receive. diff --git a/docz/docs/admin/renaming-file.md b/docz/docs/admin/renaming-file.md new file mode 100644 index 0000000000..077cb2d205 --- /dev/null +++ b/docz/docs/admin/renaming-file.md @@ -0,0 +1,13 @@ +# Renaming a Localization File + +Renaming a resource file in the VCS repository requires corresponding updates in Pontoon's database to avoid losing translation history. + +## Steps + +1. Rename the file in your VCS repository and push the change. +2. Access Pontoon's admin console → the affected project. +3. In the **Resources** section, find the old filename and update it to match the new filename. +4. Save the project and trigger a manual **SYNC**. + +!!! warning + If you sync before updating the resource name in Pontoon, the old resource will be marked as deleted and a new one created, losing all translation history. diff --git a/docz/docs/admin/renaming-project.md b/docz/docs/admin/renaming-project.md new file mode 100644 index 0000000000..00e0596716 --- /dev/null +++ b/docz/docs/admin/renaming-project.md @@ -0,0 +1,16 @@ +# Renaming a Project + +Renaming a project changes its **Name** and, if desired, its **Slug** (used in URLs). + +## Steps + +1. Access Pontoon's admin console → the project you want to rename. +2. Update the **Name** field. +3. If you also want to update the slug, update the **Slug** field. Be aware that this changes all URLs for the project and localization pages. +4. Click **SAVE PROJECT**. + +!!! warning + Changing the **Slug** invalidates any bookmarked or shared links to the project's pages. Coordinate with the team and update any external references (documentation, bug trackers, etc.) before or immediately after renaming. + +!!! note + For VCS-backed projects, renaming does not affect the repository or its file structure. diff --git a/docz/docs/assets/pontoon-logo.svg b/docz/docs/assets/pontoon-logo.svg new file mode 100644 index 0000000000..85d323e2f1 --- /dev/null +++ b/docz/docs/assets/pontoon-logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docz/docs/dev/contributing.md b/docz/docs/dev/contributing.md new file mode 100644 index 0000000000..2a3beefae9 --- /dev/null +++ b/docz/docs/dev/contributing.md @@ -0,0 +1,400 @@ +# Contributing Guidelines + +## Source code + +Pontoon source code is available on +[GitHub](https://github.com/mozilla/pontoon). + +## Issues + +Our work is tracked in +[GitHub](https://github.com/mozilla/pontoon/issues). + +[Report a new issue](https://github.com/mozilla/pontoon/issues/new). + +## Docker + +While the front-end (JavaScript) build and tests use the host +environment for development, the back-end systems (Python/Django, +databases, etc.) run in Docker containers. For production use, also the +front-end is built in a container. Thus Pontoon requires fewer things to +get started and you\'re guaranteed to have the same server setup as +everyone else. + +If you\'re not familiar with [Docker](https://docs.docker.com/) and +[docker-compose](https://docs.docker.com/compose/overview/), it\'s worth +reading up on. + +## Writing to external repositories + +`Environment variables <../admin/deployment>`{.interpreted-text +role="doc"} like `SSH_KEY` and `SSH_CONFIG` have no effect in a Docker +setup. + +The [\~/.ssh]{.title-ref} folder of the host system is mapped +automatically to the home folder within the container. In order to +connect to a remote repository via SSH, you need to create a +passwordless SSH key, and configure [\~/.ssh/config]{.title-ref} +accordingly. + +Here\'s an example for GitHub, assuming the private key file is called +[id_ed25519]{.title-ref} (see also [GitHub\'s +instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +to generate a new key): + +``` +Host github.com + User YOUR_USERNAME + IdentityFile ~/.ssh/id_ed25519 + StrictHostKeyChecking no +``` + +The project\'s repository will use the format +`git@github.com:{ORGANIZATION}/{REPOSITORY}.git` for the `URL` field. + +An alternative approach for GitHub is to use a [Personal Access Token +(PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), +and set up the project\'s `URL` as [https://]{.title-ref} instead of +[git@]{.title-ref}. In this case, the `URL` will need to include both +the PAT and username, e.g. +`https://{USER}:{TOKEN}@github.com/{REPOSITORY}`. + +## JavaScript setup + +For working on the front-end, you need the latest versions of Node.js +and npm ([installation +instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)). +Parts of the front-end use [npm +workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces), which +are not supported by earlier npm versions. + +## Database + +If you have a database dump, you can load it into your PostgreSQL +database. + +Make sure you backup your existing database first: + +``` shell +$ make dumpdb +``` + +And then load the dump: + +``` shell +$ make loaddb DB_DUMP_FILE=path/to/my/dump +``` + +Note that your database container needs to be running while you do that. +You can start just the postgresql container by running: + +``` shell +$ docker-compose up -d postgresql +``` + +## Interactive shell + +If you need to run specific commands, that are not covered by our +[Makefile]{.title-ref}, you can start an interactive shell inside a +Pontoon container: + +``` shell +$ make shell +``` + +[make shell-root]{.title-ref} is also available to log in as +[root]{.title-ref}, instead of the default [pontoon]{.title-ref} user. + +## Browser Support + +The list of browsers supported by Pontoon is defined in the +[\"browserslist\"]{.title-ref} entry of the root package.json, and +contains by default: + +``` bash +Firefox >= 78 +Chrome >= 80 +Edge >= 91 +Safari >= 13.1 +``` + +## Code style + +We use code formatters so that we do not have to fight over code style. +You are free to write code however you like, because in the end the +formatter is the one that will format it. We thus don\'t need to pay +attention to style during code reviews, and are free from those +never-ending code style discussions. + +To format the Python and the JavaScript code at once you can use: + +``` shell +$ make format +``` + +Code formatting is explained in more detail in the following sections. + +To run the required linters on the Python and the JavaScript code at +once you can use: + +``` shell +$ make lint +``` + +## Python code conventions + +Our Python code is automatically formatted using +[ruff](https://docs.astral.sh/ruff/). We enforce that in our Continuous +Integration, so you will need to run ruff on your code before sending it +for review. + +You can run ruff locally either as an [add-on in your code +editor](https://docs.astral.sh/ruff/integrations/#vs-code-official), or +as a [git pre-hook +commit](https://docs.astral.sh/ruff/integrations/#pre-commit). +Alternatively, you can format your code using: + +``` shell +$ make ruff +``` + +In the rare case when you cannot fix an error, use `# noqa` to make the +linter ignore that error (see +[documentation](https://docs.astral.sh/ruff/linter/#error-suppression)). +Note that in most cases, it is better to fix the issues than ignoring +them. + +## JavaScript code conventions + +Our JavaScript code is automatically formatted using +[Prettier](https://prettier.io/docs/en/index.html). We enforce that in +our Continuous Integration, so you will need to run prettier on your +code before sending it for review. + +You can run prettier locally either as an [add-on in your code +editor](https://prettier.io/docs/en/editors.html), or as a [git pre-hook +commit](https://prettier.io/docs/en/precommit.html). Alternatively, you +can format your code using: + +``` shell +$ make prettier +``` + +Additionally, there are linting rules that are defined in our +`eslint.config.mjs` file. To run the linter, do: + +``` shell +$ make eslint +``` + +In the rare case when you cannot fix an eslint error, use +`// eslint-disable` to make the linter ignore that error. Note that in +most cases, it is better to fix the issues than ignore them. + +For more specifics about the `translate` folder, look at the README.md +file there. + +## Git conventions + +The first line is a summary of the commit. It should start with one of +the following: + + Fix #1234 + +or: + + #1234 + +The first, when it lands, will cause the issue to be closed. The second +one just adds a cross-reference. + +After that, the commit should explain *why* the changes are being made +and any notes that future readers should know for context or be aware +of. + +We follow [The seven rules of a great Git commit +message](https://chris.beams.io/posts/git-commit/#seven-rules): + +1. Separate subject from body with a blank line +2. Limit the subject line to 50 characters +3. Capitalize the subject line +4. Do not end the subject line with a period +5. Use the imperative mood in the subject line +6. Wrap the body at 72 characters +7. Use the body to explain what and why vs. how + +## Pull requests + +Pull request summary should indicate the issue the pull request +addresses. + +Pull request descriptions should cover at least some of the following: + +1. what is the issue the pull request is addressing? +2. why does this pull request fix the issue? +3. how should a reviewer review the pull request? +4. what did you do to test the changes? +5. any steps-to-reproduce for the reviewer to use to test the changes + +## Code reviews + +Pull requests should be reviewed before merging. + +Style nits should be covered by linting as much as possible. + +Code reviews should review the changes in the context of the rest of the +system. + +## Python Dependencies + +Direct dependencies for Pontoon are distributed across four files: + +1. `requirements/default.in`: Running Pontoon in production +2. `requirements/dev.in`: Development +3. `requirements/test.in`: Testing +4. `requirements/lint.in`: Linting + +In order to pin and hash the direct and indirect dependencies, we use +[uv pip compile](https://docs.astral.sh/uv/#the-pip-interface), which +yields corresponding `*.txt` files. These `*.txt` files contain all +direct and indirect dependencies, and can be used for installation with +`uv pip`. After any change to the `*.in` files, you should run the +following command to update all `requirements/*.txt` files. + +``` shell +$ make requirements +``` + +When adding a new requirement, add it to the appropriate +`requirements/*.in` file. For example, to add the development dependency +`foobar` version 5, add `foobar==5` to `requirements/dev.in`, and then +run the command from above. + +Once you are done adding, removing or updating requirements, rebuild +your docker environment: + +``` shell +$ make build-server +``` + +If there are problems, it\'ll tell you. + +To upgrade existing dependencies within the given constraints of the +input files, you can pass options through to the `uv pip compile` +invocations, i.e. + +``` shell +$ make requirements opts=--upgrade +``` + +## Documentation + +Documentation for Pontoon is built with +[Sphinx](http://www.sphinx-doc.org/en/stable/) and is available on +ReadTheDocs. + +Building docs is not covered with docker yet, so you will have to do it +on your host. To make a virtualenv to build docs, do this: + +``` shell +$ cd docs/ +$ uv venv +$ source .venv/bin/activate +$ uv pip install -r requirements/default.txt +``` + +Then, to build the docs, run this: + +``` shell +$ make html +``` + +The HTML documentation will be in [docs/\_build/html/]{.title-ref}. Try +to open [docs/\_build/html/index.html]{.title-ref} for example. + +## Running tests + +To run the entire test suite, do: + +``` shell +$ make test +``` + +To run only the `translate` tests: + +``` shell +$ make test-translate +``` + +To run only the Python tests: + +``` shell +$ make pytest +``` + +To run specific tests or specify arguments, you\'ll want to start a +shell in the test container: + +``` shell +$ make shell +``` + +Then you can run tests as you like. + +Running all the unittests (make sure you run `./manage.py collectstatic` +first): + +``` shell +app@...:/app$ pytest +``` + +Running a directory of tests: + +``` shell +app@...:/app$ pytest pontoon/base/ +``` + +Running a file of tests: + +``` shell +app@...:/app$ pytest pontoon/base/tests/test_views.py +``` + +## Writing tests + +Put your tests in the `tests/` directory of the appropriate app in +`pontoon/`. + +## Mock usage + +[Mock](https://docs.python.org/dev/library/unittest.mock.html) is a +python library for mocks objects. This allows us to write isolated tests +by simulating services besides using the real ones. Best examples are +existing tests which admittedly do mocking different depending on the +context. + +Tip! Try to mock in limited context so that individual tests don\'t +affect other tests. Use context managers instead of monkey patching +imported modules. + +## Updating Your Local Instance + +When changes are merged into the main Pontoon repository, you\'ll want +to update your local development instance to reflect the latest version +of the site. You can use Git as normal to pull the latest changes, but +if the changes add any new dependencies or alter the database, you\'ll +want to install any new libraries and run any new migrations. + +If you\'re unsure what needs to be run, it\'s safe to just perform all +of these steps, as they don\'t affect your setup if nothing has changed: + +``` shell +# Pull the latest code (assuming you've already checked out main). +git pull origin main + +# Install new dependencies or update existing ones. +uv pip install -U --force -r requirements/default.txt + +# Run database migrations. +python manage.py migrate +``` diff --git a/docz/docs/dev/deployment.md b/docz/docs/dev/deployment.md new file mode 100644 index 0000000000..2fc4d24ad9 --- /dev/null +++ b/docz/docs/dev/deployment.md @@ -0,0 +1,809 @@ +--- +title: Deployment +--- + +Pontoon is designed to be deployed on Heroku. To deploy an instance of +Pontoon on Heroku, you must first create an app on your Heroku +dashboard. The steps below assume you\'ve already created an app and +have installed the [Heroku +CLI](https://devcenter.heroku.com/articles/heroku-cli). + +For quick and easy deployment without leaving your web browser, click +this button: + +```{=html} + + + +``` +# Buildpack + +Pontoon uses several buildpacks in a specific order. They are (in +order): + +1. [heroku-buildpack-ssh](https://github.com/Osmose/heroku-buildpack-ssh) + for setting up the SSH keys necessary for committing to version + control. +2. The official `heroku/nodejs` buildpack for installing Node.js + programs for pre-processing frontend assets. +3. The official `heroku/python` buildpack as our primary buildpack. + +You can set these buildpacks on your app with the following toolbelt +commands: + +``` bash +# Note that we use add and --index 1 to append to the top of the list. +heroku buildpacks:set heroku/python +heroku buildpacks:add --index 1 heroku/nodejs +heroku buildpacks:add --index 1 https://github.com/Osmose/heroku-buildpack-ssh.git#v0.1 +heroku buildpacks:add --index 1 https://github.com/mozilla/heroku-buildpack-apt.git#v0.1 +``` + +# Environment Variables + +The following is a list of environment variables you\'ll want to set on +the app you create: + +::: note +::: title +Note +::: + +Alternatively, you can put all variables below in a +[dotenv](https://saurabh-kumar.com/python-dotenv/) text file: + + VAR="value 1" + OTHER_VAR="other value" + +If you do so, you will only have to give the path of this file to +Pontoon through the `DOTENV_PATH` environment variable: + + DOTENV_PATH=/path/to/my/config.env +::: + +`ADMIN_EMAIL` + +: Optional. Email address for the `ADMINS` setting. + +`ADMIN_NAME` + +: Optional. Name for the `ADMINS` setting. + +`AUTHENTICATION_METHOD` + +: The default value is [django]{.title-ref}, which allows you to log + in via accounts created using [manage.py shell]{.title-ref}. Set to + \'fxa\' if you want to use \'Mozilla Accounts\' (corresponding + [FXA]()\* settings must be set). Set to \'github\' if you want to + use \'GitHub\' (corresponding [GITHUB]()\* settings must be set). + Set to \'gitlab\' if you want to use \'GitLab\' (corresponding + [GITLAB]()\* settings must be set if required). Set to \'google\' if + you want to use \'Google\' (corresponding [GOOGLE]()\* settings must + be set). + +`USE_X_FORWARDED_HOST` + +: Optional. If using a reverse proxy, set to True to make + django-allauth redirect_url work as expected. Default value is + [False]{.title-ref}. + +`BADGES_START_DATE` + +: Optional. Specifies the start date from which user activities count + towards badge achievements. This variable should be in YYYY-MM-DD + format. + +`BADGES_PROMOTION_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Community Builder badge. + +`BADGES_REVIEW_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Review Master badge. + +`BADGES_TRANSLATION_THRESHOLDS` + +: Optional. A comma-separated list of numeric thresholds for different + levels of the Translation Champion badge. + +`BLOCKED_IPS` + +: A comma-separated list of IP addresses or IP ranges (expressed using + the [CIDR notation](), e.g. [192.168.1.0/24]{.title-ref}) to be + blocked from accessing the app, for example because they are + DDoS\'ing the server. + +`CELERY_ALWAYS_EAGER` + +: Controls whether asynchronous tasks (mainly used during sync) are + sent to Celery or executed immediately and synchronously. Set this + to `False` on production. + +`CELERYD_MAX_TASKS_PER_CHILD` + +: Maximum number of tasks a Celery worker process can execute before + it's replaced with a new one. Defaults to 20 tasks. + +`DATABASE_SSLMODE` + +: Optional. Controls if the database needs a secure connection with + the app. Default value is [True]{.title-ref}. + +`DEFAULT_FROM_EMAIL` + +: Optional. Default email address to send emails from. Default value: + `Pontoon `. + +`DISABLE_COLLECTSTATIC` + +: Disables running `./manage.py collectstatic` during the build. + Should be set to `1`. + + Heroku\'s Python buildpack has a bug that causes issues when running + node binaries during the compile step of the buildpack. To get + around this, we run the command in our post-compile step (see + `bin/post_compile`) when the issue doesn\'t occur. + +`DJANGO_DEBUG` + +: Controls `DEBUG` mode for the site. Should be set to + [False]{.title-ref} in production. + +`DJANGO_DEBUG_TOOLBAR` + +: Enables Django Debug Toolbar (default: `False`). `DJANGO_DEV` must + be set to [True]{.title-ref}. + +`DJANGO_DEV` + +: Signifies whether this is a development server or not. Should be + [False]{.title-ref} in production. Adds some additional django apps + that can be helpful during day to day development. + +`EMAIL_HOST` + +: SMTP host (default: `'smtp.sendgrid.net'`). + +`EMAIL_HOST_PASSWORD` + +: Password for the SMTP connection. + +`EMAIL_HOST_USER` + +: Username for the SMTP connection (default: `'apikey'`). + +`EMAIL_PORT` + +: SMTP port (default: `587`). + +`EMAIL_USE_TLS` + +: Use explicit TLS for the SMTP connection (default: `True`). + +`EMAIL_USE_SSL` + +: Use implicit TLS for the SMTP connection (default: `False`). + +`EMAIL_CONSENT_ENABLED` + +: Optional. Enables Email consent page (default: `False`). + +`EMAIL_CONSENT_TITLE` + +: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Title of the + Email consent page. + +`EMAIL_CONSENT_MAIN_TEXT` + +: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Main text of the + Email consent page. You can use that to explain what type of + communication to expect among other things. + +`EMAIL_CONSENT_PRIVACY_NOTICE` + +: Optional. Privacy notice on the Email consent page. It\'s possible + to use HTML and link to external privacy notice page. + +`EMAIL_COMMUNICATIONS_HELP_TEXT` + +: Optional. Help text to use under the Email communications checkbox + in user settings. It allows to explain what type of communication to + expect and to link to deployment-specific privacy notices among + other things. + +`EMAIL_COMMUNICATIONS_FOOTER_PRE_TEXT` + +: Optional. Text to be shown in the footer of the non-transactional + emails sent using the Messaging Center, just above the unsubscribe + text. + +`EMAIL_MONTHLY_ACTIVITY_SUMMARY_INTRO` + +: Optional. Custom text to be shown in the Monthly activity summary + emails after the greeting and before the stats. + +`ENABLE_BUGS_TAB` + +: Optional. Enables Bugs tab on team pages, which pulls team data from + bugzilla.mozilla.org. Specific for Mozilla deployments. + +`ENABLE_INSIGHTS` + +: Optional. Enables Insights pages, which present data that needs to + be collected by the `collect-insights`{.interpreted-text role="ref"} + scheduled job. It is advised to run the job at least once before + enabling the tab, otherwise the content will be empty. See [the + spec](https://github.com/mozilla/pontoon/blob/HEAD/specs/0108-community-health-dashboard.md) + for more information. + +`ERROR_PAGE_URL` + +: Optional. URL to the page displayed to your users when the + application encounters a system error. See [Heroku + Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) + for more information. + +`GOOGLE_ANALYTICS_KEY` + +: Optional. Set your [Google Analytics + key](https://www.google.com/analytics/) to use Google Analytics. + +`GOOGLE_TRANSLATE_API_KEY` + +: Optional. Set your [Google Cloud Translation + API](https://cloud.google.com/translate/) key to use generic machine + translation engine by Google. + +`GOOGLE_AUTOML_PROJECT_ID` + +: Optional. Set your [Google Cloud AutoML + Translation](https://cloud.google.com/translate/) model ID to use + custom machine translation engine by Google. + +`GOOGLE_APPLICATION_CREDENTIALS` + +: Optional. Path to a Google Cloud service account JSON key file used + by Google client libraries for authentication. + +`INACTIVE_CONTRIBUTOR_PERIOD` + +: Optional. Number of months in which the contributor needs to log in + in order not to receive the inactive account email. The default + value is 6. + +`INACTIVE_TRANSLATOR_PERIOD` + +: Optional. Number of months in which the locale translator needs to + submit or review at least one translation in order not to receive + the inactive account email. The default value is 2. + +`INACTIVE_MANAGER_PERIOD` + +: Optional. Number of months in which the locale manager needs to + submit or review at least one translation in order not to receive + the inactive account email. The default value is 2. + +`LOG_TO_FILE` + +: Optional. Enables logging to a file (default: `False`). This is + useful for retaining log data for later analysis or troubleshooting. + +`MAINTENANCE_PAGE_URL` + +: Optional. URL to the page displayed to your users when the + application is placed in the maintenance state. See [Heroku + Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) + for more information. + +`MANUAL_SYNC` + +: Optional. Enable Sync button in project Admin. + +`MEDIA_ROOT` + +: Optional. The absolute path of the \"media\" folder the projects + will be cloned into (it is located next to the \"pontoon\" Python + module by default). + +`MICROSOFT_TRANSLATOR_API_KEY` + +: Optional. Set your [Microsoft Translator + API](http://msdn.microsoft.com/en-us/library/hh454950) key to use + machine translation by Microsoft. + +`MONTHLY_ACTIVITY_SUMMARY_DAY` + +: Optional. Integer representing a day of the month on which the + Monthly activity summary emails will be sent. 1 represents the first + day of the month. The default value is 1. + +`NEW_RELIC_API_KEY` + +: Optional. API key for accessing the New Relic REST API. Used to mark + deploys on New Relic. + +`NEW_RELIC_APP_NAME` + +: Optional. Name to give to this app on New Relic. Required if you\'re + using New Relic. + +`NOTIFICATION_DIGEST_DAY` + +: Optional. Integer representing a day of the week on which the weekly + notification digest email will be sent. 0 represents Monday, 6 + represents Sunday. The default value is 4 (Friday). + +`ONBOARDING_EMAIL_2_DELAY` + +: Optional. The number of days to wait after user registration before + sending the 2nd onboarding email. The default value is 2. + +`ONBOARDING_EMAIL_3_DELAY` + +: Optional. The number of days to wait after user registration before + sending the 3rd onboarding email. The default value is 7. + +`OPENAI_API_KEY` + +: Optional. Set your [OpenAI API]{.title-ref} key to add the ability + to refine machine translations using ChatGPT. + +`PERSONAL_ACCESS_TOKEN_MAX_COUNT` + +: Optional. The maximum number of personal access tokens a user can + create. The default value is 10. + +`PRETRANSLATION_API_MAX_CHARS` + +: Optional. Specifies the maximum length of input text allowed for + pretranslation API. The default value is 2048. + +`PROJECT_MANAGERS` + +: Optional. A list of project manager email addresses to send project + requests to + +`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION` + +: Required. Must be set to `python`. Needed for Google AutoML + Translation. Learn more on [Protocol Buffers + Homepage](https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates). + +`SECRET_KEY` + +: Required. Secret key used for sessions, cryptographic signing, etc. + +`SITE_URL` + +: Controls the base URL for the site, including the protocol and port. + Defaults to `http://localhost:8000`, should always be set in + production. + +`ALLOWED_HOSTS` + +: A list of strings representing the host/domain names the site can + serve. Defaults to `.localhost, 127.0.0.1, [::1]`, should always be + set in production. + +`SECURE_SSL_REDIRECT` + +: Optional. If True, redirects all non-HTTPS requests to HTTPS. + Default value is [True]{.title-ref}. Learn more in the [Django + documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#secure-ssl-redirect). + +`CSRF_TRUSTED_ORIGINS` + +: Optional. A comma-separated list of trusted origins for unsafe + requests. It should contain the domains where the app is available. + The setting also supports subdomains, so you could add + `https://*.example.com`, for example, to allow access from all + subdomains of `example.com`. Default value is an empty string. Learn + more in the [Django + documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins). + +`SSH_CONFIG` + +: Contents of the `~/.ssh/config` file used when Pontoon connects to + VCS servers via SSH. Used for disabling strict key checking and + setting the default user for SSH. For example: + + StrictHostKeyChecking=no + + Host hg.mozilla.org + User pontoon@mozilla.com + +`SSH_KEY` + +: SSH private key to use for authentication when Pontoon connects to + VCS servers via SSH. + +::: note +::: title +Note +::: + +Changing the `SSH_CONFIG` or `SSH_KEY` environment variables *requires* +a rebuild of the site, as these settings are only used at build time. +Simply changing them will not actually update the site until the next +build. + +The [Heroku Repo]() plugin includes a rebuild command that is handy for +triggering builds without making code changes. +::: + +::: note +::: title +Note +::: + +Some environment variables, such as the SSH-related ones, may contain +newlines. The easiest way to set these is using the `heroku` +command-line tool to pass the contents of an existing file to them: + +``` bash +heroku config:set SSH_KEY="`cat /path/to/key_rsa`" +``` +::: + +`STATIC_HOST` + +: Optional. Hostname to prepend to static resources paths. Useful for + serving static files from a CDN. Example: `//asdf.cloudfront.net`. + +`SUGGESTION_NOTIFICATIONS_DAY` + +: Optional. Integer representing a day of the week on which the + [send_suggestion_notifications]{.title-ref} management command will + run. 0 represents Monday, 6 represents Sunday. The default value is + 4 (Friday). + +`SYNC_TASK_TIMEOUT` + +: Optional. Multiple sync tasks for the same project cannot run + concurrently to prevent potential DB and VCS inconsistencies. We + store the information about the running task in cache and clear it + after the task completes. In case of an error, we might never clear + the cache, so we use SYNC_TASK_TIMEOUT as the longest possible + period after which the cache is cleared and the subsequent task can + run. The value should exceed the longest sync task of the instance. + The default value is 3600 seconds (1 hour). + +`SYSTRAN_TRANSLATE_API_KEY` + +: Optional. Set your [SYSTRAN Translate API key]{.title-ref} to use + machine translation by SYSTRAN. + +`TBX_DESCRIPTION` + +: Optional. Description to be used in the header of the Terminology + (.TBX) files. + +`TBX_TITLE` + +: Optional. Title to be used in the header of the Terminology (.TBX) + files. + +`THROTTLE_ENABLED` + +: Optional. Enables traffic throttling based on IP address (default: + `False`). + +`THROTTLE_MAX_COUNT` + +: Optional. Maximum number of requests allowed in + `THROTTLE_OBSERVATION_PERIOD` (default: `300`). + +`THROTTLE_OBSERVATION_PERIOD` + +: Optional. A period (in seconds) in which `THROTTLE_MAX_COUNT` + requests are allowed. (default: `60`). If longer than + `THROTTLE_BLOCK_DURATION`, `THROTTLE_BLOCK_DURATION` will be used. + +`THROTTLE_BLOCK_DURATION` + +: Optional. A duration (in seconds) for which IPs are blocked + (default: `600`). + +`TZ` + +: Timezone for the dynos that will run the app. Pontoon operates in + UTC, so set this to `UTC`. + +`VCS_SYNC_NAME` + +: Optional. Default committer\'s name used when committing + translations to version control system. + +`VCS_SYNC_EMAIL` + +: Optional. Default committer\'s email used when committing + translations to version control system. + +# Add-ons + +Pontoon is designed to run with the following add-ons enabled: + +- Database: Heroku Postgres +- Log Management: Papertrail +- Email: Sendgrid +- Scheduled Jobs: Heroku Scheduler +- Cache: Memcachier +- RabbitMQ: CloudAMQP + +It\'s possible to run with the free tiers of all of these add-ons, but +it is recommended that, at a minimum, you run the \"Standard 0\" tier of +Postgres. + +## SendGrid Add-on + +Pontoon uses [SendGrid](https://devcenter.heroku.com/articles/sendgrid), +which expects the following environment variable: + +`SENDGRID_PASSWORD` + +: Use SendGrid API key. + +## Cache Add-on + +Pontoon uses +[django-bmemcached](https://github.com/jaysonsantos/python-binary-memcached), +which expects the following environment variables from the cache add-on: + +`MEMCACHE_SERVERS` + +: Semi-colon separated list of memcache server addresses. + +`MEMCACHE_USERNAME` + +: Username to use for authentication. + +`MEMCACHE_PASSWORD` + +: Password to use for authentication. + +::: note +::: title +Note +::: + +By default, the environment variables added by Memcachier are prefixed +with `MEMCACHIER` instead of `MEMCACHE`. You can \"attach\" the +configuration variables with the correct prefix using the +`addons:attach` command: + +``` bash +heroku addons:attach resource_name --as MEMCACHE +``` + +Replace `resource_name` with the name of the resource provided by the +cache addon you wish to use, such as `memcachier:100`. Use the +`heroku addons` command to see a list of resource names that are +available. +::: + +## RabbitMQ Add-on + +Similar to the cache add-ons, Pontoon expects environment variables from +the RabbitMQ add-on: + +`RABBITMQ_URL` + +: URL for connecting to the RabbitMQ server. This should be in the + format for Celery\'s + [BROKER_URL](https://docs.celeryq.dev/en/stable/userguide/configuration.html#broker-url) + setting. + +::: note +::: title +Note +::: + +Again, you must attach the resource for RabbitMQ as `RABBITMQ`. See the +note in the Cache Add-ons section for details. +::: + +# Scheduled Jobs + +Pontoon requires several scheduled jobs to run regularly. + +## Sync Projects + +While internal Pontoon DB can be used for storing localizable strings, +Pontoon specializes in using version control systems for that purpose. +If you choose this option as well, you\'ll need to run the following +scheduled job: + +``` bash +./manage.py sync_projects +``` + +It\'s recommended to run this job at least once an hour. It commits any +string changes in the database to the remote VCS servers associated with +each project, and pulls down the latest changes to keep the database in +sync. + +The command supports the following options: + +- `--force` \-- Consider all version control repository files to have + changed. +- `--no-pull` \-- Do not pull new changes for version control + repositories. +- `--no-commit` \-- Do not commit and push any new changes to version + control. + +## Send Deadline Notifications + +Pontoon allows you to set deadlines for projects. This job sends +deadline reminders to contributors of projects when they are due in 7 +days. If 2 days before the deadline project still isn\'t complete for +the contributor\'s locale, notifications are sent again. The command is +designed to run daily. + +``` bash +./manage.py send_deadline_notifications +``` + +## Send Suggestion Notifications + +This job sends notifications about newly created unreviewed suggestions +that were submitted, unapproved or unrejected in the last 7 days. +Recipients of notifications are users with permission to review them, as +well as authors of any previous translations or comments of the same +string. The command is designed to run on a weekly basis. + +``` bash +./manage.py send_suggestion_notifications +``` + +## Send Review Notifications + +This job sends notifications about newly reviewed (approved or rejected) +suggestions to the authors of those suggestions. The command is designed +to run on a daily basis. + +``` bash +./manage.py send_review_notifications +``` + +## Send Notification Emails + +This job sends notifications in daily and weekly email digests. Daily +notifications are sent every time the command runs, while weekly +notifications are sent only on the configured day (e.g., Friday). + +``` bash +./manage.py send_notification_emails +``` + +## Send Monthly Activity Emails + +This job sends a summary of monthly activity to users via email. It is +designed to run on a specific day of the month but can be forced to run +at any time using the \--force argument. + +``` bash +./manage.py send_monthly_activity_emails +``` + +## Send Onboarding Emails + +Pontoon sends onboarding emails to new users. The first one is sent upon +registration, while this job sends the 2nd and 3rd email. You can +configure the number of days to wait before sending the 2nd and 3rd +emails. The command is designed to run daily. + +``` bash +./manage.py send_onboarding_emails +``` + +## Send Inactive Account Emails + +This command sends reminder emails to inactive users. Users in different +roles get different emails based on different activity criteria, which +can be configured in settings. The command is designed to run daily. + +``` bash +./manage.py send_inactive_account_emails +``` + +## Collect Insights + +The Insights tab in the dashboards presents data that cannot be +retrieved from the existing data models efficiently upon each request. +This job gathers all the required data and stores it in a dedicated +denormalized data model. The job is designed to run in the beginning of +the day, every day. + +``` bash +./manage.py collect_insights +``` + +## Warm up cache + +We cache data for some of the views (e.g. Contributors) for a day. Some +of them don\'t get a lot of visits, not even one per day, meaning that +the visitors of these pages often hit the cold cache. We use this job to +refresh data in the cache every day, because it changes often. The +command is designed to run daily. + +``` bash +./manage.py warmup_cache +``` + +## Clearing the session store + +When a user logs in, Django adds a row to the `django_session` database +table. If the user logs out manually, Django deletes the row. But if the +user does not log out, the row never gets deleted. + +Django does not provide automatic purging of expired sessions. +Therefore, it's your job to purge expired sessions on a regular basis. +Django provides a clean-up management command for this purpose: +`clearsessions`. It's recommended to run this command as a daily cron +job. + +``` bash +./manage.py clearsessions +``` + +## Sync Log Retention + +You may also optionally run the `clear_old_sync_logs` management command +on a schedule to remove sync logs from the database that are over 90 +days old: + +``` bash +./manage.py clear_old_sync_logs +``` + +## Provisioning Workers + +Pontoon executes scheduled jobs using +[Celery](http://www.celeryproject.org/). These jobs are handled by the +`worker` process type. You\'ll need to manually provision workers based +on how many projects you plan to support and how complex they are. At a +minimum, you\'ll want to provision at least one `worker` dyno: + +``` bash +heroku ps:scale worker=1 +``` + +# Database Migrations + +After deploying Pontoon for the first time, you must run the database +migrations. This can be done via the toolbelt: + +``` bash +heroku run ./manage.py migrate +``` + +# Creating an Admin User + +After deploying the site, you can create a superuser account using the +`createsuperuser` management command: + +``` bash +heroku run ./manage.py createsuperuser --user=admin --email=your@email.com +``` + +You\'ll then be prompted to set a password for your new user. + +If you\'ve already logged into the site with the email that you want to +use, you\'ll have to use the Django shell to mark your user account as +an admin: + +``` bash +heroku run ./manage.py shell +# Connection and Python info... +>>> from django.contrib.auth.models import User +>>> user = User.objects.get(email='your@email.com') +>>> user.is_staff = True +>>> user.is_superuser = True +>>> user.save() +>>> exit() +``` + +And with that, you\'re ready to start +`../user/localizing-your-projects`{.interpreted-text role="doc"}! diff --git a/docz/docs/dev/feature-development-process.md b/docz/docs/dev/feature-development-process.md new file mode 100644 index 0000000000..25a9c22784 --- /dev/null +++ b/docz/docs/dev/feature-development-process.md @@ -0,0 +1,112 @@ +# Feature Development Process + +Landing a new feature or significant change in Pontoon follows a +structured yet flexible process. The goal is to ensure high-quality, +well-considered contributions that align with project priorities and +community needs. + +::: {.contents depth="1" local=""} +Table of Contents +::: + +## Propose the Idea (Filing an Issue) + +Anyone can suggest improvements: new features, enhancements to existing +ones, or feature removals. + +- For trivial changes (typos, minor bugfixes), a pull request (PR) + alone may suffice---no dedicated issue required. +- For anything non-trivial, create a GitHub issue in the + mozilla/pontoon repository. + - Clearly describe the problem/opportunity. + - Explain the motivation, expected impact, and user value. + - Include relevant context (screenshots, use cases, alternatives + considered). + +## Triage + +Core maintainers review new issues and perform triage on a weekly basis +to assign: + +- Type: Bug, Feature, Task. +- Priority label: P1 (must be fixed immediately) to P5 (valid bug, but + you might need to fix it). +- Labels such as "needs specification" or "needs documentation" if + required. +- Labels for rough time estimate: hours, days, weeks, months, + quarters. + +The issue is added to the Pontoon Roadmap GitHub project: + +- Initially placed in "Needs triage". +- Moved to "Ready" once actionable. +- Kept in "Not ready yet" if more discussion or a spec is needed. +- High-priority items ready for near-term work move to the top of the + "Ready" column. +- Larger initiatives (estimated to take months or quarters) are always + kept in the \"Not ready\" column before they are split into smaller + issues. + +## Specification (Recommended for Larger Features) + +For medium-to-large features (those affecting UX flows, data models, +multiple areas, or needing community consensus): + +- Draft a specification document in Markdown format and submit it as a + PR to the [specs/]{.title-ref} folder. +- Follow the structure seen in existing specs (problem statement, + goals, user stories, proposed solution, impacted areas, risks, + alternatives, migration plan if applicable). +- Get feedback and approval from core team members. + +Once approved, remove any "needs specification" label and move the issue +to "Ready" on the Roadmap. + +## Implementation (Writing Code) + +- When ready to begin, assign yourself or get assigned to the issue. +- The issue will then move to "In Progress" on the Roadmap. +- Work in a feature branch. +- Deliver: + - Clean, complete code. + - Unit and integration tests with good coverage. + - Any necessary database migrations or data changes. + +## Code Review + +- Open a pull request targeting the "main" branch. +- Make sure CI tests pass. +- Review is requested from core Pontoon team members. +- Address feedback on code quality, security, performance, test + coverage, and best practices. +- Once approved, the PR is merged. +- The associated issue is automatically closed and moved to "Done" on + the Roadmap. + +## Testing + +- The contributor is primarily responsible for thorough testing. +- Verify the feature behaves as intended. +- Check for regressions. +- For larger features, perform extensive testing in the development + environment during/after review. +- Core team may run additional testing. + +## Release + +- Features are first deployed to the [development + environments](https://pontoon.allizom.org/) for final validation. +- Once confirmed stable, they go live on production. +- Deployments are handled by core maintainers and occur as changes are + ready (typically immediately after, no strict cadence). + +## Documentation & Discoverability (as Needed) + +- If labeled "needs documentation" or if the change affects users + noticeably: + - Update or add content in the Pontoon documentation for + localizers. +- For major or high-impact features: + - Core team may add in-app announcements. + - The contributor might write a blog post on the [Mozilla L10n + blog](https://blog.mozilla.org/l10n/). diff --git a/docz/docs/dev/first-contribution.md b/docz/docs/dev/first-contribution.md new file mode 100644 index 0000000000..d8b3639e64 --- /dev/null +++ b/docz/docs/dev/first-contribution.md @@ -0,0 +1,187 @@ +--- +title: The Guide to your First Contribution to Pontoon +--- + +Welcome to Pontoon! + +This document is going to guide you as you discover Pontoon and make +valuable contributions. It will walk you step by step until you are in a +position to write code that you can reliably run, test, and send for +review. + +# 1. Make sure it\'s a good match + +*Before contributing to an open source project, it is important to make +sure that the project uses technologies that you know and want to learn +more about.* + +Pontoon is a web application, with both back-end and front-end code. The +two languages we use are **Python** (back-end) and **JavaScript** +(front-end). On the back-end, we use the **Django** framework. On the +front-end, we use the **React** framework. To be able to contribute, you +will want to have knowledge of either Python and Django or JavaScript +and React. Having experience with both pairs is of course even better! + +We use **git** to version our code, and we use **GitHub** to handle pull +requests and code reviews. Basic knowledge of git is required to be able +to send your contributions our way. + + ------------------------------------------------------ + Skill Expected Level Notes + -------------- ------------------- ------------------- + git Basic knowledge + + Python Some experience Python 3 + + Django Basic knowledge + + JavaScript Some experience ECMAScript 2018 + + React Basic knowledge + ------------------------------------------------------ + +# 2. Install Pontoon + +*In order to be able to contribute code to an open source project, you +first need to be able to run that project on your computer.* + +The recommended method of installing Pontoon is using `docker` and our +scripts. It is straightforward if your computer is running with Linux or +macOS, and a tad more difficult for Windows. In all cases, follow the +instructions in our `setup`{.interpreted-text role="doc"} page. + +# 3. Populate your database + +*After installing a tool, it is likely that its database is empty. You +will need to create some data in order to have things show up in the +interface.* + +Once Pontoon is installed and you have it running, you will want to +create some data so that you can play with it, and test it in action. +You can create any kind of data you want, of course, but to make it +easier we have a special git repository that we made for testing +Pontoon. Here are the steps to add that project to your Pontoon +instance: + +1. Log in to your local instance with the superuser account you created + during the previous step. +2. Click the avatar in the top-right corner, and in the menu click + \"Admin\". +3. You will see the Admin panel, with a table of projects that will + likely be empty. Click the \"Add New Project\" button. +4. Fill the project creation form as follows: + 1. Name: Pontoon Test + 2. Slug (auto-filled): pontoon-test + 3. Locales: select Slovenian (sl), then add any locales you want + 4. Repositories - URL: + +5. Leave the rest as it is, then scroll to the bottom of the page, and + click the \"Save Project\" button. +6. Once the project is saved, scroll to the bottom of the page again, + and click the \"Sync\" button. This will pull the data from the + repository, and create entries for each of the locales you have + enabled. +7. And that\'s it! You should now have a project enabled for some + locale. + +# 4. Verify your setup + +*Setting up a project means more than installing it: it also means +making sure that the tool runs and that tests pass.* + +Once you have successfully installed and populated Pontoon on your +computer, you will need to make a few verifications. First and foremost, +make sure the site works correctly, and the data you created previously +shows up. Make sure you can log in, that you can send some translations, +that projects appear on the dashboards, etc. + +Second, you will want to run the tests and make sure they pass. We have +a few test suites for Pontoon, some for the front-end, others for the +back-end, as well as a few code-quality tests. To run all of the tests +(same as what will happen when you open a pull request in GitHub), use +the command `make test`. + +When you have successfully verified that your setup works correctly, you +can safely move to the next part. + +# 5. Choose an issue to work on + +*You are now ready to make a contribution! Open source projects usually +have a list of mentored issues that are appropriate to work on first, +and on which mentors will be available to help you.* + +Work that needs to be done on Pontoon is tracked in +[GitHub](https://github.com/mozilla/pontoon/issues), where we maintain a +list of what we deem [good first +issues](https://github.com/mozilla/pontoon/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). + +Look through that list for unassigned issues, choose one that is +appealing to you and seems appropriate for your skill set, then comment +on that issue asking to be assigned to it. Feel free to start working on +it right away --- even if you end up not being assigned for some reason, +it will still be a good experience for you. + +# 6. Read the contributing rules + +*Most projects have strict contributing rules, and your contributions +risk not being accepted if you don\'t respect them.* + +To make developer\'s lives easier, we enforce a few contribution rules +around Pontoon. They range from how to style your code to how to write +commit messages. All these rules are written in our +`contributing`{.interpreted-text role="doc"} page. Please read it before +opening a pull request! + +There is more documentation around Pontoon, and it is often worth +reading it, if only to understand better how the tool works and how and +where to make your contributions. Here are a few links to important +documentation resources: + +- If you want to work on the front-end, it is important that you read + the [Front-End + Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). +- Most of the documentation around installing and developing can be + found in [Pontoon\'s + Documentation](https://mozilla-pontoon.readthedocs.io/en/latest/). +- For documentation about using Pontoon to localize, see [How to use + Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/). +- For documentation about exposing a project on Pontoon, see [How to + localize your + projects](https://mozilla-pontoon.readthedocs.io/en/latest/user/localizing-your-projects.html). +- For documentation about managing communities in Pontoon, see + [Working with + Pontoon](https://mozilla-l10n.github.io/documentation/tools/pontoon/). + +# 7. Communicate with us + +*Open source projects are usually built around a community of people. +Communicating with that community is an important part of contributing +to such projects.* + +There are two main places where we communicate about Pontoon\'s +development. The first one is +[chat.mozilla.org](https://chat.mozilla.org/), used for real-time chat, +quick questions, side-track conversations, etc. Find us in the [#pontoon +channel](https://chat.mozilla.org/#/room/#pontoon:mozilla.org). + +The second is [GitHub +Discussions](https://github.com/mozilla/pontoon/discussions), a forum +platform that we use for more long-term conversations. + +These are both places that we strongly encourage you to join, and they +are where you should introduce yourself, ask questions, show your work, +etc. + +Pontoon\'s core developer team is currently composed of Matjaž and +Eemeli. We also regularly receive invaluable help from community +members. + + ------------------------------------------------------------------------------------------------------------------------------------------------------------ + Name ROLE chat.mozilla.org github + --------------------------------------------------------------------- -------- --------------- ------------------ ------------------------------------------ + ![image0](https://avatars2.githubusercontent.com/u/626716?s=32&v=4) Matjaž Pontoon Core mathjazz [mathjazz](https://github.com/mathjazz/) + Developer + + ![image1](https://avatars3.githubusercontent.com/u/617000?s=32&v=4) Eemeli Pontoon Core eemeli [eemeli](https://github.com/eemeli/) + Developer + ------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/docz/docs/dev/index.md b/docz/docs/dev/index.md new file mode 100644 index 0000000000..f8430fd27b --- /dev/null +++ b/docz/docs/dev/index.md @@ -0,0 +1,52 @@ +# Developer Guide + +[Pontoon](https://github.com/mozilla/pontoon) is a translation +management system used and developed by the Mozilla localization +community. It can handle any project that uses one of the supported file +formats: + +- .dtd +- .ftl (Fluent) +- .ini +- .json (WebExtensions) +- .json (key-value) +- .po (Gettext) +- .properties +- .xliff +- .xml (Android) + +Pontoon pulls strings it needs to translate from an external source and +writes them back periodically. Typically these external sources are +version control repositories that store the strings for an application. +Supported external sources are **Git** and **Mercurial** repositories. + +## Contributing + +If you are interested in contributing to Pontoon\'s code, start with +`dev/first-contribution`{.interpreted-text role="doc"}. + +## Deploying + +If you want to deploy your own instance of Pontoon, read the +`admin/deployment`{.interpreted-text role="doc"} section. + +Once you have a running instance, you will likely want to learn about +`user/localizing-your-projects`{.interpreted-text role="doc"}, and then +dive into [management +tasks](https://mozilla-l10n.github.io/documentation/tools/pontoon/). + +## Localizing + +If you\'re looking for help on using Pontoon for localizing projects, +whether on Mozilla\'s instance or any other, you can read our [How to +use +Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) +documentation. + +## Contents + +::: {.toctree maxdepth="2"} +dev/first-contribution dev/setup dev/contributing +dev/feature-development-process admin/deployment admin/maintenance +user/localizing-your-projects dev/setup-virtualenv +::: diff --git a/docz/docs/dev/localizing-your-projects.md b/docz/docs/dev/localizing-your-projects.md new file mode 100644 index 0000000000..bfc59e2835 --- /dev/null +++ b/docz/docs/dev/localizing-your-projects.md @@ -0,0 +1,108 @@ +--- +title: Localizing your projects +--- + +The following describes how to make your projects localizable with your +Pontoon instance. + +Pontoon specializes in using version control systems as the source and +store of localizable strings. While internal Pontoon DB can be used for +that purpose as well, steps below assume you store strings in a [GitHub +repository](https://help.github.com/en/articles/create-a-repo). + +# Prerequisites + +Before you can set up a new project in Pontoon: + +1. Ensure your project works with one of the + `supported l10n frameworks <../index>`{.interpreted-text + role="doc"}. + +2. Extract localizable strings into resource files. + +3. Push resource files to your GitHub repository. + +4. Make sure your Pontoon instance has write access to your repository. + + ::: note + ::: title + Note + ::: + + The recommended way for that is to create a dedicated GitHub account + for your Pontoon instance, [add it as a + collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) + to your repository, and set `SSH_KEY` and `SSH_CONFIG` + `as documented <../admin/deployment>`{.interpreted-text role="doc"}. + ::: + +# Folder structure + +To let Pontoon discover your localizable files, you\'ll either need to +specify paths in the [project configuration +file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) +or strictly follow the file and folder structure as expected by Pontoon: + +1. Locale folders (including source locale) must be located at the same + nesting level of the directory tree. You may want to put all locale + folders under a `locales` folder. +2. Source locale needs to be called `templates`, `en-US`, `en-us` or + `en`. If multiple folders with such name exist in the repository and + contain files in a supported file format, the first one will be + used. +3. Locale folder names must always match locale identifiers used by + Pontoon. If your application requires different identifiers, you can + try creating symbolic links to locale folders. +4. Locale code must not be part of the file name. + +Correct pattern: + + locales/{locale_code}/path/to/file.extension + +Incorrect pattern: + + locales/{locale_code}/path/to/file.{locale_code}.extension + +For Gettext files, you will need to ensure that `.po` files are included +in the repository for each target locale for which they are to be +translated (these files may be initially empty). For all other supported +formats, Pontoon will automatically add files for each locale when it is +translated. + +# Adding a new project to Pontoon + +When accessing your deployed app, your email address is your login in +the Sign In page and your password is the one picked during setup. After +you log in, access Pontoon Admin (`/admin/`), click **ADD NEW PROJECT** +and fill out the following required fields: + +1. **Name**: name of the project to be displayed throughout Pontoon + app. The following project names are reserved: `Terminology`, + `Tutorial`, `Pontoon Intro`. +2. **Slug**: used in URLs, will be generated automatically based on the + Name. +3. **Locales**: select at least one Localizable locale by clicking on + it. +4. **Repository URL**: enter your repository\'s SSH URL of the form + `git@github.com:user/repo.git`. +5. **Download prefix or path to TOML file**: a URL prefix for + downloading localized files. +6. Click **SAVE PROJECT** at the bottom of the page. +7. After the page reloads, click **SYNC** and wait for Pontoon to + import strings. You can monitor the progress in the Sync log + (`/sync/log/`). +8. When the synchronization is finished, you should check the imported + resources and the entities. If everything went okay, you can proceed + to the next step. +9. Go to the project\'s admin page and change the visibility option to + make the project public. It\'s required because all new projects in + Pontoon are private by default and aren\'t visible to localizers and + locale managers. + +For complete documentation of the Admin form, please refer to Mozilla\'s +[new project +documentation](https://mozilla-l10n.github.io/documentation/tools/pontoon/adding_new_project.html). + +At this point you are ready to [start localizing your +project](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) +at `/projects/SLUG/`! diff --git a/docz/docs/dev/maintenance.md b/docz/docs/dev/maintenance.md new file mode 100644 index 0000000000..50f4d29480 --- /dev/null +++ b/docz/docs/dev/maintenance.md @@ -0,0 +1,108 @@ +--- +title: Maintenance +--- + +The following describes tricks and tools useful for debugging and +maintaining an instance of Pontoon deployed to Heroku. + +# Monitoring Celery + +[Flower](https://github.com/mher/flower) is a web interface for +monitoring a [Celery](http://www.celeryproject.org/) task queue. It\'s +useful for seeing how the worker dynos are handling sync jobs. + +After installation, you can run a local instance of Flower and connect +it to a Heroku-hosted instance of RabbitMQ: + +``` bash +# Replace my-app-name with your Heroku app's name. +flower --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` +``` + +# Releasing the queue + +If queue gets stuck, tasks don\'t make it to the worker until manual +intervention. You can fix this by running the following commands from +your local development environment. + +First, you need to purge the queue: + +``` bash +# Replace my-app-name with your Heroku app's name. +celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` amqp +# Replace my-queue-name with your queue's name (e.g. celery). +1> queue.purge my-queue-name +``` + +Finally, you need to simply access the worker: + +``` bash +# Replace my-app-name with your Heroku app's name. +celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` worker +``` + +# Mitigating DDoS attacks + +In a distributed denial-of-service attack +([DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack), +the incoming traffic flooding the victim originates from many different +sources. This stops everyone else from accessing the website as there is +too much traffic flowing to it. + +One way to mitigate DDoS attacks is to enable traffic throttling. Set +the [THROTTLE_ENABLED]{.title-ref} environment variable to True and +configure other THROTTLE\* variables to limit the number of requests per +period from a single IP address. + +A more involved but also more controlled approach is to identify the IP +addresses of the attackers (see the handy [IP detection +script](https://github.com/mozilla-l10n/pontoon-scripts/blob/main/dev/check_ips_heroku_log.py) +to help with that) and block them. Find the attacking IP addresses in +the Log Management Add-On (Papertrail) and add them to the BLOCKED_IPs +config variable in Heroku Settings. + +# Vacuuming a Database + +To reduce the size of Postgres DB tables and improve performance, it is +recommended to [vacuum the +database](https://devcenter.heroku.com/articles/managing-vacuum-on-heroku-postgres) +regularly. Heroku already does that partially by running the +[VACUUM]{.title-ref} command automatically, but that only marks the +space as available for reuse. + +Running [VACUUM FULL]{.title-ref} offers a more exhaustive cleanup and +reduces bloat. + +> ::: warning +> ::: title +> Warning +> ::: +> +> [VACUUM FULL]{.title-ref} is a heavyweight operation, which prevents +> any other statements from running concurrently, even simple SELECT +> queries. For most tables it only takes a few seconds to complete, but +> on the bigger tables it can take up to a few minutes. During that +> time, the application will be unresponsive. +> ::: + +You can run [VACUUM FULL]{.title-ref} with the following command: + +``` bash +$ heroku pg:psql --app mozilla-pontoon +=> VACUUM FULL table_name; +``` + +To list the DB tables, ordered by size, run: + +``` bash +$ heroku pg:psql --app mozilla-pontoon +=> SELECT + table_name, + pg_size_pretty(pg_total_relation_size(table_name::text)) AS size + FROM + information_schema.tables + WHERE + table_schema = 'public' + ORDER BY + pg_total_relation_size(table_name::text) DESC; +``` diff --git a/docz/docs/dev/setup-virtualenv.md b/docz/docs/dev/setup-virtualenv.md new file mode 100644 index 0000000000..af2f83e54e --- /dev/null +++ b/docz/docs/dev/setup-virtualenv.md @@ -0,0 +1,211 @@ +--- +title: Developer Setup with virtualenv +--- + +The following document describes how to set up an instance of the site +on your computer for development. + +> ::: note +> ::: title +> Note +> ::: +> +> Installation with virtualenv is not recommended. If possible, please +> use Developer Setup with Docker, which is simpler and makes it easier +> to reproduce potential issues. +> ::: + +# Prerequisites + +This guide assumes you have already installed and set up the following: + +1. [Git](https://git-scm.com) +2. [Python 3.11](https://www.python.org) +3. [uv](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer) +4. [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com) +5. [PostgreSQL 15](http://www.postgresql.org) + +These docs assume a Unix-like operating system, although the site +should, in theory, run on Windows as well. All the example commands +given below are intended to be run in a terminal. + +If you\'re on Ubuntu 24.04 LTS, you can install all the prerequisites +using the following commands: + +> ``` bash +> # These steps are required to install PostgreSQL 15 (default is 16) +> sudo apt install -y dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl +> curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null +> echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list +> sudo apt update +> +> sudo apt install -y git python3-dev python-is-python3 virtualenv postgresql-client-15 postgresql-15 libxml2-dev libxslt1-dev libmemcached-dev libpq-dev nodejs npm +> # Set Python 3.11 as default +> update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 +> +> # Install uv +> curl -LsSf https://astral.sh/uv/install.sh | sh +> source $HOME/.cargo/env +> +> # Start PostgreSQL server +> /etc/init.d/postgresql start +> ``` + +# Installation + +1. Clone this [repository](https://github.com/mozilla/pontoon) or your + [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo): + + ``` bash + git clone https://github.com/mozilla/pontoon.git + cd pontoon + ``` + +2. Create a virtualenv for Pontoon with Python 3.11 and activate it: + + ``` bash + uv python install 3.11 + uv venv --python 3.11 + # Activate virtualenv + source .venv/bin/activate + ``` + + ::: note + ::: title + Note + ::: + + Whenever you want to work on Pontoon in a new terminal you\'ll have + to re-activate the virtualenv. + ::: + +3. Install the dependencies: + + ``` bash + uv pip install -r requirements/default.txt -r requirements/dev.txt -r requirements/test.txt + ``` + +4. Create your database, using the following set of commands. + + First connect to Postgres: + + ``` bash + sudo -u postgres psql + ``` + + Then run the following commands in the console: + + ``` bash + CREATE USER pontoon WITH PASSWORD 'asdf' SUPERUSER; + CREATE DATABASE pontoon; + GRANT ALL PRIVILEGES ON DATABASE pontoon to pontoon; + \q + ``` + +5. Create a `.env` file at the root of the repository to configure the + settings for your development instance. It should look something + like this: + + ``` ini + SECRET_KEY=insert_random_key + DJANGO_DEV=True + DJANGO_DEBUG=True + DATABASE_URL=postgres://pontoon:asdf@localhost/pontoon + SESSION_COOKIE_SECURE=False + SITE_URL=http://localhost:8000 + FXA_CLIENT_ID=2651b9211a44b7b2 + FXA_SECRET_KEY=a3cafccbafe39db54f2723f8a6f804c337e362950f197b5b33050d784129d570 + FXA_OAUTH_ENDPOINT=https://oauth-stable.dev.lcip.org/v1 + FXA_PROFILE_ENDPOINT=https://stable.dev.lcip.org/profile/v1 + ``` + + Make sure to make the following modifications to the template above: + + - `SECRET_KEY` should be set to some random key you come up with, + as it is used to secure the authentication data for your local + instance. + - `DATABASE_URL` should contain the connection data for connecting + to your Postgres database. It takes the form + `postgres://username:password@server_addr/database_name`. + - `SITE_URL` should be set to the URL you will use to connect to + your local development site. Some people prefer to use + `http://127.0.0.1:8000` instead of `localhost`. However, should + you decide to change the `SITE_URL`, you also need to + [request](https://mozilla.github.io/ecosystem-platform/) the new + `FXA_CLIENT_ID` and `FXA_SECRET_KEY`. + +6. Initialize your database by running the migrations: + + ``` bash + python manage.py migrate + ``` + +7. Create a new superuser account: + + ``` bash + python manage.py createsuperuser + ``` + + Make sure that the email address you use for the superuser account + matches the email that you will log in with via Firefox Accounts. + +8. After you\'ve provided credentials for your django-allauth provider, + you have to update them in database, because it\'s required by + django-allauth. You will have to call this command after every + change in your django-allauth settings (e.g. client key): + + ``` bash + python manage.py update_auth_providers + ``` + +9. Install the required Node libraries using `npm`: + + ``` bash + npm install + ``` + +10. Build the client: + +> ``` bash +> npm run build +> ``` + +Once you\'ve finished these steps, you should be able to start the site +by running: + +``` bash +python manage.py runserver +``` + +The site should be available at . + +# Extra settings + +The following extra settings can be added to your `.env` file. + +`GOOGLE_TRANSLATE_API_KEY` + +: Set your [Google Cloud Translation + API](https://cloud.google.com/translate/) key to use generic machine + translation engine by Google. + +`GOOGLE_AUTOML_PROJECT_ID` + +: Set your [Google Cloud AutoML + Translation](https://cloud.google.com/translate/) model ID to use + custom machine translation engine by Google. + +`MICROSOFT_TRANSLATOR_API_KEY` + +: Set your [Microsoft Translator + API](http://msdn.microsoft.com/en-us/library/hh454950) key to use + machine translation by Microsoft. + +`GOOGLE_ANALYTICS_KEY` + +: Set your [Google Analytics key](https://www.google.com/analytics/) + to use Google Analytics. + +`MANUAL_SYNC` + +: Enable Sync button in project Admin. diff --git a/docz/docs/dev/setup.md b/docz/docs/dev/setup.md new file mode 100644 index 0000000000..6a119d78f2 --- /dev/null +++ b/docz/docs/dev/setup.md @@ -0,0 +1,126 @@ +--- +title: Developer Setup +--- + +The following describes how to set up an instance of the site on your +computer for development with Docker. + +> ::: warning +> ::: title +> Warning +> ::: +> +> These installation steps are made for development only. It is not +> recommended to run Pontoon via Docker in production. +> ::: + +# Prerequisites + +1. Install [Docker](https://docs.docker.com/install/). +2. Install [latest versions of Node.js and + npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). +3. Install [make](https://www.gnu.org/software/make/) using either your + system\'s package manager (Linux) or Xcode command line developer + tools (OSX). On Windows, you can use + [MozillaBuild](https://wiki.mozilla.org/MozillaBuild). + +# Quickstart + +1. Clone the [Pontoon repository](https://github.com/mozilla/pontoon): + + $ git clone https://github.com/mozilla/pontoon.git + + ::: note + ::: title + Note + ::: + + To contribute changes to the project, you will need to + [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) + the repository under your own GitHub account. + ::: + +2. From the root of the repository, run: + + $ make build + + That will install Pontoon\'s JS dependencies, build the frontend + packages, and build the server container. + + ::: note + ::: title + Note + ::: + + If you want to share your development instance in your local + network, set SITE_URL to bind the server to any address you like, + e.g. `make build SITE_URL="http://192.168.1.14:8000"`. + ::: + +3. Run the webapp: + + $ make run + + ::: note + ::: title + Note + ::: + + The first time you run this, the PostgreSQL container needs to do + some work before it becomes available to the server container. + Hence, the server might not be able to perform things like + migrations. You can simply wait for the postgresql container to + report that it\'s ready, then abort the process, then restart it. + That should let the server do all its setup as expected. + + Alternatively, you can run `docker-compose up postgresql` and wait + until it reports that the database is ready, then stop that and run + `make run`. + ::: + +4. Finally, you need to run some setup steps, while the server is + running: + + $ make setup + + This will ask you to create a superuser, and then will update your + Firefox account settings. + +The app should now be available at or the custom +SITE_URL. + +And with that, you\'re ready to start `contributing`{.interpreted-text +role="doc"}! + +# Installing Docker on Windows Pro/Enterprise/Education + +Install [Docker Desktop for +Windows](https://docs.docker.com/desktop/install/windows-install/). + +## Install tools (git, make, cygwin) + +The easiest way is to use a package manager like +[Chocolatey](https://chocolatey.org/install). Follow the installation +instructions for Windows Powershell (Admin), then run +`choco install make git cygwin` to install all packages. + +Follow the prompt requests allowing script execution. At the end, verify +that packages are available with `make --version` and `git --version`, +it should return a version for each command. + +At this point you need to disable the config `core.autocrlf` before +cloning the Pontoon repository, otherwise all files will use Windows +line-endings (CRLF), and docker images will fail to build. To do so, +open a Powershell as Admin (right click on the Start Menu, select +*Windows Powershell (Admin)*), and run: + + git config --system --unset core.autocrlf + git config --global core.autocrlf false + +You can use `git config -l` to verify that the value for `core.autocrlf` +is correctly set. + +At this point, you can open the *Cygwin64 Terminal* and proceed with the +installation (the content of `C:` will be available in `/cygdrive/c`). +Once the Docker image is running, Pontoon\'s instance will be available +at . diff --git a/docz/docs/index.md b/docz/docs/index.md new file mode 100644 index 0000000000..fe3c9f3d47 --- /dev/null +++ b/docz/docs/index.md @@ -0,0 +1,61 @@ +# Pontoon Documentation + +**Pontoon** is Mozilla's translation management system (TMS) — a web-based platform that enables the Mozilla localization community to translate, review, and manage strings for Mozilla's products and websites. + +Pontoon specializes in community-driven open source localization, pulling strings directly from version control repositories (Git and Mercurial) and writing translations back automatically. It supports a wide range of localization file formats including Fluent, Gettext PO, XLIFF, .properties, DTD, and more. + +--- + +## Who is this documentation for? + +
+ +- :material-translate: **Localizers** + + --- + + You're a contributor who translates and reviews strings in Pontoon. + + [:octicons-arrow-right-24: Localizer Guide](localizer/index.md) + +- :material-cog: **Admins & Project Managers** + + --- + + You manage Pontoon's projects, locales, users, and configuration. + + [:octicons-arrow-right-24: Admin Guide](admin/index.md) + +- :material-code-braces: **Developers** + + --- + + You contribute to Pontoon's codebase or deploy your own instance. + + [:octicons-arrow-right-24: Developer Guide](dev/index.md) + +
+ +--- + +## Quick links + +| I want to… | Go to | +|---|---| +| Start translating a project | [How to Translate](localizer/translate.md) | +| Learn the translation workspace UI | [Translation Workspace](localizer/translation-workspace.md) | +| Understand user roles | [User Accounts & Settings](localizer/users.md) | +| Add a new project | [Adding a New Project](admin/adding-new-project.md) | +| Add a new locale | [Adding a New Locale](admin/adding-new-locale.md) | +| Set up Pontoon locally for development | [Developer Setup](dev/setup.md) | +| Deploy Pontoon to production | [Deployment](dev/deployment.md) | +| Make my first code contribution | [Your First Contribution](dev/first-contribution.md) | + +--- + +## About Pontoon + +Pontoon is developed and maintained by Mozilla and is available as open source software at [github.com/mozilla/pontoon](https://github.com/mozilla/pontoon). The Mozilla instance is hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org). + +!!! note "Scope of this documentation" + While most of this documentation applies to any Pontoon deployment, the Mozilla instance is used as the primary example. Some sections — particularly in the Admin Guide — are specific to Mozilla's deployment. diff --git a/docz/docs/localizer/glossary.md b/docz/docs/localizer/glossary.md new file mode 100644 index 0000000000..43215350a6 --- /dev/null +++ b/docz/docs/localizer/glossary.md @@ -0,0 +1,60 @@ +# Glossary + +Key terms used throughout Pontoon and this documentation. + +## Contributor +A user without translator permissions. Contributors can only submit **suggestions**, which must be reviewed and approved by a Translator or Team Manager before appearing in the product. + +## Concordance search +A search feature in the Machinery tab that searches across **all projects** in Pontoon using either the source or target language. Results show the source string, translation, and project name; clicking a result fills the translation into the editor. + +## Fuzzy +An internal state available only in Gettext (`.po`) files. A string may be marked fuzzy when: + +- The source string changed after it was already translated. +- A translator manually marked it for review. +- New strings were merged into the localized files using the option to match existing translations. + +Fuzzy strings are equivalent to "needs review" and are not used by the website or application. + +## Locale +The combination of a language and a region, represented in Pontoon by a locale code. For example, American English is `en-US`, where `en` is the language and `US` is the region. In some cases, the region is omitted. Each locale in Pontoon maps to a **Team**. + +## Pretranslation +An automated feature that uses **translation memory** (100% matches first) and **Google AutoML Translation** (a custom trained model) to automatically translate new strings. Pretranslated strings have the *Pretranslated* status and must be reviewed before they are considered final. For VCS projects, pretranslations are saved directly to localized files. + +## Resource +A localization file within a repository used to store source content and translations. Resources generally follow a key-value structure where the key (displayed as *Context* in Pontoon) is a unique identifier and the value is the text to translate. Supported formats include Fluent, Gettext PO, XLIFF, `.properties`, DTD, and others. + +## Suggestion +A translation submitted by a Contributor, or by a Translator/Manager who has enabled *Make suggestions*. A suggestion exists only in the Pontoon database — it is not committed to the VCS or added to the translation memory until approved. + +## Sync +The process by which Pontoon periodically (typically every 10 minutes) pulls source strings and translations from VCS repositories and writes approved translations back. Sync keeps the Pontoon database and the repository in sync. + +## TBX (TermBase eXchange) +A standard XML file format for exchanging **terminology** (glossary) data between translation tools. + +## Terminology / Glossary +A curated list of terms and their definitions. Pontoon highlights recognized terms in source strings and shows their definitions and existing translations into the target language. + +## TMX (Translation Memory eXchange) +A standard XML file format for exchanging **translation memory** data between translation tools. Pontoon's translation memory can be downloaded as a TMX file from any Team page. + +## Translation memory (TM) +A database of all approved translations for any string in Pontoon. It is used as a suggestion source in the Machinery tab and powers the pretranslation feature. Translation memory can be downloaded as a TMX file. + +## Translation Mode +The editing mode available to Translators and Team Managers in which a green **SAVE** button is displayed. Saving a translation approves it directly, commits it to VCS (where applicable), and rejects all pending suggestions. + +## Suggestion Mode +The editing mode (default for Contributors; optionally enabled by Translators/Managers) in which a blue **SUGGEST** button is displayed. Submissions are stored as unreviewed suggestions. + +## Translator +A user with permission to submit approved translations directly and to review suggestions. See [User Accounts & Settings](users.md#roles-and-permissions). + +## Team Manager +A user who has Translator permissions and can also manage permissions for other users within their locale. See [User Accounts & Settings](users.md#roles-and-permissions). + +## VCS (Version Control System) +The external system where source strings and translations are stored — typically a Git or Mercurial repository. Pontoon reads from and writes to VCS repositories as part of the Sync process. diff --git a/docz/docs/localizer/index.md b/docz/docs/localizer/index.md new file mode 100644 index 0000000000..10c239c23b --- /dev/null +++ b/docz/docs/localizer/index.md @@ -0,0 +1,53 @@ +# Localizer Guide + +This guide covers everything you need to know to translate and review strings in Pontoon, from day-to-day translation work to managing your account and notifications. + +!!! note + The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](users.md). + +## Sections + +
+ +- :material-pencil: **[How to Translate](translate.md)** + + Step-by-step guide to submitting translations and suggestions, reviewing other contributors' work, and an example team workflow. + +- :material-view-dashboard: **[Translation Workspace](translation-workspace.md)** + + A detailed tour of the translation editor: the sidebar, string filters, machinery tab, AI refinement, comments, and keyboard shortcuts. + +- :material-folder-multiple: **[Team & Project Pages](teams-projects.md)** + + How to navigate team dashboards, project pages, and localization pages; how to request new projects or locales. + +- :material-account-cog: **[User Accounts & Settings](users.md)** + + Account setup, roles and permissions, profile visibility settings, and personal preferences. + +- :material-bell: **[Notifications](notifications.md)** + + How Pontoon notifies you of new strings, reviews, mentions, and project updates. + +- :material-account: **[Profile Page](profile.md)** + + What's on your public profile and how to customize it. + +- :material-book-open-variant: **[Glossary](glossary.md)** + + Definitions of key terms used throughout Pontoon and this documentation. + +
+ +## User roles + +Pontoon has four user roles, each with different capabilities: + +| Role | Can submit translations | Can review | Can manage users | +|---|---|---|---| +| **Contributor** | Suggestions only | ✗ | ✗ | +| **Translator** | ✓ (directly or via suggestion) | ✓ | ✗ | +| **Team Manager** | ✓ | ✓ | ✓ (within their locale) | +| **Administrator** | ✓ | ✓ | ✓ (all locales) | + +New users automatically start as Contributors and can be promoted by Team Managers or Administrators. diff --git a/docz/docs/localizer/notifications.md b/docz/docs/localizer/notifications.md new file mode 100644 index 0000000000..70a0596372 --- /dev/null +++ b/docz/docs/localizer/notifications.md @@ -0,0 +1,26 @@ +# Notifications + +Pontoon notifies you of relevant activity through in-app notifications and optional email digests. + +## Types of notifications + +- **New unreviewed suggestions** — sent when new suggestions are submitted, unapproved, or unrejected in the last 7 days. +- **Review decisions** — when one of your suggestions is approved or rejected. +- **Mentions** — when someone mentions you in a comment using REQUEST CONTEXT or REPORT ISSUE. +- **Deadline reminders** — sent 7 days and 2 days before a project deadline for your active locale. +- **Pinned comments** — when an Administrator pins a source string comment. +- **Messaging Center** — messages sent by Administrators (in-app or email; see [Messaging Center](../admin/messaging-center.md)). + +## Notification digests + +Pontoon sends a **weekly notification digest** summarizing recent activity. You can configure the day of the week for delivery in your account settings. + +!!! note + Notifications sent via the Messaging Center are **not** included in notification email digests. + +## Pontoon Notifications browser add-on + +The Pontoon Notifications add-on, created by Mozilla localizer Michal Stanke, brings Pontoon notifications directly into your browser toolbar. It also includes features for proofreading and bug reporting. + +- [Chrome add-on](https://chrome.google.com/webstore/detail/pontoon-add-on/gnbfbnpjncpghhjmmhklfhcglbopagbb) +- Firefox add-on available on addons.mozilla.org diff --git a/docz/docs/localizer/profile.md b/docz/docs/localizer/profile.md new file mode 100644 index 0000000000..0a5165b34d --- /dev/null +++ b/docz/docs/localizer/profile.md @@ -0,0 +1,21 @@ +# Profile Page + +Your Pontoon profile page is your public (or semi-public) contributor page. It shows your contribution history and account information. + +## What's on your profile + +- **Display name and avatar** (from your Mozilla account / Firefox Accounts). +- **User banner** — a badge displayed next to your name across Pontoon, reflecting your role or contribution milestones. +- **Contribution statistics** — total translations submitted, approval rate, and self-approval rate. +- **External accounts** — links to other accounts (e.g., GitHub) if you've added them and made them visible. +- **Recent contribution activity** — a timeline of recent translation and review activity. + +## Privacy + +You control who can see your profile information. See [User Accounts & Settings](users.md#profile-visibility) for visibility options for each field. + +## Accessing your profile + +Click your avatar or username in the top-right corner of any Pontoon page, then select **Profile**. + +To view another contributor's profile, click their name or avatar in the Contributors tab of any Team or Project page. diff --git a/docz/docs/localizer/teams-projects.md b/docz/docs/localizer/teams-projects.md new file mode 100644 index 0000000000..e20cdae539 --- /dev/null +++ b/docz/docs/localizer/teams-projects.md @@ -0,0 +1,95 @@ +# Team & Project Pages + +Pontoon organizes work around **Teams** (one per locale) and **Projects** (one per product or website). This page explains how to navigate these pages and what you can do from each. + +## Projects page + +The Projects page lists all projects available in Pontoon. Access it by clicking **Projects** in the page header or navigating to `/projects`. + +Each project entry shows: + +- **Priority** (1–5 stars), based on product importance, user base size, and update frequency. +- **Target date** (for projects with a deadline). +- **Repository** link. +- **External resources** (e.g., testing instructions, screenshots). + +A blue lightbulb icon in the rightmost column indicates the project has unreviewed translations. Click the lightbulb icon in the column header to sort by unreviewed count. + +## Project page + +Clicking a project opens its Project page. The header shows the project manager, overall completion status, and statistics across all enabled locales. + +Tabs available on the Project page: + +| Tab | Description | +|---|---| +| **Teams** | All locales enabled for this project. Clicking a locale opens the Localization page. | +| **Tags** | Logical groups of resources (visible only if tags are enabled). | +| **Contributors** | Active contributors and their statistics, filterable by time period. | +| **Insights** | Charts showing translation completion trends, human vs. machinery translations, active users, and time-to-review metrics. | +| **Info** | Project description and context. | + +### Requesting a new language for a project + +From the Project page, click **REQUEST NEW LANGUAGE**, select the locale, and click **REQUEST NEW LANGUAGE** again. An email is sent to Pontoon administrators; the Project Manager acts on the request. + +!!! note + Some projects have a closed list of supported locales and cannot be requested. + +## Team page + +Each locale has a Team page (e.g., `pontoon.mozilla.org/fr/`). The header shows the team's overall completion and statistics. + +Tabs available on the Team page: + +| Tab | Description | +|---|---| +| **Projects** | All projects enabled for this locale. | +| **Contributors** | Active contributors and their statistics, filterable by time period. | +| **Insights** | Trends for translation activity, active users, and review time. | +| **Bugs** | Open Bugzilla bugs for the locale (Mozilla deployment only). | +| **Info** | Team description; editable by Team Managers. | +| **Permissions** | User permissions panel (Team Managers and Admins only). | +| **TM** | Translation memory management (Translators and Team Managers). | + +### Team Insights + +The **Insights** tab on the Team page shows: + +- **Translation activity** — completion percentage trend, with human vs. machinery translation bars per month. +- **New source strings** — toggle to show/hide. +- **Active users** — ratio of active vs. total users per role (managers, reviewers, contributors), filterable by time period. +- **Time to review suggestions** — average age of reviewed suggestions per month, with a 12-month rolling average. + +### Requesting more projects for a locale + +From the Team page, click **REQUEST MORE PROJECTS**, select the projects, and click **REQUEST NEW PROJECT**. This requests that an existing Pontoon project be enabled for your locale — it cannot be used to request a brand new project. + +### Requesting pretranslation + +From the Team page, click **REQUEST PRETRANSLATION**, select the projects, and click **REQUEST PRETRANSLATION**. Administrators will evaluate the request. + +### Translation memory management + +Team Managers and Translators can manage the team's TM from the **TM** tab: + +- View all TM entries (source string + translation), searchable by source string or translation. +- Click a TM entry to open the corresponding string in the translation workspace. +- **Edit** a TM entry by clicking the Edit button in the Actions column, modifying the text, and clicking Save. +- **Upload** a TMX file using the upload control. Import progress is shown, and a success or error message appears when complete. + +## Localization page + +The Localization page shows project-specific information for a single locale. Access it by: + +- Selecting a locale from a Project page. +- Selecting a project from a Team page. + +Tabs on the Localization page: + +| Tab | Description | +|---|---| +| **Resources** | Files available in this project for the locale. | +| **Tags** | Tag groups (if enabled for the project). | +| **Contributors** | Contributors to this locale+project combination, filterable by time. | +| **Insights** | Localization-specific trends. | diff --git a/docz/docs/localizer/translate.md b/docz/docs/localizer/translate.md new file mode 100644 index 0000000000..7899106f34 --- /dev/null +++ b/docz/docs/localizer/translate.md @@ -0,0 +1,99 @@ +# How to Translate + +This page describes how to translate and review strings in Pontoon, and provides an example of a typical team workflow. + +## The editor + +When you select a string in the sidebar, the translation editor appears in the center of the page. If the string already has a translation, the editor is pre-populated with the existing text for you to modify. + +### Suggestion Mode vs Translation Mode + +Your editing mode depends on your [permissions](users.md#roles-and-permissions): + +**Suggestion Mode** — a blue **SUGGEST** button is shown. Used when: + +- You are a Contributor (default for new users). +- You are a Translator or Team Manager who has manually enabled *Make suggestions* in settings. + +Suggestions are stored only in the Pontoon database. They are not committed to the version control system (VCS) and do not appear in the translation memory until approved. + +**Translation Mode** — a green **SAVE** button is shown. Available to Translators and Team Managers. When you save a translation: + +- It is displayed below the editing space and in the sidebar. +- It is stored in the VCS (where applicable). +- All pending suggestions or pretranslations for that string are rejected. + +!!! tip + Even if you have permission to save translations directly, submitting suggestions for peer review is good practice and improves overall quality. + +To manually switch to Suggestion Mode, click the **gear icon** in the lower-left of the editor and select **Make suggestions**. + +## Submitting a translation + +1. Select a string from the sidebar. +2. Type your translation in the editor. +3. Click **SUGGEST** (Suggestion Mode) or **SAVE** (Translation Mode). + +## Quality checks + +Pontoon automatically checks every translation or suggestion you submit for potential issues. There are two severity levels: + +**Errors** — critical issues that would break the product (e.g., incorrect syntax, exceeding maximum string length). The submit button is hidden until the error is fixed. + +**Warnings** — potential issues that may or may not cause problems. You can bypass warnings and submit anyway, but review them carefully first. + +Failures are stored in the database and can be filtered from the search bar. + +## Reviewing suggestions + +If you have Translator permissions, you can review other contributors' suggestions: + +- **Approve** a suggestion by clicking the green checkmark. The suggestion becomes a saved translation. +- **Reject** a suggestion by clicking the red X. +- After rejecting, you can **delete** it entirely using the trashcan icon. +- Alternatively, enable *Make suggestions*, edit the translation as appropriate, and click **SUGGEST** to add a corrected version. + +For pretranslations, rejecting also removes the text from the VCS (where applicable). + +## Downloading and uploading translations + +Click the **profile icon** in the top-right corner of any page to access download and upload options. These are only visible when you are in the translation workspace. + +- **Anyone** can download terminology (`.tbx`), translation memory (`.tmx`), and translations. +- **Translators** can also upload translations. + +When downloading: + +- The currently selected resource is downloaded in its original format. +- If the project has multiple files, a ZIP of all files is downloaded. +- If a project has more than 10 files, only the currently translated file is downloaded. + +When uploading, translations that differ from Pontoon's current state are imported and attributed to you. + +## Requesting context or reporting issues + +If a source string is unclear, use the **REQUEST CONTEXT** or **REPORT ISSUE** feature to ask the Project Manager. This tags them in a comment on the string. + +## Workflow example + +The following describes a typical AB workflow (two-translator model), but can be adapted for a single-translator AA workflow or a multi-translator ABCn workflow. + +### Phase 1 — Submit suggestions (Contributor / Translator in Suggestion Mode) + +1. Log in to Pontoon. +2. Browse to the project. +3. Use filters to select **Missing** strings (missing translation, fuzzy, or containing errors). +4. Click the gear icon below the editor → enable **Make suggestions**. +5. For each string, type a translation and click **SUGGEST**. +6. If a string is unclear, use **REQUEST CONTEXT** or **REPORT ISSUE** to ask the Project Manager. +7. Use [Pontoon's translation tools](translation-workspace.md#machinery-tab) to ensure consistency and speed. + +### Phase 2 — Review suggestions (Translator / Team Manager) + +1. Log in to Pontoon. +2. Browse to the project. +3. Use filters to select **Unreviewed** strings. +4. For each suggestion: + - If the translation is correct → click the green checkmark to **approve**. + - If the translation needs changes → edit in the editor and click **SAVE**, or add a new suggestion. + - If the translation is unacceptable → reject and optionally delete it. diff --git a/docz/docs/localizer/translation-workspace.md b/docz/docs/localizer/translation-workspace.md new file mode 100644 index 0000000000..dd5e1965e5 --- /dev/null +++ b/docz/docs/localizer/translation-workspace.md @@ -0,0 +1,119 @@ +# Translation Workspace + +The translation workspace is the main interface for translating strings in Pontoon. It is divided into three main areas: the **sidebar** (left), the **editor** (center), and the **tools panel** (right). + +## Sidebar + +The sidebar lists all strings in the currently selected resource, along with their status. + +### String statuses + +| Status | Description | +|---|---| +| **Translated** | Has an approved translation; saved to the localized file in VCS. | +| **Pretranslated** | Automatically translated but not yet reviewed; saved to VCS. | +| **Warnings** | Has a translation, but with non-critical quality check issues. | +| **Errors** | Has critical quality check issues. | +| **Missing** | No approved translation exists. | +| **Unreviewed** | Has suggested translations awaiting review; not in VCS. | + +### Search + +Use the search field to search within the currently selected project. Searches cover string text and string IDs, and they respect any active filters. + +- By default, Pontoon matches strings containing **any** of the search terms. +- For an **exact match**, wrap terms in double quotes: `"new tab"`. +- To search for strings containing literal double quotes, escape them: `\"`. + +**Additional search options** (click the magnifying glass icon): + +- **Match case** — exact capitalization matching. +- **Match whole word** — avoids partial matches. + +### Filters + +Click the filter icon to filter strings by status. Filters can be combined with search. + +### Context button + +When a string is selected, a small icon with four arrows appears near the checkbox. Clicking it shows strings that surround the selected string in the resource, providing translation context. + +## Editor + +See [How to Translate](translate.md) for full details on the editor, suggestion mode, and translation mode. + +### Read-only mode + +Some locales may have read-only access to a project. Their translations are still visible in the LOCALES tab for other teams to reference, but it is not possible to submit or modify translations directly. + +## Translation tools (right panel) + +### Machinery tab + +The Machinery tab shows possible translations from multiple sources: + +- Pontoon's internal **translation memory** (all approved translations across all projects). +- **Google Translate**. +- **Microsoft Translator / Bing Translator** (availability varies by deployment). +- **Concordance search** — search across all projects in Pontoon by source or target language text. + +!!! warning + Use machinery suggestions with care. Even when source strings match, the context in different projects may be different, leading to incorrect or unnatural translations. Always prioritize the meaning and purpose of the string. + +The number of entries is shown next to the **MACHINERY** heading. Translation memory matches appear separately in green. + +### AI refinement + +For locales with Google Translate enabled, an **AI** dropdown appears above the machinery suggestions. It refines the Google Translate output using a large language model and provides three options: + +- **REPHRASE** — generates an alternative translation. +- **MAKE FORMAL** — generates a more formal version. +- **MAKE INFORMAL** — generates a simpler, more informal version. + +After selecting an option, the revised translation replaces the original in the editor. A **SHOW ORIGINAL** option then becomes available to revert to the original suggestion. + +### LOCALES tab + +Shows translations of the current string in other locales enabled for the project. Useful for cross-language context, especially for locales with read-only access. + +### COMMENTS tab + +The Comments tab has two types of comments: + +**Source string comments** — associated with the source string itself. These are displayed in the COMMENTS tab in the right column and are designed for team discussion about the string's meaning or context. Administrators can **pin** a comment to make it visible alongside the editing area as a **PINNED COMMENT**, and users will receive a notification. + +**Translation comments** — associated with a specific translation, displayed under the editor in the translation list. + +!!! note + These are different from **Resource comments**, which are added by developers directly in the resource file and are displayed in the editing area alongside the resource path and context. + +### Tags + +Tags can be used in a project to logically group resources and assign them a priority. If tags are enabled for a project, a Tags tab appears in Team and Project pages. Resources can be filtered by tag in the sidebar. + +## Translation history + +Below the editor, a list of all past translations for the current string is shown, including: + +- The translator's name, profile picture, and banner. +- How long ago the entry was submitted (hover for the exact date/time). +- The translation text. +- Status icons (approved, pretranslated, unreviewed, rejected). +- Translation comments. + +## Keyboard shortcuts + +| Action | Shortcut | +|---|---| +| Copy source string to editor | `Ctrl`+`Shift`+`C` | +| Submit translation / suggestion | `Ctrl`+`Enter` | +| Navigate to previous string | `Alt`+`↑` | +| Navigate to next string | `Alt`+`↓` | +| Navigate to previous unreviewed | `Alt`+`Shift`+`↑` | +| Navigate to next unreviewed | `Alt`+`Shift`+`↓` | +| Approve translation | `Alt`+`Enter` | +| Select all strings in sidebar | `Ctrl`+`Shift`+`A` | +| Open machinery tab | `Ctrl`+`Shift`+`M` | +| Open history tab | `Ctrl`+`Shift`+`H` | +| Open comments tab | `Ctrl`+`Shift`+`X` | +| Toggle find & replace | `Ctrl`+`H` | diff --git a/docz/docs/localizer/users.md b/docz/docs/localizer/users.md new file mode 100644 index 0000000000..e9d0036e8f --- /dev/null +++ b/docz/docs/localizer/users.md @@ -0,0 +1,72 @@ +# User Accounts & Settings + +## Roles and permissions + +Users in Pontoon are assigned one of four roles, each with different capabilities: + +Contributor +: The default role for new users. Can submit translation **suggestions** only; suggestions must be reviewed and approved by a Translator or Team Manager before they appear in the product. + +Translator +: Can submit **approved translations** directly and **review** suggestions from other users. Can also manually switch to Suggestion Mode if preferred. Translators need access to contributor contact details for review, so their email addresses are visible to translators by default. + +Team Manager +: Has all Translator capabilities, plus can **manage permissions** for other users within their locale. Responsible for maintaining team quality and unreviewed suggestion queues. + +Administrator +: Can manage all aspects of Pontoon — adding/removing projects, acting as a Team Manager for all locales, and accessing the admin console. + +Additionally, **Project Managers** are not a permission level but a point of contact designation for a specific project. Their names appear in project headers, and they are tagged when contributors use REQUEST CONTEXT or REPORT ISSUE. + +## Managing permissions (Team Managers) + +To manage user permissions, open the **Team page** → **Permissions** tab (visible only to Team Managers and Administrators). + +The permissions panel has a **General** section by default. Permissions defined here apply to all projects for the locale, but can be overridden by project-specific custom permissions. + +To move a user between permission levels, hover their email address — arrows will appear to move them left or right between columns. Click **SAVE** before leaving the window. + +!!! note + A user must log in to Pontoon at least once before their permissions can be changed. + +By default, the TEAM CONTRIBUTORS column shows only users who have already submitted suggestions for the locale. Click **ALL USERS** to display all Pontoon users, then use the search field to narrow down. + +### Custom permissions per project + +Click **ADD CUSTOM PERMISSIONS PER PROJECT** to set permissions for a specific project. This is useful if a project is maintained by a dedicated person or a restricted group. Custom project permissions override the General section for that project. + +!!! warning + If a user needs to translate **all** projects, they must be listed in every custom permissions section **and** in the General section. + +## Account settings + +Access account settings via the profile icon in the top-right corner. + +### Personal preferences + +| Setting | Description | +|---|---| +| **Make suggestions** | Switches a Translator or Team Manager to Suggestion Mode by default. | +| **Default homepage** | Choose between Pontoon's homepage or a specific Team page as your landing page after login. | +| **Preferred source locales** | Display a different source locale when translating (Mozilla projects use `en-US` as the default). | +| **Preferred locales** | Pin specific locales to appear first in the LOCALES tab when reviewing translations. | + +### Profile visibility + +Control who can see specific profile fields: + +| Field | Default visibility | Can be changed to | +|---|---|---| +| Email address | Translators only | All logged-in users (never public, to prevent spam) | +| External accounts | Translators only | Public | +| Approval rate / Self-approval rate | Public | Translators only | + +!!! note + Team and Project Managers always have their email address visible to logged-in users, regardless of visibility settings. + +### Email notifications + +Control which Pontoon emails you receive, including notification digests and news updates. + +!!! note + Opting out of *News and updates* prevents you from receiving Messaging Center emails unless the message is marked as **Transactional** by the sender. diff --git a/docz/docs/stylesheets/extra.css b/docz/docs/stylesheets/extra.css new file mode 100644 index 0000000000..4eef0c0afb --- /dev/null +++ b/docz/docs/stylesheets/extra.css @@ -0,0 +1,48 @@ +/* Pontoon brand colors */ +:root { + --md-primary-fg-color: #333941; + --md-primary-fg-color--light: #FF7E88; + --md-primary-fg-color--dark: #CC2233; + --md-accent-fg-color: #7bc876; + --md-accent-fg-color--transparent: #0060DF1a; +} + +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #7bc876; + --md-accent-fg-color: #7bc876; + --md-default-bg-color: #272a2f; +} + +/* Navigation tabs */ +.md-tabs { + background-color: var(--md-primary-fg-color); +} + +/* Admonition tweaks */ +.md-typeset .admonition, +.md-typeset details { + border-radius: 4px; +} + +/* Code block copy button */ +.md-clipboard { + color: var(--md-accent-fg-color); +} + +/* Role badges in localizer docs */ +.role-badge { + display: inline-block; + padding: 2px 8px; + border-radius: 12px; + font-size: 0.75em; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; +} +.role-contributor { background: #e3f2fd; color: #1565c0; } +.role-translator { background: #e8f5e9; color: #2e7d32; } +.role-manager { background: #fff3e0; color: #e65100; } +.role-admin { background: #fce4ec; color: #c62828; } + +/* Hide "Made with Material" footer */ +.md-footer-meta { display: none; } diff --git a/docz/zensical.toml b/docz/zensical.toml new file mode 100644 index 0000000000..1ff7ad24e9 --- /dev/null +++ b/docz/zensical.toml @@ -0,0 +1,305 @@ +# ============================================================================ +# +# The configuration produced by default is meant to highlight the features +# that Zensical provides and to serve as a starting point for your own +# projects. +# +# ============================================================================ + +[project] + +# The site_name is shown in the page header and the browser window title +# +# Read more: https://zensical.org/docs/setup/basics/#site_name +site_name = "Documentation" + +# The site_description is included in the HTML head and should contain a +# meaningful description of the site content for use by search engines. +# +# Read more: https://zensical.org/docs/setup/basics/#site_description +site_description = "A new project generated from the default template project." + +# The site_author attribute. This is used in the HTML head element. +# +# Read more: https://zensical.org/docs/setup/basics/#site_author +site_author = "" + +# The site_url is the canonical URL for your site. When building online +# documentation you should set this. +# Read more: https://zensical.org/docs/setup/basics/#site_url +#site_url = "https://www.example.com/" + +# The copyright notice appears in the page footer and can contain an HTML +# fragment. +# +# Read more: https://zensical.org/docs/setup/basics/#copyright +copyright = """ +Copyright © 2026 The authors +""" + +# Zensical supports both implicit navigation and explicitly defined navigation. +# If you decide not to define a navigation here then Zensical will simply +# derive the navigation structure from the directory structure of your +# "docs_dir". The definition below demonstrates how a navigation structure +# can be defined using TOML syntax. +# +# Read more: https://zensical.org/docs/setup/navigation/ +# nav = [ +# { "Get started" = "index.md" }, +# { "Markdown in 5min" = "markdown.md" }, +# ] + +# With the "extra_css" option you can add your own CSS styling to customize +# your Zensical project according to your needs. You can add any number of +# CSS files. +# +# The path provided should be relative to the "docs_dir". +# +# Read more: https://zensical.org/docs/customization/#additional-css +# +#extra_css = ["stylesheets/extra.css"] + +# With the `extra_javascript` option you can add your own JavaScript to your +# project to customize the behavior according to your needs. +# +# The path provided should be relative to the "docs_dir". +# +# Read more: https://zensical.org/docs/customization/#additional-javascript +#extra_javascript = ["javascripts/extra.js"] + +# ---------------------------------------------------------------------------- +# Section for configuring theme options +# ---------------------------------------------------------------------------- +[project.theme] + +# change this to "classic" to use the traditional Material for MkDocs look. +#variant = "classic" + +# Zensical allows you to override specific blocks, partials, or whole +# templates as well as to define your own templates. To do this, uncomment +# the custom_dir setting below and set it to a directory in which you +# keep your template overrides. +# +# Read more: +# - https://zensical.org/docs/customization/#extending-the-theme +# +#custom_dir = "overrides" + +# With the "favicon" option you can set your own image to use as the icon +# browsers will use in the browser title bar or tab bar. The path provided +# must be relative to the "docs_dir". +# +# Read more: +# - https://zensical.org/docs/setup/logo-and-icons/#favicon +# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon +# +#favicon = "images/favicon.png" + +# Zensical supports more than 60 different languages. This means that the +# labels and tooltips that Zensical's templates produce are translated. +# The "language" option allows you to set the language used. This language +# is also indicated in the HTML head element to help with accessibility +# and guide search engines and translation tools. +# +# The default language is "en" (English). It is possible to create +# sites with multiple languages and configure a language selector. See +# the documentation for details. +# +# Read more: +# - https://zensical.org/docs/setup/language/ +# +language = "en" + +# Zensical provides a number of feature toggles that change the behavior +# of the documentation site. +features = [ + # Zensical includes an announcement bar. This feature allows users to + # dismiss it when they have read the announcement. + # https://zensical.org/docs/setup/header/#announcement-bar + "announce.dismiss", + + # If you have a repository configured and turn on this feature, Zensical + # will generate an edit button for the page. This works for common + # repository hosting services. + # https://zensical.org/docs/setup/repository/#content-actions + #"content.action.edit", + + # If you have a repository configured and turn on this feature, Zensical + # will generate a button that allows the user to view the Markdown + # code for the current page. + # https://zensical.org/docs/setup/repository/#content-actions + #"content.action.view", + + # Code annotations allow you to add an icon with a tooltip to your + # code blocks to provide explanations at crucial points. + # https://zensical.org/docs/authoring/code-blocks/#code-annotations + "content.code.annotate", + + # This feature turns on a button in code blocks that allow users to + # copy the content to their clipboard without first selecting it. + # https://zensical.org/docs/authoring/code-blocks/#code-copy-button + "content.code.copy", + + # Code blocks can include a button to allow for the selection of line + # ranges by the user. + # https://zensical.org/docs/authoring/code-blocks/#code-selection-button + "content.code.select", + + # Zensical can render footnotes as inline tooltips, so the user can read + # the footnote without leaving the context of the document. + # https://zensical.org/docs/authoring/footnotes/#footnote-tooltips + "content.footnote.tooltips", + + # If you have many content tabs that have the same titles (e.g., "Python", + # "JavaScript", "Cobol"), this feature causes all of them to switch to + # at the same time when the user chooses their language in one. + # https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs + "content.tabs.link", + + # With this feature enabled users can add tooltips to links that will be + # displayed when the mouse pointer hovers the link. + # https://zensical.org/docs/authoring/tooltips/#improved-tooltips + "content.tooltips", + + # With this feature enabled, Zensical will automatically hide parts + # of the header when the user scrolls past a certain point. + # https://zensical.org/docs/setup/header/#automatic-hiding + # "header.autohide", + + # Turn on this feature to expand all collapsible sections in the + # navigation sidebar by default. + # https://zensical.org/docs/setup/navigation/#navigation-expansion + # "navigation.expand", + + # This feature turns on navigation elements in the footer that allow the + # user to navigate to a next or previous page. + # https://zensical.org/docs/setup/footer/#navigation + "navigation.footer", + + # When section index pages are enabled, documents can be directly attached + # to sections, which is particularly useful for providing overview pages. + # https://zensical.org/docs/setup/navigation/#section-index-pages + "navigation.indexes", + + # When instant navigation is enabled, clicks on all internal links will be + # intercepted and dispatched via XHR without fully reloading the page. + # https://zensical.org/docs/setup/navigation/#instant-navigation + "navigation.instant", + + # With instant prefetching, your site will start to fetch a page once the + # user hovers over a link. This will reduce the perceived loading time + # for the user. + # https://zensical.org/docs/setup/navigation/#instant-prefetching + "navigation.instant.prefetch", + + # In order to provide a better user experience on slow connections when + # using instant navigation, a progress indicator can be enabled. + # https://zensical.org/docs/setup/navigation/#progress-indicator + #"navigation.instant.progress", + + # When navigation paths are activated, a breadcrumb navigation is rendered + # above the title of each page + # https://zensical.org/docs/setup/navigation/#navigation-path + "navigation.path", + + # When pruning is enabled, only the visible navigation items are included + # in the rendered HTML, reducing the size of the built site by 33% or more. + # https://zensical.org/docs/setup/navigation/#navigation-pruning + #"navigation.prune", + + # When sections are enabled, top-level sections are rendered as groups in + # the sidebar for viewports above 1220px, but remain as-is on mobile. + # https://zensical.org/docs/setup/navigation/#navigation-sections + "navigation.sections", + + # When tabs are enabled, top-level sections are rendered in a menu layer + # below the header for viewports above 1220px, but remain as-is on mobile. + # https://zensical.org/docs/setup/navigation/#navigation-tabs + #"navigation.tabs", + + # When sticky tabs are enabled, navigation tabs will lock below the header + # and always remain visible when scrolling down. + # https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs + #"navigation.tabs.sticky", + + # A back-to-top button can be shown when the user, after scrolling down, + # starts to scroll up again. + # https://zensical.org/docs/setup/navigation/#back-to-top-button + "navigation.top", + + # When anchor tracking is enabled, the URL in the address bar is + # automatically updated with the active anchor as highlighted in the table + # of contents. + # https://zensical.org/docs/setup/navigation/#anchor-tracking + "navigation.tracking", + + # When search highlighting is enabled and a user clicks on a search result, + # Zensical will highlight all occurrences after following the link. + # https://zensical.org/docs/setup/search/#search-highlighting + "search.highlight", + + # When anchor following for the table of contents is enabled, the sidebar + # is automatically scrolled so that the active anchor is always visible. + # https://zensical.org/docs/setup/navigation/#anchor-following + # "toc.follow", + + # When navigation integration for the table of contents is enabled, it is + # always rendered as part of the navigation sidebar on the left. + # https://zensical.org/docs/setup/navigation/#navigation-integration + #"toc.integrate", +] + +# ---------------------------------------------------------------------------- +# You can configure your own logo to be shown in the header using the "logo" +# option in the "theme" subsection. The logo must be a relative path to a file +# in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set: +# ---------------------------------------------------------------------------- +#logo = "assets/logo.png" + +# ---------------------------------------------------------------------------- +# If you don't have a dedicated project logo, you can use a built-in icon from +# the icon sets shipped in Zensical. Please note that the setting lives in a +# different subsection, and that the above take precedence over the icon. +# +# Read more: +# - https://zensical.org/docs/setup/logo-and-icons +# - https://github.com/zensical/ui/tree/master/dist/.icons +# ---------------------------------------------------------------------------- +#[project.theme.icon] +#logo = "lucide/smile" + +# ---------------------------------------------------------------------------- +# In the "font" subsection you can configure the fonts used. By default, fonts +# are loaded from Google Fonts, giving you a wide range of choices from a set +# of suitably licensed fonts. There are options for a normal text font and for +# a monospaced font used in code blocks. +# ---------------------------------------------------------------------------- +#[project.theme.font] +#text = "Inter" +#code = "Jetbrains Mono" + +# ---------------------------------------------------------------------------- +# In the "palette" subsection you can configure options for the color scheme. +# You can configure different color schemes, e.g., to turn on dark mode, +# that the user can switch between. Each color scheme can be further +# customized. +# +# Read more: +# - https://zensical.org/docs/setup/colors/ +# ---------------------------------------------------------------------------- +[[project.theme.palette]] +scheme = "default" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +scheme = "slate" +toggle.icon = "lucide/moon" +toggle.name = "Switch to light mode" + +# ---------------------------------------------------------------------------- +# The "extra" section contains miscellaneous settings. +# ---------------------------------------------------------------------------- +#[[project.extra.social]] +#icon = "fontawesome/brands/github" +#link = "https://github.com/user/repo" diff --git a/pontoon/settings/base.py b/pontoon/settings/base.py index 7eb97c8836..045817ae3d 100644 --- a/pontoon/settings/base.py +++ b/pontoon/settings/base.py @@ -824,6 +824,7 @@ def _default_from_email(): os.path.join(TRANSLATE_DIR, "dist"), os.path.join(TRANSLATE_DIR, "public"), ("docs", os.path.join(ROOT, "documentation", "site")), + ("docz", os.path.join(ROOT, "docz", "site")), ] allowed_hosts = os.environ.get("ALLOWED_HOSTS") diff --git a/pontoon/urls.py b/pontoon/urls.py index 9e216be952..0c6e1884f0 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -20,6 +20,10 @@ def docs_dir_index(request, path=""): return HttpResponseRedirect(f"/docs/{path}index.html") +def docz_dir_index(request, path=""): + return HttpResponseRedirect(f"/docz/{path}index.html") + + register_converter(LocaleConverter, "locale") permission_denied_view = TemplateView.as_view(template_name="403.html") @@ -68,6 +72,14 @@ def docs_dir_index(request, path=""): serve, {"document_root": os.path.join(settings.STATIC_ROOT, "docs")}, ), + # Docz + path("docz/", docz_dir_index), + re_path(r"^docz/(?P.+/)$", docz_dir_index), + path( + "docz/", + serve, + {"document_root": os.path.join(settings.STATIC_ROOT, "docz")}, + ), # Legacy path("in-context/", RedirectView.as_view(url="/", permanent=True)), # Include URL configurations from installed apps diff --git a/requirements/default.in b/requirements/default.in index adee2d34b3..5ece97a466 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -52,3 +52,4 @@ sacrebleu==2.4.3 sacremoses==0.1.1 translate-toolkit==3.19.3 whitenoise==5.2.0 +zensical==0.0.27 diff --git a/requirements/default.txt b/requirements/default.txt index f9aaf5d705..f8d876d0ba 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -290,6 +290,7 @@ click==8.3.1 \ # click-repl # mkdocs # sacremoses + # zensical click-didyoumean==0.3.1 \ --hash=sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463 \ --hash=sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c @@ -412,6 +413,10 @@ cryptography==46.0.6 \ --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 \ --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 # via pyjwt +deepmerge==2.0 \ + --hash=sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20 \ + --hash=sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00 + # via zensical distro==1.9.0 \ --hash=sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed \ --hash=sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2 @@ -934,6 +939,7 @@ markdown==3.10.2 \ # mkdocs # mkdocs-material # pymdown-extensions + # zensical markupsafe==2.0.1 \ --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ @@ -1368,7 +1374,9 @@ pydantic-core==2.41.5 \ pygments==2.19.2 \ --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b - # via mkdocs-material + # via + # mkdocs-material + # zensical pyjwt[crypto]==2.12.0 \ --hash=sha256:2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02 \ --hash=sha256:9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e @@ -1378,7 +1386,9 @@ pyjwt[crypto]==2.12.0 \ pymdown-extensions==10.21 \ --hash=sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5 \ --hash=sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f - # via mkdocs-material + # via + # mkdocs-material + # zensical python-binary-memcached==0.31.4 \ --hash=sha256:f183bc67fd218c01ebc0bf4e9929a210dd5aa07fda53d5b627d0b443b76e2818 \ --hash=sha256:f7a74f212567e37520dd550f0d088b99bb4bae01034d3078135bfc16285960f9 @@ -1478,6 +1488,7 @@ pyyaml==6.0.3 \ # mkdocs-get-deps # pymdown-extensions # pyyaml-env-tag + # zensical pyyaml-env-tag==1.1 \ --hash=sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04 \ --hash=sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff @@ -2090,3 +2101,18 @@ whitenoise==5.2.0 \ --hash=sha256:05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7 \ --hash=sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d # via -r default.in +zensical==0.0.27 \ + --hash=sha256:06b9e308aec8c5db1cd623e2e98e1b25c3f5cab6b25fcc9bac1e16c0c2b93837 \ + --hash=sha256:3e11d220181477040a4b22bf2b8678d5b0c878e7aae194fad4133561cb976d69 \ + --hash=sha256:682085155126965b091cb9f915cd2e4297383ac500122fd4b632cf4511733eb2 \ + --hash=sha256:6d8d74aba4a9f9505e6ba1c43d4c828ba4ff7bb1ff9b005e5174c5b92cf23419 \ + --hash=sha256:847c881209e65e1db1291c59a9db77966ac50f7c66bf9a733c3c7832144dbfca \ + --hash=sha256:99cbc493022f8749504ef10c71772d360b705b4e2fd1511421393157d07bdccf \ + --hash=sha256:9d3b1fca7ea99a7b2a8db272dd7f7839587c4ebf4f56b84ff01c97b3893ec9f8 \ + --hash=sha256:a627cd4599cf2c5a5a5205f0510667227d1fe4579b6f7445adba2d84bab9fbc8 \ + --hash=sha256:b367c285157c8e1099ae9e2b36564e07d3124bf891e96194a093bc836f3058d2 \ + --hash=sha256:d51ebf4b038f3eea99fd337119b99d92ad92bbe674372d5262e6dbbabbe4e9b5 \ + --hash=sha256:da11e0f0861dbd7d3b5e6fe1e3a53b361b2181c53f3abe9fb4cdf2ed0cea47bf \ + --hash=sha256:ecc20a85e8a23ad9ab809b2f268111321be7b2e214021b3b00f138936a87a434 \ + --hash=sha256:f31ec13c700794be3f9c0b7d90f09a7d23575a3a27c464994b9bb441a22d880b + # via -r default.in From 7a658366e30942943133a184ba45b9c260a10cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 19 Mar 2026 16:32:41 +0100 Subject: [PATCH 06/35] Update Zensical config --- docz/zensical.toml | 381 +++++++++++---------------------------------- 1 file changed, 95 insertions(+), 286 deletions(-) diff --git a/docz/zensical.toml b/docz/zensical.toml index 1ff7ad24e9..8cfc0364e7 100644 --- a/docz/zensical.toml +++ b/docz/zensical.toml @@ -1,292 +1,78 @@ -# ============================================================================ -# -# The configuration produced by default is meant to highlight the features -# that Zensical provides and to serve as a starting point for your own -# projects. -# -# ============================================================================ +# Pontoon docs configuration for Zensical +# Derived from the current mkdocs.yml navigation and site metadata. +# Notes: +# - This keeps the same page structure and top-level nav as the MkDocs config. +# - The MkDocs `glightbox` plugin is omitted because it does not have a direct +# Zensical equivalent in the currently documented feature set. +# - Repository/edit-link wiring is left commented until you confirm the exact +# Zensical repository settings you want to use. [project] +site_name = "Pontoon Documentation" +site_description = "Pontoon is Mozilla's translation management system. This documentation covers everything from translating strings to deploying your own instance." +site_url = "https://pontoon.mozilla.org/docs/" +extra_css = ["stylesheets/extra.css"] + +nav = [ + { "Home" = "index.md" }, + + { "Localizer Guide" = [ + { "Overview" = "localizer/index.md" }, + { "How to Translate" = "localizer/translate.md" }, + { "Translation Workspace" = "localizer/translation-workspace.md" }, + { "Team & Project Pages" = "localizer/teams-projects.md" }, + { "User Accounts & Settings" = "localizer/users.md" }, + { "Notifications" = "localizer/notifications.md" }, + { "Profile Page" = "localizer/profile.md" }, + { "Glossary" = "localizer/glossary.md" } + ]}, + + { "Admin Guide" = [ + { "Overview" = "admin/index.md" }, + { "Adding a New Project" = "admin/adding-new-project.md" }, + { "Adding a Short-Term Project" = "admin/adding-short-term-project.md" }, + { "Adding a New Locale" = "admin/adding-new-locale.md" }, + { "Managing Pretranslation" = "admin/managing-pretranslation.md" }, + { "Messaging Center" = "admin/messaging-center.md" }, + { "Renaming a Localization File" = "admin/renaming-file.md" }, + { "Renaming a Project" = "admin/renaming-project.md" }, + { "Managing Users" = "admin/managing-users.md" }, + { "Adding Terminology" = "admin/adding-terminology.md" } + ]}, + + { "Developer Guide" = [ + { "Overview" = "dev/index.md" }, + { "Your First Contribution" = "dev/first-contribution.md" }, + { "Developer Setup" = "dev/setup.md" }, + { "Contributing Guidelines" = "dev/contributing.md" }, + { "Feature Development Process" = "dev/feature-development-process.md" }, + { "Deployment" = "dev/deployment.md" }, + { "Maintenance" = "dev/maintenance.md" }, + { "Localizing Your Projects" = "dev/localizing-your-projects.md" }, + { "Developer Setup (Virtualenv)" = "dev/setup-virtualenv.md" } + ]} +] -# The site_name is shown in the page header and the browser window title -# -# Read more: https://zensical.org/docs/setup/basics/#site_name -site_name = "Documentation" - -# The site_description is included in the HTML head and should contain a -# meaningful description of the site content for use by search engines. -# -# Read more: https://zensical.org/docs/setup/basics/#site_description -site_description = "A new project generated from the default template project." - -# The site_author attribute. This is used in the HTML head element. -# -# Read more: https://zensical.org/docs/setup/basics/#site_author -site_author = "" - -# The site_url is the canonical URL for your site. When building online -# documentation you should set this. -# Read more: https://zensical.org/docs/setup/basics/#site_url -#site_url = "https://www.example.com/" - -# The copyright notice appears in the page footer and can contain an HTML -# fragment. -# -# Read more: https://zensical.org/docs/setup/basics/#copyright -copyright = """ -Copyright © 2026 The authors -""" - -# Zensical supports both implicit navigation and explicitly defined navigation. -# If you decide not to define a navigation here then Zensical will simply -# derive the navigation structure from the directory structure of your -# "docs_dir". The definition below demonstrates how a navigation structure -# can be defined using TOML syntax. -# -# Read more: https://zensical.org/docs/setup/navigation/ -# nav = [ -# { "Get started" = "index.md" }, -# { "Markdown in 5min" = "markdown.md" }, -# ] - -# With the "extra_css" option you can add your own CSS styling to customize -# your Zensical project according to your needs. You can add any number of -# CSS files. -# -# The path provided should be relative to the "docs_dir". -# -# Read more: https://zensical.org/docs/customization/#additional-css -# -#extra_css = ["stylesheets/extra.css"] - -# With the `extra_javascript` option you can add your own JavaScript to your -# project to customize the behavior according to your needs. -# -# The path provided should be relative to the "docs_dir". -# -# Read more: https://zensical.org/docs/customization/#additional-javascript -#extra_javascript = ["javascripts/extra.js"] - -# ---------------------------------------------------------------------------- -# Section for configuring theme options -# ---------------------------------------------------------------------------- [project.theme] - -# change this to "classic" to use the traditional Material for MkDocs look. -#variant = "classic" - -# Zensical allows you to override specific blocks, partials, or whole -# templates as well as to define your own templates. To do this, uncomment -# the custom_dir setting below and set it to a directory in which you -# keep your template overrides. -# -# Read more: -# - https://zensical.org/docs/customization/#extending-the-theme -# -#custom_dir = "overrides" - -# With the "favicon" option you can set your own image to use as the icon -# browsers will use in the browser title bar or tab bar. The path provided -# must be relative to the "docs_dir". -# -# Read more: -# - https://zensical.org/docs/setup/logo-and-icons/#favicon -# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon -# -#favicon = "images/favicon.png" - -# Zensical supports more than 60 different languages. This means that the -# labels and tooltips that Zensical's templates produce are translated. -# The "language" option allows you to set the language used. This language -# is also indicated in the HTML head element to help with accessibility -# and guide search engines and translation tools. -# -# The default language is "en" (English). It is possible to create -# sites with multiple languages and configure a language selector. See -# the documentation for details. -# -# Read more: -# - https://zensical.org/docs/setup/language/ -# language = "en" - -# Zensical provides a number of feature toggles that change the behavior -# of the documentation site. +logo = "assets/pontoon-logo.svg" +favicon = "assets/pontoon-logo.svg" features = [ - # Zensical includes an announcement bar. This feature allows users to - # dismiss it when they have read the announcement. - # https://zensical.org/docs/setup/header/#announcement-bar - "announce.dismiss", - - # If you have a repository configured and turn on this feature, Zensical - # will generate an edit button for the page. This works for common - # repository hosting services. - # https://zensical.org/docs/setup/repository/#content-actions - #"content.action.edit", - - # If you have a repository configured and turn on this feature, Zensical - # will generate a button that allows the user to view the Markdown - # code for the current page. - # https://zensical.org/docs/setup/repository/#content-actions - #"content.action.view", - - # Code annotations allow you to add an icon with a tooltip to your - # code blocks to provide explanations at crucial points. - # https://zensical.org/docs/authoring/code-blocks/#code-annotations - "content.code.annotate", - - # This feature turns on a button in code blocks that allow users to - # copy the content to their clipboard without first selecting it. - # https://zensical.org/docs/authoring/code-blocks/#code-copy-button - "content.code.copy", - - # Code blocks can include a button to allow for the selection of line - # ranges by the user. - # https://zensical.org/docs/authoring/code-blocks/#code-selection-button - "content.code.select", - - # Zensical can render footnotes as inline tooltips, so the user can read - # the footnote without leaving the context of the document. - # https://zensical.org/docs/authoring/footnotes/#footnote-tooltips - "content.footnote.tooltips", - - # If you have many content tabs that have the same titles (e.g., "Python", - # "JavaScript", "Cobol"), this feature causes all of them to switch to - # at the same time when the user chooses their language in one. - # https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs - "content.tabs.link", - - # With this feature enabled users can add tooltips to links that will be - # displayed when the mouse pointer hovers the link. - # https://zensical.org/docs/authoring/tooltips/#improved-tooltips - "content.tooltips", - - # With this feature enabled, Zensical will automatically hide parts - # of the header when the user scrolls past a certain point. - # https://zensical.org/docs/setup/header/#automatic-hiding - # "header.autohide", - - # Turn on this feature to expand all collapsible sections in the - # navigation sidebar by default. - # https://zensical.org/docs/setup/navigation/#navigation-expansion - # "navigation.expand", - - # This feature turns on navigation elements in the footer that allow the - # user to navigate to a next or previous page. - # https://zensical.org/docs/setup/footer/#navigation - "navigation.footer", - - # When section index pages are enabled, documents can be directly attached - # to sections, which is particularly useful for providing overview pages. - # https://zensical.org/docs/setup/navigation/#section-index-pages - "navigation.indexes", - - # When instant navigation is enabled, clicks on all internal links will be - # intercepted and dispatched via XHR without fully reloading the page. - # https://zensical.org/docs/setup/navigation/#instant-navigation - "navigation.instant", - - # With instant prefetching, your site will start to fetch a page once the - # user hovers over a link. This will reduce the perceived loading time - # for the user. - # https://zensical.org/docs/setup/navigation/#instant-prefetching - "navigation.instant.prefetch", - - # In order to provide a better user experience on slow connections when - # using instant navigation, a progress indicator can be enabled. - # https://zensical.org/docs/setup/navigation/#progress-indicator - #"navigation.instant.progress", - - # When navigation paths are activated, a breadcrumb navigation is rendered - # above the title of each page - # https://zensical.org/docs/setup/navigation/#navigation-path - "navigation.path", - - # When pruning is enabled, only the visible navigation items are included - # in the rendered HTML, reducing the size of the built site by 33% or more. - # https://zensical.org/docs/setup/navigation/#navigation-pruning - #"navigation.prune", - - # When sections are enabled, top-level sections are rendered as groups in - # the sidebar for viewports above 1220px, but remain as-is on mobile. - # https://zensical.org/docs/setup/navigation/#navigation-sections - "navigation.sections", - - # When tabs are enabled, top-level sections are rendered in a menu layer - # below the header for viewports above 1220px, but remain as-is on mobile. - # https://zensical.org/docs/setup/navigation/#navigation-tabs - #"navigation.tabs", - - # When sticky tabs are enabled, navigation tabs will lock below the header - # and always remain visible when scrolling down. - # https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs - #"navigation.tabs.sticky", - - # A back-to-top button can be shown when the user, after scrolling down, - # starts to scroll up again. - # https://zensical.org/docs/setup/navigation/#back-to-top-button - "navigation.top", - - # When anchor tracking is enabled, the URL in the address bar is - # automatically updated with the active anchor as highlighted in the table - # of contents. - # https://zensical.org/docs/setup/navigation/#anchor-tracking - "navigation.tracking", - - # When search highlighting is enabled and a user clicks on a search result, - # Zensical will highlight all occurrences after following the link. - # https://zensical.org/docs/setup/search/#search-highlighting - "search.highlight", - - # When anchor following for the table of contents is enabled, the sidebar - # is automatically scrolled so that the active anchor is always visible. - # https://zensical.org/docs/setup/navigation/#anchor-following - # "toc.follow", - - # When navigation integration for the table of contents is enabled, it is - # always rendered as part of the navigation sidebar on the left. - # https://zensical.org/docs/setup/navigation/#navigation-integration - #"toc.integrate", + "navigation.tabs", + "navigation.tabs.sticky", + "navigation.sections", + "navigation.expand", + "navigation.path", + "navigation.top", + "navigation.instant", + "search.highlight", + "content.code.copy", + "toc.follow" ] -# ---------------------------------------------------------------------------- -# You can configure your own logo to be shown in the header using the "logo" -# option in the "theme" subsection. The logo must be a relative path to a file -# in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set: -# ---------------------------------------------------------------------------- -#logo = "assets/logo.png" +# If you confirm the repository settings syntax you want to use in Zensical, +# you can then re-enable "content.action.edit" above. -# ---------------------------------------------------------------------------- -# If you don't have a dedicated project logo, you can use a built-in icon from -# the icon sets shipped in Zensical. Please note that the setting lives in a -# different subsection, and that the above take precedence over the icon. -# -# Read more: -# - https://zensical.org/docs/setup/logo-and-icons -# - https://github.com/zensical/ui/tree/master/dist/.icons -# ---------------------------------------------------------------------------- -#[project.theme.icon] -#logo = "lucide/smile" - -# ---------------------------------------------------------------------------- -# In the "font" subsection you can configure the fonts used. By default, fonts -# are loaded from Google Fonts, giving you a wide range of choices from a set -# of suitably licensed fonts. There are options for a normal text font and for -# a monospaced font used in code blocks. -# ---------------------------------------------------------------------------- -#[project.theme.font] -#text = "Inter" -#code = "Jetbrains Mono" - -# ---------------------------------------------------------------------------- -# In the "palette" subsection you can configure options for the color scheme. -# You can configure different color schemes, e.g., to turn on dark mode, -# that the user can switch between. Each color scheme can be further -# customized. -# -# Read more: -# - https://zensical.org/docs/setup/colors/ -# ---------------------------------------------------------------------------- [[project.theme.palette]] scheme = "default" toggle.icon = "lucide/sun" @@ -297,9 +83,32 @@ scheme = "slate" toggle.icon = "lucide/moon" toggle.name = "Switch to light mode" -# ---------------------------------------------------------------------------- -# The "extra" section contains miscellaneous settings. -# ---------------------------------------------------------------------------- -#[[project.extra.social]] -#icon = "fontawesome/brands/github" -#link = "https://github.com/user/repo" +[[project.extra.social]] +icon = "fontawesome/brands/github" +link = "https://github.com/mozilla/pontoon" + +[[project.extra.social]] +icon = "fontawesome/brands/firefox-browser" +link = "https://pontoon.mozilla.org" + +[project.markdown_extensions.pymdownx.highlight] +anchor_linenums = true + +[project.markdown_extensions.pymdownx.tabbed] +alternate_style = true + +[project.markdown_extensions.pymdownx.emoji] +emoji_index = "zensical.extensions.emoji.twemoji" +emoji_generator = "zensical.extensions.emoji.to_svg" + +[project.markdown_extensions.toc] +permalink = true + +# Enabled without extra options in mkdocs.yml: +[project.markdown_extensions.admonition] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.superfences] +[project.markdown_extensions.pymdownx.inlinehilite] +[project.markdown_extensions.pymdownx.snippets] +[project.markdown_extensions.attr_list] +[project.markdown_extensions.md_in_html] From 096d5a0e28fff24a5f4df7fe8914d197d6e6661b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 19 Mar 2026 16:47:14 +0100 Subject: [PATCH 07/35] Drop CSS --- docz/zensical.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/docz/zensical.toml b/docz/zensical.toml index 8cfc0364e7..1856614576 100644 --- a/docz/zensical.toml +++ b/docz/zensical.toml @@ -11,7 +11,6 @@ site_name = "Pontoon Documentation" site_description = "Pontoon is Mozilla's translation management system. This documentation covers everything from translating strings to deploying your own instance." site_url = "https://pontoon.mozilla.org/docs/" -extra_css = ["stylesheets/extra.css"] nav = [ { "Home" = "index.md" }, From 2d2d0a04fb419cf645e15d5f2e050020dd328f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Fri, 20 Mar 2026 19:36:13 +0100 Subject: [PATCH 08/35] Remove mkdocs --- .github/workflows/backend.yml | 4 +- Makefile | 3 +- bin/post_compile | 3 +- docker/Dockerfile | 3 +- docker/Dockerfile-mozcloud | 3 +- documentation/docs/dev/setup.md | 2 +- documentation/mkdocs.yml | 106 --- {docz => documentation}/zensical.toml | 0 docz/docs/admin/adding-new-locale.md | 68 -- docz/docs/admin/adding-new-project.md | 68 -- docz/docs/admin/adding-short-term-project.md | 44 - docz/docs/admin/adding-terminology.md | 25 - docz/docs/admin/index.md | 55 -- docz/docs/admin/managing-pretranslation.md | 51 -- docz/docs/admin/managing-users.md | 28 - docz/docs/admin/messaging-center.md | 53 -- docz/docs/admin/renaming-file.md | 13 - docz/docs/admin/renaming-project.md | 16 - docz/docs/assets/pontoon-logo.svg | 6 - docz/docs/dev/contributing.md | 400 --------- docz/docs/dev/deployment.md | 809 ------------------- docz/docs/dev/feature-development-process.md | 112 --- docz/docs/dev/first-contribution.md | 187 ----- docz/docs/dev/index.md | 52 -- docz/docs/dev/localizing-your-projects.md | 108 --- docz/docs/dev/maintenance.md | 108 --- docz/docs/dev/setup-virtualenv.md | 211 ----- docz/docs/dev/setup.md | 126 --- docz/docs/index.md | 61 -- docz/docs/localizer/glossary.md | 60 -- docz/docs/localizer/index.md | 53 -- docz/docs/localizer/notifications.md | 26 - docz/docs/localizer/profile.md | 21 - docz/docs/localizer/teams-projects.md | 95 --- docz/docs/localizer/translate.md | 99 --- docz/docs/localizer/translation-workspace.md | 119 --- docz/docs/localizer/users.md | 72 -- docz/docs/stylesheets/extra.css | 48 -- pontoon/settings/base.py | 5 +- pontoon/urls.py | 12 - 40 files changed, 8 insertions(+), 3327 deletions(-) delete mode 100644 documentation/mkdocs.yml rename {docz => documentation}/zensical.toml (100%) delete mode 100644 docz/docs/admin/adding-new-locale.md delete mode 100644 docz/docs/admin/adding-new-project.md delete mode 100644 docz/docs/admin/adding-short-term-project.md delete mode 100644 docz/docs/admin/adding-terminology.md delete mode 100644 docz/docs/admin/index.md delete mode 100644 docz/docs/admin/managing-pretranslation.md delete mode 100644 docz/docs/admin/managing-users.md delete mode 100644 docz/docs/admin/messaging-center.md delete mode 100644 docz/docs/admin/renaming-file.md delete mode 100644 docz/docs/admin/renaming-project.md delete mode 100644 docz/docs/assets/pontoon-logo.svg delete mode 100644 docz/docs/dev/contributing.md delete mode 100644 docz/docs/dev/deployment.md delete mode 100644 docz/docs/dev/feature-development-process.md delete mode 100644 docz/docs/dev/first-contribution.md delete mode 100644 docz/docs/dev/index.md delete mode 100644 docz/docs/dev/localizing-your-projects.md delete mode 100644 docz/docs/dev/maintenance.md delete mode 100644 docz/docs/dev/setup-virtualenv.md delete mode 100644 docz/docs/dev/setup.md delete mode 100644 docz/docs/index.md delete mode 100644 docz/docs/localizer/glossary.md delete mode 100644 docz/docs/localizer/index.md delete mode 100644 docz/docs/localizer/notifications.md delete mode 100644 docz/docs/localizer/profile.md delete mode 100644 docz/docs/localizer/teams-projects.md delete mode 100644 docz/docs/localizer/translate.md delete mode 100644 docz/docs/localizer/translation-workspace.md delete mode 100644 docz/docs/localizer/users.md delete mode 100644 docz/docs/stylesheets/extra.css diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 1db455f097..0ac51dbbed 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -74,13 +74,13 @@ jobs: sed -e 's#^DATABASE_URL=.*#DATABASE_URL=postgres://pontoon:pontoon@localhost/pontoon#' -e '/^SITE_URL=/d' + docker/config/server.env.template > .env # Run collectstatic with minimal dependencies, skipping the actual front-end build - run: npm install working-directory: pontoon - run: mkdir -p translate/dist translate/public - - run: mkdocs build -f documentation/mkdocs.yml - - run: zensical build -f docz/zensical.toml + - run: zensical build -f documentation/zensical.toml - run: python manage.py collectstatic # Check if there are missing migrations diff --git a/Makefile b/Makefile index 5dd88aa798..17c796dc86 100644 --- a/Makefile +++ b/Makefile @@ -162,6 +162,5 @@ requirements: "${DC}" run --rm server //app/docker/compile_requirements.sh ${opts} docs: - "${DC}" run --rm server mkdocs build -f //app/documentation/mkdocs.yml - "${DC}" run --rm server zensical build -f //app/docz/zensical.toml + "${DC}" run --rm server zensical build -f //app/documentation/zensical.toml "${DC}" run --rm server python manage.py collectstatic --noinput diff --git a/bin/post_compile b/bin/post_compile index a6fa23487a..b17ad8a9b5 100644 --- a/bin/post_compile +++ b/bin/post_compile @@ -23,8 +23,7 @@ else fi echo "Building documentation..." -mkdocs build -f documentation/mkdocs.yml -zensical build -f docz/zensical.toml +zensical build -f documentation/zensical.toml echo "Collecting static files..." ./manage.py collectstatic --noinput diff --git a/docker/Dockerfile b/docker/Dockerfile index 37dee29b79..1c4511a13a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -52,8 +52,7 @@ COPY --chown=pontoon:pontoon ./docker/config/server.env .env COPY --chown=pontoon:pontoon . /app/ # Build documentation (generates static files) -RUN mkdocs build -f documentation/mkdocs.yml -RUN zensical build -f docz/zensical.toml +RUN zensical build -f documentation/zensical.toml RUN python manage.py collectstatic diff --git a/docker/Dockerfile-mozcloud b/docker/Dockerfile-mozcloud index 301d60aade..e1bea72f9f 100644 --- a/docker/Dockerfile-mozcloud +++ b/docker/Dockerfile-mozcloud @@ -93,8 +93,7 @@ COPY --from=node-builder /app/translate/public /app/translate/public COPY . /app/ # Build documentation (generates static files) -RUN mkdocs build -f documentation/mkdocs.yml -RUN zensical build -f docz/zensical.toml +RUN zensical build -f documentation/zensical.toml # Set up environment variables for collectstatic ENV YUGLIFY_BINARY=/app/node_modules/.bin/yuglify diff --git a/documentation/docs/dev/setup.md b/documentation/docs/dev/setup.md index 10c2c8c294..6a119d78f2 100644 --- a/documentation/docs/dev/setup.md +++ b/documentation/docs/dev/setup.md @@ -123,4 +123,4 @@ is correctly set. At this point, you can open the *Cygwin64 Terminal* and proceed with the installation (the content of `C:` will be available in `/cygdrive/c`). Once the Docker image is running, Pontoon\'s instance will be available -at [http://localhost:8000]{.title-ref}. +at . diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml deleted file mode 100644 index 012e1c5312..0000000000 --- a/documentation/mkdocs.yml +++ /dev/null @@ -1,106 +0,0 @@ -site_name: Pontoon Documentation -site_url: https://pontoon.mozilla.org/docs/ -site_description: >- - Pontoon is Mozilla's translation management system. This documentation covers - everything from translating strings to deploying your own instance. -repo_url: https://github.com/mozilla/pontoon -repo_name: mozilla/pontoon -edit_uri: edit/main/documentation/docs/ - -theme: - name: material - logo: assets/pontoon-logo.svg - favicon: assets/pontoon-logo.svg - palette: - - media: "(prefers-color-scheme: light)" - scheme: default - primary: custom - accent: custom - toggle: - icon: material/brightness-7 - name: Switch to dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: custom - accent: custom - toggle: - icon: material/brightness-4 - name: Switch to light mode - features: - - navigation.tabs - - navigation.tabs.sticky - - navigation.sections - - navigation.expand - - navigation.path - - navigation.top - - search.highlight - - search.suggest - - content.code.copy - - content.action.edit - - toc.follow - -extra_css: - - stylesheets/extra.css - -plugins: - - search - - glightbox - -markdown_extensions: - - admonition - - pymdownx.details - - pymdownx.superfences - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.tabbed: - alternate_style: true - - attr_list - - md_in_html - - toc: - permalink: true - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg - -nav: - - Home: index.md - - Localizer Guide: - - Overview: localizer/index.md - - How to Translate: localizer/translate.md - - Translation Workspace: localizer/translation-workspace.md - - Team & Project Pages: localizer/teams-projects.md - - User Accounts & Settings: localizer/users.md - - Notifications: localizer/notifications.md - - Profile Page: localizer/profile.md - - Glossary: localizer/glossary.md - - Admin Guide: - - Overview: admin/index.md - - Adding a New Project: admin/adding-new-project.md - - Adding a Short-Term Project: admin/adding-short-term-project.md - - Adding a New Locale: admin/adding-new-locale.md - - Managing Pretranslation: admin/managing-pretranslation.md - - Messaging Center: admin/messaging-center.md - - Renaming a Localization File: admin/renaming-file.md - - Renaming a Project: admin/renaming-project.md - - Managing Users: admin/managing-users.md - - Adding Terminology: admin/adding-terminology.md - - Developer Guide: - - Overview: dev/index.md - - Your First Contribution: dev/first-contribution.md - - Developer Setup: dev/setup.md - - Contributing Guidelines: dev/contributing.md - - Feature Development Process: dev/feature-development-process.md - - Deployment: dev/deployment.md - - Maintenance: dev/maintenance.md - - Localizing Your Projects: dev/localizing-your-projects.md - - Developer Setup (Virtualenv): dev/setup-virtualenv.md - -extra: - social: - - icon: fontawesome/brands/github - link: https://github.com/mozilla/pontoon - - icon: fontawesome/brands/firefox-browser - link: https://pontoon.mozilla.org - generator: false diff --git a/docz/zensical.toml b/documentation/zensical.toml similarity index 100% rename from docz/zensical.toml rename to documentation/zensical.toml diff --git a/docz/docs/admin/adding-new-locale.md b/docz/docs/admin/adding-new-locale.md deleted file mode 100644 index 4003ec77c3..0000000000 --- a/docz/docs/admin/adding-new-locale.md +++ /dev/null @@ -1,68 +0,0 @@ -# Adding a New Locale - -This page explains how to add a new language/locale to Pontoon. The example used throughout is Amharic (`am`). - -## Step 1 — Add the locale in Django admin - -Access Django's admin interface at `/a/` (not the standard `/admin/`), then click **Locales**. - -Search for the locale you want to add (searching by locale code is safer). If the locale is not yet in Pontoon, click **ADD LOCALE+** in the top-right corner. - -Complete the following fields: - -### Core fields - -| Field | Example | Notes | -|---|---|---| -| **Code** | `am` | The locale code (BCP 47). | -| **Name** | `Amharic` | The language name displayed in Pontoon. | -| **Plural rule** | *(see below)* | The Gettext plural rule expression. | -| **Cldr plurals** | `1,5` | Comma-separated list of available CLDR plural categories (no spaces). | - -### Machine translation fields - -| Field | Notes | -|---|---| -| **Google translate locale** | Google's locale code for this language. Leave blank to disable Google Translate for this locale. See [Google's supported locales list](https://cloud.google.com/translate/docs/languages). | -| **Google automl model** | Google AutoML model ID (usually starts with `NM`). Set after training a custom model (see [Managing Pretranslation](managing-pretranslation.md)). | -| **MS translator locale** | Microsoft Translator's locale code. Leave blank to disable. | -| **MS terminology locale** | Microsoft Terminology locale code. Leave blank to disable. | - -### Plural rules - -Look up the locale on [CLDR](https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html). For Amharic, two cardinal plural forms are listed: `one` and `other`. - -The **Gettext plural rule** is a C expression. For Amharic: -``` -nplurals=2; plural=(n > 1); -``` - -The **CLDR plurals** field uses numbers corresponding to plural categories: -`0`=zero, `1`=one, `2`=two, `3`=few, `4`=many, `5`=other. - -For Amharic (`one`, `other`) → `1,5`. - -Irish (`ga-IE`) has all forms except zero → `1,2,3,4,5`. - -### Access keys - -Access keys allow keyboard-activated menu commands (shown as underlined characters). - -- **Access key attribute checkbox checked** (default) — Pontoon leaves the access key field empty and shows a dynamic UI for translators to pick from available characters in the localized label. For pretranslation, it uses the first character of the pretranslated label. -- **Access key attribute checkbox unchecked** — Pontoon automatically uses the same access key as the source string (useful for locales using non-Latin scripts like Chinese or Japanese). - -## Step 2 — Set up the Terminology project - -The "Terminology" project appears automatically under the new team's page (e.g., `pontoon.mozilla.org/am/`) after the locale is saved. - -## Step 3 — Populate CLDR population data (optional) - -A helper script is available to assist with population data. Save the script as `cldr_population.py` and run: - -```bash -python cldr_population.py LOCALE_CODE -``` - -## Step 4 — Enable pretranslation (optional) - -Once the locale is added, you can set up a custom AutoML model and enable pretranslation. See [Managing Pretranslation](managing-pretranslation.md). diff --git a/docz/docs/admin/adding-new-project.md b/docz/docs/admin/adding-new-project.md deleted file mode 100644 index 67a5006c61..0000000000 --- a/docz/docs/admin/adding-new-project.md +++ /dev/null @@ -1,68 +0,0 @@ -# Adding a New Project - -This page explains how to add a standard VCS-backed project to Pontoon. For database-backed short-term projects (newsletters, campaigns, etc.), see [Adding a Short-Term Project](adding-short-term-project.md). - -## Prerequisites - -Before adding a project to Pontoon, ensure that: - -1. The project uses a [supported localization file format](../dev/localizing-your-projects.md#supported-file-formats). -2. Localizable strings are extracted into resource files and pushed to a GitHub (or Mercurial) repository. -3. Pontoon has **write access** to the repository — the recommended approach is to create a dedicated GitHub account for your Pontoon instance, add it as a collaborator to the repository, and configure `SSH_KEY` and `SSH_CONFIG` in your deployment. - -Check the repository structure against [Pontoon's requirements](../dev/localizing-your-projects.md#repository-structure). Review files for localization quality issues: unclear strings, missing localization comments, missing plural forms. - -## Creating the project - -Access Pontoon's admin console at `/admin/` and click **ADD NEW PROJECT**. - -### Required fields - -| Field | Notes | -|---|---| -| **Name** | Displayed throughout Pontoon. Reserved names: *Terminology*, *Tutorial*, *Pontoon Intro*. | -| **Slug** | Used in URLs; auto-generated from Name. | -| **Locales** | Select at least one localizable locale by clicking on it. | -| **Repository URL** | Use the SSH URL: `git@github.com:user/repo.git`. | - -### Optional fields - -| Field | Notes | -|---|---| -| **Branch** | Leave empty to use the default branch (usually `main` or `master`). | -| **Public Repository Website** | Displayed on dashboards. Pontoon attempts to prefill this from the Repository URL. | -| **Download prefix or path to TOML file** | A URL prefix for downloading localized files. | -| **Visibility** | `private` (default) — admins only; `public` — visible to all. | -| **Project info** | Context or testing instructions for localizers. HTML supported. | -| **Internal admin notes** | For developer contacts and PM handoff notes; not visible to localizers. | -| **Deadline** | Format: `YYYY-MM-DD`. | -| **Priority** | 1 (Lowest) to 5 (Highest). | -| **Contact** | The L10n driver responsible for this project. | -| **External Resources** | Links to preview environments, screenshots, etc. | -| **Pretranslation** | See [Managing Pretranslation](managing-pretranslation.md). | -| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | -| **Tags enabled** | Check to allow resource grouping by tag. | -| **Read-only** | Column in the Locales section; marks a locale as read-only. | - -## First sync - -1. Click **SAVE PROJECT** at the bottom of the page. -2. Click **SYNC** to run a test sync. -3. Monitor progress in the **Sync log** at `/sync/log/`. -4. Verify that imported resources and strings look correct. - -!!! important - The new project only appears in the public project list after the next sync cycle AND after you set **Visibility** to `Public`. - -## Tags - -Tags logically group resources and can be assigned a priority. To use tags: - -1. Check **Tags enabled** and save the project. -2. After saving, a tag management section appears — create tags and save again. -3. Associate resources with tags via the resource section of the admin panel. -4. It's also possible to set a **deadline** per Resource (not just per project) from the resource section. - -## Read-only locales - -In the Locales table, the **Read-only** column marks a locale's translations as visible but not editable in Pontoon. Other locales can reference these translations in the LOCALES tab. diff --git a/docz/docs/admin/adding-short-term-project.md b/docz/docs/admin/adding-short-term-project.md deleted file mode 100644 index da3b8cfad3..0000000000 --- a/docz/docs/admin/adding-short-term-project.md +++ /dev/null @@ -1,44 +0,0 @@ -# Adding a Short-Term Project - -Short-term projects are used for content that does not have a repository — newsletters, marketing campaigns, surveys, and similar one-off content. Strings are stored only in Pontoon's database. - -## Process overview - -The process mirrors creating a standard project, with two key differences: - -- **Data Source** is set to `Database` instead of a VCS repository. -- You should **test on the staging server first** before creating on production. - -## Step 1 — Create on staging - -Access Pontoon's admin console on the **staging server** and click **ADD NEW PROJECT**. - -| Field | Notes | -|---|---| -| **Name** | Name of the project (displayed in Pontoon's project selector). | -| **Slug** | Auto-generated from Name; used in URLs. | -| **Locales** | Select at least one locale. Use *copy supported locales from an existing project* to speed this up. | -| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | -| **Data Source** | Select **Database**. | -| **Deadline** | Format: `YYYY-MM-DD`. | -| **Priority** | 1 (Lowest) to 5 (Highest). | - -Click **SAVE PROJECT** and verify that the project behaves as expected on staging. - -## Step 2 — Manage strings - -Once the project is created, two string management links appear on the admin project page: - -- **MANAGE STRINGS** — view, edit, add, and delete strings. - - Click **NEW STRING** to add a string. - - Click the trashcan icon to remove a string. - - Edit the string content and comment inline. - - Click **SAVE STRINGS** to commit changes. -- **DOWNLOAD STRINGS** — download current strings for local editing or archiving. - -## Step 3 — Create on production - -Once validated on staging, access the production admin console and recreate the project with the same settings. Select all supported locales. The new project immediately appears in the public project list after saving. - -!!! note - Unlike VCS-backed projects, short-term projects do not have a Sync process. String changes take effect immediately after saving. diff --git a/docz/docs/admin/adding-terminology.md b/docz/docs/admin/adding-terminology.md deleted file mode 100644 index 91db5f2ab7..0000000000 --- a/docz/docs/admin/adding-terminology.md +++ /dev/null @@ -1,25 +0,0 @@ -# Adding Terminology - -The **Terminology** project is a special built-in project in Pontoon that powers the glossary feature. When a source string contains a recognized term, Pontoon highlights it and shows its definition and existing translations. - -## Accessing the Terminology project - -The Terminology project is managed like any other project. Access it from Pontoon's admin console → **Terminology** project, or navigate directly to `/admin/projects/terminology/`. - -## Adding a new term - -1. Go to the Terminology project admin page. -2. Under **Strings**, click **MANAGE STRINGS**. -3. Click **NEW STRING**. -4. Enter: - - **String** — the term in the source language (English). - - **Comment** — the definition or usage notes. -5. Click **SAVE STRINGS**. - -## Translating terminology - -Once a term is added as a source string, localizers can translate it in the Terminology project like any other string. Translations appear in the **Terminology** tab of the translation workspace when a matching term is found in a source string. - -## Downloading terminology - -The full glossary can be downloaded as a **TBX** (TermBase eXchange) file. Click the profile icon in the top-right corner of any Pontoon page and select **Download Terminology**. diff --git a/docz/docs/admin/index.md b/docz/docs/admin/index.md deleted file mode 100644 index 20c25a5e0f..0000000000 --- a/docz/docs/admin/index.md +++ /dev/null @@ -1,55 +0,0 @@ -# Admin Guide - -This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. - -!!! note "Mozilla-specific content" - Most of this guide is specific to Mozilla's deployment of Pontoon at [pontoon.mozilla.org](https://pontoon.mozilla.org). Some procedures (such as URLs and Google AutoML details) will differ for other deployments. - -## Sections - -
- -- :material-folder-plus: **[Adding a New Project](adding-new-project.md)** - - How to set up a standard VCS-backed project in Pontoon, including repository configuration, locale selection, tags, and deadlines. - -- :material-calendar-clock: **[Adding a Short-Term Project](adding-short-term-project.md)** - - How to create database-backed projects for newsletters, campaigns, and surveys — no VCS required. - -- :material-translate: **[Adding a New Locale](adding-new-locale.md)** - - How to add a new language/locale to Pontoon, including machine translation setup and plural rules. - -- :material-robot: **[Managing Pretranslation](managing-pretranslation.md)** - - How to enable automated pretranslation for a project and train custom Google AutoML models. - -- :material-message-text: **[Messaging Center](messaging-center.md)** - - How to send targeted emails and in-app notifications to contributors. - -- :material-file-edit: **[Renaming a Localization File](renaming-file.md)** - - Steps to rename a resource file without losing translation history. - -- :material-pencil: **[Renaming a Project](renaming-project.md)** - - Steps to safely rename a project slug and update references. - -- :material-account-multiple: **[Managing Users](managing-users.md)** - - How to deactivate or remove user accounts. - -- :material-book-alphabet: **[Adding Terminology](adding-terminology.md)** - - How to add terms to the Pontoon glossary/terminology project. - -
- -## Accessing the admin console - -The Pontoon admin console is available at `/admin/` (e.g., `pontoon.mozilla.org/admin/`). Django's standard admin interface is at `/a/`. - -!!! warning - Only Administrators have access to the admin console. Changes made here affect all users and projects. diff --git a/docz/docs/admin/managing-pretranslation.md b/docz/docs/admin/managing-pretranslation.md deleted file mode 100644 index bc26978afb..0000000000 --- a/docz/docs/admin/managing-pretranslation.md +++ /dev/null @@ -1,51 +0,0 @@ -# Managing Pretranslation - -Pretranslation automatically translates new strings using translation memory (TM) and machine translation, saving results as *Pretranslated* strings that can be reviewed before going live. - -When pretranslation is enabled for a locale+project combination and a new string is added to Pontoon: - -1. Pontoon checks for a **100% TM match** — if found, it is used directly. -2. If no TM match exists, the **Google AutoML Translation** custom model for the locale is used. -3. The string is saved with the *Pretranslated* status. -4. For VCS projects, the pretranslation is stored in localized files outside Pontoon. - -## Enabling pretranslation for a project - -Access Pontoon's admin console → open the project → scroll to the **Pretranslation** section at the bottom of the page. - -!!! important - If this is the **first project** being enabled for a locale, you must first train and set up a custom AutoML model (see below) before enabling pretranslation. - -1. Check **PRETRANSLATION ENABLED**. -2. Move the desired locales from the **Available** list to **Chosen**. -3. Optionally, click **PRETRANSLATE** to immediately pretranslate all missing strings for enabled locales. Otherwise, pretranslation runs automatically as new strings are added. - -## Training a custom AutoML model - -Custom models are trained per locale using Pontoon's translation memory, resulting in better quality than the generic Google Translate engine. - -### Step 1 — Download the TM - -Go to the **Team page** for the locale → **TM** tab → download the TMX file. - -### Step 2 — Import the TM into Google AutoML - -1. Open the [Google Cloud Console](https://console.cloud.google.com) (requires permission). -2. Navigate to **AutoML Translation** → **Datasets** → **CREATE DATASET**. -3. Import the TMX file: - - Click **BROWSE** in the *Destination on Cloud Storage* field and select `pontoon-prod-model-data-c1107144`. - - Click **CONTINUE** to start the import. - - Wait for the Status column to show `Success: ImportData` (a few minutes; you can close the window and return). - -### Step 3 — Train the model - -1. Navigate to the **TRAIN** tab → click **START TRAINING**. -2. Training is a background job that takes **several hours**. At most 4 locale models can train concurrently. -3. Wait for the Status column to show `Success: CreateModel`. -4. Note the model name (usually starts with `NM`, followed by alphanumeric characters). - -### Step 4 — Register the model in Pontoon - -In Django's admin interface at `/a/` → **Locales** → find the locale → set the **Google automl model** field to the model name noted above. - -From this point, the Machinery tab uses the custom model and pretranslation is ready to be enabled. diff --git a/docz/docs/admin/managing-users.md b/docz/docs/admin/managing-users.md deleted file mode 100644 index 722b571f50..0000000000 --- a/docz/docs/admin/managing-users.md +++ /dev/null @@ -1,28 +0,0 @@ -# Managing Users - -## Deactivating users - -Deactivating a user prevents them from logging in but preserves their contribution history and attribution in translation records. - -1. Access Django's admin interface at `/a/`. -2. Click **Users** and search for the user. -3. Uncheck the **Active** checkbox on the user's record. -4. Click **Save**. - -Deactivation is reversible — you can reactivate the user by checking **Active** again. - -## Removing users - -Removing a user **permanently deletes** their account. This is irreversible and should only be done when strictly necessary (e.g., for GDPR/privacy requests). - -1. Access Django's admin interface at `/a/`. -2. Click **Users** and search for the user. -3. Select the user and choose **Delete selected users** from the action dropdown. -4. Confirm the deletion. - -!!! danger - Deleting a user is permanent. Their username may be replaced with an anonymized placeholder in historical translation records. - -## Adjusting permissions - -To change a user's role (Contributor, Translator, Team Manager), use the **Permissions** tab on the relevant Team page. See [User Accounts & Settings](../localizer/users.md#managing-permissions-team-managers) for details. diff --git a/docz/docs/admin/messaging-center.md b/docz/docs/admin/messaging-center.md deleted file mode 100644 index a995f0eff3..0000000000 --- a/docz/docs/admin/messaging-center.md +++ /dev/null @@ -1,53 +0,0 @@ -# Messaging Center - -The Messaging Center allows Administrators to send targeted emails and in-app notifications to contributors, with advanced filtering options. - -## Accessing the Messaging Center - -Click **Messaging** in the page header when logged in as an Administrator. The Messaging Center is at `/messaging/`. - -## Composing a message - -### Message type - -At the top of the page, choose one or more delivery types: - -| Type | Notes | -|---|---| -| **Notification** | Sent as an in-app notification. Not included in notification email digests. | -| **Email** | Sent as an email. By default, only sent to users who have opted in to *News and updates*. | -| **Both** | Sends both a notification and an email. | - -For emails, if the message is **transactional** (e.g., about an account action), check the **Transactional** option. Transactional emails are sent even to users who have not opted in to email communication. - -### Subject and body - -Enter your message using the **Subject** and **Body** fields. - -## Audience filtering - -### By role - -Select whether to send to **Managers**, **Translators**, **Contributors**, or **All of them**. - -### By locale - -All locales are included by default (shown in the **Chosen** column). Remove individual locales by clicking them to move them to the **Available** column. Use **MOVE ALL** to move all locales at once between columns. - -### By project - -All projects are included by default. Remove individual projects by clicking them. Use **MOVE ALL** to move all projects. - -### By activity - -Filter recipients based on their contribution history: - -- **Number of translations submitted** — minimum or maximum threshold. -- **When they last submitted a translation** — date range. - -## Sending - -After configuring the message and audience, click **Send** to deliver. Recipients are determined by the intersection of all applied filters. - -!!! note - Notifications sent via the Messaging Center are **not** included in the regular notification email digests that users receive. diff --git a/docz/docs/admin/renaming-file.md b/docz/docs/admin/renaming-file.md deleted file mode 100644 index 077cb2d205..0000000000 --- a/docz/docs/admin/renaming-file.md +++ /dev/null @@ -1,13 +0,0 @@ -# Renaming a Localization File - -Renaming a resource file in the VCS repository requires corresponding updates in Pontoon's database to avoid losing translation history. - -## Steps - -1. Rename the file in your VCS repository and push the change. -2. Access Pontoon's admin console → the affected project. -3. In the **Resources** section, find the old filename and update it to match the new filename. -4. Save the project and trigger a manual **SYNC**. - -!!! warning - If you sync before updating the resource name in Pontoon, the old resource will be marked as deleted and a new one created, losing all translation history. diff --git a/docz/docs/admin/renaming-project.md b/docz/docs/admin/renaming-project.md deleted file mode 100644 index 00e0596716..0000000000 --- a/docz/docs/admin/renaming-project.md +++ /dev/null @@ -1,16 +0,0 @@ -# Renaming a Project - -Renaming a project changes its **Name** and, if desired, its **Slug** (used in URLs). - -## Steps - -1. Access Pontoon's admin console → the project you want to rename. -2. Update the **Name** field. -3. If you also want to update the slug, update the **Slug** field. Be aware that this changes all URLs for the project and localization pages. -4. Click **SAVE PROJECT**. - -!!! warning - Changing the **Slug** invalidates any bookmarked or shared links to the project's pages. Coordinate with the team and update any external references (documentation, bug trackers, etc.) before or immediately after renaming. - -!!! note - For VCS-backed projects, renaming does not affect the repository or its file structure. diff --git a/docz/docs/assets/pontoon-logo.svg b/docz/docs/assets/pontoon-logo.svg deleted file mode 100644 index 85d323e2f1..0000000000 --- a/docz/docs/assets/pontoon-logo.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docz/docs/dev/contributing.md b/docz/docs/dev/contributing.md deleted file mode 100644 index 2a3beefae9..0000000000 --- a/docz/docs/dev/contributing.md +++ /dev/null @@ -1,400 +0,0 @@ -# Contributing Guidelines - -## Source code - -Pontoon source code is available on -[GitHub](https://github.com/mozilla/pontoon). - -## Issues - -Our work is tracked in -[GitHub](https://github.com/mozilla/pontoon/issues). - -[Report a new issue](https://github.com/mozilla/pontoon/issues/new). - -## Docker - -While the front-end (JavaScript) build and tests use the host -environment for development, the back-end systems (Python/Django, -databases, etc.) run in Docker containers. For production use, also the -front-end is built in a container. Thus Pontoon requires fewer things to -get started and you\'re guaranteed to have the same server setup as -everyone else. - -If you\'re not familiar with [Docker](https://docs.docker.com/) and -[docker-compose](https://docs.docker.com/compose/overview/), it\'s worth -reading up on. - -## Writing to external repositories - -`Environment variables <../admin/deployment>`{.interpreted-text -role="doc"} like `SSH_KEY` and `SSH_CONFIG` have no effect in a Docker -setup. - -The [\~/.ssh]{.title-ref} folder of the host system is mapped -automatically to the home folder within the container. In order to -connect to a remote repository via SSH, you need to create a -passwordless SSH key, and configure [\~/.ssh/config]{.title-ref} -accordingly. - -Here\'s an example for GitHub, assuming the private key file is called -[id_ed25519]{.title-ref} (see also [GitHub\'s -instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) -to generate a new key): - -``` -Host github.com - User YOUR_USERNAME - IdentityFile ~/.ssh/id_ed25519 - StrictHostKeyChecking no -``` - -The project\'s repository will use the format -`git@github.com:{ORGANIZATION}/{REPOSITORY}.git` for the `URL` field. - -An alternative approach for GitHub is to use a [Personal Access Token -(PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), -and set up the project\'s `URL` as [https://]{.title-ref} instead of -[git@]{.title-ref}. In this case, the `URL` will need to include both -the PAT and username, e.g. -`https://{USER}:{TOKEN}@github.com/{REPOSITORY}`. - -## JavaScript setup - -For working on the front-end, you need the latest versions of Node.js -and npm ([installation -instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)). -Parts of the front-end use [npm -workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces), which -are not supported by earlier npm versions. - -## Database - -If you have a database dump, you can load it into your PostgreSQL -database. - -Make sure you backup your existing database first: - -``` shell -$ make dumpdb -``` - -And then load the dump: - -``` shell -$ make loaddb DB_DUMP_FILE=path/to/my/dump -``` - -Note that your database container needs to be running while you do that. -You can start just the postgresql container by running: - -``` shell -$ docker-compose up -d postgresql -``` - -## Interactive shell - -If you need to run specific commands, that are not covered by our -[Makefile]{.title-ref}, you can start an interactive shell inside a -Pontoon container: - -``` shell -$ make shell -``` - -[make shell-root]{.title-ref} is also available to log in as -[root]{.title-ref}, instead of the default [pontoon]{.title-ref} user. - -## Browser Support - -The list of browsers supported by Pontoon is defined in the -[\"browserslist\"]{.title-ref} entry of the root package.json, and -contains by default: - -``` bash -Firefox >= 78 -Chrome >= 80 -Edge >= 91 -Safari >= 13.1 -``` - -## Code style - -We use code formatters so that we do not have to fight over code style. -You are free to write code however you like, because in the end the -formatter is the one that will format it. We thus don\'t need to pay -attention to style during code reviews, and are free from those -never-ending code style discussions. - -To format the Python and the JavaScript code at once you can use: - -``` shell -$ make format -``` - -Code formatting is explained in more detail in the following sections. - -To run the required linters on the Python and the JavaScript code at -once you can use: - -``` shell -$ make lint -``` - -## Python code conventions - -Our Python code is automatically formatted using -[ruff](https://docs.astral.sh/ruff/). We enforce that in our Continuous -Integration, so you will need to run ruff on your code before sending it -for review. - -You can run ruff locally either as an [add-on in your code -editor](https://docs.astral.sh/ruff/integrations/#vs-code-official), or -as a [git pre-hook -commit](https://docs.astral.sh/ruff/integrations/#pre-commit). -Alternatively, you can format your code using: - -``` shell -$ make ruff -``` - -In the rare case when you cannot fix an error, use `# noqa` to make the -linter ignore that error (see -[documentation](https://docs.astral.sh/ruff/linter/#error-suppression)). -Note that in most cases, it is better to fix the issues than ignoring -them. - -## JavaScript code conventions - -Our JavaScript code is automatically formatted using -[Prettier](https://prettier.io/docs/en/index.html). We enforce that in -our Continuous Integration, so you will need to run prettier on your -code before sending it for review. - -You can run prettier locally either as an [add-on in your code -editor](https://prettier.io/docs/en/editors.html), or as a [git pre-hook -commit](https://prettier.io/docs/en/precommit.html). Alternatively, you -can format your code using: - -``` shell -$ make prettier -``` - -Additionally, there are linting rules that are defined in our -`eslint.config.mjs` file. To run the linter, do: - -``` shell -$ make eslint -``` - -In the rare case when you cannot fix an eslint error, use -`// eslint-disable` to make the linter ignore that error. Note that in -most cases, it is better to fix the issues than ignore them. - -For more specifics about the `translate` folder, look at the README.md -file there. - -## Git conventions - -The first line is a summary of the commit. It should start with one of -the following: - - Fix #1234 - -or: - - #1234 - -The first, when it lands, will cause the issue to be closed. The second -one just adds a cross-reference. - -After that, the commit should explain *why* the changes are being made -and any notes that future readers should know for context or be aware -of. - -We follow [The seven rules of a great Git commit -message](https://chris.beams.io/posts/git-commit/#seven-rules): - -1. Separate subject from body with a blank line -2. Limit the subject line to 50 characters -3. Capitalize the subject line -4. Do not end the subject line with a period -5. Use the imperative mood in the subject line -6. Wrap the body at 72 characters -7. Use the body to explain what and why vs. how - -## Pull requests - -Pull request summary should indicate the issue the pull request -addresses. - -Pull request descriptions should cover at least some of the following: - -1. what is the issue the pull request is addressing? -2. why does this pull request fix the issue? -3. how should a reviewer review the pull request? -4. what did you do to test the changes? -5. any steps-to-reproduce for the reviewer to use to test the changes - -## Code reviews - -Pull requests should be reviewed before merging. - -Style nits should be covered by linting as much as possible. - -Code reviews should review the changes in the context of the rest of the -system. - -## Python Dependencies - -Direct dependencies for Pontoon are distributed across four files: - -1. `requirements/default.in`: Running Pontoon in production -2. `requirements/dev.in`: Development -3. `requirements/test.in`: Testing -4. `requirements/lint.in`: Linting - -In order to pin and hash the direct and indirect dependencies, we use -[uv pip compile](https://docs.astral.sh/uv/#the-pip-interface), which -yields corresponding `*.txt` files. These `*.txt` files contain all -direct and indirect dependencies, and can be used for installation with -`uv pip`. After any change to the `*.in` files, you should run the -following command to update all `requirements/*.txt` files. - -``` shell -$ make requirements -``` - -When adding a new requirement, add it to the appropriate -`requirements/*.in` file. For example, to add the development dependency -`foobar` version 5, add `foobar==5` to `requirements/dev.in`, and then -run the command from above. - -Once you are done adding, removing or updating requirements, rebuild -your docker environment: - -``` shell -$ make build-server -``` - -If there are problems, it\'ll tell you. - -To upgrade existing dependencies within the given constraints of the -input files, you can pass options through to the `uv pip compile` -invocations, i.e. - -``` shell -$ make requirements opts=--upgrade -``` - -## Documentation - -Documentation for Pontoon is built with -[Sphinx](http://www.sphinx-doc.org/en/stable/) and is available on -ReadTheDocs. - -Building docs is not covered with docker yet, so you will have to do it -on your host. To make a virtualenv to build docs, do this: - -``` shell -$ cd docs/ -$ uv venv -$ source .venv/bin/activate -$ uv pip install -r requirements/default.txt -``` - -Then, to build the docs, run this: - -``` shell -$ make html -``` - -The HTML documentation will be in [docs/\_build/html/]{.title-ref}. Try -to open [docs/\_build/html/index.html]{.title-ref} for example. - -## Running tests - -To run the entire test suite, do: - -``` shell -$ make test -``` - -To run only the `translate` tests: - -``` shell -$ make test-translate -``` - -To run only the Python tests: - -``` shell -$ make pytest -``` - -To run specific tests or specify arguments, you\'ll want to start a -shell in the test container: - -``` shell -$ make shell -``` - -Then you can run tests as you like. - -Running all the unittests (make sure you run `./manage.py collectstatic` -first): - -``` shell -app@...:/app$ pytest -``` - -Running a directory of tests: - -``` shell -app@...:/app$ pytest pontoon/base/ -``` - -Running a file of tests: - -``` shell -app@...:/app$ pytest pontoon/base/tests/test_views.py -``` - -## Writing tests - -Put your tests in the `tests/` directory of the appropriate app in -`pontoon/`. - -## Mock usage - -[Mock](https://docs.python.org/dev/library/unittest.mock.html) is a -python library for mocks objects. This allows us to write isolated tests -by simulating services besides using the real ones. Best examples are -existing tests which admittedly do mocking different depending on the -context. - -Tip! Try to mock in limited context so that individual tests don\'t -affect other tests. Use context managers instead of monkey patching -imported modules. - -## Updating Your Local Instance - -When changes are merged into the main Pontoon repository, you\'ll want -to update your local development instance to reflect the latest version -of the site. You can use Git as normal to pull the latest changes, but -if the changes add any new dependencies or alter the database, you\'ll -want to install any new libraries and run any new migrations. - -If you\'re unsure what needs to be run, it\'s safe to just perform all -of these steps, as they don\'t affect your setup if nothing has changed: - -``` shell -# Pull the latest code (assuming you've already checked out main). -git pull origin main - -# Install new dependencies or update existing ones. -uv pip install -U --force -r requirements/default.txt - -# Run database migrations. -python manage.py migrate -``` diff --git a/docz/docs/dev/deployment.md b/docz/docs/dev/deployment.md deleted file mode 100644 index 2fc4d24ad9..0000000000 --- a/docz/docs/dev/deployment.md +++ /dev/null @@ -1,809 +0,0 @@ ---- -title: Deployment ---- - -Pontoon is designed to be deployed on Heroku. To deploy an instance of -Pontoon on Heroku, you must first create an app on your Heroku -dashboard. The steps below assume you\'ve already created an app and -have installed the [Heroku -CLI](https://devcenter.heroku.com/articles/heroku-cli). - -For quick and easy deployment without leaving your web browser, click -this button: - -```{=html} - - - -``` -# Buildpack - -Pontoon uses several buildpacks in a specific order. They are (in -order): - -1. [heroku-buildpack-ssh](https://github.com/Osmose/heroku-buildpack-ssh) - for setting up the SSH keys necessary for committing to version - control. -2. The official `heroku/nodejs` buildpack for installing Node.js - programs for pre-processing frontend assets. -3. The official `heroku/python` buildpack as our primary buildpack. - -You can set these buildpacks on your app with the following toolbelt -commands: - -``` bash -# Note that we use add and --index 1 to append to the top of the list. -heroku buildpacks:set heroku/python -heroku buildpacks:add --index 1 heroku/nodejs -heroku buildpacks:add --index 1 https://github.com/Osmose/heroku-buildpack-ssh.git#v0.1 -heroku buildpacks:add --index 1 https://github.com/mozilla/heroku-buildpack-apt.git#v0.1 -``` - -# Environment Variables - -The following is a list of environment variables you\'ll want to set on -the app you create: - -::: note -::: title -Note -::: - -Alternatively, you can put all variables below in a -[dotenv](https://saurabh-kumar.com/python-dotenv/) text file: - - VAR="value 1" - OTHER_VAR="other value" - -If you do so, you will only have to give the path of this file to -Pontoon through the `DOTENV_PATH` environment variable: - - DOTENV_PATH=/path/to/my/config.env -::: - -`ADMIN_EMAIL` - -: Optional. Email address for the `ADMINS` setting. - -`ADMIN_NAME` - -: Optional. Name for the `ADMINS` setting. - -`AUTHENTICATION_METHOD` - -: The default value is [django]{.title-ref}, which allows you to log - in via accounts created using [manage.py shell]{.title-ref}. Set to - \'fxa\' if you want to use \'Mozilla Accounts\' (corresponding - [FXA]()\* settings must be set). Set to \'github\' if you want to - use \'GitHub\' (corresponding [GITHUB]()\* settings must be set). - Set to \'gitlab\' if you want to use \'GitLab\' (corresponding - [GITLAB]()\* settings must be set if required). Set to \'google\' if - you want to use \'Google\' (corresponding [GOOGLE]()\* settings must - be set). - -`USE_X_FORWARDED_HOST` - -: Optional. If using a reverse proxy, set to True to make - django-allauth redirect_url work as expected. Default value is - [False]{.title-ref}. - -`BADGES_START_DATE` - -: Optional. Specifies the start date from which user activities count - towards badge achievements. This variable should be in YYYY-MM-DD - format. - -`BADGES_PROMOTION_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Community Builder badge. - -`BADGES_REVIEW_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Review Master badge. - -`BADGES_TRANSLATION_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Translation Champion badge. - -`BLOCKED_IPS` - -: A comma-separated list of IP addresses or IP ranges (expressed using - the [CIDR notation](), e.g. [192.168.1.0/24]{.title-ref}) to be - blocked from accessing the app, for example because they are - DDoS\'ing the server. - -`CELERY_ALWAYS_EAGER` - -: Controls whether asynchronous tasks (mainly used during sync) are - sent to Celery or executed immediately and synchronously. Set this - to `False` on production. - -`CELERYD_MAX_TASKS_PER_CHILD` - -: Maximum number of tasks a Celery worker process can execute before - it's replaced with a new one. Defaults to 20 tasks. - -`DATABASE_SSLMODE` - -: Optional. Controls if the database needs a secure connection with - the app. Default value is [True]{.title-ref}. - -`DEFAULT_FROM_EMAIL` - -: Optional. Default email address to send emails from. Default value: - `Pontoon `. - -`DISABLE_COLLECTSTATIC` - -: Disables running `./manage.py collectstatic` during the build. - Should be set to `1`. - - Heroku\'s Python buildpack has a bug that causes issues when running - node binaries during the compile step of the buildpack. To get - around this, we run the command in our post-compile step (see - `bin/post_compile`) when the issue doesn\'t occur. - -`DJANGO_DEBUG` - -: Controls `DEBUG` mode for the site. Should be set to - [False]{.title-ref} in production. - -`DJANGO_DEBUG_TOOLBAR` - -: Enables Django Debug Toolbar (default: `False`). `DJANGO_DEV` must - be set to [True]{.title-ref}. - -`DJANGO_DEV` - -: Signifies whether this is a development server or not. Should be - [False]{.title-ref} in production. Adds some additional django apps - that can be helpful during day to day development. - -`EMAIL_HOST` - -: SMTP host (default: `'smtp.sendgrid.net'`). - -`EMAIL_HOST_PASSWORD` - -: Password for the SMTP connection. - -`EMAIL_HOST_USER` - -: Username for the SMTP connection (default: `'apikey'`). - -`EMAIL_PORT` - -: SMTP port (default: `587`). - -`EMAIL_USE_TLS` - -: Use explicit TLS for the SMTP connection (default: `True`). - -`EMAIL_USE_SSL` - -: Use implicit TLS for the SMTP connection (default: `False`). - -`EMAIL_CONSENT_ENABLED` - -: Optional. Enables Email consent page (default: `False`). - -`EMAIL_CONSENT_TITLE` - -: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Title of the - Email consent page. - -`EMAIL_CONSENT_MAIN_TEXT` - -: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Main text of the - Email consent page. You can use that to explain what type of - communication to expect among other things. - -`EMAIL_CONSENT_PRIVACY_NOTICE` - -: Optional. Privacy notice on the Email consent page. It\'s possible - to use HTML and link to external privacy notice page. - -`EMAIL_COMMUNICATIONS_HELP_TEXT` - -: Optional. Help text to use under the Email communications checkbox - in user settings. It allows to explain what type of communication to - expect and to link to deployment-specific privacy notices among - other things. - -`EMAIL_COMMUNICATIONS_FOOTER_PRE_TEXT` - -: Optional. Text to be shown in the footer of the non-transactional - emails sent using the Messaging Center, just above the unsubscribe - text. - -`EMAIL_MONTHLY_ACTIVITY_SUMMARY_INTRO` - -: Optional. Custom text to be shown in the Monthly activity summary - emails after the greeting and before the stats. - -`ENABLE_BUGS_TAB` - -: Optional. Enables Bugs tab on team pages, which pulls team data from - bugzilla.mozilla.org. Specific for Mozilla deployments. - -`ENABLE_INSIGHTS` - -: Optional. Enables Insights pages, which present data that needs to - be collected by the `collect-insights`{.interpreted-text role="ref"} - scheduled job. It is advised to run the job at least once before - enabling the tab, otherwise the content will be empty. See [the - spec](https://github.com/mozilla/pontoon/blob/HEAD/specs/0108-community-health-dashboard.md) - for more information. - -`ERROR_PAGE_URL` - -: Optional. URL to the page displayed to your users when the - application encounters a system error. See [Heroku - Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) - for more information. - -`GOOGLE_ANALYTICS_KEY` - -: Optional. Set your [Google Analytics - key](https://www.google.com/analytics/) to use Google Analytics. - -`GOOGLE_TRANSLATE_API_KEY` - -: Optional. Set your [Google Cloud Translation - API](https://cloud.google.com/translate/) key to use generic machine - translation engine by Google. - -`GOOGLE_AUTOML_PROJECT_ID` - -: Optional. Set your [Google Cloud AutoML - Translation](https://cloud.google.com/translate/) model ID to use - custom machine translation engine by Google. - -`GOOGLE_APPLICATION_CREDENTIALS` - -: Optional. Path to a Google Cloud service account JSON key file used - by Google client libraries for authentication. - -`INACTIVE_CONTRIBUTOR_PERIOD` - -: Optional. Number of months in which the contributor needs to log in - in order not to receive the inactive account email. The default - value is 6. - -`INACTIVE_TRANSLATOR_PERIOD` - -: Optional. Number of months in which the locale translator needs to - submit or review at least one translation in order not to receive - the inactive account email. The default value is 2. - -`INACTIVE_MANAGER_PERIOD` - -: Optional. Number of months in which the locale manager needs to - submit or review at least one translation in order not to receive - the inactive account email. The default value is 2. - -`LOG_TO_FILE` - -: Optional. Enables logging to a file (default: `False`). This is - useful for retaining log data for later analysis or troubleshooting. - -`MAINTENANCE_PAGE_URL` - -: Optional. URL to the page displayed to your users when the - application is placed in the maintenance state. See [Heroku - Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) - for more information. - -`MANUAL_SYNC` - -: Optional. Enable Sync button in project Admin. - -`MEDIA_ROOT` - -: Optional. The absolute path of the \"media\" folder the projects - will be cloned into (it is located next to the \"pontoon\" Python - module by default). - -`MICROSOFT_TRANSLATOR_API_KEY` - -: Optional. Set your [Microsoft Translator - API](http://msdn.microsoft.com/en-us/library/hh454950) key to use - machine translation by Microsoft. - -`MONTHLY_ACTIVITY_SUMMARY_DAY` - -: Optional. Integer representing a day of the month on which the - Monthly activity summary emails will be sent. 1 represents the first - day of the month. The default value is 1. - -`NEW_RELIC_API_KEY` - -: Optional. API key for accessing the New Relic REST API. Used to mark - deploys on New Relic. - -`NEW_RELIC_APP_NAME` - -: Optional. Name to give to this app on New Relic. Required if you\'re - using New Relic. - -`NOTIFICATION_DIGEST_DAY` - -: Optional. Integer representing a day of the week on which the weekly - notification digest email will be sent. 0 represents Monday, 6 - represents Sunday. The default value is 4 (Friday). - -`ONBOARDING_EMAIL_2_DELAY` - -: Optional. The number of days to wait after user registration before - sending the 2nd onboarding email. The default value is 2. - -`ONBOARDING_EMAIL_3_DELAY` - -: Optional. The number of days to wait after user registration before - sending the 3rd onboarding email. The default value is 7. - -`OPENAI_API_KEY` - -: Optional. Set your [OpenAI API]{.title-ref} key to add the ability - to refine machine translations using ChatGPT. - -`PERSONAL_ACCESS_TOKEN_MAX_COUNT` - -: Optional. The maximum number of personal access tokens a user can - create. The default value is 10. - -`PRETRANSLATION_API_MAX_CHARS` - -: Optional. Specifies the maximum length of input text allowed for - pretranslation API. The default value is 2048. - -`PROJECT_MANAGERS` - -: Optional. A list of project manager email addresses to send project - requests to - -`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION` - -: Required. Must be set to `python`. Needed for Google AutoML - Translation. Learn more on [Protocol Buffers - Homepage](https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates). - -`SECRET_KEY` - -: Required. Secret key used for sessions, cryptographic signing, etc. - -`SITE_URL` - -: Controls the base URL for the site, including the protocol and port. - Defaults to `http://localhost:8000`, should always be set in - production. - -`ALLOWED_HOSTS` - -: A list of strings representing the host/domain names the site can - serve. Defaults to `.localhost, 127.0.0.1, [::1]`, should always be - set in production. - -`SECURE_SSL_REDIRECT` - -: Optional. If True, redirects all non-HTTPS requests to HTTPS. - Default value is [True]{.title-ref}. Learn more in the [Django - documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#secure-ssl-redirect). - -`CSRF_TRUSTED_ORIGINS` - -: Optional. A comma-separated list of trusted origins for unsafe - requests. It should contain the domains where the app is available. - The setting also supports subdomains, so you could add - `https://*.example.com`, for example, to allow access from all - subdomains of `example.com`. Default value is an empty string. Learn - more in the [Django - documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins). - -`SSH_CONFIG` - -: Contents of the `~/.ssh/config` file used when Pontoon connects to - VCS servers via SSH. Used for disabling strict key checking and - setting the default user for SSH. For example: - - StrictHostKeyChecking=no - - Host hg.mozilla.org - User pontoon@mozilla.com - -`SSH_KEY` - -: SSH private key to use for authentication when Pontoon connects to - VCS servers via SSH. - -::: note -::: title -Note -::: - -Changing the `SSH_CONFIG` or `SSH_KEY` environment variables *requires* -a rebuild of the site, as these settings are only used at build time. -Simply changing them will not actually update the site until the next -build. - -The [Heroku Repo]() plugin includes a rebuild command that is handy for -triggering builds without making code changes. -::: - -::: note -::: title -Note -::: - -Some environment variables, such as the SSH-related ones, may contain -newlines. The easiest way to set these is using the `heroku` -command-line tool to pass the contents of an existing file to them: - -``` bash -heroku config:set SSH_KEY="`cat /path/to/key_rsa`" -``` -::: - -`STATIC_HOST` - -: Optional. Hostname to prepend to static resources paths. Useful for - serving static files from a CDN. Example: `//asdf.cloudfront.net`. - -`SUGGESTION_NOTIFICATIONS_DAY` - -: Optional. Integer representing a day of the week on which the - [send_suggestion_notifications]{.title-ref} management command will - run. 0 represents Monday, 6 represents Sunday. The default value is - 4 (Friday). - -`SYNC_TASK_TIMEOUT` - -: Optional. Multiple sync tasks for the same project cannot run - concurrently to prevent potential DB and VCS inconsistencies. We - store the information about the running task in cache and clear it - after the task completes. In case of an error, we might never clear - the cache, so we use SYNC_TASK_TIMEOUT as the longest possible - period after which the cache is cleared and the subsequent task can - run. The value should exceed the longest sync task of the instance. - The default value is 3600 seconds (1 hour). - -`SYSTRAN_TRANSLATE_API_KEY` - -: Optional. Set your [SYSTRAN Translate API key]{.title-ref} to use - machine translation by SYSTRAN. - -`TBX_DESCRIPTION` - -: Optional. Description to be used in the header of the Terminology - (.TBX) files. - -`TBX_TITLE` - -: Optional. Title to be used in the header of the Terminology (.TBX) - files. - -`THROTTLE_ENABLED` - -: Optional. Enables traffic throttling based on IP address (default: - `False`). - -`THROTTLE_MAX_COUNT` - -: Optional. Maximum number of requests allowed in - `THROTTLE_OBSERVATION_PERIOD` (default: `300`). - -`THROTTLE_OBSERVATION_PERIOD` - -: Optional. A period (in seconds) in which `THROTTLE_MAX_COUNT` - requests are allowed. (default: `60`). If longer than - `THROTTLE_BLOCK_DURATION`, `THROTTLE_BLOCK_DURATION` will be used. - -`THROTTLE_BLOCK_DURATION` - -: Optional. A duration (in seconds) for which IPs are blocked - (default: `600`). - -`TZ` - -: Timezone for the dynos that will run the app. Pontoon operates in - UTC, so set this to `UTC`. - -`VCS_SYNC_NAME` - -: Optional. Default committer\'s name used when committing - translations to version control system. - -`VCS_SYNC_EMAIL` - -: Optional. Default committer\'s email used when committing - translations to version control system. - -# Add-ons - -Pontoon is designed to run with the following add-ons enabled: - -- Database: Heroku Postgres -- Log Management: Papertrail -- Email: Sendgrid -- Scheduled Jobs: Heroku Scheduler -- Cache: Memcachier -- RabbitMQ: CloudAMQP - -It\'s possible to run with the free tiers of all of these add-ons, but -it is recommended that, at a minimum, you run the \"Standard 0\" tier of -Postgres. - -## SendGrid Add-on - -Pontoon uses [SendGrid](https://devcenter.heroku.com/articles/sendgrid), -which expects the following environment variable: - -`SENDGRID_PASSWORD` - -: Use SendGrid API key. - -## Cache Add-on - -Pontoon uses -[django-bmemcached](https://github.com/jaysonsantos/python-binary-memcached), -which expects the following environment variables from the cache add-on: - -`MEMCACHE_SERVERS` - -: Semi-colon separated list of memcache server addresses. - -`MEMCACHE_USERNAME` - -: Username to use for authentication. - -`MEMCACHE_PASSWORD` - -: Password to use for authentication. - -::: note -::: title -Note -::: - -By default, the environment variables added by Memcachier are prefixed -with `MEMCACHIER` instead of `MEMCACHE`. You can \"attach\" the -configuration variables with the correct prefix using the -`addons:attach` command: - -``` bash -heroku addons:attach resource_name --as MEMCACHE -``` - -Replace `resource_name` with the name of the resource provided by the -cache addon you wish to use, such as `memcachier:100`. Use the -`heroku addons` command to see a list of resource names that are -available. -::: - -## RabbitMQ Add-on - -Similar to the cache add-ons, Pontoon expects environment variables from -the RabbitMQ add-on: - -`RABBITMQ_URL` - -: URL for connecting to the RabbitMQ server. This should be in the - format for Celery\'s - [BROKER_URL](https://docs.celeryq.dev/en/stable/userguide/configuration.html#broker-url) - setting. - -::: note -::: title -Note -::: - -Again, you must attach the resource for RabbitMQ as `RABBITMQ`. See the -note in the Cache Add-ons section for details. -::: - -# Scheduled Jobs - -Pontoon requires several scheduled jobs to run regularly. - -## Sync Projects - -While internal Pontoon DB can be used for storing localizable strings, -Pontoon specializes in using version control systems for that purpose. -If you choose this option as well, you\'ll need to run the following -scheduled job: - -``` bash -./manage.py sync_projects -``` - -It\'s recommended to run this job at least once an hour. It commits any -string changes in the database to the remote VCS servers associated with -each project, and pulls down the latest changes to keep the database in -sync. - -The command supports the following options: - -- `--force` \-- Consider all version control repository files to have - changed. -- `--no-pull` \-- Do not pull new changes for version control - repositories. -- `--no-commit` \-- Do not commit and push any new changes to version - control. - -## Send Deadline Notifications - -Pontoon allows you to set deadlines for projects. This job sends -deadline reminders to contributors of projects when they are due in 7 -days. If 2 days before the deadline project still isn\'t complete for -the contributor\'s locale, notifications are sent again. The command is -designed to run daily. - -``` bash -./manage.py send_deadline_notifications -``` - -## Send Suggestion Notifications - -This job sends notifications about newly created unreviewed suggestions -that were submitted, unapproved or unrejected in the last 7 days. -Recipients of notifications are users with permission to review them, as -well as authors of any previous translations or comments of the same -string. The command is designed to run on a weekly basis. - -``` bash -./manage.py send_suggestion_notifications -``` - -## Send Review Notifications - -This job sends notifications about newly reviewed (approved or rejected) -suggestions to the authors of those suggestions. The command is designed -to run on a daily basis. - -``` bash -./manage.py send_review_notifications -``` - -## Send Notification Emails - -This job sends notifications in daily and weekly email digests. Daily -notifications are sent every time the command runs, while weekly -notifications are sent only on the configured day (e.g., Friday). - -``` bash -./manage.py send_notification_emails -``` - -## Send Monthly Activity Emails - -This job sends a summary of monthly activity to users via email. It is -designed to run on a specific day of the month but can be forced to run -at any time using the \--force argument. - -``` bash -./manage.py send_monthly_activity_emails -``` - -## Send Onboarding Emails - -Pontoon sends onboarding emails to new users. The first one is sent upon -registration, while this job sends the 2nd and 3rd email. You can -configure the number of days to wait before sending the 2nd and 3rd -emails. The command is designed to run daily. - -``` bash -./manage.py send_onboarding_emails -``` - -## Send Inactive Account Emails - -This command sends reminder emails to inactive users. Users in different -roles get different emails based on different activity criteria, which -can be configured in settings. The command is designed to run daily. - -``` bash -./manage.py send_inactive_account_emails -``` - -## Collect Insights - -The Insights tab in the dashboards presents data that cannot be -retrieved from the existing data models efficiently upon each request. -This job gathers all the required data and stores it in a dedicated -denormalized data model. The job is designed to run in the beginning of -the day, every day. - -``` bash -./manage.py collect_insights -``` - -## Warm up cache - -We cache data for some of the views (e.g. Contributors) for a day. Some -of them don\'t get a lot of visits, not even one per day, meaning that -the visitors of these pages often hit the cold cache. We use this job to -refresh data in the cache every day, because it changes often. The -command is designed to run daily. - -``` bash -./manage.py warmup_cache -``` - -## Clearing the session store - -When a user logs in, Django adds a row to the `django_session` database -table. If the user logs out manually, Django deletes the row. But if the -user does not log out, the row never gets deleted. - -Django does not provide automatic purging of expired sessions. -Therefore, it's your job to purge expired sessions on a regular basis. -Django provides a clean-up management command for this purpose: -`clearsessions`. It's recommended to run this command as a daily cron -job. - -``` bash -./manage.py clearsessions -``` - -## Sync Log Retention - -You may also optionally run the `clear_old_sync_logs` management command -on a schedule to remove sync logs from the database that are over 90 -days old: - -``` bash -./manage.py clear_old_sync_logs -``` - -## Provisioning Workers - -Pontoon executes scheduled jobs using -[Celery](http://www.celeryproject.org/). These jobs are handled by the -`worker` process type. You\'ll need to manually provision workers based -on how many projects you plan to support and how complex they are. At a -minimum, you\'ll want to provision at least one `worker` dyno: - -``` bash -heroku ps:scale worker=1 -``` - -# Database Migrations - -After deploying Pontoon for the first time, you must run the database -migrations. This can be done via the toolbelt: - -``` bash -heroku run ./manage.py migrate -``` - -# Creating an Admin User - -After deploying the site, you can create a superuser account using the -`createsuperuser` management command: - -``` bash -heroku run ./manage.py createsuperuser --user=admin --email=your@email.com -``` - -You\'ll then be prompted to set a password for your new user. - -If you\'ve already logged into the site with the email that you want to -use, you\'ll have to use the Django shell to mark your user account as -an admin: - -``` bash -heroku run ./manage.py shell -# Connection and Python info... ->>> from django.contrib.auth.models import User ->>> user = User.objects.get(email='your@email.com') ->>> user.is_staff = True ->>> user.is_superuser = True ->>> user.save() ->>> exit() -``` - -And with that, you\'re ready to start -`../user/localizing-your-projects`{.interpreted-text role="doc"}! diff --git a/docz/docs/dev/feature-development-process.md b/docz/docs/dev/feature-development-process.md deleted file mode 100644 index 25a9c22784..0000000000 --- a/docz/docs/dev/feature-development-process.md +++ /dev/null @@ -1,112 +0,0 @@ -# Feature Development Process - -Landing a new feature or significant change in Pontoon follows a -structured yet flexible process. The goal is to ensure high-quality, -well-considered contributions that align with project priorities and -community needs. - -::: {.contents depth="1" local=""} -Table of Contents -::: - -## Propose the Idea (Filing an Issue) - -Anyone can suggest improvements: new features, enhancements to existing -ones, or feature removals. - -- For trivial changes (typos, minor bugfixes), a pull request (PR) - alone may suffice---no dedicated issue required. -- For anything non-trivial, create a GitHub issue in the - mozilla/pontoon repository. - - Clearly describe the problem/opportunity. - - Explain the motivation, expected impact, and user value. - - Include relevant context (screenshots, use cases, alternatives - considered). - -## Triage - -Core maintainers review new issues and perform triage on a weekly basis -to assign: - -- Type: Bug, Feature, Task. -- Priority label: P1 (must be fixed immediately) to P5 (valid bug, but - you might need to fix it). -- Labels such as "needs specification" or "needs documentation" if - required. -- Labels for rough time estimate: hours, days, weeks, months, - quarters. - -The issue is added to the Pontoon Roadmap GitHub project: - -- Initially placed in "Needs triage". -- Moved to "Ready" once actionable. -- Kept in "Not ready yet" if more discussion or a spec is needed. -- High-priority items ready for near-term work move to the top of the - "Ready" column. -- Larger initiatives (estimated to take months or quarters) are always - kept in the \"Not ready\" column before they are split into smaller - issues. - -## Specification (Recommended for Larger Features) - -For medium-to-large features (those affecting UX flows, data models, -multiple areas, or needing community consensus): - -- Draft a specification document in Markdown format and submit it as a - PR to the [specs/]{.title-ref} folder. -- Follow the structure seen in existing specs (problem statement, - goals, user stories, proposed solution, impacted areas, risks, - alternatives, migration plan if applicable). -- Get feedback and approval from core team members. - -Once approved, remove any "needs specification" label and move the issue -to "Ready" on the Roadmap. - -## Implementation (Writing Code) - -- When ready to begin, assign yourself or get assigned to the issue. -- The issue will then move to "In Progress" on the Roadmap. -- Work in a feature branch. -- Deliver: - - Clean, complete code. - - Unit and integration tests with good coverage. - - Any necessary database migrations or data changes. - -## Code Review - -- Open a pull request targeting the "main" branch. -- Make sure CI tests pass. -- Review is requested from core Pontoon team members. -- Address feedback on code quality, security, performance, test - coverage, and best practices. -- Once approved, the PR is merged. -- The associated issue is automatically closed and moved to "Done" on - the Roadmap. - -## Testing - -- The contributor is primarily responsible for thorough testing. -- Verify the feature behaves as intended. -- Check for regressions. -- For larger features, perform extensive testing in the development - environment during/after review. -- Core team may run additional testing. - -## Release - -- Features are first deployed to the [development - environments](https://pontoon.allizom.org/) for final validation. -- Once confirmed stable, they go live on production. -- Deployments are handled by core maintainers and occur as changes are - ready (typically immediately after, no strict cadence). - -## Documentation & Discoverability (as Needed) - -- If labeled "needs documentation" or if the change affects users - noticeably: - - Update or add content in the Pontoon documentation for - localizers. -- For major or high-impact features: - - Core team may add in-app announcements. - - The contributor might write a blog post on the [Mozilla L10n - blog](https://blog.mozilla.org/l10n/). diff --git a/docz/docs/dev/first-contribution.md b/docz/docs/dev/first-contribution.md deleted file mode 100644 index d8b3639e64..0000000000 --- a/docz/docs/dev/first-contribution.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: The Guide to your First Contribution to Pontoon ---- - -Welcome to Pontoon! - -This document is going to guide you as you discover Pontoon and make -valuable contributions. It will walk you step by step until you are in a -position to write code that you can reliably run, test, and send for -review. - -# 1. Make sure it\'s a good match - -*Before contributing to an open source project, it is important to make -sure that the project uses technologies that you know and want to learn -more about.* - -Pontoon is a web application, with both back-end and front-end code. The -two languages we use are **Python** (back-end) and **JavaScript** -(front-end). On the back-end, we use the **Django** framework. On the -front-end, we use the **React** framework. To be able to contribute, you -will want to have knowledge of either Python and Django or JavaScript -and React. Having experience with both pairs is of course even better! - -We use **git** to version our code, and we use **GitHub** to handle pull -requests and code reviews. Basic knowledge of git is required to be able -to send your contributions our way. - - ------------------------------------------------------ - Skill Expected Level Notes - -------------- ------------------- ------------------- - git Basic knowledge - - Python Some experience Python 3 - - Django Basic knowledge - - JavaScript Some experience ECMAScript 2018 - - React Basic knowledge - ------------------------------------------------------ - -# 2. Install Pontoon - -*In order to be able to contribute code to an open source project, you -first need to be able to run that project on your computer.* - -The recommended method of installing Pontoon is using `docker` and our -scripts. It is straightforward if your computer is running with Linux or -macOS, and a tad more difficult for Windows. In all cases, follow the -instructions in our `setup`{.interpreted-text role="doc"} page. - -# 3. Populate your database - -*After installing a tool, it is likely that its database is empty. You -will need to create some data in order to have things show up in the -interface.* - -Once Pontoon is installed and you have it running, you will want to -create some data so that you can play with it, and test it in action. -You can create any kind of data you want, of course, but to make it -easier we have a special git repository that we made for testing -Pontoon. Here are the steps to add that project to your Pontoon -instance: - -1. Log in to your local instance with the superuser account you created - during the previous step. -2. Click the avatar in the top-right corner, and in the menu click - \"Admin\". -3. You will see the Admin panel, with a table of projects that will - likely be empty. Click the \"Add New Project\" button. -4. Fill the project creation form as follows: - 1. Name: Pontoon Test - 2. Slug (auto-filled): pontoon-test - 3. Locales: select Slovenian (sl), then add any locales you want - 4. Repositories - URL: - -5. Leave the rest as it is, then scroll to the bottom of the page, and - click the \"Save Project\" button. -6. Once the project is saved, scroll to the bottom of the page again, - and click the \"Sync\" button. This will pull the data from the - repository, and create entries for each of the locales you have - enabled. -7. And that\'s it! You should now have a project enabled for some - locale. - -# 4. Verify your setup - -*Setting up a project means more than installing it: it also means -making sure that the tool runs and that tests pass.* - -Once you have successfully installed and populated Pontoon on your -computer, you will need to make a few verifications. First and foremost, -make sure the site works correctly, and the data you created previously -shows up. Make sure you can log in, that you can send some translations, -that projects appear on the dashboards, etc. - -Second, you will want to run the tests and make sure they pass. We have -a few test suites for Pontoon, some for the front-end, others for the -back-end, as well as a few code-quality tests. To run all of the tests -(same as what will happen when you open a pull request in GitHub), use -the command `make test`. - -When you have successfully verified that your setup works correctly, you -can safely move to the next part. - -# 5. Choose an issue to work on - -*You are now ready to make a contribution! Open source projects usually -have a list of mentored issues that are appropriate to work on first, -and on which mentors will be available to help you.* - -Work that needs to be done on Pontoon is tracked in -[GitHub](https://github.com/mozilla/pontoon/issues), where we maintain a -list of what we deem [good first -issues](https://github.com/mozilla/pontoon/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). - -Look through that list for unassigned issues, choose one that is -appealing to you and seems appropriate for your skill set, then comment -on that issue asking to be assigned to it. Feel free to start working on -it right away --- even if you end up not being assigned for some reason, -it will still be a good experience for you. - -# 6. Read the contributing rules - -*Most projects have strict contributing rules, and your contributions -risk not being accepted if you don\'t respect them.* - -To make developer\'s lives easier, we enforce a few contribution rules -around Pontoon. They range from how to style your code to how to write -commit messages. All these rules are written in our -`contributing`{.interpreted-text role="doc"} page. Please read it before -opening a pull request! - -There is more documentation around Pontoon, and it is often worth -reading it, if only to understand better how the tool works and how and -where to make your contributions. Here are a few links to important -documentation resources: - -- If you want to work on the front-end, it is important that you read - the [Front-End - Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). -- Most of the documentation around installing and developing can be - found in [Pontoon\'s - Documentation](https://mozilla-pontoon.readthedocs.io/en/latest/). -- For documentation about using Pontoon to localize, see [How to use - Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/). -- For documentation about exposing a project on Pontoon, see [How to - localize your - projects](https://mozilla-pontoon.readthedocs.io/en/latest/user/localizing-your-projects.html). -- For documentation about managing communities in Pontoon, see - [Working with - Pontoon](https://mozilla-l10n.github.io/documentation/tools/pontoon/). - -# 7. Communicate with us - -*Open source projects are usually built around a community of people. -Communicating with that community is an important part of contributing -to such projects.* - -There are two main places where we communicate about Pontoon\'s -development. The first one is -[chat.mozilla.org](https://chat.mozilla.org/), used for real-time chat, -quick questions, side-track conversations, etc. Find us in the [#pontoon -channel](https://chat.mozilla.org/#/room/#pontoon:mozilla.org). - -The second is [GitHub -Discussions](https://github.com/mozilla/pontoon/discussions), a forum -platform that we use for more long-term conversations. - -These are both places that we strongly encourage you to join, and they -are where you should introduce yourself, ask questions, show your work, -etc. - -Pontoon\'s core developer team is currently composed of Matjaž and -Eemeli. We also regularly receive invaluable help from community -members. - - ------------------------------------------------------------------------------------------------------------------------------------------------------------ - Name ROLE chat.mozilla.org github - --------------------------------------------------------------------- -------- --------------- ------------------ ------------------------------------------ - ![image0](https://avatars2.githubusercontent.com/u/626716?s=32&v=4) Matjaž Pontoon Core mathjazz [mathjazz](https://github.com/mathjazz/) - Developer - - ![image1](https://avatars3.githubusercontent.com/u/617000?s=32&v=4) Eemeli Pontoon Core eemeli [eemeli](https://github.com/eemeli/) - Developer - ------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/docz/docs/dev/index.md b/docz/docs/dev/index.md deleted file mode 100644 index f8430fd27b..0000000000 --- a/docz/docs/dev/index.md +++ /dev/null @@ -1,52 +0,0 @@ -# Developer Guide - -[Pontoon](https://github.com/mozilla/pontoon) is a translation -management system used and developed by the Mozilla localization -community. It can handle any project that uses one of the supported file -formats: - -- .dtd -- .ftl (Fluent) -- .ini -- .json (WebExtensions) -- .json (key-value) -- .po (Gettext) -- .properties -- .xliff -- .xml (Android) - -Pontoon pulls strings it needs to translate from an external source and -writes them back periodically. Typically these external sources are -version control repositories that store the strings for an application. -Supported external sources are **Git** and **Mercurial** repositories. - -## Contributing - -If you are interested in contributing to Pontoon\'s code, start with -`dev/first-contribution`{.interpreted-text role="doc"}. - -## Deploying - -If you want to deploy your own instance of Pontoon, read the -`admin/deployment`{.interpreted-text role="doc"} section. - -Once you have a running instance, you will likely want to learn about -`user/localizing-your-projects`{.interpreted-text role="doc"}, and then -dive into [management -tasks](https://mozilla-l10n.github.io/documentation/tools/pontoon/). - -## Localizing - -If you\'re looking for help on using Pontoon for localizing projects, -whether on Mozilla\'s instance or any other, you can read our [How to -use -Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) -documentation. - -## Contents - -::: {.toctree maxdepth="2"} -dev/first-contribution dev/setup dev/contributing -dev/feature-development-process admin/deployment admin/maintenance -user/localizing-your-projects dev/setup-virtualenv -::: diff --git a/docz/docs/dev/localizing-your-projects.md b/docz/docs/dev/localizing-your-projects.md deleted file mode 100644 index bfc59e2835..0000000000 --- a/docz/docs/dev/localizing-your-projects.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Localizing your projects ---- - -The following describes how to make your projects localizable with your -Pontoon instance. - -Pontoon specializes in using version control systems as the source and -store of localizable strings. While internal Pontoon DB can be used for -that purpose as well, steps below assume you store strings in a [GitHub -repository](https://help.github.com/en/articles/create-a-repo). - -# Prerequisites - -Before you can set up a new project in Pontoon: - -1. Ensure your project works with one of the - `supported l10n frameworks <../index>`{.interpreted-text - role="doc"}. - -2. Extract localizable strings into resource files. - -3. Push resource files to your GitHub repository. - -4. Make sure your Pontoon instance has write access to your repository. - - ::: note - ::: title - Note - ::: - - The recommended way for that is to create a dedicated GitHub account - for your Pontoon instance, [add it as a - collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) - to your repository, and set `SSH_KEY` and `SSH_CONFIG` - `as documented <../admin/deployment>`{.interpreted-text role="doc"}. - ::: - -# Folder structure - -To let Pontoon discover your localizable files, you\'ll either need to -specify paths in the [project configuration -file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) -or strictly follow the file and folder structure as expected by Pontoon: - -1. Locale folders (including source locale) must be located at the same - nesting level of the directory tree. You may want to put all locale - folders under a `locales` folder. -2. Source locale needs to be called `templates`, `en-US`, `en-us` or - `en`. If multiple folders with such name exist in the repository and - contain files in a supported file format, the first one will be - used. -3. Locale folder names must always match locale identifiers used by - Pontoon. If your application requires different identifiers, you can - try creating symbolic links to locale folders. -4. Locale code must not be part of the file name. - -Correct pattern: - - locales/{locale_code}/path/to/file.extension - -Incorrect pattern: - - locales/{locale_code}/path/to/file.{locale_code}.extension - -For Gettext files, you will need to ensure that `.po` files are included -in the repository for each target locale for which they are to be -translated (these files may be initially empty). For all other supported -formats, Pontoon will automatically add files for each locale when it is -translated. - -# Adding a new project to Pontoon - -When accessing your deployed app, your email address is your login in -the Sign In page and your password is the one picked during setup. After -you log in, access Pontoon Admin (`/admin/`), click **ADD NEW PROJECT** -and fill out the following required fields: - -1. **Name**: name of the project to be displayed throughout Pontoon - app. The following project names are reserved: `Terminology`, - `Tutorial`, `Pontoon Intro`. -2. **Slug**: used in URLs, will be generated automatically based on the - Name. -3. **Locales**: select at least one Localizable locale by clicking on - it. -4. **Repository URL**: enter your repository\'s SSH URL of the form - `git@github.com:user/repo.git`. -5. **Download prefix or path to TOML file**: a URL prefix for - downloading localized files. -6. Click **SAVE PROJECT** at the bottom of the page. -7. After the page reloads, click **SYNC** and wait for Pontoon to - import strings. You can monitor the progress in the Sync log - (`/sync/log/`). -8. When the synchronization is finished, you should check the imported - resources and the entities. If everything went okay, you can proceed - to the next step. -9. Go to the project\'s admin page and change the visibility option to - make the project public. It\'s required because all new projects in - Pontoon are private by default and aren\'t visible to localizers and - locale managers. - -For complete documentation of the Admin form, please refer to Mozilla\'s -[new project -documentation](https://mozilla-l10n.github.io/documentation/tools/pontoon/adding_new_project.html). - -At this point you are ready to [start localizing your -project](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) -at `/projects/SLUG/`! diff --git a/docz/docs/dev/maintenance.md b/docz/docs/dev/maintenance.md deleted file mode 100644 index 50f4d29480..0000000000 --- a/docz/docs/dev/maintenance.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Maintenance ---- - -The following describes tricks and tools useful for debugging and -maintaining an instance of Pontoon deployed to Heroku. - -# Monitoring Celery - -[Flower](https://github.com/mher/flower) is a web interface for -monitoring a [Celery](http://www.celeryproject.org/) task queue. It\'s -useful for seeing how the worker dynos are handling sync jobs. - -After installation, you can run a local instance of Flower and connect -it to a Heroku-hosted instance of RabbitMQ: - -``` bash -# Replace my-app-name with your Heroku app's name. -flower --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` -``` - -# Releasing the queue - -If queue gets stuck, tasks don\'t make it to the worker until manual -intervention. You can fix this by running the following commands from -your local development environment. - -First, you need to purge the queue: - -``` bash -# Replace my-app-name with your Heroku app's name. -celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` amqp -# Replace my-queue-name with your queue's name (e.g. celery). -1> queue.purge my-queue-name -``` - -Finally, you need to simply access the worker: - -``` bash -# Replace my-app-name with your Heroku app's name. -celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` worker -``` - -# Mitigating DDoS attacks - -In a distributed denial-of-service attack -([DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack), -the incoming traffic flooding the victim originates from many different -sources. This stops everyone else from accessing the website as there is -too much traffic flowing to it. - -One way to mitigate DDoS attacks is to enable traffic throttling. Set -the [THROTTLE_ENABLED]{.title-ref} environment variable to True and -configure other THROTTLE\* variables to limit the number of requests per -period from a single IP address. - -A more involved but also more controlled approach is to identify the IP -addresses of the attackers (see the handy [IP detection -script](https://github.com/mozilla-l10n/pontoon-scripts/blob/main/dev/check_ips_heroku_log.py) -to help with that) and block them. Find the attacking IP addresses in -the Log Management Add-On (Papertrail) and add them to the BLOCKED_IPs -config variable in Heroku Settings. - -# Vacuuming a Database - -To reduce the size of Postgres DB tables and improve performance, it is -recommended to [vacuum the -database](https://devcenter.heroku.com/articles/managing-vacuum-on-heroku-postgres) -regularly. Heroku already does that partially by running the -[VACUUM]{.title-ref} command automatically, but that only marks the -space as available for reuse. - -Running [VACUUM FULL]{.title-ref} offers a more exhaustive cleanup and -reduces bloat. - -> ::: warning -> ::: title -> Warning -> ::: -> -> [VACUUM FULL]{.title-ref} is a heavyweight operation, which prevents -> any other statements from running concurrently, even simple SELECT -> queries. For most tables it only takes a few seconds to complete, but -> on the bigger tables it can take up to a few minutes. During that -> time, the application will be unresponsive. -> ::: - -You can run [VACUUM FULL]{.title-ref} with the following command: - -``` bash -$ heroku pg:psql --app mozilla-pontoon -=> VACUUM FULL table_name; -``` - -To list the DB tables, ordered by size, run: - -``` bash -$ heroku pg:psql --app mozilla-pontoon -=> SELECT - table_name, - pg_size_pretty(pg_total_relation_size(table_name::text)) AS size - FROM - information_schema.tables - WHERE - table_schema = 'public' - ORDER BY - pg_total_relation_size(table_name::text) DESC; -``` diff --git a/docz/docs/dev/setup-virtualenv.md b/docz/docs/dev/setup-virtualenv.md deleted file mode 100644 index af2f83e54e..0000000000 --- a/docz/docs/dev/setup-virtualenv.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Developer Setup with virtualenv ---- - -The following document describes how to set up an instance of the site -on your computer for development. - -> ::: note -> ::: title -> Note -> ::: -> -> Installation with virtualenv is not recommended. If possible, please -> use Developer Setup with Docker, which is simpler and makes it easier -> to reproduce potential issues. -> ::: - -# Prerequisites - -This guide assumes you have already installed and set up the following: - -1. [Git](https://git-scm.com) -2. [Python 3.11](https://www.python.org) -3. [uv](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer) -4. [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com) -5. [PostgreSQL 15](http://www.postgresql.org) - -These docs assume a Unix-like operating system, although the site -should, in theory, run on Windows as well. All the example commands -given below are intended to be run in a terminal. - -If you\'re on Ubuntu 24.04 LTS, you can install all the prerequisites -using the following commands: - -> ``` bash -> # These steps are required to install PostgreSQL 15 (default is 16) -> sudo apt install -y dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -> curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null -> echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list -> sudo apt update -> -> sudo apt install -y git python3-dev python-is-python3 virtualenv postgresql-client-15 postgresql-15 libxml2-dev libxslt1-dev libmemcached-dev libpq-dev nodejs npm -> # Set Python 3.11 as default -> update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 -> -> # Install uv -> curl -LsSf https://astral.sh/uv/install.sh | sh -> source $HOME/.cargo/env -> -> # Start PostgreSQL server -> /etc/init.d/postgresql start -> ``` - -# Installation - -1. Clone this [repository](https://github.com/mozilla/pontoon) or your - [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo): - - ``` bash - git clone https://github.com/mozilla/pontoon.git - cd pontoon - ``` - -2. Create a virtualenv for Pontoon with Python 3.11 and activate it: - - ``` bash - uv python install 3.11 - uv venv --python 3.11 - # Activate virtualenv - source .venv/bin/activate - ``` - - ::: note - ::: title - Note - ::: - - Whenever you want to work on Pontoon in a new terminal you\'ll have - to re-activate the virtualenv. - ::: - -3. Install the dependencies: - - ``` bash - uv pip install -r requirements/default.txt -r requirements/dev.txt -r requirements/test.txt - ``` - -4. Create your database, using the following set of commands. - - First connect to Postgres: - - ``` bash - sudo -u postgres psql - ``` - - Then run the following commands in the console: - - ``` bash - CREATE USER pontoon WITH PASSWORD 'asdf' SUPERUSER; - CREATE DATABASE pontoon; - GRANT ALL PRIVILEGES ON DATABASE pontoon to pontoon; - \q - ``` - -5. Create a `.env` file at the root of the repository to configure the - settings for your development instance. It should look something - like this: - - ``` ini - SECRET_KEY=insert_random_key - DJANGO_DEV=True - DJANGO_DEBUG=True - DATABASE_URL=postgres://pontoon:asdf@localhost/pontoon - SESSION_COOKIE_SECURE=False - SITE_URL=http://localhost:8000 - FXA_CLIENT_ID=2651b9211a44b7b2 - FXA_SECRET_KEY=a3cafccbafe39db54f2723f8a6f804c337e362950f197b5b33050d784129d570 - FXA_OAUTH_ENDPOINT=https://oauth-stable.dev.lcip.org/v1 - FXA_PROFILE_ENDPOINT=https://stable.dev.lcip.org/profile/v1 - ``` - - Make sure to make the following modifications to the template above: - - - `SECRET_KEY` should be set to some random key you come up with, - as it is used to secure the authentication data for your local - instance. - - `DATABASE_URL` should contain the connection data for connecting - to your Postgres database. It takes the form - `postgres://username:password@server_addr/database_name`. - - `SITE_URL` should be set to the URL you will use to connect to - your local development site. Some people prefer to use - `http://127.0.0.1:8000` instead of `localhost`. However, should - you decide to change the `SITE_URL`, you also need to - [request](https://mozilla.github.io/ecosystem-platform/) the new - `FXA_CLIENT_ID` and `FXA_SECRET_KEY`. - -6. Initialize your database by running the migrations: - - ``` bash - python manage.py migrate - ``` - -7. Create a new superuser account: - - ``` bash - python manage.py createsuperuser - ``` - - Make sure that the email address you use for the superuser account - matches the email that you will log in with via Firefox Accounts. - -8. After you\'ve provided credentials for your django-allauth provider, - you have to update them in database, because it\'s required by - django-allauth. You will have to call this command after every - change in your django-allauth settings (e.g. client key): - - ``` bash - python manage.py update_auth_providers - ``` - -9. Install the required Node libraries using `npm`: - - ``` bash - npm install - ``` - -10. Build the client: - -> ``` bash -> npm run build -> ``` - -Once you\'ve finished these steps, you should be able to start the site -by running: - -``` bash -python manage.py runserver -``` - -The site should be available at . - -# Extra settings - -The following extra settings can be added to your `.env` file. - -`GOOGLE_TRANSLATE_API_KEY` - -: Set your [Google Cloud Translation - API](https://cloud.google.com/translate/) key to use generic machine - translation engine by Google. - -`GOOGLE_AUTOML_PROJECT_ID` - -: Set your [Google Cloud AutoML - Translation](https://cloud.google.com/translate/) model ID to use - custom machine translation engine by Google. - -`MICROSOFT_TRANSLATOR_API_KEY` - -: Set your [Microsoft Translator - API](http://msdn.microsoft.com/en-us/library/hh454950) key to use - machine translation by Microsoft. - -`GOOGLE_ANALYTICS_KEY` - -: Set your [Google Analytics key](https://www.google.com/analytics/) - to use Google Analytics. - -`MANUAL_SYNC` - -: Enable Sync button in project Admin. diff --git a/docz/docs/dev/setup.md b/docz/docs/dev/setup.md deleted file mode 100644 index 6a119d78f2..0000000000 --- a/docz/docs/dev/setup.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Developer Setup ---- - -The following describes how to set up an instance of the site on your -computer for development with Docker. - -> ::: warning -> ::: title -> Warning -> ::: -> -> These installation steps are made for development only. It is not -> recommended to run Pontoon via Docker in production. -> ::: - -# Prerequisites - -1. Install [Docker](https://docs.docker.com/install/). -2. Install [latest versions of Node.js and - npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). -3. Install [make](https://www.gnu.org/software/make/) using either your - system\'s package manager (Linux) or Xcode command line developer - tools (OSX). On Windows, you can use - [MozillaBuild](https://wiki.mozilla.org/MozillaBuild). - -# Quickstart - -1. Clone the [Pontoon repository](https://github.com/mozilla/pontoon): - - $ git clone https://github.com/mozilla/pontoon.git - - ::: note - ::: title - Note - ::: - - To contribute changes to the project, you will need to - [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) - the repository under your own GitHub account. - ::: - -2. From the root of the repository, run: - - $ make build - - That will install Pontoon\'s JS dependencies, build the frontend - packages, and build the server container. - - ::: note - ::: title - Note - ::: - - If you want to share your development instance in your local - network, set SITE_URL to bind the server to any address you like, - e.g. `make build SITE_URL="http://192.168.1.14:8000"`. - ::: - -3. Run the webapp: - - $ make run - - ::: note - ::: title - Note - ::: - - The first time you run this, the PostgreSQL container needs to do - some work before it becomes available to the server container. - Hence, the server might not be able to perform things like - migrations. You can simply wait for the postgresql container to - report that it\'s ready, then abort the process, then restart it. - That should let the server do all its setup as expected. - - Alternatively, you can run `docker-compose up postgresql` and wait - until it reports that the database is ready, then stop that and run - `make run`. - ::: - -4. Finally, you need to run some setup steps, while the server is - running: - - $ make setup - - This will ask you to create a superuser, and then will update your - Firefox account settings. - -The app should now be available at or the custom -SITE_URL. - -And with that, you\'re ready to start `contributing`{.interpreted-text -role="doc"}! - -# Installing Docker on Windows Pro/Enterprise/Education - -Install [Docker Desktop for -Windows](https://docs.docker.com/desktop/install/windows-install/). - -## Install tools (git, make, cygwin) - -The easiest way is to use a package manager like -[Chocolatey](https://chocolatey.org/install). Follow the installation -instructions for Windows Powershell (Admin), then run -`choco install make git cygwin` to install all packages. - -Follow the prompt requests allowing script execution. At the end, verify -that packages are available with `make --version` and `git --version`, -it should return a version for each command. - -At this point you need to disable the config `core.autocrlf` before -cloning the Pontoon repository, otherwise all files will use Windows -line-endings (CRLF), and docker images will fail to build. To do so, -open a Powershell as Admin (right click on the Start Menu, select -*Windows Powershell (Admin)*), and run: - - git config --system --unset core.autocrlf - git config --global core.autocrlf false - -You can use `git config -l` to verify that the value for `core.autocrlf` -is correctly set. - -At this point, you can open the *Cygwin64 Terminal* and proceed with the -installation (the content of `C:` will be available in `/cygdrive/c`). -Once the Docker image is running, Pontoon\'s instance will be available -at . diff --git a/docz/docs/index.md b/docz/docs/index.md deleted file mode 100644 index fe3c9f3d47..0000000000 --- a/docz/docs/index.md +++ /dev/null @@ -1,61 +0,0 @@ -# Pontoon Documentation - -**Pontoon** is Mozilla's translation management system (TMS) — a web-based platform that enables the Mozilla localization community to translate, review, and manage strings for Mozilla's products and websites. - -Pontoon specializes in community-driven open source localization, pulling strings directly from version control repositories (Git and Mercurial) and writing translations back automatically. It supports a wide range of localization file formats including Fluent, Gettext PO, XLIFF, .properties, DTD, and more. - ---- - -## Who is this documentation for? - -
- -- :material-translate: **Localizers** - - --- - - You're a contributor who translates and reviews strings in Pontoon. - - [:octicons-arrow-right-24: Localizer Guide](localizer/index.md) - -- :material-cog: **Admins & Project Managers** - - --- - - You manage Pontoon's projects, locales, users, and configuration. - - [:octicons-arrow-right-24: Admin Guide](admin/index.md) - -- :material-code-braces: **Developers** - - --- - - You contribute to Pontoon's codebase or deploy your own instance. - - [:octicons-arrow-right-24: Developer Guide](dev/index.md) - -
- ---- - -## Quick links - -| I want to… | Go to | -|---|---| -| Start translating a project | [How to Translate](localizer/translate.md) | -| Learn the translation workspace UI | [Translation Workspace](localizer/translation-workspace.md) | -| Understand user roles | [User Accounts & Settings](localizer/users.md) | -| Add a new project | [Adding a New Project](admin/adding-new-project.md) | -| Add a new locale | [Adding a New Locale](admin/adding-new-locale.md) | -| Set up Pontoon locally for development | [Developer Setup](dev/setup.md) | -| Deploy Pontoon to production | [Deployment](dev/deployment.md) | -| Make my first code contribution | [Your First Contribution](dev/first-contribution.md) | - ---- - -## About Pontoon - -Pontoon is developed and maintained by Mozilla and is available as open source software at [github.com/mozilla/pontoon](https://github.com/mozilla/pontoon). The Mozilla instance is hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org). - -!!! note "Scope of this documentation" - While most of this documentation applies to any Pontoon deployment, the Mozilla instance is used as the primary example. Some sections — particularly in the Admin Guide — are specific to Mozilla's deployment. diff --git a/docz/docs/localizer/glossary.md b/docz/docs/localizer/glossary.md deleted file mode 100644 index 43215350a6..0000000000 --- a/docz/docs/localizer/glossary.md +++ /dev/null @@ -1,60 +0,0 @@ -# Glossary - -Key terms used throughout Pontoon and this documentation. - -## Contributor -A user without translator permissions. Contributors can only submit **suggestions**, which must be reviewed and approved by a Translator or Team Manager before appearing in the product. - -## Concordance search -A search feature in the Machinery tab that searches across **all projects** in Pontoon using either the source or target language. Results show the source string, translation, and project name; clicking a result fills the translation into the editor. - -## Fuzzy -An internal state available only in Gettext (`.po`) files. A string may be marked fuzzy when: - -- The source string changed after it was already translated. -- A translator manually marked it for review. -- New strings were merged into the localized files using the option to match existing translations. - -Fuzzy strings are equivalent to "needs review" and are not used by the website or application. - -## Locale -The combination of a language and a region, represented in Pontoon by a locale code. For example, American English is `en-US`, where `en` is the language and `US` is the region. In some cases, the region is omitted. Each locale in Pontoon maps to a **Team**. - -## Pretranslation -An automated feature that uses **translation memory** (100% matches first) and **Google AutoML Translation** (a custom trained model) to automatically translate new strings. Pretranslated strings have the *Pretranslated* status and must be reviewed before they are considered final. For VCS projects, pretranslations are saved directly to localized files. - -## Resource -A localization file within a repository used to store source content and translations. Resources generally follow a key-value structure where the key (displayed as *Context* in Pontoon) is a unique identifier and the value is the text to translate. Supported formats include Fluent, Gettext PO, XLIFF, `.properties`, DTD, and others. - -## Suggestion -A translation submitted by a Contributor, or by a Translator/Manager who has enabled *Make suggestions*. A suggestion exists only in the Pontoon database — it is not committed to the VCS or added to the translation memory until approved. - -## Sync -The process by which Pontoon periodically (typically every 10 minutes) pulls source strings and translations from VCS repositories and writes approved translations back. Sync keeps the Pontoon database and the repository in sync. - -## TBX (TermBase eXchange) -A standard XML file format for exchanging **terminology** (glossary) data between translation tools. - -## Terminology / Glossary -A curated list of terms and their definitions. Pontoon highlights recognized terms in source strings and shows their definitions and existing translations into the target language. - -## TMX (Translation Memory eXchange) -A standard XML file format for exchanging **translation memory** data between translation tools. Pontoon's translation memory can be downloaded as a TMX file from any Team page. - -## Translation memory (TM) -A database of all approved translations for any string in Pontoon. It is used as a suggestion source in the Machinery tab and powers the pretranslation feature. Translation memory can be downloaded as a TMX file. - -## Translation Mode -The editing mode available to Translators and Team Managers in which a green **SAVE** button is displayed. Saving a translation approves it directly, commits it to VCS (where applicable), and rejects all pending suggestions. - -## Suggestion Mode -The editing mode (default for Contributors; optionally enabled by Translators/Managers) in which a blue **SUGGEST** button is displayed. Submissions are stored as unreviewed suggestions. - -## Translator -A user with permission to submit approved translations directly and to review suggestions. See [User Accounts & Settings](users.md#roles-and-permissions). - -## Team Manager -A user who has Translator permissions and can also manage permissions for other users within their locale. See [User Accounts & Settings](users.md#roles-and-permissions). - -## VCS (Version Control System) -The external system where source strings and translations are stored — typically a Git or Mercurial repository. Pontoon reads from and writes to VCS repositories as part of the Sync process. diff --git a/docz/docs/localizer/index.md b/docz/docs/localizer/index.md deleted file mode 100644 index 10c239c23b..0000000000 --- a/docz/docs/localizer/index.md +++ /dev/null @@ -1,53 +0,0 @@ -# Localizer Guide - -This guide covers everything you need to know to translate and review strings in Pontoon, from day-to-day translation work to managing your account and notifications. - -!!! note - The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](users.md). - -## Sections - -
- -- :material-pencil: **[How to Translate](translate.md)** - - Step-by-step guide to submitting translations and suggestions, reviewing other contributors' work, and an example team workflow. - -- :material-view-dashboard: **[Translation Workspace](translation-workspace.md)** - - A detailed tour of the translation editor: the sidebar, string filters, machinery tab, AI refinement, comments, and keyboard shortcuts. - -- :material-folder-multiple: **[Team & Project Pages](teams-projects.md)** - - How to navigate team dashboards, project pages, and localization pages; how to request new projects or locales. - -- :material-account-cog: **[User Accounts & Settings](users.md)** - - Account setup, roles and permissions, profile visibility settings, and personal preferences. - -- :material-bell: **[Notifications](notifications.md)** - - How Pontoon notifies you of new strings, reviews, mentions, and project updates. - -- :material-account: **[Profile Page](profile.md)** - - What's on your public profile and how to customize it. - -- :material-book-open-variant: **[Glossary](glossary.md)** - - Definitions of key terms used throughout Pontoon and this documentation. - -
- -## User roles - -Pontoon has four user roles, each with different capabilities: - -| Role | Can submit translations | Can review | Can manage users | -|---|---|---|---| -| **Contributor** | Suggestions only | ✗ | ✗ | -| **Translator** | ✓ (directly or via suggestion) | ✓ | ✗ | -| **Team Manager** | ✓ | ✓ | ✓ (within their locale) | -| **Administrator** | ✓ | ✓ | ✓ (all locales) | - -New users automatically start as Contributors and can be promoted by Team Managers or Administrators. diff --git a/docz/docs/localizer/notifications.md b/docz/docs/localizer/notifications.md deleted file mode 100644 index 70a0596372..0000000000 --- a/docz/docs/localizer/notifications.md +++ /dev/null @@ -1,26 +0,0 @@ -# Notifications - -Pontoon notifies you of relevant activity through in-app notifications and optional email digests. - -## Types of notifications - -- **New unreviewed suggestions** — sent when new suggestions are submitted, unapproved, or unrejected in the last 7 days. -- **Review decisions** — when one of your suggestions is approved or rejected. -- **Mentions** — when someone mentions you in a comment using REQUEST CONTEXT or REPORT ISSUE. -- **Deadline reminders** — sent 7 days and 2 days before a project deadline for your active locale. -- **Pinned comments** — when an Administrator pins a source string comment. -- **Messaging Center** — messages sent by Administrators (in-app or email; see [Messaging Center](../admin/messaging-center.md)). - -## Notification digests - -Pontoon sends a **weekly notification digest** summarizing recent activity. You can configure the day of the week for delivery in your account settings. - -!!! note - Notifications sent via the Messaging Center are **not** included in notification email digests. - -## Pontoon Notifications browser add-on - -The Pontoon Notifications add-on, created by Mozilla localizer Michal Stanke, brings Pontoon notifications directly into your browser toolbar. It also includes features for proofreading and bug reporting. - -- [Chrome add-on](https://chrome.google.com/webstore/detail/pontoon-add-on/gnbfbnpjncpghhjmmhklfhcglbopagbb) -- Firefox add-on available on addons.mozilla.org diff --git a/docz/docs/localizer/profile.md b/docz/docs/localizer/profile.md deleted file mode 100644 index 0a5165b34d..0000000000 --- a/docz/docs/localizer/profile.md +++ /dev/null @@ -1,21 +0,0 @@ -# Profile Page - -Your Pontoon profile page is your public (or semi-public) contributor page. It shows your contribution history and account information. - -## What's on your profile - -- **Display name and avatar** (from your Mozilla account / Firefox Accounts). -- **User banner** — a badge displayed next to your name across Pontoon, reflecting your role or contribution milestones. -- **Contribution statistics** — total translations submitted, approval rate, and self-approval rate. -- **External accounts** — links to other accounts (e.g., GitHub) if you've added them and made them visible. -- **Recent contribution activity** — a timeline of recent translation and review activity. - -## Privacy - -You control who can see your profile information. See [User Accounts & Settings](users.md#profile-visibility) for visibility options for each field. - -## Accessing your profile - -Click your avatar or username in the top-right corner of any Pontoon page, then select **Profile**. - -To view another contributor's profile, click their name or avatar in the Contributors tab of any Team or Project page. diff --git a/docz/docs/localizer/teams-projects.md b/docz/docs/localizer/teams-projects.md deleted file mode 100644 index e20cdae539..0000000000 --- a/docz/docs/localizer/teams-projects.md +++ /dev/null @@ -1,95 +0,0 @@ -# Team & Project Pages - -Pontoon organizes work around **Teams** (one per locale) and **Projects** (one per product or website). This page explains how to navigate these pages and what you can do from each. - -## Projects page - -The Projects page lists all projects available in Pontoon. Access it by clicking **Projects** in the page header or navigating to `/projects`. - -Each project entry shows: - -- **Priority** (1–5 stars), based on product importance, user base size, and update frequency. -- **Target date** (for projects with a deadline). -- **Repository** link. -- **External resources** (e.g., testing instructions, screenshots). - -A blue lightbulb icon in the rightmost column indicates the project has unreviewed translations. Click the lightbulb icon in the column header to sort by unreviewed count. - -## Project page - -Clicking a project opens its Project page. The header shows the project manager, overall completion status, and statistics across all enabled locales. - -Tabs available on the Project page: - -| Tab | Description | -|---|---| -| **Teams** | All locales enabled for this project. Clicking a locale opens the Localization page. | -| **Tags** | Logical groups of resources (visible only if tags are enabled). | -| **Contributors** | Active contributors and their statistics, filterable by time period. | -| **Insights** | Charts showing translation completion trends, human vs. machinery translations, active users, and time-to-review metrics. | -| **Info** | Project description and context. | - -### Requesting a new language for a project - -From the Project page, click **REQUEST NEW LANGUAGE**, select the locale, and click **REQUEST NEW LANGUAGE** again. An email is sent to Pontoon administrators; the Project Manager acts on the request. - -!!! note - Some projects have a closed list of supported locales and cannot be requested. - -## Team page - -Each locale has a Team page (e.g., `pontoon.mozilla.org/fr/`). The header shows the team's overall completion and statistics. - -Tabs available on the Team page: - -| Tab | Description | -|---|---| -| **Projects** | All projects enabled for this locale. | -| **Contributors** | Active contributors and their statistics, filterable by time period. | -| **Insights** | Trends for translation activity, active users, and review time. | -| **Bugs** | Open Bugzilla bugs for the locale (Mozilla deployment only). | -| **Info** | Team description; editable by Team Managers. | -| **Permissions** | User permissions panel (Team Managers and Admins only). | -| **TM** | Translation memory management (Translators and Team Managers). | - -### Team Insights - -The **Insights** tab on the Team page shows: - -- **Translation activity** — completion percentage trend, with human vs. machinery translation bars per month. -- **New source strings** — toggle to show/hide. -- **Active users** — ratio of active vs. total users per role (managers, reviewers, contributors), filterable by time period. -- **Time to review suggestions** — average age of reviewed suggestions per month, with a 12-month rolling average. - -### Requesting more projects for a locale - -From the Team page, click **REQUEST MORE PROJECTS**, select the projects, and click **REQUEST NEW PROJECT**. This requests that an existing Pontoon project be enabled for your locale — it cannot be used to request a brand new project. - -### Requesting pretranslation - -From the Team page, click **REQUEST PRETRANSLATION**, select the projects, and click **REQUEST PRETRANSLATION**. Administrators will evaluate the request. - -### Translation memory management - -Team Managers and Translators can manage the team's TM from the **TM** tab: - -- View all TM entries (source string + translation), searchable by source string or translation. -- Click a TM entry to open the corresponding string in the translation workspace. -- **Edit** a TM entry by clicking the Edit button in the Actions column, modifying the text, and clicking Save. -- **Upload** a TMX file using the upload control. Import progress is shown, and a success or error message appears when complete. - -## Localization page - -The Localization page shows project-specific information for a single locale. Access it by: - -- Selecting a locale from a Project page. -- Selecting a project from a Team page. - -Tabs on the Localization page: - -| Tab | Description | -|---|---| -| **Resources** | Files available in this project for the locale. | -| **Tags** | Tag groups (if enabled for the project). | -| **Contributors** | Contributors to this locale+project combination, filterable by time. | -| **Insights** | Localization-specific trends. | diff --git a/docz/docs/localizer/translate.md b/docz/docs/localizer/translate.md deleted file mode 100644 index 7899106f34..0000000000 --- a/docz/docs/localizer/translate.md +++ /dev/null @@ -1,99 +0,0 @@ -# How to Translate - -This page describes how to translate and review strings in Pontoon, and provides an example of a typical team workflow. - -## The editor - -When you select a string in the sidebar, the translation editor appears in the center of the page. If the string already has a translation, the editor is pre-populated with the existing text for you to modify. - -### Suggestion Mode vs Translation Mode - -Your editing mode depends on your [permissions](users.md#roles-and-permissions): - -**Suggestion Mode** — a blue **SUGGEST** button is shown. Used when: - -- You are a Contributor (default for new users). -- You are a Translator or Team Manager who has manually enabled *Make suggestions* in settings. - -Suggestions are stored only in the Pontoon database. They are not committed to the version control system (VCS) and do not appear in the translation memory until approved. - -**Translation Mode** — a green **SAVE** button is shown. Available to Translators and Team Managers. When you save a translation: - -- It is displayed below the editing space and in the sidebar. -- It is stored in the VCS (where applicable). -- All pending suggestions or pretranslations for that string are rejected. - -!!! tip - Even if you have permission to save translations directly, submitting suggestions for peer review is good practice and improves overall quality. - -To manually switch to Suggestion Mode, click the **gear icon** in the lower-left of the editor and select **Make suggestions**. - -## Submitting a translation - -1. Select a string from the sidebar. -2. Type your translation in the editor. -3. Click **SUGGEST** (Suggestion Mode) or **SAVE** (Translation Mode). - -## Quality checks - -Pontoon automatically checks every translation or suggestion you submit for potential issues. There are two severity levels: - -**Errors** — critical issues that would break the product (e.g., incorrect syntax, exceeding maximum string length). The submit button is hidden until the error is fixed. - -**Warnings** — potential issues that may or may not cause problems. You can bypass warnings and submit anyway, but review them carefully first. - -Failures are stored in the database and can be filtered from the search bar. - -## Reviewing suggestions - -If you have Translator permissions, you can review other contributors' suggestions: - -- **Approve** a suggestion by clicking the green checkmark. The suggestion becomes a saved translation. -- **Reject** a suggestion by clicking the red X. -- After rejecting, you can **delete** it entirely using the trashcan icon. -- Alternatively, enable *Make suggestions*, edit the translation as appropriate, and click **SUGGEST** to add a corrected version. - -For pretranslations, rejecting also removes the text from the VCS (where applicable). - -## Downloading and uploading translations - -Click the **profile icon** in the top-right corner of any page to access download and upload options. These are only visible when you are in the translation workspace. - -- **Anyone** can download terminology (`.tbx`), translation memory (`.tmx`), and translations. -- **Translators** can also upload translations. - -When downloading: - -- The currently selected resource is downloaded in its original format. -- If the project has multiple files, a ZIP of all files is downloaded. -- If a project has more than 10 files, only the currently translated file is downloaded. - -When uploading, translations that differ from Pontoon's current state are imported and attributed to you. - -## Requesting context or reporting issues - -If a source string is unclear, use the **REQUEST CONTEXT** or **REPORT ISSUE** feature to ask the Project Manager. This tags them in a comment on the string. - -## Workflow example - -The following describes a typical AB workflow (two-translator model), but can be adapted for a single-translator AA workflow or a multi-translator ABCn workflow. - -### Phase 1 — Submit suggestions (Contributor / Translator in Suggestion Mode) - -1. Log in to Pontoon. -2. Browse to the project. -3. Use filters to select **Missing** strings (missing translation, fuzzy, or containing errors). -4. Click the gear icon below the editor → enable **Make suggestions**. -5. For each string, type a translation and click **SUGGEST**. -6. If a string is unclear, use **REQUEST CONTEXT** or **REPORT ISSUE** to ask the Project Manager. -7. Use [Pontoon's translation tools](translation-workspace.md#machinery-tab) to ensure consistency and speed. - -### Phase 2 — Review suggestions (Translator / Team Manager) - -1. Log in to Pontoon. -2. Browse to the project. -3. Use filters to select **Unreviewed** strings. -4. For each suggestion: - - If the translation is correct → click the green checkmark to **approve**. - - If the translation needs changes → edit in the editor and click **SAVE**, or add a new suggestion. - - If the translation is unacceptable → reject and optionally delete it. diff --git a/docz/docs/localizer/translation-workspace.md b/docz/docs/localizer/translation-workspace.md deleted file mode 100644 index dd5e1965e5..0000000000 --- a/docz/docs/localizer/translation-workspace.md +++ /dev/null @@ -1,119 +0,0 @@ -# Translation Workspace - -The translation workspace is the main interface for translating strings in Pontoon. It is divided into three main areas: the **sidebar** (left), the **editor** (center), and the **tools panel** (right). - -## Sidebar - -The sidebar lists all strings in the currently selected resource, along with their status. - -### String statuses - -| Status | Description | -|---|---| -| **Translated** | Has an approved translation; saved to the localized file in VCS. | -| **Pretranslated** | Automatically translated but not yet reviewed; saved to VCS. | -| **Warnings** | Has a translation, but with non-critical quality check issues. | -| **Errors** | Has critical quality check issues. | -| **Missing** | No approved translation exists. | -| **Unreviewed** | Has suggested translations awaiting review; not in VCS. | - -### Search - -Use the search field to search within the currently selected project. Searches cover string text and string IDs, and they respect any active filters. - -- By default, Pontoon matches strings containing **any** of the search terms. -- For an **exact match**, wrap terms in double quotes: `"new tab"`. -- To search for strings containing literal double quotes, escape them: `\"`. - -**Additional search options** (click the magnifying glass icon): - -- **Match case** — exact capitalization matching. -- **Match whole word** — avoids partial matches. - -### Filters - -Click the filter icon to filter strings by status. Filters can be combined with search. - -### Context button - -When a string is selected, a small icon with four arrows appears near the checkbox. Clicking it shows strings that surround the selected string in the resource, providing translation context. - -## Editor - -See [How to Translate](translate.md) for full details on the editor, suggestion mode, and translation mode. - -### Read-only mode - -Some locales may have read-only access to a project. Their translations are still visible in the LOCALES tab for other teams to reference, but it is not possible to submit or modify translations directly. - -## Translation tools (right panel) - -### Machinery tab - -The Machinery tab shows possible translations from multiple sources: - -- Pontoon's internal **translation memory** (all approved translations across all projects). -- **Google Translate**. -- **Microsoft Translator / Bing Translator** (availability varies by deployment). -- **Concordance search** — search across all projects in Pontoon by source or target language text. - -!!! warning - Use machinery suggestions with care. Even when source strings match, the context in different projects may be different, leading to incorrect or unnatural translations. Always prioritize the meaning and purpose of the string. - -The number of entries is shown next to the **MACHINERY** heading. Translation memory matches appear separately in green. - -### AI refinement - -For locales with Google Translate enabled, an **AI** dropdown appears above the machinery suggestions. It refines the Google Translate output using a large language model and provides three options: - -- **REPHRASE** — generates an alternative translation. -- **MAKE FORMAL** — generates a more formal version. -- **MAKE INFORMAL** — generates a simpler, more informal version. - -After selecting an option, the revised translation replaces the original in the editor. A **SHOW ORIGINAL** option then becomes available to revert to the original suggestion. - -### LOCALES tab - -Shows translations of the current string in other locales enabled for the project. Useful for cross-language context, especially for locales with read-only access. - -### COMMENTS tab - -The Comments tab has two types of comments: - -**Source string comments** — associated with the source string itself. These are displayed in the COMMENTS tab in the right column and are designed for team discussion about the string's meaning or context. Administrators can **pin** a comment to make it visible alongside the editing area as a **PINNED COMMENT**, and users will receive a notification. - -**Translation comments** — associated with a specific translation, displayed under the editor in the translation list. - -!!! note - These are different from **Resource comments**, which are added by developers directly in the resource file and are displayed in the editing area alongside the resource path and context. - -### Tags - -Tags can be used in a project to logically group resources and assign them a priority. If tags are enabled for a project, a Tags tab appears in Team and Project pages. Resources can be filtered by tag in the sidebar. - -## Translation history - -Below the editor, a list of all past translations for the current string is shown, including: - -- The translator's name, profile picture, and banner. -- How long ago the entry was submitted (hover for the exact date/time). -- The translation text. -- Status icons (approved, pretranslated, unreviewed, rejected). -- Translation comments. - -## Keyboard shortcuts - -| Action | Shortcut | -|---|---| -| Copy source string to editor | `Ctrl`+`Shift`+`C` | -| Submit translation / suggestion | `Ctrl`+`Enter` | -| Navigate to previous string | `Alt`+`↑` | -| Navigate to next string | `Alt`+`↓` | -| Navigate to previous unreviewed | `Alt`+`Shift`+`↑` | -| Navigate to next unreviewed | `Alt`+`Shift`+`↓` | -| Approve translation | `Alt`+`Enter` | -| Select all strings in sidebar | `Ctrl`+`Shift`+`A` | -| Open machinery tab | `Ctrl`+`Shift`+`M` | -| Open history tab | `Ctrl`+`Shift`+`H` | -| Open comments tab | `Ctrl`+`Shift`+`X` | -| Toggle find & replace | `Ctrl`+`H` | diff --git a/docz/docs/localizer/users.md b/docz/docs/localizer/users.md deleted file mode 100644 index e9d0036e8f..0000000000 --- a/docz/docs/localizer/users.md +++ /dev/null @@ -1,72 +0,0 @@ -# User Accounts & Settings - -## Roles and permissions - -Users in Pontoon are assigned one of four roles, each with different capabilities: - -Contributor -: The default role for new users. Can submit translation **suggestions** only; suggestions must be reviewed and approved by a Translator or Team Manager before they appear in the product. - -Translator -: Can submit **approved translations** directly and **review** suggestions from other users. Can also manually switch to Suggestion Mode if preferred. Translators need access to contributor contact details for review, so their email addresses are visible to translators by default. - -Team Manager -: Has all Translator capabilities, plus can **manage permissions** for other users within their locale. Responsible for maintaining team quality and unreviewed suggestion queues. - -Administrator -: Can manage all aspects of Pontoon — adding/removing projects, acting as a Team Manager for all locales, and accessing the admin console. - -Additionally, **Project Managers** are not a permission level but a point of contact designation for a specific project. Their names appear in project headers, and they are tagged when contributors use REQUEST CONTEXT or REPORT ISSUE. - -## Managing permissions (Team Managers) - -To manage user permissions, open the **Team page** → **Permissions** tab (visible only to Team Managers and Administrators). - -The permissions panel has a **General** section by default. Permissions defined here apply to all projects for the locale, but can be overridden by project-specific custom permissions. - -To move a user between permission levels, hover their email address — arrows will appear to move them left or right between columns. Click **SAVE** before leaving the window. - -!!! note - A user must log in to Pontoon at least once before their permissions can be changed. - -By default, the TEAM CONTRIBUTORS column shows only users who have already submitted suggestions for the locale. Click **ALL USERS** to display all Pontoon users, then use the search field to narrow down. - -### Custom permissions per project - -Click **ADD CUSTOM PERMISSIONS PER PROJECT** to set permissions for a specific project. This is useful if a project is maintained by a dedicated person or a restricted group. Custom project permissions override the General section for that project. - -!!! warning - If a user needs to translate **all** projects, they must be listed in every custom permissions section **and** in the General section. - -## Account settings - -Access account settings via the profile icon in the top-right corner. - -### Personal preferences - -| Setting | Description | -|---|---| -| **Make suggestions** | Switches a Translator or Team Manager to Suggestion Mode by default. | -| **Default homepage** | Choose between Pontoon's homepage or a specific Team page as your landing page after login. | -| **Preferred source locales** | Display a different source locale when translating (Mozilla projects use `en-US` as the default). | -| **Preferred locales** | Pin specific locales to appear first in the LOCALES tab when reviewing translations. | - -### Profile visibility - -Control who can see specific profile fields: - -| Field | Default visibility | Can be changed to | -|---|---|---| -| Email address | Translators only | All logged-in users (never public, to prevent spam) | -| External accounts | Translators only | Public | -| Approval rate / Self-approval rate | Public | Translators only | - -!!! note - Team and Project Managers always have their email address visible to logged-in users, regardless of visibility settings. - -### Email notifications - -Control which Pontoon emails you receive, including notification digests and news updates. - -!!! note - Opting out of *News and updates* prevents you from receiving Messaging Center emails unless the message is marked as **Transactional** by the sender. diff --git a/docz/docs/stylesheets/extra.css b/docz/docs/stylesheets/extra.css deleted file mode 100644 index 4eef0c0afb..0000000000 --- a/docz/docs/stylesheets/extra.css +++ /dev/null @@ -1,48 +0,0 @@ -/* Pontoon brand colors */ -:root { - --md-primary-fg-color: #333941; - --md-primary-fg-color--light: #FF7E88; - --md-primary-fg-color--dark: #CC2233; - --md-accent-fg-color: #7bc876; - --md-accent-fg-color--transparent: #0060DF1a; -} - -[data-md-color-scheme="slate"] { - --md-primary-fg-color: #7bc876; - --md-accent-fg-color: #7bc876; - --md-default-bg-color: #272a2f; -} - -/* Navigation tabs */ -.md-tabs { - background-color: var(--md-primary-fg-color); -} - -/* Admonition tweaks */ -.md-typeset .admonition, -.md-typeset details { - border-radius: 4px; -} - -/* Code block copy button */ -.md-clipboard { - color: var(--md-accent-fg-color); -} - -/* Role badges in localizer docs */ -.role-badge { - display: inline-block; - padding: 2px 8px; - border-radius: 12px; - font-size: 0.75em; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.05em; -} -.role-contributor { background: #e3f2fd; color: #1565c0; } -.role-translator { background: #e8f5e9; color: #2e7d32; } -.role-manager { background: #fff3e0; color: #e65100; } -.role-admin { background: #fce4ec; color: #c62828; } - -/* Hide "Made with Material" footer */ -.md-footer-meta { display: none; } diff --git a/pontoon/settings/base.py b/pontoon/settings/base.py index 045817ae3d..28a4c4f12f 100644 --- a/pontoon/settings/base.py +++ b/pontoon/settings/base.py @@ -824,7 +824,6 @@ def _default_from_email(): os.path.join(TRANSLATE_DIR, "dist"), os.path.join(TRANSLATE_DIR, "public"), ("docs", os.path.join(ROOT, "documentation", "site")), - ("docz", os.path.join(ROOT, "docz", "site")), ] allowed_hosts = os.environ.get("ALLOWED_HOSTS") @@ -980,11 +979,9 @@ def _default_from_email(): "'sha256-MAn2iEyXLmB7sfv/20ImVRdQs8NCZ0A5SShdZsZdv20='", "https://www.googletagmanager.com/gtag/js", # Needed for Docs - "'sha256-apoQPHefCNWjxbCm+HzVDOAW4CSVWhY7VylQjgOFyfk='", "'sha256-DrEMJJ29sL7vIloQzly+VUGMxKcBTMII+OfW7Y8AkG4='", "'sha256-/8wPdzX9q0NNJXyA5lzsLojXFpkeaXVxhbfkUOQaWy8='", - "'sha256-/K9p2JtEqCycL2fSbEonMakkteWpAHv57x2wndLqMNo='", - "'sha256-/nhm8p50KJxvwWLggwJ1OF8Xgq5W/b3iKECITLASfOg='", + "'sha256-9WmRqHphu0WtjGBriIQP5bBdmiqiG3tY04gCxNSST40='", ) CSP_STYLE_SRC = ( "'self'", diff --git a/pontoon/urls.py b/pontoon/urls.py index 0c6e1884f0..9e216be952 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -20,10 +20,6 @@ def docs_dir_index(request, path=""): return HttpResponseRedirect(f"/docs/{path}index.html") -def docz_dir_index(request, path=""): - return HttpResponseRedirect(f"/docz/{path}index.html") - - register_converter(LocaleConverter, "locale") permission_denied_view = TemplateView.as_view(template_name="403.html") @@ -72,14 +68,6 @@ def docz_dir_index(request, path=""): serve, {"document_root": os.path.join(settings.STATIC_ROOT, "docs")}, ), - # Docz - path("docz/", docz_dir_index), - re_path(r"^docz/(?P.+/)$", docz_dir_index), - path( - "docz/", - serve, - {"document_root": os.path.join(settings.STATIC_ROOT, "docz")}, - ), # Legacy path("in-context/", RedirectView.as_view(url="/", permanent=True)), # Include URL configurations from installed apps From 02ea2456f583cef8ced22b7eedcaf901ba6af9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Fri, 20 Mar 2026 19:39:00 +0100 Subject: [PATCH 09/35] Update zensical to 0.0.28 --- pontoon/settings/base.py | 2 ++ requirements/default.in | 2 +- requirements/default.txt | 28 ++++++++++++++-------------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/pontoon/settings/base.py b/pontoon/settings/base.py index 28a4c4f12f..250eef512d 100644 --- a/pontoon/settings/base.py +++ b/pontoon/settings/base.py @@ -981,7 +981,9 @@ def _default_from_email(): # Needed for Docs "'sha256-DrEMJJ29sL7vIloQzly+VUGMxKcBTMII+OfW7Y8AkG4='", "'sha256-/8wPdzX9q0NNJXyA5lzsLojXFpkeaXVxhbfkUOQaWy8='", + "'sha256-i0DgL2uLiE/Q2kHCFRPZIfz/mN3ZA/Sq08UynK9ZACY='", "'sha256-9WmRqHphu0WtjGBriIQP5bBdmiqiG3tY04gCxNSST40='", + "'sha256-cgPnO/p6B0QlYcCUC4Ur5FXogQxKDNDgWWH3Q010y7A='", ) CSP_STYLE_SRC = ( "'self'", diff --git a/requirements/default.in b/requirements/default.in index 5ece97a466..f45dcadb78 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -52,4 +52,4 @@ sacrebleu==2.4.3 sacremoses==0.1.1 translate-toolkit==3.19.3 whitenoise==5.2.0 -zensical==0.0.27 +zensical==0.0.28 diff --git a/requirements/default.txt b/requirements/default.txt index f8d876d0ba..b151e2ce08 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -2101,18 +2101,18 @@ whitenoise==5.2.0 \ --hash=sha256:05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7 \ --hash=sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d # via -r default.in -zensical==0.0.27 \ - --hash=sha256:06b9e308aec8c5db1cd623e2e98e1b25c3f5cab6b25fcc9bac1e16c0c2b93837 \ - --hash=sha256:3e11d220181477040a4b22bf2b8678d5b0c878e7aae194fad4133561cb976d69 \ - --hash=sha256:682085155126965b091cb9f915cd2e4297383ac500122fd4b632cf4511733eb2 \ - --hash=sha256:6d8d74aba4a9f9505e6ba1c43d4c828ba4ff7bb1ff9b005e5174c5b92cf23419 \ - --hash=sha256:847c881209e65e1db1291c59a9db77966ac50f7c66bf9a733c3c7832144dbfca \ - --hash=sha256:99cbc493022f8749504ef10c71772d360b705b4e2fd1511421393157d07bdccf \ - --hash=sha256:9d3b1fca7ea99a7b2a8db272dd7f7839587c4ebf4f56b84ff01c97b3893ec9f8 \ - --hash=sha256:a627cd4599cf2c5a5a5205f0510667227d1fe4579b6f7445adba2d84bab9fbc8 \ - --hash=sha256:b367c285157c8e1099ae9e2b36564e07d3124bf891e96194a093bc836f3058d2 \ - --hash=sha256:d51ebf4b038f3eea99fd337119b99d92ad92bbe674372d5262e6dbbabbe4e9b5 \ - --hash=sha256:da11e0f0861dbd7d3b5e6fe1e3a53b361b2181c53f3abe9fb4cdf2ed0cea47bf \ - --hash=sha256:ecc20a85e8a23ad9ab809b2f268111321be7b2e214021b3b00f138936a87a434 \ - --hash=sha256:f31ec13c700794be3f9c0b7d90f09a7d23575a3a27c464994b9bb441a22d880b +zensical==0.0.28 \ + --hash=sha256:0887436c5fd8fe7008c0d93407876695db67bcf55c8aec9fb36c339d82bb7fce \ + --hash=sha256:2db2997dd124dc9361b9d3228925df9e51281af9529c26187a865407588f8abb \ + --hash=sha256:3680b3a75560881e7fa32b450cf6de09895680b84d0dd2b611cb5fa552fdfc49 \ + --hash=sha256:5c6e5ea5c057492a1473a68f0e71359d663057d7d864b32a8fd429c8ea390346 \ + --hash=sha256:6077a85ee1f0154dbfe542db36789322fe8625d716235a000d4e0a8969b14175 \ + --hash=sha256:7cef68b363c0d3598d37a1090bfc5c6267e36a87a55e9fb6a6f9d7f2768f1dfd \ + --hash=sha256:93e1bc47981b50bcd9c4098edc66fb86fd881c5b52b355db92dcef626cc0b468 \ + --hash=sha256:acb31723ca82c367d1c41a6a7b0f52ce1ed87f0ee437de2ee2fc2e284e120e44 \ + --hash=sha256:af7d75a1b297721dfc9b897f729b601e56b3e566990a989e9e3e373a8cd04c40 \ + --hash=sha256:b8a0ca92e04687f71aa20c9ae80fe8b840125545657e6b7c0f83adecd04d512e \ + --hash=sha256:d2ee8a1d29b61de61e6b0f9123fa395c06c24c94e509170c7f7f9ccddaeaaad4 \ + --hash=sha256:eee014ca1290463cf8471e3e1b05b7c627ac7afa0881635024d23d4794675980 \ + --hash=sha256:f3175440fd526cf0273859d0de355e769ba43e082e09deb04b6f6afd77af6c91 # via -r default.in From d5438eb45998728a4af3e957de80edb5ee85779a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 26 Mar 2026 13:33:36 +0100 Subject: [PATCH 10/35] Update zensical to 0.0.29 --- requirements/default.in | 2 +- requirements/default.txt | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/requirements/default.in b/requirements/default.in index f45dcadb78..9996de606d 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -52,4 +52,4 @@ sacrebleu==2.4.3 sacremoses==0.1.1 translate-toolkit==3.19.3 whitenoise==5.2.0 -zensical==0.0.28 +zensical==0.0.29 diff --git a/requirements/default.txt b/requirements/default.txt index b151e2ce08..c5bb828761 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -2101,18 +2101,18 @@ whitenoise==5.2.0 \ --hash=sha256:05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7 \ --hash=sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d # via -r default.in -zensical==0.0.28 \ - --hash=sha256:0887436c5fd8fe7008c0d93407876695db67bcf55c8aec9fb36c339d82bb7fce \ - --hash=sha256:2db2997dd124dc9361b9d3228925df9e51281af9529c26187a865407588f8abb \ - --hash=sha256:3680b3a75560881e7fa32b450cf6de09895680b84d0dd2b611cb5fa552fdfc49 \ - --hash=sha256:5c6e5ea5c057492a1473a68f0e71359d663057d7d864b32a8fd429c8ea390346 \ - --hash=sha256:6077a85ee1f0154dbfe542db36789322fe8625d716235a000d4e0a8969b14175 \ - --hash=sha256:7cef68b363c0d3598d37a1090bfc5c6267e36a87a55e9fb6a6f9d7f2768f1dfd \ - --hash=sha256:93e1bc47981b50bcd9c4098edc66fb86fd881c5b52b355db92dcef626cc0b468 \ - --hash=sha256:acb31723ca82c367d1c41a6a7b0f52ce1ed87f0ee437de2ee2fc2e284e120e44 \ - --hash=sha256:af7d75a1b297721dfc9b897f729b601e56b3e566990a989e9e3e373a8cd04c40 \ - --hash=sha256:b8a0ca92e04687f71aa20c9ae80fe8b840125545657e6b7c0f83adecd04d512e \ - --hash=sha256:d2ee8a1d29b61de61e6b0f9123fa395c06c24c94e509170c7f7f9ccddaeaaad4 \ - --hash=sha256:eee014ca1290463cf8471e3e1b05b7c627ac7afa0881635024d23d4794675980 \ - --hash=sha256:f3175440fd526cf0273859d0de355e769ba43e082e09deb04b6f6afd77af6c91 +zensical==0.0.29 \ + --hash=sha256:0d6282be7cb551e12d5806badf5e94c54a5e2f2cf07057a3e36d1eaf97c33ada \ + --hash=sha256:20ae0709ea14fce25ab33d0a82acdaf454a7a2e232a9ee20c019942205174476 \ + --hash=sha256:30661148f0681199f3b598cbeb1d54f5cba773e54ae840bac639250d85907b84 \ + --hash=sha256:599af3ba66fcd0146d7019f3493ed3c316051fae6c4d5599bc59f3a8f4b8a6f0 \ + --hash=sha256:59a57db35542e98d2896b833de07d199320f8ada3b4e7ddccb7fe892292d8b74 \ + --hash=sha256:6a566ac1fd4bfac5d711a7bd1ae06666712127c2718daa5083c7bf3f107e8578 \ + --hash=sha256:6b2fca39c5f6b1782c77cf6591cf346357cabee85ebdb956c5ddc0fd5169f3d9 \ + --hash=sha256:7145c5504380a344b8cd4586da815cdde77ef4a42319fa4f35e78250f01985af \ + --hash=sha256:a231a3a02a3851741dc4d2de8910b5c39fe81e55bf026d8edf4d803e91a922fb \ + --hash=sha256:c9336d4e4b232e3c9a70e30258e916dd7e60c0a2a08c8690065e60350c302028 \ + --hash=sha256:d42c2b2a96a80cf64c98ba7242f59ef95109914bd4c9499d7ebc12544663852c \ + --hash=sha256:dfc23a74ef672aa51088c080286319da1dc0b989cd5051e9e5e6d7d4abbc2fc1 \ + --hash=sha256:eea7e48a00a71c0586e875079b5f83a070c33a147e52ad4383e4b63ab524332b # via -r default.in From 2a63b0b07583b16354a19d11670aaf7aee9760b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 26 Mar 2026 13:54:17 +0100 Subject: [PATCH 11/35] Update README --- documentation/README.md | 47 ++--------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/documentation/README.md b/documentation/README.md index 400a9182c7..5a02c6bf33 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -1,54 +1,11 @@ # Pontoon Documentation -This folder contains the unified Pontoon documentation site, built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/). +This folder contains the unified Pontoon documentation site, built with [Zensical](https://zensical.org/). It consolidates three previously separate documentation sites: | Audience | Previous location | |---|---| -| Developers | `docs/` (ReadTheDocs / Sphinx) | +| Developers | `docs/` (https://mozilla-pontoon.readthedocs.io/en/latest/) | | Localizers | [mozilla-l10n/localizer-documentation](https://github.com/mozilla-l10n/localizer-documentation) | | Admins | [mozilla-l10n/documentation](https://github.com/mozilla-l10n/documentation) | - -## Structure - -``` -documentation/ -├── mkdocs.yml # MkDocs configuration -├── requirements.txt # Python dependencies for building -└── docs/ - ├── index.md # Home page - ├── stylesheets/ - │ └── extra.css # Mozilla/Pontoon brand styles - ├── assets/ # Logo and other static assets - ├── localizer/ # Localizer guide - │ ├── index.md - │ ├── translate.md - │ ├── translation-workspace.md - │ ├── teams-projects.md - │ ├── users.md - │ ├── notifications.md - │ ├── profile.md - │ └── glossary.md - ├── admin/ # Admin & Project Manager guide - │ ├── index.md - │ ├── adding-new-project.md - │ ├── adding-short-term-project.md - │ ├── adding-new-locale.md - │ ├── managing-pretranslation.md - │ ├── messaging-center.md - │ ├── renaming-file.md - │ ├── renaming-project.md - │ ├── managing-users.md - │ └── adding-terminology.md - └── dev/ # Developer guide - ├── index.md - ├── first-contribution.md - ├── setup.md - ├── setup-virtualenv.md - ├── contributing.md - ├── feature-development-process.md - ├── deployment.md - ├── localizing-your-projects.md - └── maintenance.md -``` From 9a5d8cb91ed9e1b3e8d7ff5d02284acd72e9ec96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 26 Mar 2026 15:17:57 +0100 Subject: [PATCH 12/35] Update config --- documentation/zensical.toml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/documentation/zensical.toml b/documentation/zensical.toml index 1856614576..544de20ba2 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -1,16 +1,12 @@ # Pontoon docs configuration for Zensical -# Derived from the current mkdocs.yml navigation and site metadata. -# Notes: -# - This keeps the same page structure and top-level nav as the MkDocs config. -# - The MkDocs `glightbox` plugin is omitted because it does not have a direct -# Zensical equivalent in the currently documented feature set. -# - Repository/edit-link wiring is left commented until you confirm the exact -# Zensical repository settings you want to use. [project] site_name = "Pontoon Documentation" site_description = "Pontoon is Mozilla's translation management system. This documentation covers everything from translating strings to deploying your own instance." site_url = "https://pontoon.mozilla.org/docs/" +repo_url = "https://github.com/mozilla/pontoon" +repo_name = "mozilla/pontoon" +edit_uri = "edit/main/documentation/docs/" nav = [ { "Home" = "index.md" }, @@ -57,14 +53,17 @@ language = "en" logo = "assets/pontoon-logo.svg" favicon = "assets/pontoon-logo.svg" features = [ + "header.autohide", + "navigation.footer", "navigation.tabs", - "navigation.tabs.sticky", "navigation.sections", "navigation.expand", "navigation.path", "navigation.top", "navigation.instant", "search.highlight", + "content.action.edit", # Edit this page + "content.action.view", # View source of this page "content.code.copy", "toc.follow" ] @@ -73,11 +72,13 @@ features = [ # you can then re-enable "content.action.edit" above. [[project.theme.palette]] +media = "(prefers-color-scheme: light)" scheme = "default" toggle.icon = "lucide/sun" toggle.name = "Switch to dark mode" [[project.theme.palette]] +media = "(prefers-color-scheme: dark)" scheme = "slate" toggle.icon = "lucide/moon" toggle.name = "Switch to light mode" @@ -86,10 +87,6 @@ toggle.name = "Switch to light mode" icon = "fontawesome/brands/github" link = "https://github.com/mozilla/pontoon" -[[project.extra.social]] -icon = "fontawesome/brands/firefox-browser" -link = "https://pontoon.mozilla.org" - [project.markdown_extensions.pymdownx.highlight] anchor_linenums = true From fef4d6dd0d5c857c71207cca050f6c56a0a9763c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 26 Mar 2026 16:25:03 +0100 Subject: [PATCH 13/35] High-level docs updates --- documentation/docs/admin/index.md | 6 +++--- documentation/docs/index.md | 9 +++------ documentation/docs/localizer/index.md | 13 ------------- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/documentation/docs/admin/index.md b/documentation/docs/admin/index.md index 20c25a5e0f..f5b614036f 100644 --- a/documentation/docs/admin/index.md +++ b/documentation/docs/admin/index.md @@ -2,8 +2,8 @@ This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. -!!! note "Mozilla-specific content" - Most of this guide is specific to Mozilla's deployment of Pontoon at [pontoon.mozilla.org](https://pontoon.mozilla.org). Some procedures (such as URLs and Google AutoML details) will differ for other deployments. +!!! note + The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](users.md). ## Sections @@ -51,5 +51,5 @@ This guide covers administrative tasks in Pontoon — managing projects, locales The Pontoon admin console is available at `/admin/` (e.g., `pontoon.mozilla.org/admin/`). Django's standard admin interface is at `/a/`. -!!! warning +!!! info Only Administrators have access to the admin console. Changes made here affect all users and projects. diff --git a/documentation/docs/index.md b/documentation/docs/index.md index fe3c9f3d47..1c0c440b0e 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -4,6 +4,9 @@ Pontoon specializes in community-driven open source localization, pulling strings directly from version control repositories (Git and Mercurial) and writing translations back automatically. It supports a wide range of localization file formats including Fluent, Gettext PO, XLIFF, .properties, DTD, and more. +!!! info "Scope of this documentation" + While most of this documentation applies to any Pontoon deployment, the Mozilla instance is used as the primary example. Some sections — particularly in the Admin Guide — are specific to Mozilla's deployment. + --- ## Who is this documentation for? @@ -43,19 +46,13 @@ Pontoon specializes in community-driven open source localization, pulling string | I want to… | Go to | |---|---| | Start translating a project | [How to Translate](localizer/translate.md) | -| Learn the translation workspace UI | [Translation Workspace](localizer/translation-workspace.md) | -| Understand user roles | [User Accounts & Settings](localizer/users.md) | | Add a new project | [Adding a New Project](admin/adding-new-project.md) | | Add a new locale | [Adding a New Locale](admin/adding-new-locale.md) | | Set up Pontoon locally for development | [Developer Setup](dev/setup.md) | | Deploy Pontoon to production | [Deployment](dev/deployment.md) | -| Make my first code contribution | [Your First Contribution](dev/first-contribution.md) | --- ## About Pontoon Pontoon is developed and maintained by Mozilla and is available as open source software at [github.com/mozilla/pontoon](https://github.com/mozilla/pontoon). The Mozilla instance is hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org). - -!!! note "Scope of this documentation" - While most of this documentation applies to any Pontoon deployment, the Mozilla instance is used as the primary example. Some sections — particularly in the Admin Guide — are specific to Mozilla's deployment. diff --git a/documentation/docs/localizer/index.md b/documentation/docs/localizer/index.md index 10c239c23b..f254834e10 100644 --- a/documentation/docs/localizer/index.md +++ b/documentation/docs/localizer/index.md @@ -38,16 +38,3 @@ This guide covers everything you need to know to translate and review strings in Definitions of key terms used throughout Pontoon and this documentation. - -## User roles - -Pontoon has four user roles, each with different capabilities: - -| Role | Can submit translations | Can review | Can manage users | -|---|---|---|---| -| **Contributor** | Suggestions only | ✗ | ✗ | -| **Translator** | ✓ (directly or via suggestion) | ✓ | ✗ | -| **Team Manager** | ✓ | ✓ | ✓ (within their locale) | -| **Administrator** | ✓ | ✓ | ✓ (all locales) | - -New users automatically start as Contributors and can be promoted by Team Managers or Administrators. From 0b8824cb26e479af4ce58cbdc737838009f4acb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Mon, 30 Mar 2026 16:28:19 +0200 Subject: [PATCH 14/35] Update Developer Guide --- documentation/docs/dev/contributing.md | 149 ++- documentation/docs/dev/deployment.md | 1000 ++++++----------- .../docs/dev/feature-development-process.md | 151 ++- documentation/docs/dev/first-contribution.md | 150 ++- documentation/docs/dev/index.md | 85 +- .../docs/dev/localizing-your-projects.md | 70 +- documentation/docs/dev/maintenance.md | 109 +- documentation/docs/dev/setup-virtualenv.md | 211 ---- documentation/docs/dev/setup.md | 134 +-- documentation/zensical.toml | 5 +- 10 files changed, 664 insertions(+), 1400 deletions(-) delete mode 100644 documentation/docs/dev/setup-virtualenv.md diff --git a/documentation/docs/dev/contributing.md b/documentation/docs/dev/contributing.md index 2a3beefae9..30be1578df 100644 --- a/documentation/docs/dev/contributing.md +++ b/documentation/docs/dev/contributing.md @@ -1,4 +1,4 @@ -# Contributing Guidelines +# Contributing ## Source code @@ -10,7 +10,7 @@ Pontoon source code is available on Our work is tracked in [GitHub](https://github.com/mozilla/pontoon/issues). -[Report a new issue](https://github.com/mozilla/pontoon/issues/new). +[Report a new issue](https://github.com/mozilla/pontoon/issues/new){ .md-button } ## Docker @@ -18,47 +18,13 @@ While the front-end (JavaScript) build and tests use the host environment for development, the back-end systems (Python/Django, databases, etc.) run in Docker containers. For production use, also the front-end is built in a container. Thus Pontoon requires fewer things to -get started and you\'re guaranteed to have the same server setup as +get started and you're guaranteed to have the same server setup as everyone else. -If you\'re not familiar with [Docker](https://docs.docker.com/) and -[docker-compose](https://docs.docker.com/compose/overview/), it\'s worth +If you're not familiar with [Docker](https://docs.docker.com/) and +[docker-compose](https://docs.docker.com/compose/overview/), it's worth reading up on. -## Writing to external repositories - -`Environment variables <../admin/deployment>`{.interpreted-text -role="doc"} like `SSH_KEY` and `SSH_CONFIG` have no effect in a Docker -setup. - -The [\~/.ssh]{.title-ref} folder of the host system is mapped -automatically to the home folder within the container. In order to -connect to a remote repository via SSH, you need to create a -passwordless SSH key, and configure [\~/.ssh/config]{.title-ref} -accordingly. - -Here\'s an example for GitHub, assuming the private key file is called -[id_ed25519]{.title-ref} (see also [GitHub\'s -instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) -to generate a new key): - -``` -Host github.com - User YOUR_USERNAME - IdentityFile ~/.ssh/id_ed25519 - StrictHostKeyChecking no -``` - -The project\'s repository will use the format -`git@github.com:{ORGANIZATION}/{REPOSITORY}.git` for the `URL` field. - -An alternative approach for GitHub is to use a [Personal Access Token -(PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), -and set up the project\'s `URL` as [https://]{.title-ref} instead of -[git@]{.title-ref}. In this case, the `URL` will need to include both -the PAT and username, e.g. -`https://{USER}:{TOKEN}@github.com/{REPOSITORY}`. - ## JavaScript setup For working on the front-end, you need the latest versions of Node.js @@ -95,21 +61,22 @@ $ docker-compose up -d postgresql ## Interactive shell If you need to run specific commands, that are not covered by our -[Makefile]{.title-ref}, you can start an interactive shell inside a -Pontoon container: +`Makefile`, you can start an interactive +shell inside a Pontoon container: ``` shell $ make shell ``` -[make shell-root]{.title-ref} is also available to log in as -[root]{.title-ref}, instead of the default [pontoon]{.title-ref} user. +`make shell-root` is also available to log +in as `root`, instead of the default +`pontoon` user. ## Browser Support The list of browsers supported by Pontoon is defined in the -[\"browserslist\"]{.title-ref} entry of the root package.json, and -contains by default: +`"browserslist"` entry of the root +package.json, and contains by default: ``` bash Firefox >= 78 @@ -122,7 +89,7 @@ Safari >= 13.1 We use code formatters so that we do not have to fight over code style. You are free to write code however you like, because in the end the -formatter is the one that will format it. We thus don\'t need to pay +formatter is the one that will format it. We thus don't need to pay attention to style during code reviews, and are free from those never-ending code style discussions. @@ -230,11 +197,11 @@ addresses. Pull request descriptions should cover at least some of the following: -1. what is the issue the pull request is addressing? -2. why does this pull request fix the issue? -3. how should a reviewer review the pull request? -4. what did you do to test the changes? -5. any steps-to-reproduce for the reviewer to use to test the changes +1. What is the issue the pull request is addressing? +2. Why does this pull request fix the issue? +3. How should a reviewer review the pull request? +4. What did you do to test the changes? +5. Any steps-to-reproduce for the reviewer to use to test the changes ## Code reviews @@ -277,7 +244,7 @@ your docker environment: $ make build-server ``` -If there are problems, it\'ll tell you. +If there are problems, it'll tell you. To upgrade existing dependencies within the given constraints of the input files, you can pass options through to the `uv pip compile` @@ -289,29 +256,15 @@ $ make requirements opts=--upgrade ## Documentation -Documentation for Pontoon is built with -[Sphinx](http://www.sphinx-doc.org/en/stable/) and is available on -ReadTheDocs. - -Building docs is not covered with docker yet, so you will have to do it -on your host. To make a virtualenv to build docs, do this: - -``` shell -$ cd docs/ -$ uv venv -$ source .venv/bin/activate -$ uv pip install -r requirements/default.txt -``` +Documentation for Pontoon is built with [Zensical](https://zensical.org/) +and is available on `http://localhost:8000/docs/`. -Then, to build the docs, run this: +To build the docs, run: ``` shell -$ make html +$ make docs ``` -The HTML documentation will be in [docs/\_build/html/]{.title-ref}. Try -to open [docs/\_build/html/index.html]{.title-ref} for example. - ## Running tests To run the entire test suite, do: @@ -332,8 +285,8 @@ To run only the Python tests: $ make pytest ``` -To run specific tests or specify arguments, you\'ll want to start a -shell in the test container: +To run specific tests or specify arguments, you'll want to start a shell +in the test container: ``` shell $ make shell @@ -365,7 +318,7 @@ app@...:/app$ pytest pontoon/base/tests/test_views.py Put your tests in the `tests/` directory of the appropriate app in `pontoon/`. -## Mock usage +### Mock usage [Mock](https://docs.python.org/dev/library/unittest.mock.html) is a python library for mocks objects. This allows us to write isolated tests @@ -373,20 +326,20 @@ by simulating services besides using the real ones. Best examples are existing tests which admittedly do mocking different depending on the context. -Tip! Try to mock in limited context so that individual tests don\'t +Tip! Try to mock in limited context so that individual tests don't affect other tests. Use context managers instead of monkey patching imported modules. ## Updating Your Local Instance -When changes are merged into the main Pontoon repository, you\'ll want -to update your local development instance to reflect the latest version -of the site. You can use Git as normal to pull the latest changes, but -if the changes add any new dependencies or alter the database, you\'ll -want to install any new libraries and run any new migrations. +When changes are merged into the main Pontoon repository, you'll want to +update your local development instance to reflect the latest version of +the site. You can use Git as normal to pull the latest changes, but if +the changes add any new dependencies or alter the database, you'll want +to install any new libraries and run any new migrations. -If you\'re unsure what needs to be run, it\'s safe to just perform all -of these steps, as they don\'t affect your setup if nothing has changed: +If you're unsure what needs to be run, it's safe to just perform all of +these steps, as they don't affect your setup if nothing has changed: ``` shell # Pull the latest code (assuming you've already checked out main). @@ -398,3 +351,37 @@ uv pip install -U --force -r requirements/default.txt # Run database migrations. python manage.py migrate ``` + +## Writing to external repositories from a local instance + +[Environment variables](deployment.md#environment-variables) like `SSH_KEY` and +`SSH_CONFIG` have no effect in a Docker setup. + +The `~/.ssh` folder of the host system is +mapped automatically to the home folder within the container. In order +to connect to a remote repository via SSH, you need to create a +passwordless SSH key, and configure +`~/.ssh/config` accordingly. + +Here's an example for GitHub, assuming the private key file is called +`id_ed25519` (see [GitHub's +instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +for generating a new key): + +``` +Host github.com + User YOUR_USERNAME + IdentityFile ~/.ssh/id_ed25519 + StrictHostKeyChecking no +``` + +The project's repository will use the format +`git@github.com:{ORGANIZATION}/{REPOSITORY}.git` for the `URL` field. + +An alternative approach for GitHub is to use a [Personal Access Token +(PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), +and set up the project's `URL` as +`https://` instead of +`git@`. In this case, the `URL` will need +to include both the PAT and username, e.g. +`https://{USER}:{TOKEN}@github.com/{REPOSITORY}`. diff --git a/documentation/docs/dev/deployment.md b/documentation/docs/dev/deployment.md index 2fc4d24ad9..09c350584f 100644 --- a/documentation/docs/dev/deployment.md +++ b/documentation/docs/dev/deployment.md @@ -1,651 +1,387 @@ ---- -title: Deployment ---- - -Pontoon is designed to be deployed on Heroku. To deploy an instance of -Pontoon on Heroku, you must first create an app on your Heroku -dashboard. The steps below assume you\'ve already created an app and -have installed the [Heroku -CLI](https://devcenter.heroku.com/articles/heroku-cli). - -For quick and easy deployment without leaving your web browser, click -this button: - -```{=html} - - - -``` -# Buildpack - -Pontoon uses several buildpacks in a specific order. They are (in -order): - -1. [heroku-buildpack-ssh](https://github.com/Osmose/heroku-buildpack-ssh) - for setting up the SSH keys necessary for committing to version - control. -2. The official `heroku/nodejs` buildpack for installing Node.js - programs for pre-processing frontend assets. -3. The official `heroku/python` buildpack as our primary buildpack. - -You can set these buildpacks on your app with the following toolbelt -commands: - -``` bash -# Note that we use add and --index 1 to append to the top of the list. -heroku buildpacks:set heroku/python -heroku buildpacks:add --index 1 heroku/nodejs -heroku buildpacks:add --index 1 https://github.com/Osmose/heroku-buildpack-ssh.git#v0.1 -heroku buildpacks:add --index 1 https://github.com/mozilla/heroku-buildpack-apt.git#v0.1 -``` - -# Environment Variables - -The following is a list of environment variables you\'ll want to set on -the app you create: - -::: note -::: title -Note -::: - -Alternatively, you can put all variables below in a -[dotenv](https://saurabh-kumar.com/python-dotenv/) text file: - - VAR="value 1" - OTHER_VAR="other value" - -If you do so, you will only have to give the path of this file to -Pontoon through the `DOTENV_PATH` environment variable: - - DOTENV_PATH=/path/to/my/config.env -::: - -`ADMIN_EMAIL` - -: Optional. Email address for the `ADMINS` setting. - -`ADMIN_NAME` - -: Optional. Name for the `ADMINS` setting. - -`AUTHENTICATION_METHOD` - -: The default value is [django]{.title-ref}, which allows you to log - in via accounts created using [manage.py shell]{.title-ref}. Set to - \'fxa\' if you want to use \'Mozilla Accounts\' (corresponding - [FXA]()\* settings must be set). Set to \'github\' if you want to - use \'GitHub\' (corresponding [GITHUB]()\* settings must be set). - Set to \'gitlab\' if you want to use \'GitLab\' (corresponding - [GITLAB]()\* settings must be set if required). Set to \'google\' if - you want to use \'Google\' (corresponding [GOOGLE]()\* settings must - be set). - -`USE_X_FORWARDED_HOST` - -: Optional. If using a reverse proxy, set to True to make - django-allauth redirect_url work as expected. Default value is - [False]{.title-ref}. - -`BADGES_START_DATE` - -: Optional. Specifies the start date from which user activities count - towards badge achievements. This variable should be in YYYY-MM-DD - format. - -`BADGES_PROMOTION_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Community Builder badge. - -`BADGES_REVIEW_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Review Master badge. - -`BADGES_TRANSLATION_THRESHOLDS` - -: Optional. A comma-separated list of numeric thresholds for different - levels of the Translation Champion badge. - -`BLOCKED_IPS` - -: A comma-separated list of IP addresses or IP ranges (expressed using - the [CIDR notation](), e.g. [192.168.1.0/24]{.title-ref}) to be - blocked from accessing the app, for example because they are - DDoS\'ing the server. - -`CELERY_ALWAYS_EAGER` - -: Controls whether asynchronous tasks (mainly used during sync) are - sent to Celery or executed immediately and synchronously. Set this - to `False` on production. - -`CELERYD_MAX_TASKS_PER_CHILD` - -: Maximum number of tasks a Celery worker process can execute before - it's replaced with a new one. Defaults to 20 tasks. - -`DATABASE_SSLMODE` - -: Optional. Controls if the database needs a secure connection with - the app. Default value is [True]{.title-ref}. - -`DEFAULT_FROM_EMAIL` - -: Optional. Default email address to send emails from. Default value: - `Pontoon `. - -`DISABLE_COLLECTSTATIC` - -: Disables running `./manage.py collectstatic` during the build. - Should be set to `1`. - - Heroku\'s Python buildpack has a bug that causes issues when running - node binaries during the compile step of the buildpack. To get - around this, we run the command in our post-compile step (see - `bin/post_compile`) when the issue doesn\'t occur. - -`DJANGO_DEBUG` - -: Controls `DEBUG` mode for the site. Should be set to - [False]{.title-ref} in production. - -`DJANGO_DEBUG_TOOLBAR` - -: Enables Django Debug Toolbar (default: `False`). `DJANGO_DEV` must - be set to [True]{.title-ref}. - -`DJANGO_DEV` - -: Signifies whether this is a development server or not. Should be - [False]{.title-ref} in production. Adds some additional django apps - that can be helpful during day to day development. - -`EMAIL_HOST` - -: SMTP host (default: `'smtp.sendgrid.net'`). - -`EMAIL_HOST_PASSWORD` - -: Password for the SMTP connection. - -`EMAIL_HOST_USER` - -: Username for the SMTP connection (default: `'apikey'`). - -`EMAIL_PORT` - -: SMTP port (default: `587`). - -`EMAIL_USE_TLS` - -: Use explicit TLS for the SMTP connection (default: `True`). - -`EMAIL_USE_SSL` - -: Use implicit TLS for the SMTP connection (default: `False`). - -`EMAIL_CONSENT_ENABLED` - -: Optional. Enables Email consent page (default: `False`). - -`EMAIL_CONSENT_TITLE` - -: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Title of the - Email consent page. - -`EMAIL_CONSENT_MAIN_TEXT` - -: Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Main text of the - Email consent page. You can use that to explain what type of - communication to expect among other things. - -`EMAIL_CONSENT_PRIVACY_NOTICE` - -: Optional. Privacy notice on the Email consent page. It\'s possible - to use HTML and link to external privacy notice page. - -`EMAIL_COMMUNICATIONS_HELP_TEXT` - -: Optional. Help text to use under the Email communications checkbox - in user settings. It allows to explain what type of communication to - expect and to link to deployment-specific privacy notices among - other things. - -`EMAIL_COMMUNICATIONS_FOOTER_PRE_TEXT` - -: Optional. Text to be shown in the footer of the non-transactional - emails sent using the Messaging Center, just above the unsubscribe - text. - -`EMAIL_MONTHLY_ACTIVITY_SUMMARY_INTRO` - -: Optional. Custom text to be shown in the Monthly activity summary - emails after the greeting and before the stats. - -`ENABLE_BUGS_TAB` - -: Optional. Enables Bugs tab on team pages, which pulls team data from - bugzilla.mozilla.org. Specific for Mozilla deployments. - -`ENABLE_INSIGHTS` - -: Optional. Enables Insights pages, which present data that needs to - be collected by the `collect-insights`{.interpreted-text role="ref"} - scheduled job. It is advised to run the job at least once before - enabling the tab, otherwise the content will be empty. See [the - spec](https://github.com/mozilla/pontoon/blob/HEAD/specs/0108-community-health-dashboard.md) - for more information. - -`ERROR_PAGE_URL` - -: Optional. URL to the page displayed to your users when the - application encounters a system error. See [Heroku - Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) - for more information. - -`GOOGLE_ANALYTICS_KEY` - -: Optional. Set your [Google Analytics - key](https://www.google.com/analytics/) to use Google Analytics. - -`GOOGLE_TRANSLATE_API_KEY` - -: Optional. Set your [Google Cloud Translation - API](https://cloud.google.com/translate/) key to use generic machine - translation engine by Google. - -`GOOGLE_AUTOML_PROJECT_ID` - -: Optional. Set your [Google Cloud AutoML - Translation](https://cloud.google.com/translate/) model ID to use - custom machine translation engine by Google. - -`GOOGLE_APPLICATION_CREDENTIALS` - -: Optional. Path to a Google Cloud service account JSON key file used - by Google client libraries for authentication. - -`INACTIVE_CONTRIBUTOR_PERIOD` - -: Optional. Number of months in which the contributor needs to log in - in order not to receive the inactive account email. The default - value is 6. - -`INACTIVE_TRANSLATOR_PERIOD` - -: Optional. Number of months in which the locale translator needs to - submit or review at least one translation in order not to receive - the inactive account email. The default value is 2. - -`INACTIVE_MANAGER_PERIOD` - -: Optional. Number of months in which the locale manager needs to - submit or review at least one translation in order not to receive - the inactive account email. The default value is 2. - -`LOG_TO_FILE` - -: Optional. Enables logging to a file (default: `False`). This is - useful for retaining log data for later analysis or troubleshooting. - -`MAINTENANCE_PAGE_URL` - -: Optional. URL to the page displayed to your users when the - application is placed in the maintenance state. See [Heroku - Reference](https://devcenter.heroku.com/articles/error-pages#customize-pages) - for more information. - -`MANUAL_SYNC` - -: Optional. Enable Sync button in project Admin. +# Deployment -`MEDIA_ROOT` +Pontoon is designed to be deployed on Google Cloud Platform. Docker images are built from the [Dockerfile](https://github.com/mozilla/pontoon/blob/main/docker/Dockerfile-mozcloud) and pushed to Google Artifact Registry (GAR) every time changes are merged to the `main` or `dev` branch. -: Optional. The absolute path of the \"media\" folder the projects - will be cloned into (it is located next to the \"pontoon\" Python - module by default). +Two Pontoon instances are available on MozCloud - Mozilla's internal developer platform: -`MICROSOFT_TRANSLATOR_API_KEY` +* **Production server**: [pontoon.mozilla.org](https://pontoon.mozilla.org/) +* **Development server**: [pontoon.allizom.org](https://pontoon.allizom.org/) -: Optional. Set your [Microsoft Translator - API](http://msdn.microsoft.com/en-us/library/hh454950) key to use - machine translation by Microsoft. +## Environment Variables -`MONTHLY_ACTIVITY_SUMMARY_DAY` +The following is a list of environment variables you'll want to set on the app you create: -: Optional. Integer representing a day of the month on which the - Monthly activity summary emails will be sent. 1 represents the first - day of the month. The default value is 1. +`ADMIN_EMAIL` +Optional. Email address for the `ADMINS` setting. -`NEW_RELIC_API_KEY` +`ADMIN_NAME` +Optional. Name for the `ADMINS` setting. -: Optional. API key for accessing the New Relic REST API. Used to mark - deploys on New Relic. +`AUTHENTICATION_METHOD` +The default value is `django`, which allows you to log in via accounts created using `manage.py shell`. +Set to `fxa` if you want to use "Mozilla Accounts" (corresponding `FXA_*` settings must be set). +Set to `github` if you want to use "GitHub" (corresponding `GITHUB_*` settings must be set). +Set to `gitlab` if you want to use "GitLab" (corresponding `GITLAB_*` settings must be set if required). +Set to `google` if you want to use "Google" (corresponding `GOOGLE_*` +settings must be set). -`NEW_RELIC_APP_NAME` +`USE_X_FORWARDED_HOST` +Optional. If using a reverse proxy, set to True to make django-allauth +redirect_url work as expected. Default value is +`False`. -: Optional. Name to give to this app on New Relic. Required if you\'re - using New Relic. +`BADGES_START_DATE` +Optional. Specifies the start date from which user activities count +towards badge achievements. This variable should be in `YYYY-MM-DD` +format. -`NOTIFICATION_DIGEST_DAY` +`BADGES_PROMOTION_THRESHOLDS` +Optional. A comma-separated list of numeric thresholds for different +levels of the Community Builder badge. -: Optional. Integer representing a day of the week on which the weekly - notification digest email will be sent. 0 represents Monday, 6 - represents Sunday. The default value is 4 (Friday). +`BADGES_REVIEW_THRESHOLDS` +Optional. A comma-separated list of numeric thresholds for different +levels of the Review Master badge. -`ONBOARDING_EMAIL_2_DELAY` +`BADGES_TRANSLATION_THRESHOLDS` +Optional. A comma-separated list of numeric thresholds for different +levels of the Translation Champion badge. -: Optional. The number of days to wait after user registration before - sending the 2nd onboarding email. The default value is 2. +`BLOCKED_IPS` +A comma-separated list of IP addresses or IP ranges (expressed using the +[CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation), e.g. `192.168.1.0/24`) +to be blocked from accessing the app, for example because they are +DDoS'ing the server. -`ONBOARDING_EMAIL_3_DELAY` +`CELERY_ALWAYS_EAGER` +Controls whether asynchronous tasks (mainly used during sync) are sent +to Celery or executed immediately and synchronously. Set this to `False` +on production. -: Optional. The number of days to wait after user registration before - sending the 3rd onboarding email. The default value is 7. +`CELERYD_MAX_TASKS_PER_CHILD` +Maximum number of tasks a Celery worker process can execute before it’s +replaced with a new one. Defaults to 20 tasks. -`OPENAI_API_KEY` +`DATABASE_SSLMODE` +Optional. Controls if the database needs a secure connection with the +app. Default value is `True`. -: Optional. Set your [OpenAI API]{.title-ref} key to add the ability - to refine machine translations using ChatGPT. +`DEFAULT_FROM_EMAIL` +Optional. Default email address to send emails from. Default value: `Pontoon `. -`PERSONAL_ACCESS_TOKEN_MAX_COUNT` +`DISABLE_COLLECTSTATIC` +Disables running `./manage.py collectstatic` during the build. Should be +set to `1`. -: Optional. The maximum number of personal access tokens a user can - create. The default value is 10. +`DJANGO_DEBUG` +Controls `DEBUG` mode for the site. Should be set to +`False` in production. -`PRETRANSLATION_API_MAX_CHARS` +`DJANGO_DEBUG_TOOLBAR` +Enables Django Debug Toolbar (default: `False`). `DJANGO_DEV` must be +set to `True`. -: Optional. Specifies the maximum length of input text allowed for - pretranslation API. The default value is 2048. +`DJANGO_DEV` +Signifies whether this is a development server or not. Should be +`False` in production. Adds some additional +django apps that can be helpful during day to day development. -`PROJECT_MANAGERS` +`EMAIL_HOST` +SMTP host (default: `smtp.sendgrid.net`). -: Optional. A list of project manager email addresses to send project - requests to +`EMAIL_HOST_PASSWORD` +Password for the SMTP connection. -`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION` +`EMAIL_HOST_USER` +Username for the SMTP connection (default: `apikey`). -: Required. Must be set to `python`. Needed for Google AutoML - Translation. Learn more on [Protocol Buffers - Homepage](https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates). - -`SECRET_KEY` - -: Required. Secret key used for sessions, cryptographic signing, etc. - -`SITE_URL` - -: Controls the base URL for the site, including the protocol and port. - Defaults to `http://localhost:8000`, should always be set in - production. - -`ALLOWED_HOSTS` - -: A list of strings representing the host/domain names the site can - serve. Defaults to `.localhost, 127.0.0.1, [::1]`, should always be - set in production. - -`SECURE_SSL_REDIRECT` - -: Optional. If True, redirects all non-HTTPS requests to HTTPS. - Default value is [True]{.title-ref}. Learn more in the [Django - documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#secure-ssl-redirect). - -`CSRF_TRUSTED_ORIGINS` - -: Optional. A comma-separated list of trusted origins for unsafe - requests. It should contain the domains where the app is available. - The setting also supports subdomains, so you could add - `https://*.example.com`, for example, to allow access from all - subdomains of `example.com`. Default value is an empty string. Learn - more in the [Django - documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins). - -`SSH_CONFIG` - -: Contents of the `~/.ssh/config` file used when Pontoon connects to - VCS servers via SSH. Used for disabling strict key checking and - setting the default user for SSH. For example: - - StrictHostKeyChecking=no - - Host hg.mozilla.org - User pontoon@mozilla.com - -`SSH_KEY` - -: SSH private key to use for authentication when Pontoon connects to - VCS servers via SSH. - -::: note -::: title -Note -::: - -Changing the `SSH_CONFIG` or `SSH_KEY` environment variables *requires* -a rebuild of the site, as these settings are only used at build time. -Simply changing them will not actually update the site until the next -build. - -The [Heroku Repo]() plugin includes a rebuild command that is handy for -triggering builds without making code changes. -::: - -::: note -::: title -Note -::: - -Some environment variables, such as the SSH-related ones, may contain -newlines. The easiest way to set these is using the `heroku` -command-line tool to pass the contents of an existing file to them: - -``` bash -heroku config:set SSH_KEY="`cat /path/to/key_rsa`" -``` -::: - -`STATIC_HOST` - -: Optional. Hostname to prepend to static resources paths. Useful for - serving static files from a CDN. Example: `//asdf.cloudfront.net`. - -`SUGGESTION_NOTIFICATIONS_DAY` - -: Optional. Integer representing a day of the week on which the - [send_suggestion_notifications]{.title-ref} management command will - run. 0 represents Monday, 6 represents Sunday. The default value is - 4 (Friday). - -`SYNC_TASK_TIMEOUT` - -: Optional. Multiple sync tasks for the same project cannot run - concurrently to prevent potential DB and VCS inconsistencies. We - store the information about the running task in cache and clear it - after the task completes. In case of an error, we might never clear - the cache, so we use SYNC_TASK_TIMEOUT as the longest possible - period after which the cache is cleared and the subsequent task can - run. The value should exceed the longest sync task of the instance. - The default value is 3600 seconds (1 hour). - -`SYSTRAN_TRANSLATE_API_KEY` - -: Optional. Set your [SYSTRAN Translate API key]{.title-ref} to use - machine translation by SYSTRAN. - -`TBX_DESCRIPTION` - -: Optional. Description to be used in the header of the Terminology - (.TBX) files. - -`TBX_TITLE` - -: Optional. Title to be used in the header of the Terminology (.TBX) - files. - -`THROTTLE_ENABLED` - -: Optional. Enables traffic throttling based on IP address (default: - `False`). - -`THROTTLE_MAX_COUNT` - -: Optional. Maximum number of requests allowed in - `THROTTLE_OBSERVATION_PERIOD` (default: `300`). - -`THROTTLE_OBSERVATION_PERIOD` - -: Optional. A period (in seconds) in which `THROTTLE_MAX_COUNT` - requests are allowed. (default: `60`). If longer than - `THROTTLE_BLOCK_DURATION`, `THROTTLE_BLOCK_DURATION` will be used. - -`THROTTLE_BLOCK_DURATION` - -: Optional. A duration (in seconds) for which IPs are blocked - (default: `600`). - -`TZ` - -: Timezone for the dynos that will run the app. Pontoon operates in - UTC, so set this to `UTC`. - -`VCS_SYNC_NAME` - -: Optional. Default committer\'s name used when committing - translations to version control system. - -`VCS_SYNC_EMAIL` - -: Optional. Default committer\'s email used when committing - translations to version control system. - -# Add-ons - -Pontoon is designed to run with the following add-ons enabled: - -- Database: Heroku Postgres -- Log Management: Papertrail -- Email: Sendgrid -- Scheduled Jobs: Heroku Scheduler -- Cache: Memcachier -- RabbitMQ: CloudAMQP - -It\'s possible to run with the free tiers of all of these add-ons, but -it is recommended that, at a minimum, you run the \"Standard 0\" tier of -Postgres. - -## SendGrid Add-on - -Pontoon uses [SendGrid](https://devcenter.heroku.com/articles/sendgrid), -which expects the following environment variable: - -`SENDGRID_PASSWORD` - -: Use SendGrid API key. - -## Cache Add-on - -Pontoon uses -[django-bmemcached](https://github.com/jaysonsantos/python-binary-memcached), -which expects the following environment variables from the cache add-on: - -`MEMCACHE_SERVERS` - -: Semi-colon separated list of memcache server addresses. - -`MEMCACHE_USERNAME` - -: Username to use for authentication. - -`MEMCACHE_PASSWORD` - -: Password to use for authentication. - -::: note -::: title -Note -::: - -By default, the environment variables added by Memcachier are prefixed -with `MEMCACHIER` instead of `MEMCACHE`. You can \"attach\" the -configuration variables with the correct prefix using the -`addons:attach` command: - -``` bash -heroku addons:attach resource_name --as MEMCACHE -``` - -Replace `resource_name` with the name of the resource provided by the -cache addon you wish to use, such as `memcachier:100`. Use the -`heroku addons` command to see a list of resource names that are -available. -::: - -## RabbitMQ Add-on - -Similar to the cache add-ons, Pontoon expects environment variables from -the RabbitMQ add-on: - -`RABBITMQ_URL` - -: URL for connecting to the RabbitMQ server. This should be in the - format for Celery\'s - [BROKER_URL](https://docs.celeryq.dev/en/stable/userguide/configuration.html#broker-url) - setting. - -::: note -::: title -Note -::: - -Again, you must attach the resource for RabbitMQ as `RABBITMQ`. See the -note in the Cache Add-ons section for details. -::: - -# Scheduled Jobs +`EMAIL_PORT` +SMTP port (default: `587`). + +`EMAIL_USE_TLS` +Use explicit TLS for the SMTP connection (default: `True`). + +`EMAIL_USE_SSL` +Use implicit TLS for the SMTP connection (default: `False`). + +`EMAIL_CONSENT_ENABLED` +Optional. Enables Email consent page (default: `False`). + +`EMAIL_CONSENT_TITLE` +Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Title of the Email +consent page. + +`EMAIL_CONSENT_MAIN_TEXT` +Optional, unless `EMAIL_CONSENT_ENABLED` is `True`. Main text of the +Email consent page. You can use that to explain what type of +communication to expect among other things. + +`EMAIL_CONSENT_PRIVACY_NOTICE` +Optional. Privacy notice on the Email consent page. It's possible to use +HTML and link to external privacy notice page. + +`EMAIL_COMMUNICATIONS_HELP_TEXT` +Optional. Help text to use under the Email communications checkbox in +user settings. It allows to explain what type of communication to expect +and to link to deployment-specific privacy notices among other things. + +`EMAIL_COMMUNICATIONS_FOOTER_PRE_TEXT` +Optional. Text to be shown in the footer of the non-transactional emails +sent using the Messaging Center, just above the unsubscribe text. + +`EMAIL_MONTHLY_ACTIVITY_SUMMARY_INTRO` +Optional. Custom text to be shown in the Monthly activity summary emails +after the greeting and before the stats. + +`ENABLE_BUGS_TAB` +Optional. Enables Bugs tab on team pages, which pulls team data from +bugzilla.mozilla.org. Specific for Mozilla deployments. + +`ENABLE_INSIGHTS` +Optional. Enables Insights pages, which present data that needs to be +collected by the [Collect Insights](#collect-insights) scheduled job. It is advised to run +the job at least once before enabling the tab, otherwise the content +will be empty. See [the +spec](https://github.com/mozilla/pontoon/blob/HEAD/specs/0108-community-health-dashboard.md) +for more information. + +`GOOGLE_ANALYTICS_KEY` +Optional. Set your [Google Analytics +key](https://www.google.com/analytics/) to use Google Analytics. + +`GOOGLE_TRANSLATE_API_KEY` +Optional. Set your [Google Cloud Translation +API](https://cloud.google.com/translate/) key to use generic machine +translation engine by Google. + +`GOOGLE_AUTOML_PROJECT_ID` +Optional. Set your [Google Cloud AutoML +Translation](https://cloud.google.com/translate/) model ID to use custom +machine translation engine by Google. + +`GOOGLE_APPLICATION_CREDENTIALS` +Optional. Path to a Google Cloud service account JSON key file used by +Google client libraries for authentication. + +`INACTIVE_CONTRIBUTOR_PERIOD` +Optional. Number of months in which the contributor needs to log in in +order not to receive the inactive account email. The default value is 6. + +`INACTIVE_TRANSLATOR_PERIOD` +Optional. Number of months in which the locale translator needs to +submit or review at least one translation in order not to receive the +inactive account email. The default value is 2. + +`INACTIVE_MANAGER_PERIOD` +Optional. Number of months in which the locale manager needs to submit +or review at least one translation in order not to receive the inactive +account email. The default value is 2. + +`LOG_TO_FILE` +Optional. Enables logging to a file (default: `False`). This is useful +for retaining log data for later analysis or troubleshooting. + +`MANUAL_SYNC` +Optional. Enable Sync button in project Admin. + +`MEDIA_ROOT` +Optional. The absolute path of the "media" folder the projects will be +cloned into (it is located next to the "pontoon" Python module by +default). + +`MICROSOFT_TRANSLATOR_API_KEY` +Optional. Set your [Microsoft Translator +API](http://msdn.microsoft.com/en-us/library/hh454950) key to use +machine translation by Microsoft. + +`MONTHLY_ACTIVITY_SUMMARY_DAY` +Optional. Integer representing a day of the month on which the Monthly +activity summary emails will be sent. 1 represents the first day of the +month. The default value is 1. + +`NEW_RELIC_API_KEY` +Optional. API key for accessing the New Relic REST API. Used to mark +deploys on New Relic. + +`NEW_RELIC_APP_NAME` +Optional. Name to give to this app on New Relic. Required if you're +using New Relic. + +`NOTIFICATION_DIGEST_DAY` +Optional. Integer representing a day of the week on which the weekly +notification digest email will be sent. 0 represents Monday, 6 +represents Sunday. The default value is 4 (Friday). + +`ONBOARDING_EMAIL_2_DELAY` +Optional. The number of days to wait after user registration before +sending the 2nd onboarding email. The default value is 2. + +`ONBOARDING_EMAIL_3_DELAY` +Optional. The number of days to wait after user registration before +sending the 3rd onboarding email. The default value is 7. + +`OPENAI_API_KEY` +Optional. Set your `OpenAI API` key to add +the ability to refine machine translations using ChatGPT. + +`PERSONAL_ACCESS_TOKEN_MAX_COUNT` +Optional. The maximum number of personal access tokens a user can +create. The default value is 10. + +`PRETRANSLATION_API_MAX_CHARS` +Optional. Specifies the maximum length of input text allowed for +pretranslation API. The default value is 2048. + +`PROJECT_MANAGERS` +Optional. A list of project manager email addresses to send project +requests to + +`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION` +Required. Must be set to `python`. Needed for Google AutoML Translation. +Learn more on [Protocol Buffers +Homepage](https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates). + +`SECRET_KEY` +Required. Secret key used for sessions, cryptographic signing, etc. + +`SITE_URL` +Controls the base URL for the site, including the protocol and port. +Defaults to `http://localhost:8000`, should always be set in production. + +`ALLOWED_HOSTS` +A list of strings representing the host/domain names the site can serve. +Defaults to `.localhost, 127.0.0.1, [::1]`, should always be set in +production. + +`SECURE_SSL_REDIRECT` +Optional. If True, redirects all non-HTTPS requests to HTTPS. Default +value is `True`. Learn more in the [Django +documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#secure-ssl-redirect). + +`CSRF_TRUSTED_ORIGINS` +Optional. A comma-separated list of trusted origins for unsafe requests. +It should contain the domains where the app is available. The setting +also supports subdomains, so you could add `https://*.example.com`, for +example, to allow access from all subdomains of `example.com`. Default +value is an empty string. Learn more in the [Django +documentation](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins). + +`SSH_CONFIG` +Contents of the `~/.ssh/config` file used when Pontoon connects to VCS +servers via SSH. Used for disabling strict key checking and setting the +default user for SSH. For example: + + StrictHostKeyChecking=no + + Host hg.mozilla.org + User pontoon@mozilla.com + +`SSH_KEY` +SSH private key to use for authentication when Pontoon connects to VCS +servers via SSH. + +`STATIC_HOST` +Optional. Hostname to prepend to static resources paths. Useful for +serving static files from a CDN. Example: `//asdf.cloudfront.net`. + +`SUGGESTION_NOTIFICATIONS_DAY` +Optional. Integer representing a day of the week on which the +`send_suggestion_notifications` management +command will run. 0 represents Monday, 6 represents Sunday. The default +value is 4 (Friday). + +`SYNC_TASK_TIMEOUT` +Optional. Multiple sync tasks for the same project cannot run +concurrently to prevent potential DB and VCS inconsistencies. We store +the information about the running task in cache and clear it after the +task completes. In case of an error, we might never clear the cache, so +we use SYNC_TASK_TIMEOUT as the longest possible period after which the +cache is cleared and the subsequent task can run. The value should +exceed the longest sync task of the instance. The default value is 3600 +seconds (1 hour). + +`SYSTRAN_TRANSLATE_API_KEY` +Optional. Set your [Systran Translate](https://auth.systran.net/oidc/interaction/OcxBMUAbEIkN6tIg1yIcp) API key to use machine translation by Systran. + +`TBX_DESCRIPTION` +Optional. Description to be used in the header of the Terminology (`.TBX`) +files. + +`TBX_TITLE` +Optional. Title to be used in the header of the Terminology (`.TBX`) +files. + +`THROTTLE_ENABLED` +Optional. Enables traffic throttling based on IP address (default: +`False`). + +`THROTTLE_MAX_COUNT` +Optional. Maximum number of requests allowed in +`THROTTLE_OBSERVATION_PERIOD` (default: `300`). + +`THROTTLE_OBSERVATION_PERIOD` +Optional. A period (in seconds) in which `THROTTLE_MAX_COUNT` requests +are allowed. (default: `60`). If longer than `THROTTLE_BLOCK_DURATION`, +`THROTTLE_BLOCK_DURATION` will be used. + +`THROTTLE_BLOCK_DURATION` +Optional. A duration (in seconds) for which IPs are blocked (default: +`600`). + +`TZ` +Timezone for the dynos that will run the app. Pontoon operates in UTC, +so set this to `UTC`. + +`VCS_SYNC_NAME` +Optional. Default committer's name used when committing translations to +version control system. + +`VCS_SYNC_EMAIL` +Optional. Default committer's email used when committing translations to +version control system. + +## Scheduled Jobs Pontoon requires several scheduled jobs to run regularly. -## Sync Projects +### Sync Projects While internal Pontoon DB can be used for storing localizable strings, Pontoon specializes in using version control systems for that purpose. -If you choose this option as well, you\'ll need to run the following +If you choose this option as well, you'll need to run the following scheduled job: ``` bash ./manage.py sync_projects ``` -It\'s recommended to run this job at least once an hour. It commits any +It's recommended to run this job at least once an hour. It commits any string changes in the database to the remote VCS servers associated with each project, and pulls down the latest changes to keep the database in sync. The command supports the following options: -- `--force` \-- Consider all version control repository files to have - changed. -- `--no-pull` \-- Do not pull new changes for version control - repositories. -- `--no-commit` \-- Do not commit and push any new changes to version - control. +- `--force` -- Consider all version control repository files to have + changed. +- `--no-pull` -- Do not pull new changes for version control + repositories. +- `--no-commit` -- Do not commit and push any new changes to version + control. -## Send Deadline Notifications +### Send Deadline Notifications Pontoon allows you to set deadlines for projects. This job sends deadline reminders to contributors of projects when they are due in 7 -days. If 2 days before the deadline project still isn\'t complete for -the contributor\'s locale, notifications are sent again. The command is +days. If 2 days before the deadline project still isn't complete for the +contributor's locale, notifications are sent again. The command is designed to run daily. ``` bash ./manage.py send_deadline_notifications ``` -## Send Suggestion Notifications +### Send Suggestion Notifications This job sends notifications about newly created unreviewed suggestions that were submitted, unapproved or unrejected in the last 7 days. @@ -657,7 +393,7 @@ string. The command is designed to run on a weekly basis. ./manage.py send_suggestion_notifications ``` -## Send Review Notifications +### Send Review Notifications This job sends notifications about newly reviewed (approved or rejected) suggestions to the authors of those suggestions. The command is designed @@ -667,7 +403,7 @@ to run on a daily basis. ./manage.py send_review_notifications ``` -## Send Notification Emails +### Send Notification Emails This job sends notifications in daily and weekly email digests. Daily notifications are sent every time the command runs, while weekly @@ -677,17 +413,17 @@ notifications are sent only on the configured day (e.g., Friday). ./manage.py send_notification_emails ``` -## Send Monthly Activity Emails +### Send Monthly Activity Emails This job sends a summary of monthly activity to users via email. It is designed to run on a specific day of the month but can be forced to run -at any time using the \--force argument. +at any time using the `--force` option. ``` bash ./manage.py send_monthly_activity_emails ``` -## Send Onboarding Emails +### Send Onboarding Emails Pontoon sends onboarding emails to new users. The first one is sent upon registration, while this job sends the 2nd and 3rd email. You can @@ -698,7 +434,7 @@ emails. The command is designed to run daily. ./manage.py send_onboarding_emails ``` -## Send Inactive Account Emails +### Send Inactive Account Emails This command sends reminder emails to inactive users. Users in different roles get different emails based on different activity criteria, which @@ -708,7 +444,7 @@ can be configured in settings. The command is designed to run daily. ./manage.py send_inactive_account_emails ``` -## Collect Insights +### Collect Insights The Insights tab in the dashboards presents data that cannot be retrieved from the existing data models efficiently upon each request. @@ -720,10 +456,10 @@ the day, every day. ./manage.py collect_insights ``` -## Warm up cache +### Warm up cache We cache data for some of the views (e.g. Contributors) for a day. Some -of them don\'t get a lot of visits, not even one per day, meaning that +of them don't get a lot of visits, not even one per day, meaning that the visitors of these pages often hit the cold cache. We use this job to refresh data in the cache every day, because it changes often. The command is designed to run daily. @@ -732,23 +468,23 @@ command is designed to run daily. ./manage.py warmup_cache ``` -## Clearing the session store +### Clearing the session store When a user logs in, Django adds a row to the `django_session` database table. If the user logs out manually, Django deletes the row. But if the user does not log out, the row never gets deleted. Django does not provide automatic purging of expired sessions. -Therefore, it's your job to purge expired sessions on a regular basis. +Therefore, it’s your job to purge expired sessions on a regular basis. Django provides a clean-up management command for this purpose: -`clearsessions`. It's recommended to run this command as a daily cron +`clearsessions`. It’s recommended to run this command as a daily cron job. ``` bash ./manage.py clearsessions ``` -## Sync Log Retention +### Sync Log Retention You may also optionally run the `clear_old_sync_logs` management command on a schedule to remove sync logs from the database that are over 90 @@ -757,53 +493,3 @@ days old: ``` bash ./manage.py clear_old_sync_logs ``` - -## Provisioning Workers - -Pontoon executes scheduled jobs using -[Celery](http://www.celeryproject.org/). These jobs are handled by the -`worker` process type. You\'ll need to manually provision workers based -on how many projects you plan to support and how complex they are. At a -minimum, you\'ll want to provision at least one `worker` dyno: - -``` bash -heroku ps:scale worker=1 -``` - -# Database Migrations - -After deploying Pontoon for the first time, you must run the database -migrations. This can be done via the toolbelt: - -``` bash -heroku run ./manage.py migrate -``` - -# Creating an Admin User - -After deploying the site, you can create a superuser account using the -`createsuperuser` management command: - -``` bash -heroku run ./manage.py createsuperuser --user=admin --email=your@email.com -``` - -You\'ll then be prompted to set a password for your new user. - -If you\'ve already logged into the site with the email that you want to -use, you\'ll have to use the Django shell to mark your user account as -an admin: - -``` bash -heroku run ./manage.py shell -# Connection and Python info... ->>> from django.contrib.auth.models import User ->>> user = User.objects.get(email='your@email.com') ->>> user.is_staff = True ->>> user.is_superuser = True ->>> user.save() ->>> exit() -``` - -And with that, you\'re ready to start -`../user/localizing-your-projects`{.interpreted-text role="doc"}! diff --git a/documentation/docs/dev/feature-development-process.md b/documentation/docs/dev/feature-development-process.md index 25a9c22784..5dda87cd52 100644 --- a/documentation/docs/dev/feature-development-process.md +++ b/documentation/docs/dev/feature-development-process.md @@ -5,108 +5,107 @@ structured yet flexible process. The goal is to ensure high-quality, well-considered contributions that align with project priorities and community needs. -::: {.contents depth="1" local=""} -Table of Contents -::: - -## Propose the Idea (Filing an Issue) +## Propose the Idea Anyone can suggest improvements: new features, enhancements to existing ones, or feature removals. -- For trivial changes (typos, minor bugfixes), a pull request (PR) - alone may suffice---no dedicated issue required. -- For anything non-trivial, create a GitHub issue in the - mozilla/pontoon repository. - - Clearly describe the problem/opportunity. - - Explain the motivation, expected impact, and user value. - - Include relevant context (screenshots, use cases, alternatives - considered). +- For trivial changes (typos, minor bugfixes), a pull request (PR) alone + may suffice—no dedicated issue required. +- For anything non-trivial, [create a GitHub issue](https://github.com/mozilla/pontoon/issues/new): + + - Clearly describe the problem/opportunity. + - Explain the motivation, expected impact, and user value. + - Include relevant context (screenshots, use cases, alternatives considered). ## Triage Core maintainers review new issues and perform triage on a weekly basis to assign: -- Type: Bug, Feature, Task. -- Priority label: P1 (must be fixed immediately) to P5 (valid bug, but - you might need to fix it). -- Labels such as "needs specification" or "needs documentation" if - required. -- Labels for rough time estimate: hours, days, weeks, months, - quarters. +- Type: Bug, Feature, Task. +- Priority label: P1 (must be fixed immediately) to P5 (valid bug, but + you might need to fix it). +- Labels such as `needs specification` or `needs documentation` if + required. +- Labels for rough time estimate: hours, days, weeks, months, quarters. -The issue is added to the Pontoon Roadmap GitHub project: +The issue is added to the [Pontoon Roadmap GitHub project](https://github.com/orgs/mozilla/projects/220): -- Initially placed in "Needs triage". -- Moved to "Ready" once actionable. -- Kept in "Not ready yet" if more discussion or a spec is needed. -- High-priority items ready for near-term work move to the top of the - "Ready" column. -- Larger initiatives (estimated to take months or quarters) are always - kept in the \"Not ready\" column before they are split into smaller - issues. +- Initially placed in “Needs triage”. +- Moved to “Ready” once actionable. +- Kept in “Not ready yet” if more discussion or a spec is needed. +- High-priority items ready for near-term work move to the top of the + “Ready” column. +- Larger initiatives (estimated to take months or quarters) are always + kept in the "Not ready" column before they are split into smaller + issues. -## Specification (Recommended for Larger Features) +## Specification For medium-to-large features (those affecting UX flows, data models, multiple areas, or needing community consensus): -- Draft a specification document in Markdown format and submit it as a - PR to the [specs/]{.title-ref} folder. -- Follow the structure seen in existing specs (problem statement, - goals, user stories, proposed solution, impacted areas, risks, - alternatives, migration plan if applicable). -- Get feedback and approval from core team members. +- Draft a specification document in Markdown format and submit it as a + PR to the `specs/` folder. +- Follow the structure seen in the [template](https://github.com/mozilla/pontoon/blob/main/specs/0000-template.md) and the existing specs (problem statement, goals, user stories, + proposed solution, impacted areas, risks, alternatives, migration plan + if applicable). +- Get feedback and approval from core team members. For larger specs, + it is advisable to use Google Docs for the authoring and review phase, + then export the spec as Markdown and publish it in the repository. + +Once approved, remove any `needs specification` label and move the issue +to “Ready” on the Roadmap. -Once approved, remove any "needs specification" label and move the issue -to "Ready" on the Roadmap. +## Implementation -## Implementation (Writing Code) +- When ready to begin, assign yourself or get assigned to the issue. +- The issue will then move to “In Progress” on the Roadmap. +- Work in a feature branch. +- Deliver: -- When ready to begin, assign yourself or get assigned to the issue. -- The issue will then move to "In Progress" on the Roadmap. -- Work in a feature branch. -- Deliver: - - Clean, complete code. - - Unit and integration tests with good coverage. - - Any necessary database migrations or data changes. + - Clean, complete code. + - Unit and integration tests with good coverage. + - Any necessary database migrations or data changes. ## Code Review -- Open a pull request targeting the "main" branch. -- Make sure CI tests pass. -- Review is requested from core Pontoon team members. -- Address feedback on code quality, security, performance, test - coverage, and best practices. -- Once approved, the PR is merged. -- The associated issue is automatically closed and moved to "Done" on - the Roadmap. +- Open a pull request targeting the “main” branch. +- Make sure CI tests pass. +- Review is requested from core Pontoon team members. +- Address feedback on code quality, security, performance, test + coverage, and best practices. +- Once approved, the PR is merged. +- The associated issue is automatically closed and moved to “Done” on + the Roadmap. ## Testing -- The contributor is primarily responsible for thorough testing. -- Verify the feature behaves as intended. -- Check for regressions. -- For larger features, perform extensive testing in the development - environment during/after review. -- Core team may run additional testing. +The contributor is primarily responsible for thorough testing. + +- Verify the feature behaves as intended. +- Check for regressions. +- For larger features, perform extensive testing in the development + environment during/after review. +- Core team may run additional testing. ## Release -- Features are first deployed to the [development - environments](https://pontoon.allizom.org/) for final validation. -- Once confirmed stable, they go live on production. -- Deployments are handled by core maintainers and occur as changes are - ready (typically immediately after, no strict cadence). - -## Documentation & Discoverability (as Needed) - -- If labeled "needs documentation" or if the change affects users - noticeably: - - Update or add content in the Pontoon documentation for - localizers. -- For major or high-impact features: - - Core team may add in-app announcements. - - The contributor might write a blog post on the [Mozilla L10n - blog](https://blog.mozilla.org/l10n/). +Deployments are handled by core maintainers and occur as changes are ready (typically immediately after, no strict cadence). + +- Features are first deployed to the [development + environment](https://pontoon.allizom.org/) for final validation. +- Once confirmed stable, they go live on production. + +## Documentation & Discoverability + +If labeled `needs documentation` or if the change affects users noticeably: + + - Update or add content in the Pontoon documentation. + +For major or high-impact features: + + - Core team may add in-app announcements. + - The contributor might write a blog post on the [Mozilla L10n + blog](https://blog.mozilla.org/l10n/). diff --git a/documentation/docs/dev/first-contribution.md b/documentation/docs/dev/first-contribution.md index d8b3639e64..7e1f5fc569 100644 --- a/documentation/docs/dev/first-contribution.md +++ b/documentation/docs/dev/first-contribution.md @@ -1,19 +1,15 @@ ---- -title: The Guide to your First Contribution to Pontoon ---- - -Welcome to Pontoon! +# The Guide to your First Contribution This document is going to guide you as you discover Pontoon and make valuable contributions. It will walk you step by step until you are in a position to write code that you can reliably run, test, and send for review. -# 1. Make sure it\'s a good match +## 1. Make sure it's a good match -*Before contributing to an open source project, it is important to make +Before contributing to an open source project, it is important to make sure that the project uses technologies that you know and want to learn -more about.* +more about. Pontoon is a web application, with both back-end and front-end code. The two languages we use are **Python** (back-end) and **JavaScript** @@ -26,35 +22,29 @@ We use **git** to version our code, and we use **GitHub** to handle pull requests and code reviews. Basic knowledge of git is required to be able to send your contributions our way. - ------------------------------------------------------ - Skill Expected Level Notes - -------------- ------------------- ------------------- - git Basic knowledge - - Python Some experience Python 3 - - Django Basic knowledge - - JavaScript Some experience ECMAScript 2018 +| Skill | Expected Level | Notes | +|------------|-----------------|-----------------| +| git | Basic knowledge | | +| Python | Some experience | Python 3 | +| Django | Basic knowledge | | +| JavaScript | Some experience | ECMAScript 2018 | +| React | Basic knowledge | | - React Basic knowledge - ------------------------------------------------------ +## 2. Install Pontoon -# 2. Install Pontoon +In order to be able to contribute code to an open source project, you +first need to be able to run that project on your computer. -*In order to be able to contribute code to an open source project, you -first need to be able to run that project on your computer.* - -The recommended method of installing Pontoon is using `docker` and our +The recommended method of installing Pontoon is using Docker and our scripts. It is straightforward if your computer is running with Linux or -macOS, and a tad more difficult for Windows. In all cases, follow the -instructions in our `setup`{.interpreted-text role="doc"} page. +macOS, and a tad more difficult for Windows. In any case, follow the +instructions in our [Setup page](setup.md). -# 3. Populate your database +## 3. Populate your database -*After installing a tool, it is likely that its database is empty. You +After installing a tool, it is likely that its database is empty. You will need to create some data in order to have things show up in the -interface.* +interface. Once Pontoon is installed and you have it running, you will want to create some data so that you can play with it, and test it in action. @@ -66,28 +56,27 @@ instance: 1. Log in to your local instance with the superuser account you created during the previous step. 2. Click the avatar in the top-right corner, and in the menu click - \"Admin\". + "Admin". 3. You will see the Admin panel, with a table of projects that will - likely be empty. Click the \"Add New Project\" button. + likely be empty. Click the "Add New Project" button. 4. Fill the project creation form as follows: - 1. Name: Pontoon Test - 2. Slug (auto-filled): pontoon-test - 3. Locales: select Slovenian (sl), then add any locales you want - 4. Repositories - URL: - + * **Name**: Pontoon Test + * **Slug** (auto-filled): pontoon-test + * **Locales**: select Slovenian (sl), then add any locales you want + * **Repositories -> URL**: 5. Leave the rest as it is, then scroll to the bottom of the page, and - click the \"Save Project\" button. + click the "Save Project" button. 6. Once the project is saved, scroll to the bottom of the page again, - and click the \"Sync\" button. This will pull the data from the + and click the "Sync" button. This will pull the data from the repository, and create entries for each of the locales you have enabled. -7. And that\'s it! You should now have a project enabled for some - locale. +7. And that's it! You should now have a project enabled for some + locales. -# 4. Verify your setup +## 4. Verify your setup -*Setting up a project means more than installing it: it also means -making sure that the tool runs and that tests pass.* +Setting up a project means more than installing it: it also means +making sure that the tool runs and that tests pass. Once you have successfully installed and populated Pontoon on your computer, you will need to make a few verifications. First and foremost, @@ -104,11 +93,11 @@ the command `make test`. When you have successfully verified that your setup works correctly, you can safely move to the next part. -# 5. Choose an issue to work on +## 5. Choose an issue to work on -*You are now ready to make a contribution! Open source projects usually +You are now ready to make a contribution! Open source projects usually have a list of mentored issues that are appropriate to work on first, -and on which mentors will be available to help you.* +and on which mentors will be available to help you. Work that needs to be done on Pontoon is tracked in [GitHub](https://github.com/mozilla/pontoon/issues), where we maintain a @@ -118,50 +107,44 @@ issues](https://github.com/mozilla/pontoon/issues?q=is%3Aopen+is%3Aissue+label%3 Look through that list for unassigned issues, choose one that is appealing to you and seems appropriate for your skill set, then comment on that issue asking to be assigned to it. Feel free to start working on -it right away --- even if you end up not being assigned for some reason, +it right away — even if you end up not being assigned for some reason, it will still be a good experience for you. -# 6. Read the contributing rules +## 6. Read the contributing rules -*Most projects have strict contributing rules, and your contributions -risk not being accepted if you don\'t respect them.* +Most projects have strict contributing rules, and your contributions +risk not being accepted if you don't respect them. -To make developer\'s lives easier, we enforce a few contribution rules +To make developer's lives easier, we enforce a few contribution rules around Pontoon. They range from how to style your code to how to write -commit messages. All these rules are written in our -`contributing`{.interpreted-text role="doc"} page. Please read it before -opening a pull request! +commit messages. All these rules are written in our [Contributing Guidelines](contributing.md). +Please read it before opening a pull request! There is more documentation around Pontoon, and it is often worth reading it, if only to understand better how the tool works and how and where to make your contributions. Here are a few links to important documentation resources: -- If you want to work on the front-end, it is important that you read - the [Front-End - Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). -- Most of the documentation around installing and developing can be - found in [Pontoon\'s - Documentation](https://mozilla-pontoon.readthedocs.io/en/latest/). -- For documentation about using Pontoon to localize, see [How to use - Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/). -- For documentation about exposing a project on Pontoon, see [How to - localize your - projects](https://mozilla-pontoon.readthedocs.io/en/latest/user/localizing-your-projects.html). -- For documentation about managing communities in Pontoon, see - [Working with - Pontoon](https://mozilla-l10n.github.io/documentation/tools/pontoon/). - -# 7. Communicate with us - -*Open source projects are usually built around a community of people. +- If you want to work on the front-end, it is important that you read + the [Front-End + Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). +- Most of the documentation around installing and developing can be + found in the [Developer Guide](index.md). +- For documentation about using Pontoon to localize, see the [Localizer Guide](../localizer/index.md). +- For documentation about making a project localizable on Pontoon, see [Localizing your projects](localizing-your-projects.md). +- For documentation about managing projects, locales and users, see the [Admin Guide](../admin/index.md). + +## 7. Communicate with us + +Open source projects are usually built around a community of people. Communicating with that community is an important part of contributing -to such projects.* +to such projects. -There are two main places where we communicate about Pontoon\'s +There are two main places where we communicate about Pontoon's development. The first one is [chat.mozilla.org](https://chat.mozilla.org/), used for real-time chat, -quick questions, side-track conversations, etc. Find us in the [#pontoon +quick questions, side-track conversations, etc. Find us in the +[#pontoon channel](https://chat.mozilla.org/#/room/#pontoon:mozilla.org). The second is [GitHub @@ -172,16 +155,11 @@ These are both places that we strongly encourage you to join, and they are where you should introduce yourself, ask questions, show your work, etc. -Pontoon\'s core developer team is currently composed of Matjaž and +Pontoon's core developer team is currently composed of Matjaž and Eemeli. We also regularly receive invaluable help from community members. - ------------------------------------------------------------------------------------------------------------------------------------------------------------ - Name ROLE chat.mozilla.org github - --------------------------------------------------------------------- -------- --------------- ------------------ ------------------------------------------ - ![image0](https://avatars2.githubusercontent.com/u/626716?s=32&v=4) Matjaž Pontoon Core mathjazz [mathjazz](https://github.com/mathjazz/) - Developer - - ![image1](https://avatars3.githubusercontent.com/u/617000?s=32&v=4) Eemeli Pontoon Core eemeli [eemeli](https://github.com/eemeli/) - Developer - ------------------------------------------------------------------------------------------------------------------------------------------------------------ +| | Name | ROLE | chat.mozilla.org | github | +|---------------------------------------------------------------------|--------|------------------------|------------------|------------------------------------------| +| ![image0](https://avatars2.githubusercontent.com/u/626716?s=32&v=4) | Matjaž | Pontoon Core Developer | mathjazz | [mathjazz](https://github.com/mathjazz/) | +| ![image1](https://avatars3.githubusercontent.com/u/617000?s=32&v=4) | Eemeli | Pontoon Core Developer | eemeli | [eemeli](https://github.com/eemeli/) | diff --git a/documentation/docs/dev/index.md b/documentation/docs/dev/index.md index f8430fd27b..1063488c37 100644 --- a/documentation/docs/dev/index.md +++ b/documentation/docs/dev/index.md @@ -1,52 +1,37 @@ # Developer Guide -[Pontoon](https://github.com/mozilla/pontoon) is a translation -management system used and developed by the Mozilla localization -community. It can handle any project that uses one of the supported file -formats: - -- .dtd -- .ftl (Fluent) -- .ini -- .json (WebExtensions) -- .json (key-value) -- .po (Gettext) -- .properties -- .xliff -- .xml (Android) - -Pontoon pulls strings it needs to translate from an external source and -writes them back periodically. Typically these external sources are -version control repositories that store the strings for an application. -Supported external sources are **Git** and **Mercurial** repositories. - -## Contributing - -If you are interested in contributing to Pontoon\'s code, start with -`dev/first-contribution`{.interpreted-text role="doc"}. - -## Deploying - -If you want to deploy your own instance of Pontoon, read the -`admin/deployment`{.interpreted-text role="doc"} section. - -Once you have a running instance, you will likely want to learn about -`user/localizing-your-projects`{.interpreted-text role="doc"}, and then -dive into [management -tasks](https://mozilla-l10n.github.io/documentation/tools/pontoon/). - -## Localizing - -If you\'re looking for help on using Pontoon for localizing projects, -whether on Mozilla\'s instance or any other, you can read our [How to -use -Pontoon](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) -documentation. - -## Contents - -::: {.toctree maxdepth="2"} -dev/first-contribution dev/setup dev/contributing -dev/feature-development-process admin/deployment admin/maintenance -user/localizing-your-projects dev/setup-virtualenv -::: +This guide covers everything you need to know to contribute to, deploy and maintain Pontoon. + +## Sections + +
+ +- :material-rocket-launch: **[First Contribution](first-contribution.md)** + + Get started with contributing to Pontoon, including setting up your environment and submitting your first patch. + +- :material-tools: **[Setup](setup.md)** + + How to set up Pontoon for local development. + +- :material-code-braces: **[Contributing](contributing.md)** + + Guidelines and best practices for contributing code to Pontoon. + +- :material-source-branch: **[Feature Development Process](feature-development-process.md)** + + Overview of how new features are designed, developed, and reviewed. + +- :material-cloud-upload: **[Deployment](deployment.md)** + + Instructions for deploying Pontoon instances. + +- :material-cog: **[Maintenance](maintenance.md)** + + Routine maintenance tasks and responsibilities. + +- :material-translate: **[Localizing Your Projects](localizing-your-projects.md)** + + Learn how to integrate your project with Pontoon for localization. + +
diff --git a/documentation/docs/dev/localizing-your-projects.md b/documentation/docs/dev/localizing-your-projects.md index bfc59e2835..c1c20d90fe 100644 --- a/documentation/docs/dev/localizing-your-projects.md +++ b/documentation/docs/dev/localizing-your-projects.md @@ -1,6 +1,4 @@ ---- -title: Localizing your projects ---- +# Localizing your projects The following describes how to make your projects localizable with your Pontoon instance. @@ -10,13 +8,20 @@ store of localizable strings. While internal Pontoon DB can be used for that purpose as well, steps below assume you store strings in a [GitHub repository](https://help.github.com/en/articles/create-a-repo). -# Prerequisites +## Prerequisites Before you can set up a new project in Pontoon: -1. Ensure your project works with one of the - `supported l10n frameworks <../index>`{.interpreted-text - role="doc"}. +1. Ensure your project works with one of the supported l10n frameworks: + * `.dtd` + * `.ftl` (Fluent) + * `.ini` + * `.json` (WebExtensions) + * `.json` (key-value) + * `.po` (Gettext) + * `.properties` + * `.xliff` + * `.xml` (Android) 2. Extract localizable strings into resource files. @@ -24,21 +29,12 @@ Before you can set up a new project in Pontoon: 4. Make sure your Pontoon instance has write access to your repository. - ::: note - ::: title - Note - ::: +!!! tip "Tip" + The recommended way for that is to create a dedicated GitHub account for your Pontoon instance, [add it as a collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) to your repository, and set `SSH_KEY` and `SSH_CONFIG`. - The recommended way for that is to create a dedicated GitHub account - for your Pontoon instance, [add it as a - collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) - to your repository, and set `SSH_KEY` and `SSH_CONFIG` - `as documented <../admin/deployment>`{.interpreted-text role="doc"}. - ::: +## Folder structure -# Folder structure - -To let Pontoon discover your localizable files, you\'ll either need to +To let Pontoon discover your localizable files, you'll either need to specify paths in the [project configuration file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) or strictly follow the file and folder structure as expected by Pontoon: @@ -69,40 +65,34 @@ translated (these files may be initially empty). For all other supported formats, Pontoon will automatically add files for each locale when it is translated. -# Adding a new project to Pontoon +## Adding a new project to Pontoon When accessing your deployed app, your email address is your login in the Sign In page and your password is the one picked during setup. After -you log in, access Pontoon Admin (`/admin/`), click **ADD NEW PROJECT** +you log in, access Pontoon Admin (`/admin/`), click "Add new project" and fill out the following required fields: 1. **Name**: name of the project to be displayed throughout Pontoon app. The following project names are reserved: `Terminology`, `Tutorial`, `Pontoon Intro`. -2. **Slug**: used in URLs, will be generated automatically based on the +1. **Slug**: used in URLs, will be generated automatically from the Name. -3. **Locales**: select at least one Localizable locale by clicking on +1. **Locales**: select at least one Localizable locale by clicking on it. -4. **Repository URL**: enter your repository\'s SSH URL of the form +1. **Repository URL**: enter your repository's SSH URL of the form `git@github.com:user/repo.git`. -5. **Download prefix or path to TOML file**: a URL prefix for - downloading localized files. -6. Click **SAVE PROJECT** at the bottom of the page. -7. After the page reloads, click **SYNC** and wait for Pontoon to +1. Click "Save project" at the bottom of the page. +1. After the page reloads, click "Sync" and wait for Pontoon to import strings. You can monitor the progress in the Sync log - (`/sync/log/`). -8. When the synchronization is finished, you should check the imported + (`/sync/`). +1. When the synchronization is finished, you should check the imported resources and the entities. If everything went okay, you can proceed to the next step. -9. Go to the project\'s admin page and change the visibility option to - make the project public. It\'s required because all new projects in - Pontoon are private by default and aren\'t visible to localizers and +1. Go to the project's admin page and change the "Visibility" option to + make the project "Public". It's required because all new projects in + Pontoon are private by default and aren't visible to localizers and locale managers. -For complete documentation of the Admin form, please refer to Mozilla\'s -[new project -documentation](https://mozilla-l10n.github.io/documentation/tools/pontoon/adding_new_project.html). +For complete documentation of the Admin form, please refer to Mozilla's [new project documentation](../admin/adding-new-project.md). -At this point you are ready to [start localizing your -project](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/) -at `/projects/SLUG/`! +At this point you are ready to [start localizing your project](../localizer/) at `/projects/SLUG/`! diff --git a/documentation/docs/dev/maintenance.md b/documentation/docs/dev/maintenance.md index 50f4d29480..5bb06838f8 100644 --- a/documentation/docs/dev/maintenance.md +++ b/documentation/docs/dev/maintenance.md @@ -1,108 +1,11 @@ ---- -title: Maintenance ---- +# Maintenance -The following describes tricks and tools useful for debugging and -maintaining an instance of Pontoon deployed to Heroku. +The following describes tricks and tools useful for debugging and maintaining a production instance of Pontoon. -# Monitoring Celery +## Mitigating DDoS attacks -[Flower](https://github.com/mher/flower) is a web interface for -monitoring a [Celery](http://www.celeryproject.org/) task queue. It\'s -useful for seeing how the worker dynos are handling sync jobs. +In a [DDoS attack](https://en.wikipedia.org/wiki/Denial-of-service_attack), the incoming traffic flooding the victim originates from many different sources. This stops everyone else from accessing the website as there is too much traffic flowing to it. -After installation, you can run a local instance of Flower and connect -it to a Heroku-hosted instance of RabbitMQ: +One way to mitigate DDoS attacks is to enable traffic throttling. Set the `THROTTLE_ENABLED` environment variable to `True` and configure other `THROTTLE*` variables to limit the number of requests per period from a single IP address. -``` bash -# Replace my-app-name with your Heroku app's name. -flower --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` -``` - -# Releasing the queue - -If queue gets stuck, tasks don\'t make it to the worker until manual -intervention. You can fix this by running the following commands from -your local development environment. - -First, you need to purge the queue: - -``` bash -# Replace my-app-name with your Heroku app's name. -celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` amqp -# Replace my-queue-name with your queue's name (e.g. celery). -1> queue.purge my-queue-name -``` - -Finally, you need to simply access the worker: - -``` bash -# Replace my-app-name with your Heroku app's name. -celery --broker=`heroku config:get RABBITMQ_URL --app=my-app-name` worker -``` - -# Mitigating DDoS attacks - -In a distributed denial-of-service attack -([DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack), -the incoming traffic flooding the victim originates from many different -sources. This stops everyone else from accessing the website as there is -too much traffic flowing to it. - -One way to mitigate DDoS attacks is to enable traffic throttling. Set -the [THROTTLE_ENABLED]{.title-ref} environment variable to True and -configure other THROTTLE\* variables to limit the number of requests per -period from a single IP address. - -A more involved but also more controlled approach is to identify the IP -addresses of the attackers (see the handy [IP detection -script](https://github.com/mozilla-l10n/pontoon-scripts/blob/main/dev/check_ips_heroku_log.py) -to help with that) and block them. Find the attacking IP addresses in -the Log Management Add-On (Papertrail) and add them to the BLOCKED_IPs -config variable in Heroku Settings. - -# Vacuuming a Database - -To reduce the size of Postgres DB tables and improve performance, it is -recommended to [vacuum the -database](https://devcenter.heroku.com/articles/managing-vacuum-on-heroku-postgres) -regularly. Heroku already does that partially by running the -[VACUUM]{.title-ref} command automatically, but that only marks the -space as available for reuse. - -Running [VACUUM FULL]{.title-ref} offers a more exhaustive cleanup and -reduces bloat. - -> ::: warning -> ::: title -> Warning -> ::: -> -> [VACUUM FULL]{.title-ref} is a heavyweight operation, which prevents -> any other statements from running concurrently, even simple SELECT -> queries. For most tables it only takes a few seconds to complete, but -> on the bigger tables it can take up to a few minutes. During that -> time, the application will be unresponsive. -> ::: - -You can run [VACUUM FULL]{.title-ref} with the following command: - -``` bash -$ heroku pg:psql --app mozilla-pontoon -=> VACUUM FULL table_name; -``` - -To list the DB tables, ordered by size, run: - -``` bash -$ heroku pg:psql --app mozilla-pontoon -=> SELECT - table_name, - pg_size_pretty(pg_total_relation_size(table_name::text)) AS size - FROM - information_schema.tables - WHERE - table_schema = 'public' - ORDER BY - pg_total_relation_size(table_name::text) DESC; -``` +A more involved but also more controlled approach is to identify the IP addresses of the attackers (see the handy [IP detection script](https://github.com/mozilla-l10n/pontoon-scripts/blob/main/dev/check_ips_heroku_log.py) to help with that) and block them. Find the attacking IP addresses in the Log Management Add-On (Papertrail) and add them to the `BLOCKED_IPS` environment variable. diff --git a/documentation/docs/dev/setup-virtualenv.md b/documentation/docs/dev/setup-virtualenv.md deleted file mode 100644 index af2f83e54e..0000000000 --- a/documentation/docs/dev/setup-virtualenv.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Developer Setup with virtualenv ---- - -The following document describes how to set up an instance of the site -on your computer for development. - -> ::: note -> ::: title -> Note -> ::: -> -> Installation with virtualenv is not recommended. If possible, please -> use Developer Setup with Docker, which is simpler and makes it easier -> to reproduce potential issues. -> ::: - -# Prerequisites - -This guide assumes you have already installed and set up the following: - -1. [Git](https://git-scm.com) -2. [Python 3.11](https://www.python.org) -3. [uv](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer) -4. [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com) -5. [PostgreSQL 15](http://www.postgresql.org) - -These docs assume a Unix-like operating system, although the site -should, in theory, run on Windows as well. All the example commands -given below are intended to be run in a terminal. - -If you\'re on Ubuntu 24.04 LTS, you can install all the prerequisites -using the following commands: - -> ``` bash -> # These steps are required to install PostgreSQL 15 (default is 16) -> sudo apt install -y dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -> curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null -> echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list -> sudo apt update -> -> sudo apt install -y git python3-dev python-is-python3 virtualenv postgresql-client-15 postgresql-15 libxml2-dev libxslt1-dev libmemcached-dev libpq-dev nodejs npm -> # Set Python 3.11 as default -> update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 -> -> # Install uv -> curl -LsSf https://astral.sh/uv/install.sh | sh -> source $HOME/.cargo/env -> -> # Start PostgreSQL server -> /etc/init.d/postgresql start -> ``` - -# Installation - -1. Clone this [repository](https://github.com/mozilla/pontoon) or your - [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo): - - ``` bash - git clone https://github.com/mozilla/pontoon.git - cd pontoon - ``` - -2. Create a virtualenv for Pontoon with Python 3.11 and activate it: - - ``` bash - uv python install 3.11 - uv venv --python 3.11 - # Activate virtualenv - source .venv/bin/activate - ``` - - ::: note - ::: title - Note - ::: - - Whenever you want to work on Pontoon in a new terminal you\'ll have - to re-activate the virtualenv. - ::: - -3. Install the dependencies: - - ``` bash - uv pip install -r requirements/default.txt -r requirements/dev.txt -r requirements/test.txt - ``` - -4. Create your database, using the following set of commands. - - First connect to Postgres: - - ``` bash - sudo -u postgres psql - ``` - - Then run the following commands in the console: - - ``` bash - CREATE USER pontoon WITH PASSWORD 'asdf' SUPERUSER; - CREATE DATABASE pontoon; - GRANT ALL PRIVILEGES ON DATABASE pontoon to pontoon; - \q - ``` - -5. Create a `.env` file at the root of the repository to configure the - settings for your development instance. It should look something - like this: - - ``` ini - SECRET_KEY=insert_random_key - DJANGO_DEV=True - DJANGO_DEBUG=True - DATABASE_URL=postgres://pontoon:asdf@localhost/pontoon - SESSION_COOKIE_SECURE=False - SITE_URL=http://localhost:8000 - FXA_CLIENT_ID=2651b9211a44b7b2 - FXA_SECRET_KEY=a3cafccbafe39db54f2723f8a6f804c337e362950f197b5b33050d784129d570 - FXA_OAUTH_ENDPOINT=https://oauth-stable.dev.lcip.org/v1 - FXA_PROFILE_ENDPOINT=https://stable.dev.lcip.org/profile/v1 - ``` - - Make sure to make the following modifications to the template above: - - - `SECRET_KEY` should be set to some random key you come up with, - as it is used to secure the authentication data for your local - instance. - - `DATABASE_URL` should contain the connection data for connecting - to your Postgres database. It takes the form - `postgres://username:password@server_addr/database_name`. - - `SITE_URL` should be set to the URL you will use to connect to - your local development site. Some people prefer to use - `http://127.0.0.1:8000` instead of `localhost`. However, should - you decide to change the `SITE_URL`, you also need to - [request](https://mozilla.github.io/ecosystem-platform/) the new - `FXA_CLIENT_ID` and `FXA_SECRET_KEY`. - -6. Initialize your database by running the migrations: - - ``` bash - python manage.py migrate - ``` - -7. Create a new superuser account: - - ``` bash - python manage.py createsuperuser - ``` - - Make sure that the email address you use for the superuser account - matches the email that you will log in with via Firefox Accounts. - -8. After you\'ve provided credentials for your django-allauth provider, - you have to update them in database, because it\'s required by - django-allauth. You will have to call this command after every - change in your django-allauth settings (e.g. client key): - - ``` bash - python manage.py update_auth_providers - ``` - -9. Install the required Node libraries using `npm`: - - ``` bash - npm install - ``` - -10. Build the client: - -> ``` bash -> npm run build -> ``` - -Once you\'ve finished these steps, you should be able to start the site -by running: - -``` bash -python manage.py runserver -``` - -The site should be available at . - -# Extra settings - -The following extra settings can be added to your `.env` file. - -`GOOGLE_TRANSLATE_API_KEY` - -: Set your [Google Cloud Translation - API](https://cloud.google.com/translate/) key to use generic machine - translation engine by Google. - -`GOOGLE_AUTOML_PROJECT_ID` - -: Set your [Google Cloud AutoML - Translation](https://cloud.google.com/translate/) model ID to use - custom machine translation engine by Google. - -`MICROSOFT_TRANSLATOR_API_KEY` - -: Set your [Microsoft Translator - API](http://msdn.microsoft.com/en-us/library/hh454950) key to use - machine translation by Microsoft. - -`GOOGLE_ANALYTICS_KEY` - -: Set your [Google Analytics key](https://www.google.com/analytics/) - to use Google Analytics. - -`MANUAL_SYNC` - -: Enable Sync button in project Admin. diff --git a/documentation/docs/dev/setup.md b/documentation/docs/dev/setup.md index 6a119d78f2..92fa0b490c 100644 --- a/documentation/docs/dev/setup.md +++ b/documentation/docs/dev/setup.md @@ -1,126 +1,74 @@ ---- -title: Developer Setup ---- +# Developer Setup -The following describes how to set up an instance of the site on your -computer for development with Docker. +The following describes how to set up an instance of the site on your computer for development with Docker. -> ::: warning -> ::: title -> Warning -> ::: -> -> These installation steps are made for development only. It is not -> recommended to run Pontoon via Docker in production. -> ::: +!!! info "Scope of this document" + These installation steps are made for development purposes only. To run Pontoon in the production environment, see the [Deployment](deployment.md) docs. -# Prerequisites +## Prerequisites 1. Install [Docker](https://docs.docker.com/install/). -2. Install [latest versions of Node.js and - npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). -3. Install [make](https://www.gnu.org/software/make/) using either your - system\'s package manager (Linux) or Xcode command line developer - tools (OSX). On Windows, you can use - [MozillaBuild](https://wiki.mozilla.org/MozillaBuild). +2. Install [latest versions of Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). +3. Install [make](https://www.gnu.org/software/make/) using either your system's package manager (Linux) or Xcode command line developer tools (OSX). On Windows, you can use [MozillaBuild](https://wiki.mozilla.org/MozillaBuild). -# Quickstart +## Quickstart 1. Clone the [Pontoon repository](https://github.com/mozilla/pontoon): - $ git clone https://github.com/mozilla/pontoon.git + ``` + $ git clone https://github.com/mozilla/pontoon.git + ``` - ::: note - ::: title - Note - ::: - - To contribute changes to the project, you will need to - [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) - the repository under your own GitHub account. - ::: + !!! note "Note" + To contribute changes to the project, you will need to [fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the repository under your own GitHub account. 2. From the root of the repository, run: - $ make build - - That will install Pontoon\'s JS dependencies, build the frontend - packages, and build the server container. + ``` + $ make build + ``` - ::: note - ::: title - Note - ::: + That will install Pontoon's JS dependencies, build the frontend packages, and build the server container. - If you want to share your development instance in your local - network, set SITE_URL to bind the server to any address you like, - e.g. `make build SITE_URL="http://192.168.1.14:8000"`. - ::: + !!! tip "Tip" + If you want to share your development instance in your local network, set SITE_URL to bind the server to any address you like, e.g. `make build SITE_URL="http://192.168.1.14:8000"`. 3. Run the webapp: - $ make run - - ::: note - ::: title - Note - ::: - - The first time you run this, the PostgreSQL container needs to do - some work before it becomes available to the server container. - Hence, the server might not be able to perform things like - migrations. You can simply wait for the postgresql container to - report that it\'s ready, then abort the process, then restart it. - That should let the server do all its setup as expected. + ``` + $ make run + ``` - Alternatively, you can run `docker-compose up postgresql` and wait - until it reports that the database is ready, then stop that and run - `make run`. - ::: + !!! note "Note" + The first time you run this, the PostgreSQL container needs to do some work before it becomes available to the server container. Hence, the server might not be able to perform things like migrations. You can simply wait for the postgresql container to report that it's ready, then abort the process, then restart it. That should let the server do all its setup as expected. -4. Finally, you need to run some setup steps, while the server is - running: + Alternatively, you can run `docker-compose up postgresql` and wait until it reports that the database is ready, then stop that and run `make run`. - $ make setup +4. Finally, you need to run some setup steps, while the server is running: - This will ask you to create a superuser, and then will update your - Firefox account settings. + ``` + $ make setup + ``` -The app should now be available at or the custom -SITE_URL. + This will ask you to create a superuser, and then will update your Firefox account settings. -And with that, you\'re ready to start `contributing`{.interpreted-text -role="doc"}! +The app should now be available at or the custom SITE_URL. -# Installing Docker on Windows Pro/Enterprise/Education +And with that, you're ready to start [Contributing](contributing.md)! -Install [Docker Desktop for -Windows](https://docs.docker.com/desktop/install/windows-install/). +## Installing Docker on Windows -## Install tools (git, make, cygwin) +To setup Pontoon for development on Windows Pro/Enterprise/Education, install [Docker Desktop for Windows](https://docs.docker.com/desktop/install/windows-install/). -The easiest way is to use a package manager like -[Chocolatey](https://chocolatey.org/install). Follow the installation -instructions for Windows Powershell (Admin), then run -`choco install make git cygwin` to install all packages. +Next, install other prerequisites using a package manager like [Chocolatey](https://chocolatey.org/install). Follow the installation instructions for Windows Powershell (Admin), then run `choco install make git cygwin` to install all packages. -Follow the prompt requests allowing script execution. At the end, verify -that packages are available with `make --version` and `git --version`, -it should return a version for each command. +Follow the prompt requests allowing script execution. At the end, verify that packages are available with `make --version` and `git --version`. It should return a version for each command. -At this point you need to disable the config `core.autocrlf` before -cloning the Pontoon repository, otherwise all files will use Windows -line-endings (CRLF), and docker images will fail to build. To do so, -open a Powershell as Admin (right click on the Start Menu, select -*Windows Powershell (Admin)*), and run: +Also, you need to disable the config `core.autocrlf` before cloning the Pontoon repository, otherwise all files will use Windows line-endings (CRLF), and docker images will fail to build. To do so, open a Powershell as Admin (right click on the Start Menu, select *Windows Powershell (Admin)*), and run: - git config --system --unset core.autocrlf - git config --global core.autocrlf false +git config --system --unset core.autocrlf +git config --global core.autocrlf false -You can use `git config -l` to verify that the value for `core.autocrlf` -is correctly set. +You can use `git config -l` to verify that the value for `core.autocrlf` is correctly set. -At this point, you can open the *Cygwin64 Terminal* and proceed with the -installation (the content of `C:` will be available in `/cygdrive/c`). -Once the Docker image is running, Pontoon\'s instance will be available -at . +At this point, you can open the *Cygwin64 Terminal* and proceed with the installation (the content of `C:` will be available in `/cygdrive/c`). Once the Docker image is running, Pontoon's instance will be available at `http://localhost:8000`. diff --git a/documentation/zensical.toml b/documentation/zensical.toml index 544de20ba2..0e04ffaa39 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -37,14 +37,13 @@ nav = [ { "Developer Guide" = [ { "Overview" = "dev/index.md" }, - { "Your First Contribution" = "dev/first-contribution.md" }, - { "Developer Setup" = "dev/setup.md" }, + { "First Contribution" = "dev/first-contribution.md" }, + { "Setup" = "dev/setup.md" }, { "Contributing Guidelines" = "dev/contributing.md" }, { "Feature Development Process" = "dev/feature-development-process.md" }, { "Deployment" = "dev/deployment.md" }, { "Maintenance" = "dev/maintenance.md" }, { "Localizing Your Projects" = "dev/localizing-your-projects.md" }, - { "Developer Setup (Virtualenv)" = "dev/setup-virtualenv.md" } ]} ] From ccbe609704bd34f7276b598eef36608b0a4b2e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Mon, 30 Mar 2026 17:12:22 +0200 Subject: [PATCH 15/35] Update Developer Guide #2 --- documentation/docs/dev/{setup.md => developer-setup.md} | 0 documentation/docs/dev/first-contribution.md | 2 +- documentation/docs/dev/index.md | 2 +- documentation/docs/dev/localizing-your-projects.md | 3 +++ documentation/docs/index.md | 2 +- documentation/zensical.toml | 2 +- 6 files changed, 7 insertions(+), 4 deletions(-) rename documentation/docs/dev/{setup.md => developer-setup.md} (100%) diff --git a/documentation/docs/dev/setup.md b/documentation/docs/dev/developer-setup.md similarity index 100% rename from documentation/docs/dev/setup.md rename to documentation/docs/dev/developer-setup.md diff --git a/documentation/docs/dev/first-contribution.md b/documentation/docs/dev/first-contribution.md index 7e1f5fc569..386ebcafee 100644 --- a/documentation/docs/dev/first-contribution.md +++ b/documentation/docs/dev/first-contribution.md @@ -38,7 +38,7 @@ first need to be able to run that project on your computer. The recommended method of installing Pontoon is using Docker and our scripts. It is straightforward if your computer is running with Linux or macOS, and a tad more difficult for Windows. In any case, follow the -instructions in our [Setup page](setup.md). +instructions in our [Developer Setup page](developer-setup.md). ## 3. Populate your database diff --git a/documentation/docs/dev/index.md b/documentation/docs/dev/index.md index 1063488c37..b28b39df14 100644 --- a/documentation/docs/dev/index.md +++ b/documentation/docs/dev/index.md @@ -10,7 +10,7 @@ This guide covers everything you need to know to contribute to, deploy and maint Get started with contributing to Pontoon, including setting up your environment and submitting your first patch. -- :material-tools: **[Setup](setup.md)** +- :material-tools: **[Developer Setup](developer-setup.md)** How to set up Pontoon for local development. diff --git a/documentation/docs/dev/localizing-your-projects.md b/documentation/docs/dev/localizing-your-projects.md index c1c20d90fe..f877c67e9d 100644 --- a/documentation/docs/dev/localizing-your-projects.md +++ b/documentation/docs/dev/localizing-your-projects.md @@ -81,6 +81,9 @@ and fill out the following required fields: it. 1. **Repository URL**: enter your repository's SSH URL of the form `git@github.com:user/repo.git`. + +Once you've filled all the required information: + 1. Click "Save project" at the bottom of the page. 1. After the page reloads, click "Sync" and wait for Pontoon to import strings. You can monitor the progress in the Sync log diff --git a/documentation/docs/index.md b/documentation/docs/index.md index 1c0c440b0e..77823413ec 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -48,7 +48,7 @@ Pontoon specializes in community-driven open source localization, pulling string | Start translating a project | [How to Translate](localizer/translate.md) | | Add a new project | [Adding a New Project](admin/adding-new-project.md) | | Add a new locale | [Adding a New Locale](admin/adding-new-locale.md) | -| Set up Pontoon locally for development | [Developer Setup](dev/setup.md) | +| Set up Pontoon locally for development | [Developer Setup](dev/developer-setup.md) | | Deploy Pontoon to production | [Deployment](dev/deployment.md) | --- diff --git a/documentation/zensical.toml b/documentation/zensical.toml index 0e04ffaa39..41336dca75 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -38,7 +38,7 @@ nav = [ { "Developer Guide" = [ { "Overview" = "dev/index.md" }, { "First Contribution" = "dev/first-contribution.md" }, - { "Setup" = "dev/setup.md" }, + { "Developer Setup" = "dev/developer-setup.md" }, { "Contributing Guidelines" = "dev/contributing.md" }, { "Feature Development Process" = "dev/feature-development-process.md" }, { "Deployment" = "dev/deployment.md" }, From 8142c9070c7efd21e9b09b6b67f80ebba0996df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Mon, 30 Mar 2026 17:32:40 +0200 Subject: [PATCH 16/35] Remove extra stylesheet --- documentation/docs/stylesheets/extra.css | 48 ------------------------ 1 file changed, 48 deletions(-) delete mode 100644 documentation/docs/stylesheets/extra.css diff --git a/documentation/docs/stylesheets/extra.css b/documentation/docs/stylesheets/extra.css deleted file mode 100644 index 4eef0c0afb..0000000000 --- a/documentation/docs/stylesheets/extra.css +++ /dev/null @@ -1,48 +0,0 @@ -/* Pontoon brand colors */ -:root { - --md-primary-fg-color: #333941; - --md-primary-fg-color--light: #FF7E88; - --md-primary-fg-color--dark: #CC2233; - --md-accent-fg-color: #7bc876; - --md-accent-fg-color--transparent: #0060DF1a; -} - -[data-md-color-scheme="slate"] { - --md-primary-fg-color: #7bc876; - --md-accent-fg-color: #7bc876; - --md-default-bg-color: #272a2f; -} - -/* Navigation tabs */ -.md-tabs { - background-color: var(--md-primary-fg-color); -} - -/* Admonition tweaks */ -.md-typeset .admonition, -.md-typeset details { - border-radius: 4px; -} - -/* Code block copy button */ -.md-clipboard { - color: var(--md-accent-fg-color); -} - -/* Role badges in localizer docs */ -.role-badge { - display: inline-block; - padding: 2px 8px; - border-radius: 12px; - font-size: 0.75em; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.05em; -} -.role-contributor { background: #e3f2fd; color: #1565c0; } -.role-translator { background: #e8f5e9; color: #2e7d32; } -.role-manager { background: #fff3e0; color: #e65100; } -.role-admin { background: #fce4ec; color: #c62828; } - -/* Hide "Made with Material" footer */ -.md-footer-meta { display: none; } From 710272f1aae065a291a6f8cbe1b0e799508eebf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 09:15:51 +0200 Subject: [PATCH 17/35] Update Localizer Guide --- .../notifications/notifications_dropdown.png | Bin 0 -> 25688 bytes .../localizer/profile/activity_graph.png | Bin 0 -> 13417 bytes .../localizer/profile/approval_graph.png | Bin 0 -> 9816 bytes .../docs/assets/localizer/profile/badges.png | Bin 0 -> 31797 bytes .../localizer/search/entity_translations.png | Bin 0 -> 37144 bytes .../entity_translations_source_string.png | Bin 0 -> 9027 bytes .../entity_translations_translation_list.png | Bin 0 -> 36854 bytes .../localizer/search/translation_search.png | Bin 0 -> 36255 bytes .../translation_search_search_options.png | Bin 0 -> 4208 bytes .../translation_search_search_results.png | Bin 0 -> 40693 bytes .../localization_page_header.png | Bin 0 -> 14365 bytes .../localizer/teams-projects/page_flow.png | Bin 0 -> 23120 bytes .../teams-projects/project_hover.png | Bin 0 -> 7002 bytes .../teams-projects/project_page_header.png | Bin 0 -> 39547 bytes .../teams-projects/request_locale.png | Bin 0 -> 22489 bytes .../teams-projects/request_pretranslation.png | Bin 0 -> 11027 bytes .../teams-projects/request_project.png | Bin 0 -> 9207 bytes .../teams-projects/team_page_header.png | Bin 0 -> 35560 bytes .../localizer/teams-projects/tm_tab.png | Bin 0 -> 76199 bytes .../localizer/translate/activate_suggest.png | Bin 0 -> 14293 bytes .../localizer/translate/approve_button.png | Bin 0 -> 32594 bytes .../localizer/translate/batch_actions.png | Bin 0 -> 46118 bytes .../localizer/translate/check_error.png | Bin 0 -> 9104 bytes .../localizer/translate/check_warning.png | Bin 0 -> 7024 bytes .../localizer/translate/profile_menu.png | Bin 0 -> 20860 bytes .../localizer/translate/suggest_button.png | Bin 0 -> 28808 bytes .../concordance_search.png | Bin 0 -> 16888 bytes .../translation-workspace/context.png | Bin 0 -> 5701 bytes .../editing_space_ftl.png | Bin 0 -> 26396 bytes .../editing_space_ftl_plurals.png | Bin 0 -> 25580 bytes .../editing_space_ftl_sourceview.png | Bin 0 -> 26754 bytes .../editing_space_standard.png | Bin 0 -> 18112 bytes .../editing_space_terminology.png | Bin 0 -> 64495 bytes .../translation-workspace/filters.png | Bin 0 -> 10985 bytes .../filters_multiple.png | Bin 0 -> 17751 bytes .../translation-workspace/filters_tags.png | Bin 0 -> 14715 bytes .../translation-workspace/llm_dropdown.png | Bin 0 -> 18275 bytes .../llm_dropdown_rephrased.png | Bin 0 -> 32605 bytes .../translation-workspace/locales.png | Bin 0 -> 17767 bytes .../translation-workspace/machinery.png | Bin 0 -> 21956 bytes .../translation-workspace/main_nav.png | Bin 0 -> 37001 bytes .../translation-workspace/mobile_ui.png | Bin 0 -> 36343 bytes .../translation-workspace/options.png | Bin 0 -> 21012 bytes .../translation-workspace/pinned_comment.png | Bin 0 -> 34729 bytes .../translation-workspace/profile_menu.png | Bin 0 -> 26836 bytes .../translation-workspace/search_field.png | Bin 0 -> 13176 bytes .../translation-workspace/sidebar.png | Bin 0 -> 12507 bytes .../translation-workspace/sidebar_expand.png | Bin 0 -> 29298 bytes .../translation-workspace/status_banners.png | Bin 0 -> 5757 bytes .../translation-workspace/status_overview.png | Bin 0 -> 16682 bytes .../suggestions_diff.png | Bin 0 -> 23849 bytes .../translation_comments.png | Bin 0 -> 21020 bytes .../translation_readonly.png | Bin 0 -> 8314 bytes .../translation_workspace.png | Bin 0 -> 139160 bytes .../assets/localizer/users/delete_account.png | Bin 0 -> 7744 bytes .../localizer/users/permissions_general.png | Bin 0 -> 16155 bytes .../localizer/users/permissions_project.png | Bin 0 -> 12354 bytes .../localizer/users/profile_settings.png | Bin 0 -> 27560 bytes .../localizer/users/translation_locales.png | Bin 0 -> 13374 bytes documentation/docs/localizer/glossary.md | 97 +++-- documentation/docs/localizer/notifications.md | 81 +++- documentation/docs/localizer/profile.md | 54 ++- documentation/docs/localizer/search.md | 106 +++++ .../docs/localizer/teams-projects.md | 188 ++++++--- documentation/docs/localizer/translate.md | 176 ++++++--- .../docs/localizer/translation-workspace.md | 365 ++++++++++++++---- documentation/docs/localizer/users.md | 161 +++++--- documentation/zensical.toml | 1 + 68 files changed, 933 insertions(+), 296 deletions(-) create mode 100644 documentation/docs/assets/localizer/notifications/notifications_dropdown.png create mode 100644 documentation/docs/assets/localizer/profile/activity_graph.png create mode 100644 documentation/docs/assets/localizer/profile/approval_graph.png create mode 100644 documentation/docs/assets/localizer/profile/badges.png create mode 100644 documentation/docs/assets/localizer/search/entity_translations.png create mode 100644 documentation/docs/assets/localizer/search/entity_translations_source_string.png create mode 100644 documentation/docs/assets/localizer/search/entity_translations_translation_list.png create mode 100644 documentation/docs/assets/localizer/search/translation_search.png create mode 100644 documentation/docs/assets/localizer/search/translation_search_search_options.png create mode 100644 documentation/docs/assets/localizer/search/translation_search_search_results.png create mode 100644 documentation/docs/assets/localizer/teams-projects/localization_page_header.png create mode 100644 documentation/docs/assets/localizer/teams-projects/page_flow.png create mode 100644 documentation/docs/assets/localizer/teams-projects/project_hover.png create mode 100644 documentation/docs/assets/localizer/teams-projects/project_page_header.png create mode 100644 documentation/docs/assets/localizer/teams-projects/request_locale.png create mode 100644 documentation/docs/assets/localizer/teams-projects/request_pretranslation.png create mode 100644 documentation/docs/assets/localizer/teams-projects/request_project.png create mode 100644 documentation/docs/assets/localizer/teams-projects/team_page_header.png create mode 100644 documentation/docs/assets/localizer/teams-projects/tm_tab.png create mode 100644 documentation/docs/assets/localizer/translate/activate_suggest.png create mode 100644 documentation/docs/assets/localizer/translate/approve_button.png create mode 100644 documentation/docs/assets/localizer/translate/batch_actions.png create mode 100644 documentation/docs/assets/localizer/translate/check_error.png create mode 100644 documentation/docs/assets/localizer/translate/check_warning.png create mode 100644 documentation/docs/assets/localizer/translate/profile_menu.png create mode 100644 documentation/docs/assets/localizer/translate/suggest_button.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/concordance_search.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/context.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/editing_space_ftl.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_plurals.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_sourceview.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/editing_space_standard.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/editing_space_terminology.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/filters.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/filters_multiple.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/filters_tags.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/llm_dropdown.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/llm_dropdown_rephrased.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/locales.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/machinery.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/main_nav.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/mobile_ui.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/options.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/pinned_comment.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/profile_menu.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/search_field.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/sidebar.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/sidebar_expand.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/status_banners.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/status_overview.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/suggestions_diff.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/translation_comments.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/translation_readonly.png create mode 100644 documentation/docs/assets/localizer/translation-workspace/translation_workspace.png create mode 100644 documentation/docs/assets/localizer/users/delete_account.png create mode 100644 documentation/docs/assets/localizer/users/permissions_general.png create mode 100644 documentation/docs/assets/localizer/users/permissions_project.png create mode 100644 documentation/docs/assets/localizer/users/profile_settings.png create mode 100644 documentation/docs/assets/localizer/users/translation_locales.png create mode 100644 documentation/docs/localizer/search.md diff --git a/documentation/docs/assets/localizer/notifications/notifications_dropdown.png b/documentation/docs/assets/localizer/notifications/notifications_dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..e52b41c06e1b0c99a73c16a716f10a3385b3c693 GIT binary patch literal 25688 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/profile/approval_graph.png b/documentation/docs/assets/localizer/profile/approval_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..676e3da50b697de61823d623f6d36a6a8fbce196 GIT binary patch literal 9816 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 G6#H*;nAU;- literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/search/entity_translations_source_string.png b/documentation/docs/assets/localizer/search/entity_translations_source_string.png new file mode 100644 index 0000000000000000000000000000000000000000..2d482a55d6c0fb01e300b677230effdaeca023ec GIT binary patch literal 9027 zcmbt)Wl&tr`{e+^-7UDg6Wj?F+zIZk!3PiS?iwsu0)*hMgF8uZ7%cbm1Snr4<`T_v)J3>bgc_bGxF_ zin;m4*u+#R1-0G1eFar*duI<*D~H?LJ98VS(Q!~oMO9u=X;NBtRBXb^>W`Lh?V;h( z-hRQZp1#vFb6Gk0b&bvONvR(KL&KwDo!or3cXq{Pl}=86L!i*l^-c0BT6_E8fS?ei zce<0)v%wSoUt8K*+d8c6oHw_&KYgk!E-7hl{XR20&&ey4pI?}gn$9OIA*rrxWM&gM z>g(0&o|RW*{NDUSx3^=ZlboTN|Dcb4h>5bbmRp0Xb*`2jDYj6ZlJdjpFF&L5OQiGjAhBl#i=;D4!0~vi<*=-oYL?EyG)B z4uf%RiXMR1R^Ll|#i|hiuMo-NbP3>z0{|rG-K_i))cDDKfc8PZ?_k*T=nEVD}x zBD}=K|5?SV?S9eD?#Id7=hXL^`ml7+cwA_|Wy%MbDp9qllB4ibHa75e3uJ;9;rhL!3g{Kn^NB>S8b z8f}9%28_kwS)Kr@uM@2yXXQ$B&>1^BCaAi=J;TOxosco{_d{Hj(35S({)FT&h36#7 zkUc3d=YfW}>`1erOer0OG;+4r77c<~`Nx zW>_fETW4&yxmFZR5;9QQk&onDYF>#K91UxnSw^` zJn)_$xR(<3wf6Ng6s8t%D@ftR#K+n-#Mf=J?jib(NWxh*JmQZ@?Auk+m}@+_Yra2;_Rf4A{p@H zN*#ZJf<-570$ zR%Fh(f=y8-rK}cz%J_9i6XLea4=m5|iNEMeXfHY#Uk-ick8XQClxy1QF=%YOs{5fM zFjg>Lyye2tKX{mZ!iN3a~G3j4{^nD(^fiHhE>a85ZNXZ*G$1E z5nB)wh(?16^u_2qmRp7gOIQCLm-m;Gx^B(uk530almFe}>8p=I?V4tD4QEy09DYo-uG; z><$?n#!X(}-QKvb9d2bz*h}b6o64@#+wKr9>J|HzHH95jd3gd$(s2&lj65zz~piP>Q9zi(Yk633~k(Tjax?G(cq+XsXSRd zKr|wrD=@U8_8CNvC%TZ5eki$F3n}O;Ft443omMxIYRH)}$#ui}paYef9pZuKqiOHf zC_8>m9T%~C8@IYRcZv!F%TtrJp64D-pi=GP%8URZwtbo-cG`TCOPdJ}cfeH*PyX*$ zkVqzZ9|)>Z`99XUVcfA9!JA9wjIj8$pFgK9>f2&nFIJSJZH(G+NrnX3Kd$(aPV9hx zKW^5N2N~jqh%CA*e|{VCtY*|^;sF9|=-Fqp6PhuRm=e#WI=xh;fu8GPK?HvOSoI!{t!gZD@Sgk+Emh>7d{}L;D;Tn46|D$+QDU+GBVML|u$4U@{qQxf^!eB-a zlVc6(o-|>_Q~!riyBD#WAKJXvWVUEv8{>V+0ERy0tP#Wo#9Oei9}YGY!m#DG7`H6T zgOZy8>;xE$wjSo(kF2^Z-6@9>80IoWa#9z6zbcgKwl;TL{Y+wEY%D4>s`)f9BH@(L z&$p(@E)5e94=%hW%eLqZY9m&Ds%u_~VQZOuW4llhI(HA_Jl0S-}+@wfriFF zP-BL}LNQCwK*=AdreMbHiy3MRoMO`;^FhtDV5%^+W`u=IpJ?Mc8sFKb7X8rr>-z3c zax@?cnbKAbONrrEi-=DKFrPgQNG|pfud(y}B)tK5w9cy)PG zIoh=dS5|~}B&uH^W~8dwE2XErY7@^74lW!-7ovAA7}Pl-4t2(Me$nbQxa*P2YmW1~ zx`LhmM9+kj<-TM_kPV`Er~*$0*^6{!z(o=xIt6ud%!&nUc2zWA8fxi=3SlFw!?H{; zYjwVuPWu<2=wdP7V(g&r=-T<-4s!75qz3bKWPu+@X+bpzQu7QcGj4q!Am>XI^rLWI zSZnw}9=Mc18=X!^E9sO)x?0%>w~(8PRS5>VJi_zG`{V+^i~#o!GF!a4@0uXNSLE_W zPObB6wXwKWrhWIfh+Ulw#O@d`90T3%O^R%$m~tNt z^Q&-0J7Bf&cQ%yKk+3Z%mJy0B=&AP$gYH=q` z@@QVfx#NX%_V=QB-{1U&M>P1a_V^p7vb=9KW>!#?WPM1c<|#=7J)bq3{q=&}jia;i z$vCv&|3qYOh@1NbF$q}sS4#PQzi2np+e(}uFIP5DE@m2d?$r8Cihm(bF|ec?>2wh5 zd;B1YTOK$zrj$eMXLISflKN}0uh1N^)u|eA|EPMxM8d-L(^Dv08k}6cH^yWM9`d=X_y48XbKm8f2DD!w?i1q zNW2Osoz7#5N*4SvUVcXeQt@QVdy!%uaQ$w;CId4ti$JTKA3ytH0;~6n<~zd81AA|( z3Sk}FG>n{U2kzH+du?ZxqX|0tGvDP~W+|3=~I{%*%=i$dCrz;H3hQHm;Jy3A1*=9bW|aRJvi=p{T*qq5~< z`&8w!C%Wy;tWZl!RYK9kftZA#c8VV7y^pc{6Y;6X-9MJZjUrN2Q7GNM#s|}Pt*lRV znn=A+`*43$*gNgA{ zYJmDO-tG+0`ZWIT#hD8ev}!+JEB9@Ti5TQD5r2L;ufoZ}i7iCZrKCI=;{T{#5{X|K z`H+~#4^j&0tNE6Dl&xFDgEJWl(VYwmSwL}}H1?^%X05RKz+I?rTI11eq4`8tam4Z~ zTQ`%ZFlw-Z)h|q4TEn?0W=T`Jx{ZHfC6r`pj`8_52x=X`591?BCH2kK60l7p^q(&W z8db3(9!;4N99gJKnGLENX4&YXawsV&eO>@h>9IKSMaP4e*u}h&DPFMUf#`BseqGe9 ze|p?pNyi9|tHNa{0^-YMJU{6+!@6R)USvdNeuS`5e9#Q`{|a-*CIpdkOw8TJ5^dEZ z1cGum>1wk-VHuh!IsB=(%NM#H&jOcnPS>Cs9aI@Pe;mqcSxkLX@?yVWDC~QQa-Wfp zGsMn^7UoU4zwG7PSMc+;DwG-4>iE2EHzU*v9EC56BqM={9L`X} z89+5F9p>F%Ki7u;%BOE3lu7bKz*;T2e-|T(kU8?&NGm@71e7~7cBA+j*MqJ<2Wi`ebQ zy-=LioNiblDiIx!On{HY{Va|v;poNOhb# zs68Uh8~2&LK4H%FaeIIBTi@^uF}_0l`11G%pjD_`evd`eWst+(^}WK3DWT`RKEC|2>o4Hd z0sAT?gJ)x7f#V75ZXdcQ-=a9v=sa`x+n|f(H4$Iuy0=unsiQec=(G1f0NXZ#CVoqF zetXJ&J)kTp!MPRXTy`~qYx5YlFtS^+IiNem>Z>{9QQD;h9l}!RSGxo0T@!$_M4p3P zmh&Wf9fc(O%9J&m>`LN7!=7}V1WR}Ja}R(fW|O67DYgJQx>(rmvG(#j+TMyjG6}1oQrE?P4Mu_U#G;I=9Q**VN6S0PbsWz#46`Ia#*w7s zous^%4=B;D117XN$A3r^jExZ<*LE{-LnhT0pdvJS^*BdJZ6E1gwbph%70rHW+MILh zD$1QhECI$rYo1!6RXW@&<7nQl$Gbqm!CkmgOusek<_~c0d1mEuA4qiixrm3fqnL*{ zzDV=nfn3f`uc>5A!#DH}FVeX3m~BDAgf+LL_%aBeSEbiU$z5X!xCLaaVDh=gJE{@> zPV@0HVHj4Nh(wI>VbUf=$kkI^I)!=XsJG~O=jt*b!?93Z+j&^s!E8g{|5M|}>?QVZ zMBo&8=Y~z%<}9v1xJ^tt9HX%m^d?X`;Ig(ON4WZlT4dr?;S&Jz>MH?N(AhcURjolA zpx(CFLt729@6Okbev@TKf*>h0KQVD4$TXORh=b+IDiYSK4c19IepCV7r21KAbdl*? z_Sn(ipXtlt)!)P)2tJ;i-zQ6?e>MVL?Fnj++OC6aM+|=^sc^eAo)v+yY2Kx;e7lRT zEfQm>kZXP&Wb|j^D(ez%>;Y-gu{vD2L_bVAN>;8)aP48_A1df=ZlfFXCl64v8qn|h zdU{QbkE||(MNiaAjLMc25TYXdW_9A?O2^%tzUz>#gh90!!H}d5GXfetF<@5?sr$JR znl8{R;;0wLa**4+_>*CX%(4QojSq4xYMQ;kZ+@u~DkqQ5zr zjNY-NEA4S4iR*Amp+K|_{$<5ie~IX$z$j>xBChSF52CBGpD^}}Z8K)6@y7s!$bSvU zz{nIil1WKOfigal+KCtzNRf^9OjJ%k%03^BTXXs#QU`PV+Y@BeBRAR#P*hg^P=-uoL{O% z>afw~-v0HdU@&i6%^W|KH5*R$lTU(X$Z{{oGJesfbwad``*uu$%Jvu8yv3EvKj8Fa zDxs6H_1o}tMsjsrK_Ts5u* zkmglcW`?aa*{DWmgT>@tZEbLP^~ptp2_+5;D|fqj9GVp@ z0t){-TKp$^eJpW{W>u@BbsHPg7qpI%xMSY@-XJ_(3=!T@UIbJFjMiL?jk5v9XmXw3 zaIzQaBOfhUGe1StD@d1qeIu?hL>jdH0@}ORK?U{l-z-@m0y*^Ay>XdAUw+Zu;d(GbYk+fx4 zH@JDZ=b6;4VOH}`v~H=a567HcB$LgV93l0~1iNOmE_sF?moMz zY>yVXG*xQIW%f#o-}k$+9v?P0-hc2C=SB}0+#if0YO*C`Trb1;gCjottLpz0y14=r z=d1)*;U36d)IRI^!cf`MxwZ$CiN2rln_Z6kK{yhaxTdwwAwpwW)so&4c8IRkNK_B@ z>_d`l8><%^wp2wxC9%xgftziyEW`skSF0YMf5S@|2fgd2U^(*ovz6*m4YQ>DG%h`s z#WdBtDqw%OqBHUlOUosCf|qp^tM*az{O~eNz)PiU7-n9e=goylCF)$M0#3*0bgMSiD`?h$6`TuWOP2$@Xx1 z%!rq4XNpbdo3}*($o`A&=g9?HTY%4(Ljj9&IU5Nzq0A&g=;&36gY*5l%x;adl&92y zs#1@D&Yu8!g*Ioa>|2=gfrgLUtbav~A8cuG&{tg*y_(3=GQkQFXIh~3Q+M}G3E>Lv zBise|D7Cd+IP(zah$GfHR$eb9BETHJrNPW_ct$glY(mDAOHTsp7;;uf2#UXXGd;Z=)GSVM-RVOz*2kLXTVESOGLY3 zQ$PV>XX6%-*|aXM?V!)s;(a*)7E7k5ATVRFw%|=*3UUS;3AmSo-g-FXu&DWV0t{7^ ze2;pm=yb+Ni%OyFH;6Z6M@ZLt0;1b7u_JHT4znt94n44Z_`@X-8oref$IY*5#5u1F zv7fhosgsEYqZZ-b5KRk@2z}QlV2YRu%S6ujfPK-B_$rU#|`09wv6S|Q5=5jA)Kh%mel3M*j!t~ zXnnyS^U}R+=dn953d;BtScC9T5gz{5*iMTE@y5$8UME zF;>czLsXMUlX6t4c%ODPlCrtH8`n+U(}LUUiWEXe`s|Fk!O=sR7SjcgvSScecCYWL z?x$^SF-A$o@QvXOCPP9^z@p`u|LSSPk5a&C{{F3fM@wt(aU5lnu-T{FG9@vZNNE2j z3eN11Iq@3_)k3HHi=lpw&7CD`7flAZ_sS(j;M#OOlx?xl?+I1ooRgFMGNVLR7e<(} z0A(FKk;e4xd%|^j4m&a&WAhFz%RPcG(}igMIbYW8{6Q-jo0Axi9K@_nbC?ic=r6fi z@{U1KrnQs~;xWpv7-Th@O2oGKtn$y>cu-djIEJd{p07L=srn2_7M{_s&Y1{*XGysEQGXx$5IdXXW;M0Np7k5Zt-_qy z84^pE^QY80Y&gfm_?hi}pWPAbNnv)hTv(`~}I8%_1YV|nGUmFU?L(v0> zn2P3}WML`u-<2Z#NvwTMb{2mV(PCK|wQvC-ab?8Vs1~a+^jY0Qtf|KT`7{d%9pId>eA6lFBz@ zTdZoz24govKeDK~O`iB-4XD5VJXehHrJKxbC8W2|^b71m)d<8s1tOiR5x@OI$U?oR ztwR9dzV!Ybrq1ey0O2cd5N0GF*fq1{jBo@K`i4)tc++3l0bYU`9R5pb)40VdbTCfD?^gZEfjmt6KtQ+#Kl67;mf7vM{&iX7I4%S0KqDTA z^?ObZmu3s`DaZ#rB@tM&!9`iJvY52T{Y8h^Cv$;4eJo`^O2+*;!Lh8rW%4SkS>(S3 zB}r%5elrv7c)2JvJ*Xhk&6F|q1S=87-mz?~(cC!*M%tMP*#`)O{93!O1}5b1KD-Mo z>tZW~;Rja)DrZjRSme~NOp2nR+Fbx17C#e3|3nwIMrgp0G~lFi%$SIVyt~u-ip~C2oTlrS!AbpjeGMF!a}H5gpQg-dxWCLAm!Ehh10kAFW^Ir zLK97Jfqts^dkCJyX*Q$ei zvBF~RJ1`Wa{@t`s&BuP8V~Jif`x0haw=1>)Z#gLah-BBf*neLJ;khlOxX}oQpyk1F zt>ar)MZyo6w8UPOsp!Uz@n-igB4uEaX%XZ2(gqLYmCU#Uy5uzrtd?u3tKybEpt1E{ zmK)b&=cNvwJ8gG))8t6kq>;l*ocIk6w*5Dt@=<2r;UVZ%^uk9LA(&nRbH#vzCwLEW zaPz3RyzUc2+j66VjBeh`*CGb?w2P!sm69GI4kJEq75Czq1gQiwY0OO-^71D!_8aWu zI?AaoXXzi^QLAqwc$4;1b6;cdDATPc=5T=sc*MWbR-RRTMQ8dJfQCY+pk+gx;fmP( z@MuMa?Np|6QZ6@t3vhwcw;zbk)s0U#IAm{9nhS2>{jlnclj4o_0AT8_yv3# zvIHcdp~M?W+N>|NjLthVTx!1fr-}OgHP(1S>*er#f<|Dz#fQ*+iV~X+{`|N8i9c#v z;b%M;>t(uJ7tK?Vmin`=t{}7%OB(pnPsnU3KjY(Wt{W7R>!Y7!Ol3ALS%qE64Wi7_ zLHoq_kc#%Jyh*CF=#K*m_O%`5aRrZPZW~iK#w7~WX8&vlv^f#Ep8ttEEssx58Bz=93QOX=+@b+i~G$_>_Ew%Jc2TERL0aAW%N{On? zBDUs!e&7Q17iYolk6}UXh!%nKhbe3!H zLJ~6FW8v<(CcAP|EEP7KrEx}5_{~82JrzoYk)^h{W3G}~6@~w~Yzf72f##)?3OhDbZcE-CU%?_3t$ z=TCrZ)h7N0x)M8c0WXmr4>8&;f#u=ehlJqn5L^a#g1fti;GPNY4#6e3Bsc+r9Nzc0 z_FCWmYM*oJ+<)|RP1Q_2m)uuRKX*^0s|8zOJmSJioX&Iyz?M zN`8TefkW;~egQ!?c8(l80sRNhHF>#!{!gXI8ynO?vr)S2-Cr(aI0s=#lQ_@n?GP=6I35!dI zM?~qrH!3eL&&bSn_w=!Ia54C3qNbtq4fegKx38tOomWUaGAedq;fI!vft8JevYM8I zvzw`fbz)L#enFwAxO7%_?(g5HBO_y;-hOj)^Ty`3FQ1H0Ob!YO4+;)zYHm$S&(byc z=;q-)F*y|%pHx~}<}>6WDk&oXOH=Qz{rS0jZE>wJzq)N`2%pnp@)Qt&kL8MnKzx+Y|Na46_OC)jvgBFNNdaJ{I3T%fg z6t4a223JTG9>a}xU)&9Z7nOTj3N!Cj=WaRAIOA`f05mvb)lQ3i0)?PRZn+fsZ9($P zAt$o#U~x#K!mYdEW}d2H2pQO*2qhAp1`&Bvv2abhm4qD6sZ#)y>2ZteZJfH$cM>=Z z<6Hf#H%3C#W9CnWag1@}G4xZpTI9bMfHKUKp@-67R;B3KhiA%{5a=k$eJwbTWN;?N zPw$@u()}!mPJZ}~*#RKF9n0-yzjeoBc7kjP>H?m)!DNygZqXn!<;_x%rqk9q-B?^z znZb<;C-jSTE3F_?VF$(;{41YM`<2sQA8mn@pND?vVre~086V7*V_H6!aON!v-tuT_ zeA9?Uwd$4J(MTDOsCVciFsN1i^Y+7@1!&VgzU{Q>R=en+Q*C>MrCtg?3d5Cn8A!cJ zdvAC!{pQ2lxJ|hSn8~~?|HiqFOsT)?N31M_pv*B* zXzO%P4H8lk3R^Ua*)4&^7@hFqSd(xdPvGkA7O+{?b%p^$l7?&{% zmM?rZJJWaW47z|j%D6RotqIK%trc~f2D};Isqed#DE!-Q4qL8b8LsHO3?C`xayW`( zrYuu4s#%Av-^aBY(Qpsj+T4Behz02?D$~1+ z1`u38jGk7!#JPdAK4r!0^9F_Jn({Ab$3Av$6`a&H??gH0=msOzhfY!~Nttj=ewN8q zu9_PTIKC~?UtUFRklL1x*&XoAde6g-Mw6F6XTuN!&$MSzOyu#p3b{FvNjI`5(Mv-m zW@=N4B-6Ht>7(wxO?Ew70+KB^LqDPmPjb$;Vxj={Yd!&ZTHn0c=q=^|BnV*gNi2Cfu+NbLgPo{w`d;^Xm@38| zchlikDQ`Dvn&#UdtagFan(hK$lu|WJBE8W5*91mw{eN7~u)vbDd{U!rlEFjj(K5H; zUYtpY`NqEEu!c##KG9HLXWG9H+!NqpX5xtWZU2mZIfA}(Rj&TQ-(Ac`3YZpb`_*j8 zrgDN=<6(N})&ADN&BdxF9|gLY(7fR9E;vPVP9J#eqq=-X{Un5o9 zUSU)}L0gw>$z&}61VRh2+UzF9GMX4YA-kJC!N9DasONvj!(nd?v>&VX4)y?Uk~cg( ze8m_mbb#scO#7drT(mz{GpwI18T6Wme;hHsG>0A{mUc$&-BTBJ~FV_kKt~ z)8?TB{w$v|bWE=Qy9}~eVvsy%6lZ2CM0L02wfFnbKB_vsfN;=`<-vtc^73C$e&Efg z;n^BT$!ti#r=NgcaRCCVglttO^)$f=jfBbgn-4Dh`VL8Bq2^YXI(xA^K$=YBfC7fn zk$WDXb7m_XUjcRURC;w-ft z7}BGAj#&<}QGZxyEM@iVI+#|v0{v!B5a>#*z*c9@lYs=39uQ_6(FIWRnY2MAtL9FU zXCtaq+W+Euwj}>V35-c`ZZk%FK1w`415E)D2Mg_dh?qWMRB!!G^)Ofaj_f93h+RRY zn~3)pq)rN}28o-c(7s%4I6n~U&Fl-M?-R|%Q1oD)v*kAw6>v^0 z!%N`y)&D`(h_MZ27ssm_@3u`9PW*g+s&g6wt0HEk14GTj@7c-W=qSyT_vzUldiHCa z>G>(WsnYlP*6;5KB&OL2AWrA}_`TJ}fXyHQY0D^0s7wjlr);X5I_qBH(bS5OjQU1z zg9QC53*=_SXoxmI{_60i(GDPAPAk zAr4drxalPr0S4SZEH665Qb~v_+A|h3au~q)skE@#Zc!}9vn77~7ss(h>U7pON-BR^ zh@n&82@HpC(YY&An~S-6dx`7xa+`Yx4ynG=zyDiO@J{Wcs0Cejt5*>^4A(CSLOxG7 zmv3e?c-Ek8%6R|rU4^J|P3&2Ht%36MySR2*!;=R~zUX%m6xIMs0RG==K4V~#UFh%k z%&!_1b9Nn|;)yn#iQD$Vu1`c~h+l%}yyC{keieCs@w5(+-!Ku7h#Auj!bF;=6f+AM zBl;19*4NKi;m`=WHL%Tus16!ewj&w6qJpo{GQBlSeTbzhg4$4NPa^ zdfjCWcn=B@BY=LC^v+xs3u^<)wx18_c2F7q%@0RL_16@VLuCD0M}e4$MB=ZCL7k<> zgnE`sZ>Wefnm2_ZiS@_Zt@P_WYw=u;SyYx0e55Ly2dJ2CJn{U~G^+Ag5KN>a=b&hE z7KH-UX!(cvbWZgY2yoLtkbCNeD)(#4GK^@Rk0CVCf+8i;ffqVV_n~@W9daMMxJj4tb)sL+?2%xx8;GLv8 zl_V2O_V}#m1pjyzw)E>6j-=&Q`m;d~db`SE{LbsKFF>&y@rjj2(~qgix6By(ylDAB z(g($d0PQr+o@Y3SOE;|2qZe3j72`udQ9M(8;uF}y(TyE|+*%@kgAyuY@6)L-e~NlC zA^-yVbsRaN_mByR=*szWV4r(Ap8&?Znp{!&uQT7J#d!c2!97jEqshhKvcN7&&`4*`y|gC8oD2LX%#Pla`g3&8H%!+y?& zF=AF5e2wirr-;~$j_KXN_N`wJugZY{ZGE>7#BblN6l&NO9c^tsYvryK4TO5BCp{?@kb5Y_6gp2Zye9Vu%uBQMFOv-jmPFN-1L zNC3mYu;7r7)ra&hBJM9#Xm5X!kun^icsDD~XMu>u{Pg_~P1KMG%!&Zsx?SPec}i^c zays70_g$AnNC#ryARWgyU7c^>!J5R6FhQw>&n9rftJYnv3eI7CAYM;%3jfeCuJOed zt-!XcG2*}3GG*vub}zpdp#pvQCK(ap)v!gdf&6*+xYVM>{{5OBO@wf~T_jB}ht}FkVkAeO>+?N$WRCe}PZv*&n8r8R*R|Fl`Rp+rbzS1x8 zp0~IYoF}LkB?gX*MlnRTYHoj%^@7)5>dUTDsE#wI_IsIdsyf-gW1Y9Q=cq=MsgM;xVLODpF`zj{f z5Bk7@_d7FtK0u~0?8bYn)yInd9_k;UR#8W0-6$(&^p+9uPLRMo8qlvwOe zKCh`99l*=q{@?-0(|fobGK8>Ue&u}3@`SaH3W5s+u&N>ILT7vNOZYfniMO zhpyZ5kD8{p^E_ySfE z`DCRpmT4p}XJfhahwZF4mz}Om5N`Ee4xAX9k9mQHsj-|27(VB`iL|lMNj*8x7wYxlOIUjF z!VP@=y%o)bx(o;>#Fkgt8?abX!oWqc@ui%z6f+g()JsL|Qz58UTlN2vo>tFbq~StW zkkuIh2lpPOEExjxQ$sK${QS|und1xjP|$s5b0U({4|um(s<(kShK-MDIyD(?WR#Qo zOt9o-;8rB)6B6#lL&2o|S%MJ!k5)tc!%t&Wg3b(NLQXYzjd&OMITrQW8|4}CE6vaI z{vG<*#HW02KZsq4or)Tdicp)Fb3a9yp^T~h!AR3cfrv=d!F6Vc8FY8D8)}9z>!+)O zKr}q;zw_VyumWVp&{N@cn`4DCNsOR_X+c>wE7Ca}dB}`ud)ZL4M5I>LltE=f#ku#w zchlL5Z1jjc zUtY)PtS*NPeEKRl9-46M_Tgwca#)Gei-lJ4wKh}EZ+G#^E>VK6=6*0RszK{*;o1+e zlEhH*_#C!F9D&?M`1JZ&z=%X5bQSw{=qE+%fUQNlaX4f*pRlbmdL%3Z?Jl}fl4U|J zcA|)k)~<${=f+B;>=;T+wy)Q5Kme9Yq-T@)=Fys6iF1}f9P^F9zQQNpMclP783l>% ztGzA2+@Q)b`~g)jXBi;a+%h*Dv~a7Pd!^8ASo=Ox12k;*k%mQcH($e9Nwmn~M4S zjMobb5xx~inI1hKjD+6BLHcd=r<dulw0AGvtynY8^v3w&lYk`ICj zgrFQEh}3%`)t-Ol_wRkfHHuhWeJ5h|7w+ljLctm~;lhEph0ul9tG;*kWZURIfYbJs zwd+ZJIo|j&^)OC)(Td=EWwjFM=T)Nzn(0(c7OS{_WpAzn?O<^AC$2Wd&sU&BK{*ho z0iKhf)$uaLj`xJFg>Z?(-LTLZK%M)G&xx$dfL~HqP9g)Gl2fjmWl2l2xkAdp*8ToW44|KM*bF}bpAK!TB(0Pf54tndSZbu zK683|^s5S@3Z)lB2WGG|Wm#V=f3ium{}D~jwa_E4+M=*NP2xV0uVM6ef5=rHrrPAb zyy0w}@a3=&WVQS-cIiQ__p(}pTEi$#AH-6ofqjeAiygqe>>?F1f-sJy!9bqh*Ze6) zZyHeiCSWv-saLsf1)v>pL09%-3=<7XCu7nWO_eppIKau~Q$S&+Q@A>(*?CD5BIAq2 zjow3EEDrRd+?sJ%a8w2JX}V*-$UF)<J<1LCvHp)f5wpR65BVt+N6KZLas|Q{nZ9cmW7qccUs#`mwtmC%*RY^nYFb zeQ?Q`b~|(R)HCeI+(82a9Bq&@;ef32Ji3veg*2}wsf{@}-=E)TsX0v=?k6pyjPu_v z6GLe&Sm_Sn#_27th19Y_4E!%=<~Dui^N`T{FcmJXhiMUo%?1+$RXo++jR-* zMg$W#)mIN9?g~re9kWmP*U;LkEVS}qGGkr5|An}j?mvj{FB8K5S^;2}!P*Aup_x_? z8*E#lOF7-kzuv`K8G$;<4}r|`b54wn%Qp?qo8J}o%PlGJ6WSt-3MNU=4d<`Neh&f2%Z|hMbHv%<#GU4)5<|o+im^B zok8Sl$?`A3rDOSfxEATa0;C$ERgsaEX3^_)RoxG#$Zwfl%hyd&Em*2Um)IKY!TR6e8b_PRBfuvw z@^DWM~i+ngED=(d~x&Ht@;-P*QKJ4T6YY1S3@z5C48B!ov%r1O20j9-hI|T z)vKmjk|&E)uS}2ays>FZx|Moq;m5bcO?$p#4`#b`4iDa!l>gPk z+xVIY??;}tlH7rUz#mpZEqpmTn8jJ@)-)(iN|vW#P=|r|o~3tUyzq({GaiMaWtHAb zmWHat+@kfdISGn^{Mym%Y)t2A5(esonWi&1Ut?8}C76(V>Rn(=u1Soh7_t`J?i?Rp z)1HS2_HK|niI7y~$}7(k9ZWazj=$VPY**FW#kD&uyv7u@2Gmw>=L3Q&p-RJ`1B)xT z66BUc!T#F=Je_^qZ?XoF;Oa+l)wYe=X1!EViMYMnZxzph4L< z=DS~3ZobUr((dnko|?XSe%PoZo2%IVm85Y&MdX;XffItaB4aC9bMGj|+fwZ|uchiLJLR7YOW>de&fQOmSAM;%OK#G! zC1a|pP{y=2A8|l>s_bw6d+gz2%R{@SEohb_m=~VCx3k`v<0wZR!#+S@`tRXHw24N$ z<=S$kD2r`C`;uWVFU-SOkQOj~W;*8xXcUHv`8w|eunq751g39*7Zsp(K-q6P0lEUU06ll-I)tQi9n(!oP}k6CNLJNZRcE^?)r7 zV52e^s#B68nGn<-8zL2X%}YsNE+-W3v?sQA(Zc215Hp|wg1_{G;8{pDV032iA`@yI3%d3csz6;N-~h_ zFbeI*)R4XQplss{=WjmLEM`-^-v!{v8GpIs{}C?@JTV#Q_hkz815{?9X}~>)jU!?G zy*+ve&T{+xA2E;#qc#=I;6WXAq1G%zmREp(^8*O5FKiny*-dBY)M$D_&4)JHGP;MCj8bWu}_x|c*@!qLkZwj zgF*j)qg3=)iv0ic7PQW`R>hiH4M+4-l_k{KlaCD!4kZdj1TKm)YCwl@n^EL~t$krY zsa{Tt;p3m@jYCq_ZNAap17@~sHFtjbGoC*8xjv3$q4Ki-uQe2qwm_6#{S}@p9Q}$w zu1IuNWy?tfGJGyYvLR`Yn1CvjE#*ci8uO#9UP7JR)ft862K*bpmMuAb^e09r>%rs( z(=THL(U5I{hm+6du^Jx{A5Evf%x;iF_rvpkoQk)7xZ33z&Y}0XRvi4pmi8$#B>ZxR z@X1jMAsq?*y9`q#sUw27qS=;A76OXbJt4*iY`2J0BVCyP=kUuYf9aZ7vfxE2O}fCb z1oUC1Ll2ZcZ!i?N_&L!(=N&TMzh+{7eIg!TAm>YbsVQ)?R2=cn3MYnV(UFND?k@zC z?Q`bU9o17?ILPu)PCY2!2xoMZ7-F?0NRYQ)CM=Y_nwk0ZjJ`jQNC<5vJ+WA5Q30F-2Fu2 zDL)wSvfsUaxM2$Tbi87R(#!-y&J?2=!B!Eng_HwlPVL*HjUnM0e+x^W19}Dtr!{ky zlu^Ix%Y;}c8RLN-aPap89dCJD;_gtAu8V>p-=0VfSU$2)V;kFX`TiMoPh50ap; zU((Qz&2{y|h@kj*@&2y#V|qp#amDaU3uAmxwH59MyLY--d^|jX!agL2Ta9#=On(!n zzho=otJcw|#QTpz>U`~^ucC87Lfm&!KY+a$q4M>ULi0f#@{D}?RrNY`Kt0T#F~!5h z`c9YL-mpl3e1m<6RLbtYYHHxMp;XJgTskfF2_c_TP8+`nH`7YL&{aEz;^5rc&oHaI zR=P5nVDSOPY$j`6P+NNG_#B)w2sGB0xt4m_Yl=NzIWgI=dXfwB9Y&gF)@f^3;i~_o z=CMTxo3fK2glZ#To8YgFJFC^&iGN2GvEEp(>(_5CTuRwpr?#X@Wb!`_iYw4zs>k=v zY)6zc_Ao4ww*I-^V*`#T>%99_TX`s2Hwk3NNG5RfU(p#ZAH(vwZ@8A``mXp%g;5E= z>bcgmt@*Ywu2V|<91o)yz{JXk6#DfQbTWN3f_D8A<#>+X;@sc!0$T6!>pdY%A0Jl6 zEj9exmo95ndfF4K4E5wo?SsiUK-A@-U)1%Sp90mgH!9AS491E4irzTMPA&h-gV{HK zQ8xG;CXK6Ex>T*7gyoZT0~(+4MaEbByzD6?bZL%v=eq{_@E4gF;UUKUxn+82vt~Ub z!;8Ur42|fKq8YYog!GZshD>-#CK$`)#L(_#@5II>V6J05a?*Cd94=Uw4ldMqWmOvz z54`3CrEfF+BbCn}B|~F!)&kl^;dle@N~--UWVb>WTZ)Sgn5FQ!{fgR zVT}vQDHS90B!Yz>qep-DZ~|h4P-S~yz%fG2yGRn9&htC1w5)IIbO`%KfwE(wQerwE zqlxOCK!9oyIPy+5OOc2a7LP61l#(;5+oIk zP4>i|Cw&Ly6TwWw=H#<7sTK+N0!F(_fW?l>a&*_dN_ z1*tpiZ-cO9s?t;RK_%0oX{+l5-wan$dn+vQrVgA@bs{zx*NHg<-tTCV&;Up7j4>t zpthW=twr>_2KieVK}T<_BXo0sS2=y+)85|gT%BFNN~YJyhj1-5k5Stp5Y#!?W0eRt zsD-r=*qgw?nSk=*W4<}d^2VP;z~{&++em#w1dEjKQ>3c-3_3c50P8A;Cqy-kRrU*| zMLRd46&J+oJ8j!?ktQ&}*(I0zJ|SD2UCv+WH#N7pzhrl)B_Q<84se}&CsctwCB4Ki zNwfqX>DMa%=dj@jgOpt(xVf4CtzcIPVekr#HE^tcO8Z`)9+5`J!~#I`cCLhHrRRT+ zUYK)jTYdNd9{K?0YfGNg3U1qk&mI=6K+(k>U!bV)LAc(lgQ+B^4aRbFOT$Ht68@+T z2e~;Qa-?oC4x{ow%l|5V12IhJMNB&84lQ4P zE!M*ye5TA4?Yx>uz$4|4br6L@{hJUSbyr@6;dE!ldyv7J!JN7f&%RZ7D9ccaX&7?0 zfXw(`ac*!PXQKDJy%RhGbcXGiub{0LTOXd6wn!U8kZbK6t2J@>!>#6 z({(RHPe?w=u;o2EP_jeNrHYJ0M?dLF(;rb{04~>1_=NbG=&?yJwS*`i$w&@t1!s!W zpK|f84rIo4_p_gQwz;AClUW7fEz(q-+ktkAB@pif@}NU`zrhI=(84OV6*KXe|8gYC z4vnJ&bpD`ij)VlOZJlO*oFc@TeJ4Ez(no`3`UZ+-Ff{>d{MV6}ukt`cjNQ|d0A8~- zDGR558OE@|%(Q8QyLEVpw_sbNZ#84=G$&-zgEa^}AB11a$var~ZrI`{r{NDBB|7jK z5jLVx{|<)#NoVVbL}8;H=n(NO3rT+~)JDrHzJVgB@|FF;s;Ue{Im2il2-KRn9XBI94|&8g?X7Cb!U9XlJu&pPZdYr84}?uja1@rG&$^m@b#uOh zq<&RtG-M#5(gLxfvI6LqlA?9ExU?qbjz2xdfe38zC(*2dn zt9YOtt36+z7RYmJQPy8L^Btnj=mR1KQa|xyXbXk}t2*(+F{Z`)kmW2g*Ky&-zzbIdW~?Es~QO_nU^tqeB?ySAReY70r;ADZU}1qFy>6gpoHROqbrk%TQZyumeqP zMg;eMs98aSOz8hZ;UYDq?PQ9Vl{c1yMlN!DNXYTncw1GNxuo%%AnV!Gqml9-@uj6G zJ%W6%EM_P<3=w_?!3k-;P&YkFkbrfrCB|WcwL9}-w`=NY6jrA!YE@MTG>Y8km7x-K z=Vp@fDG{JjpI5_|Kwz#UBzG|(`iFIbt8jJqjg$Bqt!=9*jCID}DLUBCSxye1ZtMCR?HXV&T z{w)|k{*+|aujfVj3DI~nxQ!m{u46{-bleH;Gom(o7e6llGb64t(EjBt4u_BWmI6&gOAy2b1MKX@N;y4Z1hVubD%H zAho|X=^8+rd6p^4XI6_PZhWbtaT-xK&q)G1YEw;C@Xw{7&0DO;fVyb@kO#Uj#jn~( z=$i=|s|Nwk`eazx7pgWLj0jg-S0obu=km8aRSqbO_|6w6>c!E}zTMLUXXptxg3hq% zM|=wACX$Mk(Nv6ae0;Va^_^Ydh{KkS{oAR^Ih)h`jsCNxi2Jc)b;3`g8;bdkh6JlD z4V5*I745gRT1g3LkNh49`+$Qs>!-+svkYX~wnKT^w}JO1-;EsVXJGlVWFm3M zX_(9o@VRb(2tePw%yj_Yq9e2)M#zcVaN+%&N+;#MDd2N=At@~e5!k;Dn(jK-`kuRW zNxP3SDYM7=~Q2;)n!$o1hqm&S{H=lMYT78Il)GbGD7soz^7Iht;S zrDb%G&7eik-wO@$ert>W9l4)bi6#E~H5=ZX+K}?CMgX54LLGy~$~?UFg{pEjn_i1u zpo4%3cE!0SkJFxmMM`5cpL=}>y%Knn))eX8-$K!Sh5EYVS(<+UH{5GuRMzTZeSxPX zWT32 zIt1m41=OH2Sj8%JN@?M8(9IdFZR!1`75_K#L}LHoouen=R@M7>S|B_#&2vN|I}laGS+Sl8v3Lw&dF*f=ZV`>5Cx1_w>{B z$=oxx+accp6W5RWdm+s$&?J8=8VHg92sae_E%y>w zb}sw<1f*y*xmhGk1Wz3Cd-xSDuU2>@782)o8_`G@H0b1Tif#K`oiY{(e@-O+9L_af zS)%_7s}^Lncg6J9)PV>%uxJJIEHxOIwWsX#{i+|ySK+L+1Lj$|B!u-kzU}9zuFmYh z5yF4XkMpj7{gm80%mCGToTD_(6iR+QYPNaLLbk02|I%@#SXhc|}VVPCsDuL->=iz9* zbD9*#T^9n0(C2~rghv^R61vU;V!XX1b;HpDGg;TP{LWcxx>FKi3j{LYa^C{1qv7R8 z;nR?xsc-Rz$RiLw%_Ze<0T{GZfcCXUbjW|S`h@B>`y7d>zMZ?8o0$(vW;0&|mbswS z2iZT3&l2up-p~K>{%PVa(E?JwFCaF}r^NP+g0Qh2J*{uSzlbGH^a^rSLg6{K715~t zr*z{G-mv5^D~;iiO~tc}CQeXs1t#V-tcct%$bJU+M=?uT#VyqtfU-Nrry0XGm)W4{ zKy3f2aGfg(TaXD1mfD>J;*L7=(86(=vE4XVL0NAmEJTjv6JNI!K~$^R;~=Vc5>ziH z{OhxhEX}OI5-*O4dQ?s;Xbrqk)())PDNChOA{~kRl=LVq)|Lbm;=n4L0dhOx3C!{0y=@({oboE3`z$R-uD#_O^v#Z!uHw|| zKvFLMW1NI)hS?V+a5Vf9Bri(kgKjH|xV-3So6$NA*xRkQ&$V}}e~Wt7Yw!T0%BgI- z*|}U8d$p~glX!$D{gI0VE`V@~JK?gO>7T~ph8&4XgIg=oWcDt^SyNn$yGU=AKSs&u zTWX}Wkc=Dt8VxBD(U~kS{%V}sRJ|1rmDjt&}vyVJKORoDY;XN zhX)8z{|6al>R?zW{lA1-4BXgJo=-}AX|1IGlY57YtmxS#$$@F0`>%w!a8lDs5AyD@ zaGMxJoT@ z;d9QQpq%(`Afki*2}JSxZ1|N%uXIbyRR|R+ZYBSJ<%Z>vGoxU#t#NKunzZtP-Zx1& zuv7_X$b={2F;WucAJu-t9P3li6<#d3e_1ciQiYo79FaZGI#-liE!-adI?5pPJ$W$s zOZpS2Pv*J2q(3^j2!Y5yE;O(AdE4d?=nz#`oX6!HP7{>Ui{nBFbdfTin%k9^HaG(d;^LJ~M z^?tVgJnh9lirXQiGeB|e(-zvuaJ%TEM-?{a+RT0a-BG+lsFHW*l%TqX=mPMxh88s3 zK3{_(=4NaA04t$-U60W8YYF)-FthUsTy>|zc{{TH2KAqvY_yA(b^b`~1GN9y*8b-# z!mqSoE8 z#wQz4wi+3|BwpP}JmO-)ZRDRVv>1B=XN8=xg+~-};!dw^gwM)P7NF#k;AH6zUGs#{ z_sF8>#wY_kvAVbll&>U&2OGNmYLCC>q@MN;tpchziaQbPuHdinHz{Gk#K z?Z5LDNl?FytYNaj1K zD7-amGj^)3=NL6qml6^%wJK|ifSAplPMA6P4Kbx_2oG`NTe} zeZiuO!lQi@?M~I*&8)Y=URI#M>CM6g(iDb^k7l1&eDF^MY0Zk;?E2A;Zx_FpwuxXqIvb}0FsF-O@~sTl-I~E$v5Shjv2anaZ!I?0eI(h z;KER&q=Hxyw@6X)Y$l3gXrxk$o8sUWOW>em{?>ZHF95pKpMpqW0sbp~A-!3dfzr*M z@m3>)^@`$&9#~e-ua=u%uLW?bc5D3L0H5n=TEA_uK6elsAZ04(AM~%H z|NRm0`CuSuec^62@I?PS?{0LH&?Q(30-(kOJk}5V_|kbJkOW?G0Q&MLQveAtLW9%& zf11Db)Mkh@Im4?xX#F@rVXgv`97sSz01~7?cv*5J9pm4kslAw8HCeK z)j0iq)G6^Nr@@I@*JD@5ynpNDg#JI5Axo?l8?r4H3x+MgNhBRGA}V(A_ErD68S-R7 zEBXe1ciyJh>j1*j$(@i!vAqX0{S$n*S1g=ws^6YPj0xXg_Dz%SouxUg+K>2)80WN+ zxP6R%;xteBAoS^5XH%@mSx(1BIOQcnpyieztApt5)3X2=F6MLCRu36mIx2`QX|0)n zQ|ztukN8HpDT-Wieex&5jY+|KQaIk!9^wlj zkTTC6i?jA>+`5iw+$>(pM}x>>1KGpw4N-F|df}_wF6SPxx#ndMk3ZlGy!HsmcY#d8 z=*FTgmp_v{cz9{t)>`-e7WL88lqLz|Dlm3VUNR5yTj4S%>sM(Em}Aa*-C`aGW9m zX!JX?VGlUBDPIwN z-X4%b{v(3^jtQO!wo;F&1A{Ub9>=ecps2OILKa-TW@|;+q=u6UcpyI^G!p%diW()u z@ERES*+D{UN?9LhY71VB{X&r$7vjfw%?(|RwZ0t1}|kJGxp zJe5%*R?@~pbPnUdN#cq{cD) z*Ebc7`EbaS8RO0s#!Dn8l7pY}PkxAgUBaZo#oRVNL!t3rj2pAepW^Jd*N&KHp#Ijp zb_17%Xi|6=`^a@#NNJc)UweG8xxjxGhv%vWSYyG9d=_kx=`Au9T}Gt9avb(+NU|Ad zruz&M8RyqdvtTAa%SvVZ)G1^9U_H%DS0vqKVU#V z=icA37Km%=l+Vnnly<=Fri zS_MC@lW09EM^-D4Ea6*f@zE!*T#NY93M1+Yn^z)xR;VZ*oH~@enYhTVW@gmXm26>r zz*x$F9o+;d|Jx_!RYrZXAOZ#A-oFCRCs{)8nDMVNpLcaLh4N@ylx0CQZhS4HQ?eLe#3Cx`}>W{Rg|SHGApN4;OgFjkRrg!C7*$9xna?8$Ug8+~L`(BjU}yQObm zFC;2{yra6eHp}vdILN7F3%^ONRE{;(BQ_w;SLoz=aMOg#wo)G0EW(SAZ&&Yur=-V# zMtL&{exlJ29>9?l2C<1CZvH@m9N<|c+&KlPPi#;bz_FRYkcMZn1If|F1%9LyAfD&1 zbE1-GrL5S4t0;r99}oPU;9%M$_T{5d?l|dq%;bi_Cb0uhT;d^p?ymrW9N>Hn^5C4+ z1Tw=O#B$uv=z#ohMDB2#=aJXtpU~L$LXC0R=@i-W4ivR(zG@l{7k!GGH=W)2>GdlK z32qpwv4wx+!x)MoWXUsF5@v2&&p!AG2Th}^E{;NO_d}x2S(B%EbV4{lr-mBycaczF z4e>1bk)<31$13VrH{7O+7ElJOs^h(HK@<|W>2)+SN@OA_@spB-34c_v$mo_Rbo?Yf zBt!`BPg61agisqU1Db+QtXh7eq2Y*!XW+p(DbOS<9YzdhfMboF%PnU>YQ223laD$_Y_o0bo@fx5ZD0u(5A@#FU|^+qc)MbHX= z@?sS*7F-NJtZX0`FP%~lv#!FwxtcxaxH6li+z=g&j`#sYr?UD=8JGj4TsHw&6b&=U z0y>T?1Cb7P2#PBKF~E@edwqV)z>j~_pPT^sJ1&s-yIzgR`5!*j1cG~A5|zs&3lTy^ zdXo`J3EnFF6E*v~%r%@1t-Ac+hbln5S)<_F6zc@7p2bD>(wj7*)S5f1MavTbO8&a>Zy-vG;f za_##oMYO{&0dplhRfuoBh_ijcXOl6SDJ>L2f&=0{{%~=)g{BHgkNAGQ2@kCa{|yg& zmHaA-Vh!*?;*|IBWV6bRYX6(occr?zIK*hlgKlfZSOsUK)PF-FBGr?qh5-mdjD{*^ zL1(EFmn{R?8H#WB|1ZkkGAOR7X&2qYz~JsK!QCB#TX1)G*WfS^9D);EgA+7paDqD| z1a|@if+Rq2xRbo^cj}x|_x`x6rlxl7AA7H-`{`c0RJ6e1W56!hg4SfTn_#gNd)eoer4|XqR{*>P>y<1928z|3rZbza2xH zMJH3&PlZ&6y9xsAZ0p@M*@`QAG^rA*dnO?DqCa>H8>1Pzw3ZPNCoZT#8s-gN z*YLnNyE*1S4iKY6(w&u~Phme>;KWrn9g;6xz5WEl3K1;RQ)fhJ_#W>5Qof5JG2 zj{(JHJ~}lc*bfXej-{lf#L@t9BJMc=nFA3KU@F^6%!)ciqu)ZVG?HFop$L_-%2_F` z_fZXztDauQJ_r)AD2HV(lGtv?lnbF)09y)(y%TP0K5B6M$8fV`eKC`fkOl(UOQ_CY z!$x)l%0+#2pW<17uPi+q9KewgZxROnd!6u|aAhcQIr)lh)wB`?8|7-sa26M85Mf6+ zxaivzeG^PdhWxmdf_3#vv!E>^902QA4Sv^2SG%(JBVq}c@DFrgY88vFr?HSmIsVA% zALqL7>j9(mS?Ynd5k8n?@PUS=!!pU-**1meO7<&EsBkxe>KcfuumaS4qK||!@;Myo z3)_}}viaw}32XgWvy!sNnNm2ao{!4}c0|SF#}{fo7*NRfKc5Gx-c-Wpx-_<*oS_4> zgTp%@mB$bOk4Z0x;}aZUV`ctD08=0>U5Qn-MB?ofIm$IAV4yGfEMo%VR9ICpSC|#! z&6V>$_H)Fu2*_;wY9#g28Dl=c4WJ?|G;A;3{_#t{N}HP!0ooGqG_DCU|EUyr3M@$* zIZJB2E?_AYk7S6}%+&Y1jf8PQRuOwcJy?}_o zWF;kk>tlF;@3<<1jl%EF(~Z?tyj}p9Pls>&;g-gDPuAb9ILu^abcTfM5)(>wi))oq2Q0n!rhj8mLTA79nTupF!vo{x z_urI5_@>O758m$>Q&F~*$&k58fRIG2SR>_#BE_+abggKDxiGbN5td#_%3;C4SSC^| zsJs3GBhQERA;O7PkQDC#7<#o6{;gJhbw*F%tr>%!fT$wzmh|rF8 z;%8!mgW%*WmVWieRQZV!aTF*zP2A7d))XtMvLoqw;o=hgu!WhT#$tI^Kid4Ay;djp zJ`uOwVc0oJ1t!0HKUE2tllM=Xg4WGINpF?}*7;OCy?>Kp6n$ebMzzBi%hM*$6q<+elm{iFw z`#67ZPXE`rsPtsq$X|2>Y6}Pxf8FoR6&4vU$7kD@WJY=^OjgG}x%-M~$4g|8B)iWL zL%D44+(f1xuX%3|j7>{(85F+n2PWlja9lYhbpGH=`H^vg`{N~l1o;8Jn080{ZQWzF zWStec>am#f@A-;*jddB0krfy5`?0{^odA{R;)rx8(kH2|4M^CckwKj0hd+O?@39_e%`|ByMh*efGzv*qrE+MLdVwisWkAcz$#Wii{r7 z`epKUE@@d0R;TCRxOtl|^5{T=1ltwbo0>FKGHPj7uce7rDvk`mXa0)%!cg*8ADC`K z-tyt-+0Cw1&344~!w$B}{;heMhp($C<|QG{|2clY987-u)W)w)lmxLJjg*)EI+Pp0 zuM@OK6iSu1JWJOaqbvOSOB>s>JyPuHwJ1R+Q1XieD$*tzR*d~v%O%9*R; zl?G|iO3W2*ysSxo3L5Q^ZmgaE)jmw;&q*bHGP!9$w*!0P?E zQ2Uchc7d4>%@3rfHUIWCUF>u9Z$OuNO2zpJLr`w~fjtvHW7_m*jF&{GZ5@g)=x(;# zrJu(L0u{wj9z!219zr?y2NuLroRkTG=7%q(pA^LBCyu`tTyQ?u<3lM-9E3hlBbb*z znizD^&26#(qL`W2O=Gc3 z>I^k;&Rga3ex}uza9#Hw$~pS1kC15S4m@6+UQ=ry%hUmfO1o<#8kf0R+2e!U`AF4D zzHZn!CpPRx;z1qlq_;KjsR!G)1*oX{>G?aP6I&kfqwYD$nl>|FPdW|l0LP$JR&gOi zx$V3roj6VBRPbAWeGIq_n(Py7=V%mHkuDaiPi+EK5$~HQSg84ms$SgV9u3{00TuE5 zL16yV3{p$3LvW-+7?7w zY_sT5UU;{P@jTuR*RZCS?wBfBS}W-^!;Rtdj|7YDur+DxYdg1yF!HQApef~@RzjRF zo%+@s)WBJ$2ash7(#tOs-i|VGcd+kzJ~r$!vUw`j%w0}!CFj?T$%+L?)m_8%ju6P8 zR#c4QtRyRQtH^`nE8ANY#`A(iu{p)NtYfj@w@?%6R^?a0@9lu-^8C=%l5~#SDaFEE zKMu8a1AzBia~b%L!iCIGapc$Woc&8m0U8CDOj45jOMG64b{UBPN>mQ>EzxvU&K?N-iAj_E*UXFsqJleC z$;~8Ft7PCAPd)ACw%J*j)#C*iEaTV8nP`#FjH@xonfMid6||G%O|^gVW4u}zz9Q&% zcuxjNg>w&N_}bc+oS!e7wUuL3C4)L*9L_vW*;IEqZ(N)H-PrBQPFjSF0AGNH%YU#2 ztNG}dNa~Qk%iJPJ*}i1d`SX*X8bd=nu3ARa09gB_nCMfW=`7dJ0gy!;e{QyKIl<`b z<*oxpvl2ernh>;k{Zcy@;Z!Ab@q;4^R3QLVr@(I%pu-3f(QuqGu1&x!4CyG`EUj|3 zDX@b3Fjc(!qQdL@i2duY29$4L-YszT?Jp&zLN2BZ;j8J=Ln3?uN;z{aW*Ew(gc=pG z-T!*FTMfta^cn0}sLm8q?yIGYc@@qMY=>;hPZ8?1xMK<9!VLit4f%I~a$`xBs)7chMkA6W=N*4`pA2W=3MGXfT}gKHPzz6wI_}FY z@|97QJa{8ec~PxsxC!!J5kfnR`13UPV-`5mQ|@9_S!2=BIOt=wX6lIsTM^ zt6(^&=hMlUa!@WaqCc2`+oGEDH*x4bJ{*t$DdfTMQe==p6ZUWdUqyW+)ci}_0n69K zP-zXO>fbH|(7|6iUdwQRQllxTL6j8{w5T^pIo_4j4kPdIBb~XP%X>59(*6I1_?L#e z;~1O-9G=xOE~cC{Y9_%cl{K)QfG%g4K}%})ifeHxnkjS8dJ2e3d_{(!t3zmtQVo`= zM*6E;d-+|W!%Cqd8bXQgG_`)Ty7FdGtA7NxliQc24gG7aKiQPjUh>P?+$8` zyWe=Z_c0P}PUJv`wDKEY2u;89eVEFP`}djLn0yqd^34_h9^vJ5nkJdnQ7|LWTMImh z;aznft~c>w;WUMId+pCnSm`{-z^w>c<33Tu2@Cjt*G8xQ|1r##tE^rC5?Dy#^T1=K zQzcXK;iPMbwdmgv;(v#PmYj*|Z!h>t|DER-zsK2tAeI1C@doHr-D4L$#-Iie>O~yM zkuKJO^(s=rF|Z-|?!6zUWxjr3gLZ8dEWpT2&(eDI&h^-=m&ak^Q>RoLf`R*im%F7c zecQFU)P_7EwA|qnz^n2Fp~xYJ9cs7epnyD6DJ7%~isTnR^bo&?sI0pF)bqc1kKq2} zRc)vtaKHRKjNB$>zzJ$c6(#BsEBA->(G17U zzQRfm-jxik5oG!kOaV=xs>p?EnE}Of%2`d2Q_~)WcEV;lFidc~JeeY%%2s=pBT=z5 zc@pKfGNb5QyLf-U-XOo6$ZfKm){~_;LlNqj#B6J##9iL(?JF@9Yt!KVxWpHG>)SbS zm8)_^D193~tn?~m%!FOsR>4iEkXz4}S1!bpCe*7`YPTwQ0OoWxoTz*Y8Ar0oqhaw( zySv}Apk&IQ=&*-l$md`h49WagtJ1mE*>f1B(vlWcdSui-8j!!N$(PBI( zJ!iQbV&{C>j%+0}^ zs@n#Apt3zfj2II0l}qB3Z#p>Y%Ljd*$+EVzMV{z`Nn58Nc@V&!_#J^VP@*59`m2mOSjii`4O5%3oPbzB zzXeUGC-Qo08!o5y(e&c1Za?%2iE4T18Xv02MR5DoN@>kfd|~BE?s8PCH5P7^gbW(^ z-ZIGp5vnM3c|WR7!Dq3LV6(OImIr5R2T4KW?ty1!Y(l4Pd&hx*{TJR*614dl6n{B- zQSwmF0wqF!E&))`hnh;Z%o-F%bhF*Md%!X6-{?`OvtHt4kVOhpT&X#I{|hC z*&zB`ZAZRxE#gOykW?h&)@3+-A6YV|JgR{&`a_t{#z7<0Vuv%(kOtptR&;m`JPEr7 zo@YWy*Mbor7Usk<;yLD^JrXb?N@r3A*wuJfAnETk)l?Q^A&H+j2o?L5Il z(Czc(XN`q05C|5kl=vI5Y#@SfAo;&eQ2q_w5(ls$|w=A(1fVKd2NanZ#%UsfW~FNe8!Y=1&RF+uZdd$5t)p zg}6lQ6C)-4h{94B(ss@!PrzOh?_-@0wu?lK^xgPn?T)YMTf0zY@4==rTOXRP20*uN zUl^JRc#+(d$;$?rV63>dTL-m0{;=9~I+`~U&V6)t5Ah5~AgYh)ZE`j3 zn2gCjSUHfM8e|Xj%MO}W$n&RQ>Z5DyZ46QUOAfH$Z|KrB;XwZR8#*{}IF4yBUY~*` zVyd;V-?5K40YM zg#0CT7LImT+qR5n1Au}?o(!1_tzlantS;jv%v6Pf=`l3=_Xhg!ExN57eyX;Q(Bk;q zG)%9Ny(eMsjPI=P#P}M1l(8G7|08)66RI{^f@tE#42}&UBWj888dCIOC>9ut1rLPwdxTZ#o^=+I0pfEor#q=%$rhQVGq$`X(L4r!&TV7<~F_2poc` zLhMBDvM%sQjMELGtKLw{SsYi0o8!PT55s_QGp=k=mc7%m)qzSpPOJ|Dcqx&DiQ*8s z{{2RDS$9zb!Gxbp^R8w0e1=!+)q1O-Jaq8dDUp$eYG>DB#R9xkJQOL6ypd^8eCv$U zCS4|`^ykUC0?phXxo@5Oj*;t`?yRXZe(XI~{`SevfL%R?zV~rbw9oy}I4EBC*vS_eVocAmn@vNJyoNkfS<@Mp)HC)FIRuI4ki z9_NKEhj+r7Osv$NI}Qw(hu3|zOMiv%Pf4M*e6uRY@mVg{>r@IUGZ)SEzVMM=Il-Bf zQ>O#buo3e~Yrd;GJa9_9yCXD6zOaYWr!*XT+1I?TZue2A-*v zUoEW(af>N6{r$J!_-N#B@F;sq;moEWoD7zz_u)!;*^YD^`u>F$aOZLXHjz!R3VdB# z3j6JO^G{OK!g()bNxqET^QDuYJ$T`D()_71`$@_&`eu!<%EsOSH>LS-Itd#6J}Yn3*ECwBw3&5{?R`m4Nk`0OVT`Pd4{kkk`BCFn*W!BR~-ax+D1T z?NXvpG+Au30P&J$K$=C#9A_{vB-b4)XQYj*R--{Hl?sqoA3abdLD4$UUi%O= zp}V*9>6qxF^VPVAbUM{7Ug1`w-)@|9eTXaVm$dX8_!kPv`_QjVME%2vQlj@bcIAd+@zIb5mGff0h5{T@cUmuFOYE%z#4Lj%N?3Io3f$J>;zo1u zY?G13q|%i%Q&FAFEVx@5*Yd2!&?jthsMful+wA+#HHfq>5=fIiI64O@Qi^5-(qIg3 zsJr$-H>V{xAYcph^z>|B1jue1Inaxk?Or^*>9t^?np*zzazJ{7Iti$uGoh||+JS}D z@jR=7n~EB)+Q-Ec$Bfx76;s|&OE9~#HiMMmV(|MQP+3G35^dy!6f+IecT}Z1pHp`= ze6|0`ac@@5)gXj55QbR*0=^wYHZ7n_xr8}nUQ{MwcKJb3TIQ$|#I=vk>=|lJ&B7m; zYikUoSPOuD8^A&DOdT^Fw05)V{4G1zO8c`7OC9TVL?=c)a6A4Z>L-ZE=O%)AM$K9y zqIK(YQqt(B+QZU4S|Z8tx;v>WXvL_V04+fqAU(2$0Hv-z_sD*W^BJTXGa45)v3;SVc(tnDIZ;RO4*1 zgYWmOd#d?lGoHrA7)>$1+YcCWjH|lot9tV=pqnE|JYf)SKxa5fp`?gd3-{Wqz3)fA z+SS-pXjWC3f)!wSgFVUD%#kZkQNErOutF6wP635fHfho>kN3XnM{Dah!OBJ~!6( z3jU$jpUlaQ7&)3jmp*5_=tU|o;xV-00%@huK@L{4rj3i-$;-bN$P#5n9m_38zag@leKQgw0Y&x_tI4g zhg8S66&>Bb7@dj=U80W{7SFtioz{k1v!SX*--=<5)ON(FN520$HKBCJ1o+JZh7u`v z?o7_E6|}BnnB8uP{Et2Za;b(%AqZKQ&PyAqx(Wl32HD^~zU&fR2ec#uPbx)LP^Cz( z1#m$FHWufEz9JM?m82`*3q_QjVv2#7BY;>ZFtf&J9Y`7;D^;E;qd=p2K_^0Bd$)PK zPhV?qnQ0HK!IM-jUkEa*VRR(ZHLYpf#kk4XA$JBul|I071}o(D zQX`d!M9I*Sd58LE~dXR{879&Dt)r`C(v}eWeNOher z8h8^xcgY@mMp8ATkIjFUfaF){!kN7K(<3zt)$3Nk^zUU-c@k*Lt`--%IpHfy)HpU$ zV@VDGB==s)+sasl1VofNQ2Mzkqd@m?L9mm9To58SU=dh?< z&M8RBH1`8^E(!bx(W53UHLd7P7Nk!LzC88k0++%_SZe!z%`!lePMUr7AAao=gSMuf z_`Aspc!5Og#0jF>UN>bOb9KCy^=aPM_T5X(JANC$0G@K9A10c4W)wFu8qO3f+pu6_ zq_LWr4X^$|$&4X{?mJmZCdRf58B$X@=wS~#c82J!M9LpMhi=RZnLtnyBaYjZ0){W9 zxS1$U@R8{wMxHnN7KAcZCVdZd>)uv#ZfuOTa1K3VD=AFLrp38`ef>#eVKBtY0+u@1 z45~CoPeQ6xk8`{4rz`npGzYiB3rt`#iA!0~e;LCzs34*rBUu7Umhfbbb#W1Cvro7H zAHiM0Khmfy(mawH?p1fRuO=)4(aiH>y7FDK@9Q?^T*gTy34!M6wY&|-c4x-CV9t-t z#heV>YR)inE=-!>w zX7Mj(8GdU>E*HZdr$!3MbB`cUvX#gn(w~vhpb8Soqy%b7dvVcz#8r7`LJTFRHUx}Q z!ooYd7*E6eXvh+Ts^|5T%VOC1Sw7A+7LU=oSeY5riA4M5&=fGRs)-M%PH%JN^IVyH z9_Gnf&gNy7cvHUpS;+2kAjj`%h5O){aqQ*dXX3j{<0{+VGZAdPwc>?Dc2@jzgRCM{ zQ6Zhwr=KoOBlEfQQ zbKMtfXoW7o8P>#P42842!pF*lvXnsD?AJ0QZWf-+4&E{>9v^>fkDtD^-ssxs@H%x@ zZn*7W&5Y}vB)&pyR?h(6q=BFK4LoxNKI$m;MS~owthxPRH%CCwBEOO&t*pEHze#yYVQ*_mx zEG>=6{@L`2?=7Zd+Xs8(jF&y~rb^h4jr0CB*Ds~)%HD)H@`wTMPQ1S67_IGvI~|^> z>qcc&Axi;%-R?t&U$j2{7z)sE+t&>U5Fl~OkgMap#Z-!&bEbX8XorC1(9#@C- z3Vo$@g$?umnCIT^~fG4&w9hw`q8g0&-z-|p_;Ol!jvQLwl1MKOm{g-~-mk4@*%3B{!jZvpO9noG(`lVrE9GXi76L6(xSMJv00x!!_3Y>t7A%?a zxTP1ok)edrk>o+SOC_-K(`9L8wTMvS?1ddpPWC1^vN@NNFuV8@)`A+3HB zU`6+C!hCO%e?$Q+$ppNFrOeJwp>ZKMF(X?W3&x{~5cj2{0cruXS96_On_5+Y#k&7)C+@gdQ1gDo2?$@FncZCQrxGy0^egXUZ>wCnw_mZGf;M90y;*`?(B^e+FIm8 zaKn&9KCLWo)?Mq7QVrCF5@}FH7&*Rr(r7BBk#s12!<}j0*hvlQ0)KYZ*U>+)@?!|( z$z#cGz}AeSZ>Hd6Q?sGHSq_sg*<1w*5jw9rw`lLq*L{iu0=XRZl7k=bPm^Vo{g?7yYnLU9c`k=MhiQoe=1GNvHZp;HYHH8 zW{L$SuI4FY`=h1gwyJpRW%?s6{{5h`XGYN^+JxZDf;+AB@*W7e0u8Ox8bv0ziN@^G z7oV`8U5s?}YvCFh5o{mC1cy~g8Sik)ud4Of_{yT%7E~;&$)Jdhz>Ra9{hk}VDvlMC z+doFu#cRhW$o=}g-y9e5=iTj!y2Rfi0riN}=mZV0D@;}7uPbUFN z#RGg3JJI2>DHWS(JrdITzyI_&axGe1_hc(mh&n<8;vX;bKa58GRtiSL{YM>edTh;; zLR3=~B5fW{uqzcRP@-ax!eI*nl)ExNhyCLIZekyb@rhPn8w}lG9V2o#8ve?y$PLmrC*~ll3SugO7yGFTOVz(3 zL4CT!K!6_|G?jZiT*5poW!qp++Yie1R}kMtHFXX?;remh|KdVJ*YeSE&BcY=!nXs+ zl2^BJNkNE)PJUV>!lx%?z&ctNw)>&}*i%U;PRZmga251^leLMzjStMD`;(iS$d{_p{ZrJ1rihBYDx5^+UO z<59*#pFetWg9B#3p_Z)}`++U;Em)IKmJ6REVv!fx4}Bb32X)xMSw-A~~&kmSN@qSoyuzR$pNn z-5KHh7dW7m1031`?V3IXLorFThN*&bWX_8I6f(`1N(O(JWHlQzO$qMkc8O=C{mT$R zSpSs$`7Ix#)~o**!LLkZY!?*Wz4(ycxr?#UX%F}Z<)qNw+M-to@yv{=8^+iC11-1E zm)c4&CxO@XjZWHf0Z?aP`^0L;CvV%BAt|yR%Y1HWU0l6!(P!PdAMg(|me-gg8nBD% zQ0trlDvH*FWAwF?gaE_^L#k}CYTk?R-BX_A4GKE>$5aYP+%kM*se`qoz5YYNKtykL zfzBT5P3$MM8+Vt(_O?s{B{bkKT5EueA*;y?XpS~U&5lXZ{>$uTKQ~99{j%Md8j`vo zg4h?bRdosfl@1KeQmn&CCvHf9*f=ufic)Q-^LSFh19RmcMhPE7T7IwMNoMZRHqg7A zZp$`QhSU6*0(St$8A5!hNNlNp6?}OU$b0HZs|&wFpFfERZOM7@aY@Nm`Q$C-;3yn& zfg`o&8-#>>a<1G#<2y%ZzJvckx`;Zme&q;H!uS`eNosH(%U@D!`Ij;u7?J_U@_Hi{ z5BvC(bvNS7)URw*9H8PJsZoi6flLwtZ=_3!a7GUcZI{M?@ z?qAgoqu$%z6^z^114X9nSJ*H&M+o2ddEv+U0&fvJF>I0g>*Js{y#J$IXL<*u|Jd=} zBLu|EmJuC=@oM$I{@=}rTlC(M>xb4y=qycDni95b5^biPp+61_oCl9!HYzl4VQUnv zHPs5)pMfyrbPVi^0$ABme5}fPrHfjtnz^6AQQ8t-%MDzfce$^bpwi4rWNaH8YFFJk zJL~`T{Mr;%;~fNu5-r@b_rj5Xef@D$^Kv@MFov?J;OWr={6>4&a`*hKhro=b2n;{w zHOr8CSi%N*(qCUshFg!Iw)%HLeDm?Nn(3b(YqU!+|J9;~qP6oW~o|Gd~$U-qQA#mUc@Wm=f~YSP6V zW&6kLh1{dIxzBG16FZ$G;YljFMMZ>%=FrYuNlNVg0$%~t%a8J#NEJ)ruSmOgu6^UR zA2~qzF`X5Hv&f+WM(E_e-`(zKLgQo)%gcyh2W)So!Dl<#72Fr zlGQhn?Xu^^dd&h0;?9${6A{?X**jA*ZE+vgpYGOk>n8Ch8mQLSZbgZvzVDp`aV2oI zzW;6Mb?dX6`!a&7HM`gHdFppvf)|MB-Yz!UfH+i;bC~}#=x>$AzZF}Di4eDj@0p<$ z9@rU#`ZcdnhGDTkq;X92zT82$V5~GLiXJ@Aah*{mDbddlw{>{h2v_ih7^PVtj!{D5 zpaLu`ld0XUHd4ugSWKZ4L&g|zJ)C6mJ;rpveg1pf5ZuLOz!P0J9PHH(^9dPD&^%kv z5@B1W!-sNyKrX213BPFjd!jO6TQ*OH3a#+mzsRUmx2#Jmys*&;D4X&ZTpMSRD2?Z< z-pPs+Y(lN2X~)_3g+lU+6%Y?24mHqY5bd=N`&QrR&>Riins@}KVJ}SXR|L{sY{g5;JHG%5P(CLIAc?pivdxzFJrPTc$QCe5$RtW5 z3{spYU~DlVsxvg?Z6FaJFq>GW2=`slEn)sS-70etj04{UW)?;we%8Vy|9};<@Fud( zK^~J$IZYRniO1!W6tb#&7VBUWbNlTgNAKphMn)^)ACec3#yzvrZfB_ed)SO&A{T{q zs8j_r2l-|Q?j+)M00y0nbUA$&zx+J8vmWbyb^A96N*@}ZMp@Mw?n~0uy!O?2e2+%S_N8^ zSbEWZ9!qh1`VAG(08VmfXwK5;F!B}J^)l!YG}~;si_2?b9POHSas1grY1x_D6ty!U zk3U}D-Wip!r!C;WhN|N@vs&{T%{+I*Eu~%{;z=wnIDj5*MG`s2qbk5_`IZ=oXBx7o>aLJz2(z>YugQp3*1F^&nVA}ISGe17t`;Bl0+m+?%KA?>A_`+y z8sWkLtPZssI5Ub93*^m+_rl>nGqt`ssP}I*-UPbi)Lk{w+BhL5^&z_K)A6n^`r#B` zEax*gKE0%2?TfI715Fb386!cnRjFh0z@Ef+#1u}nhgfP2f`>D==ODJBD1ZLrB z?zKsDiW(;=JN_1n)Q_3$8Xm}M61pNgu{l65nQlIae3;)C=JArcJ#NCk*q?>&6Eqbq=Bh`m$$8WfB6aD7|Gv|?C#5`pz7EX8Yw zDuTIXBD1vEQwU`7Dm;)<&Eq?QPQrb0aCup?c} z8Q5f<;S>^9tyMOKONik-on#HFcC{4VbVZKRxPQai5yNVgwZt|3Bu$-DXgNS3e{SJS z-q#4G-7rN7#8~o`-VHadFaU9WKSh^OL9s)X|3=Vo;7XOE5@Si0W6m|4q31v-q}K=? zL?G=O57eVg?1!AM?UN%yINfX{uKth^tdBC|ec^o*=s7J2^_XaP%h3C6?{BnVD6dJb z?#Al5%Sl=o`9bC}rsXKVK~14u#qT`NAWuSI?GJE2t4D61rS6-Fkdht4nD|DovYf%W zA`KkwJ%pD-iN1>6HTo^3J><>BD3l zSdmn27vpfVFhu`G@Ro_HRA}VxcQ``23e!(AQ{D(4EIi`-({h$?T690&>CXC0NGzY+ zr70V;DtNB5u^K3JIJ#;iV3{WmHK0MF7`zwu68+0VdCVYiANY#Y+LR-#uv1y zUx-(%z)SC+9Mj-OzVlaRs%_I7i4@^20iw;I5A~pSBl)bg4VSqnDH~UE`9re%$Au(S z++^?F?1Zk441^+%5&C$CW(8a}H_KZF<(PrrS2V6;dCqgR1J-J`ilv!qha+3kok)Hb z%oYAYu%5*BH0jO1?FcW?MipGXYfL=VN_&lJvK^J`{Os?IQ3^#+8@Lln{V96}20S@19ieSCX z*3d(tij7HP!j~_UExN~^^*`*H4ZJy++=2hJ-MS0}EpVy9y1NERVzgTEj!Crp=IhR`AWc}X%V*VT)Z?5Te z6*su~fZ%k*v#Vj2rfRRT>#FDp{{lB(OWTGoW&{ zbiRAk40=nwgNatO1Uc_~!x;=8V7*2vVSB!AJckQahVyp>)5S6lZO00}0T5la4_E<4 zJgjnZbCW&wine~lO~6@a?j1MqfeuPM2VNtuNQ9g_^ zL)lL(M}ZmZyOP?eL6!nCAc>@*T_xefmsVbBP9rB5Ezy&oeqo7_CzA&%pz!y9amNwVvR3S zw*kCtCc#BnJi)4@^jJQYNJM?nol@bydq8MsSw&hmAIg7N)6)m2ABv&5eFi(Y*T8st z>{eq$Iys5|sMTkTnB4e?^eDAijA@z$%fs@3TX$d0@tqg9S=dg$T)#pP0@NG*B3)-# zN;zmm`rQEE)XSlludVON`f2y+psZ7n)XFEcErbO@Rl=F8#1_L}7T{UEnIZvE8Zq$@ zbL{4uPhaSAIA!Km69a~;ZIN@TBWOw>UGl|!`j<1D-=RvLqkvzkGcZ#{hVNklpdyl` zW_0S6Nq_uwcb1;r4r{-wR7zQjzsb%BUINs+K9}*Fa*aXE89;-Nf-Zm^-f>X6%Zq$f z-zapdM~c3&vhkXc%1ot1-*k=Dj8#qC$o(edBr+S&<>^dn z_8!X^rZccDIb8(ucBpofBy^W>jA!NKILtxc8lPW4jLZHuB9aeLDk0;9GS|A8BBJ+g zHZn4|Gvu_$>=QT8E2*RXu@_=|*H`;niK4c*)>S1l!G5WDDhxurn#5`43=o>?C;ksf z7p=?nuSiY~JC9LQHJS{%q!t_JipHJn$E|>n?%Op6N7~^c&P3eHCmX6*2PcjKa;1_{ z1waeNR};}iBc%$X&ye$+f~xzQMEOCSABYV|`+a#WpgqR&)fgn)6g~$AMPF;Mu1$ z3%J{S{>=Pipjr2&)RzV&ONwNAsLxfHITw>5Jeu1g!WkwAtgaVy!392a)j|a4H0ed} zgrh;Ti%eFwbsu5*&KtUAS6rzCOMqZFI&_A7CVL3k`~9jdjf&Y-54sD`Lxl|_R_VI0 zB(^JsEhvCoXmG|7r8#a+3=%XyD=IH|m|-wzBz#G|tMtfYFF4jgBbCVK&xpOD5EA7e zpf(2@Q2a(|9-;knAYtv$HQDW-cBhj*;Vc54v^pF! zRX7J0LPE*z8@{UH91`4-a)%Ng;?R@l&2C>Yun|?u4;GhGJAR(!k?y=sU(aEpihhVU|j|h zq}8aGfW%q6K=nV$=O{FXO%dp(j=r?LhEGcckcN;fVJ9|s@S%7yJC&=+S1>wMfT4lJ zls^_2v05*!sv|v93 z`XV4t$s*jI9L3F840nX*_V$wZUe|a#w9n|ZxXPY#qz7{WD)%>FO;~1!VXs8JJZ4b) zTF4oz;{}EWZ_nDtmklO(RSSQAQ%W4OjUHo#z z6^H=T<0nc9`TOt#T3GdTfKSlIfF5q2F{w_L1h(NNl4`~l>Z}G{qNX{RHQR4o4<6V| z2TNuq--uo8U)Dusq7Ml}j4E1JGO|yjSV@l}&yjjDbStiqbQ6aVISI087aL+zQ+gCl zkxQHc#%8K^I!rO^e~|ZI&?tFllh4DX=Xarz#?s9ngQElA-5i6q)j|~)g3|Nu%LW8G z(j=_0El@=QC8k?}cTNc(AYH^Ng!<9o#2Gl2JrhQ<2GREpzh02hbDT#L&CEPlAS7aq z-=^`jru1q`3|T<+sdu&%tgBP&*n0fkn{be$1@I6=tK}Zt-Nz+tB~{KPVd^szZaz2O zs(R>K7^^(fH$B-T#f%hgCRY;^VJFjilBL`~ny~F5s%j>ldl`!^ibxbJKAx*Ew#}W% zF7M6QVitZhLD*VDTW(j!TYmnd1`5Kh!(l?RW!*VjEW!=q`@{5Yn2?8MO7jO>57%n5 zz{3GgOTEdLVuy!Zbbw>}e4(9jS8W+tL?=i~m({bFv@diq?Su#I;~!AYAA=Y5dR)ri zft+%O|NUoJ_yw+crX~c{fOlo_Rk?sJ#w-iB#h)@4_AU~B}f9$J5d}; zV?IBP1P&9-EuRdUz-58i>$bnj_#M1kA}AI|o+93oB}|FmS<@9izjT^HSezOXH;iH1jVEq- zLlm$^|A>tFt&yQ1D_!c`!8@3B8qBD#?%@4hX4_dTqb&R6BE?tEH zKWT{PdrIXo^uAZCGF}V}+-j@UpwgY~bTsq58--!R7p=%eSdxWbKPo)8Q06VA#JT;L z+S)5ptebNJWHX$u4Q%Bo3f7%&_?^sKtEN?l`)-=%O+RB*!9^+h5SsAMzM#Bdcxb@* znLQdLagGl%Xy`&n!snU+zF^zE$_;kYrkI@DWSi~5`!}OR(Y;H#h?4)#$UK4`t7Pd9 zgslqVZueCi*zLO+<#uoBOqRC@8{}wj<0sh84UA_L6+a5uWqIk^yfN^l0Zg1n#yiGW z-3u4gj;mI4o!8{r?1w z3Uc*Xo~l#g5}Sge5d@7*LfLo*NiNzXQw1cde)`ZNV;ah2 zi&6mMXNVLr5zDymcfl`-->5u1`IIcU=3kw-{Q&hsHSM7|bW=r4a^xYWH>$6@ttk$s z3^sr|kZj2Yuq4jGI6jgUVwn^+X5(2LTl;gPbtoG|i+uBO#&n2ss)*OL@=@3oND(m> z$l&ClNv=^f0H9X#&ZT*xD1h7vaBh@vMP$ih)ARBGjv9b>@q1Z)`Tk}+tIkGm;A_XX z0RM80!fGs-3p|#cy7qGoxDwwSllHM8hwWDOKQ-F_qaSfvsnN)o9gNu5zRnOu4xa% zp__iV8Al#+dLy_2s9?%q1F-J{YK#~?2IKfhmX9@Jw^%>9sh}AJBGVI)HU-V`P18bt zrbL%*U|p3h77H}#aiEQfZ7h#+O&3$@f9&&mkxB>XVlz|2i=B&*iwxtkip48 zlU$>0025bqxeMQhFhr^0x=uro5Fu~QIEkd&3cKNDc#Ny&CE0Gyb?uUWbIhyCbuTyH zHQ;MpI`DXxuZfyB4fi_XmA548yaC`WSgOPua$17B9)3(DIsnpQVakf9(@x~_qzxA6Q_0nFRwJGYdvDCv*^Pin98DwBKTP}B83+w}&`7gG7$oYZ!QML56y4o-(F?Hj*|AT}&?Vr=MxB+nFA*VNT16bl<%E1j_V^Wmh zrnlvTcbnfU~C9uhKLE8Jrw6$u)Wn zphNLP+#50WR&DYK(V7lZza~9uhi-r00P;0}{jv|G5`iz(0b{XSqlSKU6ZdwL z{F{^94V0rQz@E-xfU^vbPa!ywTGiG&^x=D*hWCq-F1}Pj#FpX)6`^p&lM9E?vIQ9nm6qBn^%-8ghJCX(5Zd{0cuqV+IcvhYB8A#=3 zn4EJk_PUgyHzuD=|J*+jMvRvj<|0AD%FrYHMY!UQ{=oq4UsYR4=AK0`#3+g6`>_iC zN~=Vd?&vN4xXugs>iDc828pB)&_7X&V#kXss~Ds{eSAE=2Tl8*d1qN$80urr5SLZ_ zrAD46MB;1wyRSKF3%b+)Uq{n4P17_@(=<)fH0@V*>e!`WAPT_v%VLLv;?yCEg$&J< zp#>Eer4Y1TitRz2f|fRTMFO!~|9dYNvQ()iMXK=qmKz@Lw)X)5000000000000000 z00000000000000000000{8ZbkuYK5h^$CD_{>1&4$6Kva0N~&9nmK5_A^_?k000O8 z00IDj0F<6W*)`GPL}LN)O#m)~rU7_Ntl3cmFjfoMaT0gMxw{nr`vY*J{8_UAbj)%& zH>VHB3_w5rbmf5>iW8m*fV~08Vx|1Zv!QpFV%S^#N&vb>`}XlWeHF>bSFid)21c8BDiWBXgjcbei*qfdZNAPo zxybt_UvC8;?AuXG+fW$B@#npXg%`@MI!L8LAk$rR5ZhF8VT$#ntrwBm+7KwA3LPef zsMDctpME*fZdQcNL1A0Y?VBV&juDh;#M0zj_IGz(lf*jWs z`A_FB1Yl_Cu?&E*F42swj?NKL#50TI_PR)kY_?Ys04*Nu3t*2$|3I_( z^pLW81|4*lc=A}@fO76DkN#Ul+w zDg%%U`Y#^=I_BE$AyL+7ghc>Mu|`Bby_4Igv&Z)h(ePuF$eXR?2r!Q8P2NO}2LN;z z*k>C-rHUrE(etpu1|IA%3rP3LB`%XYTqob4C}s3y|6M!gv7OSh0Fc4QzX(8UAddi& zW6I?VhYGGsxdW~}yzh4DNThSlRuOE&$nL;_*63!YSTQD-9z3H0;qT0$>Wy z^LPmF5OVu&#e$9+>Vh-xg1RRmy*Hvm*VXkr_3^BUfB3uCSVVHZu_gYMv&n>+y8 z)n{nx1fZ1FV*lRK{+EsbWI3-3fWd22crzubVp7EY@z5`RWsg=7fR?TS@JM$aUNe)&OV|=0Q9{We~Hd0f!#2V=?Pka+f5xU*tDH^$9>J zDU!A(5ijkZbhF)Vr=&ZEJr$?)>i~QdT!<(a@$SgaG8*xjoz`NHRvCboZE7fJ@9{%* z2hUtyLQ%?$q>*VHFYTWK&h5%a><;KR0zgKVh2zYi!aIwZKM~paQ}ni$1E4MgDazl1 zq$nPnZu;k!ff^G>s?6z!wC$7R8|pToqWrZ;%KFjBr#}xsb81QhUtI@Qlz+;9bsbny zl<(}_u>b%70Kg!B>qH7-?*^b6fNB7$0jQ2as%x;Ss;a80s!DrsOalM_!T^i}|DI97 zv862l000000002MhXtw(0000000000000000FdYaSoB_oGwUAN00000NkvXXu0mjf D@A!&3 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/search/translation_search.png b/documentation/docs/assets/localizer/search/translation_search.png new file mode 100644 index 0000000000000000000000000000000000000000..183e09a2f69d9aa79a2f2d01379d439f72a50f24 GIT binary patch literal 36255 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

6NSGJZ%grN}Y22D; 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 Vaxg^JZO#6(sG^`L-ymxp{U7w@rVs!C literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/teams-projects/localization_page_header.png b/documentation/docs/assets/localizer/teams-projects/localization_page_header.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9b652b6a189fe1fe7d3d9657e85361dcfa7f48 GIT binary patch literal 14365 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 KldYGwfc`&7z6-tp literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/teams-projects/page_flow.png b/documentation/docs/assets/localizer/teams-projects/page_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..39b90505da84e46fed8a196250d61e0f3bbe061d GIT binary patch literal 23120 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 SE?zYN00002B^` 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

H}L*LNTW2}uJhLG{ywiZ zvqb@T<~-|~HtnMPx@WLrHZn|~UMT%IpOCKdgvph4@~1PZ0L7NNsIH#&NNj%V;w_sU zakAq_9&oeXxc6Acl-PD?vXiA~a z4=Yq&Ka+8=l`{RPLJ~cx5=5BseleGXSaoPSTHmwkkwm?I`4_}gLvQ{tX+rF{e|)pt z9*D_#dq^kAT{V&)cNcvDo0!utGi!vS@fDvt=j!dyKKq*@3|{U$<1wEDr@k)vyYi3kIpFHfFiE{c^sV%aZe_&V zkD3gGi7u}Fs&_J?a3O{HpJBZ}I)em?^<>3Gy%5!Vn;(qiVbJEck(7S#NNM^jbO3rg zzkA+Y-qvph-we%F03>N7|7>ZPJ$T*T8pz1@8a3rs=zUsZFX>~bg~cf18EJYnuwu6f z@U&X4$Ej&Aw2HJX=ZsU2>!h~4+OzoG6k@Nj5=od-$5J|)fP7yA+>P1UM!Y?uRW#Dp zo{Q`3<8)j-+TW8qh zJoLRs6c^{)LL(1-61GAnEVtcoD5rblZCUf);d6wEz%GV7j70#f$DpK2IIl=E(DA

M3+Y+>2h%&@{ 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/teams-projects/request_pretranslation.png b/documentation/docs/assets/localizer/teams-projects/request_pretranslation.png new file mode 100644 index 0000000000000000000000000000000000000000..03ec5f0acc145c05acbb98632048aa7a723f8838 GIT binary patch literal 11027 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 z zx%{rdgBzaYmosEbXx6T5`AU6^^Vxw7gUnonUL8UBk*;@6!8WN!Dnxg6tLT|lGpMTV z8rt{q+_fm+lE)7doJ(J8sqo4VKx%Z%NlT5^g-J}YD5c7JoCbKpCjmBYC43x(}o z_ueQrDW(B*zjowk?20grD_+n?O; z^iB%(?^Uvf+Uw*kxd(3VIiGhw`tq0IO1_~9|6hdP(P@e3z1LgGr_QFv$_eo||7r=d z^V=Hv!;z_~_rgMT0_OaeJPuouQ5S9Q)2&WC^GN7{k}u5hg(1L_D4>rg$`!B+ecrAD zZPTTgSXgGF!W7#37wIk5m2QJpvuRai#9#C&K7>-JTpMMkI!8*SKJUc=uE^y$_UX(| zlFQ5sOjMww722c!_gb>{Xsuk8SR&k!;M7Khb8D5fkkhkof>`6+GSuMwoPtVUDUtbn z5U3RF&TV3ZpvRK~p{gy@(d+8%h&|dc?o;dx>h@s*C-w_$ zWN0=&2_-GEXvif+(o!(!1p8aRhE0Ti|8EJp6mU$Uo?^iN@kWA#DFt-o21N+Fw zjSQi%yjtIgBfW8!11Jh3ypSw%u1XimRKVD#P`ci9F;lf6KGD+>#B@C>4m!s>` z-+Hv#EF7O0Q$5$0LiC=gT)$-PNc-Bys}u3}10nMuci+0>@N9mh zxa*?&G|`_OVYzCMo#Kpqc$33hj$cXbQ_d6XM`#(ds1DSP1tY^~j8saS8PFLOV7W5t z`|p_xatVA;K}Ps|WkZ|qz}V9jo#D_cH@s;#dbTPj7})vzwihX%Z(?{x>FW(^ho_bF zol^;Wg48a<;cVaVTMNbD-9QTH0r;gDwO&Bb+e`quZ0SoQXNNj1^& zM#b+7b9KZx5e{Swd>B>XeT!S$0UkMbjBf+0W)T2Bxs^SWh^VZI{H;d1fpsnU+P5tD zyDctd17BpkocKT8+4K;OnM2YOX5+2wpe^xf(MU>;KXhj;DO2FYt4~}HVEw_1eXBqV zjU~q671E~WPXyv-#ugvQm3M4%Jg#T{Jrq%yvRZQ>ilyzl|Az3q6urKG?3!bb7Cg6= zHy)bEmtAo#JM*d^vIYpAPE2c5gW8E40CC%kirsa@{%0ocLuwSy0+Xa1BxomGDdywi zPnWE;9JPa|{|2T+*m3lL-GYk#MxNbhnmMFwy5z*UG-xky!3+YpgC!=SdPqm{$Y;^rf$r#Z;t&)j`0Gyp|q z0pJ26>E{!ZC-cu|O)cqZi!UN&$$bmx;xFr03A0Vkfokte=CnpW2BOm?{8f#!;c1#j z8gzBf@S&2tmd*pmXj>mB1S;KBpy3wkWg0BHaK`IRnOoTV7I z+gAJ)T!0$F*(qY^|KAz@fB4GH8?IjHVqV11I~*fzHZfDRpFD{s2XsEmpTr;uyre!N zG93P5jdUx(V+}h}(26mQqVuRlmq^S~w-|5Q>n}9tU6cj_p=nJU9g(lT>k|XoRg1Mw zKuuBS$ty46hu>M>3+u4!-*uft$^qp z8?a>jMWbE2z8Y>&T&mrJ-lOpwe!X^RcXBb3P6?7ExDIf0FXJZhXxZ3B5_U$k+{aFH zJVsKknCLLfDy?AvvNjr;MqzH~7dbEOc*`#-My9p|n5Lh-%eUyW;tTqi=!!EkU?^c1 z3Zlm_wC0lA3X;x?M||Sh;S1jXEomIgsR^JpQ<=?H@t9g^8Cf_eiPZxyRRZYkta~=1 zv_IA?G3(hQu+5d)T6?;M|Kl>TS>NV%ZHC>c1Oo_pUjaJy)>CgxLr@KeNR_ooO&pqGtmG5JI*t*KD{ z#jk-2hdtdleef*bOGU1_G}Wh9Vz@|&{vEyU?Gnml;U5({1Qc&4r)ydV0 zQy(&p!VM37+o$HJ{y^#VC^&zq<2a?;ilo z{ZmcGsk8qNdKI1AQiH(xS%Ptn@HT(vAH&J>Cw?}Xrc=wen(`mFHO)I<3+*}M6;c*8 z>iP-3X;Em9y|yUdx1plpvT|0^jyAdQ0izNHQ=N6i^30%$#wM;M5!X{ieHwFDuH?$k zx-_rUpZo)JFa;iJL)kuoMBe1Ps3Pektq7&;!DT-bxXohOBuu8()D6r@af24UOdr27 z1XSagSBxW;u6i;N{;9X%?QB7^+^4;<34SHh*Z;P#nBV;AwiM-__3{Y>F${OyEfTsA zZAl1mI()2~q7j z2hpaieo3_{6O=y{6ym9cFrEkrDTDdB6Be2@Y8PaK#MzT&IJ-*NX2Ll$`QnPU%vXFlwRFH&K}T#Bg76np_y*x2h+BPzn$3i*p1M15=HSb3KO@g1Hdr0Z|wlId{qvVB_1^-`y@J z6NQZk2;#2wVA(G{Vwc0?M?Fv2-y*e}%lbF8q^NxOv~i-7b|wLrik`nI0jeA0>%EH< z&0JHXAA{}TL!DsFSG@931@@yP9%=>>&YMyqLCor)c<@^7$r%s)@Y2Y%wK2%&*0j&x z*K12-?YBQiAH4!|VZQW~rONLD+{6Rp)%%njAM7;3MEPm;SW|UE3GoW*VFG5e8T||h zClB*#dhj={_A4{Dz`Vq8$j|sh>^ZMEaJpvY=TuW}LZZ8};Poz3p5yPXnJ>+D!Btsl zsKGS4P{?-;of^p1qHu`Jo!N!}BYb9c!=b(12~F8ix@gs3r_YPTuftPso}uTjNq>LO z9<=u5FmVqc;6m|Sana*?nkTXh61kUozwFkH>V3BQPA$l1cXbcH@i_laQOL(*)X+Y6 z;s6PC*`hOb`gqEBhG(Y>c(48(DwX1L1+fRW@269k_8HJd4nZ4MdSR(}jFDAt(zbQLQA5S)=dfbD~5W{f_#jmN~ z);}(-gw<=JwcYUcEwuvNZ88)qLg7(!7DRqkh!Q#9(HD$Q6*u1JV^{WdYrF=)gT8s+ z;ZPvkpqCw^E=f+f6`bDZ0c~xDpI-~^_sgRbI?t6Q$H+@Ag3N40#Z9()=`ZB{G*AOx zix6xu1A?Zp69?~FE78q+$}UXG(0x`o0pHj zx|Y77iMgAnuZe|?g0fm+VNps-T0%lnT1IAM^cPzPXJ@xhB9cn}kf8hfdu25pU%xfCPyqGRGTbqu8x zKFBF3|N32RX=AUdt|cL(A}A)ev9aOt$!lzE%-A)wv#VQ5?)~oWUQ0{s{QN?0LDBj7 zg?WbQJ0%eVdmpz3=lc3a?NIIh{sDPaLn)1~SkN^c|tUWv%P(X!SycXO(; z7Y)gK-?078F=D!z1Z=gI#}A=*Dj_r!F;EwR%i+)+IVEx=q6wQX>;3hYq$>B8r(XW^S9=Q zhZ_Ft$_#{g6`}Q8d6j)#{Io}U^j zl6~X3N@(DI*2{6jh9~`Mbr7+(16`s=AQ0vo8p2UVt&t~<%JC`5hm zO@aQSYHZ`5!CT_smEqVqztas|qo<<*{J-R$kJW|OiDbY=i| z0jKt6OcuwXVT0hD;M_>YM^6btC=G@&SmLODaW$NG;*^!x8q)g)lTq{)39ySZ)+iD$ zkJSX8gRNNcg!w$ruT1!;J1?kM=1Y}|`BorqKT9aNoCP;B6 z9)HnTqoq!5vd22W;_+qx9)w%p$?_~j`ou}O%}v)4)~RW zOy;L+g#M*pYmQC*BYy=n!=gQo9B7DU)9$2meu|0Wcv=Pg8V`suw9QuTOTMHHN~?A) zi8Uz984GUNi@0o+>;{m(IpD1*L=>`TWKZ^11dl_@)ps-Rgr$r~p|KEYz{3F~oVD2TseROY!o3=93D!>(LfUZTR)EPw9ooIMjWsD-GeH z5~vdmvRLq49r^aa>9&M%;_f$Uwj-v&%5Lto%Uc_EKeaptVmCYr65p*jNW_bv7d4y8 zshfWF>e@TamEtp=e`&9;Md8Jh$SvyU{#=i&OZ<&-36QhnP<$tZ^$zsqSTQCkSlbvL zRY#KZM2-T0@8Q+2DNO<5@Ky=#;fKyyME&C)z4nYlT8E)2H==l{A+(!RquV0naoDDe4j?t`%Rsti4+RgSj;E20sN-2dB;@4od<1ls)prZA4z>Lb z42`{dH^J-J93ULq$mt*PO7s%8Njgd-WS@~SpZ#C}7z06L7#*e!%RAF?d{f*diGcIvOoeQ$SX0;kC09Si(tw(I4)s(lhTLrLWYO(VkE9t z{}xzet!| zObB+mZOAEY%2+tYK|(+E8SVOEzn2k6r+x0WMF?9A)Nx&ofD%fZMtAx0*aevwVYIdn z5U^A{+u)t_B2`}#B26U{DQp0mRK$#3onwR-8BvPPE61Dq-?%#uNdz{4D%5Fb@Lxc_V#-15gB@)E_ zd5!v64j3+0$`kupg{PfWQtG8#=@S~qE_3k8i-#51*sPd`v zp1q2%OWZpo;jz=zk%!}NvY=7RlTdI!jYizS8iTIAB8wZxYql9RM7?OH!yBAp4`>bB z2Vz$OyIVk2x>n>gqgwgB1uVgH}m_8AkpQ#+|S=TX;}r~!R~)@#L@#1nKF~aZY8t8cy+ZK+AUHOCyM`kygxh~kB1*qb0 zT~Kxoxed$Wad4!@>HLLwa>(UI!&04~^9ROkS(_Kr8LctMCksuwy}#GUvXtu$uEWD6 zuh@}#p&NbtVk`DB+JP~s^C*3gD_q6mnYuVnBM&?2$J|G=2?Uw#J+NRrf~*zOxc3Y) zTqz?ctFW6HmzFmA#Rk%P-}qI4SBpN3q+;^1W>UzXMtw|WreLy`nlC~Vhi5qDUUCgh z$;~1-Y}TI(4hqC$CJtGmm-!uEJFSb51ZN{a_i$t5ROjoDw+DzB+fzO!&x+iLXp$}I zVk)!#x6De+8LpS#;3+5XANeeMkcyCskHi)OVqc{?me`Zm(vy~|8yd5@V4%hE^+zNU z9z}v94?ijb?AWBJM5sc=t3MUmZ^*WC`650L?oB@XD9l&-wh70c$8;ij6$kdr95Z`( zTHS88h{`sQomOqG+lk5J=QWJ~$4EXkX5;E!fhusB#Ck;WlS0}*$rR}u#`-?>9{Zox zGC#3KJ-)a?jdT9Rhl6g!-exCPzUiu_o1MRyA|WKEnK8x?9He(wbb)!)Rn*T2ca5M$ zCie;o@Y14baQ38QBj3K0nr24$a6$WT&U?qK@A1|UDJb?~!6d}lQ;vwmVLm(#oSxI& z%5=kM_X7wNa)Rvg6*i{4Z^4hZ7QWii^%36aIDl2y;JhSgb(q>tXclP z!ZLfCQyXlGEID)^)C5r%-qDi-_tau67L>Ff&X6jN@H^2OsopiI>`kxXCHR<%z!!o* zBvPg~zP0&4i!6NO9Ta|F#wh#<8*e%&7rY<)J#+Uh;$Hcu47ID16w*coJ(8BByO?@1 zU^+DFv66-4n*dcAI`wUMyXqMvwvXO8$I*CZA3A?w^pZ4^!1YJXhHkiY64 z>b3HEKf%Y^UU;qrx$@k(gTWk|j`%N&e{!bR7vB}XHUmDUxq>*LFcDwjQy~bKXk~I4 zUP+e}#lV&hrg&>R_h{*bxfYEX?(Uv)r-_ON_g^8cz@-DHge74k%7Dp?zi0>vd#br; zk9V05f>Dhy3xj@5Z=?MC4{3w7g)2(uf9#C;8BbL+2$s1n@e)c&I&LI*$$of>hWH;bI{P)MWZ2o>R2cTkzD^SH**`xO7z0A@Xr*t5b$jvYgUSV^t5s zd+9V^x4+O_mX0w$Fu946$}IVo+3(eXh)Za|cVTB2IM6xifo7GrwaI3DL3E+eTUm0I zR^!i)g5Q5Lowu14FK-2P1NU%artB4mZ411JnBUaQIVS9#;l0bKpwCb?!Vp7X_NE0n%WBQmgIqxto*5B^vVJ=ZhvD^8kA)5* zmn2fnbqS=}Nl{!=lx8Pp+=p1x1tlkx0tm{#=}0n2iL2op4U>e|kMnMHWu<-8=j3AN z7PK>{Ve@rZ4&UvhdY^Mj_~o2kBHYN~;l0hE(GEBJQJ2h_!zD}DyC z#@woYQ59HCYwdaX-HN^24ezA?*35A*w|2<}ew!oGhdB>8;*tM4*w%sJsLkDoH%9y9V> zM)YrG0<|E#!M>caV6u1WT1PqrE4j$qzxF$fvrZyKkNuFgvxt(Tp5L zT)xSuP4(uCda&;II8N7`zfSE3>hX(rAmq6z5H{lHc6&#Z1O}=H2DYj2bXitkV7ADN zHp{ebXBC3p(j7G6@M)f2=jLJCQfS!*57GY;SbuIDMSxrp$~W?plMFD7&`fK~;e4dpSCpds4bbzbw%HmSNeZ*yx!*};w7F?cq6q{Oa81YI7d4;eTc?u{ev|^u z4lJK}#W?;o8~3Xs?(hgJqnr!_(ykYmp|eo#kMCDbO{CfdvOw2?lwjmD=brj z=LXObvB8JfW!H-~0O@Ve*FM8L1^G<~rM8)-4tNKa_$Qz*5t}Vbv(CQO-`D7;X_@XU z+*bk{r=h$~N>CEr8J8YH7Y7+y63@p6Ru7`(Fs@LuPC+ zyV=q_mf*IKfEH#;8OpAJZvG57=b)~+{$77Q((Ew2|9)kkA5qO+&goMQZyDr#L*#35AK!EP=j{D$1?Kd@k$>N^!Q7YG9$?=aA7tkf5qI>u> zNq}G4iSF^W4=tlo>DE5J$t?q6&|bj{N0zTv-%Sd!ttAHCSmQp_-xuV*H^qrpSK@}@ zD9n(s4l?h3UNln2_#u;ZNv^mj&8xUSb)EPQsIb9e;z32P&5{pnQMBi4UAd0NaQSAn z)K2xas`A>)W@oFZ9+$OuF5IERJ(urAys0OBR(a*9;r6H3cqUZ)5g+ep@%dgprT#lZ z)Lvcg!<&$+IU6&STyt1?3Bf4+QSoy*u0;LP3jQ+xQ_b~(6TJMoR+Ony{8~2AxI3a+ z!ZL2*M}&c19@) z)#Ndx6J+21Q0Zr8B`QDIs-LVP2mO?_F87qo z{i`3toW4t=7etep6#S$T7T`LoPgS1h;sKVp@Fu(-xJxq z-_jXflHSr;^ODO03z)?9*gD^)7z-hGKE1gAf=GG}5ns!AL^=3)T2|?T$P@TN^nxBL z#yyFZ_|*#n8vgp&SzQ0ucdLqerR!#LC}df#A2<*cD}jSo`{s}k9?)*Qa!+@IV+rL&9WzJLHD5g_>&OUPTQ zpo=xS4aa9nuDaX(2ay`G)m)3V(r!n0w~xs1Idzk(kFP|3{j+nU27!6oT^OQx$v;Ot z+0vz5-+QRwTw{(wy1WppSojI+KwD%9HxgBe zb&o?ZYX|8Qu>OnHUbll@yA1`2!1+}bEze0W`mV~byu-UAj!{NrY&Z(e4RMH4_a#QA z%CP9t0j9P)7_@kF#A-O5I-aj+?E8knz5j4KZASvpgL91;G&^`RDaH;w ztS%Hh>9@}&2(JQvJb%o_lCqL*dd;popV=13Nh6#z`Po|J-KWn2l?#6dLRxEa%1_Dr ziL=IOw9JDXJifc#XBn{J*P#eoh}nL3v{`?$S7@7yP(P|rmnma>0?0No_@F@j;9_n% z${xqY*s_z6x0cR?ykhZ3^j?)xqYt;TOvXD-ZVc+YJ+!g(7<1h8yBZ6!YeM7Vt1r!f zI)Rso-!OvP=emF|u9fmPB!k6Q@gH|>h#@H-Vco?~t&xbXJ;K5W7H1&&54y1+j- zOh|%`QUgayRv8_E4>^5_x5?l?{9izFdECnK?Il6`6%XjK@N)w4h;nAL9;)M~Utihe zF_+l?M1H!xqc5aeCAa<5TI>l4TsSn{j=kd%&Ez)Me8l*fMDo91-5^(2cVAyf6v_II zS0lG)8L8yWrjz@9fG>MTpasj0NmdS5O-0A#kQc~}y9dIdw3{-wL7NR;=zNr+#7i4f zsHX_sTpR&z9L4msxR$a zX4Bl8Tp^9zp9b(tRu6u7fxGxyy&{C(@80|h_5N}M;}x}scRQ2u$1Zg{Zg`$ZLpU9* z6vq%SjZb^G&uvkAO&_`KJ8U}?+ma)sGX&uLPAZNFe&L*B!ic;*NEN@p;iuf1V&LO0 z;JVgmye#}#@7nI}=BACu6K-g1+|#~^a#)W(=;MUWE8kBhMhGLBc~7YTLPP zw|6_qARd;e4FgrlY9XadGI4Ods$n*F`(>AL8ri^9fUs?@XpTrOUazoD4) zR$Qofnv%C{(D?oMAiI`y%a@rtlyguOcOojqo(th?-n)kKyj!gonL=Cb5WDYc3)O~l zn5Yac-PzNQxQU77Ucbu(J0+Z)a*Coo@7qLT% zTIaMq?6oB3&0fY;jaciy4hfyG8+T!x_>mR7Uq?iSO-DvbywJJh>vX zi5!m4Ls|B%xN7sW<)_ttoCi%#Vb8coolLpYoBCDNiN6FKu}0gf{-|Np5!}d4ZLtSn ze)J7YS^3l4s;LH3^-&R7vS_B^Y#vdXv>YuQxlIJCN)%7w3Kn^J`cFG+3cUywG|w7a zXigtEwVUc41B@0OnJZDp1G|f&#)z|R24-R`r8pb6X3o9K3^<$xr?3kR#KDjcJVja> z2a4+E8Xr}Mdqu)(WCubm_@=sb#k7v%FHjv*yoM1` zniF%2h^m@a3=^>VvK8NkO-?F#F5wXZhTl0oBMT-Lk|L?gpZn6Z0z z94lY6YnN>iHYwA5J$&vQMgjaE{B=P4UDbPrNKfC?6;u;X79VLU*c*ZtpSD#}a@i>+4H4N>aUOfwG9{jo zAS6G!FMQV}Q`8zx$JExM-`>Ly1($$qV~%p~{tyh90Mdv^0*Jz#y&T3XK;0j+%$22z#Mh>w&ToJ-%g;cX(;^x7*(%MSJIEZ zk8m+}yN@HO;&X9N_v@a~lMNW(4&{npbtaMY#{s9LoE{h%2tn&P(B5*!B3Hmh@dTAG_*3IigRv&8);yZQSsDqH*n|m-C+nd(C^m$Jr-XSoemi^n@>Y-T zvEz2P*=WcSYz^h%{Ek2w;nzA~T7{VH%CKbAY(3E)-d{f8RT1Kxo`P!GNc+s zNl?1bCWb3UmC622G+9ZRkJ(18OEAf&uDG{q!NJ^mNn!PZ3Hnt7ksd@A**EHq`M zn#-0qH#PGmWVLuU(E{h``Q_D&WO1HFtt`BoORI0?(RLaZ`@VNP8l9? zdE+c53tT1WV&^($5LZ1og0+EN01JduVVAeMZkQHU{EXV>;t^&`NS#7Y-N7D@dHy6h zIc4f>dE68QfzI?f#XpTw+3Th0_Llo%$gKLX8G11&n+KfjN!SU(`{S;Y3kx*3$ceZl z`fE9~y&Z$7_QJHi?fb4n zEROsZZzM@xQvaGJ(0R2t%+&9LYr4+>EaLpas|(oj+iPB4m+!PMUn@UxZet@b+G)Z> zxWPcn1DhcfpTNTS1R3ArFd}^MNf;P%BCO~yA)NJ8%2;_LHIF}AiGBwEOt%QVAndlH zFtN(^7pq3Za*yK~$bqzE9m^drA#)ZH5|wBTBJq+J3Yz&4mU4z74>ALa-_I7Vpd|r$ z=YmuaY8~K`+0_wb-XBl@1ksE(2xY6FlyL99$LNCdH;R{%8w1vOSdn9x{OxIwwt^jiMY>LM(s1D=OtI@C>e8^xUHjDyEPyVzS;vq^ zkY5PO^3nJtn)hHuA0F@B0uH>ZUy8UjVicR2*tEWdH7y;YkGFQvP()BIClXR+jOx~& zY4-%4F)(IHiJ5>m8pAQi7eg-f(Q&GO{vc|2@vWRbq7Km<;3+p9 zjlxa`do>)t6>f`F%DtrO7#4mOxL9Uub>#E8|i2J2!eXjl$2nS&-9DpYb zxmg$K4He26CH~wiJw+FE5M0Z6Dbu4bm&#SayJdB(_1QAbqT=}#=JL*!CORu}M3D!haYf96&?XXB?zuV>?{kXRORHs6SGXh` z8ikaEv$e+gQQJ1_dj^GsE=2%cagPGc$Q<@0BXTy+vTe>{;Jv_^Hiki<&Oo4{v{2Yi z{J5|I1zo<+MW&e4s@oGI(C$*^l|4EC2~C>(*>j72j=UQunk;DB9oSXi>yY5Mt;>3q zSp`JQb)DEeswnV!e7owr5hhslP+9~(d9;D%S0d@?&Wd1$EjI^&AMX(ScfqlPv;K9Y UGy2eB?O%t2jEZ!nq)EvC0#@85?*IS* literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/teams-projects/team_page_header.png b/documentation/docs/assets/localizer/teams-projects/team_page_header.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa672f8dc3fbdfd297b20c2c0e0517a64408565 GIT binary patch literal 35560 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 V&^C!BFhBqR002ovPDHLkV1g{O`VIg9 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/teams-projects/tm_tab.png b/documentation/docs/assets/localizer/teams-projects/tm_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..279096d183f0fb306986ceec7497d03ba54a7ae3 GIT binary patch literal 76199 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 z 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 QvTG8 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 D+qLwe literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translate/approve_button.png b/documentation/docs/assets/localizer/translate/approve_button.png new file mode 100644 index 0000000000000000000000000000000000000000..425842342d8784594b80e3fd30011b365cf26198 GIT binary patch literal 32594 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translate/batch_actions.png b/documentation/docs/assets/localizer/translate/batch_actions.png new file mode 100644 index 0000000000000000000000000000000000000000..40efc93e56b3b76274b5b314ff709baa71e50db7 GIT binary patch literal 46118 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 H83z3ikPyX2 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translate/check_warning.png b/documentation/docs/assets/localizer/translate/check_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..6a162ab81ca18c1ee991d830f21769e2cf9d50fa GIT binary patch literal 7024 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translate/profile_menu.png b/documentation/docs/assets/localizer/translate/profile_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2f2a17a270702b2d4cf31aeb337d0665450a6b GIT binary patch literal 20860 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translate/suggest_button.png b/documentation/docs/assets/localizer/translate/suggest_button.png new file mode 100644 index 0000000000000000000000000000000000000000..0112b28217bcede3d0032b396ac19091e6dc96e3 GIT binary patch literal 28808 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 bf;Y?;Kn_ZLSb5Ta?r|AOphT^hVc`D&+(`(p literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/concordance_search.png b/documentation/docs/assets/localizer/translation-workspace/concordance_search.png new file mode 100644 index 0000000000000000000000000000000000000000..6a33264e45cf2736df0c972fe92424968d23d2f2 GIT binary patch literal 16888 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/context.png b/documentation/docs/assets/localizer/translation-workspace/context.png new file mode 100644 index 0000000000000000000000000000000000000000..745e2a3ac5990ffc34cfe22db6359caea31d4d7e GIT binary patch literal 5701 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_plurals.png b/documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_plurals.png new file mode 100644 index 0000000000000000000000000000000000000000..83a4c32423826dc10f2fce3e90242eab37b9e827 GIT binary patch literal 25580 zcmZs>18^ox5GMS_+1R#iI~&`!jW@Qlak8;(+r}H)+}KVwPB!=5{Z;?nRo&FosAg)q zrk?43x~rp<6{Qg2@ZbOd0HTbvxGDeu4gvtcHen(DTiNv=dHZj&rYx^6AuOdzO~?HG z{jH#5r8M$P$He}f{NEM;8;=N|m?F1;M0ItIp@lmIHT^dg;N#;%LROQNomsc)T|UszgJ4s`Vh3JLS_ z@srUsS5VVu;+0mO{5Li>P6hx_v+%aIb%g(l^bZI!v$BUm!u_di+}+)4U}9};=Oid^ z@cjXx<`9pHiYl+DN=`}TmeIo{q$n&Z9vmDBnDyf4Q%+0I$jZu|o}LjB5u2Z%_ZjoB zcLb_yXgxeU0Kids*_9GfGH-5f^z;o)&CFRPv_1WQF>wekFE9Vh8{62}aO-y2-{0pC zE29%pCuI>;R8o0m5WkkNB- z(F@o0QDd=h0N}fodpxfkMC6J^Uw9&Mxxsaa()w53>YSvu6`1^DCKg_A1{VX!&g(!~Q|7m$Mh8k+42j2*V8oSkbMHYP&MjMMMvfu)Tv5*kbcMsae9P)58fxScv zaHc_H|0(N$CEoa8&zccTQ5R=2V88M5>BvfQsAwmc+$1Hj5X8ZyTmTKgL=kD=!vU}Z zW6!UqQI!}$L4~Nlkib3*sy>77a{;a%H}-pDiOFg}y%5t*l={6yKaA>Q(1oGv0r( zM?E3NbI+V=y5ni*nACA8gokYN(_}<`^!WzNSP$h zV$GmD-ffsRzmlB4?U`(#W(}Y+WPb38 z^SdX{{U@4?DeWzu6V_uk?wmnK=^owib%9V^>lvmF^pOOmo5=E{kC}gE%!+B*kV0!d zc<)ydNNkNVE_s9%3HF6jTI+|4OtRQaoC`iFL3_pILdINE>G5YxF#zoI=LMg-KQ(i~ z$Lv>D7piLtwz-J5hA&*kX*`3F_GpceKbP*h^yFESKD;Bt;ZI znN5$5A4@EzPgg4<)X%wmnB!oUW(csp8pb6Pgoz(iblyE*#*L0n12}$+-&OZ?_p0e* zStE^CjzGJhNF>c>^N?+Nxw(Mn^Z3!Jg#Dk?)uxyynEshdHo-Zq&U2U0**!>g4~)d{ z@JCcDCRD@pG2sLZR54r41WhBiBfV%ZkJ~%d_nI;O`n$Q zAoH7tTelfu?wGMc{4h*qKRGjYdo=18dY0sN%=wTw8P;yVusPO+lwK0 zf8K{ats(!rRx6vNEMTq=8%k)5P=bS+e#mMgzGqb#q!Jdf5RCWJ!olFgO;+{+_W=`- z8;Ae1g7wuxZ;;zP16m6!&vVmeY(W)wR3-#KD1?7~%l{`W8)P*i$``=7yW~|p5(7ev zQj0TZ&1E_fBF*hh(D}D%$}(p7d_8`C$?BGiE+CVGy23;p$g<3SHu?NVR zbxQZ>T&Yy*)qu+130%jRboi34oES!%ZaIom{l;z2_@O%L!cz44;Vz+(WxU6%-)hh_ z0f?@c)B>IueHBLpH~y^23XZgYpirzfD5Gc%Ij~-yfjg_~tnaG0Ttv%=aioOvh#_t< zSi6dwC2tjq=8bV!S_`HqmPZd-Dt=Oj8V56`z|^G_p`ExCz4?jbWx7XhEO=)FZoOX` zzVVFrgMiOO+VN%!k#$v__t3aF$t1TDr$4zGC&)303t^yx#0^m-_ZA+5-Eq&BUC4%~ zF|zxj`>{pzcMH9xF##7FuDs;Q*iu^!WIQz~lR38E=m^YgvFwPW^BUkZG#N;+yYpVD zUd=qwhl+S=M)IA5bex(=Sf6WH>~xnY*_IkihGWAHRJlW6e7gKa9g|CE*Ip%+Wd=7< z0=nCOYFr&pZ2Az|=eVr_w6GQPIw5>}^* zTspCBZuTu^g?4Jc4Y|$6RLS?OXB=b`nEZ4OrJ~GQ71IA+7$$-u=8l#a=uKeWhYWRk z3M&8!fRhWK4P@kU%+#dos5LMU1?Fih0gC-bY&FPEN>ncC)7hFQE`uZ3ke;(F4I*~3 z_P!f%LeRQXV)$W7jJXNEKRFkAltT<1d0bNu3F{07U#9PCn^Ok1`Q(C=(nG?5(bB|v z7nfSo*{-`y1?00r@J#8(y|GxQ3AeAg%zpu;y{ICQgk0tmSwfKh%7T?n;&$K3V+715 z2R|i~>h!kgxy$rt@r0=5{C1Qz%K>;fFux)F%?3o?9l%ZtkZyp$7NR%o+AZI`j07!hM4#qZNgkV$9q(mi%{&ST+ls|c7F88ZRmgu?Ok zVK(1`^9gy5H|ke*{=+v~@9|nYORJ;reY*dH1pHq-p}$!Uh66Cbf)ZvpfHB=af6)QS zVa)1}wPf{wH|;R)AIjYSlZO6Rg3Q+Jb#vMaX|8fp>}Z-F=^nU)NjAXvW2jI>Rnrl4 zN(vTNx^bNT!nd%3pVz-^%22V-Z?s?-vhlK@Cf;=N#aMAnju=@(BiHNPEt|oganGY4 z!eDtjcoEc%zcy5LLgq~B;1*PVRK?fh-L za4gNQ_53o6eHof_d~Y1{Km53(eMmkSTMIX}`#Vohkh?mns!WY2hK$idNUNNs>fjs& zaZBqp9Oog4&$(~vZ0ihoF0rm}{1Z#nkYg4#901pC+IVOt<`4%QJqrxcM%*-p8Ni{b zn)kz-7q17NwGRAg*MjyOD*Y3J=Zdq9&Gfh|pO}v!+$R}5sL242oY=%V#kH?VD~)T` z2&RS!5hQrHoaVq~vVVdLucOnTfaAE1nhBL2p{=j8bAWS#bX6#sO#ASuipf0RHKEzP zI;4EHghD<1_p2v>Sfn0j^>};5ELMJo`!Ef<4#=?XL3ego3G`|iNEY1uiS^5_8K-!~ zUxhz5_R$%3!ARFj_46!?hG**6zZ7zS5URY$cI{G&sp+kU z&gen2M23hqtV8!^%T*&Me#&jdF}?Nhpq-fDokP>R$u7w+5x%9)n=V#&yvYDlq0dkO zMemkV8RRXz*WG8md8oNcVS!^-y5`awpMK8*qO~ZCz=Jo{VR{fRxn@5hY0C?P zNFNRfiCQ7hR}sSw`P|WCYpDkZCD2@|^3Y+emHtxvN!QXIyz7$D==x2;42lo{sB{g% zf~OYDuh&0qE@c1_ZVTcQ1%VE+?fy5fL;hqdYxh0pu0d5!D|S8~1KOp~nqLx2S5(n4 z^AHF&~WO3;uzZ$VQZ;5l-557_8?TM%-6lxeda8?8~w zl!t{1<$R4~bcE?+;(@<`y6Z94mSoNwKd9V|JFd<=C*JIp-h^_4HR%rxS0_z$)rio> z?GuZNz;)FYbb%`avN%WXj9BM(q(!BoZ!l}TC8Z9Hs!+Ge^mu8I+N*SS%oIBQ<;&=JPT{~ky%53BN*`*+U(JB zXsk*HfA;SrW_1?O3iy@a(A*J?4EECs+v5!S-s9+0i1Y|LVeE>v`!*75uV&Y{i42yL zs;FO zL*>eY90()nk@N$o%w-a%U4{yi%N@em2#v`l&jIQ|H9?nz+h=@-C-IA+EYj$546~*~ z6qrI(UQzFRT$v3uU<^m8L9u=eFZkrl$tegyWTNmHWWxC1V?T7@jZ8;C^aB}ZwY$bH znG+JqGBh|O)8wx>7Ijz%q{mLAC@ribm#&${+S9@!P}qL;U<>zHx~X%UU@qKXVv=(6 z=`tRk&vj+xn*e+aRGS~)BKBEy>hSgi0>z4Qd~!p(nS#57RlydHK(ufIc<@Y;%I{C9 zdL6yx^C~r7mwRK@1TX0@HlB)DIEXDif^(zePG;%tr#hdn zUCK3e_0h%4u=y8SQkv-=W(|_K#{WMJyyAM3nIW-c$FeeU<+?Jb@t{X&!lS3-{3aN>&Z<-NZy%4C}jQ@crz>QQJAl@8pN*3 zbON9hJLjkX=|Id%tB9xL!q6Vqg3caqIV2co@uEQKxEH62q2aY4)B8i3%jJW5QB&Zv zQ{dP&0~38XaF5r!{L`^A-UWprg!KSH5yAL|o}wuqz^lLb5awonYYRmLuRCt^hVvEWOT06uF* zmu3q=@5)zvejLA`nVb9+RxBl#dq*%arPA2PmJb;I6P=-zqq3G=QX|~W{T4*H4W+{|<7zxfm6$L7>&Wi86q7UJZ&b4NZ<5M{kpGvgB;)lWdXl$XGHT}bA zC)&b*1t=8$a5wTBlzmx1pQ^vGuRpi3KSLaTe2=!0tF?3+lq4#`vP#PZZO28kp0;`~ zRLi!Kve(GWv{x->;2iSDy~)QjwqY(QNp3Cv9zuqwmV;}%c{#S`E;R#5CjUd|RVK~yQVUD$ z$j`pf*bYUA-ZzHPgG=(PJYCh_zDa4Hck4+thSGy$nVS7S^ldzWx~TABao1GMV1Xl> z2aPqXM9>*Z$FExk=6uhRprN_M%Iy&qt2OLwi=y@V!mhS;!rV3KBUQi43ELV32PIZs9vE+)IlimGS2bBhT3_Ir{*LpzrW%a)r3*Exv z4nH2k^|~FE!<&H{yZf_KZ`Dib{X)mu)YCC5*rqLQBmglan|IDLEdbWSe()7& zJbR*wGwXr%;lY-&kc*`l-{KASvFsvywXFSSU%%$NfP-VRC50i-$}@a57IWV_`N++Q zR0Jo~*fGn^T0F&=w^r9|+1N`|OcGxA#zz7U39E>bQKf)|l~T)wdew;wIXf-?Zc5v@ z?s63}4>!aSf(2a(`naSCFlG8en=*70BzRhnDUU&;&xJyc!!*kBna5sYjh1h2#Q|8k zL*Ld*FQfajEV}=lKqF4TerX-6>+O^timRbSRV|E>2(FO>QGqXqnI^8o)u^X{1LT4S zbiKe+n=mDrv~xl*2$AloxbVFqe<_vH4&!h>kEK?yOqYf%GNOE~kPlxmLi60Dh~^Vv z62E|+t8w+Awgnliy%(Ab#B2OA)Dr53>~M0igmz5*0X;q* zF@)T=wGa{kzM%M)j&8HK1`R8kzbqa;F8?4;9^yGKL;KF3ki1sn%2}f|FehQAt>2(5 zbQ1BB24ac9Yyo$<&3-)3)520SKsT5^6A}3&kSEM)Pa=9Z;1KG_!@^4ci6R;JNy|<> zAk6v%-Hbkm6qI$KAu)%aCM6fd62>)XF61Y3IzpP^knFMN{kOP&u?AQ z2>om4|DP7h3ahwCLVRLvJ2QXwP(rPUpF;5 ztrOV}q-h|zVjP|Ob6#xvpZ$6@hyfnsvFhxPn-1Qr>qTKVyX@y5C3*6Tliza^QxxfzX-{o3W>#&kLY5q;oi zvvE{nTnA)gZZB{cR+}DuHwr->=D(7DE~;xXE^+v~6B37}UZN2J7`WuXf>I}*vvHRk z%||s03kY;#QD72gwv$?R{H*b49K@`*VkadiNCrc5J3H2UeQL=+(PQ3J3MU6J|^ZQO1{A|rFgA8 zp;ru}(NsHa-hJmQTv&3OaW%4RlG1u~7?z&TXX5n=Yk;{~_1N>P%=D@jmT$nn z*OBLxsL6kKui9`C|3QTJ8LPdt%PNu)6Omrk3;{Kq0{<6q3$54p-1h9emLF+X=6bF} zZw4q%T8afB9u47Yi$17f)_RyUGJ{X^pOJD4^=Eo>7CK`FpSqq4F%3+1Xuwy3iP(Uq zFEuoKVrV>Zjf>Non^E;@o1hFVtk+%$dhbe%v4v9?OQ&6~RWRVo?IUZMb+k+0-Jy+1UV zyq#>DYRvxA7h|I0z?e*mc;x_x`wqG&^kE#NOayKHmMF83DjRi{YpD~AqP=)0x;Bx> z85nr2^MnIjaf~ITSnjU&i;YUlEU$5&o-IdlR?vZ+ZEP2+0Pxqz=$~frzOTeyRC@~>NBi* ziHP^XnAu3{vbr+3v)dsDBYkFB_x8#Nxg(~#?bkH0xvNgD6H_(pxIYPi_X9#v)05`t zhIDhRdVy{0-gqj~ERw+czYv$cZY7MqSBxjhtvh{-tiyZ1w)=)SaYdgDv3Q}^jy*p3 z!v|OB9&rg0T3SOS0&@pi*)y`_D&WP>WYe$`!87Hsh&RChj&mn*>a~$+Em(4C*HpC` zD|ui3Drs+3`41bTWH<555h`~NG^Cacjm&AI!cF_QPSJyHT9A`b14JnKWoLZOF|rq9+AmuFm^Wez*c*nD3BcnlpfnJvE+1LsL) zdUs{oZU$5vKE9BaWjedNvw4I1iHGufPgfq{@}8Ke<__6IzkqChCpfnsBYKC^Vxy0? zPhVk%h$#}!SP-y;ntP2#WEFmRW9(@unrAfT*Q|~0GRNr87P=eD$zztCHbJO7u8#2C z)kjZ%uP@HfWc}`k=`GzNIH|kxT5j4p#2bFJ^28iD*TIlZ9e*@AqgxcNmp3~Xw_{EH zdp+d+P#<%vlQR6z2|5?#`vcQh$V_c~|D&f86H+ss^(?k@`!{<`W>Zr<(w{ND3!3yy z^n!gzFEeYVx6j}0HFW>W3!A1@hRYSqB6msOhcgJk;TT@g3bw>A!8#?*dP~*K2|UC7 z&$;{emiEwIh-DS$M7wMX7yh$QnFizk)r~oCm-&q`DYhS=yVEEI?|KiIu>^c8b_nml za3S1ya*ZGy3x^F$ukltGQ~dlv@@1U#Q5L_*2aZJjN-k)#`5hJD-DB6-SdHIW?Ve3` zNqxk6vG!VT2U9x!i7NRta)aVJvakN7w$~M#AzbF-yEXvJh0$qr+m)Bwt^S3)_jhu| zb9coJNz_|IbfUA<)>wO?qw2iF+kKAmLZg~&xmrt0L$bdsV&&}JFv3a(-ZVBkE9d!_ zCj0!pzP!$s?}{d??4+HHfJvj5F9h2cuJm@Fb!+suwQEgVoKdY*$Li=<)mlqgu(Mcg z{x){s!S^fXewiD6D9A8%t@F?f7gJ_>dF9IpU$N)CZn0(=r7Mm8DOx|Ytt!V>S0PWo zoKat)?qd5%qg2(##l0d_$^~8Hrg~R{?gim+CFwD8i!pZ)+H$X+H3AWdn?7S7A@q>N z)tkKE1R?v+pVFvb&PAfS0O>R@g({N~+=izcBikIu6ak~}!EA>9TBD~O#36$A4Y|dj zWHkKCVODJ$jiq7-&v4$@USC6AHuxz`es|>~mi9j?T}v}l!?s&n*Jh7t1pqD>qV|=- zG0G1WM99GAt<`}X7sPs-Z!R0ZdwAcqI{a=#@eMS4ZC{al#HJsmA>bvL1*Yu_!X0o3 zFK>`qZ#M+0+1or$kewoEXZl_;h`hraG0mZ38wUXzA!<238a@2q_m@}v&mVP8S+DSZuu4%I$NFXxjbjFTEu zb;i9TF_3ydSO$vBj78E%hH$T^uWJT8QWF-}n|QLyAUm{CY&Ys{At>YL$g4WyC_q+- zh*8VR-*liZN>12kLr9qP^{kPEHlYR?VUCpGyUYsa+jEb7d`lNvPSD5>Ojp^hySPullZ7*x*B{&QNu zxA2T~TD9-TtxrcY#bgAGFjsn0FLlaI$~tXDgrb#v8KeSkQ`h<0rm6USlYOXTif_VC z%V}Ln6EaWB4N)8Xf0kZ_;6RNeR)BWJ;4Ji>>BYlHn@;j%9)g%w3ec+%{C8PI z94XIrf`nn|tKCnb7}^)g#@Pej1eIC@{U-@a;$>Uy`z1J+TGB9S4XsY18iM6cWY3`6 z<6&LNgj}HI6B{xx(Yv`|F++6f?Fpzhk`sW)z234YWb(>@N}Bl0~KM|KormT>w#dLbZtF?OC2c98kld_|`Wb5EdbssR$KI9` z!TK{_Wk2Fvp?mcHx)#Z#aO|2=i?uhcP_=K@=(f%W7$MW2_h5CGsa2x3x6<#lK4Cb0 zZWyfKVVt-}&BBhT~P;MmpI#`(N5YBdZ4( z;!ib%UN~3c^(gx(j#m(DZYF9)4;g9JN<~`q@j*#gg)wt`gTR#?LC!k)ax8jYGdlA1 zBn*}7QJ5-&O0}r2Gg1I-2K$ARM;A3cY3&3uCPsUwMmH67+KkIMvXWo(T_huN{fI)x zLlQR(H(NXFl;$0%xB0b^aWVA_Ly#yg9qb3rP_#HBx*fZjX0rioA$n8Y^3H(rXt~Mk zi`31pk3+=J9?b9Ko6#LyKM@xfD4l3pe0~g%efon^FFw2btd1iF$T~L#P<`#*NedB) z3y({rK-8yM;{GRQi2i|ljbg?3ZcN9$sMr=`TRogED~@h{y^YFkq!0FXtoRj zB#FCI3zT81vSRy010JM_%$aBPk8ox#)Q};YO4R2{t0>*KuoBRoytyZBc4Yj|2S|6+ zMrG($(W4Z$!`y$pZNvSF$vy!%Sah?0T+xD=MVH&VE!4y3NN6i88)ix6g+fzo$|N@BOLu1-oy-AH{hNj8}ErUCyWxWY)Vgta-Ic7L$( zJQt(l{>Imz{A>Q;gep?uahBEMLz_d=$2tj3#))h zUN7)+@z4u?_to>5C@$g~1789Wp~5KLQ>LpEf}~+Z#HZFkAjS%q{=bj_R|r`mHWJ>5Bm25} zHXZ(?? zIEN#x>DU)C_ZgEsZj@9%UaRw{gsrx`e}7G$_@(ro+S-(s+h#_1$_S-M$^@-s@n^rv zC?RSLHzT6VGTVX_O$`0;7hUy4o0Pu{=)-?-RME{e>eR7*~JoTQM6X-ed@YO-R-J8Trvcruoi+aQ zJr<11Q@r^hFqlYLY~RlQ#jZG||EKNte2YeYcII0iHj_b%@?V08P@~x5qHuM!(n3Y}zTKy1(75LCk9!$aw+08+^i0ji~a% zN*C|L1@QgQ-+G24|75JS0(yts+Mf%Jn7*9%`@v|>*CdNl3M85IU!8)!+unBFHy^^` zv6=KcocD+RAA@fk9_m?dJ6{OD^PGC6C98yd-Mz8K@~2b(Ju6^jpicPwC*DZlWma83 zT=$*S-sl()^=Q>g#CaLsVd6mEkwzeAO3#Z%6Ll6$UB|;hw&da_^}`Xe%%~Q$^sOE- zk1izAl1j2LDQ=EjsS$PY)%`@)I|Cl0Z%Ccdz2Pfo50lw^p0>8w0?aG-MNprQ&{Xgm zEis;1@#h42O43=7)dIT}+gWHnHLOfDUy)Kq3hXasNpT!}(WeqwZ7uCtDGI80)jKd- zVatf87{uli1lP_bUK8BIr@Oguqaa`Z0+pz#gH8giiK4n#T*7?n^7-vEZFAwE;~1$T z8Q+P$!grgWJ^3U@wBhdJMyc+Q-Q?+aJgZNi@_V)jN&(O>HMO#;c4`XDQ8E*m6l_sA zBp){D19JH!ytIYq@2)%W`2%s!f6eBcALy%neuewVeEN-eBjkj`n%1E+ou7lPn*FU= zwj|UGWVp=HuzB=mfQns}vUDKX3z;ijs2?e(>(jH1+x0BpSI*hF&b3h(g}x+60$BSp zFt&e0R&Vz#FvpN~Gf zD8P8ggNg9kNg`iSUC65G(6n}0MNZ>@6212-AanV~6Ci2k*~a1-*f0FY2#BPFc_>Bx z)Z~e!Mrhd*(-uSg`7!ipS?}t>NoPS*OoU!~Y9q?ppi`af>1`+{O8WVh zseKgl*+>yFTw|k)Ud8xYy=vQXAFhHRi7OE)Mq1XonEW9UZ%S6fJjzh&-{bTQLf)T& ze|&e=KIS^LDxJqC*SQG1r)1rLdcZNn z8AKR=LXUaV&RFEERl8Fsn{c^fOGx~=hekEa$}Y`E!i_-CxR|iT6}6|~Wh&d!4DQ+3 z`O})bf;}ZbVxCLez@<(>>;3h#3|9FwSSArgc{$s1%ipOH`S{gaOS?Sh#2a zV%wfAlSkjLZu75eeD-tDz_=NWf|}YTdpze}t?ZAe#ugtR$D12s@h|;cN`zFw7N0^7 z@OicTdxupno@|AUu-o7OrG927+-RTXvMav8kY_GXkg+s*#*9XNR8(PB z(T!f2mmSPO-hh(BGlctXzIfjI6&ORIk&M>k!K8GY0#Xl0H@%xO52uMe&kjIPq&%Hd z+ql_UlxXk%K^hzId(e$Par;-CLB}1ub6Lu#+sO}xAIx8iIf8E!Vjjo{6qIkLkMbxd zF``_bC+CzRd@w%qS!MVLtP9mjbR;(O|f0jgH!>rN1EMoGcJ7zQ*E=%Db|^XDp- zFP*#b{eRu>Gt7I+9=UDrvGz~!e*n;~^%pW;ZXjI9wC-{wXPZ2t%Ubxa0(>xC6gCc> z$<5zBPU4oYkc?P?Izrp_GS61YdjwyF(X-w(-R>6H(zDmVH@Y_s@_Du&bC>G;={+}R z8{`F^jt&>OfP--IPuZS0m4U&nol|d4=O8}P98rcZ-h){kmS#CVW|T78^OmkE!T^mw zCbLtvuHfBeIc!()n4YsPTJCVLII;9(qh`Y>Q8Z*1vA*H3ct9?Z2+b;i2Q6#kl0(5} z-yh;q!Qu|BPR-}_xz{eGK)=%_iH?iUfRey*s*LnM4=EI(BdjNVICpqH7*PFODixt|7uQ;mY>^8FLDP_VT>7`<^Inat^1a&S8v* zXtU6HjjrHst69LxR(zf8`mJJ|lB<91pK`!PCMRhg*9(O4Jdo33PvFYCV{MS8UTR~t z%7EkXLSLRTz%czBnSmvF3ASla&-vljNpha`lAJhyo&$b7H3!$@n_VBiBH2l``>E$m zN+N7hf_Gb;pT+pnwYOzgyDfNKP}&r#BaQd6Jc{sG zbVKo6LM8f%`h@~;GD8R@@2URWYy2MC=9P2(2WB6iNkbzaf0Tv#pHAzIrLoR?Nlfwn zVaJ!Vg+lk?-ga$m)066EVzuRc>rIF(H;ob!xwa*S{0v6Hd|3RP1ZxDYllsHCp94a_ z&Vmi4`QWtoS&9pMl=0bUlaHEouJg^tH8f!ZAy!#b6PrENJQkN=bzyW{JwSg9)^ra%8_!jE$6Yam zR44mq?YVCp?C(dWQ^?est;iMz874G4f97OK>vevxiH*`%iyq4B2zm`#FT{)*p0t-> zEIrOsG>wgo7yVPp-+9&Bx<7hE?0$sJ!J6bjxbayPPNF6@NWAKBf!UP1bCvqzB|hJ% z(&)DOG0y?*>_GnVVbE#CM3)u*KD>Xa_E_JnQB&{^d{-80S@{FQc_x)=mtaY0kgs~(@^Ea7A{jyf)JaWI082z?*o_t4hiLW+U5dkC!fWgT@XkSVVfk6NSi-=44 z{@C}%Cqq^w*#F9B-80Z=OlqX|&6((+gz>eyW#dE%ySG`|h!7iuw<>N_R));19X0)6 zWN3?`u$NAwppcLzuIu?;w|f5kH^l6f?YoEOW7Fb{;P$)2UD@fbS&>hjeaNH{pSit=< z#UU+GFD^{$Qi_{@s*|Sn4=}7{TpP=z*Dem%$=NRjnXdd z0S^CzDeYc~NOEinIJFiHRkt->-4iRdVR;JApw$nPtfCVc*QR`6!DQ_AQjsEg1U|^K z7~$pl@e`Luh_25D;Wv};NDqBck3bThvhEuEe21nF-_BSxUazAk9Fso^{bg9&9Otx;U0FCcmKrb=?m;Jo+~thW+SFz zqYZ_v@yE`GRA(v6J3`;A-kbdDXzSy*MOSvVW^%l6?-mul{ea;q)wrkG%shU`yf~S< zU<5X)JriTp-S|aYk6sdB!A9emE#tD!(Zmy0&q-;CRu?5oo8EtTNHICm4WP^49!~vd zHJ7&|mg^5O(sGrg`Wc4wl5Ys3R$?O>aflk0FP)0byzkP%6@gZ+DR*gMf(v1cD?)Rj zwgi1YH4T{7s_i&>-Fy0C=;Rb39B_6WUXOsZx`(pwMDTbmkJaI0&b#XsVeJO!#J^r&V&Ys5;kgWu`t`AH3pw>Eh_9Bq*Q z9mF~FnN$RQJ^UtibCj(DvGAzi$p?D}vj_?ekQr!H&AC$*m@#i#8?hFZIR;-6QtZnK ztOYs19Dk6^wo^SFBpB_Ik9*LxjC!~3Tv4QM=mx>qmOS7`;}7s>*TSrl!=mpxrWivS zyE%IO=@sv`3zHiQ!|T>ulp^BzXF0A#CEdDq$1S<$%tX2#S!&Xr+I-Pf3vLQy2V=+t zz=?8`y{A)ov3B1obxGH}=v@%df@w&1HC;7+iv3yFe+(?nz7hAnKO(I=v*M!-7tsWN zmbPY1F^w$<5@icTlxH<&FE+cksZ;hq7NP^X?}S6+)UYKwU|dvjR+B%>79fSRomsGI z&1qSf?rO4C4syxP4{hspsp@x+wl7|bdO<2)-M39nl(6VR)W!Y8E^XVS-m;OyU|#$P z5U+`^ZmX1bB472UXjH9`19Np2A&(JCbzk+dz~8#lHN#$2GN&SjvvF(+EwojgHk zn4wr95?F&QC5B~Sn7NMV=2!P%_(Nq*OmrTq?223&M^fm zh`F5Ni(J5|LN#x^_SZDcQ^Ri+6dBE-Dsuj&umskm;;2ok;c-4IYqhQxnj#EY_K)Du z!VYjFYBTili=QEh^3;j;jLH9S(vULbj~z}mtv(CPmq_yPZhm<;)iSMT!W5In>U2_` zBR~;RFRxDUB&a1a@*#oXPdxxpyVI9m81;{#9{vQZHn$o zP7c0-%LbDKhsw>711d|m&fqt2r#@iOO64%-tn_5Id~PeTui0n3Ukvr)AAi}>JA|N4 zDVDhc+=|6fC|8baQ2Cf=PI4d#;+*B?nk^Gm$)KExd5nh_hIYKGy(KYsmfbxa+X>@w zcpPEHyP-aJju)N991S*e$O|dK^UFb($m);Oa`y}5T+J*HEx;tDCxSpzs zOv2%pdXwptD^BI5gb*^aYtO4nsJ3SNpo6oW;1eMIvKdpm@8aRR^d@B+VBb+dz3Ha7 zRBG_TDNY-n_hEB~Z5?zev5_Jz$s|UqbQ|gV#h19q!g1w(r_z<9{D~mja_FUZVB0P> zR>ya(O$QI)X^v@dmKd=q7Tt5%sc2z;sF=9=`k?U(H>KYlPW(*!ppL_6RRqV zoUEYRjT5Knyavzt`2-h*xNTzaDZLqKNH#l0p-}I~r1FWAh8XC4LKx(%kp}hawQuB( zi~+t+ckFGi(3F)n&sTrO1wc`gK~=n};%AL16k73Sx-9O~@)ddPfvLBRRy)j4ApKW> zS%{$rUrG+y*Qe(9%$d-AGHulQe2vuxlt@f$cLI7-I^e!a*0W!8FLhrBUXmBh3BBDB z9#l>tYOZZzmP~AP z;OH05_4BzNBxNbk{Qp^BYP}%N3Qf;G zD%ZhuD{$VA=#e6~^+8mFh*y#08|EOozz=c#9F)$XGP<^gIVcVb=ZL>I^x`w^Hmo|p zJp1NwU#?T1ijK#~ZHu~tnl_h(D|bRVBEz1?NL_xtMyPh{LL&N`3LcL~%yh?%3LN_S zjJo2cs_2i&1V`lWguHjk-VOe4?6oMGpsnEjNV8a0V#KBrDg_j{YpxUldpX^6u2vb+ z39(9lX*(#u_>&zqfzqiKqlo8$J=S;eL1?^RRU z6vYcF8NVXQM!|AWwIm0xTd`;oN-)E2a_$sKK7Gfu?}7I5b2+HLMY{-9u#mM^1tX`T zid3)~boqM2N15XW(8Dx-Tl+@U-mt-(C&N^VPsUP{eUVz={{_iGu&&N0DK78)_w(e@ zv%g>&S^H$kRksHs;>u=##j!=3EcVa!Dx{1DJ?qrAlv-@b$ol^XEhEz0?F_uw+}f#G zCh@!DzFle}DM94bPF$9Vh-{b!4{j13AqWptJQk-drnS)5CCXP0H1vJ!9YPWxod;HT zPO0Ym+QD#1pX;F>9%cLVt+(D+B&ylAB%RaZ1@sO{xtZjQaFSsJ5GTZ7b%5pq1KG9s ztUW?lKFR=sC7IADs@<&!M^=8eSRPPGQTWZLGl0UvP+L(iB-kurhf%9Gz-F6ZcR{NR z{)osYET&pm%re!dk{XBGAm^(BiHB&&HI^jX_9@k)Za32DJ~=B{Gb^&9w3^<0_SUEG zzk?S0xz+XQ*({dH5_&)9VisFO7Cn2}ve(4s#|-65>kWd;x`a4zVJ%0s%t+g6V=+w# zXMMCd$-QYy#pz4PCW|pJ6dy*@Nz0hRl1DFG8E?WZo>c3QN9BHtQQiTw`%YKavwov* zGbht2Z7`eJ+mNENb*t$sdcYiqHBnI>vDvuKhTcKg+vv0RzIcaXE>@iZoXuin^s`Ev z929qn!3EeNV8Vchu}uqMaWmjbwh3=dV%}M##84WfB)!1#7*9KjNwAeR#DX^H0+s$a7@WY#cKW7Y`guGLjC*3i-7xo5?GSXhlHYOsQP z4IL}jyVm8=*W25h_qoM%-oPcr*(^?4S(cEJ^{9Ra*9mFy|N3Pak1d=dd)Ydv|7>v| zQeu!EtjO+y;qab*#5SZ^4ZEfc8-TL1NTUigoJjI7nHtVxoTH%EgE2^8cjm{es|bs03SNT= z{45p=QPHvz6gD0^&=!i~DOXN>x|+HErNs%6#gx^BMGlxTl-YQNH#E@Vl_~-o=n0Dn zw|JGpHSs(dBNPA>t+M#hurHH)R}@r_SrZf*+Ad_Q&=kMpXa#fZq0P9F3R+F6Kd@}u z9=7pLsOnWeo|n0}gzhb-aLEdto-Y@B+msxT>%BD$$Osjcg{l*N?8M1F7t6t)T0GeH zOd>$_g~e&?a&;FlI$FFOC~0Z&bhTWyt6cn82#N2vI4nwwJ7{q|q{3orkOx6GSEO2L z@tDoJK{vp0O116K8am@h!~U-=R?ccMGCioYzFuzP#u$2}1?@7e+Sn$FON`9p=aMJ? z(qd|p5`#8K$z@>(i-}j~Yu_;}4;D|L0WFO4n_N`u;>SctoZi2psA&$4`&;HgURq35 zrvbhXAk}#0Wn0a6Sq=0#=v4P5NwwW>JlCkC>(Xy5?)10e`7A!}Q6yV{t)g1!bN6m! z?s{u-1?^6X>pTHjCp*YO_MzD zXN$!i1>Vcn@bvuq#bmu0)fSX38MEmy5&N;t`~wUHAOJ0`}lHTboyDISm|l(~4bkdIGTq|=GG*htHpCWo;^ z#N~8NDju9t;te@rF|Gsx&#U`Xi<&B$m<71X2y@SCMk3ROV<(iTU-vvOmcq=dZJj}0 z#GZ8tL7#lA0@Jd){_ZP6zW(lOLcZEJYhrx$ zm5d>bm(4L=JuUR$93?hRzXA;aA3>e$>w_Z%%250lik!=kvf)VGa_z z0-RbxZ*FS*MUQcaC+D-6m`*mu?!V#6osg2RzI{a|KYaT=AwPcm9a(?-?N{XMZ@>K- z_13gri7e3TgG|&Tclz19X{_T^QRR48? zm1YiOY!Lr`?I8IYm3ZgB{f?z-Y4AiiN<97dPsvmI8&_$hs-aK+c;s399XUf<^iL(`%)~93>xBomB zzxnEaofqENTYOC_o*At*Aybo(-I5S<^5?aI-gxZ^@TNxj%i!t8taw%=_>rdNN3uzq ze`GNRw5Nb1US8Cp;+YfDr(T6yqDsXxhd%xK#Z;|$=1}R6E!Hlc0Gg0^4i(QFol1ZB z-Q5eXJ^@}5kB4?GR`IN{VxRu;PTOn$eO|71+A28ryy|hG{m1!574C{>O;v@v;(x&Z zs`6{aGo`Y);^}kJV)|cQSlnZ=c*l}lJyiT`IBBsKYEtb_QRpexIOP|^xh*zZCMl^~ z&^({yOrXefr@?HATBZb+H2qqG2WBNC0$!Ei| zli0vW#gpS+i)k2JojB%e0{ksLjt#c+ODoe4qXN-Cp51)*_FM11{nn?q;lPQsGJLkG zDs3V#f?}CDhAFfh+4e+~akJTukM$NJ`L+mIwv2^6T*zeIQ{7&>tY0i0pShp5d+oN! z?n`F3*4WwcNPC^OQ#>)PDgL27gMR_FO}unxU0WMc@xYw67&4}SPc;brd5!8ihJ0VD zQ4JeWRHXxy`txue?$--^rtbT5>0t3E?|*Zvy#LlW??ud=pWEVIX>p#LIU^#rg(8BK ztO|%Duw{}e9fIT;AvSn-u?mc|q;0*3R{Lv@Rk#fgwsp9|&H$nUG8EN;?RI--E_j-k zJ@7<CI+H!=|g$^vsPU6xy?jkox)6 zz%6ttB<3?+*A;oUtX|B^$$xg^HylN(ozG(VXfbI+5cLU?Wa^S6J0b_slB^wcEsgh; zUuT3c$W4-X7YW&E?4a(tHa>KdVkqhtlOFU9ve3|33ru1dMAVXRL)7_Iown6zO?J>A z6%Wn{i@h;gyj5*>HMU%6ux+Re+kx(1G0H8rZHf9#>-x&+i((Tr99V9LF;6`TOO=~X z-}>fu9$5K#e>%+&7G#fX#cDj>5K(=bvlOdcqwbO9m$l>M0bHg4ue+UDIduE10gBVW z<$**UcV1JR4ghr;K=-AB`1I%(zS3Le-FGMr>kPkO&S&w?qc-^&GcKUM`$hfYDL*#0 zX>zIx_hK9OeqBpGjXMMP-eWRtf~tc&$7 zizI5>`K;S%XBvvwu{(|$S%FV^{Xh@2n7Q3qcX;jZEuH~*R(7M5Uca0mkF8b9pkd z$K?0E4zL3x1dGf_H8E?OB65{$E8&mun)5a6Xn2Y(rd<;v0CCEA648q znu{-n6n^ILT+@xEjaMvqs9TJX{H>8auuR<-cKSll178@B& z28B1$7<0O#JQ!G1BoT`>iiXkd_KITEC(Xo;NkpU3Xr|>J6)O@?KfnF$$M3)Y{+EWR zQhMRJxQi;xR_cg`()F`2+91^Nn`OjB-6Umm)}a%G#y$uLJD_*j&(c-3(k3hhyLXg- z+7#MbJIneV1c!KYaiix=OxSW9=;_aShkuVuD_n=2VS*&DLM^eQoU*v&kKBx6N-6E} zq6XYwbt;}o!`{BNjv4k{O5HHuQJZ85o!E{Q5uZDY;ep3H&fDLfF1%h0EC>iGfX(*! zu<-cD+dv#eL7#(91`8y)25O0w<*5{I zRwc^oIuo0$?u71KEUIA!d%;k6b0b1XU?+zm>`BnL{P!q;RdS-)Y1Ak@Up29U2DsrEpC33Pa`>OD-Vs^hE8^Pk_8|lf?r&ieRPfgK^dOi>1Yq z3rPH>7OVK>c0hpmV@dMTV##^fmP3%(;Sz6n?a}l8CqGt!j~ys2mYi2&WnX(#rm9G; z4y1TpgeH-RhTa_AXQK9~Ot_L<8D{lTo*xeoRi+I}t_+L6tml_V8J5|8Zoc!+3YKBi9P{`Tvyet8OfCynu$EnXcKj$P7Uw_U#_ zT$<0(@#jX2HBIP&7w=S%*-T(Va7U&G{mhLCKL~(vqEp$J033NZm030G-%%YX>w}!& zH7#Zh9LJy{GuU3**x*(&20c24&jv?);2^YS0fr%Qt$b|gOlP&kZ@>QOTSyDqQ9HmF z$OaOPO*WgCbnn&J*VP`l)#h_j4PNNoDhFVq@+x-D`3O91gvJ7uv zb31La_ANBVVOW$|Yn82Fqf@#H>Utt$esGU?a*MupczBQ#mPI)2$jSJXP)=CPG?q8l zagb}7W`K+VTW5_JGgZsgEDade7$2qb4{SJ716+>RO(Vv_Gd2c<{ou?NceqM|B_nDyhsMME9_%vF0{5%5!53Nb4zwJyK&|(6HWrIe#hgdL z^5K)Cv_bPZg&U35S^GF`aNB_20Y1CP^gVHSge0%R;#At8W7);PwVW`EVD^mtc2Ojb z3NxEC%lcq#i=H6AyZf zAh8Ju9OSmE=@^_%bd`+Un2^jW3=#G^C4ojqL_Jvi{i7=0VOD2nP2uhkFsVX8X4Y=Q z_K>W^W*4*rrucLUcWX@|B-oO%$S>ZeAEt0Wm}z^T{7RZ>n(p3=pZ{WdO=Py2roJJe zjBR@rhUMzS6-Dk$bT#+gw9!cEAc&jZC~|Hx;=3xwY%&R$6Xod*_Y@m;V(>h|Xc9S= zmt)@JVp3TB9DiVO;JcWeb1q)Eg;%Fjna$yxM2Ct9-9J}En0?e@OPel{phND3#jU2O zi12V+5n)BisNz$pjEWSJ-@fMx5*fvz|EYrbaQrx(0Kcd`X z5Hp@kjKH_FftAI$vN(?1HqeJ2jE&4qBG*Y7wCgJhUUKQ_+!hP#ZYzbyi%sTq3H^)e zG@GIgqg$z`99zuXgZ|p+c|Nyy8)2~$7KiFIRSGvr^e#gC>NFd%JTeBghtS#-Ay_;^ zKtg12;l&XWo1bhk;}%D*78BoELk|-c!|Y5w+hO~w;3QUw?GO^=B*t;j&{HSsg)mLC zzz}zL={tUR_cN4S3fe9^tHsJumON>!cN(!bXwh6R&G}MM!t{P$DGYh(3eBf4v*Z`+ z0dI0PsyG|Gw(6+LlJ63_QSMbwIb_KOEv6+>xm$hCqD1NHYaF!eWcS zz$qz;2c*$$oj{VMk^=UK!F1Nt$Ak-Xh6m z5fa~Jx2I~4x*#g?DZiqyLgHJFowzh3eaat)Os9bwl+@kDc%KU~BWi40Q+w*}NYpJz zXjyLJ^qFei>@EKN-MjC;e*5bq(`fJ9D{T+t20f#wRlC)p<0b4~bll+*iD5&xGk>^8 zXw@;rfDJ;Mj%&^LU8I1aIb$|EWw?F*)q!Q06&Ta8#ty+s`i^og!Io$Jy8PNily@J`=f@aO}F+iPEe|T5^Vwl2_3ltZnmiScdQ2=8R`0yO^ zid7ZER@H+s)-u<@Y%e6!r;&mAnElY)vu3K6+B7rNmo@tX|0XleZ86X?Yx_Qnmb@Xm z8Y+oT)*d~Hp1M|Y@Da0y2CoAQ+Z1qSA6z@IRMTbhtK>Wq57C!d%y3bp^`wfK{&IJm z6-A-u_(S~}mKICSG!uixUy{O&8$qDskN&R*#zqhX?5~sMrNxpz*t=tvhJi2u!(PdO zs7I)zc2S2`k(eNKC~i(FZYt8jMYpACEUiKmx?(>X!6cyzozV<(M_gTd46=#obZSQQjr=!_kjA{v6FImaA zwc2_1P5jyl3oG8=Q{X6??!^bFmRdMnVQsQ}#oFf=*PE!Aem`H$Y}E_q7dsV<=NhOu zXS7e@*7Dwf98-dd0V+lbELIHYL&eZbcPTCJ_#@K|4&ClgG+s@sw*J?&f zJGM*l5mJ6yD)t@L8{J*+s_(2>EYo$0H4IAZo1HU!O&o~=H~}B;xG)?;lG6`ILZU*| z)i#vE_S~_cO)&-%%QaFD6~7Ap6~zytNTKu(zL&|`nr_>>9-Mc#_-l9a=4GZV^w-yy zO|t(Ji@^;T2rQc_;rK|CKmf}~4CQv`4cceoP>sK1{!NQvivl~y6E7?Vw|vaew|-Ss z`czvb4M$ew?k)rO*fiBQFwL%e(D?i1U$mGB{VR&T1EZN>8H>T~t7fOs#aJ@c zXNBcK61kAEc&ZhP9`lMtP4|jjO`n##T+f%gZvSBMUSS-AsXx+?oJ5xQJ#;x^isyMe zK+w`(qHL;VGzJuTKd+#|y{})yOVE-KrXbfQbAdYiiN%$t@r`VDK_>q}i+z%@WfPXL zoK`C_lMXgntY$41)7I8qQr z+st3Hm^)cv+yT=2*JIvHJ5BFpkAu)iwv?I`a1|Ue^f9Eo-#}op`AIPA)DtGONsT zl^AN0StYKqBv@94GVxnX!)B9YK49@l0E{t37dkdf)edwa6!y|$h4pP!mBrU}b%CCp z)?#a$ z^Lfziog!yDdoFtAbk7Tm1#ncu@|wk<*(Q10G?FanQ%72CaOI`N zK!x05V3D=FX`TnPuVnCp#rs5dv{CY{0>HryQ-Cs7&)U}Fs*BCBeNos|5x~8fbCx9d zv&ECraj6su#^*P9Q5cD!8uZt2jjHw|vr zo2WVUhI_DhzW`Pzo(>e~+PvyQVsT^aU^`Shr?+7Pxwr~@Ci0yv?6>))3t5Y+y)X=W zEeuLMiyDp&y4~=mTAde4f6^Bx{c!E`GGp;9Srf00K5rIe>|JgF6vkxnr?f#{e6Fol z5Aw>7EUx?$78|;}qO&zdY3}w_!YmI6A#!)Bw1KHxrL>(9ot#Gc4tQMC1$@ zpI;!)?zt+A9 z#hPz-d@((@o@jV(x7CD$#ruTgaj%M~8z@kv8Y~#H`R$Y}?jz%5ATapWVrOikD_jJ! zm<5KbBo@260Caj~bg>)O6N>{p9XH3LO~uI zb@g!9W4~~$j;m*Rztl%>9@_aIyO$(0S$yV7{a&fXAhbcxjPg-qL>Bk`DDtVh?vH$b z8Vm*o02S+7eiB+J{K-HO@Q%eK?E3EUb0YA%raazVD~YKywu1G;nmUT)A0*iN;Zb%J zn@{V<$H&F2c71nuwE9FY&o-NnS}dOAT{5pm(4m&BnK?-daFi!huN#tyRnO|LKs3oXI1J?Zjy*QTo}YwH%v2HTyp|QA7KuI`a1{Ue*%UGb+Pt89vAgeJx|Mc$+4R<1|=O z)h0g0mBd++{v&swGZw4Q7L%dLWnW86Ef&7BeHv)%FllYJ6{ch@rj}SRJ=j5K)F>bN z;{C$Fz@n}G+V;s^R&vyKgp}*sPgiuJc^trtJ#wXEc|qB+Tef2bjh5YNIgPI4yFgla zc5&M38=z~p<-&V?@%BO$Zbh2ntFQGnFWI1t0*}EPsC(^uEfv#y82aERy1C9v>Fs>lsa>}{*^bG?< zU`htLlF$KD0Jn%_EigKVF0dp3_WsjA75dDC&v7LiRwQ!ve6I4LCo?;dyS3OT+qRWj z+^{RRd(!DT8`HiJr4T){E<#};3;qF=b!jh+hOk@Bdxb_CzI7s|G^FMie zR3h7B;@8*TygU}*NQ(c<~h0(3s-QiSW*`Z{a_yz|0Dn^M&r!( zivcP|lc*T}s2KjJ825|8mp#rOl2`*yhHcr6db7ZoFoO1CaKo_!rL6(f(- zCn-Zzs2G`sB#IgpqXkq9e^d;AR1AMq41ZJ%e^d;AZ|JY1Z#LulhyVZp07*qoM6N<$ Ef*C91&Hw-a literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_sourceview.png b/documentation/docs/assets/localizer/translation-workspace/editing_space_ftl_sourceview.png new file mode 100644 index 0000000000000000000000000000000000000000..712758d9cbff65018d14725fe0c062bf1f0c7610 GIT binary patch literal 26754 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 B2P^;p literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/editing_space_terminology.png b/documentation/docs/assets/localizer/translation-workspace/editing_space_terminology.png new file mode 100644 index 0000000000000000000000000000000000000000..6a78408a29b2a7edffa26b5395edb97eaa55a079 GIT binary patch literal 64495 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

J^x%`PsZ^@6b-@^>k!%}Ki$<;5p?n_; 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/filters.png b/documentation/docs/assets/localizer/translation-workspace/filters.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe7b5923fada697424d7750ebb04adf27d44be2 GIT binary patch literal 10985 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/filters_tags.png b/documentation/docs/assets/localizer/translation-workspace/filters_tags.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ceade854471d97762a8915ba64f03a21c1cc0e GIT binary patch literal 14715 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

;b=@3j{H3ArQl%Cn< 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 K@^!M7k^c*G57T)7 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/llm_dropdown.png b/documentation/docs/assets/localizer/translation-workspace/llm_dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..58ab3c6906d46c54aa58177d0902237fbee3b731 GIT binary patch literal 18275 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 jq<@Rp5RyaUQH$F%!D>FMpOglkMB`Gf>BP&Kt zS5Q`ABPTISQ(!kdLn<#h9v>!3QCm+~W^8kPCn_{`dxbzkOGQUdFflkyQCnYTa6n5_ zdVz~rTxC2yMo3RsGBrGahmc20Q&U@Jl$xX%7$2vsw4kM}XJ~IHEjfOIiHwt-EHgZE zbb3xtR#jGAA0sWApsI?Gn1qX!H8?4~|Nlf%RJ_2*Y;JX#ouyJ-Y)DgMqN%fEO;+FI>W7V#hKY|}Uu8B!OI2TO zI!jIP^!xSr|JB*x?C|%lvADs-&9%D1LtszZ-sQ5ky?cFvSz>U@&(~8(Q|RpTJzz#YQB1D2zjTg)i>#Axg?wc~N|Uvke4d0ZMLcg&TB)(S zZ;p6Xc3YcaXhmpDC_*uUrHfyKW_y%~fmU9C!hLT+NOr+*D?L1l#D@zE5xKp?pTMY@ zzMplMd&Y;4fXjT3&5bQhH-@r|OG8f|IVsPPn6Y+#V|8-ek($DLgPd@9kx*7vi&TT2 zkb*=?TtP{#XK$#>uof{MoFlKh~Cy^pWi4XbY`}^6TgkS@Z@mh&v^A*$SYc-v| zR@3QgHJ!dz)9Gt9oxWDn>1#E$>BI7pU>NAgZ(*dtIR-RRUlc{ff^%Lvh=ts95z8Ue zi4dkn$YVJxc#bKDFe^}J`jh}@8El?D?NA8iN$eX?iPCBm%+#c58mXBp5C+CHl@Ba5~cKs9b0{j6o7mJ5Jq0WxV%gS>eQzL^smJe<%2Mx;Y<>f#@)IU zya z)!;-N3o}x0^BC|+!Htc!ZB@>QWvD1B*`&An7sR&V}NA1H2a9CzRjPtLX&s1f>{e*c0lC#QGT-9xfGMZ@!8 zY+v+{^=Ta@t7{zi6dW}1PDj(;eD(MM^ftl$WpF=EuAL+alJO;4d+!HV!IaoW#v;xy z!{^`6KfitUx$l1c-}-!25d6)Iu#BO1nx##j3 zXkQ`#cC}MEuV!2~#pUwO8W0}jJ;BRYFW$cR@#0wClsr8Yd{T00Jw7dDZiSQZe46z&M(L7_F;+Ba|n~g|Hj84 zh4i+o;v&A%&KGgK?`+NTv(p+U31fL*W-*0ko!I)+?)Ki&*i4YM5Hpk){d#%z^lh_k z%B#);j%dh3H#xul{`sSyFOC;C?@D?w_y$6{`39B|G>&YJMiNSrVb)U#LR&Cq-1e0K zVmAE_8xkG}5n;^GR^PC|;;Mrf+v>u}t*cs;W#`Ue^50`SgABp6Y7vG0N>i}3F}yuX zl|yk+U<$S@3eH=ebXB6d^<1WWLNusqUf`tL(X>3euw3m;vrEu#d<(<*%a_kSe7H_R zu38)nJ~0a69EhFBbWf}!Vkm`yy2*PlMsLk12-wPuH_SNOQV3)W3HSg|lJPb_o2)8U zEPZ#WaQAsrq%`1z|BeqM21Tp--E!BM`9fSC8T3`3@?D%1kW&1lZ=1$G-2{B`rULH_ z^uTWKr^zYkt=~I+k@CK+&c=Z8-5{8PfB*2~+pA;pJ0Ab{smovQ8>Dm{3&=(_i`mNn zM-HUvz_%o-SCJ%ge0aN=W)*MTG*yF;lAtKfih#czDa<@aZwzr2t`Xv@zX3O*@}v6c?uMoqHu#E9^weCSs8iH^F4j7Ab0peaqH zRF$iV7y&^VqZCX_Y2vD+2tVb|L=ViAkL5Stl2lq^Ap%REB0_lV@4V3&r<}*m2r^%%^tyJH-%skOfpp3 zD#on47z3X}EW#AXT_WZ2@w?ZLK8DUyn#1Wl35-}xYl7r(1^`Slv}5_=O{h^e1O8*BN6KdD%rMtUSmvI z?Q&(?T6>kbHO-l@itVdRbz26kxt*Y?uR2S_Ug5+vHO5^o(f^O_Hy6qtb=^uy-S^)0ek5gm+jVtiZMhi8+WG2X*V(G{{c7dZ*jewUdLb7C zML5U6N+&2Ty53tCbCxH(=kO=C^Z$)63cH{lWk}~SXjE~ULu@uVEq&Md8+6SX$RhS`s33W!u%NB4Qv5t;#^xdgWWcvX!!SWz~YnyCe$5fDw%goNVh#n-t=lVT~a| z2#7TQwz+@zK8%6=BG-&@+=hWDN@O&gF@_KUEv7KLT^BBVhm9Sz3+>)6y z1wM+iPmcEb`TO_hr+6Q`T#c`t{PF-XCuu%hrOknL=Ee$;qe<={rOm6nM2^HBe8uM! zW(B<1pu)F8syAg5Dq=+c2RXRw?J{CZt|_9-VZDZ+YtU+a_J%X$ZfdIw8hc}rE41C5$V zvW@kmmufowN06`ygYn5z*9z>cKhS1K~Q|r=UmXI7U0IcfI@mcVXkcu)YVrmcOXJ2fjb-+c64&Fc1Y% z@e@ohHZ~TykM}>08-pk)+6d~bv+)4oVG|OppASB&o)bQ-pASB&o)bQ-pASB&9-pu4 z<_q^wKt5lakEVEh;~byQ{H)e?+>^fY1_sX;V*?J)7lLxU4Jzk=uO!t0H9q(x6+C2k zzG~rn{CBx`bj%kl{k^$rZO5mizZYjjr+iY{PW*UDthwNemNcv@>Dy~!w|;(<2BH9t z8+jA^oJWgNXC!T*G^N|JiWZ*%v80iecu*4))Z4~HPu@KF&-l+e#cJ2zF)?v5{Z1K% z1BcEhopkhnUB7+$OhSz8jyIkL)@@}-$xnsK<1 zxq;?Z4tY^uju7G(d{UALR6Rf)`1pD{UG0ZC8_{4 zfl_EPe)e~K!j=ShcDupU^8MSAM5SpMh6<1o>wN?wA&g(cSL>bO18DjFeMM2EX^{-S zsMNbC9ntW8)@%9BTVa?Qz%b?>QW>L;J${BoU?rO(Mj#A z%lRq|i_wEOyOkFmDP}}y9=~t+D!rEPoYhSx&u1TAoj$%5i~&I*Hm9fIlNDb_h%cx) zkm!d@9#@td&oBWie(m^~iy2fXEKW902(O1ENH9q(-xZT&P?* z;OgTtiWDL;D<*}2s2KAO0YaJ%Qr*C)fPG3KI(e*Dv6LqZb z`4C;)1VIp&o*+cdwSzLpTx+%nwJLgrqm-&}c*!~V1l+@wKnb92LZgK~pa$UFX918C zR->o;aTa*Hh_vcJ4(Kxh1K9{JA|z>eJxm|0%#u-3`;^vASErBeE{2yEZ*I-zLqCBg z65sP_BDcQ^1_aI}*GF*`v@z?Eu*tQ3pSYl|)>;8DB7!xznTw7s;sHaY)5)UFLUsZy*TzJkVlahtV_jsQqHrW7JWKHAkWIG>g0(~`Jql?Nv z&Nd&}x1Zl6f+!B)8r~+n>~v@2l6jC_5H<_!QfT+bqpnCp3N{?9C%mGGp1gVT*w`LrM?cuiR^Rr#CsREv1^f@uJQMn-kg3GGf85hD;H1n&qDOxiV zUPtlPVRE(?eLp?9nz~Ud$l%C#k1svxndqhE>l(gyl7EN~MRhu?70Yr{IYhV%IlFE% zg)1YovxG^xJb7AQCUrSKVY=)Bq1k$MM_TN(OL0lja{sj(ltJUf4X(@*d7c@OX@ zXjO3}h)BZ>!D)wKw7Mo^@*6CNDKD4fN+bF=ltH6P0<|PEYEQLPkJ@!NR-wJoCTz z{bvhrmd=y*Iz!UVV&D^~(*!UYRCqkP+~wlq{_M-ke)@HO_P!jQj9g*`X!Y#T=nVKi984r!HFV;(;5M(aeOQe`}Lkb@l}1`7oY#~hMg zecGRG7mM@r{eGK|`iM#~s$0IsZ$7x=1A-vzR*S{JY%X`J)g?d}(y17h~#Y`d+JF)hO?tFo~h z%D+is8m<)}Zo+DsY&Ib(Xs+OR*?yPDy?n9%_UhZa=ezCM`Hd;i6Cn3*KJ}B&`Z2oA zrt^ebh+fbjQm#TxlP6q2r!#h_#!1Ih1y4LyrY>MI001&gPboz8B+`H#tfhqplcF9? z20@QbTzSTEv>VkRk~$c-+NRm@xIxXPXdyvk;sByucj$QVyi31tF7oot$NBIgKY#T) zS13qIF`{zs@!j2NX9PiDDfQ%Ax(H^2LYK;+FH>n~Rj9LT+gpU**_rAM~mi>M@>h%m#Z+^BvUu!xD z$>81N^ISlX+;&v}M}b`#bXv{k6kjVqF@AI zUxD=`@vWuOL_jP6!Or#tK&V_-3BIizk1oHmT*5NtG({wO`uXf__9S8}grJ?qZ$3vW zu(7ZxbIsrh5;7<*5LrO6kmpD@4KrF2%dE5jq3b9|Lm^cy4>41RKJ0no3I;_6Nt~ss zP=R)Y4neab<$#rvqK!ZrurE_bzPlh8rOaVP>BW~%vBw7>d(nQ6ukn+Qz?B95Y@7yk zB%&@VWUXXGz=&NX6ABu#iqxU)76hsg3*izJ)=b9wq8*JaZa3RQpR}axDEXU)WwZ@f zs)7s>qY2@7yXanSyP*std+YWk(?LPTMzi_**R>5ti^K6<|Gx$Q%B?4;M~B?wJ8W{l zg2((9c?eYW{^q;&yW9C>KIXs3!+2W%&3Eu~-Q%}W{;xdXsqBwb{^b)tt(8*8&iNn5 z>RG%8`7EHT)N$|o!Ok6{01Uza6dh70g&v_p?|;Wq;!uR{`SKr5t{-#>DdSj-9IsyU zMP$Cngng)lzBu#YjGuh(U8st?UG013uNO1l{%d*mW8nGel;Xy!vR-@~3A(*OW~01P|u?->IKU`cCX=hEa$lkc}V*|ib!rOB5jUz&Vr z@}oy;DX!GhB0peu!a2y)ILxoap>o+9C~(s?-v^b9~l=92aSYXH4O?6q0$0x^|<#_kblJfDvTT=m!R70@>|mB>t^u_i2`Egft6?>s>u$!;D&c>Ka=Ay7m_XTV01 zDr_qSgkoTFU%^g-Ku{UTs1^YHFh8FY2 ziL2X`n&{m49OR+8vmKIcJ571V#Tv^J&mO&h|Nb<3%r~duPESv#r!Q~*GCqb;y(Cj& zDb~q8dZB0%|KKAt3AjW?hyo?7vtt(6yJ77_lm@D!NDu(6RkIX=L<^E&4$;k>T|t3T zAawCcu}AJ^R26si`tf*wGn37D1z6PS5Opc2C+EI$1XTbD1g|l$s4$@=+OBFHkOE1Ba7(4B=vE#%qLyWuL(K|WRYOBW&upZ{!tBl6NT!)u1D3e` z=H2H{pFe;4@L??1{xtOU^|QZ>&k5aMj)z{8p40&cj1S?awq;XW{>> zToC+Imd1-zMd+n_5k%1s=VU=Yfk_xbnLE;1fb1#PJt875x6jt_LRATQ_6U|cEnbO63jptw*kSJ;eXOa(}z>1 z2rnAWC9wpcCBZ1JaVdaOLbwf<%lU2_yg0Z(*x2rk$K$ObcJyJrT76orS4ZYuo9EM) z7ylU_ML~C(YBq4%{BwHE?yP8<{n>b26b$emKCp<(iAAMk4k9xH#t~SHh=CO6h2^!; zOAK-fwrvwn0wQ%Oddz7%#vu(XU>-7IDAFAc4ge*RQNcJ;g9JUn9FR!Rv7xn}={;He z+T|?;LfZXOib8sZE&v(=U_2<==(b$61)ijY(b%1~?##F-M+X_WMnMNiIVITIfZ;$0 zpvVat*zJ`L*lvn-(C#Ab6ys_<=Dey5bsH*POnFoFI265NzbT4hTAgv*{SF+?X^;1s zswu{&n~EEQGu|z>AC6jT>(%ff{e@Awc{alO1Tt!A4|y=e~1x}Hp@^`vZO^+OBr zuinqYAW@m0tGrLFf$t#|x{ut_0@FNBJfh&_YSFqwqFgDZWr|!Rd6H;qCEmb-%ws@6 zWfTFDK23wzPe?x*P-M~v%hSqN88V&ZN_Uhbu)E=9y__~SGCa9^DWq|nD321Q;y9KJ zvNTMx^Ax*xjahplYXRQ(b*Lh{dtU`+(NUlRKNAeK7Th#wVU)2{#Yu)4wwy6jLZm7f zDb-a;tTbX#?A4pPJUpn)cz-sTEH($tX0I~;_YUjQ6sW3p_sZFBwYN!v>qWV!gS04X zQ^ozp5Z-=TuaCAr%-P$X9K5zM_@4e}e1e|2zWg9hGk zBjK;Uf8Lb9lcRnb26CrA^gZTT1{b8GHPA|IxG82UV{J2I2rb`NajwtVeh09l!gE=dFp81Boq6XkX|4Up^@1P*;$O{} z%#{pPKgmSU;^UD&9PCJ$kNTPCD=+dWogOTYCyV)u=f{h(esJ$)y;#g=%W^tBtS3)@ zP3lL>8`b{&)f=N*)XN*w*YmP2XZ5nK=Zk}4_I+!z^T+QuKUY6~Z`Vhw)rU4oKm2ce zJwUlvFP?vX`l$Z)bpEV-{rT&o_s<`Fes^zDe{J@hzk24xDO&t8b)qD4`@tx3yqiO9 z@v9Jxr~`l_B#6|zI@FXB3>YJqX*6`rT%cqyj4kvvBbK~1;zZ~xilzAu14~_u8OLxa zWRP1sR*(v%&ax!H%NGVW_wRgsc3hhzHyb84uycR7GlSN~jVO+b&OH3Y45K17Ewkz@ zL{TbK2g;%xS_`cg8xzR2km{I2j={!>gGrVoYrLj0IIJ5JHt8WWE`eN}i($K_%YL># zrG zj+ip(#u4qZRq3T^UD)w=zHl497rNi0kd??qM|su62+g&T3bQBAxCJ;o>^JArgY!2B zNAtt!^!0Rn`f%ER-kOd_&FRB*dNgVedy}7!$Gelm`O$EAb3Uh3p?NT#?>^kOIxWI? zJ)3|0`F8PPc6+_J{C%;w{B-#K#b~KctKS~C9u5!3gKm2;ygT{j{9t@@esj_6T_Iyx zs3lVo&x`_0P&VR7R@}fS9eQia!jyGrG?%#M3Mph{Yfl~qFTWI!#U*ahI0gbi z1_dPbCjq8tyBMQ@O7NtH7G-+<AjtP;|JdJ7HDziSVAy_{Tb z_F-{xPTu$a^7j45`TXwH`%mwEVuf|`NqcxSIcc>f?Phm8J{cWeoS$8sy*eIjb`%7@ zmdKdQi~~CHg0<+2lwy2ZR~uX>wOD_pfYgDCmtEw+T9ze7&|m~e(T}B66bRmu}&|3Y6w!vOPAjxoiJs0@CH6(;J*Mw!cX6@(Zw zn;b51AV^E%Nvee2aJ@v^!ZU$Lyszu&+Nw~}OQfH~(D0>Slaf1GRi>fgsm3^<6~Zd7 z)V{A*T;SxD2s!O!Kqf?y#lw@-NBddb*Ofp@FEh#*&FKe0CjmSYwcv^GFygVpWl@H~ z65&H_o<40DFRTf#UctD`qwu@H*7g@QQ#NP|^YtAW40$`VI0$OtQKkB$mys_$P`vN|JL3Ln_i#wTwMZ+uswwDa3gj zzRY}PV#+TtFx=m$i!>q>jk=$>6qsx`^))sE2B>nSfLXxMVkjV}RQ(_|yq@@hF@asK zgkB@`Q5s`N`3I#9Kil#A(60t1L29RzD)8d+Q#Y-Kz)_~FS%7x-L*P;75eHZy0ULzN zHs^7}F2`Dw!eXu~^H!g-hDrCupM!39|Ma0p8Q|uR_nrM#zdM}lx3>HJ{`TF`c+zZk zoBcuSX4LJrTZ4!DLU~^GS_jv&kC(T<&pr^vOVXUTi|gyRzgAC_@_v;1FhF*1<@>ZEwr4)<_QX_GF6%j?S zR9dQ|P=S_imYJG|tOlO#W>_pn!XzluJRbOz#5v`%)R~rbCUsy!vurC*qtJm9d7hTw zK+zZiP!~4VYbG8TYmakkTpPS zyGDzma#!m*$b6&ij9@jY8eOO6iRCh&Rr3j-CG$>gFIVlo-r#=F-J=9lf%-CdsjlAb z?J0jVAMUm9H#^TaPui4H4BA%|cDncZ-u+;3|FYBRT+Oa$kA;`nVz!_R@cQlL?c4tV zUr{6b(qpiBb=Ao~-^$;$@+(_#nP1Uv;{p^iAth)=@|r6|>O$FM6Nylif*rJlRzhki zxXnNb#yCg;45eZWB$p`dqM|~B5CKsUQ$dUBuNYG_@$Z3xIthQqZ6w%CNwnz`1z6PJ zu`MxciIr%KbR3#plsW|}Ata)MoI6Zf%(kRpCZ0ug{I0C+6QiBkUMirQLVk!t1hjv^xoaFIt+X;5mNNdP5*nthe`I@GpW zglzLl6}1}4Ugr7i4`O%umg=39@DabaMcwT3lS`MCEpY8`1+sjFZFY7#n>jr|S=#zG z?`*0kLZMUGN4ZKaOTa>|OVTK)T#yPS(Qs%8B6C2~lfnQ+&6ljiH9^2gFdAJX9xj5G zOt>^0KuVA10`Xrj1292r>&PYE=yC###T}E9!DsMyvkFB?9Uf2fNTMqhf_6}PXe(sM zK$MU#Ss(zQBpCbWC56-iqUb3yj*hb`QMyttqXdYgL~s$%6>8am$BMPb3yLL6mV{yw zMF~Jl4P@re9PyMdi%8J|B^0PY1E6K)FY~Rf|NeFDU*y>_OT$1E!0~4GpMVbPK=%Gt?QB@JS*@ycsBZ9aAjqIJEb0_2ac?`2?UC<+oN3WXiK=J9B`{jI~l~$r>rG4bqus`C>#018t%cOIXyCVcIcS zrhk0V*s)4I%ZG7H>6J+?1`@HpdoG}HF{kcn$L%MX9s_xn4{$;%w`Jp+X&xDac)&*f>Hj>j1>`i{^lDEeXRNb>g|JvzrP*)O}EeZo&;aN z4A@s6KCC^!zpD2c-;>~@gdhNr^1oAw(z&W5O_{ zfMJbdItuJ%9V?27Ai@Ais;VP1cH&?f$8vFsAp=B%2vHm}#7s&QtO6}f(*3^rYR-_N z>LJjD+fjh-lwHM`Foa`?nn;2~%W~hpJC3eZN;OI$a?C5JiiUwk5qL=f#E3E|;Xq#p zj;cGa0HjDk7mvj!;2Av(c`_87#*#qo}p(Kd#z=atEpM=Nhi zOeI9YO|rkE67G1hET^GldSz5D;{1oYSX3u(RYaN|TIa~x5yUONav8(BWG>5Zvc-sd z#maG-bF|l3v>~d+HEGLHvp=sk2yc?R!q=UuD*3Jt!WWOnCnPl)4g|xQEE@yE7zi|i zmMFq{j1y7!kOxAXli{QntRb(39v{c=iSeb!s!FrB)iP0?w63guiBP$>c)6m}cZp}Y zr_%QUP^bIMHKWrqa^4KcRO|lG&8Yy*VU9J+XKD)fo-LlD- zOXu)o9l0<2l^;YNi*F!6tqlY-OZ!uMze~djX zK07Veff$-`n>lLgt>HG+v~&vzud(~SqY7MYBu1I8@H3!ZrZH)k_zXrh>r&^^e8-6r zMFb-h__ZHroYAsGP<`iv+ERd)`SHHB?L3_#c=pKVXzH7z1~aZw${5?dF7Ecn8$Ec> zfdZD1B5A2VtwZfpN7BADYYRhi86{5O-Nk;^O#mSX3pkI)CnDu|HW>>}vsn+$F!~(# zV2p(fhvQ*SQ@CVfJ)2DoqnF`K&@^QEv(9~Lc9^V-8<7EP$F8dpjt~oCS0B&6xhPk4yxdFE_$%- zE(_UJ6tVJqp~$QYQ_C%mt?{WH@a{SrzDA%|d#PuA=kQbv1@E7XcMh=x6bG(AN1p z+tDywM!HYyMk&ux=Op~-texE|Db?ug`&w?dOV#e*<0F*PN8{@S6uk8pi#JAoe?7mJ zZ|`IO=f$L&2;Eis_@=$h3wf|!zOjwqXa9O0PnHXPBe{nSb*jLhI~CevswICBLV_$EZrEmtbvgeWCKwCT*f=rzA;gu8>W#-=DUWm#%_d zSasb10fVFh6n0%%WA|spjhas!YgF zrzs$Q9VuRl-GoCBQuLqk$%Y7$#kH|0*3}QLyC@RWxR4U)Wk>?Nm<0hggjQ zc2?Ilm~CDH1&H#JH=WgJfHWErqTE^TW(ru?xQuAlj)2AzH&e1}8q1e1H?6%O`dwIBM@AF`=tPY2X zEcXih+Ab^d|iaJoVi6F>X7B++AISY7@~@K}{{S2n(VbPJDU3l8~8` zyJQ5jkr*q)nOIx)sFea2Oq1qJsFv=`QN0m%iQmA7HuSIG?GMxA`~7S&9rhpR^ZD_? zVS)7S%i__8)&BM5xcRi+yxty%$<^ih!N-1Ga`-p%vi`UK?r`*A==d)$c6B6SA0kT7PJ0xF@W8AIUI*! zzZ;OjFAhDj_0RqEa+qy)^Dq5mwqIk-j@un>iv#K|vlIQlDYxVEf=!%4NQ8^97F>`X zvy4LIDl(o7Igm=Jj0h$7Bh6{?nJDQxG}yuBiL!I6)Ok9LQgTP(9ajx&MOA^j!(FhO zu`v@y-MBZ;8A?Nm(x#t4ry>m1q)};djG+ifI~BewzViV!uqhr(t`4jHVZXcRcl)e? zE;fryDEjH=#c=WQ@(Zdm?>5_ui}hhS`Lw^~@>gs+lt$Ol@Qr zMFL(@sWLbx?bH7!cg2SqCTh_=u8RFESuTdLD%}qt1F*w+)>#(VFgXkZ3Ne_5g0$j3 z7R|&?Z`u`Lqk^#pv>*y@TXqo+*bE;GfeVqah*l8Tpr1fUBzZA7HGrdCIG3~5VN1e@ zq)~~AD+-Yi#B>~a>CC1K2PuV<6-c%wFx16KI2_TfTPu0rlZqQ=$%7LUL+yU&(FIQ+ zfQQ!(Ca-$Dagg5}CDH6K`3BW$6x0$c>|i}0na|lVX}^DuE~3Or?l=BQ`I~Ungf!M% z+d0HVi}5&MzA4VVv(AmBZmA7zzsGx`>PG%R6hFt&4O0E4{7YZg{sLbog;-c`!`CPn ziO{taCUu~vl;=0&D^zL;rxL7Ee%JxC8;Rpj7@z;~{SiJ34QKaT@iAk2!gMVeB%U}V zyPM*K#X1I|0zzHuKhO)#6VRnF3;oCUm7TNMaT*2!@M_ahjp8_vqSA`~!=|BIoK@*2 zvj|dfp#D1 zBNb`);Zw`vp2KqS9t*1uFb07S?Z-!Cv4ue;xes*-kXq2^SwlocJACMf?;w1dr1BsK z4euGgLdIo~#ZwGF0nVfXu;sU355z2eaE^d*(lS870RflQbFsNO;`@t3GmJ|0x25~= z0YK@bTtZTjfP<$^j`6p8&j5f(vmwITgI_U-Wm_V>n{!anaq&DDpEwYKS=PS~-$|+Y zPA%hKe|>yh=0jB_VoJe2Ju%@(H{QtT6^8_czDzJ6@;vNGnD;p1I}o2RrAuGu^8NT+ zDg%aM_(7F1uotpS2>ixy5E>7_-8A0&J#kK1;Fk!J#!naATcL7%aKv|@!wA*K=0dMT zG|Qu2?8lyArD^8JA9dY!{Uowqj$AL;L@WtBCryI&hsSj!wW`!l+{AnM*-i4OYDsAP zZc~>_qfEE6S>~^wHqH#)X~sdgY$?h2t0fCI7ekY-BBkm3$#bF-BE9vO*($a>m&<7o z+FjGnQ@axkAL)^6Ik)RJ^@HGZ$BL4~>^Hn`W*EzLVK8AwA zXccMe8RB`@5`~a?_g&3RdR_?Wza3%k$9JNlKF3$>vE002`H}|y;Eef{uChUUol}~u z^-Gq--Y9g3ckO6+lLURFf=0pGPv!;e=-nw9M^kLyud0{-z-AUOJeJKo~P4p8lAd%(Vdm8{=2^8U>7JfeoYPLt4$Mbx_WIJl);sQ^Z5Y(=I#&1ZkM?x$AbB5qeY+!&X=pA=*Rh7~ z8_W3q*pcp|`}yw2?>IYG*I)Er`k7y^b;wJhXr1|nS&yQYS=8MYa~m~Zw<Sf7#mgjm^#D>sGUL3(ME`^9DD( zVRPR&>b8CH&1E?$9d_S0TnoAl&Pv=j+P?@O`d-vUQL$`)9Uq_Nr#D z%iKy%-%C9?Zv6bsw-=S7#OIqY>vFFi>-$P)z?vO6y!MY9zt~Q@owbZ^Q+J$p_e9fD z5}%JI^+`~FZaCv!;k6Z%BCB=La(TbptLctA?4Jg`3sxOJ|F(RUd~tNLm5`3>lPwuv zc$k*g55%|F=#Wg`WvX?cN~uCcjmU$jas=+*f9i6EO`-fE@a-vANWSmvH9oxdhuxh_ z*a)1`rD>g)7%QC{PPu1ArCP?=@7^9cx%%%X7j+rSx0Agp7p-ckz*_^#>K$8#sJ!j{ zbg);i_(8+9$!Tx@|b5hdR+tC2k`bP^=c<^eDLG*w?CRcBzI&de4z21OWDl3 z3k)#^Q(}@9Mt4SZhDV+;ouk6)E{Sg%vx}#_cV&vlr-ty3HM%Yy)X#LSJ=`+}jX;#@ z?RKlJ`{iD{Tj|(t&o!*qWE%{6CC*)22de|(Dy=MRVs?;&| z61?wbVeV?vFpRhTez{r7>DNso>~}k?-OOf*S!p$|y2o33LVMbmL(f*n2pe2?via-g zu-Wna5B0JmZhHlL)E|}`r{t`1-K|_Cb64*-((hVl`&Ywcu63-bubQ?Vj!%JsM8TL6 zQla=cW~OE^Z@7x1!GN<=e~;FL$)m``o*&(>Lj#e>;!?Q9Ft4PZ_!py(lCK z+b|@OtRO%)Y#P6|@D=kK;CwH4Lr57ZdNlVKeu;%sV&;6TvO6kRNEk;jdk$UiA{wFWbgh=u^ zuVyeM`3cV8^8%!B1aGP#9*0o)5Ms)?Ef5^DtX>-z2{%14vSBB{0QzkKfuA2!WJMqY zSKs^Y6pJsN{BFyv|CE@g6EoeHr&ZqHdqw`Pd1I7&mm{_|=F&P&*SCvq@wlJ<0$A35e5b zd*8h?Y+r8XBKLWTbAl~vx@FBfr}Kc#K9k9X@_&X8LjbF+MhUMmM8~$rAat2aC<+2$ z7zh%1p#xas82MOm#5`n8vO0?d^&`eGEI@g?Jpm{_dScc1=F((Q2OE0T8 z&s&CjS@|d9gGm03iz8}O4UX({-5gnPQ2;Rjm@(hLSq?Elf&=b}fuPb@x<+L207q38=7~L)RpFO1 zbeSuqf{9WG3(dV8!`*9XW2xdQ#o?Rx)z5_wtMR_&5~EO+A9PeCBw&6O6V7N5+)TY_ zD*PJKqMOB(7Cagmv^EBUVOEVO6Z(YsfYpo%K?r;)#&eD(^<8=z7xo~04|q4l6>csl zF;nsmUvi$_e4rNbO;PT(k_f)xjpA`*E6or*!0MIv+{geWi(fHq@+7e+ee7PYF` ztcQ(}M?;f`7}2cj3_MThD>t5-Q^n%b_Fg5`GQN*B|3`2w?X`=&G!D!Cb7pq=bKxTh z6MzEm5W$c{Twr$(CPHfvxY@gV+ zZQHhO+sVA&+{}-di|)0$`lh?8Z+h3RUH8Iq;}aEgci~}5Q1K$cAX(7NM47=e72dnJ zxo#emIAV+J7)8StkMUBOGPYoZesY+!NEwz))|TIBlqIiJ0LR-bv1@*2+o>k7UFD)Z z*m>OD8&zjOgjiux`1}dUVt2jz$m9AcLW;lpM{O7V#=e`;p>=<&cs;$}LE_cI#z=;> zoJewxBw!J|(VE`UFadIQ1u~a?`Flu6$GP0KeKCKMWRBc=8!d7KeBb$J;@tT9VEDHoo+beP$3A=3Ka5)4?6Y$$f6?I-(#^1L$S_09sH;F zwlq^}!IBg35S*2ILgIsglDSDwOc-<&+wWRA+#YQJ(0CB)j0;>B0t!qB4m1>`KNI9C zSn`7p?vewWk-rmzGXzy1z67dHJP>_P066iCNc29bgaP>hk*Ho9_u+f84IgftLUS-q zC`T|$XuqiYQG4GuadBcDC2lZ~85{RKIX*lu>c&6B5h^fN6BEJk!6;%(prgAva`e)8 zF}YAC&AIdn2e?Buc4YPI+=A|GX#KVR^HgTt zVbM-s^vQLyXiZTZBIDB*crL=wb9xsbbRKKA{6YMz{e0ju;-vUU*QO=xD4zp z&G(l@b7E%HWb-Fp5eqobjS5bn9bRD=bW;% zC=g;wT_klQAl+17;XBpEu6J@Ca}q0TCvi&cGH7ea z$TIZkU#;cGfC<5YE2#mIZJQHdvpYhh`u%n9-arkNOHUIR?`xHKH!1F=0uxv~Us@yk z`Gg{c<9W6@p)gy_fd(&Poz_&Ku;%Ilw3fbCspKt_8f6epn@h2>6$*9zqEXOfRn=o^ zF?f;VIm#SNx_c)vpg;)zvmi|jm@%wkB!);w4nNEiiQW2)Iq-EeBvi1wH}8EZqe{qFL zoc>2rG=LnLKVU0!LyY2Ann!_>i(S#syZDb7SnV>clTLL;XDJLNIfb`gWKx_RU@8fD zkh76$Hr@XLWeACt;R;{GMZU6Zmb@Y7F76o>oV@wV7^!vXU|?=OYt_FxqmOZQ^1i@J{iLW1DeVeY~6gLphQEaco{zPuOZgpqnu zE_coWTPCT+cVlg%-)By@=Z~!-ojtzl`Frd+kmT&@<1=72KIfLY_HyA-mu=VDt0$-S z^mEiD`St`a6Q7Sic9yt{3=p+LpY8-UEAK^O(YTRE6#G(c3yh`|B5 z)MkzqO<|EGv#gk>{rj)VRR=w*s1RV2j1@D$5Jqu(TYz#OHlJr0o4RTHy-e{>dH_tE z3_-pIVi73#pYuKeXHq5@kyf-A@CqDN1S0xk(Loct;Ql?-d?79@eiYZt zf?ChDQ+wPqsW<;S8p%@v$&xY|xq^ulhiG zrIRVw8MBhYqFN7VjGmr)DWJ0B;az4Ky6ave^~^!6Z{7!J; z4u*E1-7u>R)318choZ@L71~b`YG#f5m1XeXnbS_?BH1SBx%#WR?l z@L?|%OlJ|?Dwo?6N*CtQwJvW@eTFA(h8@`Mxz*ljm2M>ps6cEl3+WjtqFm>mSt!s;e@!k6iwnIIshKTc6&UY|HD#SPf%x^dBXcqJungbd`E`^Og;yMpHaa zI0)wpt#wh@6Ra6s8inlUtGtsXiGcL#;e1NlVOw&C0nLqzsY$=aj*s0+K*fFg+wmWe@N=e}6CYAeE_ zJH7nO>`2(*{o9@G!gS(yh1&LssU$MKln96i{y!vQu9`@8PTj>=lBiJHJrg7^RNF^d zFy2urFxVs<9E<|j1QJ99E?~hSXP|}T*F{SASBnf(i_a|b|1)dTv1kg z6!zA9TZ^ZW4seSMf3TmujJwZNBd-1olI2qxA`|4Ql>Xpz(zSBf3#>(hwDBbXwz-fN zHCdXXfqY=W4=bgS8S>C0v-*=S^6jDs&j2bqg zhXc-9*$4HHMh>}FBAHf4X68f9tp>38-(pJi2lf!C$Y309@)GBbiWDH^ZX>ql7Y}45iQz?0U22(Y*@UdT(DIlx<<3Fb z^ftV`HJA#! zLB$#;)6}qBJo;Mm)KdwDo6*)?KAo>O2lrp6`{Vg>r}j2}E?(X!njp%>&QNSB`E_<&vS)>UM;+AX}*WGc;dM;&rx zIJNEa2HyFYE4d?fLUT$x>9dN<5)l4U&*EYp+hmP}ru?~v_!qc*s-`4yF@GRXK(N9G z8+us^Ui462z_qsbShRyR3aE9*MlXXK`LRhea*qXMG@1*!^`i}I%%suCkXas@miM#` zq!=WuO*P(9sH_`d#G>43YtQL#IK!2>7N%Td=1|vM^7$(9eM=&TZ~l(ba(ykuZzXP#LL>7T-{s({&IDQc4AUcl5&`LMW!$MWI*_P zNO{FuXZW7Wj18)pUDVubjQZfKB*yMGNAN_lPJO3FMa3Uglb0}Y`>;k40DJ>tI-g3- zO`E9coP*AsX0k&750Ft3jXmkNo5fWnofF6P&5NqMPiv{VX&*2YLBwfFP-oJb3`V1o zH8poM%X)cfc^9p^N2c~?7(M`}@C3YbYglLVQTXs`SI;rI6Y z``gd@`)X?AItBy1eeSMNj=(RVvr8Z|=C~DEOk||5kdh3UvLRKuljEUstwYQQh2HQRbrfTVfFZs3?Nk+Zlw}npF4JUEa@q zvXR%p!Q=h;hs;lmNeYD=)qqOvu{&F2Osdfa?|h928>Mhr&uuD04gz!o2Gn|O~Jb~)6|wW;KEZt?M@G{LG&vF@PGWHyvA;mj#&cG|fMv&}1m z*1m)lUWCs;PMuEOr8F~3nMF+UGS7_A5X~x`LM5dn0`Rc!(YFq5mUFgluQM%zvXrzC zpx|`LG9o%S!Xu@M9$><^FB?yROguV0-YH+rpQp!%;q5_$R{hQ3gd1yjZK}8F#SY@r^zzY0F4*4qkdq2f-B`B> zO9ak>G4)S!Sft6uP9h*lELFoXkqq1-d(Q2-FaGhuj>X$oo|I?4M7Y+^QTfJkj^r%; zQ;&2C!mr92SbVz?34bAJ;uibLvKPS(uSg#l-i7vYu;adX_SL|=DX_|@=teR__BXiH z6m^Sx4!faVInHWw;yM)MFNHVFp~YSYcL+KKP$5h`ZY*Z*!I~@W;u`3tjFb(7c&`Yu zmXf5v(w(QYpwWV|r@R6*CDbp`r@!Awdc5zuxO`rZWtk?(p;&rjpyPMK;ry4BHb$f7 zjal}|L^hKRRm`JNPL1pA3DXcW=^YhTNstKoexGi<__wXIyLfT>Jp=;0exHYnuRRy z;~`wo8FA-Gb)?VOO-cM%trF(R+;&l$FO!G5;QXb2ovPx!Kn?r8cpw}RHc?)cD^eNG zz+@c4M8v1v1$=kx_Il3u06d%;c5gRRKizW$04rPL-@28zJwkN67XItC7n&S)ZC2b7 zak}~aU~p+yu^y1aMr}}@H-!pbmu-5li0Y1f`O!$X!$YVUmE&eq1;FM5$C{%hQFVeP zLsgk(NdLU+>rd6!kNz^$VARhRMQYh)ntg{+f%gDq!H|6i;~sGl!FnwKMUx;4lKg|oQ8q=WxcmoaWEGtw`fsgh z3Zmw(^c^xNPd?4n7_t@;(8_gE@uNiuWq*!jDpwZQZ|{MKZeL(*Xm+f}-3*1;dL7#E z@Bm?o;vA2to3`)gi!s|MzJMOTHvZBHz)A7*V|Bj5yu|HnI)a^$dtUi+tzfP!(LD)) zD5!x64n`2TBI9uliEt7KPI|NAZ$g4GM4=Fv(3~X#wMrQ6j0ZV0kU==glC&)(64`J9 zl$YckYT3U_q((hW12Y)&Umd{8r93(=Fp`(>%R&_J`721BKs%53R$Blj49e#hBLcY) zh%rvY0v8qP8(8@ZCcmV%KEH@%C99A$1MoBg69D-nu>=t^L1v%0lf?O&09JRiSp`8? zZ}ZRY>+Y(q6euuxebwRG0;nNK%uy18Awu~H7tF>b=llr+E0>K-g)$>Dgr>+4W<@cm zwHm3ALnNyra{e%U6z)G^;XqW}+FAEb52rBe1zixf_;$7H;38@%y}fo5c)^3?`?2O; zTY;U9o|?nDI6Iro9Ztz`E$DzTD+Hsl@rx4dhy?oJB>8xw98kIb{TVe|D-g(DQ$o2D zRq#Fe87HLqNc_NH>FaH8Ap8Ww2qRXL^K^D;9L?(#QCDmi9^JLz!Ya@u~kWe6L!#~ z=o*c&l@|Gksc=TFL;omrER9E}#CD(+P(c9S50{GosRO@zF?n$--+lztu#E@IZIs%y`&rLg99_9y(S?zF4u5ToNNdK5&ngNaq`7aiG zf=+y%p3!Wtn)O)P`DGtn-3>6-viApHTcbclxTQF|Yr+Hqa{n+9@8N0uCzS^d>w(6F zr>QrKurIS%=?uSOlu{o7f%qkLi%1v^1Rb05c0=r>ENal$J^fH27WoB25CaQ^ zBnu3vR)0(Rnwd#R@+E#_l&it-^g$#DhVK6|=b#1RiSbe7mWC&0cVl~1akSI~&4-x3J=i(v-Cg0x> zYZF9ss-&7_R$;B*iXbK!fMn7NpbYCBYK`uN3L32aB72K%iIlqgi+wk~XAGp9#{##* z+ns5e6>5_3bC9Zuj%X4a=>9d)DI3x!>KTJ@jNHfS!RT>75^h-m#Bskb9Sel3-JY#~ z>iW?tTYX0cs$ZWbfWwCd@E;1N>>|M*fV7k>S{TCKU1Oa!1Z z`VE#hu0x09f^t?*J|TQV7mT%L$*x)aa0@|DKJwJm@F9wYkxlyW3o`CZ9ZIZTa5rE`_1X3WPB+!h)g z^fZ30oS&~-I{K97iTaZ=*Ale5=?i$jV3#i7yeYG)NZr-z`jk+6aVp`epg*M-1goUS zB^0AXxNg5fWLT?We6`hn$YaHmRt5(goDU|TQ$@0!$?2+Dx511Po6Sb+oTiYt*(bN0 zL!%b-FQH`WY9!<8Sbih-$o9JwqLL$X~t1v!PLo zj@L;$8|OBarM6D82zeYb$k=hafI_Ck-rO>us?AzPub-|#!@ z;moGBmb`ap%DoOVX*3dT`6n&f~L#0NY5wvfL5c&o43gfrf;CT=dEhGXA$jg zKFgmJ`>GneZn5X7WSw$w{)a_*3^c&c9v;cFqD|iut7dES(ofU5FI;owU(Q^?_Aluf zXL;+>#zva!tPX!Yubeuf_lZ6kV+2b{hug~Q5<+SXU-;DN%{L%TPIstTuQ``fXl9t{ zKJbWC@-$_%JFRQ%{`aY^%FbktCkd(3Hv)HFbM4MJsZ=&vP+r6i_n-LUrXjG0G*fUK z6{u{9UQCOKR#tbYga%Hh+@vdj@*GZQfGd5~6Cg6{zp>lis8mG;T-|uL#u1{Dl&uD}tXxOOa8k4)aWGjHGioPrP()5l%s?)^n z`dEUcJk6DS0wr;|lB>K7;}B<g7Uh5klvD2wq{)yPLu?w2eHq(9+zvnc5H- zkPl`;jKV*=ZOiQ()CJmaoJiE1{?QZkd>z=B1sXjUt4|VbML_HiG=JD`=bOT2$~N4( zuuf=W?at1QSmvyMSsUXV@HWK57g;o3Ut#tDnSsq*_u`~XhoDLM@RF-aPh3c@X>E+h zTRECsum^2*%ja;HCXkWSofM?@>26IG@X*4&*2nk_u;&U0i2F+lud#vq2}BX~*p}M( zLHk4;*(nuRY9|(NT~~#H9giiMQR#>)0A1K)NG`9ESf-LvklhqbCk*<~|@0^p2d(-e)LLQeb=xu$Y!kQl( ze=5#QKUa{?6EA@B#%VETvz_Z1t9HvetrgSFND&iyt6-#ZChy7+nK51G6)osh>*~Ak zV|ttYaN*T7(n<_P1oq#-yRnBjw!?tN-C2X^;K0UuI{LDzCghwKn6>$ojv)JwNGO(1 znOCP^D(cT#;9Yy;7(oE)IC1t6Y*H%l*QbUN**LArl{*10H(Kw2f|bgIDv0VD7^yVx zluI0AIkX0!n9#j1I(Z>^3mj=%$|KbM_x`oHI%1dLKUI*4)H6qjM@^NP26xU8xvNDG z47wGqR^Q$Mxd@^;1lGg?S(rf~L(o}Lz>+K((W505JEz?GPW2a`|9ZTJx%H3Q8 zUsc&t0XkQ0+LE8$k03lA%@{<80U+L^TLonj8ce4(AMo1lF<3 zm+2A6<=Fe@Tl?*1%TyZ1!Yy%QYA7N>x@JljNrJ&UM=bI<^xZ%vH{M+Ba>0J5>y>5m zTtl7>FCr*U%tIXVRMJoNNCdh$fqQ`I$2~!*=zjoR>TM@7hm?*8^w955Cu!(rvJrry z2q%%Sm&|Gyc7fX>F|Z_Rx-Q*9r_2BxCC z_Wzbe1?$OV{7LL=liTYXzGV)b#8dcAL#;{!SI{m=gXqIoQX{cp@E`9Edxk-zC$u}C zR|q(yvRoblIon?nz=?(sIlZ|Cgp zuV1>K4ZnPL5i@c=S>d^NDBIaq0HtG2axG3;Tv!wZwQGbi{=o+OA!;BR--lu zLNJXcCsw+6W8Qj53l#mjJtqsoQ=6-=h_-ArCFPR5+@@K9H-NANEvrzip%85-3AN#b zjTXW4v0@Cu#V4Fp!c1V;3t^)~d~UD?OrJB$lFaR4J4a96xLGMxatJ9ar!pbE534lT(PH4)V@o{=_O2LqKR$i!KkKuDuJlmOSxgd{nUfWbXLF#3Qq+}MWO zpmqPv6)Zi4o;iL??QGVXo2GkgQ?@S=nhvC{95>EYst7Nch+9@o9Z;1hpV_Mzk5;Z^ zX`UpXBg*V5O*bPP3RWajq-u5ik5f&qBgPTTI6zX^637WcGGpi(xk∨p}0u`r2#w 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/locales.png b/documentation/docs/assets/localizer/translation-workspace/locales.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0ea17fd07389952681e8837df2c13ed8658f8c GIT binary patch literal 17767 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 Uu#8=uxc~qF07*qoM6N<$g6dz;f&c&j literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/machinery.png b/documentation/docs/assets/localizer/translation-workspace/machinery.png new file mode 100644 index 0000000000000000000000000000000000000000..47cb5b5a9a032bcbbe5d42ca2d59f807163aa459 GIT binary patch literal 21956 zcmb5Vbx>U0w=LSZOK_Kn6g4oLst@3b#pV-u1mr>2`)I^IaV^X>9dHrIC# zjI>etAR(jT)#k3Ks_owBt`}tCROajpj?uStx6W}ekGE5IFm|hPy^4+d?HiCeo}N!6 z0|fv+bSTQpeDGU3&N6ph;v-aoGSix6LRIJphwcpVW%eh^bIIYS7^?bC131 z#guFr+|DlOcQz!;>|W)Bti@wj(0e*iTbG}v4VNFV=nXsy?V3Q)qY9Hqdp@H$NhS73 zoj9MMKYec*n0(wB{-ZxgvB$=uRHBCHw|slSp_kZma8`m*wrr;;))0WHhyQ z2W5j{{Ww5Z5yO7!KiES_C*a2Ee8SjahG@r|_eun@#LYh*%~hIpm>R@F9TBZq0bb!9oXZ1EreD)8>?zyZo#bI=KqNlPB#LqC_y~aTbxyht8v$=5;L>E1Q zS4I&Cf&A|UADqzo!cYev_8*2vC4>bp3qJ9RiUmpF(5Q8*r0glDG=CrV%#E5Q zXxWi|G{idvWLtU|1MOamJrOrNN#%uXSs_w7D?pKswlXvO>wAsj!PzOGB&pocF&o+U z+{0>^g>C%b;IfT6KvTe!vpFlLK}!)tlL@AgT?cYq`)SjCGXc%`L;X3JCE+~lMTbwL zZCmRk5V!cR`u$IOWO^xhr5cY6i}W|ax;dqT_zW&gjhaI5sYiSwYx}N+GHa~l*tpuj zL8d39$e9|h`1G{ZWItd}2~{E(|J{q5i#k$L5CxiJ^RFDg1Hxc}>H+b5#KSn7$r}VU z`S`^i*-QAs{e1M}S@M6jgx2$xAiPn4&1{H^`??`B5cX+&Ag~Z>{f5|-h>J#Dv9`U3 zge#1P0I@*#nb>gV`wdgJ`_y%aE-a-8S|)e$CQUIEqI=HPy~g<*KAUT$J;$hnt99oK zMyzG{JWBqCZ;M=`q|!szCsaUtkOhHuvOyVk+&#kg%wImZdDzMGJEJlpx%MFt%eNFc zqr)oge~tIw?t2!FQ74fn4S+g#Ab`vx@G|%{&kUjo;jnV{xOQur_*A{to0GW#xrT@! zj@+~0h&AY0e|y-`oMOZL*)nkc?DC~g-DvO3o1kH^+)pVQI~JO_&`i#Ooz{_?z3-IR ziQY81b(-un z3}$ClV{zO*7n}KL<|aiw5Ze5flFxmmoZ-6g^r%kD9B(f>Ld%}J5R63CP-xC~!K3HI z-qamPQ<<#*%U2b-GppNU2Kj2=Daxbu~PD&p?r&+t6xKRZn7rsX%UzbtS$q8C(aT&gU zj3^gZe6%hFn*2%TlAZc8S}Pl0g~jSt-~Rjs|ibI zkAcU9m<5am6ZyA9xb*|{fjZ5k(_LUX>E0)3bnrVK3}zZ{t@hZ;)< zvW2|->u$PN@-u%b0HK9di?K{q&IQisOYicZaGH&a?E@qqH}ZcoU9FdlyX--QsDaNs5H z_PlCkF(1jm1rXIDc^~T@S;@|Yvt|FKaX82I&J*~@21nz}#;Gj@L9~aT4sbhn`)n?4 z+T@;|%NuDD%6Wr8z?v~7EMk4XSSlrN;$HN$2iQBlNSn3AyJjg6WN@ps@TB3?Y>c4Y zw)kP^hUYd37zQk))RDe;hhs+KcDt!e(Rmj_HCc}W-xETb7tb7G>bWWizdG$32zEgS)|(^w@U4)z;6caH>V9!KS;H__}yq6mHjxagZluQ*_xBYrKsG z+5PZRzz}U=Uqf~&VW&3SHg_us@)s};xvDflXFobs4(Zk7GQ;-2sI1a{7%&x#Gw70e z+AJ%fR%M9yuf}4v@(V9To=jxuB*B-UM_Cz>~t*>@8y5AJ+-0;yv~O zTqwz$^#(y`O7gM<8tI05agF#H>_2Q^Ug$q*CGd9J(XLmQnAT_$QQ`;l&Ry?*fR6@l z;%LQ7kpRKw6a)D;eAhWIF+wN&q#!+za0n@!1^VNhcf&OTj0NU|4kl7U+OT?MpzC_L z-K?RC3`DaW_hASGeG5xr-PsSry<0!aVuiwUA>ZGh97?X^P3{rAo#**eI0!@uIb0xM z0|B}20lxziK$L3s;-qBQ2wq*76P11cItWn#Op14Cuf0c}^?Ny-e>}Sp5=r?{J$K?} zJy}w8tC&P&;6!>Kz-Fwk zR+{a(c-+L4Cp31G_#C|O6H@5*A^3J1lM5xd8tb+?t3Iwo#>7&H0k`#=^|n&h?l;$v z5W(*n7u&%$suvByJ$ETOFYWUk%(U$6n>Wu*h7vm%#0ivDK_Uig>%3@IR%)x-NvkUk z#*)GQ!Li--v!(RSm|YLqIk7)P1JqAH)U4~K{5k&M7OoY#CKs>SJh*mTITk%p^{ARGAlFV`h3juH?kG2r91?=Ax9Xkh0@VX zYr#sr;O|@?pm9I4?M-C~>srF3_{meiP_c9YF(vQxZgT}wa+{*ZXaAd*VLD#HuZ89Z z-#Owo*&m~ht^UYOCRygI6JGPUWq$ahX^`Jf{~n3!l}9rvaCP1HLCv5%y*M>D-GZQ< z`R8a>jF^J-RQi?!gUl=m=BsiH8UiRw?Rz_i+K?fW!s9Qwa~{m|nkh@m&)C5)>suIV z)d-+?^(~xM*PBD>EHRZ@tQLI1?DuFjUD7Mro^o)>46fOzxx$L>k zku8AT`urxJ3o+#b99Su$IHxii2n^7^x7rDTpswop%<_Sbxh7L-ao`RWzwchnXAI~- z6+&Vm&3uk|Vx=rtz}W3!9a-&!Dnqo4zgns&%P8#ksp3cwA^Mj~FmVO@PgD@aC#U9i zAo98;6i4}rKOzrlFf{*$4v)Q!PtFL&oDxR2MUeJDxAf-FDnB?BVvxA~l(H65y$Qtr z01ajG&U0W@@6TseL3MI{YMV=+?=VdI*8Ktcvhi3yM|nKWmA3KbY=eB|rsqX=!YVk} zw9YeNm_TBY-NOqPeN%iFL+pXA0|9Y0sUh{Eb!?8AFTRo5Msji zFC%(R=R8(fk8N7GYQ-FY`c_gO|4)G z?K|Ze?uRAwir>CWdj}ZW1o}8M_d=PLvA?H%k3xW-^H8P3m~+`9yvJFuN4q|~w{ zzba*sO;tTB@49Xe_SRu5qk*hE3CY| z)uFF_YkwNS7H>{i{k=((Cq`5!HtxE`*GCQvc_FXXhJRn4h~5thoSS+De+H9+jYnL+ zAMFU%^@!f50&156)+aIfufpQT^2Q|iIBjhh7oc&L{MWh$TaRj((Wj|!&DD5LQ>po*Z*@ZNeS(B(Ro@ z({9utVgP8+w9%RUDSHUUomzHtEg#w>?<0y!Wfyn$&&or`+$?($dS!##j?;}m|fr}uIOA%Ht$L9?>=vI!xD1aB|iUeZRs6RRt z`TJ{h4<(|WJlXoxe|A59bBph=CW~@6+Tdf(`G@O^N)^kH=?>zfgRhGO=+UxuGquvt zTS;nK5(4q~sU{hp4%AEZk{hIBXT#k4=4{P?_+5-GqK-`w;>eHN)}V(G+ba1#tppb{ z%*C>D(4faa{JXu_`>4N846-=EQaIUJx)3Uw$ne!j6i~)Zo1p)@R;dl3ani-ScMrIlZmaAq(nxeQVdBZh`QXVzhfE}j@ORPe&R9msj2s5|4h0Tb z@$D}-*c36K4eXc&bVwTuQXEmPC4K7K&MTN8dtUnblzX4-Sl zcWOz1!CTF7`<4uSb6?^;xbHF%C=$}m++(%u68=r${@}&>!dIrRBNkiGxV;qw$PhVG zy4+55Ut#6Ts1Fk}H0hk6o>xe^_dG!zY<(|!2U*ToA57rk#?W-_7Fb*-f)C!8X%GSj zZ*590#)2cCXRI}|tnh{`aAEZO`cykBYEnes%IPwra)px5Mkiw9q&*?ln*Yu;y{~Jp z77FAYmlHfVO-&ULh-Wc&Qf*jyl_f=Op4k%~0$VC7kVFnx{_1X|?YeQ|1M->liGbT< zZAD417~=0jQNzDFv0*796ZgRhfZXOi^mV5B8GIY+3pMJ>U-&+4KwT~B5u_@&2-7de zV6;>if}HiqwA%`Si1-bEJ|H;GcilaIs?Gi+LX*EyBOL@My&cqF{)0hbc4TmmxkO{q zwRisa94(>l6%_lpMt$31zZHLnT1T^+_{nfyr=*lqt2vCIU=d;URD*NRa7=bOMD^zj zl2`ihT-t@A$z*rX=(Mh8_uWapWua?v)Yr;lwa1$oZmOg|YFm#WeYsCRVj>$X5C?@z z=LP0s!tq}o&zUR)@G+a-1fHiE^NLfH#8(W82^QpJtzujIZ)_58P*GI=F<6jh(%8j^VVh|ewF81KqeB!jQNA_&8Q_=IEK==G3p^ro=0-!~WB%6YzBBoiq3i-P zc`^=9iFeLDV&PrAB-VwUN|sdYqJH-Fw)sizXhBnC^lzzL{ z%jFV#?`70+GQ9!lzvoD}UpQdld1Ky)HS9~F)apE;-+eTW7H( zF*7$dn0`HF?C!Wi(xKqNLodlZ96q^IOLTVDWy+=yNwVM<1oV^ME?9Aw;v_C{Ua*Z^ zVu!1L;r)ywC{Z_RMKrp)x;Fm$@8fw>K<_5^FgIUN;VXlpSsJRt7R|i{A3T?Z&hhrt zY6J6&epO;piMq9Id`@_tXr3X?tJ4toj{O*c;DH&R9JwfcrOJ*k^!N+O?AaIW@_RJu zubVu+(l7ss)|>Td{y)vnK&j_5SgB3A^_Wwth&V zfqQ|DTxVoyU%!iPeX?Nx?Ec&2MEA7?kaA~XfRLek&ek?MUwiy43(1+oBt!10dEz*e zsAP9iBT8crpS?BrbzFC2_3dq3sqHNe2aYfWrV}FOMAe)zLc;csQT1E#l?y+%Jdu{q zbslWxi|~Y8+n5&!iV!y(MQ3JmW?l?+K6Li5X^5@@EGmQvE9Bh?ByRD%bcZw)!>rgM zvz-Qi6f(H@Bh81MYx&bp1aUC;f?^|(a*6jpz7QVLH23LdExSUVT`A<4x}Jr9{G~i! z%}6j!b$07ZzLu}2*K4gkVQJg0N|q_CIFC_2V;LeqS?MvKPH;5vWWFWuA#+m5UgR#qYif4B@{MG zByLI(=l~b;4efWjz8B8pHO4P*k~vg#Lyja8hA4X3xPMD+K44V+7<}cLB_&{zwNW9KXQ% zO9`BS!)}VXaV2|O?X!a}jK@i}a$mb(-qW<46EF@WU8kmF1MP-RUzFMYFuuu}vd2oNap@S7vAUWELO;SHN z?@VzYG@_dl?eZ%HhOhiJjZ%2(4%{W-X}Mv*+>NMwExlTUqIHqgN|bOGuc37oo=0 z_ODSNBt-At+-Mamo9^0{$zp`+6@Pgn`3pmZ;Efm!KIr7OoQLIr>ym#jcvMhJuBpMXT6VD9|(r~ExJ$Fm^R}r+_(F6 zDM@&UbMXytduC3iib4f5UtqkE5XnZ-_-L~yw-{!5>+OI{hW6g9P-~mC6^U_9WmMBN4b-Sy*qq-YSFuYX0?h18pkA*F*>eukwA` z`Zl8xbh9ILzPI`|X`CP^Ok~X-EVE4z(A&5L{Q5X&Y8e3=q-my6mfSGiidyC41LZV1 znbrH?dEsBGVWjfF$2uxZS(|#k4l-LGik-J{`{zOOI^1wgvsOaZnJE6Sf}|M8X>VUZ z8nMDh}7pX-I%oA>XX!6llspE~C!vBLsT|AJN+K@cr_@k7vE6onAy{oK9m~&5PVm%;y+) zz$i9g7PUKVI4QkuK^e-DvOIY)ZGu4j#mB2QLFB53isjLe@|DakziyT~;d9T=S^EGQ zj39mNb{SByr;+imjBJy6Da1b*HFDrs;wf z>AsKH`VA^D7uCn@O$5plbFC}#AyQ#@lBGIE3Q191_tcw_iwQLFuCzww`ag0kEAAG_ z#T9o$dczpJapUPr;u@^wNHBaZ6?WNtAJE7@hPafWn4GPbrFP-tn9RB zyGeGdKhy0=75zJ!@o&C9f_X-0>^~(|T_0OC6uU>hrV;=2>w)9y**H5=?VtZv`j2sT z?q26|hZJ+j0-GR}3*gNg!k6D$N2Q@2aEu1wY^YS(lF7}~l%p?!%DCtp2mE;m2- z1y0KtA*~7emHRMq(ik!pw1ySQSyvw>r1_?ifG<<<>zBhME3J(KJ(DasQ3ZW9yzUQ2 zWCbWdf{jV{?VTv>s6(_Qw1Oy`rhE69Jh@w#jDUMaF?P85xwhlbxgoF-EwPr23Q9st zg3!26P4bGq=e)XdV|V{X$nczNA;8cMy=x8j9%Jz!s)kR9(U9iVbHX3{1&B*ZWT4is zmUP#4-?aJWkh`x%uB|u!+k@x-XMo6wxEFHGpoYz?aXyaOs{C&{{eKP+ai4zbyOTus z?1zNbCr@)sV#fBVp_1!=d21dH?Lat=ePk`A4w%WwVhxb(m>+2tvwJ{+hpQq2>kbfD zIq*A+83eH~?5w{OVd_aQ3_~O-V>(WOZQe0Kzp9(+dR&{z?(?2wng>rNP3HS+w!ZYm z-?>ah|4yPoXY4(ge z`C}ZM86}r#eDAN*S9)a!mG-awWkAo*2I7Lkg`F-E7fIx%AoaKW^PVDf}1WPP48T!7m_LCUg=9whH4KWL&7{fQZi|L;( zd^%s|N*(E@J2H-q5TMan)&(oBXhUL^NO>PqX=Mcu%KQ#9tB>RN&o=dDzOWX(ySBwN zxNcXXEKt+&Sz8l$Z3tco&Bb2hmO^VNd0j?A@KkJFbmZna7B6a}+@eglL`$cY37gA5 z;j+;W!u4t1YrXgSE%>mY?%c)$+lqEO6I~DAO!76anq^R{AC$e&nEONbg_XvjB8v22Z!{b(Nno@ro^Lu(iePhk zT#Ex9Prkk=pP77p z={f=XG%8B#&=YW7rX=MyO}ocMwD#I^5yu^UuQ)RTbe+FZjPSjf0!JdsOw%FrnX6+D z3QAB4WZD~am_H99p%=v_8MXWZ8E$#x)=j(_Iv%&J{8eH)83z>Guo206s(JAAD1zMu z<4zfQ1;bLue4);VVlth&ck}ZGVhU*qG6g!JPRC-9>`=nSHzjlDYuHyy5ZsWzvK!@q zli!@lOu-|BT#x+LKX<|d1|6hTta#>!8V~2c(TBWO`>uas)mNJlV34z}T9nRye5I*} z$#n9EXcfnw5u%YQ=^+TD`QiJx49L>UxvTG0IcfN$K&%|D)LlPT3UR>-zEW_dZ2EK9 z`E8`5)Rbi@rg_Kl0N%z9&bO;nKa5(_Mn%>2-9h$5O18ngw*GAC<`ZJ(l@gpUTN++x zcwQxpn=akp`GpJHC)1^uA9<8RE7)g7n^?*?sYiC<8zbMTgH7;oK!M9|I{PtS1wOSv zPl7RNMYQPRax*RI0@(Jr0!cfDCtq34 zh@EfrVId^atigZj9^K2<=G3)HbrRJ)G-J_)Gi$5z`o(I3iySBBq*KaY5n@gP5{hT8>alIh#t`Q z=X<-CvZKLeVl)MKSgp(Y3RK|WpWbb_matYTW$XWl;Szv{IH(s@_)R}!7Eiw{u=JvG z0NWk^D2{d)4@x_HLn&q{_*&AN4Ep&qCsS09?5q{kAE~>Bug6INgj=%d3AiVQJ$|^Y)U~9rX0XtpgP9CXzBt%i9|-Cn^^Fle|{#2 zNbj`$I#f}{Nwl8VinAPHjt+IkNpkk2;xqca{-bg3Zi8MolyrTw6Fqx_>%I&R(S6BF zE|XFpEb{ures?DsgBEh+XJzD%DOyTh0W_F1=+&Z%GQX=}@^n7Za+Vz;WjBGMZ#jT? zjYx&f{8lCmTOx0E*l8tX1#F=xli&2sU(L^vPS*V8E2U0-k1A0c+%$%hTVr+p2Yq)Y zXxGx#XMSz^;PUjb?0U)poBQt{;8V)7k^NjznW31a)&TmWC%>DQ_L7d5GJ+pujdbm0 z*oi^)7OX-h@OKtVXGRs)d+&R44@~!g-q{Tz8XLAC3gYmZ5?X}h(gm0sCI+9lQShK+ zQ%zd;qy-z!R~HbBBwo*b3 z8imCeoL))Y1UD4WaN?;Ks=>Io~{hM$rpUbL|6)~~T)@gS!mU&#E~sd{AIDLC5HdLf>0g^`1Vbl6*i zC-&z8qn1AD(JqVAWK!g+A@AQp7udSluz2!>w+q&kB z?7|{|W>?CDHcQUYr4TiP(o2-rvTjk#U6hm`3hfQKiF@Am__c-KdLJWMK=FT!e%Ycm z;Fc`*^R4^D%p*Vn%;9S(<_jVQ-b)P0I{J#X-w8}1Z93^isj?`s*E62X4R63TO_G)K z#?a+0klu$W?XZ7RNp34+yb$gX{!s2G=TxT`yZK)N5JD}&ldo*97bCh*t$Svd+ijI; zw99uz1HL#9(9CPJvb`vadFaL;?N7AmSx@XaSB3U&7sN<>XE)xo5IkTQN0%MpB}zXp zOAk%$g;_Fm=Z~Q`*o?fc|G*k&ZuZ77y6+#+U$n=|VU4ZEDEnkq+M>w!tl9L+4y@Ub z%hF$LW04x5+yr5fpl9y^E*C_r3q2;v(^z*gb~lZCCRlM#*+)8_b_G7jXL{0i^Ri|! zQ*`sHgV~~<29?h57M%$D$$|w(4fJ(@d^A{^xBu`<#`)c5Rp=o+zjNe?B9He~`+Q`D zpPl?KYr~b(!2?m}30lYt2GQ|*PjyA&t1!2^;xByL2M}0sb388gtahMZq-ieR#JQ#5 zKQ4+ui+O+k2<}5pK3CpZ%9&fYrRHXQc_C~h@IfW`Wt6mHF1Pms2YU4PS2(=)tzqkH z=-jV!npRkyLT>wsSTu%+%O^+TMb+F40-Nh=_Q?*lm(w1{G%ZeQ1aU#RKxUJY#6LKrMvtQFHD=BG`25L-`o^oPp` zH=T!97vQAF+Y@To+4Jp+!L9jgvkF>-_`Ugl9o4uv{OBEV^A_Uw_(KCL?sJFQtl+QQ zPt?mOD(2~ck+C>(%=4Uexjc*ged%f%L77~iL5J~jJXcjsZA+xvl#a?r` zG(9^>%ohB+@#rW@gCp~)!w|%Bpn2@B!cz-YmiQTJ~;9I zs>C1SqIX{!HN^X*GhZo;D+e=+D7DulmNIz192nx`+z&^besX21^5v_Zqf&_9xP$_q+(82c( z!`Mck2Rf?x9%Z&2-!e&Jg?@k5IR;7=;1L*37s=|Hqg-yb1KI^2q8G1kuXxVwJ9Z$FMyvH!|_QDL2-b*YH3Fk@OPO5i|or%}bvCABvqw2MIx^v%};v34Uz@ix9? zR2nNONu>7fa;K`bxMMw2%Wmx19LZsQwr>qJ>MvCL;>wOuL9|JVr)>+_?3}RHfsM;! z*n_`;8=pDWMgn_Ebp2Jo<}EQFQZ)W4OLwWqg8zII3LWdIhvos+7;T+%XI{x?q{*qK zOp962Sk-IAl=2qIVL|~~vnF~0*b&Qiu%T`jR6*&wRKcu!3 z!OazPjEK-EI!K4n*c5pul65jYWs$v`_d~kO)faCdSrp7>gH4o&MvW)mgy_57t$o2TktH;w@71>@ z!Eq4Kl^35UE;DhfTc6L(8bodD^9oBi1?Bh1fPe~8cKNk{SSt`WD4CGr`MmEnDesaI zV*o&y!@C>JE(7ZP~e9r_qO|;#0d)Cj}W!Iyzeiaoiff0_pg$OboqV8+#TqS5pH$Z zmy4AplsHp2{sXp0b^G>Ze@ptFSIe$?R23j`fV?rV9-JU&vPsI%Rhg)a@|k*I>7}ED zNOkj`0HvO}al&(ZYD6HdnuBZiI{U0^@D}u6#waV(%8uEBKWcS)F88!I+We@!*Anb( z0$aauejnl`lov%q9PA}ev&#m~x}#g4)>y+faG*a>V-lNwSJ4@t>w&_GPU(XONG}O5 zjLC3W@csrT36;CP41Q5OjU#qIxI@b@p@WH@Y4M28T^ztM4+y%mlOXh5K{D0vJ3?34 zJ9lXA(iD@ZdD(_<2tuXy@0aw9F>=<7*3!1G*m_4hnW|u8(zDxUb`}w#Srvm+gP$+x z4=NHqr(sPeFHU_bzqfvGpiH1wocfj!DL=`e?V!x5Y+k4=dD_+}V{$n^)+}u_05Ej+@e$Y2oc9(|h?Yj4#=SDX+v06)x3vcRD_C9jZ@&A5>)aK~j=(u2hB&{Y zg%xB+o%0#Idz!zyO35L>FAVsz=HG(xEiI-c$^IiA7E-8YU(5`8Msh)&ps6@_3|f3IG>e8A7^V4Q&1&UGK-2PK5ljF+ zi`&&GImee}tBUZjFUg4^TmWCa4A=s=YKnTcAS$yXDFSN2=F9zQ{4e_qr=Pq9qFK|( z(tr=MaaUF&iem}vW_~7i+bh`@!S~`j&NCOr1Aua0jWor3;scVzH^>wdF3_=$!c%J8 zj;9{-(qzHnTqB_4e>tGQ38WcKod)3%d=vp_N#&JKe}PgtwS3$ZsNSM0BWb@=mu>v{ zo)Q8zUVXvz4-N-(v)gnLc?a_)vrfOFF$cWU%y?@7d&m<}lG2Z^_l4ezZa z#`v=`0SgCxUaD>SE?Q?W$$W%J^=&?}?h{bQ=mf}CeG9H?Sputdh(BS7h=d(eA%@{O z>iN|WW8EiS!RMKznav{7DhU@+uXw7+1`r8SW8UAyJhhh-! zVRW=NiH+&*{C3rvmf}uyt7E0LE>b*&pU_FBAOYr-9E#8RbL}Y+>(df}(4@=aBpSv$ zN^Tl6{QWuUvM?K(r^?GKJQZYGnx^gu!$;;xkqzZnW7PH8-h`q}Ghgvl17n!tx(^=} z=Y!V%+hjjXEbL(t$Y(6%T)N|Hq{DQ%q(hweiKXh&y_{iodZM*B`*Vy+s*8@ z*vt3BgX3h^YOG@c+gtr?n7NG?<73A#OQ^%($uB)`M3DKRiT; z0!ZzA#ms1)fHAOP=Gg{hYyC&&FR(bjc?VbAf0#662KSpaN*!d&&S%50P>^)GQzmtu za+tLzySuPIqaNuCxwS-R9Wn^(qK6^<}(vd7Sx^}W8^2-`o*3;%H13LPhcPjWQz_xwn-wM^*$ctm#$oU3QtBkx5tZOASqcduSu;QDv6K;1*7 zYH1CbxdwvS{|Uy=`>ksmG@KTNBU33Z^5n8h2A+Ux?fsToU^qsqn{_E4qn;f z!9+M|>1Hxw63f6+tuXHW`CyRY|4R?;QK(>z?0*E`&JvhfcF)y><|MI9)*!)}q#@|n z%g8WtpA(FrhKBy_OoLD>#&IR#}AMAX^AbsPJt(Rdl(qveVpuoeVFhksp6 z>1UWmep!*)&7#Py|5AXI!402CBBiV_M5c{7^hJuvm1~@&`tR<>un~X+7wUvXz{rG! zqz}2>#N-!BK4jEvah#3c@_y9v*Cz;#nM*5-dcU3z!AEw~Qe$9RhFe;~Bg&ot7W3Dt zmL(5&d9>;$F-~9i^(c^eAJ`oK2Eqm4pdxIEYQoxk`&CRDS&p<&Y zmjw6-Fq(xveGiQ0mu6v!oxjqewx%HL!r|Lyd5 z&vF6C53Vi<#u@{2WkdcC#3#x|=z+u`rcJOy$PXwh?OG{E!0aWo*&a5w`Oz^CX{NUK zjg%D=btFz@r@)=_ik0JN#2Np16;&@M5G09k;&=n2nlg&LOmf=C5N^mYhMn&{Bt(Ee zLt;%Q)E~Q7TdUjfP-Ohfq{(_xa5GSa2Na!#2p|ZQKaSQX4F}wv(!5#pdy~$-K6lCi z8-7c-N6D1=LsP#(fp4L7or!BxP#!2`=ec#K=v5iWs$h0FZ=mgcvB6JXHWYj^*w<)* zEc%;($=0AEwG};pzeScMRr0(3G38e93Vu9U(N0xlPFwbcj+lpV6Qg?a_+Z8+^g}lN z`4N)O`fkS%t@Gs1YD&YP89ZYv(H#E{Jb;$Y+DWbdPm^zkMIusKdhW8(_wh2*!1F1R?o>x zyZqeN7Z%QS+M^{V>^aSe8h-LN_}DKXu`GCnJEh@kdz!h{=XA3%NV{{Wd*S;HiM7sX zGm)NtLw#A?zQ{M`_vI#yVV`35$?mIJQRKvms&-*)dG#>0cmoE_i%Rp9i)%BqpEp$G z3eWiXw%nwxC99bd_-=iyYW#YY7;x;ImN!oOV;hcf#I}1q!BT+Ib&(Ea$->MlR^A%e zw_+n02Wb0b?=wK+=lVqcCNGzIm997K*5g6Lr!w(#YM)>y)ymiaQ#X&gyMPe(0CQM#NVM$AAIv!ZPA^u z;Gw2%Xe}nI1m&4!i5@p2_hF;02kqd=!ioE`r=5~mzm$G#(COI}{#!N|!o8p-!eZX_ zGduHx`G?|;Y<~R<$B|R0-tcE<$#Z%Pc2I8$s3t&ZBGT0Qf0c2b(QtNO8=p}}7d_e# z(R+yyWEi4^2oYWM7ClNrFa^;|h!P@t5-k{A5=L+F=)FV_!YC08ro8g}*YoN9e6Mx? z_O-9Q_d4r7_c@)2jAveF#^$z7PbIa&XOFmAYBymmo3BpGu7o*Z>DVF9qTDvKq*q>e zr9phrD|3UZEEOz@xN(=!K5Oc4l>Gnb)@gW^4~DbCw@B44!YZmdhw}4|DvkvR=P!RE ziAw56POgg;(EjAGc6fjf{jTshcN=Oytg|x#!^9-5ryJ|9Yq|kbrl23;Ijgw3xnUK2 zJL1-yPc``6>PKv~3L!uQ-rP?i^m?p1$$3Q1li&RQhJAvdrTMty0AmQ7fLd$zq>;+Q zqxgQAnvQ0ekI;Er3|kOP;=|A)<&)n^EA0o$Jf^t<0rFrhWi9H$++=cQ${GD&T_m5H zil1@d)vR=NaOi%s9cG94w)#BE62ySb{CHVig}%SM>-zT48{c5(|IX8mDKt#~wrvu_ zb+logWSc0vN0>fb9>%PDifz2mRir>0Am!W2;yPB}T_hZ#PkM2i9(ki-`V^-$jJr*fI3zgb{f{;GG86Hfx7&w3I%sxf9DtP;5lvo?cF_sZ0ss zTpM=IR=_Yy0!4G}g(dD2bDK#^m#^7Ai~*Lj90|@v&{%RcE2XtoXD{V>^?SS4(9L~5 zJ!zlS0PmZJbM@HY2&h1js0#qTyZk)gPgJaJ1UVa8Sp|(Ks#1#0PZ4tIUP~4%^)!X4 zk}z)Cb%`L!-`9wl-@-Jy%WghcXLR(e4OhD1EG!7`gSeVJuh&sa3(1eW#Bg3(7$Q;3 zIL=NbA#Gw1j)&)t?U&JZxe}U?Q%$rm7e|Fw9*)U8v~dZ#-G!&w_37epZHl1-Bmu~V zZQsiV&3uerZ)ULmFc-b0ey?ZhRn~7+)2|7>=fPxr5-VjIv2q$(jkfH!ydL>~;a|v* z0jKyK)erMg6EgK)sQ%)4Gm%{}cohSqlsq{)S|+fF`=xBvfRIa;YTcj@Ut)Zr!Faw@FkSj6|{j$_E9B&(XT8a&v;N|fO*NbUsXU*Pc@P} zyCx2w3Kby>(#+;rNJ(zi-FbYvy%W?I^QAZ>F(6%$4iZ)9M^zjxGpOZ)y@%^+_&|DN z*L3(dufk600EL$YXFCX{EZTHMO)JEv)BsDY!2$=vAns@qH))4|vpy}lZod;8SsM7_ z7l8x8h|?pbNx@E}Lbqf3l%gDdD}ccrgA*BQ{Z5!i=D3t+^iL-aHCLIeJM5qwE=9b@ zQ+8p|oS<7;DOlm8q2QkC0|Gru4OIW=OlQ{KG!D=&_pUAvCgoQjC9rVFU8??0@C%E3 zvd@v}SqdqmaHbk7djE3*+eCPm%m@$+9*eQP7EE3{!-^iByppzO(^<+-8-51AY_k0> zFP2xegNwC$LkC{p+P>N#+CRYdxu;kFuhNK}I%mPN9nvICFcr*2kC2O1m1umYHQq5> z{%uUk801t@iv3R3gO>JCzH~mLW6r*-+?kfqMoJgDbW|Goc_KUBu8Tn>OU46KY%uB6 z77Ncbe_O#dV8k(byW^^Qf}b1>lfx(6EOo&9`CUhkpUpXukAl?Yfxo;+=GZ2F*)nB# zb#0Nb+PAVL6h3GFmno-s^#dzgAjx1;ka1vYWip*p_a~jns5KqOPb&LCi6s-+XQpR| zn*Fcz<)4Byg?;+Ip?@Af=$X(zNn!0h%UXnK|Lm5YUdF^U^4&vRz|I>%6QA|y;A);t~`%-U5Suoz`>araCYLn zSfbF~YlIWw;CzSUC^!dt4MN{Fx_c%V+S1i0`-zC@1M#1XV7~KKO!O7m^h8{)f+s`% zD71;s<;BAj;i5;dNzJ<^;l{BO5{>!mkmteD7TrGC@#HVM4*;v%pyVa41MSU~>N&%b z6DzSEapd#&(SI0fG5UF6n)q$CY+`{F-!6ZS!9RY zmqt#%sU3yUczxsL`gCz#+AoPZHOZ2tp)5<;t>B*mJWNh^!nx=uuvr9}wbb{a{0iw6 z93+}ZUfyfdmL@kkFG?%PL!#t27Bt2X?&(pI;H>QBMaCA)@Bt7*KKr(RA^lj^Hxe35 z$JdY|-}F!|R2x5k+a~1xn?A7wp{9oXOOK0hH7jk{F~-IX5B&$%IZ@>b8}!GW)1RA0 z>q&Kn8UxFB@h+_6+*~^!o} z-=T`$)2RLY!FNoADxq%PM-Dx_o7MKVPQZ#9o7L;RCAyrpBo$diOVGuD`=^0$fnwW$ ztk&A6zb#zGHhRT`BlCSWT92ely-ESOj(?z~@`=#cC0II&n0|{tq2i-!>qlT4P%I~7 zW7?BB*{eE~9jC88FAj486jJEMsPO>2=nV$@2goAIoztVlgVtY|nF5`$vd=9IbqwOI zaqoe)!Z_pVuBmAOL*5Dr$0oh0abDF!{E_u5sl$C%#mC^cc~k*yx^iNx4=sg(-6y)X z_mw5O_^fln1=6^SQX!}9vYSF{XKIfr+m)l$AmT{l5KT{u%4UkN>Re>M+G0u@sp{N z&H@(Z$n;n8B}A!UHnEbBtjVtIf*qss=nS3lx8%6fc*u1ZYyd>Pa{Ew=(jJQ>=9rwY z5ylL%>f9zh%YnNS8>pQ1t^LQ(>~N1}%+7_q(mlCcNVUraUPw5a zS~wk6%#S9+}1_w;+=s&B1vVXg`b07lx9y%%Byc0)2S7KpUGN24kx5|Mh|Qq}?cM-zv)`mV zYiCe#?V+~bcB~v)I~6R&lfsUxj_&n@9oB=WHKYNLE+Zt9!dyp6X9Cv-RUcfrn6oG} z)h~})F~mX$S@(`yg?=}DbMN`A*Oq18ZQZ-J?sGr&GHyv)>Rujuh)#$~i|vF|gUQdT z7GqxGx$oV4Ne;-}WJ&_Z-&sM3C6E%$<0-E$ILY;{dn3d6N`5#;u_Um7weUlI{b|rk zBJn`}yMJ(MLOjpb^x!#wsnhkW-!w*bpE2naovD2p<6ci}P?(2k72~Tve5!$0Fj|Uv*AxfN+F#cDCPt~ZHm3YNZHc3D26m0y$mDt>rH`EhJ_)t*N+j$sYJ$6 z!3Gw4X9WI5VuUUh&;h$SDeZh-fWPE@tr3#jQU7J?TD19wBeZr|;X?(qa`(sH zyV@D7`<=df#3#VfYee%R^pnMEZ_68=*OF#_P;bv-jwZmusF0*ZT8&N_e-^FqO${05 zntSr!b@m_=j>?z4Tz9@5fM@Sf$p!n2HMGr7NY;n4j$8ZJ^B$b?GJ-K47g4lRjEK=A0sBK33BW9b!<};;S5kl6rzWJ3S z5S1qwPD?a*edG}-30YAeTy5kyid*< zkE16)+cTQgXY%yV{`4oi@GFS(nDdo*#hU_%v5?o76?G(u_Zu5okYE!ja;2TuiVzDh zQcYqQIMoLBgQ8^@9lo}XmODUdd#DXd=}sfP-QTboiV!+o4lfaWa#z~LzxQ37mpF%^ zAYulp_os3Xqf&tn?5;lHXMIIc{gcj(yc@VjR4lGevbdeRH&GZ%B?4_tZ8eb?nM%}n zr@Imu0=rJo?R`3ZQy^Wk*MAm$13c$Q{=w+oEW9Q17ZzFX=fQF?u~-q=Z_v(Wn#nNB zfPo5}9z2N$T&ETfJUQ*lz>7y~ZGir)s&6&o=ck&=oxINeA>PNPK!Rf8aI;q_97B2L{($+V{nMwXh5kSvz~H^2#- ze!5-rFa)h*&lrpfs^U8j9{(MdDKHwN)p^ik7YZUr7WeTnqG5@tmG7uazntN*vd zrFryr+v876Zc0FBMqR`J**eYXiuR)N4KrvZ_qL|j&Ptxaq4}rh8tzYe9#y1^B&Bzg zv8?h^Ke5T1vcGbT#B-llG0#RR3OQ7wq1|71Q(jnfPQd$rN>b>YiQ>cNVHArJ}0s5#3`s=5p3GUhy>!2PW4JsH{M{0D4I%1BL%Exk#63D&xKxdlS2oomN#IXV zM>dF54cgM!KBH)0bTf?O`izWkUSWAGo!MT~^X?yG5l-D$yzWw&4b&)kH%_=Yh{@LP z+L5e;Mr;v+qNq+J&6I6oPVEifWgMC7Ds?lqM|L1Fjjy8-#6UI+4C z0PO;h)?IW4=a~ahxY2F}*vnD_PSB>WK~Gg{>`|r~-DxbpB6boLx8%R2dc%3ijev%Q z?D_yN1mWw1kEW`cbOdeak!qV=0h<9z}d4Kz2Lcs=Gbaq}4t&KY&tzZ=hw4 zYrJ{6)@}vKWKv^5UXV)4siOO>#sv~fHa%p-iEMaXQHAFgua%=NAjySFX98wPUKJs= zcBGmqCB{&8VdkhMQ3Rt6DKEDx+(v-R)2b;JnP`{1Ux{e1lz*#SiTOSwV_Q z9{vzl@K<+=Ios>YY1=l)zd z_g)yl-%Ozz{EfDT*j9Rtq~Vs9IU{LeK-!XhsNLzG4p2?li_7~{;T>$TFUIPpJLBEto2w94LpnSRva77^`iFRY42zaYtk5tEj+ zQ3c#mYT1X{hBJs1Ha@Z$1ZC27dq_zu#jTZ9O3n43mwR3HFPo45(P@$;TcYG$w_8O! zGJWLezD@~3!fEtJhnfYRe`4t{G%>V!Z literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/main_nav.png b/documentation/docs/assets/localizer/translation-workspace/main_nav.png new file mode 100644 index 0000000000000000000000000000000000000000..974f215e0959ed56e607467f94c64b4da02e4d8d GIT binary patch literal 37001 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 Z%1>Qr8y6kg?YRH|002ovPDHLkV1gnxc?tjk literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/options.png b/documentation/docs/assets/localizer/translation-workspace/options.png new file mode 100644 index 0000000000000000000000000000000000000000..a852170e18431f6b23eaea62444ad985a0bf5b26 GIT binary patch literal 21012 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/profile_menu.png b/documentation/docs/assets/localizer/translation-workspace/profile_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..67d035377e389294d173a09c91f7bf85acaee6a4 GIT binary patch literal 26836 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

    !2BF0o1> zY6UFf+rOz>ffrj5H4#`96ZUN|bwH8s#Qyxs*zz%sX>(eKdCKMA>=hWGlfF8N@*ig|Wn!MUg0>T` zhK6H!#@YXXHA`x11f^%q_2=`P_l_5!eg#k_(T^Qi9Qv;|(i{|hqE>i-3~YD7y=KP_ z*#bO`(T=d9k>(1Vqdg5T`r#6#}?yUy#45b%kF1-8sgn zWZLghxQ&DdCecYeX!j5CV-andwa0Qcg>@`kbo_Zt>9ZbfTAhAXo`No3zByF9w{4j+{eJ=_rVosZEwbt`SJoY znA%AoJk8BS^UW@UIRCr=4$!^S)t+<0EL#03v3@5F?w3ITr37Eai{;B;eO2`K1RE(X z3IvO+$dQ~*AKS$)5|$#gn>rxpFh!JI`;x~Gn=h_1<+c>nR_8ba z$8zDkEfl%X60I~EWm%gdO`UyRQ^FF#u%xT$r6*OueNQcOtm7dNcnlu%%ha%tEtHiX zZCa;k$7k)$aCgrFP}nrTq13fY8foThZgzYNApe|XWT`KmdqW-ooexbynolAeDt0Ih z0)a-Nk@oJ_(_X(@#&he?FwxP=o?iI}unLEhTj$YU$z@P{ZLA9~RB+8X!>j4osA?)j z93Qx>fnwBjfJnsCbn%C*4C>ksbAS#oLAr*08U2z7 zyrIl@`B?mJ?`FB0M5rPY&0RmZRio2IrT6Tj8?dCPQ$w9OXCQ;zP(OFA>~H1E+WV*5 za+CGmT>U_BhbM}aKmOj7W>EpUMM$wuqDYU<^vmrDty&XrAl0XfRC@rRDh+YFuTAkT z1TTIXFyOxfj}EI^&v*$+lIRbQXa3c3AqZg%ybvZL(|`z~@ixhQjHMdD^7#|US`!?y zbyfLtWmSJIqJnA>v*)kOz5bVn)n-3vDc#(d&9^CWTNM-k5*9&;TnPY;#~M`?U9gSG5{Gp-iA{K{< zjY1$$`vjEvG+{GUwZk5VeLsWtl0r*QLfdm-Ik0JvFbR;hcLiu_06i-JgD1gN09FyV@mfKFS}_+mg)d~zYlz3%^7bS$*j@i$56CIjuv~Vs-ab&q30$`62gtj(CMO4(WR}$NK6MH z{Z&NZ(3>*i0GAEX0LlKK;n>)n zQ1Aw6n89o_TsZdH`MX$509Yz2VwlsiGR>nbEv2n7dqEV6wW{JDi%a_)l++!s0IW9` z`lR=J1{Dz!rBPp7;_~@jv^s2l4MoJ`{BJYz)pD`yY0**)KSD5BYs8S>3_n$o>FU~uCF?&*HE8GtdTcqGUs!KD#3w~1tv#To z1quhv#Re)=fo^&xiDPR_qzFMRgsmMl&s|?wp5Os zOaI z2Y`Me#ewGg13*CqT5CCZ1#jV^P>4?zVOfYwz)~ivr&^>?hlCo!dn1=5vP3xKS`nu{ z%z6v`|Eul0!AgupAV3JchzJNth;(A;AQ%YJL_kDD5J74HIiU)o^xi{n zBE4DYQWX%8E+8tP;0<`ryXTL4fA5d?y~%ttYp6(Q#8q7Zl8%^V zciWG>HJ+X!c7o?P`N$ks$dU{IA^1uj1DyB1e>8+;-`xl|77W*BYY8&n-FGV2TJ)4O;HwnSN@8Fgt1+F2m5bzZE-~aoz_E72Z*QgNe;H{g>+)g4 zQN89ne=iYil}SyVNx6Rc^pWbbQXeQ_+*r$Ky2FA1KO(#=9m1%cGo`94Sp9S_Zv8|Z zU*4RS*JPMe)5MRmhd$P%w#e-2nQadVZAE9A9`mnE4R{<&608z6=@EzH?I9B-OTk3> zUTcbpBA0K1r^3;6$GS!P)rS2?9gRtH@`q29{Z1-AZQXfxQ@nY@v1y{-i?=irt20;kNPA%J-4RdERSLt>2K&U%ts2qd0Di2 zuhFRa&3!s*i{t+yGd2VhGEO1*ity(>&a=H+9Kzt>MVEQuLS}YIn2y{s@Qs%05WUuX zG<>;1xfn1Yi5U)eO^5RT%dO5 zEDJ5pCC2|1ZtX2@NH1KYf>EG?aB)IZEQy(6%G$A}!_f#pqw7z03EH9c&?{`K|B%;cMU}bEb@cJ({4? z8~Z`^@^#U7y73|OIZ~FnM&am=s8=k;okAPVnT1po)FUA?%zZ)NW$KN`Teq8!RuefT?!t=<#Ur9e&Kb6cyl)jAMA2}LhXCy1x-d)Y5QwQRbEnHy zueH)JlrTlF@~tZ6EO+AcTqVpQKcAW-gv&#9| zq$4=c?bJE>)`w#Eej$|ruipR@#)vS}3o}?+*JM$J=bv^j^)B9f*G1A0jTEdQr_;?b z;}~)q5c;mc_VS^a-!H@6gQ%pkNB9y=a%SSl`Ng8&WIdGp`g$z9!z|*YyCI|BA6{to zoKsI8&rC5lPiqL8{AGA}@cippxp7_dABNz0%(m?3q$pa!=(neG-XeWMdcS%1zj~lM z{!*;r;^Fh|ua}}%?s1)F+$MSH)LA?EhL`po5ck|;yGQwv`_~TM{wv!*8E$$7yxl)c zUMjiHztS~duX}xPqG12Y<(u9S|8Kv$;p$ECEB;pUs|RONF#oW!$~2QwqLt3o3VQ9X zL?}q>0JDm`WUa|=y4PsGkHYZ!*b1y$p$BksPk-S#B{&`dIGZx9S;hT!+KscVC?Hcb z&oX6TLgvgoR}WfNx>oA_cv$mv;7|l$STX2OHgrnYB8v8K`>}-Wpcdzb$v}9UE$A=9 zCvq<{VXS2ws88DhHa1l3WOc~mle_M4io%1%_01B@1++0WB{^L@5qEWK5)&S1kztr@GN@c3!?tf4-QaalHa0u;1! zGX@1^3@b{OmdF86Rhc_uYPs1kob5X7H)ZuzeRaz$v6@R9(u%bFh^?lRg zAp0;UgeH@Wj5aKGgPeur;BX}2>DQ6#Ysuu!wTyI`Tg9&IwNhCa8fFCsI-mHkx)KlT zAg<8KbU~7mUs05oEp?u`z2!}GJfD;>dD4a1y6@@H9W$H}B}{y!oef;sGp`C4Ue`Rb z4tZ}G+-0%?If+-{CQLth$~m-gqix9N*YPo#l$rJ1D|V9`I0&zYOu#b5I5?T-ikFlI zzSvV}7QTn#n?16Ke9poWV#9dD*?zf}`xi_b>-pf9#C~@iQCttc-XlQ=EyTLlb+TDK zsmjNx73X>QG^zp+JhRxq36)pk;%3BgnFn)4_uR9S#%W^|8D23%%hIg9SAx*=l_g17 ztK>rI2Tb}&dZ7R}6C{t!d6k+snCvEEiWfKHQLP?h$Z|s+!GzUx4CLq@eBc0)b7t>L zz9<6Elt~+TqSc*j-biE30Ux?C^>f7!V)@gd#s?qyxVD@@4oy=$k!YG%;&8VnhIfRV znt|>>Exc>~$H9$~j#B3A`6rAbf{(@krFIlN*&nGYbb=);o#@Yte~s9$3nNlN5$FV) zS0p~%JPc&JwCR_ z9|48EzsV+SM`r1(+;6Ta1t)3BGZWTk{K){s*X-O`<9XMt7wAO}u+wEqmXy z$jYImr&8KJQ0EwH{b4ut7mgw4d&a2FWi|kf%{U*4)&>$b7zFduzzNLE)Uedp?<_Sw zHDrjt?46E^zcFw=x_$*)J9qx@2095l7tSxx9r8?x9qN4{R;gDeO2-(3j8`Y0;&pMy zhdg3nGDcD4`efO>V#(-QQW87Y)}E2&MyMefxPqie?>!qQ6QUQ|%TyKZJ0m<#2aq^I zB76}~OIlucBroujNfPZaigYf~bf}I%|2`AF5n@(?FI4+b$%X|3WxlpP$km#^)#T8} z@NicHPg25x){7(+$xN~@hs zdsoX88>$Jf68h7&SI;0fX&|>HtSE8;ljRMZAtKaz!gLRQPz;j9HuT)eu^?z=I_v$w zIi)UUO=o@ewr6K_58B_jaZ_i}bd;DcKs4rpSN34L@ARwtcT~#wzIBo2P_<*N2 z4imq{`eZj$LQ2H>mCu+$7#mL0BxTMN+O+(V~R`UwJIMtx1-q zxKBSZXEMD$rT9xJX*q{u8zIag-KE~BDMLR6$;S^28MpQ|y=M7l)>O%L1f>9fP%6sx zQA3`$UD{g2neQjd+{jqbe3$;lyL z;>eUUkWtTmtmeO6z(vNW_Afi?&F)OkBbeztX3!I>t{``GF{NfK-BPM_4vfF35MiIi z?)cY@F+quVR}7#y)2c^m5aj~U!b60q?txrUvz!x!)FOc=1o>i?$C<@a`1p0LC>gwQ zrW7jMVT*5=#StPL?h9~n9RaA~8GU}eIHMuy!10B90O$#KJeK>Si@{||6mvh?Ijl)7 zmPy>A4)WfS!&y#|Us$){6{fwkW980@Tv-;?qy)>4{j1??mWda*=*X&E+j%9UO+ecU zmVaplUvU&SiTXiTIuw(5LklF-B--f=9e1gmgB{w(x0($UD7ZO{sUyBz?UE(i zr0R>zZQ;Z6Wo2S=ukWk4t9??q0+C@DO369=Gowmf47vzxAW|}XO}N;{ZOJ<&o@8oj zQ(RnbrkqN{Cud#9!!3lO zvLv>!3_V^$#WOZ3;&K-~oykQpHg4QwpE-ipNFWKrwR;oClk|_A!7GI&ZEu&9fC2d+ zI1$Yj_P~&1OU1lq;ri(R7f@r%V!(;arHHiGB11AYOHN5iK|@aUkC9o@`8gI=Dr#9~ zVH!5lR?8KWbL>Dl;~N~HDlfv>jtd1jxdz$m|JC*LfaGP>!q_;mJ!Nxv@!fU@p$z?7 zS-M7##RVmH#eUfeNjy7o-$}u9E*lJ$NgA-+iVA4qV>gX3oP+#uh0fk33>hcg9GD;S z>%eT7y~sBE1?prSyWJF|l=9$({0>Rm!Q4a&<5Ev)SbNDZ>uLdy*c_i2UVKCROkq{@ zT65fB{!J&}c#+a;zjC_2CKeTYDb_6W#y4&HvH5>gx}}x;J=JIr#mcRSfzEN1tDWl1lR**mLN#g(y+KIC?MP_eb+l(q9X3T%we^UGv zkjCp#>}^}#w!f2{;4!-DaxyJ3VTTIyLrTGzCV2O2n_GmheiTF?)@vnXkDRAR^KwHq z-VbP%>?67po@dgLP$9 zVwu%eHFi=aBUJ&d%Thns_^>8bvZ_asBj3omz_gz2gc9Zl*;0VOE)nvxI)0Op^N2V_ z4u}H^=D%i)s*O218vO!-+BJ5f2|%6q^;FXw@`HrszP&ieUb^|iO`p$hld%`Q@1sA5 z-uG5(Kwdbg^$Xru5p<|SE;piQ3Y*6B9B%EleNjG#EO54~;(g*Z z0Q;fV56F$qkE-3)2_Y5Fw5m>(uvD$P5&w=yGQ}n^KHUZJW{0rYdh*~&K4zY@(=2Y9 zBre{Y=%?M~^KC!*MM=$HqXWz3n|R08z8%!j_qE?-S~h~fUGU|6*mL!7Obl)X6~hwa z8NQc48`er1aQSvS@Ay?*ueo$r|B{lfp|_(I-hJ40-MIwW%HQ|Sg$hRy?p%a zdb^!12Ml=Nv~}cG@WEN)?)v0hkalIXziPePde4uA*v=cpYwMXq*_)$EwmtbXwwO2} zr@2-s(fOi}Cq+AmrGz*J*Yyueej_V8j2bBP+g?kS*xY@4oI7A8_1Op?fSMS}t!0hn@;jCv zNEGN_cNOEzI2Zn{?d6bG&PwOchi4T9j5zK3H$|l#tIY~Tjg%P3rQ zvn8QSWaHi=x+(L2SAY)MoGo-HO!+A>(p0VJk69d#8+k{*2F|lit`b-7a7xiD$gGNC ztv^DD=WaF&tMpG*TjlV|8#Psv-ZlM-)6Krwq8FEWuV2p)XKnTWVW$%;uIf{)al-Zk z)DGI12^mmQZiN}WMHL~J4V0Z8KK;UCbu+Vg3)~JU^Byo|C9GI}(21&d<#U=sw|pF} zDsi(ceeM!iPtwhAGjY|86=ccEx^Me}eYA;JKVwSq_SvX6c?`A97hQD~*M*L)+3VM`0}4(;~^gNM+LGROy`exGlXB=G*8FBZFAZ_qgqKWf$62sy+{fqL)QFZz$fn_~oqNzeWS`q#_+Bjk8rzQCLV7cJ5Ne8Py88Slt_gbYZw*lo_d$(ymLkty23)I1&;iEJ6||M#6Wr z)M~?IWJ&Ud2SNYd^(8;CjYxt=BoP|^SGI_Sy8%HPyKl*f1YPesO_|Jf6zAdLWQB>^ z7=VC_xWN=8Qi~9TRpZd;=nc^s#&$<@LM^ID(cRPFZ}>Edau6iUV_iUy)ULOpUUI>S z42w9{)h4;9bp1>mr3wiPUc^yCcr*uSj89WZ$iFY5;^k~X?ZCMh6TB=E(#@SE0?F?F z=OTx_$&&QQcKmm6J#q(iy(A{GDa%t7H+;ml|8Y8wDr~)8A2AH4G&y8auIU$1Gj4r zKdk&T46_tkKbpkL!K~(7nBoICSyyvkw<^RD)mZ1VRvQU_ZwTy$os>=E6<++NS&+ z%x?c5(AW0)+vR^H`P%NsQL@C#Bb`s#*C}Q=?FKyXa`JMp=p1=jx#bgn zKOsGzxI1htS;$TV;lW)ZG&Dw!#r7q;ACF)i>-sRqdui?cwqQXzVfA`8m`&pykch7w z+|ujPexvtqG8#1oRMox(9*V_cEt9cYh-lg%Ry9^&l-TI%^?~)~7&`!ozX*sKW;>)P|s@EFTzStn@s z(`rua>;Dn7s7LLn)8d-@Ods*4TQ~17l2I#u|G-$o93z8z{qC~fq^&A3=o9Joijh1z zo&`(ZqkK`3*e*+n>CIyWH_;4H>27`AVE9KfKnA)H|jST+i-x(&U5ejpF##Q;= zrHFMUG=V!oPxxddbc*h1N4Vq(ZN5$gUsSStuMl~;)nqNm)+l1)8D?83L3>?Ls4V_`1*KCVG|U zCj`4HUbf27ZgdsHj zDz9i)Ido62YOaPs-b&}?!03?as`Mh+>pEQqKJu>U2RGT=y-Ol@Z($rensTh;7M7gt zaHnPL_UwTVZx;AOpJVK4gS?+l=rxi1ly0}JonBR<-``bI;&lB2QA1P!?bbKzox?iW ze*+zxx`57!T`Y}mCDC=>?nfR;_s`RBdk9<64t;n{vB|l`+lAlUYIhd+#;^j|Oo+go zY>v8GD@<8C%6gbV%=q|~mo96@r+v|W)$CHM2tK?FF1C8h6(2| zuXzLKGrf+QPC+`C^({QbkqkDqGXg`=PDSV`HcmjJ{8%-5T&1G2MeMX6U)-wqXQK1k zbi{_o`P`G`?K(X-DqAdbe7!0Vt~DdK_3IG{^Ztc{B)+Wb7G3rtJanrz@=Tf2Q|fP|o=SiZ)>{sY2>pknNYIHs9?Q4N7fKd#%w_r7yfoXc-T z6wdo6j+HYFsA%wxdg<$lzPMVy3^238!Dm<;_(2>^hH>UcgXa_YYnsGuGLWxR^Imw| z@tslZZ~; zM(ldD9Z5MA!4iTt#4^IM}uf z*dz`fsT_QF_TwUUzG_WYznrFi`I*qLiS19^OTR-ORe|#n+F3)Z{{U<6{&jJRrAL%| z?nvVzf*(Njl=gWBMn#8gXvhFpK`L7|}+{hL@gOb#j-}xEtX(_FFjb zf&n}v!Yf;vm};{yj~sPX%K2}<>{gHao}%K%l`>mC$1zRHp!Ijt?vUo4e|bq#6X~b8 zB&8?cS4+nae&^U6Ow`$Qi~o-3e*j!+C3vGM9BdLusglZku|1!>8fHEI6L80-?wLXU us7uZCEv5ei+%MOg;sS3*Po+pmp4RN7uU}&&#Tkvr9(MkZ0JQq|)PDi-3DnB~ literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/search_field.png b/documentation/docs/assets/localizer/translation-workspace/search_field.png new file mode 100644 index 0000000000000000000000000000000000000000..b95f8984d79afcba0d0b9acaded78cad04995899 GIT binary patch literal 13176 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 Y&4X3e*(3e$&kUTBoVskIv}MHq0W4j6aR2}S literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/sidebar.png b/documentation/docs/assets/localizer/translation-workspace/sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..1a01a5d73d4853ccbf6d4e0fa9d3eab9bf06fd6b GIT binary patch literal 12507 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

    NP`fOjaDT$GyBYLyS!>11WLTI9^Q(KLB%!4-Y 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 F{|lTgq0ayS literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/sidebar_expand.png b/documentation/docs/assets/localizer/translation-workspace/sidebar_expand.png new file mode 100644 index 0000000000000000000000000000000000000000..97648258ae65b9bb2b0e859ed919e82b6a8b43b9 GIT binary patch literal 29298 zcmb@NLvSWu(C&kY?M!Ujb|$uM+nG1Et%+@$Z*1GP`9>4W_g~!AckAx%q8F#@**tYl zS9ewaPL#5u6cRihJQx@ll8m&3Di|0z@W051h5Rq`nffXB-=SGqUR_dHN|l{gR6)l| zL|RQw%i`a^f1Lc{{1S@)$t2`7nK=awEj)yNDJ$#Q7`cXN8anWZ$cZW&>zTTV%4#ZW zTFlJMs_9s(8rXe&eCnII3&R^BxkVl zOFMW3$f+6;GYbz5kAk6)AyV)(wY2*Og_&DBE-$ZuLDGSNVSD<9+1R_O>lp9tAAo_u zVbSnAxOnOqyNF9G(Fkko?Cym|B~UT(w6t~lhsJ1|Ij^j)H#W73NXj$vNM&T^CZ%R7 zX&B&;vyjnqxqJD#{tkw~p)t0wCubGYHnalx1$hDj&`B6|3``@U;tWhI0$Bcz|ffS=meZSe5B-6b?y8}`BlLgW$}2F zF*p^qtbc=%h*IBa6M=y_17svb)x9^b7ewK}SP;P)2Z`L2|EX3Vku)Y2UVaf)U8il( zH)~nePa9?e*?cTsCjWOL-p|(VHy&(Jj2SMBrp})#zvWGo7TcEHB0DcM6@B!`47!!K z0&j9USQ{ctQf%LQ$bi=D(bY2TcaaB(S@Dh8yi7Ms#TTRaf45&#jT3^_5pTo+X7;Wq z^+(T=Z%^?bX!Vr-olkiOW0*Y>s`%}lr_>zW##BYQ>R(i^v)8(DJ0x3c1g-`Ii<{}@ z=|j5zjA+{|*H;_T(_r_^LTwh`6^-C{s69M@SpR;SU7t49DIRutJ?o)j)L>{sk?$y}}l)D&r?yurVS9Z2UdauNkhccs&dsr?b27H!z6 zUEprs1jS6Ihbp#!ID@!Dmmt2ZqC1w}$bR7p$I+?YwEKabD4U)}Sj|$CJbEy|@*u_D zzWfnxPO&*+Agu8mG4Jj|-7%YTWq&#;S`O0xtP2oFQbMDw%2sPA92rm1TT8nRuVg&x zV$!yE*NL9uVI9o(P*VOIw*Kg&Kp1t{ zfr^|NBm~RKl3->@btzFSYR8eK9PK<3S*x&Sc@r`+atIuRdN%Z=Z4o23|973c{sr{` zliEY+#^yF_)w|~=-;q#mF8Wu-T-<|5h;4!>;%}~YX3oc6#FZ!=B{P1XPaG|jjFzMC zK_yPuXV)M_c_|n@oY7lGo_Sk!gkSf7G>+h#ep%}=_onyI!D@4|P12Mky=F`Z9?a<9 zF8$a}5R<3l{Zhta0P*NEmcL#WPO3hT?i=#X1Xo?HHA4!Lprz9M`7`sDc}jnA@x2sm zw9d3oNH?&+pLz#*M?Bl0uY=$2fuKtzY-i1>rQn3!gN<>h{6q>nrAYu$R^1inkFvRJvI?uF9!J&nNoGwb(@;H_ zi*5iX;X*tip@`Bu9wu#w9mX=VA0ChV#KN{$et-!iqgy|1*Pn~UVPq$Ah3y~#KYonf z-!9ltqz^xQ*VBi=*7gGtUgS(E0$zUync%4qqlYY(HMmqtD@Hm9N0;A3@dyz80R3f1d)pM-xlEc~RZYCD(XC z<3N*r9Kg&mk}{7n3=WG#Wjp9Z(g>vjoQ6H2|Ea)HV~g|imYAr9V+`Fj3Hs|y_#SAHOc}5NV%$6bg zRVrzyZ_}EZbpc$}5T-)epnz1b#KQbjGXKEiS^Yw0p%sEfq%RRAP|kx4gdl*|pvtKe z(B)>knbicL9<+*jRm4L(erR3{ z0aJk(l3U2M6g};z@a9r|e(~V9#g?Yg!OLAK;?VnBcMqdXwcy@NN+%E@3Q1VZPi}f` zTMXGn8u$dxkboZ>_f~h6`jfi|YOli$VVWUI<4}Cl1Cso80_5sg4~bOq3cskuTYxSt z`|}wKI7?7{yB7PB4yGBC>ef3O={BwuWG;6;)OZ4knJ<1MQIFTnj8s8Ml)eA?3lJ4U zu6FGeOMIy;F2qum2UvYeedTJZ98t>@@fP$Rix|r_Zr%8pRD@ z68v-pCwiw;PqSRk74FxV3k@-sX*hk@Ac|Is%OuG3N zd9n7%T{_pEOKR(tGq~<_&Pk2Yzr{7>G%f1X6bbpZK~t6rcK+w*Hf9jjF3Xc9@4Ry| z>AP4^JWA9CWmE>co?hSS)(8Ym`dzRV%k>tv7-MfeYvEQ2>J$CAKYWrwir$(yFA>bK zacUYEKy;j^nPQV#Iu0?c_$Pj6baO$@1Oxq8n!ez6X4a8lps>{1Qw4|iabRBVM<>X* z4PO8)ln%xhMMt~WLj}J2sw!`^fQ~mdQx`GmYy?J~nM@T8K@5F1hC^)P1rz3<#053r|*GZQtnM8R6b#lnW9#9#4Mxt=dcUl-_+WUFm?nD^K4 z!5h|n2jdlZgq(jt4XDrLl~8-&1}5}Iq!@cCMW4SIIv-VJ9pBv0Muj+9*HuL!y>_S& z;^oUKA^0_rX&tBrduM4iMaBP}X#R2Q9%#$HTJs7w<*-5*BHD-k4PJ8hre5#7^}~ICt_B^&F4g;^eN_zJCL%-~_JRgRaG}~K_}@hD$}@+fgi7_&g15R>6Q6{~p1gg8 zakLHs_RtSKSe4os@@C_#l2cMFtTb@AD03CP5(;z_IHwz>TS9&chrgojm$#PHyD(P1 zf^MgV#0g_&`8hJGnvXwn7b>lE8rV$TTkJAS_nURN!OukXtJMVpeTHjM2)@%g;nfu3 zz~-EiU1Q=_-OCDs!JnRDokXbV`3)u5wJmf{*)q0WCEjaY&^{vC+LpZN1-2t9FVx{Y zjfEBkl71oW_st>}1-h*d*Bqia_*{4DmJT6qu> za3HH3@zOhwoI27qjNCMu8m#SnTA3JVuU}|48YP)p75*@v^IIs1nN*Rz9iRo(azqcY z#3v3)iJrrdlCzfUB(kEv!@A6}iSe^i7pucVrb*H!W;Atk4JjZ_*0dH z47nS9k_?-!1oBE_FnUzB97X0N(1vPcfQErjGei+rB2qF@Y%?R;nv(LFl1WlI!b|y9 zLN@EKO{{mmM{uh6koqJ0B}`I2R28Nh9<=#<6G8AUqYrxV?;jlhL{p>5yq_Q-VaOuc zXviDu3wp{1X$Zho`}JyGxp-#0aPdRvlxP*h#Iox@cL)t{_P@z)t(D9!v-eU{cnSlX4bE7+~f3I$_a2FGTR3-M6 z-MB!~=d_bBt|FFC6F4^#1#`=3`9k|M#KXEMyUe1@!G_wo(08WxT}8ib0=_&~wid zHWFy_0{d=i8!GKIto*0qPLnMpcoR5@c~QH09qDJJA!9n})BcMvLgudas~*-j|0dvN z*Xko5_`30p^nz-^{^WA-Ipz$@wN&YHScVBqISbqHRBJq6n$^kXe?gTI=Scc7%kvLT zzlJQT;DLxZ4q=ie{%b8F2g~-m*>m!4(}NEK#{<4tbvS=GpZ!Gyy2Fp(kgZZ$l6`h9 z;);o|l1@#f@%5&TZFRlQ(eYIsqy&Q`1|i$*%R|xK~qdJZ7$$ z+AR;}r3^xPvvc%hGgny?IXw>AN~~47c&pLPevns1Y}S@QPgWA82+y#4-_;3!rj)0lkFYzeM#f^3^N*wNRQq{W z{YEEQM3`zUZjzypNI^l7oEq8?#TEJ{(Tzx>uKLzVxo&ohnZL(@TU<5oqv+h9s3vko zb(|U*Uz!&i)~;vJ_vYNvle5@SLX1kGE0$Q3sHun=Mw|NH=~cBYk($`=MhiYU${Hiv zdlkO{>8P+Xn(j!%53mz?`lg1PUC(Kd!nBTlgo7X5g^%PRpM|}uij=fzzJh7*Y@XAZ zb@Nv0(h7>kl=+#+WFg>a2qi>M7KjJmB8O24d+J&1<4MwQgI#z z{o%MM_o3NewE+J~!m~^=%4U4g&j&*gQrq zbc%+>CE2HnOJ4D>=?ZTD{D;_QRGH0LgaHLI8J|^Bnp@$u%pdx(Kpe5}H+VXYt@MuX z_og5uKiW<~?wM5!3WHo`!mLroa)#-`cI+R19DuT|vfk+-y9zIVK7BO6DAFX1U{v~&+KFyA7;r^jt+a~R*~TeOt49m4?!oJ5stemy-<%fgC%`? zbH$d;wz#I-GPP0<;&nMfsEgZZlkTk?&lkap&+d$lrvXD44)vbr$EDId$VlX$gnwqx5VDP<_GK!rU>Qvp2xU3Yfw`l(Y$_vljh{#N9E&ToAaGHAfEb0@t1!8CmnRao$gfOCs zel}>iO^hs`h6uvD2A|RiHD5NF{Bln5-6aUBBCZgy(Ea$Hbm3bgN%-<_iFkGUGF{%O zORe>Ex44=hOw+Gct@ZX+lP4Ts9g^p+ADn%r(%(*l^NHC^b4R^OFCrn$im2xIP>9Z= zKGU6R+&-QaB@6QR@+o!f2A50~KGs!1&piSFd*Y{DC%RNB#$83XF7$)8BS$G~<%%7Y zF&Bv|XN zS#WoLHE#8Z(*em5qrHR8Y+ z^27H8RoyN{d!Ol@Hh z{^BcrCGD}%t3adpVZB*JO+N(<#@Nb%XEEjoD;Soft%wMDxc-56pR0>Sb%ZLKu5Pz>_~R7#^CkU3)`91qctekv zs<7@^Y^bY}5)Iy|1u#H#z*z0`?>V^x|43uOEIZ}PNenc;tLlG7&nFCwIW$t|{urZ=(Atww#^_m5T&EU28j(bx|@Rsjx+Uz%kep0ik zH8=G7L$Nz={0ICUoohCp)wvPA=H?(KB|Pqmo~lh-=*4(fPFrp4nG^pGxjWtKF7kdQ zkFvn+<@`Pq2!VT2VzocgO6UVQ?lRXq@h6mxkfU_5Qz68|VKC3r_pW1IuR0sY#^r2y z*NcfsiZC%KeQoph9QH1U2eiwAdM+{3OvlyzrIn>wxxOCvrWgRWZCmg{_6w0HdaZM=ob!Mubd78NBo-&fH8Y`FP9k2qCl&yhu}qHYVn#bWpK1BQSrssYHG1JrgFH+&w#!AB%Pz` zJh08SepFTsX24%9l0gqeXlg^xg|j;t_Q$nuIuQFA)Ev4v@ZKrAgfqYJn>=)s3Dj{r z0x$nTHyPq>bN5S~bQf@V593Drs3aLYHq)uk8X1#k)qwOnk|OLwng{l=ldQ4gE`m0b z=V_Dh_MQiR#3xFO9X~=9JHd@S2SY>#PA()q8dmGcGq#)t@vn{{^()pb&cTLK^faQt~oD`pOuK zejTEkNigt3&0{*~s)2#~R1;>kOK~KeHWH6U$4fXSxD-ynl*8q5Y$#&nw7whPc?bs= z3A+d|p7?G)TjhsZ5(W^~x%EXDm4GUHts2W;T2?_oc_YEHEnD!l-VSHN(LQ>6Y0xqT@70ZK;Onvc85f9zi|~VHXjfoSVG_nx`1&S z5c;~_pP4V`$p>0O5c5w4m|v4N-ETw?_dtEzr+h{SK*IeeJh+m493W_jh?WU$Dt}H< zt32JaygLfW1sbjMGkLn?@!J?7S)J!be+ml5q zr&6h^EGcABQL5lo=B83zO6|IFQS7XGGEX$IKG+Yu`JQdRpPd>0>tuoe_EG-`Bi%7r zB>#p4iQFH`m)moE1~f$rY@9<25*Lo?YY9QP=5bDLTh#KFzG^|`s;$^gJVk)&5Jbox zg%##9r@>gMrsV~d#`02w`{t&d!dy`UNOc4QVctvtzH_A`=9gwcq~ra&?>h(Lf}k-_ z18QoSATj(NtpK!depy67gk6wByzw_VNTC1VbpMhy1S!Gm-}_?o;kW3YqD`YKgL;f1 zH+KFNnt=yC)N(oKN~fY z(@#6)ie{n-PD1`%f&FCcVr9MH^%LQ|z>^kHxny@HQz=Se*}QhVptundye3OWBm~ZSx6TUF3e> z#_0Umo_CU#(A*v{{w_4p-_L+eb{j(DQR+s&d(%c>Ch`M z*$VS;L?v`Z*nt!>RtZNo-&3yA=N=|`U#H|s^l7U*9|3nr|MS}gWCQ50GWoLp$H z2Fz!ZDuN%rBnUfyGpqP|af*zXudg#$UH^JqPy!D!7mtvz`}{!kd8m0< z$l1U{aSvTfVkmw)fyCm>=+P6buS6YayONm}`Md3YxsSj{Xr*fs2kiV~gR#Y+Z^;&f zUx1v~n~c9^BP-Wcsys>Cp*CQcHYYx6?fV5&l11MrC2aqzs8eF$pR#NM*@9CHsk{=; zlyEi6{C$j_Qai#VR-koLV^xv)+z)7n1aqiM4Yov0bIGTX$8?kBt6U8Q&8oAXO@^H2 zl%sHG#S)sU2th4OcF!_RxJQRaFgLV<^8rr3icgPR9c;j&$=RiF@#M=%8lQg`^sWR-s2haLeOika39EXbR= zq+9qnhhfh&-kKsh=y*;Fn6@#1s7Q8;-Iua2L87(eXmnqfa9GG^o4Op^jsbebrozWV zNuHh&OBUX1Z@4X4*~{>TEpV2iRkQ)`WQvUi$?`e9kwdwU z%(6uC2_T(0?*f?CqSO_TT)4Pd%nHKhDJra zBLTSj{##iRz`)i&Qvk5cJSO((R+Ca@mt5K;hda@`uu{msKTiX|No$aFvWwNTjFaU$ z@U(R*g6RY40gH0;Xi#7Kd|4I`h&AQ%0owc1#H%0fbaVKewj^1b!xf<{$vGVCAU6_S zE z%F%~|XK2$HGl&wFlRoka1U*t1-}c)t-HACrD{3KBVpBEC*K58GF3=HwvlK)ssO*J^Irv-?5EK1R5vBZ<~Ur{mZ zyK1u4VVn*%TPj1oMpau51O@!?kZ*>)l+;L8+|O(A-dRnlzQlJ@`C^paHV+%n&8~t= z9|$7M4H%>W!Qwv_QxPNDW+;R)m)_mLp)?U#H88GJbqOBBk#TN5c`L`mv`r|U4e}Km zbZ@%nY!YD9cM7zE4;oCn@b4x^{Zh30fpcw~o^kn@{aQ0}n#5?2uu#e~`rVfm1Zb#B zH3{5^!>lt89lwP^t_R}UBe$as_pEpue(%Z2+#(EABaO#U6nupp?^KZ&7t0CM^ZD+W zxpK=(WQ5>wlm3|IsrN=*2$I6Qfr6U&52XcTK8whA1Wei5&d2loDQ+t^!b#oI^e>i$ zY?djeVCT6mnpmP?<}K_cNNFm;$DB~CA}Dz1@(IG@)m;M+f=j0^NK`C6GfYgAH4tTM zIqhWZ>aOJIOHUEKo@`hPUBb2XBDD_VMrh6By z-by-`l92S_4n6gb6)p-16Q`K@dJxIt3LB176tq^P{G6UQwPbD-A@*%dc+g6JH_JA9 z6Lf5)k_hC3L?RX^QPgVHkDy9ZS%EZPOW*b9HU(h(@`PU^wE`#(BW_oJb`KU7*&@Ys z8PAIp&awKS_w3U0!_`nSHl)-5y#US4?B1@sDrjaKARN$_uyWrAQ5A$Z;0Cv0uNg?> zrQqc4i07fI-ZGg=1OfO>OzVX@#_Cufc7Rak7kR3=F^W?fYnJW_*(2(C*CJG3ISq%A4!^W+?ow&=EJ0 zy_1F93#n;3>tPMFEotl0wR^t{B2q^$hQS{>jJcP+SXqVJ;qklxUuNdg2VBF=+X-uz zmeejC7DHN7_eq=Xg$ODsDQ&5P|Hx%YIbD>)?&eGTJjIgc-0O+$ld4y>%0C!nFLGE9 zx0Qx_$jYl|v@*5Wl79*%>8%#UFRGLe+p{zP1T~uXg-vC>(F3f~(6(wKKZi@h;wQ=5 zcOd0i$CrCwk9nV;pYGB9qPKvx>hA9itfgl+S?UmEX~FylrNxhsSWa)3=e%i7lhpJF zV|q-$6F5O)^pp7gcm=+TmQ7av!PYy2I+?G$@m8$!ce;w?1IeVm3?VCLYO%)A=$9~2 zNkp@-uS-@+NFZa#q({M=4r4@mspCCVsUs$L<+gGASEz2dWx^!X6fa#pFjRUhQ|NDFHQcm7CGmz?XZN4hW#zASE0L?ub@|9C;ENM0TRul| z58VuZ+59V3Orxe($X8wn3(HB1u^E2o`A3!ida=D8(^e~m#%g$9r+_kgrME2hIc}%o z$Y(K>Xo%i1pWSWOrrMsLi$Z3lkh)eQ92%crxkTu&I(wtlE!eEX=jYw;*L(p3WGQ$_ zK76Ez;+01i_a9~@`%~p6RreH*`SWs*fO`w~c?0X#ql34CoOn}7>h8UDXioFmPlDtK z?t~ChIX^{H>QTv;PkP6r+FTWj8XYT( z%S41y809MAN|e-|S^+-zE}!fp5$H{&n;TW$RMe#Asgn1|G%@pbgcU3R=l!H27xvw) zf7ooTIZva58;?p-mY+OwKhehdk;GLHCwbCTM>P{V0 z{0dR`X-A_2>L<7NEIs7ScE7z%SFKzR;E<2HSu?!8PZwG0{H^LYpXE#Mio12Hv-pQ( z-`q+3=oM2qud;CD^n+0JM1>v;#4R$c6YNHC4(FIEHd1s}vAnsb9r5(_rAc$n*h^a~ z>$DvPg?IP?jN_)ggG;wfCjkM{vs6~_4sgk-3YYKu*(q4xF;PXyz{lYcgA#rYCmw_N zpl4wPg4wCf@emIpbLzC5Wo%gf1CJmU3%J)yfg@k2G`wF1aR6UDTlX&_eZ0>j2|n6V zJZksITWGZ_{6r6X=eBve!#@Ly!D{yx)&>MJc6Hfq=QV&ALq+FN)LEn)I0&}@H%8<5 z{e_*IMPk=eDC*|?mX9w$7xxb|!F|)b$|81&4?!MYKj5}=F6N=)9Y^k&d{y$3YFEN{ z`!B_WW6)dnRIJ;lG@msLr3Hih1#jk~c#!@^InLjlxmQ8u!7FqHa$Z#x9>p*gZrR0b z1xzYXXjxMfeZZKIa-a?N#D}5TAEA>id!6^Fl3P4TKE1Cq&2{!?AgSqg){|Fu^kE*w zr^E9e)0=x7X@eHEm9@tUQyQA`Sk%u)Vs;8k*hlg!pF&fz0R6{p)t{nbThZgfb^*D& z0h(4aKEepj`e6Q!49?}Foy0N3{+4-PYb|G7y!|opZ57{aMzts zx6eo2$-js;l;`$uQ-8nO0RK9u*OR*uf0(;w?3+HH53ruhMAd%^dr#%KheEL?`~O~J zVHp5l2yWesg26pFK2ESAe8h??Z0&lB-C_NYcV#(CAJpfhAh@v7K%o(cqyS04#Pr1u zFHpYO2;U#m(Cq``KD?FmebUbRCm%_PF7D}`$I2z$s&&x4rmXo@jw@gD`XyE8B6 z=`M-?8P#H@-1J?Rq$sKvapj+w(Y_#ZIpV!sIC=;PR zzkw83QiyZbPzDTBCk5T^7H$+KNfoe~j62*m=dcS4R5E%6Y371>F?h)4-zpQ1n>aXd zwBSW!o83!-iDE4438KAfnM>UW01Df>ja*-~Z7vjL%PoD3D7V!Hvo@v`UbX5#<;D$y zH6QX!0T>O9K*ZzLshY_H75pgdk2zEO=?CE7jt$IxDuD<-wkU!Xiy%RA_5z`+;UeHQ%CEP0AHM-sq&kW!O_)IK-;CU?uxz+{cHZ=B3+9^E50qWzP(p*2mhK7|M01FMs))tA^F$~>7Q)&Y|ichCwD~Nz34A4E7a;CG=gy_}3Hq~a*^XhEI zIZgE6bvDgSphZ%blL<&TJBvUJz@Gog@bc5xzvtAFjAG+y>qj{DK|_PPn6QEMl^24N zU`tUT`vVkk2NbNK3nJ9q! z{}%@Rzq#mtyUHHIYeko>Yn=Z#GyQ+WZNHsXZJrvPdg~|jR0xa=bGn;9Oz{y(6H!eS zsz&*+;xrc93F>U9l#Wi>v1(JaT))`b5D1ylxBZf z^doAIbgU%M!u$gfQBk@UlbH7Kj2SZ=+Lqq$cIUvk4(Pf+kV6iX7!rWLG?32Id4;jxx#d?jh)kp zDh;Uq^xHdl2nhsH>?I9*cs0S3VModPwndyR*{3IS0mePUieBsV6mGyc36LXuCg0g) zL6Y?8Bg3>J4Db1I)8%!Qu76+CO8AW!Tha|}EcWHpwMUyT&vPqHt`TN3c=*MU#F767 zQ>+1Bs*tpkR5^825j7uu%#WOt=qwM<6dCim3sjBEF*x{>)0pX*^1CLhjFyWc$rs(I z!C$->sDe(5pCrG%kJu^sYt554!k#RU&^wn*j-)3i0k@KkeEU_z1Z@$U6^0rYU9KHG zvTpt!zyAopZhP^Lqc$_4IuP=j5nr zjE*=x;VStto|O1>l>L<>g$9|-LRmiNL{Z~=8l>J0|GP#+{EjD^{b{>yyb0NLfA42m zP7?_$LHYoVs0~lVpa*=7>hG3$QSQPZ1q4~X9+3p~XybXF3a_+yN#NrUa*1jI3cxwM zFeO4<0E`@pv#4A_h>N7Ok2wmK&s|_bA-c^h-tX!8mi0ng1JrWD*kgvmBrTOLH?$E4 z*M;~yKQkRyGfQ1Tb%KfXT^3Frm=jpM+J7tVgn!8TW7b$F#AC+v4|Fl)@DvBIy z($}aDb3~Y075wCNCE8mL%0Vz!Ol^FwljUt7|Cmq>3kRY`S77L|2{?c!JA3SWjUjeh z6^4>9SjM{)k&iA zHgni16rh%fl>OK}ve;TN13{FT17um68I%pi6#UbbY6Qf@IxLQBHY4!5(O_oZah!@s zw$u-0v*4OAR-V`&RKnMu_{-BNZC+2)+E}M^WaIF;iQ)WlJAO#%0WB7Myk+vzvhpRUwd3huI1GPsoaVW;R@`?P_S8ET#PrcvbYEK0%Epr`#ZdS%2gse|5Hi zIe|D+-Gas3*LLyG+=+Hq=(9%`NIGvgwx75$Ycm*9Cr*p8bhHhwb^(p$a80shzU=}=W zvuL>G%)+H`=uJ$aiLI|qy+fa7*pwS)<5+vxcgHfcyK_rL%RN=R-_3Ce&gE zAfh_%uA5`<6GK#-PAUBYCn$_tH(kuzm7Yg11N?kbZRr#)cx9z3h*GppPq%xA2$P8} zXy3U3!n+bJ@ed_MN4TOx7{#EZ_NE1{jNjrfUtzkmmV3c5vs@l-&a3VB z5YCV0%i*X|SuI#=GVLRE#$zN1;W8q}<~`5szI#9&y1}7$NIq0a@ELI9v059!ZWfW$ z1*F_-nZ9ni$@O)ShSqqZOEx0Z=cOob7Y7+YIUdgz@4JbM5t#Y>4jh1%S}r+_U+1NG zi4gq-R$6J#k&`8%JU7Si(D})dA{8Le!N9pRAp^F zMgYCwCQfsV|B4&T8bxHMAyQ_HnB@xekC+Eq(fY#70;D*8f)1S$3)ZVO;j{v}Y>%~j zUWboZmU{U9rSDcOUvycFKVLG>GG4W1gf3tG39^0iC#6Em`C&`8m*;uhV6|Wvpa@8g zhEc{OUUon4v~|~lZu+sC*@_vMIohfC>WYSwXorLVHkzxKII;3`Wkj#?qUq0W7{MMQ zKdpM0I0yExh4)e`pE=u=!YbVrRwr7oL|DM;~2ks1Pmd_O)<>k1=!vXfRCkMTFnrRB_iD860_i)xhlMvW)ECry1H}mr0 z8X87q^-QHIl<4RRotO89{WbU;=^6de4IM^sGI}k!vcpW4HAae-r25{Q$)+Yn&QBA- zkOgD+5N5(}eCXKC$A`y0TXxM9z+q%N+2smo(U!GsP%c@RvFZ1&)|r5L&EbA}@5g7O zE#r1Ph2&aJ-IYb-OS$sx-9Y~tD(W+A%^xcI?OE91?V{t%cgpP$rgD{A)OJhvKB=#g z#jW3&=b!!8Pvk6lZ&qvlU12!Y;*LwW)bICFY((ypiZ-tUy;>Jxog)1KSjywGa*F3$ zR+_SjiqAByrazxfOYx2rDKigV1iIH|+9$`c?+UrF+gf|Mf}(5=w6t$)G{+j@SqQyN z^WNq7|m$n11RhKd2g(9kZb|_RA{=)tmn>dNeVNY`kEedIbg_=x)(Pwm+F?)Rq8=8bm z+n&NA#@y1MV9LZX2Xew?>;(&b>$;3(BUxAzZ*-6&Fb4x~GQEu*eX?zk@W0Y~iM*j| zG)fWGV&2*``n&yc?sMP!-AF9F?iGNrG`@cOvDFcD(-)1cX!Gy+za75XNH&RCIq4rn zju#qoyp7_|;@NLq3o&Qv51I0pCd)m;o(yC;9(jLoxJ~Hj900-$$VDla~O= z{l1Ow@>eIWqSv*Yfa|#=v+IY;eD_(l7p02JPaZf4X?7VXx@KM=Z&pnUO3H6R!TX2W9x)LgVxl;Lm$AkjMMt3y_!;g zFTIASrw_Kr0G9Z@y{8DxmaxLPyP-aeJ(P>D#5v~HCY>ekpuCPvO?bO7xbij|d>z+s zPqS=%`h;rzr5&tf3-{Tu0wZqo=0(+jY&@?wL(dKid!I}VeU=RSO(F`uOcPv({0jOj=@A-|KN()Y7$Xu-IBWJ+Fz|j+WaIwS_^|<{*ccRL`$Y z4X%Iq+nPx_&|AI(kX?m3RkJd@O&%f!6Ky&yn7(h>s13ET7h#adUD?1aB4b?QZL0sH5!H zL-en=Yn{D6Ob)-uwM^qQ_`McifFKvDyXbq97uVv(1se^)dg62hpf%O`b5)G=LWNo) zrcVOxk(o4hFjBzTm&AkP`0}s%4E|2f4a2OK!>6uyvZV1{8vRZI-p*r3$qW<(wG5SX zWjgcL;+Esns~i2I!rJPnZKSyTlRc%9mB=Wa+A6n4MZYqI(+vs7p0wNQo9vL3fw2tz ztsHLjyZkPFx4W3AkZeIgle!qSNnSj3;O;@)s(MwvxuVo3%-c5+fT1m-y1cds{d?G65GX2+)5gOabI)2;WT?i)I7;d9+gMaK!0Puerg@z2&eH6HcDQ1Uz{EQKthbpY zJP#g`uyDM@fmnvCzx=&tTpksH;z)8~BmFgD=Sm{{-1PUkEu1SLPyd!v&eg=c~@%Y62urFDu0xZw}B z=!n7Rrfc{m1LjW+VWI``Di+}CNfwa~jkmUs@N^>@3U1Fo3a->Gvy6o-pm+_TSxH zm`iuASA~D%DWjzNr5!CQ4rH`k?YummWO2}}GNZr6+rn!RF9YWp8Q_aWHM?;o zj?Ur-B+_-rO5vuHXh@6V-HRYX*9L+x>Xufvf+$BCI~F|Eb|6RX`R5Lvy4IWU@H_*Q zY>SUgCi!Z!iiA;S5^iCE$@#>JvxL=4Hr;jth4b2F4EG)2#dbN4e?L)n(u?fYHS2o- zo9(g+uNZCE?6FaTBcl7AfZmQpPCV!(m6_i(4G{5wb;ySv<@*?)`i^c+_*XA5m7Qtfp0uIU5PTQf(ga00V>ZY^3F zG)^oPNS?Fp;$9DmAyFr+rxEcalVQ>}Vnm2~A^SLJsBs&zL&vDCMoHbsSj^O8i%C)_ zZ4S$-rPy;IwG{iD@{;h0$#&6i(NP$CkaQ01UL^NAYf{*q$`1NZ!(c!0g`}qv_x0c<{*-$4EDEswWm95Hkk7(V*qAkFmK_fdq7O$XhW!5oVdRS1SGcc;pu+SqS=Z|^Hgx-+-D7Hz`sKe=pSS&kv3vKv5_=MJKmQz<0S!0VXo_xuH~j4E(|cL1gHLJW(cSL9FYutv;>_87H^d|RG(Vt7~hF6#5iz-&VT$b%}c8l!btCZ%nWc$jirX%WX+WafNobOEwr- z{C-_$^2kZeU)E=9_UgjFHmPo%4~~gvUjA^Ndl1S3wZyHal%(~Bj!=;V`7%+ib?QEo z!_8j5vCiZ(f8{k_^VNvinb)%38qK~a*bOZ%LCuF)gAMZ;(N{wusQhxL$cFIxQ~K+A z`R9E$3Cpk-wyM|7lKuF%vvTC|#v)&ck86W8#+Y$9zZB$_UK8$!36EAn$w7|0g#`X<=l7S$+O614za z1}+G54Q`jeAps#fz6#3taHA~N}JN6<_#!1J^~0j%8WG)~!?b&pmyZY zDK#}>nLw@hov( zU%1NIRbZVjcOPrDM@#>1VYKKke4r!w?oqO5BrQk`o^C?X*GfNsU}9Hrq*cO3Pwfe5 z{Oajk9n@<_tB!s50DX21`SfZpU!`tUUmmT5r=OFq)HRf03aR0;!H16JCgbt}OqsI6 zty6Wn!_(PzG3pMM5hC2r0J6pv1u=}goX<9l^4)NGqX8m3B1Io5}! zYKi0q(Dw)8m-8+TyaEjcEx(Z81KKEVpUeYb=`;6I6_7-INY@7BN{ zZ-tgiluVw)44HAj`42!pPCvVRwUmH~$My|oJ)&D^gtzc~V_lOaL7!8UJ5 zfabMkjZ(yZ1_kBVCo3R{{lnt6qQ|}&@EPz2&A6YX^Er=e?aZs}ud}_p`kv|njl8#9 zjZKh&7!yAb&Gr*}w$ViTKdeJ~>Z1@xa@47#g8_agKR>^6Ym-X<*d7MG)*B^2@=Btc z?nhbj_GVF<^P4CU!%Vva76kZ0^74aOQ>6V@V(qb^ifQ@I*!jF(1E1hsCWhuN%grL| z)`F_?!Uv5R)AvXb`MJm4>v9R2TO)=)Ajg^ZtG`Rl*Ql&}9#nB&VNf%+0IlLLu3|7h%Vn z)XzBz{CGs4rXRa#nyr4V>2~g)g_x<9Lpqx5#$JY+|8_n*O$ti-wex{{D%9zI+lH&S z`YQY3uTN+J)y@%;<-bYe7`KGpA1Plk_RcAI&zN3~4I*|*WV%b81N3eg& z_kM~_dtsen5`oK5lBh^KU(9nPv{PU&%O+Lz*xvX&;cr(A$~oPndVEFqJ$I+Nshfu> z1^)Wsv+9WKuPJe6EMMI<*t z6M5@;=YBN&R$>L$>~2dIsK_$us`(2HLO_r9RNNHa#4D?q{7i*nR4G-{D{BQVM38^Z zVsiWdZmAGt;?_jYqJHVpE0L?O7IDisf$I~JL#^mMc4n80I8kF= zo{bndh_pqJ4REgfCLmX!?R1+#z|{gErfDj&%bSG>6&MmYlo~YnN>?!MN#3dUl)GIO z!->2-*F0p_HPY*19iWniYpzu-sDWH&{Y5P@OO!IvooV}+fB0V_tl-%Dz9S*v=})#Xnl;(>*9lvm zVDg4WE!Ls8Fun`U%x!jL7zSK?P879ob{PH7A7b?UQFbbG}JM ztsN!wDvXAXBs;xYT$(Q;j5QS!=f1f|w92%4FX7~d=Vg7!crx$ccBW5Tm-i*(I?aZP ziZk0Je9eP$drC(9%JzZlYtfG!Ow?10=-5m>0+L*9h6_!kP*SjJ_fMX7o=D8aG~4Dk zW;p+eq$5lG1$lm$`P^~xf>u&3=xLq)yxltGdAqk_wib_Qs1^^p)S+TY$E#3Ei^B{xd;q7Ms5hc6)gF!J0Z(6bi4Hm zr-+o5y5mVc8fTxwc%&-ran(Xb?y#7zxxvaSK)92krBV3#yrl^b2oEi0uM}TfD->{V zVaK3V6a=m#QlBWeR(=U{$Yy|L_}3RxRu`)F%u>HV^nO!Mw)37s?-^@FMO+nAbf8_~ zYPnEcy(jv5!~qI06wHikDZuQ7w&_*&{25wWHC=9!q?qCjFNcXu;fljULfv6F#Kx`G z^q8!yrnV%cW#pOoB2B7tbVtx(7(c@+>Q>eTLu>o-a%>R2LTgUkpfcM=%AaNI`IKGh zi@o3VW{W?QM>~J3D0?cVB*H$z$lPEnYO(li!?|AG|HI}dSV4C7&i^<#tUj1Md6 z#rkZn@#6jZ?Mxkj>TWWBXS>7yQjD2cpg3?b9b@ZCf2rSA7u>SOyPcy`h}tVV6%Rg0 zp*ru8n;ZYdqJx)MBP`#7b!UWVP};qSV8#fT_^b_?I!f9wu?t@#_%7X1E37f1qlRmI z%nnAel_`c!2Z}K6H6U1cNz6Iddz7(UB-4$q50j4+k~zeC&tgIDJf2@pUUw~3G~iKB zC5CrN?-*PkdI%hHagZ50o793A_QNFGWKMtY$gx%dSPmo^(oCPrWlqg>rc>4#6DJBA z3%%XX%(No?&ah0ne(Nyz7uwvA1)u=sH_o4Gcjg>7?%}uVPjO7F=S~v!SK2#X=h|Un zHrMN2|0Qo8*5(JF{H+5v?qh77=ZMy}+z-4}(kmBD*Ul`BNkBy$53AnTs&PvdY<<#e zrStovov0GuVa-rPB;J?+jkfN{b9h@4^=cqXo>XHE7y$GBMT|T19qyV-8BBO58+X}R z87XZZHA7yU;Wc^5{FEEh4>|3l@3I^@p@Dt3Z_GkXav>+)`H5+MQ?mx;itjs*4(0~LTLx_JZPX3n5|>)QcBEQ% zB)~!@&CHo89BA{L92qx>OwfotRJ%Oy6+1(^qPF|T-Md3JakA9>U>YkF-%udOj0tsM)Sp>H>#c)0 zaxn=Zo^KYBjhLUDL-WgRzf%E4+Pv5P%=vSa|AuApQOsUQk{1FkBMh)wyw~#J7$n` zBAH;_F|R07epzohGKevDbH4 zZGLIHTpSa(cGRKZ+M%+N6A1d&jwshJpGXi^(RodEsVr+#4L<|tcb?u!Y?yG_V7T0Y zBSX~x6wF3_{&9Q@F6ct=wlaG+!2|efD9>^$_p3NZ%po`Gwgvg(!x7I4TS4jABri#| zHVl)KbU;I}{p2cgnOr)w(DUAC%uVXPl|Qy6W`%b)QqC^Zb27uCTl{N?Y3`cb)BDVwsG=MNpcZ~=QX;D#q zmbBMz77+%I`^B|~UC+mtj$PwuNH}w?V&_BV!|+pW^odkf^_suKw3DRyJmzmXMg3mi z)CXdXgmfvt;0~E4X}7AM0L_|v_Shg~#1XbRmrm$9@@tCQ+|LW z%oxM@hW&=$_#d+UzQ6u+FpJj}H+`Q99xR`xr3=0xeDukD!wuXvf=k6yrk;`?aB0lT@3I zT7Otn#o;GLLqlxddTM=LH`4KUKG&`ncerY;K5a-0?>UEW;F?a1Ar76D#)Z}|x14mk zRx@g4$2E&cj-;;mHVhG-`$=li?}wuApI_Q^wG%YKE8+LIoeW03@(i;;5hDk~vh&Ck zBj!v87X`v(!!Tx{kQn>uR-Z6U0-QY3GDfrfXhpuZWF?^eSn6<>^Wy7)lsNbZ^sVKe zPKdDage~O-npEo)?f7WH9D@$s4fjkThaLY2*P;3Y<&|47CbeSQ>+PhtX7yYCfFmP%&L`)HQJ%A zORdh&CTPhb`Zboc<03>z6fAKWY2#Wti$3z-pTNIcs{UGjfxr54f9O5Qk&%*waojq2 zRr?|Vw3#((eG3-q*I$WfVGvz8O+l=oxC7MKzj|%;IlkKE_4_Nf(@>c*L?x9MxP)1dhdAult#KV+QgK*X38j+0?Z;6S7O@klZ zE44U)eC^;jD>XTGeD7nq&A;J`j~skvcE($pR@yKO^vlkIuXxsEVmLxm}6`D5~V} z)*gw(2=0i<-ZM5m8DzD%g2&6l8xJMkApEVe((W0?!Lj6-LvhO2R{<(CCY<)mr#Q^f z!W5fhXrUTMinZjv=@LKp<>;B8{{)H`>rNsT$#d|sP^uZp68qWtWS;!)X<=r7^U zqjhx}5fksSKv5SR9CEs^CpJhsC;JCAX29Ox`EZDJWu@U;*O_RfPT?z7CNHehbhF}8 z`<|i79u0`!4T#}jexmn-iTn32LLE^4#(5PY;c1o|*`ennEdL$pj{f4gil2i%O43}` z@FwqF@kAE`Kf8PR1y@<3-r(BF^1cfS|Cs?PI&>vDak;nRAAhL6xN#h&%Uxy6+Il~d z{1SKiF4wN|Mu%o4EG8_}mz5b_h5CrmrXuIh&u2NHA23@eV#{#;`Db4G!hvD6^1fbY z%=Y>D45bdk750!J6TMiFx6j)Tuu@Xb7FgPh7} zpyT!8M3-{eX5oV4Zyk&NZ6zyz^TB@G!xPA~9Z{@7f?Z-e#r-at+2JK?XM#q^@Qbl( zg%3CK4eNC&Y1s-1aV{$s^Mxz}$c}I|ZNNLqYDPU#mmc0f=AnFJ6ZdHpw>~4)sqs&B z)zP(&#)W1oRQZ$f-Pd-N&1GGx*FCnPWNK((XrMy?0jdLHy&*?49X9dlG0+|!ohu1P zLLk1E5&>xT*4)oXH#4jd7tW)bZl_U3HZJ8uvAakE%7*-24`?V+XCu#;ht)=ckOZUB z{xm^AA2+-oUb+`Ca3Gx{$~@2C@gOWO`>rfo))OE0VV&hrDWT@{#COc?gcG@l4+T~0 zv+-bvvB(22wFmAz6^ja5oA52+DVYMYQMz?O2J$jq9o@^IfS zUAj}knER_)P<7*dlJ@|rRQM*72?Ov?bX_1B=L2Otkh;$kFGEXbV-ZKcsd8AHT5~~a zQ)qW@jDx9$h=5z!#>~+GGpTO|$KMQbEi6w2^C@#@sVOm_NP`i?bUkAa#@2&{@{ke& z$L*5is1&!nT7k-$HsOfJMzaW7D zLwq6RHe%qe;t{KSP2bsu`2cn-&a5EV9Y<6PR$@H%%}ZeVM-d`<5qC|l6lq<6s`qiy z_CG4|A?0by9kGwIe@1f~tzfiGlnmOYvLx zk*W_3?$`!-H4N*oHW}|Y{$efLECUa53#D`Zw4C0EN`)PNm_VYR^gbW`co>%as?p*( zwFZmNl1 z&?9I?(t*NS;Wc8Nix7z7GY^3^s0eA|OX34rkGtHU`$Gm6hk>N)&VK;HnNCdH3se5a z$f4?4u<^{N=8}ucb~LT)R!=o3IbV8`(*uX#mttn_v?r4w4xGG&BPKejCq_f(B_#Q^ zUj?fpgptws$J|gH%aLo(7y6C0>4tLRWectGAquQXp`RS+$l_eG?5SP4^wVba_-WO* zIbT2wfnJpg^8LvW3%smMOUp9S5Qks%hS*eAVd;u78!49V(aT@6vCH_VD_7t+`Qza> z?gKCS62u>X)EeG(QTECk*S}fI8-lMMa6X&;^!l=PTLE*DHE#FD@oWYRwlHcR4oliY9$FmbuNGP!?Vd5xjWLX2ZGnp6G%$yC#f<&sO8IK!c?-E+wf$HmlZo+CxzRQNq+O&s{R~X zMR^Gn6pH3IjXz zoQXhd@3QX_z{$sd8vv;A40?|@f9Lym*qVNqxf)A;X9K!0T_wMhyq2^P^wb9hFXw#m zzq~bo+Qh#VzbX8C7}c-!cZT~tR!b8~Q9h2@&k^a9Gy2yLnp`!Hv6`y%_6+5GvgxV2 zq3qyki46<*p1@F`P#Z+?c=x7io~CrKsB`F8^Z~3`q>C!GJ;?M(_wJ__>LH9`HSeZR+*i})oia@(` zWd)xw=W)ox^LKGLJ?(+>TDJHkb)xUc&{^f-$vUvU=6bpTj0&t{NU-NI(>!d7e`QIvVrwP@HCBjbX=hQFPG;w;BKYMiWk4YTRkbt z&4fxIeb}6q-=?W&B(1B-dPE`z zEt&EWncWbj`;4~NEjlOR5D8gtWw=PD?-TU0Y+bs|SS-%@spo-t8|-vf;>xcr?61xx z`m6A`!}!8Uds82cxt`cN?P5RcaSWt*ZYjWrv+-E%szs2YYB#z6lIBpYIG5NGRiy+R zK=0~y!hZDV_lS&EqrE}fPUQ_5Ch|V{h$-dpL~iRAU?C~XftB639%6F}f4+1O-qa~Z zXgONMd43B4)BUlc<_Kem#6Uw9>7lTso)h5>NdTWVsv_{OQvi_`kc%1@m;RY>2F$3T zlW|e9FF1?GV9OxO;+AA#M0Ui8!)|Ft9N*zrp3vY<4TO*oLT`CO@kEKN0Hh$L6FQ6y zXn8NAX6l=#P`_lrFNm*rSyh_ri=pv{4$TU)xYrxlKP$huNcg8_7@)51S&AI&^&(Dl z9s~Lw=O*e(47XL$#h2OPW7X-)l4u{fb7~!rm$?)1zG|4C(?|{F`n04*4#|6JG=z~Oj%E18e41U)R}7iz+m05!>#4Sxwl#| z$8)$JU;oM?40-QkHSxe8<^IDqiaX{u%AT%X(Ws*ZXdd{LZfAO+h*y<~an*SwABL8P zWw(}YrTszABs6xbMFb~)P{Rny4>sr#W9<_5%u+laPi(=ZYgbg&Q+)1hPVVbx{y2Z} z>Z_|ULQv^crT3&+Vq z_Ax-gJhUj4;(>R2*-wSMBQ>Uf9H<-?@k{D8^c)WuIWUNc2t^B#7$Q8u`pjWrT1JjG z21?i!7@?mFM(SPNIDgS^7}=M#+B?6mQad?(2>?|P8%s>zV6&JwsaEc-;$xG!@8`md zE6%^B)co)XL5GH&qpuSEpIr+_j6WfSYwu#sl|+*(V@Lw?{KZv&3bS#&prAGcd5O0s9fP$OmCCXc}Ww7x2Jn! zZGV+h%eCpttod+6;bhI^=y&|op%wT7dfY!m95~21E5WU0DI93-!Jufns#w1x>u&$^ z&wBx^xrem09Y!&nLiZN-xcMMuHtaTR?%(YQo(KIuJfs2iv|)j?47MV22}{kUz%;4{ckXk75ONx6=)n(T8)vX-K+3Qm_Z5Dsb-|ocCXMU|(icSn z?yj(A6i)+eB@wQgbPil~gcx5l^VG=U8ux(veOp_d}V}5Kl)+hY!z!g3irxEVC9r#!k4Rwu+CTgi^wa#+wtY4@?6oZigUK= z=9fw*wXIvZ>%26+!iQo-DN`ptRU#6P%Rlf|0XJ9yNYIr9lV$RHSkU-Va;+EbX`rxx z5m#LJx@^=8i94gg1+Ko4aH+sqDm=UC=aY@EUGtU?A;uIbE!~x5+H2nn4XV%l#1<{o zbWo1Cs}Z1IRA7Ej4q??avoR2=EBp(d+x$M#WkG<-MG-AeibO62w_*7k**IQHF)0BtM6{< zO>eB?@TRB>>h6`|2>RjE{lu!Sbm>IPp@SCA^h4J8;->j$Aq5_PuA?a+kU*(!#|?HI{U0>)D~P^_-kb>Y63l~pW*p76YeTqB^BkM8f|sZJM+2KfJsC)>++qQ4>X6s)gXOg=sSi@L29Y0kC}_-_Ue8(V3HTVfS-`8$<=WC&(;banl&bPD#$ zxzb|xs^a?vM*Z$;d@~{jyt3~V_;+9Av|xZ}*>H3Eghf;^>@Y0FaB|a)lawHwc_}qi zaaAqjc4-ps!D=;&ko;>?q_%N87^kLM_Lg~)J;fid3-5jNsP+xIkx0o?!=5q3!#$v; z0VCOa$FDkvf?D`iM$B$lPp@096KG6pFqj4O(&dTB}D_@kS7iJlX&K%ah8^qq7e1N3&;k~PaN z$O|bWrPTg>qb8?OHt0sdALt7mJ9}mz;i-CjZdtz7WhIJrY-m_XTutGrI=DY;nadyF zy93_DS1g6{U^cp}^OKDa!l+{Q?jx0B_R=;En>MPLJ&TVG4k8H73t~>1@WGp9Ya`L9 zry_p|aSZdp({!R{3C6_K-I1B=*e)D*A(e7j#2y67x%WvWAUZcvcEgrqm3lC){_a-;w%)YZ z`xE&Su?W53t@rt5%U#gFrFEH6oDy^&n-N6$cawrSj(Ad|RpLY(HKCij`)zi*v*Y`1bRXNSV(D!D*;C!#WM*^_^ zUR)Vw2!(J@`>X?^@8Krko&;r$74S{tMj01ghYmcXvM3!!f$v!)kPw)X*Yl$Dm)J$rT>`%xR&qitWPes@dMI>1&up9`G)WwBF zo4VajW>?wMUb1*7u&e+=lVa2#c^7l}K-haJo? zvbK!}k~2$ke|##lwFLTgl~LknTm@riXZf@jPQZbR(C(qql{4WPv#sa2T6nR62t_AG z4nLcSf#YDMm#|Sct34V;L!3d^CCL!p&LchK1%)Ps%+28*0z?xl_h9$yY*JT8ix ztfFb-#)MqQj@84JjRy$s;m=^~Wul&WP8}px6`#HeInSiR^@Z}HL5sR%jY%}dI|tF> z|E^*HTroeD@lP#qrT77Hvm8}qzhPtpZo)U!QHPOFK)sX2(nmq%Z6>O*YXL+){P$pU; zAx%&b$DadSMf-mM)I*pl;VPUS-Dvh#X*L)lro#R}9%(5VtIbnS;IJ?Gm)9j+VBGhn z53BUkBj!`3`(bMxm^_!(a|ZHr$8UN?cp)mOr7+C`mF_p9m{s`Sni*<~yh#Cn^=yk+ zfb&26G=3O`AK#u<)@{hoi5!0kGV%MK9j4%5MRer}oBD0T;Vhkb&F6cq=~hvXfY9$w z@q4rLN}UBBT;-KbWN!K-=SqI`#O=5e(ag{30A>&Of9NZK?TcgY)-oM`i+|$T53MV| zRu?ZT1-<$aQ>?ibYT^>gsztRmJ^=HAsTyO_SOQhU3D@tLegA!0vGrijVfaM>M`Ww)8sQ$?Br6RpCQ%JP>n+37) zAJG9XcbPd^;I~nPLV|hXrPgu=HOra9d~zB^0)@WDSr@QttNaG&Bsl?J1AArqA)ykq z3R%ceh4{HQ_)~RNMG+__7_V{&iMM^YnTZR*=5Tp>=BE9jT9-d(V~Wn92)x96pZLJ1 zT(FU)5$36K^((Fj4Ye%4h$+6ZBqTBaKr!8d&z^0ZcWO-VEH!I7jFhmpTba)0JD8U7 z5Ak02eND&)Nq2RanD`nJ#x|b5!63 z{Z;pxOv|kA1-VppwBm3cvH~TY^cAVBVxaVuKO{%%Ga;6Zfqu`As$U&68Y%k2BkcD! zTxP;MfcqKdwiTV#$SS+9Rf*-}b{$Rkbl%@fFvZrXh(GQBf+9Y*QBIzbd-Y#eiW<~u zVAym~n=Im7OtlrSTRi@Y?1c}_c-!Fd`ke=5k^?sFef5F=hBxt2wU7Q9eu7**e>?I+ z{5ORIUD5A270_jchJ(l#w5akjxtN0Zz#>owl4=|MITYyY_i}wOI61ty9q+llL#BA; z#qN2&;_D(W@PG~(guXq$b8YtJ_}%9}6a;kJr9?tNic(kX6-C||i{PFq+mo$BUg)Kp zXp0;o?Z1hQA41>yo#YA$TD`5WrXg7%9zUD=*^9h&;gcXy8ZCM^%#1pO3^7^|J$e~L)abnpgE4xG8Zv5v5HY$C zLP&Jch5M2BeSd#__mA`3bMC%tud~-a>psto1na6(lHVpLARwUB)KGyE5D>yI?&C?X zUX1BY++QvhGQm0qs`BbkJ|S@s%vOg(3Q(5?^d*2fWeA_Bpr|w;sRk&?1Ix+)NDA1{ z1mJ>iWml^t=7CBU?Xqz|P6;p-g-KNd6Y4-Q!{QBlU|J3skp!}7fJSy;P#kdL0>-6P zbj_w39VaEMfNr%jQP7J@XP`$A2xkHkX@F>Yp#4F$@+M%zHyzIk1hQb&cTAO{vA1IduoJE0>hsr$C?p9kbq`R%f>ZYkJfo@6H8h3y2@)P6XKN(OE1d=8JiPv1q zQ&}sNS$ttQZzs{Z4}l%RO^yTfRkfkOqSm>q^h=G&Sc!3@*w7}IiRa@XPqSa5GRi=Z z2#_wA^mw6Aba+S9G7h{Krabps$;=oA>1)veD%C@bwvSw3^~E|4#m@s@f}dMzeR%PD znd!+vpy_$G)=>0an4Z!G>$BHZ5A!6ZOM?{8(cC?cEug~kWfF!zGL3RmKu9y4^LoYe zl)J$XEzFe-pC($mID-=&mqx0_eoglL(XX{Ot^q{d&5ATpl$Vlqi-|_+>8Kk-3xVD} z?QS=&cT+ap?}zpTf@Z_Drdw1uP@{bja|!Ms+FOT1+Zt330)RFZR)k*n3Vwa(UAFz9AAMAJ_1bWE)~ zO?A^k$|l=Z(!xyC2vL-)AisGJ}vgARwU4)l^Y5 z@Sa|ue5ifLlDTiEuuGs1VoqbFk)-(vjDs`^-bmSO56N<`vu?hlAnAFKm}FymMJ|~ z7*igzj=W2OKw*u=VeB6|VHkJpE?=?L$HB0Zpwbq8Y8&On8Jwm}?G?jj>?fL^LBn$M z!+!Kvv4n3tMb5_u^?`G13Wg|$ zdX-&h-N#tdsjX4rd|t4)X(t9htOMcRx#IZR@pGW9Z!>$M(2vl_P|Sm_}qS84HEHy z4!^np@YP%|K=AvB{90!z&a~)3Ylw77G8|Xb*P(d9(N7ZFENprcOA2sPR?^dD2CtXd z)8seMIh2NxrhjNyJ2OhPb6>M24=gj@=Ga<8TWHo2Hu&;fCcM=a7VU)=`lvotZZxpW zr@Ztvn`x)5$XCvq$woK7SSs+3BZe2hnD&~w?fx^($G+93oSv^(H~rflF2<&%5@|nF z=G zwR`U4;}aLl?y`E2_+P*`H-suC#I>!V$AM;_l%BuG0V&`aD^xiH%BD07!Hy&zg@!gX zWcaGuU;H&LEN>3uEzjEy3 zzulf#SIxQ3s;^xXx6oS2_P?n4i3uipULXqH=3VcnsMmfTlTg)lb0u`UWJSg%@_y3V z8}kX4zRQ{jSd(qVn(mvm*7)GJmUG359a z!G!{z-`Y*boKmaHSz)F*rO_SJVTs%tD7VntJrC+^FkTVGKMx8nHP34d>o;W=Jo%I8 z=m7}Hyga$1PxtDItku&mR5K=~3FKBKQ3VI)W#jf0qm$3=MLjSL57?za-MaQxnjMpA zZx3F0A%&1f&t$ixY&T^_2bNlF+?nsb_2zI-`Hv&#DL72FHJAv|AYVqv^5}E%<{7!6^^y{FuJ@qeSj#F&oyxRO{T7s8`M7qKgB z6vQKppgoyMs)~ ze^muD8RT@6RDtKJuUD**AI*UCsaYO8QLAS1tw4){d5O&(!_Z$SE{6qTFx1jZm7fkb z^$HtUw^d<3%D%q$b0g1VZJgp`B}ryR1`jOXo93m?MMX)(n?Y0&AjY#VAEC?CHuQN@ zjKaZzQ<4qFjdS;l?{yP~pWNU`G&859yT|arP4V)LF=fz_lIHIpsnQ%IDcF;3$HtfU z<4Gy%S0%bPHB?o5(3(j^Ss@Ie3U9DeYGe7nn8+s>d)A`yUJN;iv;Oe4>-PeaeATVH z?9FH>ku=Tf)k{4LZi**RybSKmey%1Ue!98lN?LbEk}!aM1Wz6X=6<;*LG#P=e{pLw zJsA6jhYtG<6Y`SlZ1-u3ZhUR3!PvdP>g;##&|$pG60Yo5W;z*AI&@|^dQ63ls5wk; zPn+f^|E?M^u6pc$w7ou6_sk?R_s@fown$petSJgRl1Un=|A?$)iW^b8mNUGYt8tof zC=$`es#NXM^OR!~9VIN-ic6Huxo!WcHg&S$N8Y`K6cz>4=4>y$*a@=~X5gMgX z-ggRv9EPZi5^xo2CX{i-OdI;Y2t0CF)`ChpO*gx*klUa(*=nxL%y+GtS}%6bZfbCq zl8awRQghMd=Co>erY8-Rs+{Mpdwxs=p({;r>rH2;hc6}x+)sC|u=^MuAEUoy&Ej>S zV~2=~zPsosR6u48xe+E!diH4px!n*Al!4!*nh?U95w;1jV@1Ks^b;I+=yd<;o&nm; zmbBb+!+=zlL*>w2e)(DMZux@Q@>1WXN<4_8+7`1$#DK%f$J4z{t& z4!_7G=PxtTTUqS+u93GuFd1vLBXRYCPX3`HJMnQK#wR>^b_YCMb}2tsbxmQ=_6X0e;h;{5pnde-8kjj4Ksbn`pfoTogozM8E6UV z$*$J+dmfV*h<-`s6^ay-{IZ1IUAJ^&-Mq(?B7A(zH>y4jDJ1>d$5Zz~d0|c3ROvEW38%CV z+*gJKhD=}4fp>qS=AsAxIb7@%p6yhnQ3%iN0mhVB&SVxD(lfz9CU@JxuQ}nQ;sbiW zdj2{H?JN-l1nz;*%J?$%Wg6P(Z-#Ktm%F*Up_^;>`UT0){o2SDv+7(Za!*k|%z){M z3vW~r|EQS6?AmVBazRS`G4t~<1Do)ZM3~kM1n07rOVnUk4XFX{)+uVP?$S;&F+$e3jem?n2 z!J3|7jkEW4u~u(*O0PEnp)uUlTtbPYF1g zgsD_Bzh(y$-!b@AS7E04j{4v3i?qNzOM!XuXvHMrIw?s);i1APiI88qBZubgH}`@4ggR z9Cx9aebUitth6>F)jU-SvYvWX>5NL|^3$avW}g<%)%IRe7b9`2G8kr)X|O~)e?ppw#t+->c~ z!(uf8$qfz;MMZTcL4g)!wMTX$__~3R7X4%L?=%rZV|~}whCSCG)z#84q$^EKH20r6 zBKcnih3_<)rAUDRDc zPl9FR|D23x^q>AYe776;l}&iaO%gODJ=1YU;yf?U8TSF^?9|SGBaae3vTy+8&^HLa(+ z?r#whaej1OG^!*#YMX7LNUd63u#rROMD%RMj6XhGELXs8*T9*N@!K}u@>)Gr44KML zdKWre(?*U9Ew068(?6QhOky75v5}^m8}<2{K^j*nOGLE+VS+DlJO11G%)F)@@b%8V zESo~zkDS275_YjiW1O;M)clW96wnqSLgG!p!AqLY9d-CWw2bUudhEGg+n%l?Jo7H_+RnFCtauv@er zBD%7gEGr3zZMlXI2tKLkZe;6*t5?4_hzPcjLxvZfrzTwU@3fFDT{w$4H){<$e1qur zTB{G}C`N}r76c0+4jj0u%M7&ro;*Dt_d64pL6v@c=h8fsJBZ8v4sL5RZp%kc<~U0` zC!VCjzu$!a;UDF(AH*=%#4<~emPl~k~V?Qkq|8%Yo`lv3t#xNMboG})5>}V9%CW#o3 z$zn<;Pkxv#%TtFY0Dq3yJiVQKo#D>y>|dSYRM-Dl8zDh!i<2Km!b)~2r{Kcr57Q~d zrk?1kr3)+Ahap+RQ3ho=_>g!me*3)HhAfXuWNOic-jO|&j%{f>1?JP6*?TrqKT*ry z!_34$RsOWIP_B*URs)w6G zHvV;Q*-chlr~Z@(TW~XVIacI#N*9OzTockT4zA&(Gr>K1pj+LwP;G5j67`PrcOl&r z)m%p`BKpx@)OTvFh4t6ebZXVm0k0pDM9S8625U+5I;)I0-TkY&K$CVp~9*X{%tK5PTc<}0B+P?8lCEB zhnKesK&CXnjYsiXz~Fm&9d!xNSSzocJNIOC%}-=auk=I>YN0d`C;a#hj_c8H(p$M& zFJF9kk_$5up8H0}^~r##PX@BP@GX^M%KJ)?g*xs>18P zJElPAirxmIzVV{6bMOrA_8fR-VdV(5h$U1=pn%*f#AI>GP}r`aONCF>EhIRavSbx` zgze@P})Xgru0>u{KOWP56`XS?G78+$X+$LHS}x z7EtVvce*8e_M3q09=h`TdZkIPt%=t<%TCC=T!~~LG`L<`fppmxqwhDr8yettb!JW9 zSl1&_seDN`Q!&o@OIo89Ai$SK^up4o3Z%re6 z;=(F9IMFkxYyr}^#6s)tB%v~lqBkH|jxp(a4RI?b_VHIzBRulwMmjdLCbYy1DaZI3 znJ~AiPJdmO32Rz?kJVus?L+c`I))cNO0H&REUZ)EpRFRS(IAYB)FrU(>nZ3a8ke7J`ySS;s2QuMofm*u(o@q>49C?=!$KFmG<7F!R;aWM|!9EQt%p|Nv?&Y7}vnTx3WA?Maq@N4qhzw@mh>T!t`|lN=!-uTwECnx5fE=0KB*bCvW$~$$!_cgmXKIx pp7IMgjQm!Y>EPur488 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/status_overview.png b/documentation/docs/assets/localizer/translation-workspace/status_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..8f32cbb9b51f28e25d3dbb01d286c61d4b5ca45b GIT binary patch literal 16682 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 z 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/translation_comments.png b/documentation/docs/assets/localizer/translation-workspace/translation_comments.png new file mode 100644 index 0000000000000000000000000000000000000000..e075f6dcaae9faece637e6d101f5661ca52d3f7b GIT binary patch literal 21020 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 KMNUMnLSTZg8W{Kh literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/translation_readonly.png b/documentation/docs/assets/localizer/translation-workspace/translation_readonly.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebb486131c8de15a675f878dd2eb33d8f328e8a GIT binary patch literal 8314 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/translation-workspace/translation_workspace.png b/documentation/docs/assets/localizer/translation-workspace/translation_workspace.png new file mode 100644 index 0000000000000000000000000000000000000000..a33a9cd1042dd160e28338a553704ab3e9968987 GIT binary patch literal 139160 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

    03{uC?9Ic0Oz&< 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/users/permissions_project.png b/documentation/docs/assets/localizer/users/permissions_project.png new file mode 100644 index 0000000000000000000000000000000000000000..b8414656cb1d492abb39ccfc96fc9f9bd607a1bc GIT binary patch literal 12354 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 Zt$S$;ogH|11%q~KiS+*!$doyr{x4k*z@-2H literal 0 HcmV?d00001 diff --git a/documentation/docs/assets/localizer/users/translation_locales.png b/documentation/docs/assets/localizer/users/translation_locales.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbacf87e1819b639e36e36cb26aae1e24bd2550 GIT binary patch literal 13374 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 Vid add-on. +``` -## First sync +* Internal admin notes: use them e.g. for developer contacts and information that other PMs will find useful when covering for you. +* Deadline: if available, enter project deadline in the YYYY-MM-DD format. +* Priority: select priority level from one of the 5 levels available (Lowest, Low, Normal, High, Highest). +* Contact: select the L10n driver in charge of the project, probably yourself. +* External Resources: provide links to external resources like l10n preview environment. You need to enter the name and the URL for each resource. You can also pick one of the predefined names: Development site, Production site, Development build, Production build, Screenshots, Language pack. +* Visibility: determines who can access the project. Pontoon supports the following visibility types: -1. Click **SAVE PROJECT** at the bottom of the page. -2. Click **SYNC** to run a test sync. -3. Monitor progress in the **Sync log** at `/sync/log/`. -4. Verify that imported resources and strings look correct. + * private (default) - only administrators can access the project. + * public - the project is visible for everyone. -!!! important - The new project only appears in the public project list after the next sync cycle AND after you set **Visibility** to `Public`. +* Pretranslation: see the [document dedicated to pretranslation](managing-pretranslation.md). -## Tags +Click **SAVE PROJECT** at the bottom of the page, then click **SYNC** to run a test sync. In the [Sync log](https://pontoon.mozilla.org/sync/log/) you should be able to see if it succeeded or failed. If all went well, the new project will appear in the [public list of Projects](https://pontoon.mozilla.org/projects/). -Tags logically group resources and can be assigned a priority. To use tags: +**IMPORTANT** -1. Check **Tags enabled** and save the project. -2. After saving, a tag management section appears — create tags and save again. -3. Associate resources with tags via the resource section of the admin panel. -4. It's also possible to set a **deadline** per Resource (not just per project) from the resource section. +* The repository must include at least one file for one of the locales. If necessary, you will need to manually create it (it can be empty). +* Once you verify the project works as expected, enable it for the general audience by setting Visibility to Public. -## Read-only locales +### Tags -In the Locales table, the **Read-only** column marks a locale's translations as visible but not editable in Pontoon. Other locales can reference these translations in the LOCALES tab. +Tags can be used in a project to logically group resources, assigning them a priority. To enable tags for a project, check *Tags enabled* and save the project. + +For each tag, it’s possible to define: + +* *Name*: it will be displayed in project (e.g. `/projects/firefox/tags/`) and localization dashboards (e.g. `/it/firefox/tags/`), but also in search filters. +* *Slug*: used in URLs for tag dashboards, e.g. `/projects/firefox/tags/devtools/`. +* *Priority*: like for a project, it’s possible to select a priority level from one of the 5 levels available (Lowest, Low, Normal, High, Highest). + +![Tags resources](../assets/admin/manage_tags_resources.png) + +Once you’ve created a new tag, you need to save the project in order to be able to manage the resources associated to the tag itself, using the button highlighted in green. + +### Resource deadline + +Like for a project, it’s possible to set a deadline for a Resource. + +Go to the [resource section](https://pontoon.mozilla.org/a/base/resource/) of the admin panel, then type the name of your project (e.g. `engagement`) and hit `Enter`. All the resources for your project should appear. Click on the one you want to edit, set the deadline in the `Deadline` field, then click `SAVE`. diff --git a/documentation/docs/admin/adding-short-term-project.md b/documentation/docs/admin/adding-short-term-project.md index da3b8cfad3..46debc4df1 100644 --- a/documentation/docs/admin/adding-short-term-project.md +++ b/documentation/docs/admin/adding-short-term-project.md @@ -1,44 +1,46 @@ -# Adding a Short-Term Project +# Adding a New Short-Term Project -Short-term projects are used for content that does not have a repository — newsletters, marketing campaigns, surveys, and similar one-off content. Strings are stored only in Pontoon's database. +Short-term projects are things like newsletters, marketing campaigns, surveys… They do not have a repository, and data is instead stored only in Pontoon’s database. -## Process overview +The process to create a short-term project is very similar to that of a regular one. -The process mirrors creating a standard project, with two key differences: +## Create the project in Pontoon STAGE instance -- **Data Source** is set to `Database` instead of a VCS repository. -- You should **test on the staging server first** before creating on production. +First you want to test that everything works using Pontoon staging server. -## Step 1 — Create on staging +Access Pontoon’s [admin console](https://pontoon.allizom.org/admin/) on the **stage server** and click **ADD NEW PROJECT**. -Access Pontoon's admin console on the **staging server** and click **ADD NEW PROJECT**. +* Name: name of the project (it will be displayed in Pontoon’s project selector). +* Slug: used in URLs, will be generated automatically based on the repository’s name. +* Locales: -| Field | Notes | -|---|---| -| **Name** | Name of the project (displayed in Pontoon's project selector). | -| **Slug** | Auto-generated from Name; used in URLs. | -| **Locales** | Select at least one locale. Use *copy supported locales from an existing project* to speed this up. | -| **Locales can opt-in** | Uncheck to prevent localizers from requesting this project. | -| **Data Source** | Select **Database**. | -| **Deadline** | Format: `YYYY-MM-DD`. | -| **Priority** | 1 (Lowest) to 5 (Highest). | + * Select at least one locale. To make things faster it’s possible to copy supported locales from an existing project. + * You can uncheck the `Locales can opt-in` checkbox to prevent localizers from requesting this specific project. -Click **SAVE PROJECT** and verify that the project behaves as expected on staging. +* Data Source: select `Database` in the list of options. This will hide the *Repositories* section and show a *Strings* section instead. +* Strings: you can enter the initial set of strings here. Strings must be separated by new lines. If you leave this empty, you’ll be able to enter strings as a batch again after creating the project. Strings must be in `en-US`, and they will become the entities on that project. A resource named `database` will automatically be created. +* For every other option, please refer to the [new project documentation](adding-new-project.md). -## Step 2 — Manage strings +Click **SAVE PROJECT** at the bottom of the page, and you’re done! -Once the project is created, two string management links appear on the admin project page: +## Create the project in Pontoon PROD instance -- **MANAGE STRINGS** — view, edit, add, and delete strings. - - Click **NEW STRING** to add a string. - - Click the trashcan icon to remove a string. - - Edit the string content and comment inline. - - Click **SAVE STRINGS** to commit changes. -- **DOWNLOAD STRINGS** — download current strings for local editing or archiving. +At this point you need to repeat the same steps on the **production server**. -## Step 3 — Create on production +Access Pontoon’s [admin console](https://pontoon.mozilla.org/admin/), add the same information you used on the staging server and make sure to select all supported locales for this project. -Once validated on staging, access the production admin console and recreate the project with the same settings. Select all supported locales. The new project immediately appears in the public project list after saving. +The new project will immediately appear in the [public list of Projects](https://pontoon.mozilla.org/projects/). -!!! note - Unlike VCS-backed projects, short-term projects do not have a Sync process. String changes take effect immediately after saving. +## Managing strings + +After you have created your project, you will be able to manage its source strings. On the admin project page (that you can find from the [admin console](https://pontoon.mozilla.org/admin/)), under the *Strings* section, you will find two links. The one called **MANAGE STRINGS** will lead you to a page where all strings are listed. There you can edit the string content, edit the string comment, add new strings (use the **NEW STRING** button) or remove existing strings (use the trashbin icon under the comment input). Once you’re done editing, click the **SAVE STRINGS** button to save your changes. + +## Downloading translations + +On the project’s admin page and on the Manage Strings page, you’ll find a **DOWNLOAD STRINGS** link. Clicking it will download a CSV file that contains all the translations in all enabled locales. The file format looks as follow: + +```CSV +Source, fr, de +Hello, Salut, Hallo +World, Monde, Welt +``` diff --git a/documentation/docs/admin/adding-terminology.md b/documentation/docs/admin/adding-terminology.md index 91db5f2ab7..0c07e0a580 100644 --- a/documentation/docs/admin/adding-terminology.md +++ b/documentation/docs/admin/adding-terminology.md @@ -1,25 +1,22 @@ -# Adding Terminology +# Adding New Terminology -The **Terminology** project is a special built-in project in Pontoon that powers the glossary feature. When a source string contains a recognized term, Pontoon highlights it and shows its definition and existing translations. +To add new terms to Pontoon, access Django’s admin interface at `https://pontoon.mozilla.org/a/` (note that this is not the usual admin interface), then follow the steps below. -## Accessing the Terminology project +Find and click `Terms` on the navigation pane on the left. Check on the following page to make sure a term does not already exist by searching in the search field near the top. -The Terminology project is managed like any other project. Access it from Pontoon's admin console → **Terminology** project, or navigate directly to `/admin/projects/terminology/`. +To add a new term, click `ADD TERM +`. The next page will have the following fields: -## Adding a new term +* Text (required): Term you wish to register. +* Part of speech (required): Select the part of speech that applies to your term. In some cases the same string can be registered twice with different parts of speech, e.g. bookmark as a noun (“open your bookmarks”) or as a verb (“bookmark this website”). +* Definition: Meaning of the term, or explanation of what the term is. +* Usage: Example usage of the term. +* Notes: Any other notes or context that could be relevant. +* Case sensitive: Select if the term should only match when case matches. +* Do not translate: Select if the term should not be translated (example brand names like Firefox). +* Forbidden: Select if this term should not be used. -1. Go to the Terminology project admin page. -2. Under **Strings**, click **MANAGE STRINGS**. -3. Click **NEW STRING**. -4. Enter: - - **String** — the term in the source language (English). - - **Comment** — the definition or usage notes. -5. Click **SAVE STRINGS**. +Once the necessary information has been filled out, click one of the three save options `Save and add another`, `Save and continue editing`, or `SAVE` to register the term to Pontoon. -## Translating terminology +This term will automatically populate in the terminology projects for all locales for translation, and will also appear in the `TERMS` pane of the translation UI when it appears in a string. -Once a term is added as a source string, localizers can translate it in the Terminology project like any other string. Translations appear in the **Terminology** tab of the translation workspace when a matching term is found in a source string. - -## Downloading terminology - -The full glossary can be downloaded as a **TBX** (TermBase eXchange) file. Click the profile icon in the top-right corner of any Pontoon page and select **Download Terminology**. +Note that only the following fields are displayed in Pontoon as a localization comment for the term: part of speech, definition, usage. diff --git a/documentation/docs/admin/managing-pretranslation.md b/documentation/docs/admin/managing-pretranslation.md index bc26978afb..3008c035ed 100644 --- a/documentation/docs/admin/managing-pretranslation.md +++ b/documentation/docs/admin/managing-pretranslation.md @@ -1,51 +1,54 @@ # Managing Pretranslation -Pretranslation automatically translates new strings using translation memory (TM) and machine translation, saving results as *Pretranslated* strings that can be reviewed before going live. +## Opt-in guidelines to enable new locales -When pretranslation is enabled for a locale+project combination and a new string is added to Pontoon: +It’s important to note that **these are not strict criteria**: members of staff will evaluate each request to opt in individually, based on their knowledge of the project and direct experience with the locale. -1. Pontoon checks for a **100% TM match** — if found, it is used directly. -2. If no TM match exists, the **Google AutoML Translation** custom model for the locale is used. -3. The string is saved with the *Pretranslated* status. -4. For VCS projects, the pretranslation is stored in localized files outside Pontoon. +**Criteria for enabling pretranslation for a new locale** -## Enabling pretranslation for a project +* Request needs to come from translators or managers active within the last month (translating or reviewing). +* There is an active manager for the locale (last activity within 2 months). -Access Pontoon's admin console → open the project → scroll to the **Pretranslation** section at the bottom of the page. +**Criteria for enabling pretranslation for a new project** -!!! important - If this is the **first project** being enabled for a locale, you must first train and set up a custom AutoML model (see below) before enabling pretranslation. +* Less than 400 missing strings, except for projects or locales where existing pretranslation statistics provide high-confidence. +* Average review time for pretranslations in existing projects is faster than 3 weeks. -1. Check **PRETRANSLATION ENABLED**. -2. Move the desired locales from the **Available** list to **Chosen**. -3. Optionally, click **PRETRANSLATE** to immediately pretranslate all missing strings for enabled locales. Otherwise, pretranslation runs automatically as new strings are added. +**Criteria for disabling the feature for a locale or a project** -## Training a custom AutoML model +* Approval rate drops below 40%. +* Average review time for pretranslations is slower than 6 weeks. -Custom models are trained per locale using Pontoon's translation memory, resulting in better quality than the generic Google Translate engine. +Note that disabling a project would always involve a conversation with reviewers for the locale. -### Step 1 — Download the TM +## Enabling pretranslation in a project -Go to the **Team page** for the locale → **TM** tab → download the TMX file. +Access Pontoon’s [admin console](https://pontoon.mozilla.org/admin/), and select the project: at the bottom of the page there is a section dedicated to *Pretranslation*. -### Step 2 — Import the TM into Google AutoML +**IMPORTANT**: if this is the first project for a locale, the first step is to [train and set up the custom machine translation model](#train-and-set-up-a-custom-machine-translation-model) in Google AutoML Translation. -1. Open the [Google Cloud Console](https://console.cloud.google.com) (requires permission). -2. Navigate to **AutoML Translation** → **Datasets** → **CREATE DATASET**. -3. Import the TMX file: - - Click **BROWSE** in the *Destination on Cloud Storage* field and select `pontoon-prod-model-data-c1107144`. - - Click **CONTINUE** to start the import. - - Wait for the Status column to show `Success: ImportData` (a few minutes; you can close the window and return). +Use the checkbox `PRETRANSLATION ENABLED` to enable the feature for the project, then move the requested locales from the `Available` list to `Chosen`. Clicking the `PRETRANSLATE` button will pretranslate immediately all missing strings in enabled locales, otherwise pretranslation will run automatically as soon as new strings are added to the project. -### Step 3 — Train the model +## Train and set up a custom machine translation model -1. Navigate to the **TRAIN** tab → click **START TRAINING**. -2. Training is a background job that takes **several hours**. At most 4 locale models can train concurrently. -3. Wait for the Status column to show `Success: CreateModel`. -4. Note the model name (usually starts with `NM`, followed by alphanumeric characters). +To improve performance of the machine translation engine powering the pretranslation feature, custom machine translation models are trained for each locale using Pontoon’s translation memory. That results in better translation quality than what’s provided by the generic machine translation engine. -### Step 4 — Register the model in Pontoon +To create a custom translation model, first go to the [team page](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/teams_projects.html#team-page) of the locale you are creating a custom translation model for and download its [translation memory file](https://mozilla-l10n.github.io/localizer-documentation/tools/pontoon/translate.html#downloading-and-uploading-translations). Next, go to the [Google Cloud console](https://console.cloud.google.com/translation/datasets?project=moz-fx-pontoon-prod) (requires permission) and follow these instructions — in case of doubt, consult the [official instructions](https://cloud.google.com/translate/automl/docs/create-machine-translation-model). -In Django's admin interface at `/a/` → **Locales** → find the locale → set the **Google automl model** field to the model name noted above. +The first step is to create a translation dataset. In the `Datasets` panel, select `CREATE DATASET`: -From this point, the Machinery tab uses the custom model and pretranslation is ready to be enabled. +* For the `Dataset name`, follow the pattern used by existing datasets: `dataset_LOCALE_YYYY_MM_DD` (e.g. `dataset_pt_BR_2023_09_20`, note that `-` is not allowed). +* Select the `Translate from…` language (`English (EN)`) and the `Translate to…` language (e.g. `Portuguese (PT)` for `pt-BR`). +* Click `CREATE`. + +This operation will take a few seconds. At the end, an empty dataset with the selected name will be available in the list, with `0` in the `Total pairs` column. It’s now time to import Pontoon’s translation memory and train the model: + +* Click the dataset, then navigate to the `IMPORT` tab. +* Use `SELECT FILES` to select the downloaded TMX file from your device. +* Click `BROWSE` in the `Destination on Cloud Storage` field and select `pontoon-prod-model-data-c1107144`. +* Click `CONTINUE` to start the import process. The import process will take a few minutes (it’s possible to close this window and return later to the list of datasets, when completed the `Status` column will say `Success: ImportData`). +* Once the import is completed, navigate to the `TRAIN` tab and click `START TRAINING`. + +Note that creating the model is a background job which takes a few hours (when completed the `Status` column will say `Success: CreateModel`), and models for at most 4 locales can be trained concurrently. When the model is created, store its name (usually starting with `NM`, followed by a series of alphanumeric characters) under *Google automl model* in the [Django’s admin interface](https://pontoon.mozilla.org/a/) of the locale. + +From that point on, Machinery will start using the custom machine translation model instead of the generic one and you’ll be set to enable pretranslation for the locale. diff --git a/documentation/docs/admin/messaging-center.md b/documentation/docs/admin/messaging-center.md index a995f0eff3..c7824c8a92 100644 --- a/documentation/docs/admin/messaging-center.md +++ b/documentation/docs/admin/messaging-center.md @@ -1,53 +1,58 @@ # Messaging Center -The Messaging Center allows Administrators to send targeted emails and in-app notifications to contributors, with advanced filtering options. +Pontoon allows you to send emails and in-app notifications to contributors, with advanced filtering options. +To access the Messaging Center, click [Messaging](https://pontoon.mozilla.org/messaging/) in the page header when logged in as Administrator. -## Accessing the Messaging Center +## Message type -Click **Messaging** in the page header when logged in as an Administrator. The Messaging Center is at `/messaging/`. +Once in the Messaging Center, you will be able to choose your message type at the top of the page. You can choose to send it as a `Notification`, an `Email`, or both (by selecting both types). -## Composing a message +By default, emails will only be sent to users who have opted in to `News and updates` in their settings. However, if the message is considered transactional (e.g. an email about a password reset) then the `Transactional` option can be selected and emails will also be sent to users who have not opted in to email communication. -### Message type +Note: Notifications sent via Messaging Center are not included in Notification email digests. -At the top of the page, choose one or more delivery types: +## Message content -| Type | Notes | -|---|---| -| **Notification** | Sent as an in-app notification. Not included in notification email digests. | -| **Email** | Sent as an email. By default, only sent to users who have opted in to *News and updates*. | -| **Both** | Sends both a notification and an email. | +Next, enter your message using the Subject and Body fields. Markdown is supported for advanced formatting, such as creating links. -For emails, if the message is **transactional** (e.g., about an account action), check the **Transactional** option. Transactional emails are sent even to users who have not opted in to email communication. +## Choosing recipients -### Subject and body +You can send messages to a wide range of targeted groups by applying precise filters. -Enter your message using the **Subject** and **Body** fields. +### Filter by user role -## Audience filtering +Select whether you’d like to send your message to Managers, Translators, Contributors, or all of them. -### By role +### Filter by locale -Select whether to send to **Managers**, **Translators**, **Contributors**, or **All of them**. +Checking the `Filter by Locale` checkbox opens the locale selector. You can choose which locales to include by moving them from the `Available` column on the left to the `Chosen` column on the right. You can also use the `MOVE ALL` options to move all locales from one column to the other. -### By locale +### Filter by project -All locales are included by default (shown in the **Chosen** column). Remove individual locales by clicking them to move them to the **Available** column. Use **MOVE ALL** to move all locales at once between columns. +Checking the `Filter by Project` checkbox opens the project selector. You can choose which projects to include by moving them from the `Available` column on the left to the `Chosen` column on the right. You can also use the `MOVE ALL` options to move all projects from one column to the other. -### By project +### Filter by submitted translations -All projects are included by default. Remove individual projects by clicking them. Use **MOVE ALL** to move all projects. +Filters users by the number of translations they have submitted, or when they submitted a translation. Note that submitted translations are counted even if they have not been approved. -### By activity +You can set a minimum threshold, maximum threshold, start of date range, and/or end of date range for submitted translations. Fields can be left empty (e.g. setting the minimum threshold to 5 and leaving maximum blank will set the filter to those with 5 or more translations). -Filter recipients based on their contribution history: +### Filter by performed reviews -- **Number of translations submitted** — minimum or maximum threshold. -- **When they last submitted a translation** — date range. +Filter users based on the number of reviews they have conducted, or when they conducted a review. -## Sending +You can set a minimum threshold, maximum threshold, start of date range, and/or end of date range for reviews conducted. Fields can be left empty (e.g. setting the minimum threshold to 5 and leaving maximum blank will set the filter to those with 5 or more reviews). -After configuring the message and audience, click **Send** to deliver. Recipients are determined by the intersection of all applied filters. +### Filter by last login -!!! note - Notifications sent via the Messaging Center are **not** included in the regular notification email digests that users receive. +Filter contributors based on their last login activity. + +You can set the start of date range and/or end of date range. Fields can be left empty (e.g. setting just the `From` field will search for users who have logged in on the specified day or later.) + +## Reviewing and sending messages + +Click `REVIEW MESSAGE` at the bottom of the page to review your message content, recipients, and selected message type. You will have the option to either return to editing, send the message to yourself (to view the actual rendered notification or email), or send to recipients. + +The `SEND TO * RECIPIENTS` button will display the number of users who will receive the message. Review contents of the page carefully and if everything looks okay, complete sending the messages by clicking the button. + +A confirmation will appear at the top of the page once the messages have been sent out. diff --git a/documentation/docs/admin/renaming-file.md b/documentation/docs/admin/renaming-file.md index 077cb2d205..dc041c5e5e 100644 --- a/documentation/docs/admin/renaming-file.md +++ b/documentation/docs/admin/renaming-file.md @@ -1,13 +1,17 @@ # Renaming a Localization File -Renaming a resource file in the VCS repository requires corresponding updates in Pontoon's database to avoid losing translation history. +In some cases, project owners will want to rename a file for clarity, or for technical reasons. If it’s only done in the VCS repository, the file will be imported again and you will lose attribution, pending suggestions and history. Since this is a special case, we can work around this and rename the file in Pontoon while keeping existing data (translations, suggestions, attribution, history). The process is not complicated, but it has to be highly coordinated. -## Steps +## Get a Pull Request ready -1. Rename the file in your VCS repository and push the change. -2. Access Pontoon's admin console → the affected project. -3. In the **Resources** section, find the old filename and update it to match the new filename. -4. Save the project and trigger a manual **SYNC**. +Either you or the project owners will get a Pull Request ready that renames the file for all locales. Using a script is recommended as you will need to generate the patch not too long before the next steps to avoid conflicts. -!!! warning - If you sync before updating the resource name in Pontoon, the old resource will be marked as deleted and a new one created, losing all translation history. +## Rename the resource in Pontoon admin panel + +Wait for the current Pontoon sync cycle to end, and make sure you are already logged into Pontoon admin, then merge the Pull Request. + +As soon as the Pull Request is merged, go to the [resource section](https://pontoon.mozilla.org/a/base/resource/) of the admin panel, then type the name of your project (e.g. `thimble`) and hit `Enter`. All the resources for your project should appear. Click on the one you want to rename, and in the `path` field, for instance rename `messages.properties` into `server.properties` then click `SAVE`. + +It is crucial to do this step **before** the next sync cycle, otherwise the process won’t be effective. + +After the next sync, open the file for one of the locales, you should be able to see all the existing data. diff --git a/documentation/docs/admin/renaming-project.md b/documentation/docs/admin/renaming-project.md index 00e0596716..dbfd3ff45b 100644 --- a/documentation/docs/admin/renaming-project.md +++ b/documentation/docs/admin/renaming-project.md @@ -1,16 +1,12 @@ # Renaming a Project -Renaming a project changes its **Name** and, if desired, its **Slug** (used in URLs). +You need to think carefully on the name when setting up a new project. This is because when a new project is set up, a corresponding slug is automatically generated. Though rare, sometimes a project needs to be renamed because the product name has changed or for some other reasons. To rename it, go to the project Admin page, update the `Name` field and click the `SAVE PROJECT` button. This won't cause any interruption for those in the middle of their work in Pontoon. Do send a communication on the name change to the communities. -## Steps +A slug is the part of a URL that identifies a page in human-readable keywords. It is usually the end part of the URL. +There is no need to change the `Slug` field to make it match the revised project name. The reasons are: -1. Access Pontoon's admin console → the project you want to rename. -2. Update the **Name** field. -3. If you also want to update the slug, update the **Slug** field. Be aware that this changes all URLs for the project and localization pages. -4. Click **SAVE PROJECT**. +* A slug is a unique ID to the project. It doesn’t have to match the project name 100%. +* Once a slug is claimed, a future project name can’t reuse it, so there is no chance of two projects sharing the same slug. +* Changing the slug could cause confusion to Pontoon users who bookmarked the project with the old URL. They will run into issue when launching the project through the bookmark. They will find the project in Pontoon eventually but this is an avoidable annoyance. -!!! warning - Changing the **Slug** invalidates any bookmarked or shared links to the project's pages. Coordinate with the team and update any external references (documentation, bug trackers, etc.) before or immediately after renaming. - -!!! note - For VCS-backed projects, renaming does not affect the repository or its file structure. +**Never create a new project** for the purpose of changing the project name. This would lose all attribution for existing translation, metadata like comments, and unreviewed suggestions. diff --git a/documentation/docs/assets/admin/manage_tags_resources.png b/documentation/docs/assets/admin/manage_tags_resources.png new file mode 100644 index 0000000000000000000000000000000000000000..99ecdfd5c37b5094d418082a67af21338b119b13 GIT binary patch literal 50915 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 literal 0 HcmV?d00001 From f11641d0f3ccd5a87c041ba22f6e75c2530d4bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 10:38:18 +0200 Subject: [PATCH 19/35] Update .prettierignore --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 8fa9a198b7..80ffe30eed 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,7 @@ translate/dist/ coverage/ docs/_build/ +documentation/ package-lock.json specs/ .venv/ From e2a538a24385a28fd9bcdb4d4aed4e02d6c9f241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 10:53:09 +0200 Subject: [PATCH 20/35] Fix workflow --- .github/workflows/backend.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 0ac51dbbed..9901af95b9 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -74,7 +74,6 @@ jobs: sed -e 's#^DATABASE_URL=.*#DATABASE_URL=postgres://pontoon:pontoon@localhost/pontoon#' -e '/^SITE_URL=/d' - docker/config/server.env.template > .env # Run collectstatic with minimal dependencies, skipping the actual front-end build - run: npm install From 51556b5d01d4cf128a0e15df37e0840a5c394df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 19:38:02 +0200 Subject: [PATCH 21/35] Remove mkdocs reqs --- requirements/default.in | 3 - requirements/default.txt | 194 ++------------------------------------- 2 files changed, 8 insertions(+), 189 deletions(-) diff --git a/requirements/default.in b/requirements/default.in index 9996de606d..5f2423afbb 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -38,9 +38,6 @@ gunicorn==23.0.0 jsonfield==3.1.0 markupsafe==2.0.1 moz.l10n[xml]==0.11.2 -mkdocs==1.6.1 -mkdocs-material==9.7.5 -mkdocs-glightbox==0.5.2 newrelic==9.6.0 openai==1.99.9 psycopg2==2.9.6 diff --git a/requirements/default.txt b/requirements/default.txt index c5bb828761..658118324d 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -27,19 +27,6 @@ attrs==26.1.0 \ # via # jsonschema # referencing -babel==2.18.0 \ - --hash=sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d \ - --hash=sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35 - # via mkdocs-material -backrefs==6.2 \ - --hash=sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be \ - --hash=sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8 \ - --hash=sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b \ - --hash=sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7 \ - --hash=sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90 \ - --hash=sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7 \ - --hash=sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49 - # via mkdocs-material beautifulsoup4==4.12.3 \ --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed @@ -288,7 +275,6 @@ click==8.3.1 \ # click-didyoumean # click-plugins # click-repl - # mkdocs # sacremoses # zensical click-didyoumean==0.3.1 \ @@ -306,9 +292,7 @@ click-repl==0.3.0 \ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - # via - # mkdocs-material - # sacrebleu + # via sacrebleu compare-locales==9.0.4 \ --hash=sha256:73d0d384aefa0bc96f5fd8521c08c8bb89b16a37316701323a77960accabd551 \ --hash=sha256:933d2b6e20f460d3ac2d3176295684505a42085b25e6c31944fcafbaf52f1cc0 @@ -412,7 +396,9 @@ cryptography==46.0.6 \ --hash=sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77 \ --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 \ --hash=sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4 - # via pyjwt + # via + # google-auth + # pyjwt deepmerge==2.0 \ --hash=sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20 \ --hash=sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00 @@ -511,10 +497,6 @@ fluent-syntax==0.19.0 \ # via # compare-locales # moz-l10n -ghp-import==2.1.0 \ - --hash=sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619 \ - --hash=sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343 - # via mkdocs gitignorant==0.3.1 \ --hash=sha256:d2b96ffe90eaf4fa2e1d68ad4e3f807213c8ec1e54a943a9e7105a9f7aaa4232 \ --hash=sha256:eb51b3421761e41f594758ef1f93aa438f94856da8beea44ccd043f9c2373442 @@ -657,10 +639,7 @@ iniparse==0.5 \ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 - # via - # django-jinja - # mkdocs - # mkdocs-material + # via django-jinja jiter==0.13.0 \ --hash=sha256:00203f47c214156df427b5989de74cb340c65c8180d09be1bf9de81d0abad599 \ --hash=sha256:04670992b576fa65bd056dbac0c39fe8bd67681c380cb2b48efa885711d9d726 \ @@ -936,8 +915,6 @@ markdown==3.10.2 \ --hash=sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950 \ --hash=sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36 # via - # mkdocs - # mkdocs-material # pymdown-extensions # zensical markupsafe==2.0.1 \ @@ -1013,41 +990,10 @@ markupsafe==2.0.1 \ # via # -r default.in # jinja2 - # mkdocs -mergedeep==1.3.4 \ - --hash=sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8 \ - --hash=sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307 - # via - # mkdocs - # mkdocs-get-deps -mkdocs==1.6.1 \ - --hash=sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2 \ - --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e - # via - # -r default.in - # mkdocs-material -mkdocs-get-deps==0.2.2 \ - --hash=sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1 \ - --hash=sha256:e7878cbeac04860b8b5e0ca31d3abad3df9411a75a32cde82f8e44b6c16ff650 - # via mkdocs -mkdocs-glightbox==0.5.2 \ - --hash=sha256:23a431ea802b60b1030c73323db2eed6ba859df1a0822ce575afa43e0ea3f47e \ - --hash=sha256:c7622799347c32310878e01ccf14f70648445561010911c80590cec0353370ac - # via -r default.in -mkdocs-material==9.7.5 \ - --hash=sha256:7cf9df2ff121fd098ff6e05c732b0be3699afca9642e2dfe4926c40eb5873eec \ - --hash=sha256:f76bdab532bad1d9c57ca7187b37eccf64dd12e1586909307f8856db3be384ea - # via -r default.in -mkdocs-material-extensions==1.3.1 \ - --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ - --hash=sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31 - # via mkdocs-material moz-l10n[xml]==0.11.2 \ --hash=sha256:04e11f7fc7f1932dbd73a9a50b5e6dfb1767e0d27da2451c5579e9d2593459de \ --hash=sha256:4e06e839c6c75dbad72a13672209f69893f594598887ceb52a5a8a4932b5efc1 - # via - # -r default.in - # moz-l10n + # via -r default.in newrelic==9.6.0 \ --hash=sha256:01c0eb630bb18261241a37aa0a70cb6f706079a1f58f59f2bb64f26fda54ffc5 \ --hash=sha256:09dad0db993402e166e37d99302c2ad5588b4ff1e5b814819540ca5ec2bd3cea \ @@ -1167,19 +1113,6 @@ packaging==26.0 \ # via # gunicorn # kombu - # mkdocs -paginate==0.5.7 \ - --hash=sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945 \ - --hash=sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591 - # via mkdocs-material -pathspec==1.0.4 \ - --hash=sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645 \ - --hash=sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723 - # via mkdocs -platformdirs==4.9.4 \ - --hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \ - --hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868 - # via mkdocs-get-deps polib==1.2.0 \ --hash=sha256:1c77ee1b81feb31df9bca258cbc58db1bbb32d10214b173882452c73af06d62d \ --hash=sha256:f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b @@ -1374,9 +1307,7 @@ pydantic-core==2.41.5 \ pygments==2.19.2 \ --hash=sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887 \ --hash=sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b - # via - # mkdocs-material - # zensical + # via zensical pyjwt[crypto]==2.12.0 \ --hash=sha256:2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02 \ --hash=sha256:9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e @@ -1386,9 +1317,7 @@ pyjwt[crypto]==2.12.0 \ pymdown-extensions==10.21 \ --hash=sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5 \ --hash=sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f - # via - # mkdocs-material - # zensical + # via zensical python-binary-memcached==0.31.4 \ --hash=sha256:f183bc67fd218c01ebc0bf4e9929a210dd5aa07fda53d5b627d0b443b76e2818 \ --hash=sha256:f7a74f212567e37520dd550f0d088b99bb4bae01034d3078135bfc16285960f9 @@ -1399,7 +1328,6 @@ python-dateutil==2.9.0 \ # via # -r default.in # celery - # ghp-import python-dotenv==1.0.1 \ --hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \ --hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a @@ -1484,15 +1412,8 @@ pyyaml==6.0.3 \ --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 # via # drf-spectacular - # mkdocs - # mkdocs-get-deps # pymdown-extensions - # pyyaml-env-tag # zensical -pyyaml-env-tag==1.1 \ - --hash=sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04 \ - --hash=sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff - # via mkdocs rapidfuzz==3.9.7 \ --hash=sha256:03126f9a040ff21d2a110610bfd6b93b79377ce8b4121edcb791d61b7df6eec5 \ --hash=sha256:048d55d36c02c6685a2b2741688503c3d15149694506655b6169dcfd3b6c2585 \ @@ -1733,7 +1654,6 @@ requests==2.33.0 \ # via # django-allauth # google-api-core - # mkdocs-material rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ --hash=sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136 \ @@ -1861,72 +1781,6 @@ sacremoses==0.1.1 \ --hash=sha256:31e04c98b169bfd902144824d191825cd69220cdb4ae4bcf1ec58a7db5587b1a \ --hash=sha256:b6fd5d3a766b02154ed80b962ddca91e1fd25629c0978c7efba21ebccf663934 # via -r default.in -selectolax==0.4.7 \ - --hash=sha256:00953c3c6a7e4dfd990a5651315b713d50131706c239c1f1c5b6d4a75a11975a \ - --hash=sha256:0e221e7403005e343c636ed51846ae20e52b81be24becaf9195308d24114c061 \ - --hash=sha256:17f7ba5a21714d450b4eea0451608a36be2bba8d327990ddbda812eb3f36fa51 \ - --hash=sha256:1a7016db9c55ae541f1669a3433aee03fc0a1111d70c84aa5636a5a6b9499854 \ - --hash=sha256:1d72c67fb56639433f130b2e44a783f4d0efb862a285413b9fc8789a851f5383 \ - --hash=sha256:26e24768ce86d376b50d311c1bdf54c5445139ac90cc5d955a7703402d2e2f7c \ - --hash=sha256:2a0e9b1e3b1d091a0133b44b3967c79db8de73d99efe38af85bab615775aa4e8 \ - --hash=sha256:2c275e5e5579e308a09ae77922c468a8ca63666534d00a42ebfd912f3c842a2e \ - --hash=sha256:2cf39b5200ec82ae75b35549ee71fb5b344ba0420b1a8a49f3fb38d14082c463 \ - --hash=sha256:2f19bb52c27f526d89383ec178daa31fcb93dbec90106bfb3e2d43c2970f3b72 \ - --hash=sha256:3799b39d60266f7d4c48f322fac8eaecc6dec38f4342d6d3b17085d11815bcb4 \ - --hash=sha256:3840b79f5f39744b95dc80e3b428cf4e49b86d8c6e9cbb3e7df3e702bf240cce \ - --hash=sha256:3968f272b0aa93927b3ba17104c0d2980286fcb0def44babb87dab3673936377 \ - --hash=sha256:3e3dac7de3864701a18cd6c4806d07944a5a48d1db2f107a0ce8531f72881462 \ - --hash=sha256:434ee92be15534c10db308ae9ab3f93a224e2a60f1c0ab9453a97ee09b056ca7 \ - --hash=sha256:48d95f3bbe37caa6fe341992ac7b4fb5b7efad1ed8bd939af67b6be0ccd5634e \ - --hash=sha256:4cc5c190277ff34f2e42be473ec5947ad5d87c07a072e25d0701c03b7ceb5b12 \ - --hash=sha256:50a668ede8d3f2dbe872c2713a28348e9e3e154a49118b898568243bfb356c96 \ - --hash=sha256:5a613760d2b890d7befd2e585a37dd0bdae9e23eee0cacb15d24adb83232c94e \ - --hash=sha256:5a6735711f492532a83df6d501e8647feea48d893e703f0354e61ba868757f9b \ - --hash=sha256:5fb1c01d39570f0990e8e2a2037e3f0cf8d193da6ea9ca1936d5818d5cf6a260 \ - --hash=sha256:64de787422ad342b35fef86e488d8b76d70fc3266cb74dfc154d4a89291c62b1 \ - --hash=sha256:7134b119c011e18d1e914d5adbb8f953e391649b4af734fcec61dad691a16f59 \ - --hash=sha256:771710fe52b082804d959944e3e0fe67f094ea1bf81669b4f654b957a7490d95 \ - --hash=sha256:7cbd1143920b7bd1b80e092d5a16c97fdc741b0325a42862f20edcb55ab493e8 \ - --hash=sha256:85e4ada1c4a3a69e503c9866e74bce24e716bd0ada060c7c2b56677d4f073928 \ - --hash=sha256:87bd651514491b9bdd8254e71295e43b790575021b87ebc2351ed6a2aeaa9313 \ - --hash=sha256:88344c8764f3a2fbcae2fd2353201c330920943c2da34a16e9b063f918deb7d6 \ - --hash=sha256:8ca0af7156315d9193fac699e8e4c3281ea6dccc6262eed33b32001a633e57a9 \ - --hash=sha256:8e7f847b38195c45f6f6c966df5d8600ab9d522df632d61b28db2edd92deeb3c \ - --hash=sha256:8edbec5ad8a51cb60e6761231d88d34ed3a8158db3ae1f448aede2d146111d0f \ - --hash=sha256:8fa541a520cc6213d754ec747ebbff12fdcc5b9f6bb7615784486e18697209fb \ - --hash=sha256:90fc1146b9130a4891f3fc1f414113ccbee419e84c7f1c5948071f88e46ef16c \ - --hash=sha256:98007b5882c968f5f33f9e01d088fbd796aa7debcbbadb68e95c130a7cecfd19 \ - --hash=sha256:9bddcca1fd74a7a92d53f13116b244fbd4dce84ac0dde60b6ee722212840fe2f \ - --hash=sha256:9c70be8f4154a80b8d435bcc3217c04a82f928849fa2f6acd554d24c5b911db6 \ - --hash=sha256:9f29ad4506fe84152391998ae5b05aaae80d237795567009a518496d0daf4908 \ - --hash=sha256:a151972637887614dad8ea77bd36ea992fef1fb42cf246be60fe2aff83080537 \ - --hash=sha256:a231801ae248bdb511417af568f2890768c486f6f5dde4251c6e7eadea637103 \ - --hash=sha256:a4782cc1e162ca422a325302cdad344cd853cfde19004b870e5b6c3df651abab \ - --hash=sha256:ab50b89f3d9b791696bc04eb2761c617f6c5979d57cde1ae93373a9d42d3a6ae \ - --hash=sha256:ad71d3b31ceb49820787d19d983e2851835ad03bbfd302c6e243a97215e36557 \ - --hash=sha256:bcf6e535cb2b2c0e5b35eb0d5bbe6d17f8d2cf96108addda1491cda083b798d7 \ - --hash=sha256:c0d6a2ad265b95a9c1abef15fedcfebf3d6ec250520b1b64a3d2887dcee17ec6 \ - --hash=sha256:c74313af027e989f3b8432c8da6511a34fffd7b3f2fec3cb7019ab32e6e11973 \ - --hash=sha256:d322e725e0c575cacc8ba2f0041fb8405dc3932bff9073a563f568c6ef3a217b \ - --hash=sha256:d3da9e1609cefc9bb403f62c2b03d2f5622cbe3057c2f06e308a29fad8ae5654 \ - --hash=sha256:d9591ec48af16003a79db89f070688fe0fb68d2c16ac6b479b0ee8b78eb4e486 \ - --hash=sha256:da9afa778ebce19c48de1e6fe5ff5bf7c719cd7f9cd14e5d530bd00ec15b149f \ - --hash=sha256:df8a8db519484c868839f1d36be720feeb228c8f75cf7b745e325db183b319c6 \ - --hash=sha256:e475e009e9f2df91e3971d89aa889072219bfee8fcf4b6c36db859a4301982cd \ - --hash=sha256:e6b8d0f7cbdc6ca5cbf52dbd37f70c170184040499ac59a23409724724276784 \ - --hash=sha256:e9d46ffaded9c3dd09371174f4302314851bacb7e0ff1a370f609b3aaa93431a \ - --hash=sha256:ea46dbb3592ec0aa78662ecdcac8c083313dafbc6bd8277620b8301db658d638 \ - --hash=sha256:eaf2e15076fa7e2e5fe7c3b5a88e54b14bbd49a53da983534f6cb448f3f0e300 \ - --hash=sha256:eb2757147ba48c2ac75ad79ad47e4b4d9e7ddb08ac614b90347cdff6b98c860b \ - --hash=sha256:eb6faf15e6cc6a7c61c04e15c3490e3f6693c98f732e531941687093de36db81 \ - --hash=sha256:ed00a4244c52f96f610a164b87e807b49fcd06bb045fe9f9fb0ca2ed8b973a13 \ - --hash=sha256:f222827fef20c142131f1948bc08ebf1c9f3294c79bca8fa9c0a71e234be7b2f \ - --hash=sha256:f815a0bd233ca188b117006c6ca7540031f259a8332592b276e802d24fed44bf \ - --hash=sha256:fb8f169511f037b662dac1a0e27cff30f4317f9aa30af2e37c8a37c3ca8c7e3c \ - --hash=sha256:fc504cad873bc4e95fca9141008ccf0d5e44350dfe450b71ccee86bd0b7b0572 \ - --hash=sha256:fdc5ec34ccce3a691e1664a14bf0f40ad6a41117e5de88e85d8ac8e68a7ea8bd \ - --hash=sha256:feaea6ac95da2fa137abad3c1ae13596bffed44c8e2bfa7802f89a37a1e5e39a - # via mkdocs-glightbox six==1.17.0 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 @@ -2057,38 +1911,6 @@ vine==5.1.0 \ # amqp # celery # kombu -watchdog==6.0.0 \ - --hash=sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a \ - --hash=sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2 \ - --hash=sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f \ - --hash=sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c \ - --hash=sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c \ - --hash=sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c \ - --hash=sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0 \ - --hash=sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13 \ - --hash=sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134 \ - --hash=sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa \ - --hash=sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e \ - --hash=sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379 \ - --hash=sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a \ - --hash=sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11 \ - --hash=sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282 \ - --hash=sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b \ - --hash=sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f \ - --hash=sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c \ - --hash=sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112 \ - --hash=sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948 \ - --hash=sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881 \ - --hash=sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860 \ - --hash=sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3 \ - --hash=sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680 \ - --hash=sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26 \ - --hash=sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26 \ - --hash=sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e \ - --hash=sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8 \ - --hash=sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c \ - --hash=sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2 - # via mkdocs wcwidth==0.6.0 \ --hash=sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad \ --hash=sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159 From d40285d8fca976b23d6ebfec0fec5b628df4eb57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 19:55:12 +0200 Subject: [PATCH 22/35] Drop index.html from URL --- pontoon/urls.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/pontoon/urls.py b/pontoon/urls.py index 9e216be952..f95a1675b9 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -3,8 +3,7 @@ from django.conf import settings from django.contrib import admin from django.contrib.auth import logout -from django.http import HttpResponseRedirect -from django.urls import include, path, re_path, register_converter +from django.urls import include, path, register_converter from django.urls.converters import StringConverter from django.views.generic import RedirectView, TemplateView from django.views.static import serve @@ -16,8 +15,13 @@ class LocaleConverter(StringConverter): regex = r"[A-Za-z0-9\-\@\.]+" -def docs_dir_index(request, path=""): - return HttpResponseRedirect(f"/docs/{path}index.html") +def docs_serve(request, path="index.html"): + if not path or path.endswith("/"): + path = f"{path}index.html" + + return serve( + request, path, document_root=os.path.join(settings.STATIC_ROOT, "docs") + ) register_converter(LocaleConverter, "locale") @@ -61,13 +65,8 @@ def docs_dir_index(request, path=""): RedirectView.as_view(url="/static/img/favicon.ico", permanent=True), ), # Docs - path("docs/", docs_dir_index), - re_path(r"^docs/(?P.+/)$", docs_dir_index), - path( - "docs/", - serve, - {"document_root": os.path.join(settings.STATIC_ROOT, "docs")}, - ), + path("docs/", docs_serve), + path("docs/", docs_serve), # Legacy path("in-context/", RedirectView.as_view(url="/", permanent=True)), # Include URL configurations from installed apps From 1995cf67dca127c0facaa33f7c904af88643b2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 20:04:34 +0200 Subject: [PATCH 23/35] Update Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 17c796dc86..3cad0c6868 100644 --- a/Makefile +++ b/Makefile @@ -163,4 +163,4 @@ requirements: docs: "${DC}" run --rm server zensical build -f //app/documentation/zensical.toml - "${DC}" run --rm server python manage.py collectstatic --noinput + "${DC}" run --rm server .//manage.py collectstatic --noinput From 8bce57af5d9ddb2105a187dc5e4189d5524731cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Tue, 31 Mar 2026 20:08:05 +0200 Subject: [PATCH 24/35] Update README --- documentation/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/README.md b/documentation/README.md index 5a02c6bf33..2faa032f4d 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -2,10 +2,10 @@ This folder contains the unified Pontoon documentation site, built with [Zensical](https://zensical.org/). -It consolidates three previously separate documentation sites: +It consolidates Pontoon documentation from three previously separate sites: | Audience | Previous location | |---|---| -| Developers | `docs/` (https://mozilla-pontoon.readthedocs.io/en/latest/) | -| Localizers | [mozilla-l10n/localizer-documentation](https://github.com/mozilla-l10n/localizer-documentation) | -| Admins | [mozilla-l10n/documentation](https://github.com/mozilla-l10n/documentation) | +| Developers | [docs/](https://mozilla-pontoon.readthedocs.io/en/latest/) | +| Localizers | [mozilla-l10n/localizer-documentation](https://mozilla-l10n.github.io/localizer-documentation/) | +| Admins | [mozilla-l10n/documentation](https://mozilla-l10n.github.io/documentation/) | From 183f606681234c0bc37c949aa7ad39b8ef23d550 Mon Sep 17 00:00:00 2001 From: Francesco Lodolo Date: Wed, 1 Apr 2026 09:41:12 +0200 Subject: [PATCH 25/35] Fix broken links and small errors in content --- documentation/docs/admin/adding-new-project.md | 2 +- documentation/docs/admin/index.md | 2 +- documentation/docs/localizer/glossary.md | 2 +- documentation/docs/localizer/teams-projects.md | 8 ++++---- documentation/docs/localizer/translate.md | 14 +++++++------- .../docs/localizer/translation-workspace.md | 6 +++--- documentation/docs/localizer/users.md | 4 ++-- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/documentation/docs/admin/adding-new-project.md b/documentation/docs/admin/adding-new-project.md index 1f18c9ac39..2e904b3ccd 100644 --- a/documentation/docs/admin/adding-new-project.md +++ b/documentation/docs/admin/adding-new-project.md @@ -5,7 +5,7 @@ Project owners can follow the [guidelines](../dev/localizing-your-projects.md) available in Pontoon Documentation to properly structure files inside the repository. Some things to check: * Files should be organized in subfolders, one per locale, and the filename should remain the same across locales. More details on the [supported formats](../index.md) and [folder structure](../dev/localizing-your-projects.md#folder-structure) are available in Pontoon’s documentation. -* Pontoon needs write access to the repository ([see this document](../../misc/creating_new_repository.md#add-collaborators)). +* Pontoon needs write access to the repository ([see this document](https://mozilla-l10n.github.io/documentation/misc/creating_new_repository.html#add-collaborators)). It’s important to also check the files for localization issues before exposing them to localizers: unclear strings, lack of localization comments, missing plural forms are some of the things to check. diff --git a/documentation/docs/admin/index.md b/documentation/docs/admin/index.md index f5b614036f..7e5031e5ff 100644 --- a/documentation/docs/admin/index.md +++ b/documentation/docs/admin/index.md @@ -3,7 +3,7 @@ This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. !!! note - The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](users.md). + The screenshots in this documentation use the dark theme, but a light theme is also available in your [profile settings](../localizer/users.md). ## Sections diff --git a/documentation/docs/localizer/glossary.md b/documentation/docs/localizer/glossary.md index 568bd0bee2..44766ec2c7 100644 --- a/documentation/docs/localizer/glossary.md +++ b/documentation/docs/localizer/glossary.md @@ -9,7 +9,7 @@ Comments can be used, for example, to discuss possible translations with other t Pontoon supports two types of user comments: * *Source string comments* are associated with the source string and displayed in the `COMMENTS` tab in the right column. -* *Translation comments* are associated with a specific translation and displayed under the editor in the [translation list](translation_workspace.md#translation-list). +* *Translation comments* are associated with a specific translation and displayed under the editor in the [translation list](translation-workspace.md#translation-list). Comment authors can edit or delete their own comments. Project managers can also delete any comment for moderation purposes. diff --git a/documentation/docs/localizer/teams-projects.md b/documentation/docs/localizer/teams-projects.md index e3eb36312f..a4064d6331 100644 --- a/documentation/docs/localizer/teams-projects.md +++ b/documentation/docs/localizer/teams-projects.md @@ -89,7 +89,7 @@ The following actions are available: ### Projects page -The Projects page lists all projects that are available in Pontoon. It can be reached by clicking `Projects` in the page header (not displayed when translating a project) or by using the `/projects` URL (e.g. [pontoon.mozilla.org/projects](https://pontoon.mozilla.org/teams/)). Clicking on a specific [Project page](#project-page) will open the project’s [Project page](#project-page). +The Projects page lists all projects that are available in Pontoon. It can be reached by clicking `Projects` in the page header (not displayed when translating a project) or by using the `/projects` URL (e.g. [pontoon.mozilla.org/projects](https://pontoon.mozilla.org/projects/)). Clicking on a specific project will open the [Project page](#project-page). ### Project page @@ -110,7 +110,7 @@ It also includes an indication of the overall status of completion and statistic Underneath the header, the following tabs are available to navigate between various Team page panels: * **Teams**: a list of all locales enabled in Pontoon for this project. -* **Tags**: a list of tags defined for this project. This tab will be visible only in projects where tags are enabled. For more information about tags, see [this page]translation_workspace.md#tags). +* **Tags**: a list of tags defined for this project. This tab will be visible only in projects where tags are enabled. For more information about tags, see [this page](translation-workspace.md#tags). * **Contributors**: a list of active contributors with their statistics, filterable by time (all time, last 12/6/3/1 months). * [**Insights**](#insights-graphs): data and trends on contributor and localization activity. * **Info**: information about the project. @@ -141,7 +141,7 @@ The page header contains useful information about the current project (same as t Underneath the header, the following tabs are available to navigate between various Team page panels: * **Resources**: files available in the project. -* **Tags**: a list of tags defined for this project. This tab will be visible only in projects where tags are enabled. For more information about tags, see [this page](translation_workspace.md#tags). +* **Tags**: a list of tags defined for this project. This tab will be visible only in projects where tags are enabled. For more information about tags, see [this page](translation-workspace.md#tags). * **Contributors**: a list of active contributors with their statistics, filterable by time. Unlike the tab available in the Team page, this only includes contributions to localization of the project for the current locale. * [**Insights**](#insights-graphs): data and trends on contributor and localization activity. * **Project info**: same content as the Info tab in the Project page. @@ -154,7 +154,7 @@ The Insights tab, accessible from either the Project, Team, or Localization page The following insights appear on all pages: * **Review activity**: shows the number of unreviewed suggestions as a trend line. The Team page also shows the number of peer-approved, self-approved, and rejected suggestions for each month as a bar graph to display the impact of the review process on the number of unreviewed suggestions. New suggestions (hidden by default) can also be shown by clicking `New suggestions` at the bottom of the graph. Hover over a data point to get the detailed number of strings and percentages for that month. -* **Translation activity**: shows the translation completion percentage for the locale as a trend line. The Team page also shows the number of human translations and [machinery translations](translation_workspace.md#machinery) for each month as a bar graph to display the impact of the translation process on the number of completed translations. New source strings (hidden by default) can also be shown by clicking `New source strings` at the bottom of the graph. Hover over a data point to get the detailed number of strings and percentages for that month. +* **Translation activity**: shows the translation completion percentage for the locale as a trend line. The Team page also shows the number of human translations and [machinery translations](translation-workspace.md#machinery) for each month as a bar graph to display the impact of the translation process on the number of completed translations. New source strings (hidden by default) can also be shown by clicking `New source strings` at the bottom of the graph. Hover over a data point to get the detailed number of strings and percentages for that month. The following insights only appear on Team pages: diff --git a/documentation/docs/localizer/translate.md b/documentation/docs/localizer/translate.md index 4a18a5ed6d..e6c783deae 100644 --- a/documentation/docs/localizer/translate.md +++ b/documentation/docs/localizer/translate.md @@ -1,6 +1,6 @@ # How to Translate -This document describes briefly how to translate and review strings in Pontoon and provides an [example of translation workflow within a team](#workflow-example). The documentation also includes a dedicated page about Pontoon’s [translation workspace](translation-workspace.md), including [translation tools](translation_workspace.md#translation-tools-and-comments). +This document describes briefly how to translate and review strings in Pontoon and provides an [example of translation workflow within a team](#workflow-example). The documentation also includes a dedicated page about Pontoon’s [translation workspace](translation-workspace.md), including [translation tools](translation-workspace.md#translation-tools-and-comments). ## Translating strings @@ -16,7 +16,7 @@ To suggest a translation, the user can input the text in the editor and click `S Note that a suggestion exists only in the Pontoon database, and it’s not added to the [translation memory](glossary.md#translation-memory). For projects using [version control systems](glossary.md#version-control-system), the translation is not stored in localized files outside of Pontoon. -When the user is in *Translation Mode*, a green `SAVE` button will be displayed instead of `SUBMIT`. When saving a translation: +When the user is in *Translation Mode*, a green `SAVE` button will be displayed instead of `SUGGEST`. When saving a translation: * The translation will be displayed directly below the editing space and in the sidebar. * The translation will be stored in the version control system (where applicable). @@ -32,7 +32,7 @@ To switch back to *Translation Mode*, click the settings icon again and turn off ## Reviewing strings -To review a suggestion or pretranslation, [search](translation_workspace.md#search) for unreviewed or pretranslated strings in the sidebar. +To review a suggestion or pretranslation, [search](translation-workspace.md#search) for unreviewed or pretranslated strings in the sidebar. If the current translation is acceptable, either click on the `APPROVE` button in the lower-right side of the editing space, or click on the approve icon to the right of the text. This will transform the suggestion or pretranslation into an approved translation. In the case of suggestions, the approved translation will also be stored in the version control system (where applicable). @@ -125,14 +125,14 @@ This workflow utilizes the full power of Pontoon’s online translation features 1. Log in to Pontoon. 2. Browse to the [project](teams-projects.md). -3. Using [filters](translation_workspace.md#search) select `Missing` to display only the strings currently missing a translation, marked as [fuzzy](glossary.md#fuzzy) or containing errors. +3. Using [filters](translation-workspace.md#search) select `Missing` to display only the strings currently missing a translation, marked as [fuzzy](glossary.md#fuzzy) or containing errors. 4. Access personal settings by clicking on the gear icon below the editing field and turn on `Make suggestions`.
    Note that new contributors who have not yet been granted [Translator permissions](users.md#user-roles) will only have the ability to `Make suggestions`, which will be enabled by default. 5. For each string, type a translation and save it with the blue `SUGGEST` button. The string will be stored and displayed under the editor. Each translation submitted shows the name of the author and when it was saved. - * If something is unclear or there is a question about the source string, use the [REQUEST CONTEXT or REPORT ISSUE](translation_workspace.md#source-string) feature to ask the [Project manager](users.md#user-roles). + * If something is unclear or there is a question about the source string, use the [REQUEST CONTEXT or REPORT ISSUE](translation-workspace.md#source-string) feature to ask the [Project manager](users.md#user-roles). General notes: -* Rely on Pontoon’s [translation tools](translation_workspace.md#translation-tools-and-comments) to ensure consistency and make the translation process faster. +* Rely on Pontoon’s [translation tools](translation-workspace.md#translation-tools-and-comments) to ensure consistency and make the translation process faster. * When using Firefox, make sure to have a [dictionary](https://addons.mozilla.org/firefox/language-tools/) installed for the translation language, and that spell checking is enabled in the translation text area. ### Phase 2: review suggestions @@ -141,7 +141,7 @@ General notes: 1. Log in to Pontoon. 2. Browse to the [project](teams-projects.md). -3. In [filters](translation_workspace.md#search) select `Unreviewed`, to isolate the strings previously suggested by another translator. +3. In [filters](translation-workspace.md#search) select `Unreviewed`, to isolate the strings previously suggested by another translator. 4. Review the suggested strings. * If a suggestion is acceptable: * Confirm it as an approved translation by clicking the green `SAVE` button or the checkmark icon near the string in the list below the editor (it turns green when hovered). diff --git a/documentation/docs/localizer/translation-workspace.md b/documentation/docs/localizer/translation-workspace.md index 7e4d9148fa..5a33027900 100644 --- a/documentation/docs/localizer/translation-workspace.md +++ b/documentation/docs/localizer/translation-workspace.md @@ -13,7 +13,7 @@ The main toolbar at the top of the page allows users to navigate to the dashboar ![Navigating in the main toolbar](../assets/localizer/translation-workspace/main_nav.png "Screenshot of the main toolbar, with the resource dropdown expanded") -Clicking the locale name will open the [Team page](teams_projects.md#team-page) for that locale, while clicking the project name will open the [Localization page](teams_projects.md#localization-page) for that project. +Clicking the locale name will open the [Team page](teams-projects.md#team-page) for that locale, while clicking the project name will open the [Localization page](teams-projects.md#localization-page) for that project. Clicking on the current resource (or `All Resources`) will display a list of all resources available for that project. It’s possible to search for a resource, and click one to load only the entities included in it. Clicking `All Resources` at the bottom of the list will go back to display all resources, while `All Projects` will show entities for all projects under the selected locale. @@ -153,7 +153,7 @@ In the same area, the `REQUEST CONTEXT or REPORT ISSUE` button can be used to re #### Context -Sometimes you may want to investigate more context about a particular string through an external resource such as a [Version Control System](glossary.md#version-control-system). The `CONTEXT` information provided underneath the source string shows the identifier, file, and project for the string — allowing you to find the string within the codebase of the project. For example, for some Mozilla projects these can be used to [track strings to bugs](../mercurial/tracking_back_string_to_bug.md). +Sometimes you may want to investigate more context about a particular string through an external resource such as a [Version Control System](glossary.md#version-control-system). The `CONTEXT` information provided underneath the source string shows the identifier, file, and project for the string — allowing you to find the string within the codebase of the project. For example, for some Mozilla projects these can be used to [track strings to bugs](https://mozilla-l10n.github.io/localizer-documentation/tools/mercurial/tracking_back_string_to_bug.html). ![Context](../assets/localizer/translation-workspace/context.png) @@ -239,7 +239,7 @@ The following image is an example of a string with plurals: while English only h ![Translation editing space for Fluent string with plurals](../assets/localizer/translation-workspace/editing_space_ftl_plurals.png "Screenshot of the translation editing space for Fluent string with plurals") -In the bottom left corner, the FTL button (highlighted in yellow) allows to switch between the standard UI (*Simple FTL mode*) and the *Advanced FTL mode*, where it’s possible to edit the original syntax directly, as you would in a text editor. For details on the Fluent syntax, see [Fluent for localizers](../fluent/). +In the bottom left corner, the FTL button (highlighted in yellow) allows to switch between the standard UI (*Simple FTL mode*) and the *Advanced FTL mode*, where it’s possible to edit the original syntax directly, as you would in a text editor. For details on the Fluent syntax, see [Fluent for localizers](https://mozilla-l10n.github.io/localizer-documentation/tools/fluent/index.html). ![Translation editing space for Fluent string in source view](../assets/localizer/translation-workspace/editing_space_ftl_sourceview.png "Screenshot of the translation editing space for Fluent string in source view") diff --git a/documentation/docs/localizer/users.md b/documentation/docs/localizer/users.md index 20a666e27c..e55553d32d 100644 --- a/documentation/docs/localizer/users.md +++ b/documentation/docs/localizer/users.md @@ -2,7 +2,7 @@ ## Creating an account -While Pontoon can be configured to use [different login systems](../admin/deployment.md#environment-variables) (Django, GitHub, etc.), the Mozilla instance hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org/) uses Firefox accounts. +While Pontoon can be configured to use [different login systems](../dev/deployment.md#environment-variables) (Django, GitHub, etc.), the Mozilla instance hosted at [pontoon.mozilla.org](https://pontoon.mozilla.org/) uses Firefox accounts. To create an account, click on the `Sign In` button in the top right corner and follow the instructions. @@ -95,7 +95,7 @@ Note that the current search options can always be overridden directly in the se It’s possible to set the default homepage displayed when visiting Pontoon as a logged-in user. Current options are: * Default homepage (Pontoon’s homepage). -* [A Team page](teams_projects.md#team-page). +* [A Team page](teams-projects.md#team-page). `Preferred source locales` can be used to display a different source locale when translating. In Mozilla projects, the source locale is always English (en-US). From a74d910798775baf046efd7a68f038efebaf09f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Wed, 1 Apr 2026 11:15:12 +0200 Subject: [PATCH 26/35] Fix link --- documentation/docs/admin/adding-new-project.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/admin/adding-new-project.md b/documentation/docs/admin/adding-new-project.md index 2e904b3ccd..6bd26c35a2 100644 --- a/documentation/docs/admin/adding-new-project.md +++ b/documentation/docs/admin/adding-new-project.md @@ -4,7 +4,7 @@ Project owners can follow the [guidelines](../dev/localizing-your-projects.md) available in Pontoon Documentation to properly structure files inside the repository. Some things to check: -* Files should be organized in subfolders, one per locale, and the filename should remain the same across locales. More details on the [supported formats](../index.md) and [folder structure](../dev/localizing-your-projects.md#folder-structure) are available in Pontoon’s documentation. +* Files should be organized in subfolders, one per locale, and the filename should remain the same across locales. More details on the [supported formats](../dev/localizing-your-projects/#prerequisites) and [folder structure](../dev/localizing-your-projects.md#folder-structure) are available in Pontoon’s documentation. * Pontoon needs write access to the repository ([see this document](https://mozilla-l10n.github.io/documentation/misc/creating_new_repository.html#add-collaborators)). It’s important to also check the files for localization issues before exposing them to localizers: unclear strings, lack of localization comments, missing plural forms are some of the things to check. From ce31aaafd30510033d87fe78eb13a4b740882efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 21:40:11 +0200 Subject: [PATCH 27/35] Update zensical to 0.0.31 --- requirements/default.in | 2 +- requirements/default.txt | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/requirements/default.in b/requirements/default.in index 5f2423afbb..b894953a7b 100644 --- a/requirements/default.in +++ b/requirements/default.in @@ -49,4 +49,4 @@ sacrebleu==2.4.3 sacremoses==0.1.1 translate-toolkit==3.19.3 whitenoise==5.2.0 -zensical==0.0.29 +zensical==0.0.31 diff --git a/requirements/default.txt b/requirements/default.txt index 658118324d..471e9d8195 100644 --- a/requirements/default.txt +++ b/requirements/default.txt @@ -1923,18 +1923,18 @@ whitenoise==5.2.0 \ --hash=sha256:05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7 \ --hash=sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d # via -r default.in -zensical==0.0.29 \ - --hash=sha256:0d6282be7cb551e12d5806badf5e94c54a5e2f2cf07057a3e36d1eaf97c33ada \ - --hash=sha256:20ae0709ea14fce25ab33d0a82acdaf454a7a2e232a9ee20c019942205174476 \ - --hash=sha256:30661148f0681199f3b598cbeb1d54f5cba773e54ae840bac639250d85907b84 \ - --hash=sha256:599af3ba66fcd0146d7019f3493ed3c316051fae6c4d5599bc59f3a8f4b8a6f0 \ - --hash=sha256:59a57db35542e98d2896b833de07d199320f8ada3b4e7ddccb7fe892292d8b74 \ - --hash=sha256:6a566ac1fd4bfac5d711a7bd1ae06666712127c2718daa5083c7bf3f107e8578 \ - --hash=sha256:6b2fca39c5f6b1782c77cf6591cf346357cabee85ebdb956c5ddc0fd5169f3d9 \ - --hash=sha256:7145c5504380a344b8cd4586da815cdde77ef4a42319fa4f35e78250f01985af \ - --hash=sha256:a231a3a02a3851741dc4d2de8910b5c39fe81e55bf026d8edf4d803e91a922fb \ - --hash=sha256:c9336d4e4b232e3c9a70e30258e916dd7e60c0a2a08c8690065e60350c302028 \ - --hash=sha256:d42c2b2a96a80cf64c98ba7242f59ef95109914bd4c9499d7ebc12544663852c \ - --hash=sha256:dfc23a74ef672aa51088c080286319da1dc0b989cd5051e9e5e6d7d4abbc2fc1 \ - --hash=sha256:eea7e48a00a71c0586e875079b5f83a070c33a147e52ad4383e4b63ab524332b +zensical==0.0.31 \ + --hash=sha256:03fa11e629a308507693489541f43e751697784e94365e7435b02104aefd1c2c \ + --hash=sha256:147ab4bc17f3088f703aa6c4b9c416411f4ea8ca64d26f6586beae49d97fd3c7 \ + --hash=sha256:6fb5c634fe88254770a2d4db5c05b06f1c3ee5e29d2ae3e7efdae8905e435b1d \ + --hash=sha256:738a2fd5832e3b3c10ff642eebaf89c89ca1d28e4451dad0f36fdac53c415577 \ + --hash=sha256:94e64630552793274db1ec66c971e49a15ad351536d5d12de67ec6da7358ac50 \ + --hash=sha256:9c12f07bde70c4bfdb13d6cae1bedf8d18064d257a6e81128a152502b28a8fc3 \ + --hash=sha256:b489936d670733dd204f16b689a2acc0e45b69e42cc4901f5131ae57658b8fbc \ + --hash=sha256:bd601f6132e285ef6c3e4c3852be2094fc0473295a8080003db76a79760f84fb \ + --hash=sha256:d6621d4bb46af4143560045d4a18c8c76302db56bf1dbb6e2ce107d7fb643e09 \ + --hash=sha256:d9f678efc0d9918e45eeb8bc62847b2cce23db7393c8c59c1be6d1c064bbaacd \ + --hash=sha256:dc3b6a9dfb5903c0aa779ef65cd6185add2b8aa1db237be840874b8c9db761b8 \ + --hash=sha256:ddd4321b275e82c4897aa45b05038ce204b88fb311ad55f8c2af572173a9b56c \ + --hash=sha256:fb2b50ecf674997f818e53f12f2a67875a21b0c79ed74c151dfaef2f1475e5bf # via -r default.in From 8b8da14325c571c39f553f9ff819407e88222306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 21:40:22 +0200 Subject: [PATCH 28/35] Hide TOC on main pages --- documentation/docs/admin/index.md | 5 +++++ documentation/docs/dev/index.md | 5 +++++ documentation/docs/index.md | 5 +++++ documentation/docs/localizer/index.md | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/documentation/docs/admin/index.md b/documentation/docs/admin/index.md index 7e5031e5ff..cfd97cea5e 100644 --- a/documentation/docs/admin/index.md +++ b/documentation/docs/admin/index.md @@ -1,3 +1,8 @@ +--- +hide: + - toc +--- + # Admin Guide This guide covers administrative tasks in Pontoon — managing projects, locales, users, and communication tools. diff --git a/documentation/docs/dev/index.md b/documentation/docs/dev/index.md index b28b39df14..a968b873b8 100644 --- a/documentation/docs/dev/index.md +++ b/documentation/docs/dev/index.md @@ -1,3 +1,8 @@ +--- +hide: + - toc +--- + # Developer Guide This guide covers everything you need to know to contribute to, deploy and maintain Pontoon. diff --git a/documentation/docs/index.md b/documentation/docs/index.md index 77823413ec..1fe574605f 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -1,3 +1,8 @@ +--- +hide: + - toc +--- + # Pontoon Documentation **Pontoon** is Mozilla's translation management system (TMS) — a web-based platform that enables the Mozilla localization community to translate, review, and manage strings for Mozilla's products and websites. diff --git a/documentation/docs/localizer/index.md b/documentation/docs/localizer/index.md index f254834e10..e494dcaac3 100644 --- a/documentation/docs/localizer/index.md +++ b/documentation/docs/localizer/index.md @@ -1,3 +1,8 @@ +--- +hide: + - toc +--- + # Localizer Guide This guide covers everything you need to know to translate and review strings in Pontoon, from day-to-day translation work to managing your account and notifications. From 2410b6962e40a5cbbaacbd2345abbbc5ff604860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 21:47:34 +0200 Subject: [PATCH 29/35] Do not autohide header --- documentation/zensical.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/documentation/zensical.toml b/documentation/zensical.toml index f207578ad1..e4cce1ed0f 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -53,7 +53,6 @@ language = "en" logo = "assets/pontoon-logo.svg" favicon = "assets/pontoon-logo.svg" features = [ - "header.autohide", "navigation.footer", "navigation.tabs", "navigation.sections", From 17c17a462930fe6f0ef1fbf4323f21f6cdb73390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 22:55:00 +0200 Subject: [PATCH 30/35] Update title --- documentation/docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/index.md b/documentation/docs/index.md index 1fe574605f..e32e74619d 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -3,7 +3,7 @@ hide: - toc --- -# Pontoon Documentation +# Welcome to Pontoon Documentation **Pontoon** is Mozilla's translation management system (TMS) — a web-based platform that enables the Mozilla localization community to translate, review, and manage strings for Mozilla's products and websites. From fae6269639b78d43788ad9898869fc029661c377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 23:26:31 +0200 Subject: [PATCH 31/35] Update links to docs --- pontoon/base/templates/allauth/layouts/base.html | 2 +- pontoon/base/templates/header.html | 2 +- .../templates/messaging/emails/content/onboarding_3.html | 2 +- pontoon/urls.py | 2 +- .../modules/interactivetour/components/InteractiveTour.tsx | 4 ++-- translate/src/modules/user/components/UserMenu.tsx | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pontoon/base/templates/allauth/layouts/base.html b/pontoon/base/templates/allauth/layouts/base.html index 88c40e659b..b8bf445348 100644 --- a/pontoon/base/templates/allauth/layouts/base.html +++ b/pontoon/base/templates/allauth/layouts/base.html @@ -151,7 +151,7 @@

  1. Help
  2. HelpAdditional documentation

    For in-depth documentation on Pontoon, see our Documentation for localizers.

    diff --git a/pontoon/urls.py b/pontoon/urls.py index f95a1675b9..5ded1153a3 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -65,7 +65,7 @@ def docs_serve(request, path="index.html"): RedirectView.as_view(url="/static/img/favicon.ico", permanent=True), ), # Docs - path("docs/", docs_serve), + path("docs/", docs_serve, name="pontoon.docs"), path("docs/", docs_serve), # Legacy path("in-context/", RedirectView.as_view(url="/", permanent=True)), diff --git a/translate/src/modules/interactivetour/components/InteractiveTour.tsx b/translate/src/modules/interactivetour/components/InteractiveTour.tsx index d18d8697f9..9e1b90e7c6 100644 --- a/translate/src/modules/interactivetour/components/InteractiveTour.tsx +++ b/translate/src/modules/interactivetour/components/InteractiveTour.tsx @@ -312,14 +312,14 @@ export function InteractiveTour(): React.ReactElement | null { elems={{ a: ( // eslint-disable-next-line - + ), }} >

    {`There’s a wide variety of tools to help you with translations, some of which we didn’t mention in this tutorial. For more topics of interest for localizers at Mozilla, please have a look - at the Localizer Documentation.`}

    + at the Localizer Guide.`}

    }} > From 3ff0da9aedf836f86432d610eeae1bc0f900cfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Thu, 2 Apr 2026 23:32:06 +0200 Subject: [PATCH 32/35] Make `make docs` work --- .gitignore | 1 + docker-compose.yml | 1 + pontoon/urls.py | 8 +++++--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 78f625ecde..4115b4db97 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ venv/ /docker/config/server.env /docs/_build /docs/_gh-pages +/documentation/site/ /env/ /media/ /pontoon/coverage.xml diff --git a/docker-compose.yml b/docker-compose.yml index f0731a4bb6..960894ec1f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: ports: - '8000:8000' volumes: + - ./documentation:/app/documentation - ./pontoon:/app/pontoon - ./requirements:/app/requirements - ./translate:/app/translate diff --git a/pontoon/urls.py b/pontoon/urls.py index 5ded1153a3..58beb98407 100644 --- a/pontoon/urls.py +++ b/pontoon/urls.py @@ -19,9 +19,11 @@ def docs_serve(request, path="index.html"): if not path or path.endswith("/"): path = f"{path}index.html" - return serve( - request, path, document_root=os.path.join(settings.STATIC_ROOT, "docs") - ) + docs_dir = os.path.join(settings.ROOT, "documentation", "site") + if not os.path.isdir(docs_dir): + docs_dir = os.path.join(settings.STATIC_ROOT, "docs") + + return serve(request, path, document_root=docs_dir) register_converter(LocaleConverter, "locale") From e51a5a458136a9e3e2c79818bf593302a6190470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Fri, 3 Apr 2026 00:11:01 +0200 Subject: [PATCH 33/35] Drop the Localizing your projects page --- ...rm-project.md => adding-new-db-project.md} | 6 +- .../docs/admin/adding-new-project.md | 47 +++++++- documentation/docs/admin/index.md | 2 +- documentation/docs/dev/first-contribution.md | 4 +- documentation/docs/dev/index.md | 4 - .../docs/dev/localizing-your-projects.md | 101 ------------------ documentation/zensical.toml | 3 +- 7 files changed, 50 insertions(+), 117 deletions(-) rename documentation/docs/admin/{adding-short-term-project.md => adding-new-db-project.md} (90%) delete mode 100644 documentation/docs/dev/localizing-your-projects.md diff --git a/documentation/docs/admin/adding-short-term-project.md b/documentation/docs/admin/adding-new-db-project.md similarity index 90% rename from documentation/docs/admin/adding-short-term-project.md rename to documentation/docs/admin/adding-new-db-project.md index 46debc4df1..5ea6627ed5 100644 --- a/documentation/docs/admin/adding-short-term-project.md +++ b/documentation/docs/admin/adding-new-db-project.md @@ -1,8 +1,8 @@ -# Adding a New Short-Term Project +# Adding a New DB Project -Short-term projects are things like newsletters, marketing campaigns, surveys… They do not have a repository, and data is instead stored only in Pontoon’s database. +DB projects are things like newsletters, marketing campaigns, surveys… They do not have a repository, and data is instead stored only in Pontoon’s database. -The process to create a short-term project is very similar to that of a regular one. +The process to create a DB project is very similar to that of a regular one. ## Create the project in Pontoon STAGE instance diff --git a/documentation/docs/admin/adding-new-project.md b/documentation/docs/admin/adding-new-project.md index 6bd26c35a2..0dc28bb445 100644 --- a/documentation/docs/admin/adding-new-project.md +++ b/documentation/docs/admin/adding-new-project.md @@ -1,14 +1,55 @@ # Adding a New Project +The following page describes how to make your projects localizable with your Pontoon instance. + +Pontoon specializes in using version control systems as the source and store of localizable strings. While [internal Pontoon DB](adding-new-db-project.md) can be used for that purpose as well, steps below assume you store strings in a [GitHub repository](https://help.github.com/en/articles/create-a-repo). + ## Verify that the project is properly localizable -Project owners can follow the [guidelines](../dev/localizing-your-projects.md) available in Pontoon Documentation to properly structure files inside the repository. Some things to check: +Before you can set up a new project in Pontoon: + +1. Ensure your project works with one of the supported l10n frameworks: + * `.dtd` + * `.ftl` (Fluent) + * `.ini` + * `.json` (WebExtensions) + * `.json` (key-value) + * `.po` (Gettext) + * `.properties` + * `.xliff` + * `.xml` (Android) + +2. Extract localizable strings into resource files. -* Files should be organized in subfolders, one per locale, and the filename should remain the same across locales. More details on the [supported formats](../dev/localizing-your-projects/#prerequisites) and [folder structure](../dev/localizing-your-projects.md#folder-structure) are available in Pontoon’s documentation. -* Pontoon needs write access to the repository ([see this document](https://mozilla-l10n.github.io/documentation/misc/creating_new_repository.html#add-collaborators)). +3. Push resource files to your GitHub repository. + +4. Make sure your Pontoon instance has write access to your repository ([see this document](https://mozilla-l10n.github.io/documentation/misc/creating_new_repository.html#add-collaborators)). + +!!! tip "Tip" + The recommended way for that is to create a dedicated GitHub account for your Pontoon instance, [add it as a collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) to your repository, and set `SSH_KEY` and `SSH_CONFIG`. It’s important to also check the files for localization issues before exposing them to localizers: unclear strings, lack of localization comments, missing plural forms are some of the things to check. +## Folder structure + +To let Pontoon discover your localizable files, you'll either need to specify paths in the [project configuration file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) or strictly follow the file and folder structure as expected by Pontoon: + +1. Locale folders (including source locale) must be located at the same nesting level of the directory tree. You may want to put all locale folders under a `locales` folder. +1. Source locale needs to be called `templates`, `en-US`, `en-us` or `en`. If multiple folders with such name exist in the repository and contain files in a supported file format, the first one will be used. +1. Locale folder names must always match locale identifiers used by Pontoon. If your application requires different identifiers, you can try creating symbolic links to locale folders. +1. Locale code must not be part of the file name. + +Correct pattern: + + locales/{locale_code}/path/to/file.extension + +Incorrect pattern: + + locales/{locale_code}/path/to/file.{locale_code}.extension + +!!! note "Gettext .po files" + For Gettext files, you will need to ensure that `.po` files are included in the repository for each target locale for which they are to be translated (these files may be initially empty). For all other supported formats, Pontoon will automatically add files for each locale when it is translated. + ## Create the project Access Pontoon’s [admin console](https://pontoon.mozilla.org/admin/) and click **ADD NEW PROJECT**. diff --git a/documentation/docs/admin/index.md b/documentation/docs/admin/index.md index cfd97cea5e..3cd3725b15 100644 --- a/documentation/docs/admin/index.md +++ b/documentation/docs/admin/index.md @@ -18,7 +18,7 @@ This guide covers administrative tasks in Pontoon — managing projects, locales How to set up a standard VCS-backed project in Pontoon, including repository configuration, locale selection, tags, and deadlines. -- :material-calendar-clock: **[Adding a Short-Term Project](adding-short-term-project.md)** +- :material-calendar-clock: **[Adding a New DB Project](adding-new-db-project.md)** How to create database-backed projects for newsletters, campaigns, and surveys — no VCS required. diff --git a/documentation/docs/dev/first-contribution.md b/documentation/docs/dev/first-contribution.md index 386ebcafee..b1dc9f630b 100644 --- a/documentation/docs/dev/first-contribution.md +++ b/documentation/docs/dev/first-contribution.md @@ -126,12 +126,10 @@ where to make your contributions. Here are a few links to important documentation resources: - If you want to work on the front-end, it is important that you read - the [Front-End - Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). + the [Front-End Documentation](https://github.com/mozilla/pontoon/tree/HEAD/translate). - Most of the documentation around installing and developing can be found in the [Developer Guide](index.md). - For documentation about using Pontoon to localize, see the [Localizer Guide](../localizer/index.md). -- For documentation about making a project localizable on Pontoon, see [Localizing your projects](localizing-your-projects.md). - For documentation about managing projects, locales and users, see the [Admin Guide](../admin/index.md). ## 7. Communicate with us diff --git a/documentation/docs/dev/index.md b/documentation/docs/dev/index.md index a968b873b8..23e14a3a9a 100644 --- a/documentation/docs/dev/index.md +++ b/documentation/docs/dev/index.md @@ -35,8 +35,4 @@ This guide covers everything you need to know to contribute to, deploy and maint Routine maintenance tasks and responsibilities. -- :material-translate: **[Localizing Your Projects](localizing-your-projects.md)** - - Learn how to integrate your project with Pontoon for localization. - diff --git a/documentation/docs/dev/localizing-your-projects.md b/documentation/docs/dev/localizing-your-projects.md deleted file mode 100644 index f877c67e9d..0000000000 --- a/documentation/docs/dev/localizing-your-projects.md +++ /dev/null @@ -1,101 +0,0 @@ -# Localizing your projects - -The following describes how to make your projects localizable with your -Pontoon instance. - -Pontoon specializes in using version control systems as the source and -store of localizable strings. While internal Pontoon DB can be used for -that purpose as well, steps below assume you store strings in a [GitHub -repository](https://help.github.com/en/articles/create-a-repo). - -## Prerequisites - -Before you can set up a new project in Pontoon: - -1. Ensure your project works with one of the supported l10n frameworks: - * `.dtd` - * `.ftl` (Fluent) - * `.ini` - * `.json` (WebExtensions) - * `.json` (key-value) - * `.po` (Gettext) - * `.properties` - * `.xliff` - * `.xml` (Android) - -2. Extract localizable strings into resource files. - -3. Push resource files to your GitHub repository. - -4. Make sure your Pontoon instance has write access to your repository. - -!!! tip "Tip" - The recommended way for that is to create a dedicated GitHub account for your Pontoon instance, [add it as a collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) to your repository, and set `SSH_KEY` and `SSH_CONFIG`. - -## Folder structure - -To let Pontoon discover your localizable files, you'll either need to -specify paths in the [project configuration -file](https://moz-l10n-config.readthedocs.io/en/latest/fileformat.html) -or strictly follow the file and folder structure as expected by Pontoon: - -1. Locale folders (including source locale) must be located at the same - nesting level of the directory tree. You may want to put all locale - folders under a `locales` folder. -2. Source locale needs to be called `templates`, `en-US`, `en-us` or - `en`. If multiple folders with such name exist in the repository and - contain files in a supported file format, the first one will be - used. -3. Locale folder names must always match locale identifiers used by - Pontoon. If your application requires different identifiers, you can - try creating symbolic links to locale folders. -4. Locale code must not be part of the file name. - -Correct pattern: - - locales/{locale_code}/path/to/file.extension - -Incorrect pattern: - - locales/{locale_code}/path/to/file.{locale_code}.extension - -For Gettext files, you will need to ensure that `.po` files are included -in the repository for each target locale for which they are to be -translated (these files may be initially empty). For all other supported -formats, Pontoon will automatically add files for each locale when it is -translated. - -## Adding a new project to Pontoon - -When accessing your deployed app, your email address is your login in -the Sign In page and your password is the one picked during setup. After -you log in, access Pontoon Admin (`/admin/`), click "Add new project" -and fill out the following required fields: - -1. **Name**: name of the project to be displayed throughout Pontoon - app. The following project names are reserved: `Terminology`, - `Tutorial`, `Pontoon Intro`. -1. **Slug**: used in URLs, will be generated automatically from the - Name. -1. **Locales**: select at least one Localizable locale by clicking on - it. -1. **Repository URL**: enter your repository's SSH URL of the form - `git@github.com:user/repo.git`. - -Once you've filled all the required information: - -1. Click "Save project" at the bottom of the page. -1. After the page reloads, click "Sync" and wait for Pontoon to - import strings. You can monitor the progress in the Sync log - (`/sync/`). -1. When the synchronization is finished, you should check the imported - resources and the entities. If everything went okay, you can proceed - to the next step. -1. Go to the project's admin page and change the "Visibility" option to - make the project "Public". It's required because all new projects in - Pontoon are private by default and aren't visible to localizers and - locale managers. - -For complete documentation of the Admin form, please refer to Mozilla's [new project documentation](../admin/adding-new-project.md). - -At this point you are ready to [start localizing your project](../localizer/) at `/projects/SLUG/`! diff --git a/documentation/zensical.toml b/documentation/zensical.toml index e4cce1ed0f..5a12aaa68e 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -26,7 +26,7 @@ nav = [ { "Admin Guide" = [ { "Overview" = "admin/index.md" }, { "Adding a New Project" = "admin/adding-new-project.md" }, - { "Adding a Short-Term Project" = "admin/adding-short-term-project.md" }, + { "Adding a New DB Project" = "admin/adding-new-db-project.md" }, { "Adding a New Locale" = "admin/adding-new-locale.md" }, { "Managing Pretranslation" = "admin/managing-pretranslation.md" }, { "Messaging Center" = "admin/messaging-center.md" }, @@ -44,7 +44,6 @@ nav = [ { "Feature Development Process" = "dev/feature-development-process.md" }, { "Deployment" = "dev/deployment.md" }, { "Maintenance" = "dev/maintenance.md" }, - { "Localizing Your Projects" = "dev/localizing-your-projects.md" }, ]} ] From 4cb215ffef180b9b53f8e9c4dd786ebb5c77307b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Fri, 3 Apr 2026 00:14:47 +0200 Subject: [PATCH 34/35] Integrate new content --- .../docs/admin/managing-pretranslation.md | 19 +------------------ documentation/docs/localizer/glossary.md | 6 ++++++ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/documentation/docs/admin/managing-pretranslation.md b/documentation/docs/admin/managing-pretranslation.md index 3008c035ed..2718add239 100644 --- a/documentation/docs/admin/managing-pretranslation.md +++ b/documentation/docs/admin/managing-pretranslation.md @@ -2,24 +2,7 @@ ## Opt-in guidelines to enable new locales -It’s important to note that **these are not strict criteria**: members of staff will evaluate each request to opt in individually, based on their knowledge of the project and direct experience with the locale. - -**Criteria for enabling pretranslation for a new locale** - -* Request needs to come from translators or managers active within the last month (translating or reviewing). -* There is an active manager for the locale (last activity within 2 months). - -**Criteria for enabling pretranslation for a new project** - -* Less than 400 missing strings, except for projects or locales where existing pretranslation statistics provide high-confidence. -* Average review time for pretranslations in existing projects is faster than 3 weeks. - -**Criteria for disabling the feature for a locale or a project** - -* Approval rate drops below 40%. -* Average review time for pretranslations is slower than 6 weeks. - -Note that disabling a project would always involve a conversation with reviewers for the locale. +See [this page](https://mozilla-l10n.github.io/localizer-documentation/tools/pretranslation.html#opt-in-guidelines) for the opt-in guidelines. ## Enabling pretranslation in a project diff --git a/documentation/docs/localizer/glossary.md b/documentation/docs/localizer/glossary.md index 44766ec2c7..befd32e036 100644 --- a/documentation/docs/localizer/glossary.md +++ b/documentation/docs/localizer/glossary.md @@ -31,6 +31,12 @@ A locale is the combination of a language and a region, represented in Pontoon b In Pontoon, each locale maps to a team. +## Machine Translation + +Machine Translation (MT) is the translation of text from one language to another, performed by software without human involvement. There are different types of machine translation solutions (or "engines"), but all modern systems are based on a neural network approach (vs statistical or rule-based). + +In Pontoon, machine translation is used as part of the [pretranslation](#pretranslation) feature, powered by [Google AutoML Translation](https://cloud.google.com/translate/automl/docs) with custom models trained on existing translation memories. + ## Permission Users in Pontoon can have different permissions depending on their role: From ec2fb6fec7ee295e640ddc4b4ebc4b2809bd4a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matja=C5=BE=20Horvat?= Date: Fri, 3 Apr 2026 00:17:41 +0200 Subject: [PATCH 35/35] Prettier --- .../templates/messaging/emails/content/onboarding_3.html | 3 +-- translate/src/modules/user/components/UserMenu.tsx | 6 +----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/pontoon/messaging/templates/messaging/emails/content/onboarding_3.html b/pontoon/messaging/templates/messaging/emails/content/onboarding_3.html index d27a90aac5..ed770f9c26 100644 --- a/pontoon/messaging/templates/messaging/emails/content/onboarding_3.html +++ b/pontoon/messaging/templates/messaging/emails/content/onboarding_3.html @@ -13,8 +13,7 @@

    Additional documentation

    For in-depth documentation on Pontoon, see our - Documentation for localizers.

    diff --git a/translate/src/modules/user/components/UserMenu.tsx b/translate/src/modules/user/components/UserMenu.tsx index 32dc47cca3..fd91b27cdc 100644 --- a/translate/src/modules/user/components/UserMenu.tsx +++ b/translate/src/modules/user/components/UserMenu.tsx @@ -218,11 +218,7 @@ export function UserMenuDialog({ id='user-UserMenu--help' elems={{ glyph: }} > - + {'Help'}