diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index acb224707..2a25d3f0b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -10,7 +10,9 @@ on:
# Only run for pull requests if relevant files were changed
pull_request:
- branches: [main]
+ branches:
+ - main
+ - 'release/**'
paths:
- Dockerfile
- docker-bake.hcl
@@ -31,10 +33,37 @@ env:
DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index
jobs:
+ compute-version:
+ name: Compute version using git describe
+ runs-on: ubuntu-24.04
+ outputs:
+ describe: ${{ steps.git.outputs.describe }}
+ timestamp: ${{ steps.git.outputs.timestamp }}
+ steps:
+ - name: Checkout the code
+ uses: actions/checkout@v4.2.2
+ with:
+ # Need a full clone so that `git describe` reports the right version
+ fetch-depth: 0
+
+ - name: Compute version and timestamp out of git history
+ id: git
+ run: |
+ echo "describe=$(git describe --tags --match 'v*.*.*' --always)" >> $GITHUB_OUTPUT
+ echo "timestamp=$(git log -1 --format=%ct)" >> $GITHUB_OUTPUT
+
+
build-binaries:
name: Build binaries
runs-on: ubuntu-22.04
+ needs:
+ - compute-version
+
+ env:
+ VERGEN_GIT_DESCRIBE: ${{ needs.compute-version.outputs.describe }}
+ SOURCE_DATE_EPOCH: ${{ needs.compute-version.outputs.timestamp }}
+
permissions:
contents: read
@@ -136,6 +165,13 @@ jobs:
packages: write
id-token: write
+ needs:
+ - compute-version
+
+ env:
+ VERGEN_GIT_DESCRIBE: ${{ needs.compute-version.outputs.describe }}
+ SOURCE_DATE_EPOCH: ${{ needs.compute-version.outputs.timestamp }}
+
steps:
- name: Docker meta
id: meta
diff --git a/Cargo.lock b/Cargo.lock
index 2ac638cd1..3539b0a14 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3098,7 +3098,7 @@ dependencies = [
[[package]]
name = "mas-axum-utils"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"async-trait",
"axum",
@@ -3132,7 +3132,7 @@ dependencies = [
[[package]]
name = "mas-cli"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"axum",
@@ -3200,7 +3200,7 @@ dependencies = [
[[package]]
name = "mas-config"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"camino",
@@ -3230,7 +3230,7 @@ dependencies = [
[[package]]
name = "mas-data-model"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"base64ct",
"chrono",
@@ -3252,7 +3252,7 @@ dependencies = [
[[package]]
name = "mas-email"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"async-trait",
"lettre",
@@ -3263,7 +3263,7 @@ dependencies = [
[[package]]
name = "mas-handlers"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"aide",
"anyhow",
@@ -3338,7 +3338,7 @@ dependencies = [
[[package]]
name = "mas-http"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"futures-util",
"headers",
@@ -3358,7 +3358,7 @@ dependencies = [
[[package]]
name = "mas-i18n"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"camino",
"icu_calendar",
@@ -3381,7 +3381,7 @@ dependencies = [
[[package]]
name = "mas-i18n-scan"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"camino",
"clap",
@@ -3395,7 +3395,7 @@ dependencies = [
[[package]]
name = "mas-iana"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"schemars",
"serde",
@@ -3403,7 +3403,7 @@ dependencies = [
[[package]]
name = "mas-iana-codegen"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"async-trait",
@@ -3419,7 +3419,7 @@ dependencies = [
[[package]]
name = "mas-jose"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"base64ct",
"chrono",
@@ -3449,7 +3449,7 @@ dependencies = [
[[package]]
name = "mas-keystore"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"aead",
"base64ct",
@@ -3477,7 +3477,7 @@ dependencies = [
[[package]]
name = "mas-listener"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"bytes",
@@ -3501,7 +3501,7 @@ dependencies = [
[[package]]
name = "mas-matrix"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"async-trait",
@@ -3510,7 +3510,7 @@ dependencies = [
[[package]]
name = "mas-matrix-synapse"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"async-trait",
@@ -3527,7 +3527,7 @@ dependencies = [
[[package]]
name = "mas-oidc-client"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"assert_matches",
"async-trait",
@@ -3563,7 +3563,7 @@ dependencies = [
[[package]]
name = "mas-policy"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"mas-data-model",
@@ -3579,7 +3579,7 @@ dependencies = [
[[package]]
name = "mas-router"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"axum",
"serde",
@@ -3590,7 +3590,7 @@ dependencies = [
[[package]]
name = "mas-spa"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"camino",
"serde",
@@ -3599,7 +3599,7 @@ dependencies = [
[[package]]
name = "mas-storage"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"async-trait",
"chrono",
@@ -3621,7 +3621,7 @@ dependencies = [
[[package]]
name = "mas-storage-pg"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"async-trait",
"chrono",
@@ -3647,7 +3647,7 @@ dependencies = [
[[package]]
name = "mas-tasks"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"async-trait",
@@ -3678,7 +3678,7 @@ dependencies = [
[[package]]
name = "mas-templates"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"anyhow",
"arc-swap",
@@ -3708,7 +3708,7 @@ dependencies = [
[[package]]
name = "mas-tower"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"http",
"opentelemetry",
@@ -3965,7 +3965,7 @@ dependencies = [
[[package]]
name = "oauth2-types"
-version = "0.13.0-rc.1"
+version = "0.13.0-rc.2"
dependencies = [
"assert_matches",
"chrono",
diff --git a/Cargo.toml b/Cargo.toml
index ec8acfd6d..8370b17c0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,7 +4,7 @@ members = ["crates/*"]
resolver = "2"
# Updated in the CI with a `sed` command
-package.version = "0.13.0-rc.1"
+package.version = "0.13.0-rc.2"
package.license = "AGPL-3.0-only"
package.authors = ["Element Backend Team"]
package.edition = "2021"
@@ -27,33 +27,33 @@ broken_intra_doc_links = "deny"
[workspace.dependencies]
# Workspace crates
-mas-axum-utils = { path = "./crates/axum-utils/", version = "=0.13.0-rc.1" }
-mas-cli = { path = "./crates/cli/", version = "=0.13.0-rc.1" }
-mas-config = { path = "./crates/config/", version = "=0.13.0-rc.1" }
-mas-data-model = { path = "./crates/data-model/", version = "=0.13.0-rc.1" }
-mas-email = { path = "./crates/email/", version = "=0.13.0-rc.1" }
-mas-graphql = { path = "./crates/graphql/", version = "=0.13.0-rc.1" }
-mas-handlers = { path = "./crates/handlers/", version = "=0.13.0-rc.1" }
-mas-http = { path = "./crates/http/", version = "=0.13.0-rc.1" }
-mas-i18n = { path = "./crates/i18n/", version = "=0.13.0-rc.1" }
-mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=0.13.0-rc.1" }
-mas-iana = { path = "./crates/iana/", version = "=0.13.0-rc.1" }
-mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=0.13.0-rc.1" }
-mas-jose = { path = "./crates/jose/", version = "=0.13.0-rc.1" }
-mas-keystore = { path = "./crates/keystore/", version = "=0.13.0-rc.1" }
-mas-listener = { path = "./crates/listener/", version = "=0.13.0-rc.1" }
-mas-matrix = { path = "./crates/matrix/", version = "=0.13.0-rc.1" }
-mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=0.13.0-rc.1" }
-mas-oidc-client = { path = "./crates/oidc-client/", version = "=0.13.0-rc.1" }
-mas-policy = { path = "./crates/policy/", version = "=0.13.0-rc.1" }
-mas-router = { path = "./crates/router/", version = "=0.13.0-rc.1" }
-mas-spa = { path = "./crates/spa/", version = "=0.13.0-rc.1" }
-mas-storage = { path = "./crates/storage/", version = "=0.13.0-rc.1" }
-mas-storage-pg = { path = "./crates/storage-pg/", version = "=0.13.0-rc.1" }
-mas-tasks = { path = "./crates/tasks/", version = "=0.13.0-rc.1" }
-mas-templates = { path = "./crates/templates/", version = "=0.13.0-rc.1" }
-mas-tower = { path = "./crates/tower/", version = "=0.13.0-rc.1" }
-oauth2-types = { path = "./crates/oauth2-types/", version = "=0.13.0-rc.1" }
+mas-axum-utils = { path = "./crates/axum-utils/", version = "=0.13.0-rc.2" }
+mas-cli = { path = "./crates/cli/", version = "=0.13.0-rc.2" }
+mas-config = { path = "./crates/config/", version = "=0.13.0-rc.2" }
+mas-data-model = { path = "./crates/data-model/", version = "=0.13.0-rc.2" }
+mas-email = { path = "./crates/email/", version = "=0.13.0-rc.2" }
+mas-graphql = { path = "./crates/graphql/", version = "=0.13.0-rc.2" }
+mas-handlers = { path = "./crates/handlers/", version = "=0.13.0-rc.2" }
+mas-http = { path = "./crates/http/", version = "=0.13.0-rc.2" }
+mas-i18n = { path = "./crates/i18n/", version = "=0.13.0-rc.2" }
+mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=0.13.0-rc.2" }
+mas-iana = { path = "./crates/iana/", version = "=0.13.0-rc.2" }
+mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=0.13.0-rc.2" }
+mas-jose = { path = "./crates/jose/", version = "=0.13.0-rc.2" }
+mas-keystore = { path = "./crates/keystore/", version = "=0.13.0-rc.2" }
+mas-listener = { path = "./crates/listener/", version = "=0.13.0-rc.2" }
+mas-matrix = { path = "./crates/matrix/", version = "=0.13.0-rc.2" }
+mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=0.13.0-rc.2" }
+mas-oidc-client = { path = "./crates/oidc-client/", version = "=0.13.0-rc.2" }
+mas-policy = { path = "./crates/policy/", version = "=0.13.0-rc.2" }
+mas-router = { path = "./crates/router/", version = "=0.13.0-rc.2" }
+mas-spa = { path = "./crates/spa/", version = "=0.13.0-rc.2" }
+mas-storage = { path = "./crates/storage/", version = "=0.13.0-rc.2" }
+mas-storage-pg = { path = "./crates/storage-pg/", version = "=0.13.0-rc.2" }
+mas-tasks = { path = "./crates/tasks/", version = "=0.13.0-rc.2" }
+mas-templates = { path = "./crates/templates/", version = "=0.13.0-rc.2" }
+mas-tower = { path = "./crates/tower/", version = "=0.13.0-rc.2" }
+oauth2-types = { path = "./crates/oauth2-types/", version = "=0.13.0-rc.2" }
# OpenAPI schema generation and validation
[workspace.dependencies.aide]
diff --git a/Dockerfile b/Dockerfile
index b7d5fc0a8..269e7946a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -142,6 +142,10 @@ RUN --network=default \
# Build the rest
COPY ./ /app
ENV SQLX_OFFLINE=true
+
+ARG VERGEN_GIT_DESCRIBE
+ENV VERGEN_GIT_DESCRIBE=${VERGEN_GIT_DESCRIBE}
+
# Network access: cargo auditable needs it
RUN --network=default \
cargo auditable build \
diff --git a/crates/cli/build.rs b/crates/cli/build.rs
index 9ae5f0674..18e64cc21 100644
--- a/crates/cli/build.rs
+++ b/crates/cli/build.rs
@@ -1,4 +1,4 @@
-// Copyright 2024 New Vector Ltd.
+// Copyright 2024, 2025 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only
// Please see LICENSE in the repository root for full details.
@@ -6,7 +6,18 @@
use vergen_gitcl::{Emitter, GitclBuilder, RustcBuilder};
fn main() -> anyhow::Result<()> {
- let gitcl = GitclBuilder::default().describe(true, true, None).build()?;
+ // At build time, we override the version through the environment variable
+ // VERGEN_GIT_DESCRIBE. In some contexts, it means this variable is set but
+ // empty, so we unset it here.
+ if let Ok(ver) = std::env::var("VERGEN_GIT_DESCRIBE") {
+ if ver.is_empty() {
+ std::env::remove_var("VERGEN_GIT_DESCRIBE");
+ }
+ }
+
+ let gitcl = GitclBuilder::default()
+ .describe(true, false, Some("v*.*.*"))
+ .build()?;
let rustc = RustcBuilder::default().semver(true).build()?;
Emitter::default()
diff --git a/docker-bake.hcl b/docker-bake.hcl
index 1c3e94d9c..0df1c848f 100644
--- a/docker-bake.hcl
+++ b/docker-bake.hcl
@@ -1,3 +1,8 @@
+// This is used to set the version reported by the binary through an environment
+// variable. This is mainly useful when building out of a git context, like in
+// CI, where we don't have the full commit history available
+variable "VERGEN_GIT_DESCRIBE" {}
+
// This is what is baked by GitHub Actions
group "default" { targets = ["regular", "debug", "syn2mas"] }
@@ -11,8 +16,11 @@ target "docker-metadata-action-syn2mas" {}
target "base" {
args = {
// This is set so that when we use a git context, the .git directory is
- // present, as we infer the version at build time out of it
+ // present, as we may be infering the version at build time out of it
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
+
+ // Pass down the version from an external git describe source
+ VERGEN_GIT_DESCRIBE = "${VERGEN_GIT_DESCRIBE}"
}
platforms = [
diff --git a/frontend/locales/cs.json b/frontend/locales/cs.json
index 67ca92c97..b21e49621 100644
--- a/frontend/locales/cs.json
+++ b/frontend/locales/cs.json
@@ -62,7 +62,7 @@
"email_exists_error": "Zadaný e-mail je již přidán k tomuto účtu",
"email_field_help": "Přidejte alternativní e-mail, který můžete použít pro přístup k tomuto účtu.",
"email_field_label": "Přidat e-mail",
- "email_in_use_error": "The entered email is already in use",
+ "email_in_use_error": "Zadaný e-mail se již používá",
"email_invalid_alert": {
"text": "Zadaný email je neplatný",
"title": "Neplatný e-mail"
@@ -102,7 +102,7 @@
"web": "Web"
},
"email_in_use": {
- "heading": "The email address {{email}} is already in use."
+ "heading": "E-mailová adresa {{email}} se již používá."
},
"end_session_button": {
"confirmation_modal_title": "Opravdu chcete ukončit tuto relaci?",
@@ -338,8 +338,8 @@
},
"verify_email": {
"code_expired_alert": {
- "description": "The code has expired. Please request a new code.",
- "title": "Code expired"
+ "description": "Platnost kódu vypršela. Vyžádejte si prosím nový kód.",
+ "title": "Kód vypršel"
},
"code_field_error": "Kód nebyl rozpoznán",
"code_field_label": "6místný kód",
diff --git a/frontend/locales/de.json b/frontend/locales/de.json
index 9167696ee..b4df32452 100644
--- a/frontend/locales/de.json
+++ b/frontend/locales/de.json
@@ -62,7 +62,7 @@
"email_exists_error": "Die eingegebene E-Mail-Adresse ist diesem Konto bereits zugeordnet",
"email_field_help": "Fügen Sie eine alternative E-Mail-Adresse hinzu, mit der Sie auf dieses Konto zugreifen können.",
"email_field_label": "E-Mail-Adresse hinzufügen",
- "email_in_use_error": "The entered email is already in use",
+ "email_in_use_error": "Die eingegebene E-Mail-Adresse wird bereits verwendet",
"email_invalid_alert": {
"text": "Die eingegebene E-Mail-Adresse ist ungültig",
"title": "Ungültige Email-Adresse"
@@ -101,7 +101,7 @@
"web": "Web"
},
"email_in_use": {
- "heading": "The email address {{email}} is already in use."
+ "heading": "Die E-Mail-Adresse {{email}} wird bereits verwendet."
},
"end_session_button": {
"confirmation_modal_title": "Sind Sie sicher, dass Sie diese Sitzung abmelden möchten?",
@@ -116,7 +116,7 @@
"error_boundary_title": "Etwas ist schief gelaufen",
"errors": {
"field_required": "Dieses Feld ist erforderlich",
- "rate_limit_exceeded": "You've made too many requests in a short period. Please wait a few minutes and try again."
+ "rate_limit_exceeded": "Sie haben in kurzer Zeit zu viele Anfragen gestellt. Bitte warten Sie ein paar Minuten und versuchen Sie es erneut."
},
"last_active": {
"active_date": "Aktiv {{relativeDate}}",
@@ -175,15 +175,15 @@
},
"password_reset": {
"consumed": {
- "subtitle": "To create a new password, start over and select ”Forgot password“.",
- "title": "The link to reset your password has already been used"
+ "subtitle": "Um ein neues Passwort zu erstellen, beginnen Sie von vorne und wählen Sie „Passwort vergessen“.",
+ "title": "Der Link zum Zurücksetzen Ihres Passworts wurde bereits verwendet"
},
"expired": {
- "resend_email": "Resend email",
- "subtitle": "Request a new email that will be sent to: {{email}}",
- "title": "The link to reset your password has expired"
+ "resend_email": "E-Mail erneut senden",
+ "subtitle": "Fordern Sie eine neue E-Mail an, die gesendet wird an: {{email}}",
+ "title": "Der Link zum Zurücksetzen Ihres Passworts ist abgelaufen"
},
- "subtitle": "Choose a new password for your account.",
+ "subtitle": "Wählen Sie ein neues Passwort für Ihr Konto.",
"title": "Passwort zurücksetzen"
},
"password_strength": {
@@ -335,8 +335,8 @@
},
"verify_email": {
"code_expired_alert": {
- "description": "The code has expired. Please request a new code.",
- "title": "Code expired"
+ "description": "Der Code ist abgelaufen. Bitte fordern Sie einen neuen Code an.",
+ "title": "Code abgelaufen"
},
"code_field_error": "Code nicht erkannt",
"code_field_label": "6-stelliger Code",
diff --git a/frontend/locales/et.json b/frontend/locales/et.json
index 8e864c096..4718b1f37 100644
--- a/frontend/locales/et.json
+++ b/frontend/locales/et.json
@@ -62,7 +62,7 @@
"email_exists_error": "Sisestatud e-posti aadress on juba selle kasutajakontoga seotud",
"email_field_help": "Ligipääsuks sellele kasutajakontole lisa täiendav e-posti aadress.",
"email_field_label": "Lisa e-posti aadress",
- "email_in_use_error": "The entered email is already in use",
+ "email_in_use_error": "Sisestatud e-posti aadress on juba kasutusel",
"email_invalid_alert": {
"text": "Lisatud e-posti aadress on vigane",
"title": "Vigane e-posti aadress"
@@ -101,7 +101,7 @@
"web": "Veebirakendus"
},
"email_in_use": {
- "heading": "The email address {{email}} is already in use."
+ "heading": "E-posti aadress {{email}} on juba kasutusel."
},
"end_session_button": {
"confirmation_modal_title": "Kas sa oled kindel, et soovid selle sessiooni lõpetada?",
@@ -335,8 +335,8 @@
},
"verify_email": {
"code_expired_alert": {
- "description": "The code has expired. Please request a new code.",
- "title": "Code expired"
+ "description": "Kood on aegunud. Palun tee päring uue koodi saamiseks.",
+ "title": "Kood on aegunud"
},
"code_field_error": "Kood pole õige",
"code_field_label": "6-numbriline kood",
diff --git a/frontend/locales/sv.json b/frontend/locales/sv.json
index 3b8391ad3..2079c8db1 100644
--- a/frontend/locales/sv.json
+++ b/frontend/locales/sv.json
@@ -62,7 +62,7 @@
"email_exists_error": "Den angivna e-postadressen har redan lagts till i det här kontot",
"email_field_help": "Lägg till en alternativ e-postadress som du kan använda för att komma åt det här kontot.",
"email_field_label": "Lägg till e-post",
- "email_in_use_error": "The entered email is already in use",
+ "email_in_use_error": "Det angivna e-postmeddelandet används redan",
"email_invalid_alert": {
"text": "Den angivna e-postadressen är ogiltig",
"title": "Ogiltig e-postadress"
@@ -101,7 +101,7 @@
"web": "Webb"
},
"email_in_use": {
- "heading": "The email address {{email}} is already in use."
+ "heading": "E-postadressen {{email}} är redan i bruk."
},
"end_session_button": {
"confirmation_modal_title": "Är du säker på att du vill avsluta denna session?",
@@ -335,8 +335,8 @@
},
"verify_email": {
"code_expired_alert": {
- "description": "The code has expired. Please request a new code.",
- "title": "Code expired"
+ "description": "Koden har upphört att gälla. Begär en ny kod.",
+ "title": "Koden har löpt ut"
},
"code_field_error": "Koden känns inte igen",
"code_field_label": "6-siffrig kod",
diff --git a/frontend/locales/uk.json b/frontend/locales/uk.json
index 65aec1c0c..2454eed26 100644
--- a/frontend/locales/uk.json
+++ b/frontend/locales/uk.json
@@ -62,7 +62,7 @@
"email_exists_error": "Введена електронна пошта вже додана до цього облікового запису",
"email_field_help": "Додайте альтернативну електронну пошту, яку ви можете використовувати для доступу до цього облікового запису.",
"email_field_label": "Додати електронну пошту",
- "email_in_use_error": "The entered email is already in use",
+ "email_in_use_error": "Введена електронна пошта вже використовується",
"email_invalid_alert": {
"text": "Введена електронна пошта недійсна",
"title": "Невірна електронна пошта"
@@ -102,7 +102,7 @@
"web": "Web"
},
"email_in_use": {
- "heading": "The email address {{email}} is already in use."
+ "heading": "Адреса електронної пошти {{email}} вже використовується."
},
"end_session_button": {
"confirmation_modal_title": "Ви впевнені, що хочете закінчити цю сесію?",
@@ -338,8 +338,8 @@
},
"verify_email": {
"code_expired_alert": {
- "description": "The code has expired. Please request a new code.",
- "title": "Code expired"
+ "description": "Термін дії коду закінчився. Будь ласка, запитайте новий код.",
+ "title": "Термін дії коду закінчився"
},
"code_field_error": "Код не розпізнано",
"code_field_label": "6-значний код",
diff --git a/tools/syn2mas/package-lock.json b/tools/syn2mas/package-lock.json
index b5f511211..7ab7e563a 100644
--- a/tools/syn2mas/package-lock.json
+++ b/tools/syn2mas/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@vector-im/syn2mas",
- "version": "0.13.0-rc.1",
+ "version": "0.13.0-rc.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@vector-im/syn2mas",
- "version": "0.13.0-rc.1",
+ "version": "0.13.0-rc.2",
"license": "AGPL-3.0-only",
"dependencies": {
"command-line-args": "^6.0.0",
diff --git a/tools/syn2mas/package.json b/tools/syn2mas/package.json
index ce3d21386..44476e313 100644
--- a/tools/syn2mas/package.json
+++ b/tools/syn2mas/package.json
@@ -1,6 +1,6 @@
{
"name": "@vector-im/syn2mas",
- "version": "0.13.0-rc.1",
+ "version": "0.13.0-rc.2",
"description": "A tool to migrate Synapse users and sessions to the Matrix Authentication Service",
"license": "AGPL-3.0-only",
"author": "Matrix.org",
diff --git a/translations/cs.json b/translations/cs.json
index 2acaa05d2..d4b3b1803 100644
--- a/translations/cs.json
+++ b/translations/cs.json
@@ -6,7 +6,7 @@
"create_account": "Vytvořit účet",
"sign_in": "Přihlásit se",
"sign_out": "Odhlásit",
- "skip": "Skip",
+ "skip": "Přeskočit",
"start_over": "Začít znovu",
"submit": "Odeslat"
},
@@ -55,8 +55,8 @@
"new": "Nové heslo"
},
"choose_display_name": {
- "description": "This is the name other people will see. You can change this at any time.",
- "headline": "Choose your display name"
+ "description": "To je jméno, které uvidí ostatní lidé. Můžete to kdykoli změnit.",
+ "headline": "Zvolte zobrazované jméno"
},
"consent": {
"client_wants_access": "%(client_name)s na adrese %(redirect_uri)s chce získat přístup k vašemu účtu.",
@@ -87,8 +87,8 @@
}
},
"email_in_use": {
- "description": "If you have forgotten your account credentials, you can recover your account. You can also start over and use a different email address.",
- "title": "The email address %(email)s is already in use"
+ "description": "Pokud jste zapomněli přihlašovací údaje k účtu, můžete účet obnovit. Můžete také začít znovu a použít jinou e-mailovou adresu.",
+ "title": "E-mailová adresa %(email)s je již používána"
},
"emails": {
"greeting": "Dobrý den, %(username)s,",
diff --git a/translations/de.json b/translations/de.json
index 641e2929f..780f50aa5 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -6,7 +6,7 @@
"create_account": "Konto erstellen",
"sign_in": "Anmelden",
"sign_out": "Abmelden",
- "skip": "Skip",
+ "skip": "Überspringen",
"start_over": "Von vorne anfangen",
"submit": "Absenden"
},
@@ -55,8 +55,8 @@
"new": "Neues Passwort"
},
"choose_display_name": {
- "description": "This is the name other people will see. You can change this at any time.",
- "headline": "Choose your display name"
+ "description": "Dies ist der Name, den andere Leute sehen werden. Sie können dies jederzeit ändern.",
+ "headline": "Wähle deinen Anzeigenamen"
},
"consent": {
"client_wants_access": "%(client_name)s auf %(redirect_uri)s möchte auf Ihr Konto zugreifen.",
@@ -87,8 +87,8 @@
}
},
"email_in_use": {
- "description": "If you have forgotten your account credentials, you can recover your account. You can also start over and use a different email address.",
- "title": "The email address %(email)s is already in use"
+ "description": "Wenn Sie Ihre Kontoinformationen vergessen haben, können Sie Ihr Konto wiederherstellen. Sie können auch von vorne beginnen und eine andere E-Mail-Adresse verwenden.",
+ "title": "Die E-Mail-Adresse %(email)s wird bereits verwendet"
},
"emails": {
"greeting": "Hallo %(username)s,",
diff --git a/translations/et.json b/translations/et.json
index 4c9f9ca79..9c8d3eb69 100644
--- a/translations/et.json
+++ b/translations/et.json
@@ -6,7 +6,7 @@
"create_account": "Loo konto",
"sign_in": "Logi sisse",
"sign_out": "Logi välja",
- "skip": "Skip",
+ "skip": "Jäta vahele",
"start_over": "Alusta uuesti",
"submit": "Saada"
},
@@ -55,8 +55,8 @@
"new": "Uus salasõna"
},
"choose_display_name": {
- "description": "This is the name other people will see. You can change this at any time.",
- "headline": "Choose your display name"
+ "description": "Sellise nimena näevad sind kõik teised kasutajad. Seda saad hiljem alati muuta.",
+ "headline": "Vali oma kuvatav nimi"
},
"consent": {
"client_wants_access": "%(client_name)s aadressil %(redirect_uri)s soovib ligipääsu sinu kasutajakontole.",
@@ -87,8 +87,8 @@
}
},
"email_in_use": {
- "description": "If you have forgotten your account credentials, you can recover your account. You can also start over and use a different email address.",
- "title": "The email address %(email)s is already in use"
+ "description": "Kui sa oled unustanud oma konto kasutajanime ja/või salasõna, siis on sul võimalik taastada ligipääs oma kasutajakontole. Lisaks saad uue e-posti aadressi abil alustada nullist.",
+ "title": "E-posti aadress %(email)s on juba kasutusel"
},
"emails": {
"greeting": "Tere %(username)s,",
@@ -186,7 +186,7 @@
"call_to_login": "Sul on kasutajakonto juba olemas?",
"continue_with_email": "Jätka e-posti aadressiga",
"create_account": {
- "description": "Alustamiseks palun loo kasutajakonto:",
+ "description": "Jätkamiseks palun vali kasutajanimi.",
"heading": "Loo kasutajakonto"
},
"sign_in_instead": "Siis logi sisse",
diff --git a/translations/sv.json b/translations/sv.json
index 46f102fc9..ca0a26490 100644
--- a/translations/sv.json
+++ b/translations/sv.json
@@ -6,7 +6,7 @@
"create_account": "Skapa konto",
"sign_in": "Logga in",
"sign_out": "Logga ut",
- "skip": "Skip",
+ "skip": "Hoppa över",
"start_over": "Börja om",
"submit": "Skicka in"
},
@@ -55,8 +55,8 @@
"new": "Nytt lösenord"
},
"choose_display_name": {
- "description": "This is the name other people will see. You can change this at any time.",
- "headline": "Choose your display name"
+ "description": "Detta är namnet andra människor kommer att se. Du kan ändra detta när som helst.",
+ "headline": "Välj ditt visningsnamn"
},
"consent": {
"client_wants_access": "%(client_name)s på %(redirect_uri)s vill få tillgång till ditt konto.",
@@ -87,8 +87,8 @@
}
},
"email_in_use": {
- "description": "If you have forgotten your account credentials, you can recover your account. You can also start over and use a different email address.",
- "title": "The email address %(email)s is already in use"
+ "description": "Om du har glömt dina kontouppgifter kan du återställa ditt konto. Du kan också börja om och använda en annan e-postadress.",
+ "title": "E-postadressen %(email)s är redan i bruk"
},
"emails": {
"greeting": "Hej %(username)s,",
diff --git a/translations/uk.json b/translations/uk.json
index 9fd4c6237..37ca1733b 100644
--- a/translations/uk.json
+++ b/translations/uk.json
@@ -6,7 +6,7 @@
"create_account": "Створити обліковий запис",
"sign_in": "Увійти",
"sign_out": "Вийти",
- "skip": "Skip",
+ "skip": "Пропустити",
"start_over": "Розпочати знову",
"submit": "Надіслати"
},
@@ -55,8 +55,8 @@
"new": "Новий пароль"
},
"choose_display_name": {
- "description": "This is the name other people will see. You can change this at any time.",
- "headline": "Choose your display name"
+ "description": "Це ім'я, яке побачать інші люди. Ви можете змінити його в будь-який час.",
+ "headline": "Виберіть своє ім'я для відображення"
},
"consent": {
"client_wants_access": "%(client_name)s за %(redirect_uri)s хоче звернутися до вашого облікового запису.",
@@ -87,8 +87,8 @@
}
},
"email_in_use": {
- "description": "If you have forgotten your account credentials, you can recover your account. You can also start over and use a different email address.",
- "title": "The email address %(email)s is already in use"
+ "description": "Якщо ви забули свої облікові дані, ви можете відновити обліковий запис. Ви також можете почати спочатку та використати іншу електронну адресу.",
+ "title": "Адреса електронної пошти %(email)s вже використовується"
},
"emails": {
"greeting": "Вітаю %(username)s,",