From 742eb549abe556ff2c53adfaaddd4ed01789f26e Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 30 Oct 2024 09:34:56 +0100 Subject: [PATCH 01/17] Fix preview cards with long titles erroneously causing layout changes (#32678) --- app/javascript/styles/mastodon/components.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index fc0b2b0e8e..f688b9b4ba 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2759,6 +2759,7 @@ a.account__display-name { flex: 0 1 auto; display: flex; flex-direction: column; + contain: inline-size layout paint style; @media screen and (min-width: $no-gap-breakpoint) { max-width: 600px; @@ -4032,6 +4033,7 @@ $ui-header-logo-wordmark-width: 99px; overflow: hidden; border: 1px solid var(--background-border-color); border-radius: 8px; + contain: inline-size layout paint style; &.bottomless { border-radius: 8px 8px 0 0; From 7f743f3c8190ec3c5bfd4cc4543f87be39bed53e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:40:49 +0100 Subject: [PATCH 02/17] Update dependency libvips to v8.16.0 (#32679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index bb29ad21fa..acb7631eb9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -191,7 +191,7 @@ FROM build AS libvips # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips -ARG VIPS_VERSION=8.15.5 +ARG VIPS_VERSION=8.16.0 # libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"] ARG VIPS_URL=https://github.com/libvips/libvips/releases/download From 110aa0aa28ec44de7841ce8a8cce924a94f3717c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:09:10 +0100 Subject: [PATCH 03/17] Update workbox monorepo to v7.3.0 (#32691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 214 +++++++++++++++++++++++++++--------------------------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1a129ac367..7762f96102 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18218,28 +18218,28 @@ __metadata: languageName: node linkType: hard -"workbox-background-sync@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-background-sync@npm:7.1.0" +"workbox-background-sync@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-background-sync@npm:7.3.0" dependencies: idb: "npm:^7.0.1" - workbox-core: "npm:7.1.0" - checksum: 10c0/9538c49a377d8eb06acee3848fbca09bac1940a2ca9e904fed765c39aa32f77c20d72c3ba6fa1eb47bee81289b1d527556a1cd3e02728960a4c40400ce6d0e91 + workbox-core: "npm:7.3.0" + checksum: 10c0/cc982d62702847fb16c4ef372a8bd243348a80c2d5da1649a860b0187b45060a799a65582c2d36f1a32e31d5d68dedcb037698c41d3b2f171ea5d54d73453cf1 languageName: node linkType: hard -"workbox-broadcast-update@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-broadcast-update@npm:7.1.0" +"workbox-broadcast-update@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-broadcast-update@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/4a6e201cedcbc11b9d2f63f63477ba4564a35ce07bd54640198db6ff6a3b8347a65e0b4973c8f8463e8a622fd1ad93d7b3bab42338608811d23c7db01fef475e + workbox-core: "npm:7.3.0" + checksum: 10c0/25007acd3e845b5ca1f4c9ac9888ce661431723f7419cfa56b3029b6c56cbeca24902dae015c42a2d6f554f956274743e331d03ceeb4b0e3879cb7b908d0e82f languageName: node linkType: hard -"workbox-build@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-build@npm:7.1.0" +"workbox-build@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-build@npm:7.3.0" dependencies: "@apideck/better-ajv-errors": "npm:^0.3.1" "@babel/core": "npm:^7.24.4" @@ -18263,163 +18263,163 @@ __metadata: strip-comments: "npm:^2.0.1" tempy: "npm:^0.6.0" upath: "npm:^1.2.0" - workbox-background-sync: "npm:7.1.0" - workbox-broadcast-update: "npm:7.1.0" - workbox-cacheable-response: "npm:7.1.0" - workbox-core: "npm:7.1.0" - workbox-expiration: "npm:7.1.0" - workbox-google-analytics: "npm:7.1.0" - workbox-navigation-preload: "npm:7.1.0" - workbox-precaching: "npm:7.1.0" - workbox-range-requests: "npm:7.1.0" - workbox-recipes: "npm:7.1.0" - workbox-routing: "npm:7.1.0" - workbox-strategies: "npm:7.1.0" - workbox-streams: "npm:7.1.0" - workbox-sw: "npm:7.1.0" - workbox-window: "npm:7.1.0" - checksum: 10c0/c482fde713bad582bd7d4861113d7367ab4722eba9c102864c71048815792c623e9117a8f79957e0388d0c08e8303962d1fb23931456da73909e87d06638d101 + workbox-background-sync: "npm:7.3.0" + workbox-broadcast-update: "npm:7.3.0" + workbox-cacheable-response: "npm:7.3.0" + workbox-core: "npm:7.3.0" + workbox-expiration: "npm:7.3.0" + workbox-google-analytics: "npm:7.3.0" + workbox-navigation-preload: "npm:7.3.0" + workbox-precaching: "npm:7.3.0" + workbox-range-requests: "npm:7.3.0" + workbox-recipes: "npm:7.3.0" + workbox-routing: "npm:7.3.0" + workbox-strategies: "npm:7.3.0" + workbox-streams: "npm:7.3.0" + workbox-sw: "npm:7.3.0" + workbox-window: "npm:7.3.0" + checksum: 10c0/cb396f9c2a53429d1e11b4c1da2e21c9e1c98473ce15f20ae53277e47bd7ccbcb3f1f843694e588bb70b12d9332faafd098ca05b93abb0293d373f38a8de3ca8 languageName: node linkType: hard -"workbox-cacheable-response@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-cacheable-response@npm:7.1.0" +"workbox-cacheable-response@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-cacheable-response@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/52ea73bb184c9ef9280cc8f00a1ab7d103d495e12a7a6378fae02fd0aa1a9b893aac5d8074f14ed8c198527123e4401f4703fbfd2be98e184ca783b9216cb4c5 + workbox-core: "npm:7.3.0" + checksum: 10c0/192c8a8878c53a205c55398bac78f2c32c0f36e55c95cab282d8a716ddf2fa72563afaed690d34d3438cc8df5fb0df4d98dcb2d93cc6d67c69a9ae592f7bf246 languageName: node linkType: hard -"workbox-core@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-core@npm:7.1.0" - checksum: 10c0/fb0b6e23a52e085da00b7a74b1f1854f06c695eb2bd4c244aa335165f59156a4febb4f116b9893b9fb7e0e8bac092d32eecceb4d00f930a93f64737cb2be9531 +"workbox-core@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-core@npm:7.3.0" + checksum: 10c0/b7dce640cd9665ed207f65f5b08a50e2e24e5599790c6ea4fec987539b9d2ef81765d8c5f94acfee3a8a45d5ade8e1a4ebd0b8847a1471302ef75a5b93c7bd04 languageName: node linkType: hard -"workbox-expiration@npm:7.1.0, workbox-expiration@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-expiration@npm:7.1.0" +"workbox-expiration@npm:7.3.0, workbox-expiration@npm:^7.0.0": + version: 7.3.0 + resolution: "workbox-expiration@npm:7.3.0" dependencies: idb: "npm:^7.0.1" - workbox-core: "npm:7.1.0" - checksum: 10c0/669d76f87c1550ce9b425232c3202a26fdea4c4c9bdc1b71c1cee741a5d011423098994452e508576174d3c0b4bec0f4b35012b6d7257e300684c87fdddb7949 + workbox-core: "npm:7.3.0" + checksum: 10c0/6040d72122ece901becfcc59974586e9cc9b6309840b83b652c9f9aafe32ff89783404a431cadf6f888f80e5371252820e425ced499742964d6d68687f6fad1a languageName: node linkType: hard -"workbox-google-analytics@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-google-analytics@npm:7.1.0" +"workbox-google-analytics@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-google-analytics@npm:7.3.0" dependencies: - workbox-background-sync: "npm:7.1.0" - workbox-core: "npm:7.1.0" - workbox-routing: "npm:7.1.0" - workbox-strategies: "npm:7.1.0" - checksum: 10c0/4178d94fb7f3f7b789f117c104b2ff33945256dc550418b0e9c81130c1e2c2bcd72ec6a1661d91326c04de360e6592edd505f0e2142e8e1043fe0c45f9c1a3fe + workbox-background-sync: "npm:7.3.0" + workbox-core: "npm:7.3.0" + workbox-routing: "npm:7.3.0" + workbox-strategies: "npm:7.3.0" + checksum: 10c0/5317a4bcc01f1aa87480f9708d7d382c15fb37d6119e71e0a2909dfd683f6060b5cc4f7b016a81fc67098f51a5d0cfd1cda20e228f2f3778ee3caf649b59996b languageName: node linkType: hard -"workbox-navigation-preload@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-navigation-preload@npm:7.1.0" +"workbox-navigation-preload@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-navigation-preload@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/b667a3ba0cae4d43a53a6e211f0f33f6ebc1d9fec6cbb93de83f72a37b81cc39d887b969db9b1cd5c396a1ce34636c89c3b157cc64a5265635d0b274e362db0e + workbox-core: "npm:7.3.0" + checksum: 10c0/69e4d43c68c06889987e9fa437995378b0632c83bad8c7044b4ed812b05b94b3a4aa8700ea4c26b2ecf68ee6858e94ff41dfa3279815c1bc385ac19c0edfb200 languageName: node linkType: hard -"workbox-precaching@npm:7.1.0, workbox-precaching@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-precaching@npm:7.1.0" +"workbox-precaching@npm:7.3.0, workbox-precaching@npm:^7.0.0": + version: 7.3.0 + resolution: "workbox-precaching@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - workbox-routing: "npm:7.1.0" - workbox-strategies: "npm:7.1.0" - checksum: 10c0/53b2d0a658109b4d83ee2b1913f884ee1c757a12b8931a7102272bd1e228d29f9430e7d060f328f465bca2aa24bf0719d026eef4f4d21395fa1f678f8d6a3c06 + workbox-core: "npm:7.3.0" + workbox-routing: "npm:7.3.0" + workbox-strategies: "npm:7.3.0" + checksum: 10c0/15c4c5cf5dfec684711ce3536bbfa6873f7af16b712d02ded81d3ff490ea4097e46602705548f5872c49f06e3516fd69f17e72a7fc60631ff6d68460e48f7648 languageName: node linkType: hard -"workbox-range-requests@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-range-requests@npm:7.1.0" +"workbox-range-requests@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-range-requests@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/bf4aa597d04cbb533796af64f4006a1f472f8a14ea91f96fe37b2d5e63ffe86dcb944dab9a41317e69d368d83bee20f03ff32b339ae5addef50f325703ad4b77 + workbox-core: "npm:7.3.0" + checksum: 10c0/d48e1484866442864d66b1891c4965b71e997a83a7634f11452ec1a73a30a5e642e6a95d5cff45578bef4dec7a5f57bc598aeedb6189d17ca210e2c5f2898244 languageName: node linkType: hard -"workbox-recipes@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-recipes@npm:7.1.0" +"workbox-recipes@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-recipes@npm:7.3.0" dependencies: - workbox-cacheable-response: "npm:7.1.0" - workbox-core: "npm:7.1.0" - workbox-expiration: "npm:7.1.0" - workbox-precaching: "npm:7.1.0" - workbox-routing: "npm:7.1.0" - workbox-strategies: "npm:7.1.0" - checksum: 10c0/5a8c2444f6338c6092be87cc6fd69c8b0cbb413bfc0a11a8f10961bfb2b8059359c4be0264ffa0c01deff3ab5dba15bbcf61d4dedbc93d8bfe1f8a2841b1657c + workbox-cacheable-response: "npm:7.3.0" + workbox-core: "npm:7.3.0" + workbox-expiration: "npm:7.3.0" + workbox-precaching: "npm:7.3.0" + workbox-routing: "npm:7.3.0" + workbox-strategies: "npm:7.3.0" + checksum: 10c0/c8146ece4247cbcbefba36a14f2cb65b5f74b2412f64cfc7955ff75ff653857161a1f1d94c987fbae4812f5b770eedcf99af965e512cc375fbc7fb5421bdc99c languageName: node linkType: hard -"workbox-routing@npm:7.1.0, workbox-routing@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-routing@npm:7.1.0" +"workbox-routing@npm:7.3.0, workbox-routing@npm:^7.0.0": + version: 7.3.0 + resolution: "workbox-routing@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/efd630fff594bd50276770840bce274660972587e79c097a9f1a84e8347351736aac13f11c6d7655ff550b13195d370d5c3b81a075bf452f358fc144ee868ad9 + workbox-core: "npm:7.3.0" + checksum: 10c0/8ac1824211d0fbe0e916ecb2c2427bcb0ef8783f9225d8114fe22e6c326f2d8a040a089bead58064e8b096ec95abe070c04cd7353dd8830dba3ab8d608a053aa languageName: node linkType: hard -"workbox-strategies@npm:7.1.0, workbox-strategies@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-strategies@npm:7.1.0" +"workbox-strategies@npm:7.3.0, workbox-strategies@npm:^7.0.0": + version: 7.3.0 + resolution: "workbox-strategies@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - checksum: 10c0/b08712a69b1b13e354345cc228c29f0c759043f7ca7cf6ce9b82fe79c9d423142bfa4a118f91f1a57054047a730127fa4474d59d9306fb2ed42fe9ef568be01a + workbox-core: "npm:7.3.0" + checksum: 10c0/50f3c28b46b54885a9461ad6559010d9abb2a7e35e0128d05c268f3ea0a96b1a747934758121d0e821f7af63946d9db8f4d2d7e0146f12555fb05c768e6b82bb languageName: node linkType: hard -"workbox-streams@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-streams@npm:7.1.0" +"workbox-streams@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-streams@npm:7.3.0" dependencies: - workbox-core: "npm:7.1.0" - workbox-routing: "npm:7.1.0" - checksum: 10c0/1d75c046fcb7b25e1cf85457e3610309dd5513f68752ef333529fcf155df2114b72f3d6f416bb68393e51b5396e3f6df7171e8e2889d0e9e1805e315754b771e + workbox-core: "npm:7.3.0" + workbox-routing: "npm:7.3.0" + checksum: 10c0/2ae541343d187eb7a50da2cfd74051f15771d1ddd1cad6856ffd530f7cccdb8eed9a8af94ff7540b710fef73eeec37d652123ae42b0206fbbd0679dc25e66ff4 languageName: node linkType: hard -"workbox-sw@npm:7.1.0": - version: 7.1.0 - resolution: "workbox-sw@npm:7.1.0" - checksum: 10c0/2084f1b58c8509d7ca53ce8a13d93e57d1f13307e0279fedc87942e83c8cb96bc2e5ed3992a89af6245ad2a66897a92908cb60d0717fb90492056eb6fbf20dc6 +"workbox-sw@npm:7.3.0": + version: 7.3.0 + resolution: "workbox-sw@npm:7.3.0" + checksum: 10c0/9ae275e31dd5ec51245773b6d90fda16d0b7f70d59f3a71aec732814b5aedf08aedc7fcce57739e7e89d9e1479ef97e3a202a542a511d732cf5e8b5d1c293870 languageName: node linkType: hard "workbox-webpack-plugin@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-webpack-plugin@npm:7.1.0" + version: 7.3.0 + resolution: "workbox-webpack-plugin@npm:7.3.0" dependencies: fast-json-stable-stringify: "npm:^2.1.0" pretty-bytes: "npm:^5.4.1" upath: "npm:^1.2.0" webpack-sources: "npm:^1.4.3" - workbox-build: "npm:7.1.0" + workbox-build: "npm:7.3.0" peerDependencies: webpack: ^4.4.0 || ^5.91.0 - checksum: 10c0/516fa68a6a6958ee1560299dd1146032dda68474a2ab01643cbde78fc65b75a3157aef60cb45dcc1984cc458ce44d4e3090cda08dd7cefd0952351270e963a00 + checksum: 10c0/dd3625544fe08b099fd2b783584c6c2c5da3f0e0c3096fc1a86a0b96a26df5055dd178d3c60ab4cde4099474ab23d51c292356c6910dfa16a974c8a95f351c93 languageName: node linkType: hard -"workbox-window@npm:7.1.0, workbox-window@npm:^7.0.0": - version: 7.1.0 - resolution: "workbox-window@npm:7.1.0" +"workbox-window@npm:7.3.0, workbox-window@npm:^7.0.0": + version: 7.3.0 + resolution: "workbox-window@npm:7.3.0" dependencies: "@types/trusted-types": "npm:^2.0.2" - workbox-core: "npm:7.1.0" - checksum: 10c0/c989a6e3a0488f049eead3892f8249387604fb04898aa79d0cf14cd7b684f0758f1edf1996745f4755bd30c31c449f628803e507d39b2ea91cc9c36f7d5e9c72 + workbox-core: "npm:7.3.0" + checksum: 10c0/dbda33c4761ec40051cfe6e3f1701b2381b4f3b191f7a249c32f683503ea35cf8b42d1f99df5ba3b693fac78705d8ed0c191488bdd178c525d1291d0161ec8ff languageName: node linkType: hard From 0a599d08d8c1d10d3784b3700ebd27efe9e6a468 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:02:02 +0100 Subject: [PATCH 04/17] New Crowdin Translations (automated) (#32695) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/cy.json | 4 +++- app/javascript/mastodon/locales/es-AR.json | 4 ++-- app/javascript/mastodon/locales/es-MX.json | 2 +- app/javascript/mastodon/locales/fi.json | 14 +++++++------- app/javascript/mastodon/locales/fil.json | 5 +++++ app/javascript/mastodon/locales/gd.json | 6 +++++- app/javascript/mastodon/locales/gl.json | 2 ++ app/javascript/mastodon/locales/it.json | 2 ++ app/javascript/mastodon/locales/lad.json | 1 + app/javascript/mastodon/locales/nn.json | 2 ++ app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 8 ++++---- config/locales/doorkeeper.fi.yml | 2 +- config/locales/eo.yml | 7 +++++++ 15 files changed, 44 insertions(+), 18 deletions(-) diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 3c4a6aa40c..675f7a203e 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -13,7 +13,7 @@ "about.rules": "Rheolau'r gweinydd", "account.account_note_header": "Nodyn personol", "account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau", - "account.badges.bot": "Bot", + "account.badges.bot": "Awtomataidd", "account.badges.group": "Grŵp", "account.block": "Blocio @{name}", "account.block_domain": "Blocio parth {domain}", @@ -386,6 +386,7 @@ "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich ffrwd gartref.", "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.", "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.", + "interaction_modal.description.vote": "Gyda chyfrif ar Mastodon, gallwch bleidleisio yn y bleidlais hon.", "interaction_modal.login.action": "Mynd i'm ffrwd gartref", "interaction_modal.login.prompt": "Parth eich gweinydd cartref, e.e. mastodon.social", "interaction_modal.no_account_yet": "Dim ar Mastodon?", @@ -397,6 +398,7 @@ "interaction_modal.title.follow": "Dilyn {name}", "interaction_modal.title.reblog": "Hybu postiad {name}", "interaction_modal.title.reply": "Ymateb i bostiad {name}", + "interaction_modal.title.vote": "Pleidleisiwch ym mhleidlais {name}", "intervals.full.days": "{number, plural, one {# diwrnod} two {# ddiwrnod} other {# diwrnod}}", "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}", "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index e1803aabda..e8302a4c75 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -386,7 +386,7 @@ "interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.", - "interaction_modal.description.vote": "Con una cuenta en Mastodon, puedes votar en esta encuesta.", + "interaction_modal.description.vote": "Con una cuenta en Mastodon, podés votar en esta encuesta.", "interaction_modal.login.action": "Llevame al comienzo", "interaction_modal.login.prompt": "Dominio de su servidor de inicio, p. ej., mastodon.social", "interaction_modal.no_account_yet": "¿No tenés cuenta en Mastodon?", @@ -398,7 +398,7 @@ "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Adherir al mensaje de {name}", "interaction_modal.title.reply": "Responder al mensaje de {name}", - "interaction_modal.title.vote": "Vota en la encuesta de {name}", + "interaction_modal.title.vote": "Votá en la encuesta de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index af2bd0e528..c73a64c4e0 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -398,7 +398,7 @@ "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Impulsar la publicación de {name}", "interaction_modal.title.reply": "Responder la publicación de {name}", - "interaction_modal.title.vote": "Vota en la encuesta de {name}", + "interaction_modal.title.vote": "Votar en la encuesta de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 0455e4df29..fd971edfd3 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -158,7 +158,7 @@ "compose_form.poll.duration": "Äänestyksen kesto", "compose_form.poll.multiple": "Monivalinta", "compose_form.poll.option_placeholder": "Vaihtoehto {number}", - "compose_form.poll.single": "Yksittäisvalinta", + "compose_form.poll.single": "Yksi vaihtoehto", "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi", "compose_form.poll.switch_to_single": "Muuta äänestys yksittäisvalinnaksi", "compose_form.poll.type": "Tyyli", @@ -386,7 +386,7 @@ "interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.", "interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.", "interaction_modal.description.reply": "Mastodon-tilillä voit vastata tähän julkaisuun.", - "interaction_modal.description.vote": "Mastodon-tilillä voit osallistua tähän äänestykseen.", + "interaction_modal.description.vote": "Osallistuminen äänestykseen onnistuu Mastodon-tilillä.", "interaction_modal.login.action": "Siirry kotiin", "interaction_modal.login.prompt": "Kotipalvelimesi verkkotunnus, kuten mastodon.social", "interaction_modal.no_account_yet": "Etkö ole vielä Mastodonissa?", @@ -439,8 +439,8 @@ "lightbox.close": "Sulje", "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", - "lightbox.zoom_in": "Zoomaa todelliseen kokoon", - "lightbox.zoom_out": "Zoomaa mahtumaan", + "lightbox.zoom_in": "Näytä alkuperäiskokoisena", + "lightbox.zoom_out": "Näytä sovitettuna", "limited_account_hint.action": "Näytä profiili joka tapauksessa", "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", "link_preview.author": "Tehnyt {name}", @@ -529,7 +529,7 @@ "notification.moderation_warning.action_sensitive": "Tästä lähtien julkaisusi merkitään arkaluonteisiksi.", "notification.moderation_warning.action_silence": "Tiliäsi on rajoitettu.", "notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.", - "notification.own_poll": "Äänestyksesi on päättynyt", + "notification.own_poll": "Kyselysi on päättynyt", "notification.poll": "Äänestys, johon osallistuit, on päättynyt", "notification.reblog": "{name} tehosti julkaisuasi", "notification.reblog.name_and_others_with_link": "{name} ja {count, plural, one {# muu} other {# muuta}} tehostivat julkaisuasi", @@ -572,7 +572,7 @@ "notifications.column_settings.follow_request": "Uudet seurantapyynnöt:", "notifications.column_settings.group": "Ryhmitä", "notifications.column_settings.mention": "Maininnat:", - "notifications.column_settings.poll": "Äänestyksen tulokset:", + "notifications.column_settings.poll": "Kyselyn tulokset:", "notifications.column_settings.push": "Puskuilmoitukset", "notifications.column_settings.reblog": "Tehostukset:", "notifications.column_settings.show": "Näytä sarakkeessa", @@ -586,7 +586,7 @@ "notifications.filter.favourites": "Suosikit", "notifications.filter.follows": "Seuraamiset", "notifications.filter.mentions": "Maininnat", - "notifications.filter.polls": "Äänestyksen tulokset", + "notifications.filter.polls": "Kyselyn tulokset", "notifications.filter.statuses": "Päivitykset seuraamiltasi käyttäjiltä", "notifications.grant_permission": "Myönnä käyttöoikeus.", "notifications.group": "{count} ilmoitusta", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 3822fbcf85..14c7b70bd2 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -129,6 +129,7 @@ "confirmations.discard_edit_media.confirm": "Ipagpaliban", "confirmations.edit.confirm": "Baguhin", "confirmations.reply.confirm": "Tumugon", + "content_warning.show_more": "Magpakita ng higit pa", "conversation.mark_as_read": "Markahan bilang nabasa na", "conversation.open": "Tingnan ang pag-uusap", "copy_icon_button.copied": "Sinipi sa clipboard", @@ -190,6 +191,7 @@ "explore.title": "Tuklasin", "explore.trending_links": "Mga balita", "filter_modal.select_filter.search": "Hanapin o gumawa", + "filter_warning.matches_filter": "Tinutugma ang pangsala \"{title}\"", "firehose.all": "Lahat", "firehose.local": "Itong serbiro", "firehose.remote": "Ibang mga serbiro", @@ -218,6 +220,7 @@ "interaction_modal.on_another_server": "Sa ibang serbiro", "interaction_modal.on_this_server": "Sa serbirong ito", "interaction_modal.title.follow": "Sundan si {name}", + "interaction_modal.title.vote": "Bumoto sa botohan ni {name}", "intervals.full.days": "{number, plural, one {# araw} other {# na araw}}", "intervals.full.hours": "{number, plural, one {# oras} other {# na oras}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# na minuto}}", @@ -256,6 +259,7 @@ "navigation_bar.search": "Maghanap", "notification.admin.report": "Iniulat ni {name} si {target}", "notification.follow": "Sinundan ka ni {name}", + "notification.follow.name_and_others": "Sinundan ka ng/nina {name} at {count, plural, one {# iba pa} other {# na iba pa}}", "notification.follow_request": "Hinihiling ni {name} na sundan ka", "notification.label.private_mention": "Palihim na banggit", "notification.mentioned_you": "Binanggit ka ni {name}", @@ -270,6 +274,7 @@ "notifications.column_settings.alert": "Mga abiso sa Desktop", "notifications.column_settings.favourite": "Mga paborito:", "notifications.column_settings.follow": "Mga bagong tagasunod:", + "notifications.column_settings.group": "Pangkat", "notifications.column_settings.poll": "Resulta ng botohan:", "notifications.column_settings.unread_notifications.category": "Hindi Nabasang mga Abiso", "notifications.column_settings.update": "Mga pagbago:", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 47a9033440..4f68737b14 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -197,6 +197,7 @@ "confirmations.unfollow.title": "A bheil thu airson sgur de leantainn a chleachdaiche?", "content_warning.hide": "Falaich am post", "content_warning.show": "Seall e co-dhiù", + "content_warning.show_more": "Seall barrachd dheth", "conversation.delete": "Sguab às an còmhradh", "conversation.mark_as_read": "Cuir comharra gun deach a leughadh", "conversation.open": "Seall an còmhradh", @@ -305,6 +306,7 @@ "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", "filter_modal.select_filter.title": "Criathraich am post seo", "filter_modal.title.status": "Criathraich post", + "filter_warning.matches_filter": "A’ maidseadh na criathraige “{title}”", "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil gin ann} one {O # neach} two {O # neach} few {O # daoine} other {O # duine}} air a bheil thu eòlach ’s dòcha", "filtered_notifications_banner.title": "Brathan criathraichte", "firehose.all": "Na h-uile", @@ -384,6 +386,7 @@ "interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut {name} a leantainn ach am faigh thu na postaichean aca nad dhachaigh.", "interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.", "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", + "interaction_modal.description.vote": "Le cunntas air Mastodon, ’s urrainn dhut bhòtadh sa chunntas-bheachd seo.", "interaction_modal.login.action": "Thoir dhachaigh mi", "interaction_modal.login.prompt": "Àrainn-lìn an fhrithealaiche dachaigh agad, can ailbhean.co-shaoghal.net", "interaction_modal.no_account_yet": "Nach eil thu air Mastodon?", @@ -395,6 +398,7 @@ "interaction_modal.title.follow": "Lean {name}", "interaction_modal.title.reblog": "Brosnaich am post aig {name}", "interaction_modal.title.reply": "Freagair dhan phost aig {name}", + "interaction_modal.title.vote": "Bhòt sa chunntas-bheachd aig {name}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", "intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}", @@ -461,7 +465,7 @@ "media_gallery.hide": "Falaich", "moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.", "mute_modal.hide_from_notifications": "Falaich o na brathan", - "mute_modal.hide_options": "Roghainnean falaich", + "mute_modal.hide_options": "Falaich na roghainnean", "mute_modal.indefinite": "Gus an dì-mhùch mi iad", "mute_modal.show_options": "Seall na roghainnean", "mute_modal.they_can_mention_and_follow": "’S urrainn dhaibh iomradh a thoirt ort agus do leantainn ach chan fhaic thu iad-san.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 822666ad8c..e89d386c85 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -386,6 +386,7 @@ "interaction_modal.description.follow": "Cunha conta en Mastodon, poderás seguir a {name} e recibir as súas publicacións na túa cronoloxía de inicio.", "interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.", "interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.", + "interaction_modal.description.vote": "Podes votar nesta enquisa se tes unha conta en Mastodon.", "interaction_modal.login.action": "Lévame ao inicio", "interaction_modal.login.prompt": "Dominio do teu servidor de inicio, ex. mastodon.social", "interaction_modal.no_account_yet": "Aínda non tes unha conta?", @@ -397,6 +398,7 @@ "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Promover a publicación de {name}", "interaction_modal.title.reply": "Responder á publicación de {name}", + "interaction_modal.title.vote": "Vota na enquisa de {name}", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 68201e18de..a692fb7fd3 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -386,6 +386,7 @@ "interaction_modal.description.follow": "Con un profilo di Mastodon, puoi seguire {name} per ricevere i suoi post nel feed della tua home.", "interaction_modal.description.reblog": "Con un profilo di Mastodon, puoi rebloggare questo post per condividerlo con i tuoi seguaci.", "interaction_modal.description.reply": "Con un profilo di Mastodon, puoi rispondere a questo post.", + "interaction_modal.description.vote": "Con un account su Mastodon puoi votare in questo sondaggio.", "interaction_modal.login.action": "Portami alla pagina iniziale", "interaction_modal.login.prompt": "Dominio del tuo server principale, ad esempio mastodon.social", "interaction_modal.no_account_yet": "Non su Mastodon?", @@ -397,6 +398,7 @@ "interaction_modal.title.follow": "Segui {name}", "interaction_modal.title.reblog": "Reblogga il post di {name}", "interaction_modal.title.reply": "Rispondi al post di {name}", + "interaction_modal.title.vote": "Vota nel sondaggio di {name}", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 147546c977..563eb3b190 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -191,6 +191,7 @@ "confirmations.unfollow.title": "Desige utilizador?", "content_warning.hide": "Eskonde puvlikasyon", "content_warning.show": "Amostra entanto", + "content_warning.show_more": "Amostra mas", "conversation.delete": "Efasa konversasyon", "conversation.mark_as_read": "Marka komo meldado", "conversation.open": "Ve konversasyon", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 6bd16f3cfd..cc56754193 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -384,6 +384,7 @@ "interaction_modal.description.follow": "Med ein konto på Mastodon kan du fylgja {name} for å sjå innlegga deira i din heimestraum.", "interaction_modal.description.reblog": "Med ein konto på Mastodon kan du framheva dette innlegget for å dela det med dine eigne fylgjarar.", "interaction_modal.description.reply": "Med ein konto på Mastodon kan du svara på dette innlegget.", + "interaction_modal.description.vote": "Med ein konto på Mastodon kan du røyste i denne avrøystinga.", "interaction_modal.login.action": "Ta meg heim", "interaction_modal.login.prompt": "Domenenamnet til din heime-tenar. t.d. mastodon.social", "interaction_modal.no_account_yet": "Ikkje på Mastodon?", @@ -395,6 +396,7 @@ "interaction_modal.title.follow": "Fylg {name}", "interaction_modal.title.reblog": "Framhev {name} sitt innlegg", "interaction_modal.title.reply": "Svar på innlegge til {name}", + "interaction_modal.title.vote": "Røyst i {name} si avrøysting", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# time} other {# timar}}", "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 304535a67c..7824d07629 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -398,6 +398,7 @@ "interaction_modal.title.follow": "Följ {name}", "interaction_modal.title.reblog": "Boosta {name}s inlägg", "interaction_modal.title.reply": "Svara på {name}s inlägg", + "interaction_modal.title.vote": "Rösta i {name}s enkät", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 9e845c35e7..b0ad6e1c66 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -44,7 +44,7 @@ "account.joined_short": "เข้าร่วมเมื่อ", "account.languages": "เปลี่ยนภาษาที่บอกรับ", "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}", - "account.locked_info": "มีการตั้งสถานะความเป็นส่วนตัวของบัญชีนี้เป็นล็อคอยู่ เจ้าของตรวจทานผู้ที่สามารถติดตามเขาด้วยตนเอง", + "account.locked_info": "สถานะความเป็นส่วนตัวของบัญชีนี้ถูกตั้งค่าเป็นล็อค เจ้าของตรวจสอบด้วยตนเองว่าใครสามารถติดตามพวกเขาได้", "account.media": "สื่อ", "account.mention": "กล่าวถึง @{name}", "account.moved_to": "{name} ได้ระบุว่าบัญชีใหม่ของเขาในตอนนี้คือ:", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 1c233a6403..603ec5d791 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -383,10 +383,10 @@ "ignore_notifications_modal.not_following_title": "是否忽略你未关注的人的通知?", "ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?", "interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示您欣赏的态度,并保存嘟文以供日后使用。", - "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的主页上接收对方的新嘟文。", - "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。", - "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你可以回复此嘟文。", - "interaction_modal.description.vote": "拥有一个 Mastodon 账号,你可以参与此投票。", + "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你就可以关注 {name} 并在自己的主页上接收对方的新嘟文。", + "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你就可以向自己的关注者们转发此嘟文。", + "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你就可以回复此嘟文。", + "interaction_modal.description.vote": "拥有一个 Mastodon 账号,你就可以参与此投票。", "interaction_modal.login.action": "转到主页", "interaction_modal.login.prompt": "您所入驻的服务器域名,如:mastodon.social", "interaction_modal.no_account_yet": "不在 Mastodon 上?", diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index 7d44a6a6b9..24228d54a9 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -60,7 +60,7 @@ fi: error: title: Tapahtui virhe new: - prompt_html: "%{client_name} haluaisi käyttöoikeuden tiliisi. Hyväksy tämä pyyntö vain, jos tunnistat lähteen ja luotat siihen." + prompt_html: "%{client_name} haluaisi luvan tilisi hyödyntämiseksi. Hyväksy pyyntö vain, jos tunnistat lähteen ja luotat siihen." review_permissions: Tarkista käyttöoikeudet title: Valtuutus vaaditaan show: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index f21e0bc724..12cae075f0 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -239,6 +239,7 @@ eo: confirm_user_html: "%{name} konfirmis retadreson de uzanto %{target}" create_account_warning_html: "%{name} sendis averton al %{target}" create_announcement_html: "%{name} kreis novan anoncon %{target}" + create_canonical_email_block_html: "%{name} blokis retpoŝtadreson per krado %{target}" create_custom_emoji_html: "%{name} alŝutis novan emoĝion %{target}" create_domain_allow_html: "%{name} aldonis domajnon %{target} al la blanka listo" create_domain_block_html: "%{name} blokis domajnon %{target}" @@ -248,6 +249,7 @@ eo: create_user_role_html: "%{name} kreis rolon de %{target}" demote_user_html: "%{name} degradis uzanton %{target}" destroy_announcement_html: "%{name} forigis anoncon %{target}" + destroy_canonical_email_block_html: "%{name} malblokis retpoŝtadreson per krado %{target}" destroy_custom_emoji_html: "%{name} forigis emoĝion %{target}" destroy_domain_allow_html: "%{name} forigis domajnon %{target} el la blanka listo" destroy_domain_block_html: "%{name} malblokis domajnon %{target}" @@ -282,6 +284,7 @@ eo: update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}" update_domain_block_html: "%{name} ĝisdatigis domajnblokon por %{target}" update_ip_block_html: "%{name} ŝanĝis regulon por IP %{target}" + update_report_html: "%{name} ĝisdatigis la raporton %{target}" update_status_html: "%{name} ĝisdatigis afiŝon de %{target}" update_user_role_html: "%{name} ŝanĝis la rolon %{target}" deleted_account: forigita konto @@ -788,6 +791,7 @@ eo: types: major: Ĉefa eldono minor: Neĉefa eldono + patch: Eldono de flikaĵo — korektoj de eraroj kaj facile apliki ŝanĝojn version: Versio statuses: account: Skribanto @@ -1106,6 +1110,7 @@ eo: title: Ni pretigu vin ĉe %{domain}. status: account_status: Statuso de la konto + confirming: Atendante ke retpoŝta konfirmo estos kompletigita. functional: Via konto estas tute funkcia. redirecting_to: Via konto estas neaktiva ĉar ĝi nun alidirektas al %{acct}. view_strikes: Vidi antauaj admonoj kontra via konto @@ -1155,6 +1160,8 @@ eo: before: 'Antau ol dauri, legu ĉi tiujn notojn zorgeme:' caches: Enhavo kiu kaŝmemorigitas de aliaj serviloj eble restas data_removal: Viaj afiŝoj kaj aliaj informoj estos forigita por eterne + email_change_html: Vi povas ŝanĝi vian retadreson sen forigi vian konton + email_contact_html: Se ĝi ankoraŭ ne alvenas, vi povas retpoŝti al %{email} por helpo irreversible: Vi ne povas regajni au reaktivigi vian konton more_details_html: Por pli da detaloj, vidi la privatecan politikon. username_available: Via uzantnomo iĝos denove disponebla From e1b7382ea6b8b944a363914490d6476726dd7075 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Wed, 30 Oct 2024 15:38:10 +0100 Subject: [PATCH 05/17] Add userinfo oauth endpoint (#32548) --- app/controllers/oauth/userinfo_controller.rb | 11 ++++ app/presenters/oauth_metadata_presenter.rb | 4 ++ app/serializers/oauth_metadata_serializer.rb | 2 +- app/serializers/oauth_userinfo_serializer.rb | 31 +++++++++++ config/initializers/cors.rb | 1 + config/routes.rb | 7 +++ spec/requests/oauth/userinfo_spec.rb | 51 +++++++++++++++++++ .../well_known/oauth_metadata_spec.rb | 17 +++---- 8 files changed, 112 insertions(+), 12 deletions(-) create mode 100644 app/controllers/oauth/userinfo_controller.rb create mode 100644 app/serializers/oauth_userinfo_serializer.rb create mode 100644 spec/requests/oauth/userinfo_spec.rb diff --git a/app/controllers/oauth/userinfo_controller.rb b/app/controllers/oauth/userinfo_controller.rb new file mode 100644 index 0000000000..e268b70dcc --- /dev/null +++ b/app/controllers/oauth/userinfo_controller.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class Oauth::UserinfoController < Api::BaseController + before_action -> { doorkeeper_authorize! :profile }, only: [:show] + before_action :require_user! + + def show + @account = current_account + render json: @account, serializer: OauthUserinfoSerializer + end +end diff --git a/app/presenters/oauth_metadata_presenter.rb b/app/presenters/oauth_metadata_presenter.rb index 1e4d25165c..7d75e8498a 100644 --- a/app/presenters/oauth_metadata_presenter.rb +++ b/app/presenters/oauth_metadata_presenter.rb @@ -26,6 +26,10 @@ class OauthMetadataPresenter < ActiveModelSerializers::Model oauth_token_url end + def userinfo_endpoint + oauth_userinfo_url + end + # As the api_v1_apps route doesn't technically conform to the specification # for OAuth 2.0 Dynamic Client Registration defined in RFC 7591 we use a # non-standard property for now to indicate the mastodon specific registration diff --git a/app/serializers/oauth_metadata_serializer.rb b/app/serializers/oauth_metadata_serializer.rb index 2afb4208fb..9c5f7365a4 100644 --- a/app/serializers/oauth_metadata_serializer.rb +++ b/app/serializers/oauth_metadata_serializer.rb @@ -2,7 +2,7 @@ class OauthMetadataSerializer < ActiveModel::Serializer attributes :issuer, :authorization_endpoint, :token_endpoint, - :revocation_endpoint, :scopes_supported, + :revocation_endpoint, :userinfo_endpoint, :scopes_supported, :response_types_supported, :response_modes_supported, :grant_types_supported, :token_endpoint_auth_methods_supported, :code_challenge_methods_supported, diff --git a/app/serializers/oauth_userinfo_serializer.rb b/app/serializers/oauth_userinfo_serializer.rb new file mode 100644 index 0000000000..e2f37ae02e --- /dev/null +++ b/app/serializers/oauth_userinfo_serializer.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class OauthUserinfoSerializer < ActiveModel::Serializer + include RoutingHelper + + attributes :iss, :sub, :name, :preferred_username, :profile, :picture + + def iss + root_url + end + + def sub + ActivityPub::TagManager.instance.uri_for(object) + end + + def name + object.display_name + end + + def preferred_username + object.username + end + + def profile + ActivityPub::TagManager.instance.url_for(object) + end + + def picture + full_asset_url(object.avatar_original_url) + end +end diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb index c530693a3f..476f1fb07a 100644 --- a/config/initializers/cors.rb +++ b/config/initializers/cors.rb @@ -23,6 +23,7 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do methods: %i(post put delete get patch options) resource '/oauth/token', methods: [:post] resource '/oauth/revoke', methods: [:post] + resource '/oauth/userinfo', methods: [:get, :post] end end end diff --git a/config/routes.rb b/config/routes.rb index 83170fba0f..0f4df757da 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -64,6 +64,13 @@ Rails.application.routes.draw do tokens: 'oauth/tokens' end + namespace :oauth do + # As this is borrowed from OpenID, the specification says we must also support + # POST for the userinfo endpoint: + # https://openid.net/specs/openid-connect-core-1_0.html#UserInfo + match 'userinfo', via: [:get, :post], to: 'userinfo#show', defaults: { format: 'json' } + end + scope path: '.well-known' do scope module: :well_known do get 'oauth-authorization-server', to: 'oauth_metadata#show', as: :oauth_metadata, defaults: { format: 'json' } diff --git a/spec/requests/oauth/userinfo_spec.rb b/spec/requests/oauth/userinfo_spec.rb new file mode 100644 index 0000000000..7d6226cd41 --- /dev/null +++ b/spec/requests/oauth/userinfo_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Oauth Userinfo Endpoint' do + include RoutingHelper + + let(:user) { Fabricate(:user) } + let(:account) { user.account } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } + let(:scopes) { 'profile' } + let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } + + shared_examples 'returns successfully' do + it 'returns http success' do + subject + + expect(response).to have_http_status(:success) + expect(response.content_type).to start_with('application/json') + expect(response.parsed_body).to include({ + iss: root_url, + sub: account_url(account), + name: account.display_name, + preferred_username: account.username, + profile: short_account_url(account), + picture: full_asset_url(account.avatar_original_url), + }) + end + end + + describe 'GET /oauth/userinfo' do + subject do + get '/oauth/userinfo', headers: headers + end + + it_behaves_like 'forbidden for wrong scope', 'read:accounts' + it_behaves_like 'returns successfully' + end + + # As this is borrowed from OpenID, the specification says we must also support + # POST for the userinfo endpoint: + # https://openid.net/specs/openid-connect-core-1_0.html#UserInfo + describe 'POST /oauth/userinfo' do + subject do + post '/oauth/userinfo', headers: headers + end + + it_behaves_like 'forbidden for wrong scope', 'read:accounts' + it_behaves_like 'returns successfully' + end +end diff --git a/spec/requests/well_known/oauth_metadata_spec.rb b/spec/requests/well_known/oauth_metadata_spec.rb index 9c86dbedfe..01e9146fde 100644 --- a/spec/requests/well_known/oauth_metadata_spec.rb +++ b/spec/requests/well_known/oauth_metadata_spec.rb @@ -3,12 +3,6 @@ require 'rails_helper' RSpec.describe 'The /.well-known/oauth-authorization-server request' do - let(:protocol) { ENV.fetch('LOCAL_HTTPS', true) ? :https : :http } - - before do - host! Rails.configuration.x.local_domain - end - it 'returns http success with valid JSON response' do get '/.well-known/oauth-authorization-server' @@ -22,11 +16,12 @@ RSpec.describe 'The /.well-known/oauth-authorization-server request' do grant_types_supported << 'refresh_token' if Doorkeeper.configuration.refresh_token_enabled? expect(response.parsed_body).to include( - issuer: root_url(protocol: protocol), + issuer: root_url, service_documentation: 'https://docs.joinmastodon.org/', - authorization_endpoint: oauth_authorization_url(protocol: protocol), - token_endpoint: oauth_token_url(protocol: protocol), - revocation_endpoint: oauth_revoke_url(protocol: protocol), + authorization_endpoint: oauth_authorization_url, + token_endpoint: oauth_token_url, + userinfo_endpoint: oauth_userinfo_url, + revocation_endpoint: oauth_revoke_url, scopes_supported: Doorkeeper.configuration.scopes.map(&:to_s), response_types_supported: Doorkeeper.configuration.authorization_response_types, response_modes_supported: Doorkeeper.configuration.authorization_response_flows.flat_map(&:response_mode_matches).uniq, @@ -34,7 +29,7 @@ RSpec.describe 'The /.well-known/oauth-authorization-server request' do grant_types_supported: grant_types_supported, code_challenge_methods_supported: ['S256'], # non-standard extension: - app_registration_endpoint: api_v1_apps_url(protocol: protocol) + app_registration_endpoint: api_v1_apps_url ) end end From 01e25af2e320bd79955b83cc986eef2cd64b3e2a Mon Sep 17 00:00:00 2001 From: "Renato \"Lond\" Cerqueira" Date: Thu, 31 Oct 2024 10:37:31 +0100 Subject: [PATCH 06/17] Fix 'unknown' media attachment rendering in detailed view (#32713) --- .../mastodon/features/status/components/detailed_status.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/status/components/detailed_status.tsx b/app/javascript/mastodon/features/status/components/detailed_status.tsx index 0bf1bfda8b..5811efb190 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.tsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.tsx @@ -152,7 +152,7 @@ export const DetailedStatus: React.FC<{ media = ; } else if (status.get('media_attachments').size > 0) { if ( - ['image', 'gifv'].includes( + ['image', 'gifv', 'unknown'].includes( status.getIn(['media_attachments', 0, 'type']) as string, ) || status.get('media_attachments').size > 1 From c2b498a2b0035bdeec1028e58f4914eefcac80a4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 31 Oct 2024 10:38:00 +0100 Subject: [PATCH 07/17] Fix IDs not being serialized as strings in annual reports API (#32710) --- app/lib/annual_report/commonly_interacted_with_accounts.rb | 2 +- app/lib/annual_report/most_reblogged_accounts.rb | 2 +- app/lib/annual_report/top_statuses.rb | 6 +++--- .../annual_report/commonly_interacted_with_accounts_spec.rb | 2 +- spec/lib/annual_report/most_reblogged_accounts_spec.rb | 2 +- spec/lib/annual_report/top_statuses_spec.rb | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/lib/annual_report/commonly_interacted_with_accounts.rb b/app/lib/annual_report/commonly_interacted_with_accounts.rb index e7482f0d52..30ab671d8a 100644 --- a/app/lib/annual_report/commonly_interacted_with_accounts.rb +++ b/app/lib/annual_report/commonly_interacted_with_accounts.rb @@ -7,7 +7,7 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source { commonly_interacted_with_accounts: commonly_interacted_with_accounts.map do |(account_id, count)| { - account_id: account_id, + account_id: account_id.to_s, count: count, } end, diff --git a/app/lib/annual_report/most_reblogged_accounts.rb b/app/lib/annual_report/most_reblogged_accounts.rb index 39ed3868ea..cfc4022ca7 100644 --- a/app/lib/annual_report/most_reblogged_accounts.rb +++ b/app/lib/annual_report/most_reblogged_accounts.rb @@ -7,7 +7,7 @@ class AnnualReport::MostRebloggedAccounts < AnnualReport::Source { most_reblogged_accounts: most_reblogged_accounts.map do |(account_id, count)| { - account_id: account_id, + account_id: account_id.to_s, count: count, } end, diff --git a/app/lib/annual_report/top_statuses.rb b/app/lib/annual_report/top_statuses.rb index c5abeaa58d..74b129595a 100644 --- a/app/lib/annual_report/top_statuses.rb +++ b/app/lib/annual_report/top_statuses.rb @@ -8,9 +8,9 @@ class AnnualReport::TopStatuses < AnnualReport::Source { top_statuses: { - by_reblogs: top_reblogs, - by_favourites: top_favourites, - by_replies: top_replies, + by_reblogs: top_reblogs&.to_s, + by_favourites: top_favourites&.to_s, + by_replies: top_replies&.to_s, }, } end diff --git a/spec/lib/annual_report/commonly_interacted_with_accounts_spec.rb b/spec/lib/annual_report/commonly_interacted_with_accounts_spec.rb index e99d3cb4a7..0e31827912 100644 --- a/spec/lib/annual_report/commonly_interacted_with_accounts_spec.rb +++ b/spec/lib/annual_report/commonly_interacted_with_accounts_spec.rb @@ -32,7 +32,7 @@ RSpec.describe AnnualReport::CommonlyInteractedWithAccounts do expect(subject.generate) .to include( commonly_interacted_with_accounts: contain_exactly( - include(account_id: other_account.id, count: 2) + include(account_id: other_account.id.to_s, count: 2) ) ) end diff --git a/spec/lib/annual_report/most_reblogged_accounts_spec.rb b/spec/lib/annual_report/most_reblogged_accounts_spec.rb index 0280ba1992..2f04934e47 100644 --- a/spec/lib/annual_report/most_reblogged_accounts_spec.rb +++ b/spec/lib/annual_report/most_reblogged_accounts_spec.rb @@ -32,7 +32,7 @@ RSpec.describe AnnualReport::MostRebloggedAccounts do expect(subject.generate) .to include( most_reblogged_accounts: contain_exactly( - include(account_id: other_account.id, count: 2) + include(account_id: other_account.id.to_s, count: 2) ) ) end diff --git a/spec/lib/annual_report/top_statuses_spec.rb b/spec/lib/annual_report/top_statuses_spec.rb index b956b03973..af29df1f65 100644 --- a/spec/lib/annual_report/top_statuses_spec.rb +++ b/spec/lib/annual_report/top_statuses_spec.rb @@ -39,9 +39,9 @@ RSpec.describe AnnualReport::TopStatuses do expect(subject.generate) .to include( top_statuses: include( - by_reblogs: reblogged_status.id, - by_favourites: favourited_status.id, - by_replies: replied_status.id + by_reblogs: reblogged_status.id.to_s, + by_favourites: favourited_status.id.to_s, + by_replies: replied_status.id.to_s ) ) end From e78db58b654b58c83f583ac42e141f53d0ee4f60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:01:05 +0100 Subject: [PATCH 08/17] New Crowdin Translations (automated) (#32708) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/et.json | 7 +++++++ app/javascript/mastodon/locales/fi.json | 8 ++++---- app/javascript/mastodon/locales/ja.json | 2 ++ config/locales/doorkeeper.fi.yml | 2 +- config/locales/et.yml | 3 +++ config/locales/gd.yml | 3 +++ config/locales/simple_form.et.yml | 2 ++ config/locales/simple_form.gd.yml | 2 ++ 8 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index c360a3aa23..8376641179 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -158,6 +158,7 @@ "compose_form.poll.duration": "Küsitluse kestus", "compose_form.poll.multiple": "Mitu vastust", "compose_form.poll.option_placeholder": "Valik {number}", + "compose_form.poll.single": "Üks valik", "compose_form.poll.switch_to_multiple": "Muuda küsitlust mitmikvaliku lubamiseks", "compose_form.poll.switch_to_single": "Muuda küsitlust ainult ühe valiku lubamiseks", "compose_form.poll.type": "Stiil", @@ -196,6 +197,7 @@ "confirmations.unfollow.title": "Ei jälgi enam kasutajat?", "content_warning.hide": "Peida postitus", "content_warning.show": "Näita ikkagi", + "content_warning.show_more": "Näita rohkem", "conversation.delete": "Kustuta vestlus", "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", @@ -304,6 +306,7 @@ "filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus", "filter_modal.select_filter.title": "Filtreeri seda postitust", "filter_modal.title.status": "Postituse filtreerimine", + "filter_warning.matches_filter": "Sobib filtriga “{title}”", "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Mitte üheltki inimeselt} one {Ühelt inimeselt} other {# inimeselt}}, keda võid teada", "filtered_notifications_banner.title": "Filtreeritud teavitused", "firehose.all": "Kõik", @@ -383,6 +386,7 @@ "interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma koduvoos näha.", "interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.", "interaction_modal.description.reply": "Mastodoni kontoga saad sellele postitusele vastata.", + "interaction_modal.description.vote": "Mastodoni kontoga saad sellest küsitlusest osa võtta.", "interaction_modal.login.action": "Vii mind avalehele", "interaction_modal.login.prompt": "Sinu koduserveri domeen, näiteks mastodon.social", "interaction_modal.no_account_yet": "Pole Mastodonis?", @@ -394,6 +398,7 @@ "interaction_modal.title.follow": "Jälgi kontot {name}", "interaction_modal.title.reblog": "Jaga {name} postitust", "interaction_modal.title.reply": "Vasta kasutaja {name} postitusele", + "interaction_modal.title.vote": "Hääleta {name} küsitluses", "intervals.full.days": "{number, plural, one {# päev} other {# päeva}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}", @@ -506,6 +511,7 @@ "notification.favourite": "{name} märkis su postituse lemmikuks", "notification.favourite.name_and_others_with_link": "{name} ja {count, plural, one {# veel} other {# teist}} märkis su postituse lemmikuks", "notification.follow": "{name} alustas su jälgimist", + "notification.follow.name_and_others": "{name} ja veel {count, plural, one {# kasutaja} other {# kasutajat}} hakkas sind jälgima", "notification.follow_request": "{name} soovib sind jälgida", "notification.follow_request.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} taotles sinu jälgimist", "notification.label.mention": "Mainimine", @@ -564,6 +570,7 @@ "notifications.column_settings.filter_bar.category": "Kiirfiltri riba", "notifications.column_settings.follow": "Uued jälgijad:", "notifications.column_settings.follow_request": "Uued jälgimistaotlused:", + "notifications.column_settings.group": "Grupp", "notifications.column_settings.mention": "Mainimised:", "notifications.column_settings.poll": "Küsitluse tulemused:", "notifications.column_settings.push": "Push teated", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index fd971edfd3..2222e6038c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -439,7 +439,7 @@ "lightbox.close": "Sulje", "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", - "lightbox.zoom_in": "Näytä alkuperäiskokoisena", + "lightbox.zoom_in": "Näytä todellisen kokoisena", "lightbox.zoom_out": "Näytä sovitettuna", "limited_account_hint.action": "Näytä profiili joka tapauksessa", "limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.", @@ -529,7 +529,7 @@ "notification.moderation_warning.action_sensitive": "Tästä lähtien julkaisusi merkitään arkaluonteisiksi.", "notification.moderation_warning.action_silence": "Tiliäsi on rajoitettu.", "notification.moderation_warning.action_suspend": "Tilisi on jäädytetty.", - "notification.own_poll": "Kyselysi on päättynyt", + "notification.own_poll": "Äänestyksesi on päättynyt", "notification.poll": "Äänestys, johon osallistuit, on päättynyt", "notification.reblog": "{name} tehosti julkaisuasi", "notification.reblog.name_and_others_with_link": "{name} ja {count, plural, one {# muu} other {# muuta}} tehostivat julkaisuasi", @@ -572,7 +572,7 @@ "notifications.column_settings.follow_request": "Uudet seurantapyynnöt:", "notifications.column_settings.group": "Ryhmitä", "notifications.column_settings.mention": "Maininnat:", - "notifications.column_settings.poll": "Kyselyn tulokset:", + "notifications.column_settings.poll": "Äänestyksen tulokset:", "notifications.column_settings.push": "Puskuilmoitukset", "notifications.column_settings.reblog": "Tehostukset:", "notifications.column_settings.show": "Näytä sarakkeessa", @@ -586,7 +586,7 @@ "notifications.filter.favourites": "Suosikit", "notifications.filter.follows": "Seuraamiset", "notifications.filter.mentions": "Maininnat", - "notifications.filter.polls": "Kyselyn tulokset", + "notifications.filter.polls": "Äänestyksen tulokset", "notifications.filter.statuses": "Päivitykset seuraamiltasi käyttäjiltä", "notifications.grant_permission": "Myönnä käyttöoikeus.", "notifications.group": "{count} ilmoitusta", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index c0ef224b70..6f319dbb10 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -386,6 +386,7 @@ "interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。", "interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。", "interaction_modal.description.reply": "Mastodonのアカウントでこの投稿に反応できます。", + "interaction_modal.description.vote": "Mastodonのアカウントでこのアンケートに票を入れることができます。", "interaction_modal.login.action": "サーバーに移動", "interaction_modal.login.prompt": "登録したサーバーのドメイン (例: mastodon.social)", "interaction_modal.no_account_yet": "Mastodonにアカウントがない場合は", @@ -397,6 +398,7 @@ "interaction_modal.title.follow": "{name}さんをフォロー", "interaction_modal.title.reblog": "{name}さんの投稿をブースト", "interaction_modal.title.reply": "{name}さんの投稿にリプライ", + "interaction_modal.title.vote": "{name}さんのアンケートに投票", "intervals.full.days": "{number}日", "intervals.full.hours": "{number}時間", "intervals.full.minutes": "{number}分", diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index 24228d54a9..7d44a6a6b9 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -60,7 +60,7 @@ fi: error: title: Tapahtui virhe new: - prompt_html: "%{client_name} haluaisi luvan tilisi hyödyntämiseksi. Hyväksy pyyntö vain, jos tunnistat lähteen ja luotat siihen." + prompt_html: "%{client_name} haluaisi käyttöoikeuden tiliisi. Hyväksy tämä pyyntö vain, jos tunnistat lähteen ja luotat siihen." review_permissions: Tarkista käyttöoikeudet title: Valtuutus vaaditaan show: diff --git a/config/locales/et.yml b/config/locales/et.yml index 1a679af87f..3be9add91c 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1166,8 +1166,11 @@ et: use_security_key: Kasuta turvavõtit author_attribution: example_title: Näidistekst + hint_html: Kirjutad uudiseid või blogisid Mastodonist väljapool? Määra, kuidas sinule viidatakse, kui neid lehti jagatakse Mastodonis. + instructions: 'Vaata, et artikli HTML sisus oleks see kood sees:' more_from_html: Rohkem kasutajalt %{name} s_blog: Kasutaja %{name} blogi + then_instructions: Siis lisa avaldaja domeeninimi allolevasse välja. title: Autori tunnustamine challenge: confirm: Jätka diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 3495a070ec..a05ce6ed3c 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1202,8 +1202,11 @@ gd: use_security_key: Cleachd iuchair tèarainteachd author_attribution: example_title: Ball-sampaill teacsa + hint_html: An sgrìobh thu naidheachdan no bloga taobh a-muigh Mhastodon? Stiùirich mar a thèid iomradh a thoirt ort nuair a bhios na h-artaigilean agad ’gan co-roinneadh air Mastodon. + instructions: 'Dèan cinnteach gu bheil an còd seo am broinn HTML an artaigil agad:' more_from_html: Barrachd o %{name} s_blog: Bloga aig %{name} + then_instructions: An uair sin, cuir ainm àrainn an fhoillseachaidh ris an raon gu h-ìosal. title: Aithris air an ùghdar challenge: confirm: Lean air adhart diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 4a9245682d..a2ebf63b11 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -3,6 +3,7 @@ et: simple_form: hints: account: + attribution_domains_as_text: Üks rea peal. See kaitseb pahatahtlike viidete eest. discoverable: Su profiili ja avalikke postitusi võidakse Mastodoni erinevates piirkondades esile tõsta või soovitada ning su profiili soovitada teistele kasutajatele. display_name: Su täisnimi või naljanimi. fields: Su koduleht, sugu, vanus. Mistahes, mida soovid. @@ -143,6 +144,7 @@ et: url: Kuhu sündmused saadetakse labels: account: + attribution_domains_as_text: Sinule viidata lubatud veebilehed discoverable: Tõsta postitused ja profiil avastamise algoritmides esile fields: name: Nimetus diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 9b6c156de7..af1f06a316 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -3,6 +3,7 @@ gd: simple_form: hints: account: + attribution_domains_as_text: Loidhne fa leth do gach fear. Dìonaidh seo o iomraidhean meallta. discoverable: Dh’fhaoidte gun dèid na postaichean poblach ’s a’ phròifil agad a bhrosnachadh no a mholadh ann an caochladh roinnean de Mhastodon agus gun dèid a’ phròifil agad a mholadh do chàch. display_name: D’ ainm slàn no spòrsail. fields: An duilleag-dhachaigh agad, roimhearan, aois, rud sam bith a thogras tu. @@ -143,6 +144,7 @@ gd: url: Far an dèid na tachartasan a chur labels: account: + attribution_domains_as_text: Na làraichean-lìn a dh’fhaodas iomradh a thoirt ort discoverable: Brosnaich a’ phròifil is postaichean agad sna h-algairimean rùrachaidh fields: name: Leubail From 75b2ac49fb75cc9a842baec207325ef2b3a1335d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:02:47 +0100 Subject: [PATCH 09/17] Update dependency strong_migrations to v2.0.2 (#32705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f1088b22b6..0166572b3c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -823,7 +823,7 @@ GEM stoplight (4.1.0) redlock (~> 1.0) stringio (3.1.1) - strong_migrations (2.0.1) + strong_migrations (2.0.2) activerecord (>= 6.1) swd (1.3.0) activesupport (>= 3) From 87aa3467cf1b494ecd85d6ffcc94c2cdbec9dce4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:03:07 +0100 Subject: [PATCH 10/17] Update dependency selenium-webdriver to v4.26.0 (#32698) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0166572b3c..febc42e401 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -782,7 +782,7 @@ GEM scenic (1.8.0) activerecord (>= 4.0.0) railties (>= 4.0.0) - selenium-webdriver (4.25.0) + selenium-webdriver (4.26.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) From b3b3c0fe9606147fd60e6306ffc384275bc97616 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:28:20 +0100 Subject: [PATCH 11/17] Update dependency core-js to v3.39.0 (#32707) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7762f96102..0b24803e6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6373,9 +6373,9 @@ __metadata: linkType: hard "core-js@npm:^3.30.2": - version: 3.38.1 - resolution: "core-js@npm:3.38.1" - checksum: 10c0/7df063b6f13a54e46515817ac3e235c6c598a4d3de65cd188a061fc250642be313b895fb9fb2f36e1e31890a1bb4ef61d82666a340413f540b7ce3c65689739b + version: 3.39.0 + resolution: "core-js@npm:3.39.0" + checksum: 10c0/f7602069b6afb2e3298eec612a5c1e0c3e6a458930fbfc7a4c5f9ac03426507f49ce395eecdd2d9bae9024f820e44582b67ffe16f2272395af26964f174eeb6b languageName: node linkType: hard From 516c97a112f6b9e9cc34c56d7300d04b54954f65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:42:18 +0100 Subject: [PATCH 12/17] Update dependency node to v22 (#32689) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .nvmrc | 2 +- Dockerfile | 2 +- streaming/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.nvmrc b/.nvmrc index 10fef252a9..8b84b727be 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.18 +22.11 diff --git a/Dockerfile b/Dockerfile index acb7631eb9..c6d8466f43 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM} ARG RUBY_VERSION="3.3.5" # # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"] # renovate: datasource=node-version depName=node -ARG NODE_MAJOR_VERSION="20" +ARG NODE_MAJOR_VERSION="22" # Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"] ARG DEBIAN_VERSION="bookworm" # Node image to use for base image based on combined variables (ex: 20-bookworm-slim) diff --git a/streaming/Dockerfile b/streaming/Dockerfile index bed6b63738..f94c04e7a2 100644 --- a/streaming/Dockerfile +++ b/streaming/Dockerfile @@ -9,7 +9,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM} # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"] # renovate: datasource=node-version depName=node -ARG NODE_MAJOR_VERSION="20" +ARG NODE_MAJOR_VERSION="22" # Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"] ARG DEBIAN_VERSION="bookworm" # Node image to use for base image based on combined variables (ex: 20-bookworm-slim) From 917a799c673ea617beb9452c5fddbaaca6f406f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A9=20Dupuis?= <1518299+JoeDupuis@users.noreply.github.com> Date: Thu, 31 Oct 2024 06:46:07 -0400 Subject: [PATCH 13/17] Migrate from the deprecated `azure-storage-blob` to `azure-blob` (#32080) Co-authored-by: Renaud Chaput --- Gemfile | 2 +- Gemfile.lock | 24 +++++++----------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/Gemfile b/Gemfile index 97856d7825..97f5c7bcc5 100644 --- a/Gemfile +++ b/Gemfile @@ -18,8 +18,8 @@ gem 'aws-sdk-s3', '~> 1.123', require: false gem 'blurhash', '~> 0.1' gem 'fog-core', '<= 2.6.0' gem 'fog-openstack', '~> 1.0', require: false +gem 'jd-paperclip-azure', '~> 3.0', require: false gem 'kt-paperclip', '~> 7.2' -gem 'md-paperclip-azure', '~> 2.2', require: false gem 'ruby-vips', '~> 2.2', require: false gem 'active_model_serializers', '~> 0.10' diff --git a/Gemfile.lock b/Gemfile.lock index febc42e401..46a6766e5b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,14 +115,8 @@ GEM aws-sigv4 (~> 1.5) aws-sigv4 (1.10.1) aws-eventstream (~> 1, >= 1.0.2) - azure-storage-blob (2.0.3) - azure-storage-common (~> 2.0) - nokogiri (~> 1, >= 1.10.8) - azure-storage-common (2.0.4) - faraday (~> 1.0) - faraday_middleware (~> 1.0, >= 1.0.0.rc1) - net-http-persistent (~> 4.0) - nokogiri (~> 1, >= 1.10.8) + azure-blob (0.5.2) + rexml base64 (0.2.0) bcp47_spec (0.2.1) bcrypt (3.1.20) @@ -258,8 +252,6 @@ GEM faraday-patron (1.0.0) faraday-rack (1.0.0) faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) fast_blank (1.0.1) fastimage (2.3.1) ffi (1.17.0) @@ -350,6 +342,10 @@ GEM irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) + jd-paperclip-azure (3.0.0) + addressable (~> 2.5) + azure-blob (~> 0.5.2) + hashie (~> 5.0) jmespath (1.6.2) json (2.7.4) json-canonicalization (1.0.0) @@ -424,10 +420,6 @@ GEM mario-redis-lock (1.2.1) redis (>= 3.0.5) matrix (0.4.2) - md-paperclip-azure (2.2.0) - addressable (~> 2.5) - azure-storage-blob (~> 2.0.1) - hashie (~> 5.0) memory_profiler (1.1.0) mime-types (3.6.0) logger @@ -442,8 +434,6 @@ GEM mutex_m (0.2.0) net-http (0.4.1) uri - net-http-persistent (4.0.2) - connection_pool (~> 2.2) net-imap (0.5.0) date net-protocol @@ -958,6 +948,7 @@ DEPENDENCIES idn-ruby inline_svg irb (~> 1.8) + jd-paperclip-azure (~> 3.0) json-ld json-ld-preloaded (~> 3.2) json-schema (~> 5.0) @@ -969,7 +960,6 @@ DEPENDENCIES lograge (~> 0.12) mail (~> 2.8) mario-redis-lock (~> 1.2) - md-paperclip-azure (~> 2.2) memory_profiler mime-types (~> 3.6.0) net-http (~> 0.4.0) From a20ac20302f14e8cd14cd1abd6d02ddf528b58f5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 31 Oct 2024 09:27:47 -0400 Subject: [PATCH 14/17] Add model spec for `Tombstone` (#32697) --- app/models/tombstone.rb | 2 ++ spec/fabricators/tombstone_fabricator.rb | 6 ++++++ spec/models/tombstone_spec.rb | 15 +++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 spec/fabricators/tombstone_fabricator.rb create mode 100644 spec/models/tombstone_spec.rb diff --git a/app/models/tombstone.rb b/app/models/tombstone.rb index bf666c43ac..92eddfc626 100644 --- a/app/models/tombstone.rb +++ b/app/models/tombstone.rb @@ -14,4 +14,6 @@ class Tombstone < ApplicationRecord belongs_to :account + + validates :uri, presence: true end diff --git a/spec/fabricators/tombstone_fabricator.rb b/spec/fabricators/tombstone_fabricator.rb new file mode 100644 index 0000000000..b4cab086af --- /dev/null +++ b/spec/fabricators/tombstone_fabricator.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +Fabricator(:tombstone) do + account + uri { sequence(:uri) { |i| "https://host.example/value/#{i}" } } +end diff --git a/spec/models/tombstone_spec.rb b/spec/models/tombstone_spec.rb new file mode 100644 index 0000000000..ba0603fe3d --- /dev/null +++ b/spec/models/tombstone_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Tombstone do + describe 'Associations' do + it { is_expected.to belong_to(:account).required } + end + + describe 'Validations' do + subject { Fabricate.build :tombstone } + + it { is_expected.to validate_presence_of(:uri) } + end +end From b231c3c1bfb701c504d3d17221cf4a758668a49e Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 31 Oct 2024 11:12:08 -0400 Subject: [PATCH 15/17] Drop support for ruby 3.1 (#32363) --- .github/workflows/test-ruby.yml | 4 ---- .rubocop.yml | 2 +- Gemfile | 2 +- README.md | 2 +- app/controllers/activitypub/outboxes_controller.rb | 6 +++--- app/controllers/api/v1/accounts_controller.rb | 4 ++-- app/controllers/api/v1/follow_requests_controller.rb | 4 ++-- app/helpers/media_component_helper.rb | 12 ++++++------ app/helpers/routing_helper.rb | 12 ++++++------ app/lib/activitypub/activity.rb | 4 ++-- app/lib/rss/element.rb | 4 ++-- app/lib/translation_service/deepl.rb | 4 ++-- app/lib/translation_service/libre_translate.rb | 4 ++-- app/models/concerns/status/snapshot_concern.rb | 4 ++-- app/models/session_activation.rb | 4 ++-- app/models/user.rb | 4 ++-- lib/mastodon/cli/accounts.rb | 1 - spec/support/command_line_helpers.rb | 4 ++-- 18 files changed, 38 insertions(+), 43 deletions(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index c05c8333b2..770cd72a1b 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -124,7 +124,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.1' - '3.2' - '.ruby-version' steps: @@ -226,7 +225,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.1' - '3.2' - '.ruby-version' steps: @@ -305,7 +303,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.1' - '3.2' - '.ruby-version' @@ -422,7 +419,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.1' - '3.2' - '.ruby-version' search-image: diff --git a/.rubocop.yml b/.rubocop.yml index 965f56f3e7..ebeed6ea49 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,7 @@ AllCops: - lib/mastodon/migration_helpers.rb ExtraDetails: true NewCops: enable - TargetRubyVersion: 3.1 # Oldest supported ruby version + TargetRubyVersion: 3.2 # Oldest supported ruby version inherit_from: - .rubocop/layout.yml diff --git a/Gemfile b/Gemfile index 97f5c7bcc5..0c3484a7aa 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby '>= 3.1.0' +ruby '>= 3.2.0' gem 'propshaft' gem 'puma', '~> 6.3' diff --git a/README.md b/README.md index 9c0b0d20ed..17d9eefb57 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Mastodon acts as an OAuth2 provider, so 3rd party apps can use the REST and Stre - **PostgreSQL** 12+ - **Redis** 4+ -- **Ruby** 3.1+ +- **Ruby** 3.2+ - **Node.js** 18+ The repository includes deployment configurations for **Docker and docker-compose** as well as specific platforms like **Heroku**, and **Scalingo**. For Helm charts, reference the [mastodon/chart repository](https://github.com/mastodon/chart). The [**standalone** installation guide](https://docs.joinmastodon.org/admin/install/) is available in the documentation. diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index b8baf64e1a..0c995edbf8 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -41,11 +41,11 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController end end - def outbox_url(**kwargs) + def outbox_url(**) if params[:account_username].present? - account_outbox_url(@account, **kwargs) + account_outbox_url(@account, **) else - instance_actor_outbox_url(**kwargs) + instance_actor_outbox_url(**) end end diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 28acaeea05..f7d3de7f94 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -106,8 +106,8 @@ class Api::V1::AccountsController < Api::BaseController render json: { error: I18n.t('accounts.self_follow_error') }, status: 403 if current_user.account.id == @account.id end - def relationships(**options) - AccountRelationshipsPresenter.new([@account], current_user.account_id, **options) + def relationships(**) + AccountRelationshipsPresenter.new([@account], current_user.account_id, **) end def account_ids diff --git a/app/controllers/api/v1/follow_requests_controller.rb b/app/controllers/api/v1/follow_requests_controller.rb index 29a09fceef..4b44cfe531 100644 --- a/app/controllers/api/v1/follow_requests_controller.rb +++ b/app/controllers/api/v1/follow_requests_controller.rb @@ -28,8 +28,8 @@ class Api::V1::FollowRequestsController < Api::BaseController @account ||= Account.find(params[:id]) end - def relationships(**options) - AccountRelationshipsPresenter.new([account], current_user.account_id, **options) + def relationships(**) + AccountRelationshipsPresenter.new([account], current_user.account_id, **) end def load_accounts diff --git a/app/helpers/media_component_helper.rb b/app/helpers/media_component_helper.rb index 60ccdd0835..269566528a 100644 --- a/app/helpers/media_component_helper.rb +++ b/app/helpers/media_component_helper.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module MediaComponentHelper - def render_video_component(status, **options) + def render_video_component(status, **) video = status.ordered_media_attachments.first meta = video.file.meta || {} @@ -18,14 +18,14 @@ module MediaComponentHelper media: [ serialize_media_attachment(video), ].as_json, - }.merge(**options) + }.merge(**) react_component :video, component_params do render partial: 'statuses/attachment_list', locals: { attachments: status.ordered_media_attachments } end end - def render_audio_component(status, **options) + def render_audio_component(status, **) audio = status.ordered_media_attachments.first meta = audio.file.meta || {} @@ -38,19 +38,19 @@ module MediaComponentHelper foregroundColor: meta.dig('colors', 'foreground'), accentColor: meta.dig('colors', 'accent'), duration: meta.dig('original', 'duration'), - }.merge(**options) + }.merge(**) react_component :audio, component_params do render partial: 'statuses/attachment_list', locals: { attachments: status.ordered_media_attachments } end end - def render_media_gallery_component(status, **options) + def render_media_gallery_component(status, **) component_params = { sensitive: sensitive_viewer?(status, current_account), autoplay: prefers_autoplay?, media: status.ordered_media_attachments.map { |a| serialize_media_attachment(a).as_json }, - }.merge(**options) + }.merge(**) react_component :media_gallery, component_params do render partial: 'statuses/attachment_list', locals: { attachments: status.ordered_media_attachments } diff --git a/app/helpers/routing_helper.rb b/app/helpers/routing_helper.rb index 15d988f64d..22efc5f092 100644 --- a/app/helpers/routing_helper.rb +++ b/app/helpers/routing_helper.rb @@ -14,8 +14,8 @@ module RoutingHelper end end - def full_asset_url(source, **options) - source = ActionController::Base.helpers.asset_url(source, **options) unless use_storage? + def full_asset_url(source, **) + source = ActionController::Base.helpers.asset_url(source, **) unless use_storage? URI.join(asset_host, source).to_s end @@ -24,12 +24,12 @@ module RoutingHelper Rails.configuration.action_controller.asset_host || root_url end - def frontend_asset_path(source, **options) - asset_pack_path("media/#{source}", **options) + def frontend_asset_path(source, **) + asset_pack_path("media/#{source}", **) end - def frontend_asset_url(source, **options) - full_asset_url(frontend_asset_path(source, **options)) + def frontend_asset_url(source, **) + full_asset_url(frontend_asset_path(source, **)) end def use_storage? diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 322f3e27ad..29411774a1 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -20,9 +20,9 @@ class ActivityPub::Activity end class << self - def factory(json, account, **options) + def factory(json, account, **) @json = json - klass&.new(json, account, **options) + klass&.new(json, account, **) end private diff --git a/app/lib/rss/element.rb b/app/lib/rss/element.rb index 7142fa0396..073fad1234 100644 --- a/app/lib/rss/element.rb +++ b/app/lib/rss/element.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class RSS::Element - def self.with(*args, &block) - new(*args).tap(&block).to_element + def self.with(*, &block) + new(*).tap(&block).to_element end def create_element(name, content = nil) diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index 925a1cf172..7761dbe626 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -42,8 +42,8 @@ class TranslationService::DeepL < TranslationService subtags.join('-') end - def request(verb, path, **options) - req = Request.new(verb, "#{base_url}#{path}", **options) + def request(verb, path, **) + req = Request.new(verb, "#{base_url}#{path}", **) req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}") req.perform do |res| case res.code diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb index de43d7c88c..0df8590f87 100644 --- a/app/lib/translation_service/libre_translate.rb +++ b/app/lib/translation_service/libre_translate.rb @@ -27,8 +27,8 @@ class TranslationService::LibreTranslate < TranslationService private - def request(verb, path, **options) - req = Request.new(verb, "#{@base_url}#{path}", allow_local: true, **options) + def request(verb, path, **) + req = Request.new(verb, "#{@base_url}#{path}", allow_local: true, **) req.add_headers('Content-Type': 'application/json') req.perform do |res| case res.code diff --git a/app/models/concerns/status/snapshot_concern.rb b/app/models/concerns/status/snapshot_concern.rb index ba624d943e..0289710904 100644 --- a/app/models/concerns/status/snapshot_concern.rb +++ b/app/models/concerns/status/snapshot_concern.rb @@ -29,7 +29,7 @@ module Status::SnapshotConcern ) end - def snapshot!(**options) - build_snapshot(**options).save! + def snapshot!(**) + build_snapshot(**).save! end end diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb index 8b8e533d30..31f18fd7ef 100644 --- a/app/models/session_activation.rb +++ b/app/models/session_activation.rb @@ -35,8 +35,8 @@ class SessionActivation < ApplicationRecord id && exists?(session_id: id) end - def activate(**options) - activation = create!(**options) + def activate(**) + activation = create!(**) purge_old activation end diff --git a/app/models/user.rb b/app/models/user.rb index c32a575edf..69c5a01569 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -405,8 +405,8 @@ class User < ApplicationRecord @pending_devise_notifications ||= [] end - def render_and_send_devise_message(notification, *args, **kwargs) - devise_mailer.send(notification, self, *args, **kwargs).deliver_later + def render_and_send_devise_message(notification, *, **) + devise_mailer.send(notification, self, *, **).deliver_later end def set_approved diff --git a/lib/mastodon/cli/accounts.rb b/lib/mastodon/cli/accounts.rb index e76735298f..23c907543f 100644 --- a/lib/mastodon/cli/accounts.rb +++ b/lib/mastodon/cli/accounts.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'set' require_relative 'base' module Mastodon::CLI diff --git a/spec/support/command_line_helpers.rb b/spec/support/command_line_helpers.rb index 6f9d63d939..09b2b70ba1 100644 --- a/spec/support/command_line_helpers.rb +++ b/spec/support/command_line_helpers.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true module CommandLineHelpers - def output_results(*args) + def output_results(*) output( - include(*args) + include(*) ).to_stdout end end From 080b3b6ca5dde6426d0f5f44345980dbfdc569c0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 31 Oct 2024 11:13:20 -0400 Subject: [PATCH 16/17] Update `rails-i18n` to version 7.0.10 (#32719) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 46a6766e5b..fae39aefc3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -654,7 +654,7 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - rails-i18n (7.0.9) + rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) railties (7.1.4.2) From b06fd54c305915527e3a6edc575dc23b623143ef Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 31 Oct 2024 12:00:21 -0400 Subject: [PATCH 17/17] Update `zeitwerk` to version 2.7.1 (#32723) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fae39aefc3..c714838170 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -893,7 +893,7 @@ GEM xorcist (1.1.3) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.18) + zeitwerk (2.7.1) PLATFORMS ruby