diff --git a/Cargo.lock b/Cargo.lock index 960486886..73b0a9733 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3106,7 +3106,7 @@ dependencies = [ [[package]] name = "mas-axum-utils" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "axum", @@ -3140,7 +3140,7 @@ dependencies = [ [[package]] name = "mas-cli" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "axum", @@ -3213,7 +3213,7 @@ dependencies = [ [[package]] name = "mas-config" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "camino", @@ -3243,7 +3243,7 @@ dependencies = [ [[package]] name = "mas-context" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "console", "opentelemetry", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "mas-data-model" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "base64ct", "chrono", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "mas-email" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "async-trait", "lettre", @@ -3291,7 +3291,7 @@ dependencies = [ [[package]] name = "mas-handlers" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "aide", "anyhow", @@ -3369,7 +3369,7 @@ dependencies = [ [[package]] name = "mas-http" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "futures-util", "headers", @@ -3390,7 +3390,7 @@ dependencies = [ [[package]] name = "mas-i18n" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "camino", "icu_calendar", @@ -3412,7 +3412,7 @@ dependencies = [ [[package]] name = "mas-i18n-scan" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "camino", "clap", @@ -3426,7 +3426,7 @@ dependencies = [ [[package]] name = "mas-iana" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "schemars", "serde", @@ -3434,7 +3434,7 @@ dependencies = [ [[package]] name = "mas-iana-codegen" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3450,7 +3450,7 @@ dependencies = [ [[package]] name = "mas-jose" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "base64ct", "chrono", @@ -3480,7 +3480,7 @@ dependencies = [ [[package]] name = "mas-keystore" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "aead", "base64ct", @@ -3508,7 +3508,7 @@ dependencies = [ [[package]] name = "mas-listener" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "bytes", @@ -3533,7 +3533,7 @@ dependencies = [ [[package]] name = "mas-matrix" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3543,7 +3543,7 @@ dependencies = [ [[package]] name = "mas-matrix-synapse" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3560,7 +3560,7 @@ dependencies = [ [[package]] name = "mas-oidc-client" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "assert_matches", "async-trait", @@ -3596,7 +3596,7 @@ dependencies = [ [[package]] name = "mas-policy" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "arc-swap", @@ -3613,7 +3613,7 @@ dependencies = [ [[package]] name = "mas-router" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "axum", "serde", @@ -3624,7 +3624,7 @@ dependencies = [ [[package]] name = "mas-spa" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "camino", "serde", @@ -3633,7 +3633,7 @@ dependencies = [ [[package]] name = "mas-storage" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "async-trait", "chrono", @@ -3655,7 +3655,7 @@ dependencies = [ [[package]] name = "mas-storage-pg" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "async-trait", "chrono", @@ -3681,7 +3681,7 @@ dependencies = [ [[package]] name = "mas-tasks" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3713,7 +3713,7 @@ dependencies = [ [[package]] name = "mas-templates" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "arc-swap", @@ -3743,7 +3743,7 @@ dependencies = [ [[package]] name = "mas-tower" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "http", "opentelemetry", @@ -4013,7 +4013,7 @@ dependencies = [ [[package]] name = "oauth2-types" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "assert_matches", "base64ct", @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "syn2mas" -version = "0.16.0-rc.0" +version = "0.16.0-rc.1" dependencies = [ "anyhow", "arc-swap", diff --git a/Cargo.toml b/Cargo.toml index 1b8cefc94..bbcbc7c15 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.16.0-rc.0" +package.version = "0.16.0-rc.1" package.license = "AGPL-3.0-only" package.authors = ["Element Backend Team"] package.edition = "2024" @@ -27,35 +27,35 @@ broken_intra_doc_links = "deny" [workspace.dependencies] # Workspace crates -mas-axum-utils = { path = "./crates/axum-utils/", version = "=0.16.0-rc.0" } -mas-cli = { path = "./crates/cli/", version = "=0.16.0-rc.0" } -mas-config = { path = "./crates/config/", version = "=0.16.0-rc.0" } -mas-context = { path = "./crates/context/", version = "=0.16.0-rc.0" } -mas-data-model = { path = "./crates/data-model/", version = "=0.16.0-rc.0" } -mas-email = { path = "./crates/email/", version = "=0.16.0-rc.0" } -mas-graphql = { path = "./crates/graphql/", version = "=0.16.0-rc.0" } -mas-handlers = { path = "./crates/handlers/", version = "=0.16.0-rc.0" } -mas-http = { path = "./crates/http/", version = "=0.16.0-rc.0" } -mas-i18n = { path = "./crates/i18n/", version = "=0.16.0-rc.0" } -mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=0.16.0-rc.0" } -mas-iana = { path = "./crates/iana/", version = "=0.16.0-rc.0" } -mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=0.16.0-rc.0" } -mas-jose = { path = "./crates/jose/", version = "=0.16.0-rc.0" } -mas-keystore = { path = "./crates/keystore/", version = "=0.16.0-rc.0" } -mas-listener = { path = "./crates/listener/", version = "=0.16.0-rc.0" } -mas-matrix = { path = "./crates/matrix/", version = "=0.16.0-rc.0" } -mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=0.16.0-rc.0" } -mas-oidc-client = { path = "./crates/oidc-client/", version = "=0.16.0-rc.0" } -mas-policy = { path = "./crates/policy/", version = "=0.16.0-rc.0" } -mas-router = { path = "./crates/router/", version = "=0.16.0-rc.0" } -mas-spa = { path = "./crates/spa/", version = "=0.16.0-rc.0" } -mas-storage = { path = "./crates/storage/", version = "=0.16.0-rc.0" } -mas-storage-pg = { path = "./crates/storage-pg/", version = "=0.16.0-rc.0" } -mas-tasks = { path = "./crates/tasks/", version = "=0.16.0-rc.0" } -mas-templates = { path = "./crates/templates/", version = "=0.16.0-rc.0" } -mas-tower = { path = "./crates/tower/", version = "=0.16.0-rc.0" } -oauth2-types = { path = "./crates/oauth2-types/", version = "=0.16.0-rc.0" } -syn2mas = { path = "./crates/syn2mas", version = "=0.16.0-rc.0" } +mas-axum-utils = { path = "./crates/axum-utils/", version = "=0.16.0-rc.1" } +mas-cli = { path = "./crates/cli/", version = "=0.16.0-rc.1" } +mas-config = { path = "./crates/config/", version = "=0.16.0-rc.1" } +mas-context = { path = "./crates/context/", version = "=0.16.0-rc.1" } +mas-data-model = { path = "./crates/data-model/", version = "=0.16.0-rc.1" } +mas-email = { path = "./crates/email/", version = "=0.16.0-rc.1" } +mas-graphql = { path = "./crates/graphql/", version = "=0.16.0-rc.1" } +mas-handlers = { path = "./crates/handlers/", version = "=0.16.0-rc.1" } +mas-http = { path = "./crates/http/", version = "=0.16.0-rc.1" } +mas-i18n = { path = "./crates/i18n/", version = "=0.16.0-rc.1" } +mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=0.16.0-rc.1" } +mas-iana = { path = "./crates/iana/", version = "=0.16.0-rc.1" } +mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=0.16.0-rc.1" } +mas-jose = { path = "./crates/jose/", version = "=0.16.0-rc.1" } +mas-keystore = { path = "./crates/keystore/", version = "=0.16.0-rc.1" } +mas-listener = { path = "./crates/listener/", version = "=0.16.0-rc.1" } +mas-matrix = { path = "./crates/matrix/", version = "=0.16.0-rc.1" } +mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=0.16.0-rc.1" } +mas-oidc-client = { path = "./crates/oidc-client/", version = "=0.16.0-rc.1" } +mas-policy = { path = "./crates/policy/", version = "=0.16.0-rc.1" } +mas-router = { path = "./crates/router/", version = "=0.16.0-rc.1" } +mas-spa = { path = "./crates/spa/", version = "=0.16.0-rc.1" } +mas-storage = { path = "./crates/storage/", version = "=0.16.0-rc.1" } +mas-storage-pg = { path = "./crates/storage-pg/", version = "=0.16.0-rc.1" } +mas-tasks = { path = "./crates/tasks/", version = "=0.16.0-rc.1" } +mas-templates = { path = "./crates/templates/", version = "=0.16.0-rc.1" } +mas-tower = { path = "./crates/tower/", version = "=0.16.0-rc.1" } +oauth2-types = { path = "./crates/oauth2-types/", version = "=0.16.0-rc.1" } +syn2mas = { path = "./crates/syn2mas", version = "=0.16.0-rc.1" } # OpenAPI schema generation and validation [workspace.dependencies.aide] diff --git a/crates/cli/src/commands/syn2mas.rs b/crates/cli/src/commands/syn2mas.rs index efc083d05..ac009f5cf 100644 --- a/crates/cli/src/commands/syn2mas.rs +++ b/crates/cli/src/commands/syn2mas.rs @@ -105,7 +105,7 @@ impl Options { synapse_config .database .to_sqlx_postgres() - .context("Synapse configuration does not use Postgres, cannot migrate.")? + .context("Synapse database configuration is invalid, cannot migrate.")? }; let mut syn_conn = PgConnection::connect_with(&syn_connection_options) .await diff --git a/crates/syn2mas/src/synapse_reader/config/mod.rs b/crates/syn2mas/src/synapse_reader/config/mod.rs index 390dacaa8..3abf2e567 100644 --- a/crates/syn2mas/src/synapse_reader/config/mod.rs +++ b/crates/syn2mas/src/synapse_reader/config/mod.rs @@ -238,13 +238,21 @@ impl DatabaseSection { /// environment variables) as Synapse normally runs, then the connection /// options may not be valid. /// - /// Returns `None` if this database configuration is not configured for - /// Postgres. - #[must_use] - pub fn to_sqlx_postgres(&self) -> Option { + /// # Errors + /// + /// Returns an error if this database configuration is invalid or + /// unsupported. + pub fn to_sqlx_postgres(&self) -> Result { if self.name != SYNAPSE_DATABASE_DRIVER_NAME_PSYCOPG2 { - return None; + anyhow::bail!("syn2mas does not support the {} database driver", self.name); + } + + if self.args.database.is_some() && self.args.dbname.is_some() { + anyhow::bail!( + "Only one of `database` and `dbname` may be specified in the Synapse database configuration, not both." + ); } + let mut opts = PgConnectOptions::new().application_name("syn2mas-synapse"); if let Some(host) = &self.args.host { @@ -256,6 +264,9 @@ impl DatabaseSection { if let Some(dbname) = &self.args.dbname { opts = opts.database(dbname); } + if let Some(database) = &self.args.database { + opts = opts.database(database); + } if let Some(user) = &self.args.user { opts = opts.username(user); } @@ -263,7 +274,7 @@ impl DatabaseSection { opts = opts.password(password); } - Some(opts) + Ok(opts) } } @@ -275,6 +286,8 @@ pub struct DatabaseArgsSuboption { pub user: Option, pub password: Option, pub dbname: Option, + // This is a deperecated way of specifying the database name. + pub database: Option, pub host: Option, pub port: Option, } @@ -357,7 +370,24 @@ mod test { args: DatabaseArgsSuboption::default(), } .to_sqlx_postgres() - .is_none() + .is_err() + ); + + // Only one of `database` and `dbname` may be specified + assert!( + DatabaseSection { + name: "psycopg2".to_owned(), + args: DatabaseArgsSuboption { + user: Some("synapse_user".to_owned()), + password: Some("verysecret".to_owned()), + dbname: Some("synapse_db".to_owned()), + database: Some("synapse_db".to_owned()), + host: Some("synapse-db.example.com".to_owned()), + port: Some(42), + }, + } + .to_sqlx_postgres() + .is_err() ); assert_eq_options( @@ -374,6 +404,7 @@ mod test { user: Some("synapse_user".to_owned()), password: Some("verysecret".to_owned()), dbname: Some("synapse_db".to_owned()), + database: None, host: Some("synapse-db.example.com".to_owned()), port: Some(42), }, diff --git a/frontend/.storybook/locales.ts b/frontend/.storybook/locales.ts index 61129bca2..411996a16 100644 --- a/frontend/.storybook/locales.ts +++ b/frontend/.storybook/locales.ts @@ -27,7 +27,7 @@ export type LocalazyMetadata = { }; const localazyMetadata: LocalazyMetadata = { - projectUrl: "https://localazy.com/p/matrix-authentication-service", + projectUrl: "https://localazy.com/p/matrix-authentication-service!v0.16", baseLocale: "en", languages: [ { @@ -93,6 +93,15 @@ const localazyMetadata: LocalazyMetadata = { localizedName: "Français", pluralType: (n) => { return (n===0 || n===1) ? "one" : "other"; } }, + { + language: "hu", + region: "", + script: "", + isRtl: false, + name: "Hungarian", + localizedName: "Magyar", + pluralType: (n) => { return (n===1) ? "one" : "other"; } + }, { language: "nl", region: "", @@ -154,19 +163,20 @@ const localazyMetadata: LocalazyMetadata = { file: "frontend.json", path: "", cdnFiles: { - "cs": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/cs/frontend.json", - "da": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/da/frontend.json", - "de": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/de/frontend.json", - "en": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/en/frontend.json", - "et": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/et/frontend.json", - "fi": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fi/frontend.json", - "fr": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fr/frontend.json", - "nl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nl/frontend.json", - "pt": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt/frontend.json", - "ru": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/ru/frontend.json", - "sv": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sv/frontend.json", - "uk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uk/frontend.json", - "zh#Hans": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/zh-Hans/frontend.json" + "cs": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/cs/frontend.json", + "da": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/da/frontend.json", + "de": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/de/frontend.json", + "en": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/en/frontend.json", + "et": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/et/frontend.json", + "fi": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fi/frontend.json", + "fr": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fr/frontend.json", + "hu": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/hu/frontend.json", + "nl": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nl/frontend.json", + "pt": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt/frontend.json", + "ru": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/ru/frontend.json", + "sv": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sv/frontend.json", + "uk": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uk/frontend.json", + "zh#Hans": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/zh-Hans/frontend.json" } }, { @@ -174,19 +184,20 @@ const localazyMetadata: LocalazyMetadata = { file: "file.json", path: "", cdnFiles: { - "cs": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/cs/file.json", - "da": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/da/file.json", - "de": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/de/file.json", - "en": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/en/file.json", - "et": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/et/file.json", - "fi": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fi/file.json", - "fr": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fr/file.json", - "nl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nl/file.json", - "pt": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt/file.json", - "ru": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/ru/file.json", - "sv": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sv/file.json", - "uk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uk/file.json", - "zh#Hans": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/zh-Hans/file.json" + "cs": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/cs/file.json", + "da": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/da/file.json", + "de": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/de/file.json", + "en": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/en/file.json", + "et": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/et/file.json", + "fi": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fi/file.json", + "fr": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fr/file.json", + "hu": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/hu/file.json", + "nl": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nl/file.json", + "pt": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt/file.json", + "ru": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/ru/file.json", + "sv": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sv/file.json", + "uk": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uk/file.json", + "zh#Hans": "https://delivery.localazy.com/_a696598048905356011407e70af3/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/zh-Hans/file.json" } } ] diff --git a/frontend/locales/hu.json b/frontend/locales/hu.json index fc27e6b2d..71b4dc1c7 100644 --- a/frontend/locales/hu.json +++ b/frontend/locales/hu.json @@ -197,12 +197,12 @@ "password_reset": { "consumed": { "subtitle": "Új jelszó létrehozásához kezdje elölről, és válassza a „Elfelejtett jelszó” lehetőséget.", - "title": "A jelszóhelyreállítási hivatkozás már fel lett használva" + "title": "A jelszó-visszaállítási hivatkozás már fel lett használva" }, "expired": { "resend_email": "Levél újraküldése", "subtitle": "Új levél kérése, amely ide lesz elküldve: {{email}}", - "title": "A jelszóvisszaállítási hivatkozás lejárt" + "title": "A jelszó-visszaállítási hivatkozás lejárt" }, "subtitle": "Válasszon egy új jelszót a fiókjához.", "title": "Jelszó visszaállítása" @@ -253,11 +253,11 @@ } }, "reset_cross_signing": { - "button": "Személyazonosság visszaállítása", + "button": "Személyazonosság alaphelyzetbe állítása", "cancelled": { "description_1": "A folytatáshoz bezárhatja ezt az ablakot, és visszatérhet az alkalmazáshoz.", - "description_2": "Ha mindenhonnan kijelentkezett, és nem emlékszik a helyreállítási kódjára, akkor vissza kell állítania a személyazonosságát.", - "heading": "Személyazonosság visszaállítása megszakítva." + "description_2": "Ha mindenhonnan kijelentkezett, és nem emlékszik a helyreállítási kódjára, akkor alaphelyzetbe kell állítania a személyazonosságát.", + "heading": "Személyazonosság alaphelyzetbe állítása megszakítva." }, "description": "Ha nincs bejelentkezve egyetlen más eszközön sem, és elvesztette a helyreállítási kulcsát, akkor az alkalmazás használatának folytatásához alaphelyzetbe kell állítania a személyazonosságát.", "effect_list": { @@ -299,6 +299,11 @@ "last_auth_label": "Legutóbbi hitelesítés", "name_for_platform": "{{name}} erre: {{platform}}", "scopes_label": "Hatókörök", + "set_device_name": { + "help": "Set a name that will help you identify this device.", + "label": "Device name", + "title": "Edit device name" + }, "signed_in_date": "Bejelentkezve: ", "signed_in_label": "Bejelentkezve", "title": "Eszköz részletei", diff --git a/translations/hu.json b/translations/hu.json index 0ecc642c6..e45585bce 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -11,7 +11,7 @@ "submit": "Elküldés" }, "app": { - "human_name": "Matrix hitelesítési szolgáltatás", + "human_name": "Matrix Authentication Service", "name": "matrix-authentication-service", "technical_description": "OpenID Connect felfedezési dokumentum: %(discovery_url)s" }, @@ -70,7 +70,7 @@ }, "choose_display_name": { "description": "Ez az a név, melyet a többi ember látni fog. Ezt bármikor módosíthatja.", - "headline": "Válasszon megjelenítési nevet" + "headline": "Válasszon megjelenítési név" }, "consent": { "client_wants_access": "A(z) %(client_name)s (itt: %(redirect_uri)s) hozzá akar férni a fiókjához.", @@ -100,6 +100,11 @@ "heading": "Hozzáférés megadva" } }, + "device_display_name": { + "client_on_device": "%(client_name)s on %(device_name)s", + "name_for_platform": "%(name)s for %(platform)s", + "unknown_device": "Unknown device" + }, "email_in_use": { "description": "Ha elfelejtette a fiókja hitelesítő adatait, akkor helyreállíthatja a fiókját. Újra is kezdheti egy másik e-mail-címmel.", "title": "A(z) %(email)s e-mail-cím már használatban van" @@ -151,7 +156,7 @@ "headline": "Bejelentkezés az összekötéshez" }, "no_login_methods": "Nem érhetőek el bejelentkezési módok.", - "separator": "vagy", + "separator": "Vagy", "username_or_email": "Felhasználónév vagy e-mail-cím" }, "navbar": { @@ -164,7 +169,7 @@ "heading": "Az oldal nem található" }, "not_you": "Nem %(username)s?", - "or_separator": "vagy", + "or_separator": "Vagy", "policy_violation": { "description": "Ez a kérést feladó kliens, a jelenleg bejelentkezett felhasználó, vagy maga a kérés miatt is lehet.", "heading": "Az engedélyezési kérés a szolgáltatás által betartatott házirend alapján elutasítva", @@ -173,7 +178,7 @@ "recovery": { "consumed": { "description": "Új jelszó létrehozásához kezdje elölről, és válassza a „Elfelejtett jelszó” lehetőséget.", - "heading": "A jelszóhelyreállítási hivatkozás már fel lett használva" + "heading": "A jelszó-visszaállítási hivatkozás már fel lett használva" }, "disabled": { "description": "Ha elvesztette a hitelesítő adatait, akkor a fiókja visszaszerzéséhez lépjen kapcsolatba a rendszergazdával.", @@ -181,7 +186,7 @@ }, "expired": { "description": "Új e-mail kérése, amely ide lesz küldve: %(email)s.", - "heading": "A jelszóvisszaállítási hivatkozás lejárt", + "heading": "A jelszó-visszaállítási hivatkozás lejárt", "resend_email": "Levél újraküldése" }, "finish": { @@ -193,12 +198,12 @@ }, "progress": { "change_email": "Próbálkozás másik e-mail-címmel", - "description": "Egy jelszóvisszaállítási hivatkozást tartalmazó levelet küldtünk, ha van fiókja a(z) %(email)s címmel.", + "description": "Egy jelszó-visszaállítási hivatkozást tartalmazó levelet küldtünk, ha van fiókja a(z) %(email)s címmel.", "heading": "Nézze meg a leveleit", "resend_email": "Levél újraküldése" }, "start": { - "description": "Egy jelszóvisszaállítási hivatkozást tartalmazó levél lesz küldve.", + "description": "Egy jelszó-visszaállítási hivatkozást tartalmazó levél lesz küldve.", "heading": "A folytatáshoz adja meg az e-mail-címét" } }, @@ -232,7 +237,7 @@ }, "create_account": "Új fiók létrehozása", "enforced_by_policy": "Kiszolgáló-házirend által betartatva", - "forced_display_name": "A következő megjelenítési nevet fogja használni", + "forced_display_name": "A következő megjelenítési név fogja használni", "forced_email": "A következő e-mail-címet fogja használni", "forced_localpart": "A következő felhasználónevet fogja használni", "import_data": {