diff --git a/src/app.css b/src/app.css
index f4ce05f5..a03c799f 100644
--- a/src/app.css
+++ b/src/app.css
@@ -1395,6 +1395,11 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
user-select: none;
width: 100%;
gap: 16px;
+ --accent-gradient: var(--accent-gradient-light);
+ @media (prefers-color-scheme: dark) {
+ --accent-gradient: var(--accent-gradient-dark);
+ }
+ background-image: linear-gradient(to var(--forward), var(--accent-gradient));
}
.carousel::-webkit-scrollbar {
display: none;
@@ -1409,7 +1414,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
width: 100%;
height: 100vh;
height: 100dvh;
- background-color: var(--accent-alpha-color);
+ background-color: var(--accent-light-color);
+ @media (prefers-color-scheme: dark) {
+ background-color: var(--accent-dark-color);
+ }
/* background-image: radial-gradient(
closest-side,
var(--accent-color) 10%,
diff --git a/src/app.jsx b/src/app.jsx
index f02855b3..8d95cc34 100644
--- a/src/app.jsx
+++ b/src/app.jsx
@@ -210,6 +210,12 @@ const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
if (isIOS) {
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'visible') {
+ // Don't reset theme color if media modal is showing
+ // Media modal will set its own theme color based on the media's color
+ const showingMediaModal =
+ document.getElementsByClassName('media-modal-container').length > 0;
+ if (showingMediaModal) return;
+
const theme = store.local.get('theme');
let $meta;
if (theme) {
diff --git a/src/components/media-modal.jsx b/src/components/media-modal.jsx
index b254b6df..1d2d1be3 100644
--- a/src/components/media-modal.jsx
+++ b/src/components/media-modal.jsx
@@ -14,6 +14,7 @@ import { oklab2rgb, rgb2oklab } from '../utils/color-utils';
import isRTL from '../utils/is-rtl';
import showToast from '../utils/show-toast';
import states from '../utils/states';
+import store from '../utils/store';
import Icon from './icon';
import Link from './link';
@@ -115,39 +116,95 @@ function MediaModal({
return () => clearTimeout(timer);
}, []);
- const mediaAccentColors = useMemo(() => {
+ const mediaOklabColors = useMemo(() => {
return mediaAttachments?.map((media) => {
const { blurhash } = media;
if (blurhash) {
const averageColor = getBlurHashAverageColor(blurhash);
- const labAverageColor = rgb2oklab(averageColor);
- return oklab2rgb([0.6, labAverageColor[1], labAverageColor[2]]);
+ return rgb2oklab(averageColor);
}
return null;
});
}, [mediaAttachments]);
- const mediaAccentGradient = useMemo(() => {
+ // const mediaAccentColors = useMemo(() => {
+ // return mediaOklabColors?.map((labAverageColor) => {
+ // if (labAverageColor) {
+ // return oklab2rgb([0.6, labAverageColor[1], labAverageColor[2]]);
+ // }
+ // return null;
+ // });
+ // }, [mediaOklabColors]);
+ const mediaAccentColors = useMemo(() => {
+ return mediaOklabColors?.map((labAverageColor) => {
+ if (labAverageColor) {
+ return {
+ light: oklab2rgb([0.95, labAverageColor[1], labAverageColor[2]]),
+ dark: oklab2rgb([0.25, labAverageColor[1], labAverageColor[2]]),
+ default: oklab2rgb([0.6, labAverageColor[1], labAverageColor[2]]),
+ };
+ }
+ return {};
+ });
+ });
+ // const mediaAccentGradient = useMemo(() => {
+ // const gap = 5;
+ // const range = 100 / mediaAccentColors.length;
+ // return (
+ // mediaAccentColors
+ // ?.map((color, i) => {
+ // const start = i * range + gap;
+ // const end = (i + 1) * range - gap;
+ // if (color) {
+ // return `
+ // rgba(${color?.join(',')}, 0.4) ${start}%,
+ // rgba(${color?.join(',')}, 0.4) ${end}%
+ // `;
+ // }
+
+ // return `
+ // transparent ${start}%,
+ // transparent ${end}%
+ // `;
+ // })
+ // ?.join(', ') || 'transparent'
+ // );
+ // }, [mediaAccentColors]);
+ const mediaAccentGradients = useMemo(() => {
const gap = 5;
const range = 100 / mediaAccentColors.length;
- return (
- mediaAccentColors
- ?.map((color, i) => {
- const start = i * range + gap;
- const end = (i + 1) * range - gap;
- if (color) {
- return `
- rgba(${color?.join(',')}, 0.4) ${start}%,
- rgba(${color?.join(',')}, 0.4) ${end}%
- `;
- }
+ const colors = mediaAccentColors.map((color, i) => {
+ const start = i * range + gap;
+ const end = (i + 1) * range - gap;
+ if (color?.light && color?.dark) {
+ return {
+ light: `
+ rgb(${color.light?.join(',')}) ${start}%,
+ rgb(${color.light?.join(',')}) ${end}%
+ `,
+ dark: `
+ rgb(${color.dark?.join(',')}) ${start}%,
+ rgb(${color.dark?.join(',')}) ${end}%
+ `,
+ };
+ }
- return `
- transparent ${start}%,
- transparent ${end}%
- `;
- })
- ?.join(', ') || 'transparent'
- );
+ return {
+ light: `
+ transparent ${start}%,
+ transparent ${end}%
+ `,
+ dark: `
+ transparent ${start}%,
+ transparent ${end}%
+ `,
+ };
+ });
+ const lightGradient = colors.map((color) => color.light).join(', ');
+ const darkGradient = colors.map((color) => color.dark).join(', ');
+ return {
+ light: lightGradient,
+ dark: darkGradient,
+ };
}, [mediaAccentColors]);
let toastRef = useRef(null);
@@ -157,6 +214,46 @@ function MediaModal({
};
}, []);
+ useLayoutEffect(() => {
+ const currentColor = mediaAccentColors[currentIndex];
+ let $meta;
+ let metaColor;
+ if (currentColor) {
+ const theme = store.local.get('theme');
+ if (theme) {
+ const mediaColor = `rgb(${currentColor[theme].join(',')})`;
+ console.log({ mediaColor });
+ $meta = document.querySelector(
+ `meta[name="theme-color"][data-theme-setting="manual"]`,
+ );
+ if ($meta) {
+ metaColor = $meta.content;
+ $meta.content = mediaColor;
+ }
+ } else {
+ const colorScheme = window.matchMedia('(prefers-color-scheme: dark)')
+ .matches
+ ? 'dark'
+ : 'light';
+ const mediaColor = `rgb(${currentColor[colorScheme].join(',')})`;
+ console.log({ mediaColor });
+ $meta = document.querySelector(
+ `meta[name="theme-color"][media*="${colorScheme}"]`,
+ );
+ if ($meta) {
+ metaColor = $meta.content;
+ $meta.content = mediaColor;
+ }
+ }
+ }
+ return () => {
+ // Reset meta color
+ if ($meta && metaColor) {
+ $meta.content = metaColor;
+ }
+ };
+ }, [currentIndex, mediaAccentColors]);
+
return (
1
? {
backgroundAttachment: 'local',
- backgroundImage: `linear-gradient(
- to ${isRTL() ? 'left' : 'right'}, ${mediaAccentGradient})`,
+ '--accent-gradient-light': mediaAccentGradients?.light,
+ '--accent-gradient-dark': mediaAccentGradients?.dark,
+ // backgroundImage: `linear-gradient(
+ // to ${isRTL() ? 'left' : 'right'}, ${mediaAccentGradient})`,
}
: {}
}
@@ -194,8 +293,14 @@ function MediaModal({
style={
accentColor
? {
- '--accent-color': `rgb(${accentColor?.join(',')})`,
- '--accent-alpha-color': `rgba(${accentColor?.join(
+ '--accent-color': `rgb(${accentColor.default.join(',')})`,
+ '--accent-light-color': `rgb(${accentColor.light?.join(
+ ',',
+ )})`,
+ '--accent-dark-color': `rgb(${accentColor.dark?.join(
+ ',',
+ )})`,
+ '--accent-alpha-color': `rgba(${accentColor.default.join(
',',
)}, 0.4)`,
}
diff --git a/src/data/catalogs.json b/src/data/catalogs.json
index f96a47cc..3aae790d 100644
--- a/src/data/catalogs.json
+++ b/src/data/catalogs.json
@@ -135,7 +135,7 @@
"code": "ru-RU",
"nativeName": "русский",
"name": "Russian",
- "completion": 99
+ "completion": 100
},
{
"code": "th-TH",
diff --git a/src/locales/ca-ES.po b/src/locales/ca-ES.po
index 65fb304c..70bedeb7 100644
--- a/src/locales/ca-ES.po
+++ b/src/locales/ca-ES.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-04 21:10\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -111,7 +111,7 @@ msgstr "Publicacions"
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:336
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -415,7 +415,7 @@ msgstr "Segueix"
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:300
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -863,13 +863,13 @@ msgid "Type to search GIFs"
msgstr "Escriviu per cercar un GIF"
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:440
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr "Anterior"
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:459
#: src/components/timeline.jsx:906
msgid "Next"
msgstr "Següent"
@@ -1052,11 +1052,11 @@ msgstr "<0>10> a <1>91>"
#: src/components/keyboard-shortcuts-help.jsx:117
msgid "Focus next column in multi-column mode"
-msgstr ""
+msgstr "Centra la columna següent en mode de múltiples columnes"
#: src/components/keyboard-shortcuts-help.jsx:121
msgid "Focus previous column in multi-column mode"
-msgstr ""
+msgstr "Centra la columna anterior en mode de múltiples columnes"
#: src/components/keyboard-shortcuts-help.jsx:125
msgid "Compose new post"
@@ -1190,27 +1190,27 @@ msgstr "Tradueix"
msgid "Speak"
msgstr "Pronuncia"
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:347
msgid "Open original media in new window"
msgstr "Obre el fitxer original en una finestra nova"
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:351
msgid "Open original media"
msgstr "Obre el fitxer original"
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:367
msgid "Attempting to describe image. Please wait…"
msgstr "Intentant descriure la imatge. Si us plau, espereu…"
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:382
msgid "Failed to describe image"
msgstr "No s'ha pogut descriure la imatge"
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:392
msgid "Describe image…"
msgstr "Descriu la imatge…"
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:415
msgid "View post"
msgstr "Mostra la publicació"
@@ -2726,7 +2726,7 @@ msgstr "Densitat"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Filtra"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/en.po b/src/locales/en.po
index 5fcd47a7..f32729e4 100644
--- a/src/locales/en.po
+++ b/src/locales/en.po
@@ -106,7 +106,7 @@ msgstr ""
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:388
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -193,7 +193,7 @@ msgstr ""
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2068
-#: src/pages/settings.jsx:1110
+#: src/pages/settings.jsx:1145
msgid "Boosts"
msgstr ""
@@ -410,7 +410,7 @@ msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:352
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -425,7 +425,7 @@ msgstr ""
#: src/pages/list.jsx:274
#: src/pages/notifications.jsx:868
#: src/pages/notifications.jsx:1082
-#: src/pages/settings.jsx:76
+#: src/pages/settings.jsx:77
#: src/pages/status.jsx:1299
msgid "Close"
msgstr ""
@@ -619,7 +619,7 @@ msgstr ""
#: src/components/compose.jsx:1191
#: src/components/status.jsx:93
-#: src/pages/settings.jsx:304
+#: src/pages/settings.jsx:305
msgid "Public"
msgstr ""
@@ -632,13 +632,13 @@ msgstr ""
#: src/components/compose.jsx:1200
#: src/components/status.jsx:95
-#: src/pages/settings.jsx:307
+#: src/pages/settings.jsx:308
msgid "Unlisted"
msgstr ""
#: src/components/compose.jsx:1203
#: src/components/status.jsx:96
-#: src/pages/settings.jsx:310
+#: src/pages/settings.jsx:311
msgid "Followers only"
msgstr ""
@@ -858,13 +858,13 @@ msgid "Type to search GIFs"
msgstr ""
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:492
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:511
#: src/components/timeline.jsx:906
msgid "Next"
msgstr ""
@@ -874,7 +874,7 @@ msgid "Error loading GIFs"
msgstr ""
#: src/components/drafts.jsx:63
-#: src/pages/settings.jsx:691
+#: src/pages/settings.jsx:692
msgid "Unsent drafts"
msgstr ""
@@ -1185,27 +1185,27 @@ msgstr ""
msgid "Speak"
msgstr ""
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:399
msgid "Open original media in new window"
msgstr ""
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:403
msgid "Open original media"
msgstr ""
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:419
msgid "Attempting to describe image. Please wait…"
msgstr ""
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:434
msgid "Failed to describe image"
msgstr ""
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:444
msgid "Describe image…"
msgstr ""
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:467
msgid "View post"
msgstr ""
@@ -1270,7 +1270,7 @@ msgstr ""
#: src/pages/home.jsx:224
#: src/pages/mentions.jsx:20
#: src/pages/mentions.jsx:167
-#: src/pages/settings.jsx:1102
+#: src/pages/settings.jsx:1137
#: src/pages/trending.jsx:381
msgid "Mentions"
msgstr ""
@@ -1325,7 +1325,7 @@ msgstr ""
#: src/pages/catchup.jsx:2062
#: src/pages/favourites.jsx:11
#: src/pages/favourites.jsx:23
-#: src/pages/settings.jsx:1106
+#: src/pages/settings.jsx:1141
msgid "Likes"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "<0/> <1/> boosted"
msgstr ""
#: src/components/timeline.jsx:453
-#: src/pages/settings.jsx:1130
+#: src/pages/settings.jsx:1165
msgid "New posts"
msgstr ""
@@ -3169,7 +3169,7 @@ msgid "{0, plural, one {Announcement} other {Announcements}}"
msgstr ""
#: src/pages/notifications.jsx:614
-#: src/pages/settings.jsx:1118
+#: src/pages/settings.jsx:1153
msgid "Follow requests"
msgstr ""
@@ -3340,240 +3340,240 @@ msgstr ""
msgid "Enter your search term or paste a URL above to get started."
msgstr ""
-#: src/pages/settings.jsx:81
+#: src/pages/settings.jsx:82
msgid "Settings"
msgstr ""
-#: src/pages/settings.jsx:90
+#: src/pages/settings.jsx:91
msgid "Appearance"
msgstr ""
-#: src/pages/settings.jsx:166
+#: src/pages/settings.jsx:167
msgid "Light"
msgstr ""
-#: src/pages/settings.jsx:177
+#: src/pages/settings.jsx:178
msgid "Dark"
msgstr ""
-#: src/pages/settings.jsx:190
+#: src/pages/settings.jsx:191
msgid "Auto"
msgstr ""
-#: src/pages/settings.jsx:200
+#: src/pages/settings.jsx:201
msgid "Text size"
msgstr ""
#. Preview of one character, in smallest size
#. Preview of one character, in largest size
-#: src/pages/settings.jsx:205
-#: src/pages/settings.jsx:230
+#: src/pages/settings.jsx:206
+#: src/pages/settings.jsx:231
msgid "A"
msgstr ""
-#: src/pages/settings.jsx:244
+#: src/pages/settings.jsx:245
msgid "Display language"
msgstr ""
-#: src/pages/settings.jsx:253
+#: src/pages/settings.jsx:254
msgid "Volunteer translations"
msgstr "Volunteer translations"
-#: src/pages/settings.jsx:264
+#: src/pages/settings.jsx:265
msgid "Posting"
msgstr ""
-#: src/pages/settings.jsx:271
+#: src/pages/settings.jsx:272
msgid "Default visibility"
msgstr ""
-#: src/pages/settings.jsx:272
-#: src/pages/settings.jsx:318
+#: src/pages/settings.jsx:273
+#: src/pages/settings.jsx:319
msgid "Synced"
msgstr ""
-#: src/pages/settings.jsx:297
+#: src/pages/settings.jsx:298
msgid "Failed to update posting privacy"
msgstr ""
-#: src/pages/settings.jsx:320
+#: src/pages/settings.jsx:321
msgid "Synced to your instance server's settings. <0>Go to your instance ({instance}) for more settings.0>"
msgstr ""
-#: src/pages/settings.jsx:335
+#: src/pages/settings.jsx:336
msgid "Experiments"
msgstr ""
-#: src/pages/settings.jsx:348
+#: src/pages/settings.jsx:349
msgid "Auto refresh timeline posts"
msgstr ""
-#: src/pages/settings.jsx:360
+#: src/pages/settings.jsx:361
msgid "Boosts carousel"
msgstr ""
-#: src/pages/settings.jsx:376
+#: src/pages/settings.jsx:377
msgid "Post translation"
msgstr ""
-#: src/pages/settings.jsx:387
+#: src/pages/settings.jsx:388
msgid "Translate to"
msgstr ""
-#: src/pages/settings.jsx:398
+#: src/pages/settings.jsx:399
msgid "System language ({systemTargetLanguageText})"
msgstr ""
-#: src/pages/settings.jsx:424
+#: src/pages/settings.jsx:425
msgid "{0, plural, =0 {Hide \"Translate\" button for:} other {Hide \"Translate\" button for (#):}}"
msgstr ""
-#: src/pages/settings.jsx:478
+#: src/pages/settings.jsx:479
msgid "Note: This feature uses external translation services, powered by <0>Lingva API0> & <1>Lingva Translate1>."
msgstr ""
-#: src/pages/settings.jsx:512
+#: src/pages/settings.jsx:513
msgid "Auto inline translation"
msgstr ""
-#: src/pages/settings.jsx:516
+#: src/pages/settings.jsx:517
msgid "Automatically show translation for posts in timeline. Only works for <0>short0> posts without content warning, media and poll."
msgstr ""
-#: src/pages/settings.jsx:536
+#: src/pages/settings.jsx:537
msgid "GIF Picker for composer"
msgstr ""
-#: src/pages/settings.jsx:540
+#: src/pages/settings.jsx:541
msgid "Note: This feature uses external GIF search service, powered by <0>GIPHY0>. G-rated (suitable for viewing by all ages), tracking parameters are stripped, referrer information is omitted from requests, but search queries and IP address information will still reach their servers."
msgstr ""
-#: src/pages/settings.jsx:569
+#: src/pages/settings.jsx:570
msgid "Image description generator"
msgstr ""
-#: src/pages/settings.jsx:574
+#: src/pages/settings.jsx:575
msgid "Only for new images while composing new posts."
msgstr ""
-#: src/pages/settings.jsx:581
+#: src/pages/settings.jsx:582
msgid "Note: This feature uses external AI service, powered by <0>img-alt-api0>. May not work well. Only for images and in English."
msgstr ""
-#: src/pages/settings.jsx:607
+#: src/pages/settings.jsx:608
msgid "Server-side grouped notifications"
msgstr ""
-#: src/pages/settings.jsx:611
+#: src/pages/settings.jsx:612
msgid "Alpha-stage feature. Potentially improved grouping window but basic grouping logic."
msgstr ""
-#: src/pages/settings.jsx:632
+#: src/pages/settings.jsx:633
msgid "\"Cloud\" import/export for shortcuts settings"
msgstr ""
-#: src/pages/settings.jsx:637
+#: src/pages/settings.jsx:638
msgid "⚠️⚠️⚠️ Very experimental.<0/>Stored in your own profile’s notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."
msgstr ""
-#: src/pages/settings.jsx:648
+#: src/pages/settings.jsx:649
msgid "Note: This feature uses currently-logged-in instance server API."
msgstr ""
-#: src/pages/settings.jsx:665
+#: src/pages/settings.jsx:666
msgid "Cloak mode <0>(<1>Text1> → <2>████2>)0>"
msgstr ""
-#: src/pages/settings.jsx:674
+#: src/pages/settings.jsx:675
msgid "Replace text as blocks, useful when taking screenshots, for privacy reasons."
msgstr ""
-#: src/pages/settings.jsx:699
+#: src/pages/settings.jsx:700
msgid "About"
msgstr ""
-#: src/pages/settings.jsx:738
+#: src/pages/settings.jsx:739
msgid "<0>Built0> by <1>@cheeaun1>"
msgstr ""
-#: src/pages/settings.jsx:767
+#: src/pages/settings.jsx:768
msgid "Sponsor"
msgstr ""
-#: src/pages/settings.jsx:775
+#: src/pages/settings.jsx:776
msgid "Donate"
msgstr ""
-#: src/pages/settings.jsx:783
+#: src/pages/settings.jsx:784
msgid "Privacy Policy"
msgstr ""
-#: src/pages/settings.jsx:790
+#: src/pages/settings.jsx:791
msgid "<0>Site:0> {0}"
msgstr ""
-#: src/pages/settings.jsx:797
+#: src/pages/settings.jsx:798
msgid "<0>Version:0> <1/> {0}"
msgstr ""
-#: src/pages/settings.jsx:812
+#: src/pages/settings.jsx:813
msgid "Version string copied"
msgstr ""
-#: src/pages/settings.jsx:815
+#: src/pages/settings.jsx:816
msgid "Unable to copy version string"
msgstr ""
-#: src/pages/settings.jsx:1015
-#: src/pages/settings.jsx:1020
+#: src/pages/settings.jsx:1050
+#: src/pages/settings.jsx:1055
msgid "Failed to update subscription. Please try again."
msgstr ""
-#: src/pages/settings.jsx:1026
+#: src/pages/settings.jsx:1061
msgid "Failed to remove subscription. Please try again."
msgstr ""
-#: src/pages/settings.jsx:1033
+#: src/pages/settings.jsx:1068
msgid "Push Notifications (beta)"
msgstr ""
-#: src/pages/settings.jsx:1055
+#: src/pages/settings.jsx:1090
msgid "Push notifications are blocked. Please enable them in your browser settings."
msgstr ""
-#: src/pages/settings.jsx:1064
+#: src/pages/settings.jsx:1099
msgid "Allow from <0>{0}0>"
msgstr ""
-#: src/pages/settings.jsx:1073
+#: src/pages/settings.jsx:1108
msgid "anyone"
msgstr ""
-#: src/pages/settings.jsx:1077
+#: src/pages/settings.jsx:1112
msgid "people I follow"
msgstr ""
-#: src/pages/settings.jsx:1081
+#: src/pages/settings.jsx:1116
msgid "followers"
msgstr ""
-#: src/pages/settings.jsx:1114
+#: src/pages/settings.jsx:1149
msgid "Follows"
msgstr ""
-#: src/pages/settings.jsx:1122
+#: src/pages/settings.jsx:1157
msgid "Polls"
msgstr ""
-#: src/pages/settings.jsx:1126
+#: src/pages/settings.jsx:1161
msgid "Post edits"
msgstr ""
-#: src/pages/settings.jsx:1147
+#: src/pages/settings.jsx:1182
msgid "Push permission was not granted since your last login. You'll need to <0><1>log in1> again to grant push permission0>."
msgstr ""
-#: src/pages/settings.jsx:1163
+#: src/pages/settings.jsx:1198
msgid "NOTE: Push notifications only work for <0>one account0>."
msgstr ""
diff --git a/src/locales/eo-UY.po b/src/locales/eo-UY.po
index 6fbc15dc..f8753158 100644
--- a/src/locales/eo-UY.po
+++ b/src/locales/eo-UY.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: eo\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-03 13:10\n"
"Last-Translator: \n"
"Language-Team: Esperanto\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2725,7 +2725,7 @@ msgstr "Denseco"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Filtri"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/es-ES.po b/src/locales/es-ES.po
index bcd9c4d8..6cb4b580 100644
--- a/src/locales/es-ES.po
+++ b/src/locales/es-ES.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:10\n"
+"PO-Revision-Date: 2024-11-03 13:10\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2725,7 +2725,7 @@ msgstr "Densidad"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Filtrar"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/eu-ES.po b/src/locales/eu-ES.po
index b7b2b6a2..4371567d 100644
--- a/src/locales/eu-ES.po
+++ b/src/locales/eu-ES.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: eu\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-03 19:18\n"
"Last-Translator: \n"
"Language-Team: Basque\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2725,7 +2725,7 @@ msgstr "Dentsitatea"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Iragazi"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/fi-FI.po b/src/locales/fi-FI.po
index 5e04555e..3f88b444 100644
--- a/src/locales/fi-FI.po
+++ b/src/locales/fi-FI.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-03 12:10\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2725,7 +2725,7 @@ msgstr "Tiheys"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Ryhmä"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/ko-KR.po b/src/locales/ko-KR.po
index adb25d71..8b837c92 100644
--- a/src/locales/ko-KR.po
+++ b/src/locales/ko-KR.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-07 06:50\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -111,7 +111,7 @@ msgstr "게시물"
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:388
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -198,7 +198,7 @@ msgstr "댓글"
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2068
-#: src/pages/settings.jsx:1110
+#: src/pages/settings.jsx:1140
msgid "Boosts"
msgstr "부스트"
@@ -338,7 +338,7 @@ msgstr "@{username} 님이 팔로워에서 빠짐"
#: src/components/account-info.jsx:1477
msgid "Remove follower…"
-msgstr "그만 팔로하기…"
+msgstr "팔로워에서 빼기…"
#: src/components/account-info.jsx:1488
msgid "Block <0>@{username}0>?"
@@ -415,7 +415,7 @@ msgstr "팔로"
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:352
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -430,7 +430,7 @@ msgstr "팔로"
#: src/pages/list.jsx:274
#: src/pages/notifications.jsx:868
#: src/pages/notifications.jsx:1082
-#: src/pages/settings.jsx:76
+#: src/pages/settings.jsx:77
#: src/pages/status.jsx:1299
msgid "Close"
msgstr "닫기"
@@ -624,7 +624,7 @@ msgstr "열람 주의 및 민감한 매체"
#: src/components/compose.jsx:1191
#: src/components/status.jsx:93
-#: src/pages/settings.jsx:304
+#: src/pages/settings.jsx:305
msgid "Public"
msgstr "공개"
@@ -637,13 +637,13 @@ msgstr "로컬"
#: src/components/compose.jsx:1200
#: src/components/status.jsx:95
-#: src/pages/settings.jsx:307
+#: src/pages/settings.jsx:308
msgid "Unlisted"
msgstr "조용히 공개"
#: src/components/compose.jsx:1203
#: src/components/status.jsx:96
-#: src/pages/settings.jsx:310
+#: src/pages/settings.jsx:311
msgid "Followers only"
msgstr "팔로워만"
@@ -863,13 +863,13 @@ msgid "Type to search GIFs"
msgstr "움짤을 검색하려면 입력하세요"
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:492
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr "이전"
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:511
#: src/components/timeline.jsx:906
msgid "Next"
msgstr "다음"
@@ -879,7 +879,7 @@ msgid "Error loading GIFs"
msgstr "GIF 불러오기 오류"
#: src/components/drafts.jsx:63
-#: src/pages/settings.jsx:691
+#: src/pages/settings.jsx:692
msgid "Unsent drafts"
msgstr "올리지 않은 초고"
@@ -1190,27 +1190,27 @@ msgstr "번역"
msgid "Speak"
msgstr "말하기"
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:399
msgid "Open original media in new window"
msgstr "원본 매체 새 창에서 열기"
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:403
msgid "Open original media"
msgstr "원본 매체 열기"
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:419
msgid "Attempting to describe image. Please wait…"
msgstr "이미지 설명을 생성중입니다. 잠시 기다려 주세요…"
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:434
msgid "Failed to describe image"
msgstr "이미지 설명 생성 실패"
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:444
msgid "Describe image…"
msgstr "이미지 설명…"
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:467
msgid "View post"
msgstr "게시물 보기"
@@ -1275,7 +1275,7 @@ msgstr "따라잡기"
#: src/pages/home.jsx:224
#: src/pages/mentions.jsx:20
#: src/pages/mentions.jsx:167
-#: src/pages/settings.jsx:1102
+#: src/pages/settings.jsx:1132
#: src/pages/trending.jsx:381
msgid "Mentions"
msgstr "언급"
@@ -1330,7 +1330,7 @@ msgstr "책갈피"
#: src/pages/catchup.jsx:2062
#: src/pages/favourites.jsx:11
#: src/pages/favourites.jsx:23
-#: src/pages/settings.jsx:1106
+#: src/pages/settings.jsx:1136
msgid "Likes"
msgstr "좋아요"
@@ -2322,7 +2322,7 @@ msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> 님이 부스트 함"
#: src/components/timeline.jsx:453
-#: src/pages/settings.jsx:1130
+#: src/pages/settings.jsx:1160
msgid "New posts"
msgstr "새 게시물"
@@ -3174,7 +3174,7 @@ msgid "{0, plural, one {Announcement} other {Announcements}}"
msgstr "{0, plural, other {공지}}"
#: src/pages/notifications.jsx:614
-#: src/pages/settings.jsx:1118
+#: src/pages/settings.jsx:1148
msgid "Follow requests"
msgstr "팔로 요청"
@@ -3345,240 +3345,240 @@ msgstr "아무 게시물도 찾을 수 없습니다."
msgid "Enter your search term or paste a URL above to get started."
msgstr "시작하려면 위 검색창에 검색어를 입력하거나 URL을 붙여 넣으세요."
-#: src/pages/settings.jsx:81
+#: src/pages/settings.jsx:82
msgid "Settings"
msgstr "설정"
-#: src/pages/settings.jsx:90
+#: src/pages/settings.jsx:91
msgid "Appearance"
msgstr "외관"
-#: src/pages/settings.jsx:166
+#: src/pages/settings.jsx:167
msgid "Light"
msgstr "밝게"
-#: src/pages/settings.jsx:177
+#: src/pages/settings.jsx:178
msgid "Dark"
msgstr "어둡게"
-#: src/pages/settings.jsx:190
+#: src/pages/settings.jsx:191
msgid "Auto"
msgstr "자동"
-#: src/pages/settings.jsx:200
+#: src/pages/settings.jsx:201
msgid "Text size"
msgstr "글자 크기"
#. Preview of one character, in smallest size
#. Preview of one character, in largest size
-#: src/pages/settings.jsx:205
-#: src/pages/settings.jsx:230
+#: src/pages/settings.jsx:206
+#: src/pages/settings.jsx:231
msgid "A"
msgstr "글"
-#: src/pages/settings.jsx:244
+#: src/pages/settings.jsx:245
msgid "Display language"
msgstr "표시 언어"
-#: src/pages/settings.jsx:253
+#: src/pages/settings.jsx:254
msgid "Volunteer translations"
msgstr "번역 참여하기"
-#: src/pages/settings.jsx:264
+#: src/pages/settings.jsx:265
msgid "Posting"
msgstr "게시"
-#: src/pages/settings.jsx:271
+#: src/pages/settings.jsx:272
msgid "Default visibility"
msgstr "기본 공개 범위"
-#: src/pages/settings.jsx:272
-#: src/pages/settings.jsx:318
+#: src/pages/settings.jsx:273
+#: src/pages/settings.jsx:319
msgid "Synced"
msgstr "동기화 됨"
-#: src/pages/settings.jsx:297
+#: src/pages/settings.jsx:298
msgid "Failed to update posting privacy"
msgstr "게시물 공개 범위 수정 실패"
-#: src/pages/settings.jsx:320
+#: src/pages/settings.jsx:321
msgid "Synced to your instance server's settings. <0>Go to your instance ({instance}) for more settings.0>"
msgstr "인스턴스 서버의 설정과 동기화 됩니다. <0>쓰고 있는 인스턴스({instance})에서 더 많은 설정이 가능합니다.0>"
-#: src/pages/settings.jsx:335
+#: src/pages/settings.jsx:336
msgid "Experiments"
msgstr "시범 기능"
-#: src/pages/settings.jsx:348
+#: src/pages/settings.jsx:349
msgid "Auto refresh timeline posts"
msgstr "타임라인 게시물 알아서 새로 고침"
-#: src/pages/settings.jsx:360
+#: src/pages/settings.jsx:361
msgid "Boosts carousel"
msgstr "부스트 캐러셀"
-#: src/pages/settings.jsx:376
+#: src/pages/settings.jsx:377
msgid "Post translation"
msgstr "게시물 번역"
-#: src/pages/settings.jsx:387
+#: src/pages/settings.jsx:388
msgid "Translate to"
msgstr "다음 언어로 번역:"
-#: src/pages/settings.jsx:398
+#: src/pages/settings.jsx:399
msgid "System language ({systemTargetLanguageText})"
msgstr "시스템 언어 ({systemTargetLanguageText})"
-#: src/pages/settings.jsx:424
+#: src/pages/settings.jsx:425
msgid "{0, plural, =0 {Hide \"Translate\" button for:} other {Hide \"Translate\" button for (#):}}"
msgstr "{0, plural, =0 {다음 언어에 대해 “번역” 버튼 가리기:} other {다음 #개 언어에 대해 “번역” 버튼 가리기:}}"
-#: src/pages/settings.jsx:478
+#: src/pages/settings.jsx:479
msgid "Note: This feature uses external translation services, powered by <0>Lingva API0> & <1>Lingva Translate1>."
msgstr "참고: 이 기능은 외부 번역 서비스인 <0>Lingva API0> & <1>Lingva Translate1>를 이용합니다."
-#: src/pages/settings.jsx:512
+#: src/pages/settings.jsx:513
msgid "Auto inline translation"
msgstr "자동 번역"
-#: src/pages/settings.jsx:516
+#: src/pages/settings.jsx:517
msgid "Automatically show translation for posts in timeline. Only works for <0>short0> posts without content warning, media and poll."
msgstr "타임라인에서 게시물에 번역을 자동으로 보여줍니다. 열람 주의나 매체, 설문 조사가 없는 <0>짧은0> 게시물에만 적용 됩니다."
-#: src/pages/settings.jsx:536
+#: src/pages/settings.jsx:537
msgid "GIF Picker for composer"
msgstr "글쓰기 창에서 움짤 고르기"
-#: src/pages/settings.jsx:540
+#: src/pages/settings.jsx:541
msgid "Note: This feature uses external GIF search service, powered by <0>GIPHY0>. G-rated (suitable for viewing by all ages), tracking parameters are stripped, referrer information is omitted from requests, but search queries and IP address information will still reach their servers."
msgstr "이 기능은 외부 움짤 검색 서비스인 <0>GIPHY0>를 이용합니다. 전체관람가 움짤만 제공되며, 추적 매개변수는 제거되고 리퍼러 정보는 요청에서 생략되지만, 그럼에도 검색어와 IP 주소 정보는 해당 서비스에 전달 됩니다."
-#: src/pages/settings.jsx:569
+#: src/pages/settings.jsx:570
msgid "Image description generator"
msgstr "이미지 설명 자동 생성기"
-#: src/pages/settings.jsx:574
+#: src/pages/settings.jsx:575
msgid "Only for new images while composing new posts."
msgstr "새 게시물을 쓸 때 새로운 이미지에만 적용 됩니다."
-#: src/pages/settings.jsx:581
+#: src/pages/settings.jsx:582
msgid "Note: This feature uses external AI service, powered by <0>img-alt-api0>. May not work well. Only for images and in English."
msgstr "참고: 이 기능은 외부 인공지능 서비스인 <0>img-alt-api0>를 이용합니다. 잘 동작하지 않을 수 있으며, 이미지에만 적용 가능하고 영어만 지원합니다."
-#: src/pages/settings.jsx:607
+#: src/pages/settings.jsx:608
msgid "Server-side grouped notifications"
msgstr "서버측에서 알림 묶기"
-#: src/pages/settings.jsx:611
+#: src/pages/settings.jsx:612
msgid "Alpha-stage feature. Potentially improved grouping window but basic grouping logic."
msgstr "알파 단계 기능입니다. 묶음의 크기가 커질 수도 있지만, 묶는 규칙은 기초적입니다."
-#: src/pages/settings.jsx:632
+#: src/pages/settings.jsx:633
msgid "\"Cloud\" import/export for shortcuts settings"
msgstr "바로 가기 설정을 위해 \"클라우드\" 가져오기/내보내기"
-#: src/pages/settings.jsx:637
+#: src/pages/settings.jsx:638
msgid "⚠️⚠️⚠️ Very experimental.<0/>Stored in your own profile’s notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."
msgstr ""
-#: src/pages/settings.jsx:648
+#: src/pages/settings.jsx:649
msgid "Note: This feature uses currently-logged-in instance server API."
msgstr "알림: 이 기능은 현재 로그인한 인스턴스 서버 API를 사용합니다."
-#: src/pages/settings.jsx:665
+#: src/pages/settings.jsx:666
msgid "Cloak mode <0>(<1>Text1> → <2>████2>)0>"
msgstr "가리기 모드 <0>(<1>글자들1> → <2>███2>)0>"
-#: src/pages/settings.jsx:674
+#: src/pages/settings.jsx:675
msgid "Replace text as blocks, useful when taking screenshots, for privacy reasons."
msgstr "글자를 모두 네모로 바꿔서 개인정보 염려 없이 스크린숏을 캡처할 수 있게 합니다."
-#: src/pages/settings.jsx:699
+#: src/pages/settings.jsx:700
msgid "About"
msgstr "정보"
-#: src/pages/settings.jsx:738
+#: src/pages/settings.jsx:739
msgid "<0>Built0> by <1>@cheeaun1>"
msgstr "<1>@cheeaun1>이 <0>만듦0>"
-#: src/pages/settings.jsx:767
+#: src/pages/settings.jsx:768
msgid "Sponsor"
msgstr "후원자"
-#: src/pages/settings.jsx:775
+#: src/pages/settings.jsx:776
msgid "Donate"
msgstr "기부"
-#: src/pages/settings.jsx:783
+#: src/pages/settings.jsx:784
msgid "Privacy Policy"
msgstr "개인 정보 보호 정책"
-#: src/pages/settings.jsx:790
+#: src/pages/settings.jsx:791
msgid "<0>Site:0> {0}"
msgstr "<0>사이트:0> {0}"
-#: src/pages/settings.jsx:797
+#: src/pages/settings.jsx:798
msgid "<0>Version:0> <1/> {0}"
msgstr "<0>버전:0> <1/> {0}"
-#: src/pages/settings.jsx:812
+#: src/pages/settings.jsx:813
msgid "Version string copied"
msgstr "버전 번호 복사 됨"
-#: src/pages/settings.jsx:815
+#: src/pages/settings.jsx:816
msgid "Unable to copy version string"
msgstr "버전 번호를 복사할 수 없음"
-#: src/pages/settings.jsx:1015
-#: src/pages/settings.jsx:1020
+#: src/pages/settings.jsx:1045
+#: src/pages/settings.jsx:1050
msgid "Failed to update subscription. Please try again."
msgstr "구독을 갱신하는 데 실패했습니다. 다시 시도해 보세요."
-#: src/pages/settings.jsx:1026
+#: src/pages/settings.jsx:1056
msgid "Failed to remove subscription. Please try again."
msgstr "구독을 삭제하는 데 실패했습니다. 다시 시도하세요."
-#: src/pages/settings.jsx:1033
+#: src/pages/settings.jsx:1063
msgid "Push Notifications (beta)"
msgstr "푸시 알림 (베타)"
-#: src/pages/settings.jsx:1055
+#: src/pages/settings.jsx:1085
msgid "Push notifications are blocked. Please enable them in your browser settings."
msgstr "푸시 알림이 차단되었습니다. 브라우저 설정에서 푸시 알림을 활성화하세요."
-#: src/pages/settings.jsx:1064
+#: src/pages/settings.jsx:1094
msgid "Allow from <0>{0}0>"
msgstr "<0>{0}0>에게서 알림 받기"
-#: src/pages/settings.jsx:1073
+#: src/pages/settings.jsx:1103
msgid "anyone"
msgstr "모두"
-#: src/pages/settings.jsx:1077
+#: src/pages/settings.jsx:1107
msgid "people I follow"
msgstr "내가 팔로하는 사람들"
-#: src/pages/settings.jsx:1081
+#: src/pages/settings.jsx:1111
msgid "followers"
msgstr "팔로워"
-#: src/pages/settings.jsx:1114
+#: src/pages/settings.jsx:1144
msgid "Follows"
msgstr "팔로"
-#: src/pages/settings.jsx:1122
+#: src/pages/settings.jsx:1152
msgid "Polls"
msgstr "설문 조사"
-#: src/pages/settings.jsx:1126
+#: src/pages/settings.jsx:1156
msgid "Post edits"
msgstr "게시물 수정"
-#: src/pages/settings.jsx:1147
+#: src/pages/settings.jsx:1177
msgid "Push permission was not granted since your last login. You'll need to <0><1>log in1> again to grant push permission0>."
msgstr "마지막 로그인 이후 푸시 권한이 부여되지 않았습니다. <0>푸시 권한을 다시 얻으려면<1>로그인1>을0>해야합니다."
-#: src/pages/settings.jsx:1163
+#: src/pages/settings.jsx:1193
msgid "NOTE: Push notifications only work for <0>one account0>."
msgstr "주의: 푸시 알림은 <0>단 하나의 계정0>에만 작동합니다."
diff --git a/src/locales/lt-LT.po b/src/locales/lt-LT.po
index 808b438c..bff317e1 100644
--- a/src/locales/lt-LT.po
+++ b/src/locales/lt-LT.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-04 09:07\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@@ -97,7 +97,7 @@ msgstr "Sekėjai"
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:759
msgid "following.stats"
-msgstr "Sekimai"
+msgstr "sekimai"
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:776
@@ -1052,11 +1052,11 @@ msgstr "<0>10> iki <1>91>"
#: src/components/keyboard-shortcuts-help.jsx:117
msgid "Focus next column in multi-column mode"
-msgstr ""
+msgstr "Fokusuoti sekantį stulpelį daugiastulpelių režime"
#: src/components/keyboard-shortcuts-help.jsx:121
msgid "Focus previous column in multi-column mode"
-msgstr ""
+msgstr "Fokusuoti ankstesnį stulpelį daugiastulpelių režime"
#: src/components/keyboard-shortcuts-help.jsx:125
msgid "Compose new post"
@@ -1262,7 +1262,7 @@ msgstr "Yra naujas naujinimas…"
#: src/pages/following.jsx:22
#: src/pages/following.jsx:141
msgid "following.title"
-msgstr ""
+msgstr "Sekimai"
#: src/components/nav-menu.jsx:200
#: src/pages/catchup.jsx:871
@@ -2669,11 +2669,11 @@ msgstr "Pašalinti šį pasivijimą?"
#: src/pages/catchup.jsx:1065
msgid "Removing Catch-up {0}"
-msgstr ""
+msgstr "Pašalinima {0} pasivijimas"
#: src/pages/catchup.jsx:1069
msgid "Catch-up {0} removed"
-msgstr ""
+msgstr "Pašalintas {0} pasivijimas"
#: src/pages/catchup.jsx:1083
msgid "Note: Only max 3 will be stored. The rest will be automatically removed."
diff --git a/src/locales/pt-BR.po b/src/locales/pt-BR.po
index 2aba7750..0521f630 100644
--- a/src/locales/pt-BR.po
+++ b/src/locales/pt-BR.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-05 20:31\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -111,7 +111,7 @@ msgstr "Publicações"
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:336
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -415,7 +415,7 @@ msgstr "Seguir"
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:300
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -863,13 +863,13 @@ msgid "Type to search GIFs"
msgstr "Escreva para pesquisar GIFs"
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:440
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr "Anterior"
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:459
#: src/components/timeline.jsx:906
msgid "Next"
msgstr "Seguinte"
@@ -1190,27 +1190,27 @@ msgstr "Traduzir"
msgid "Speak"
msgstr "Falar"
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:347
msgid "Open original media in new window"
msgstr "Abrir mídia original em nova janela"
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:351
msgid "Open original media"
msgstr "Abrir mídia original"
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:367
msgid "Attempting to describe image. Please wait…"
msgstr "Tentando descrever imagem. Por favor, espere…"
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:382
msgid "Failed to describe image"
msgstr "Houve um erro ao descrever imagem"
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:392
msgid "Describe image…"
msgstr "Descrever imagem…"
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:415
msgid "View post"
msgstr "Ver publicação"
@@ -2726,7 +2726,7 @@ msgstr "Densidade"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Filtrar"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/pt-PT.po b/src/locales/pt-PT.po
index 96ae3146..1be1dda5 100644
--- a/src/locales/pt-PT.po
+++ b/src/locales/pt-PT.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-05 20:31\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -111,7 +111,7 @@ msgstr "Publicações"
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:336
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -415,7 +415,7 @@ msgstr "Seguir"
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:300
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -863,13 +863,13 @@ msgid "Type to search GIFs"
msgstr "Digite para buscar GIFs"
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:440
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr "Anterior"
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:459
#: src/components/timeline.jsx:906
msgid "Next"
msgstr "Seguinte"
@@ -1190,27 +1190,27 @@ msgstr "Traduzir"
msgid "Speak"
msgstr "Falar"
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:347
msgid "Open original media in new window"
msgstr "Abrir media original em nova janela"
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:351
msgid "Open original media"
msgstr "Abrir media original"
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:367
msgid "Attempting to describe image. Please wait…"
msgstr "A tentar descrever imagem. Por favor, espere…"
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:382
msgid "Failed to describe image"
msgstr "Falhou ao descrever imagem"
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:392
msgid "Describe image…"
msgstr "Descrever imagem…"
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:415
msgid "View post"
msgstr "Ver publicação"
@@ -2726,7 +2726,7 @@ msgstr "Densidade"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "Filtrar"
#: src/pages/catchup.jsx:1486
msgid "Authors"
diff --git a/src/locales/ru-RU.po b/src/locales/ru-RU.po
index 7744b6c7..fe7d34fd 100644
--- a/src/locales/ru-RU.po
+++ b/src/locales/ru-RU.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-03 08:19\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -1052,11 +1052,11 @@ msgstr "<0>10> по <1>91>"
#: src/components/keyboard-shortcuts-help.jsx:117
msgid "Focus next column in multi-column mode"
-msgstr ""
+msgstr "Перейти к следующему столбцу в многоколонном режиме"
#: src/components/keyboard-shortcuts-help.jsx:121
msgid "Focus previous column in multi-column mode"
-msgstr ""
+msgstr "Перейти к предыдущему столбцу в многоколонном режиме"
#: src/components/keyboard-shortcuts-help.jsx:125
msgid "Compose new post"
@@ -2669,11 +2669,11 @@ msgstr "Удалить этот catch-up?"
#: src/pages/catchup.jsx:1065
msgid "Removing Catch-up {0}"
-msgstr ""
+msgstr "Убираем Catch-up {0}"
#: src/pages/catchup.jsx:1069
msgid "Catch-up {0} removed"
-msgstr ""
+msgstr "Catch-up {0} убран"
#: src/pages/catchup.jsx:1083
msgid "Note: Only max 3 will be stored. The rest will be automatically removed."
diff --git a/src/locales/th-TH.po b/src/locales/th-TH.po
index cb360d5a..6a2a76e0 100644
--- a/src/locales/th-TH.po
+++ b/src/locales/th-TH.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-10 08:09\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -24,7 +24,7 @@ msgstr "ล็อค"
#: src/components/account-block.jsx:141
msgid "Posts: {0}"
-msgstr ""
+msgstr "โพสต์: {0}"
#: src/components/account-block.jsx:146
msgid "Last posted: {0}"
@@ -33,7 +33,7 @@ msgstr "โพสต์สุดท้าย: {0}"
#: src/components/account-block.jsx:161
#: src/components/account-info.jsx:634
msgid "Automated"
-msgstr ""
+msgstr "อัตโนมัติ"
#: src/components/account-block.jsx:168
#: src/components/account-info.jsx:639
@@ -43,7 +43,7 @@ msgstr "กลุ่ม"
#: src/components/account-block.jsx:178
msgid "Mutual"
-msgstr ""
+msgstr "ร่วมกัน"
#: src/components/account-block.jsx:182
#: src/components/account-info.jsx:1680
@@ -62,7 +62,7 @@ msgstr "ติดตามคุณ"
#: src/components/account-block.jsx:198
msgid "{followersCount, plural, one {# follower} other {# followers}}"
-msgstr ""
+msgstr "{followersCount, plural, other {# ผู้ติดตาม}}"
#: src/components/account-block.jsx:207
#: src/components/account-info.jsx:680
@@ -111,7 +111,7 @@ msgstr "โพสต์"
#: src/components/account-info.jsx:1118
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
-#: src/components/media-modal.jsx:283
+#: src/components/media-modal.jsx:388
#: src/components/status.jsx:1721
#: src/components/status.jsx:1738
#: src/components/status.jsx:1862
@@ -198,7 +198,7 @@ msgstr ""
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2068
-#: src/pages/settings.jsx:1110
+#: src/pages/settings.jsx:1145
msgid "Boosts"
msgstr ""
@@ -415,7 +415,7 @@ msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:39
#: src/components/list-add-edit.jsx:33
#: src/components/media-alt-modal.jsx:33
-#: src/components/media-modal.jsx:247
+#: src/components/media-modal.jsx:352
#: src/components/notification-service.jsx:156
#: src/components/report-modal.jsx:75
#: src/components/shortcuts-settings.jsx:230
@@ -430,7 +430,7 @@ msgstr ""
#: src/pages/list.jsx:274
#: src/pages/notifications.jsx:868
#: src/pages/notifications.jsx:1082
-#: src/pages/settings.jsx:76
+#: src/pages/settings.jsx:77
#: src/pages/status.jsx:1299
msgid "Close"
msgstr ""
@@ -624,7 +624,7 @@ msgstr ""
#: src/components/compose.jsx:1191
#: src/components/status.jsx:93
-#: src/pages/settings.jsx:304
+#: src/pages/settings.jsx:305
msgid "Public"
msgstr ""
@@ -637,13 +637,13 @@ msgstr ""
#: src/components/compose.jsx:1200
#: src/components/status.jsx:95
-#: src/pages/settings.jsx:307
+#: src/pages/settings.jsx:308
msgid "Unlisted"
msgstr ""
#: src/components/compose.jsx:1203
#: src/components/status.jsx:96
-#: src/pages/settings.jsx:310
+#: src/pages/settings.jsx:311
msgid "Followers only"
msgstr ""
@@ -863,13 +863,13 @@ msgid "Type to search GIFs"
msgstr ""
#: src/components/compose.jsx:3491
-#: src/components/media-modal.jsx:387
+#: src/components/media-modal.jsx:492
#: src/components/timeline.jsx:889
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3509
-#: src/components/media-modal.jsx:406
+#: src/components/media-modal.jsx:511
#: src/components/timeline.jsx:906
msgid "Next"
msgstr ""
@@ -879,7 +879,7 @@ msgid "Error loading GIFs"
msgstr ""
#: src/components/drafts.jsx:63
-#: src/pages/settings.jsx:691
+#: src/pages/settings.jsx:692
msgid "Unsent drafts"
msgstr ""
@@ -1190,27 +1190,27 @@ msgstr ""
msgid "Speak"
msgstr ""
-#: src/components/media-modal.jsx:294
+#: src/components/media-modal.jsx:399
msgid "Open original media in new window"
msgstr ""
-#: src/components/media-modal.jsx:298
+#: src/components/media-modal.jsx:403
msgid "Open original media"
msgstr ""
-#: src/components/media-modal.jsx:314
+#: src/components/media-modal.jsx:419
msgid "Attempting to describe image. Please wait…"
msgstr ""
-#: src/components/media-modal.jsx:329
+#: src/components/media-modal.jsx:434
msgid "Failed to describe image"
msgstr ""
-#: src/components/media-modal.jsx:339
+#: src/components/media-modal.jsx:444
msgid "Describe image…"
msgstr ""
-#: src/components/media-modal.jsx:362
+#: src/components/media-modal.jsx:467
msgid "View post"
msgstr ""
@@ -1275,7 +1275,7 @@ msgstr ""
#: src/pages/home.jsx:224
#: src/pages/mentions.jsx:20
#: src/pages/mentions.jsx:167
-#: src/pages/settings.jsx:1102
+#: src/pages/settings.jsx:1137
#: src/pages/trending.jsx:381
msgid "Mentions"
msgstr ""
@@ -1330,7 +1330,7 @@ msgstr ""
#: src/pages/catchup.jsx:2062
#: src/pages/favourites.jsx:11
#: src/pages/favourites.jsx:23
-#: src/pages/settings.jsx:1106
+#: src/pages/settings.jsx:1141
msgid "Likes"
msgstr ""
@@ -2322,7 +2322,7 @@ msgid "<0/> <1/> boosted"
msgstr ""
#: src/components/timeline.jsx:453
-#: src/pages/settings.jsx:1130
+#: src/pages/settings.jsx:1165
msgid "New posts"
msgstr ""
@@ -3174,7 +3174,7 @@ msgid "{0, plural, one {Announcement} other {Announcements}}"
msgstr ""
#: src/pages/notifications.jsx:614
-#: src/pages/settings.jsx:1118
+#: src/pages/settings.jsx:1153
msgid "Follow requests"
msgstr ""
@@ -3345,240 +3345,240 @@ msgstr ""
msgid "Enter your search term or paste a URL above to get started."
msgstr ""
-#: src/pages/settings.jsx:81
+#: src/pages/settings.jsx:82
msgid "Settings"
msgstr ""
-#: src/pages/settings.jsx:90
+#: src/pages/settings.jsx:91
msgid "Appearance"
msgstr ""
-#: src/pages/settings.jsx:166
+#: src/pages/settings.jsx:167
msgid "Light"
msgstr ""
-#: src/pages/settings.jsx:177
+#: src/pages/settings.jsx:178
msgid "Dark"
msgstr ""
-#: src/pages/settings.jsx:190
+#: src/pages/settings.jsx:191
msgid "Auto"
msgstr ""
-#: src/pages/settings.jsx:200
+#: src/pages/settings.jsx:201
msgid "Text size"
msgstr ""
#. Preview of one character, in smallest size
#. Preview of one character, in largest size
-#: src/pages/settings.jsx:205
-#: src/pages/settings.jsx:230
+#: src/pages/settings.jsx:206
+#: src/pages/settings.jsx:231
msgid "A"
msgstr ""
-#: src/pages/settings.jsx:244
+#: src/pages/settings.jsx:245
msgid "Display language"
msgstr ""
-#: src/pages/settings.jsx:253
+#: src/pages/settings.jsx:254
msgid "Volunteer translations"
msgstr ""
-#: src/pages/settings.jsx:264
+#: src/pages/settings.jsx:265
msgid "Posting"
msgstr ""
-#: src/pages/settings.jsx:271
+#: src/pages/settings.jsx:272
msgid "Default visibility"
msgstr ""
-#: src/pages/settings.jsx:272
-#: src/pages/settings.jsx:318
+#: src/pages/settings.jsx:273
+#: src/pages/settings.jsx:319
msgid "Synced"
msgstr ""
-#: src/pages/settings.jsx:297
+#: src/pages/settings.jsx:298
msgid "Failed to update posting privacy"
msgstr ""
-#: src/pages/settings.jsx:320
+#: src/pages/settings.jsx:321
msgid "Synced to your instance server's settings. <0>Go to your instance ({instance}) for more settings.0>"
msgstr ""
-#: src/pages/settings.jsx:335
+#: src/pages/settings.jsx:336
msgid "Experiments"
msgstr ""
-#: src/pages/settings.jsx:348
+#: src/pages/settings.jsx:349
msgid "Auto refresh timeline posts"
msgstr ""
-#: src/pages/settings.jsx:360
+#: src/pages/settings.jsx:361
msgid "Boosts carousel"
msgstr ""
-#: src/pages/settings.jsx:376
+#: src/pages/settings.jsx:377
msgid "Post translation"
msgstr ""
-#: src/pages/settings.jsx:387
+#: src/pages/settings.jsx:388
msgid "Translate to"
msgstr ""
-#: src/pages/settings.jsx:398
+#: src/pages/settings.jsx:399
msgid "System language ({systemTargetLanguageText})"
msgstr ""
-#: src/pages/settings.jsx:424
+#: src/pages/settings.jsx:425
msgid "{0, plural, =0 {Hide \"Translate\" button for:} other {Hide \"Translate\" button for (#):}}"
msgstr ""
-#: src/pages/settings.jsx:478
+#: src/pages/settings.jsx:479
msgid "Note: This feature uses external translation services, powered by <0>Lingva API0> & <1>Lingva Translate1>."
msgstr ""
-#: src/pages/settings.jsx:512
+#: src/pages/settings.jsx:513
msgid "Auto inline translation"
msgstr ""
-#: src/pages/settings.jsx:516
+#: src/pages/settings.jsx:517
msgid "Automatically show translation for posts in timeline. Only works for <0>short0> posts without content warning, media and poll."
msgstr ""
-#: src/pages/settings.jsx:536
+#: src/pages/settings.jsx:537
msgid "GIF Picker for composer"
msgstr ""
-#: src/pages/settings.jsx:540
+#: src/pages/settings.jsx:541
msgid "Note: This feature uses external GIF search service, powered by <0>GIPHY0>. G-rated (suitable for viewing by all ages), tracking parameters are stripped, referrer information is omitted from requests, but search queries and IP address information will still reach their servers."
msgstr ""
-#: src/pages/settings.jsx:569
+#: src/pages/settings.jsx:570
msgid "Image description generator"
msgstr ""
-#: src/pages/settings.jsx:574
+#: src/pages/settings.jsx:575
msgid "Only for new images while composing new posts."
msgstr ""
-#: src/pages/settings.jsx:581
+#: src/pages/settings.jsx:582
msgid "Note: This feature uses external AI service, powered by <0>img-alt-api0>. May not work well. Only for images and in English."
msgstr ""
-#: src/pages/settings.jsx:607
+#: src/pages/settings.jsx:608
msgid "Server-side grouped notifications"
msgstr ""
-#: src/pages/settings.jsx:611
+#: src/pages/settings.jsx:612
msgid "Alpha-stage feature. Potentially improved grouping window but basic grouping logic."
msgstr ""
-#: src/pages/settings.jsx:632
+#: src/pages/settings.jsx:633
msgid "\"Cloud\" import/export for shortcuts settings"
msgstr ""
-#: src/pages/settings.jsx:637
+#: src/pages/settings.jsx:638
msgid "⚠️⚠️⚠️ Very experimental.<0/>Stored in your own profile’s notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."
msgstr ""
-#: src/pages/settings.jsx:648
+#: src/pages/settings.jsx:649
msgid "Note: This feature uses currently-logged-in instance server API."
msgstr ""
-#: src/pages/settings.jsx:665
+#: src/pages/settings.jsx:666
msgid "Cloak mode <0>(<1>Text1> → <2>████2>)0>"
msgstr ""
-#: src/pages/settings.jsx:674
+#: src/pages/settings.jsx:675
msgid "Replace text as blocks, useful when taking screenshots, for privacy reasons."
msgstr ""
-#: src/pages/settings.jsx:699
+#: src/pages/settings.jsx:700
msgid "About"
msgstr ""
-#: src/pages/settings.jsx:738
+#: src/pages/settings.jsx:739
msgid "<0>Built0> by <1>@cheeaun1>"
msgstr ""
-#: src/pages/settings.jsx:767
+#: src/pages/settings.jsx:768
msgid "Sponsor"
msgstr ""
-#: src/pages/settings.jsx:775
+#: src/pages/settings.jsx:776
msgid "Donate"
msgstr ""
-#: src/pages/settings.jsx:783
+#: src/pages/settings.jsx:784
msgid "Privacy Policy"
msgstr ""
-#: src/pages/settings.jsx:790
+#: src/pages/settings.jsx:791
msgid "<0>Site:0> {0}"
msgstr ""
-#: src/pages/settings.jsx:797
+#: src/pages/settings.jsx:798
msgid "<0>Version:0> <1/> {0}"
msgstr ""
-#: src/pages/settings.jsx:812
+#: src/pages/settings.jsx:813
msgid "Version string copied"
msgstr ""
-#: src/pages/settings.jsx:815
+#: src/pages/settings.jsx:816
msgid "Unable to copy version string"
msgstr ""
-#: src/pages/settings.jsx:1015
-#: src/pages/settings.jsx:1020
+#: src/pages/settings.jsx:1050
+#: src/pages/settings.jsx:1055
msgid "Failed to update subscription. Please try again."
msgstr ""
-#: src/pages/settings.jsx:1026
+#: src/pages/settings.jsx:1061
msgid "Failed to remove subscription. Please try again."
msgstr ""
-#: src/pages/settings.jsx:1033
+#: src/pages/settings.jsx:1068
msgid "Push Notifications (beta)"
msgstr ""
-#: src/pages/settings.jsx:1055
+#: src/pages/settings.jsx:1090
msgid "Push notifications are blocked. Please enable them in your browser settings."
msgstr ""
-#: src/pages/settings.jsx:1064
+#: src/pages/settings.jsx:1099
msgid "Allow from <0>{0}0>"
msgstr ""
-#: src/pages/settings.jsx:1073
+#: src/pages/settings.jsx:1108
msgid "anyone"
msgstr ""
-#: src/pages/settings.jsx:1077
+#: src/pages/settings.jsx:1112
msgid "people I follow"
msgstr ""
-#: src/pages/settings.jsx:1081
+#: src/pages/settings.jsx:1116
msgid "followers"
msgstr ""
-#: src/pages/settings.jsx:1114
+#: src/pages/settings.jsx:1149
msgid "Follows"
msgstr ""
-#: src/pages/settings.jsx:1122
+#: src/pages/settings.jsx:1157
msgid "Polls"
msgstr ""
-#: src/pages/settings.jsx:1126
+#: src/pages/settings.jsx:1161
msgid "Post edits"
msgstr ""
-#: src/pages/settings.jsx:1147
+#: src/pages/settings.jsx:1182
msgid "Push permission was not granted since your last login. You'll need to <0><1>log in1> again to grant push permission0>."
msgstr ""
-#: src/pages/settings.jsx:1163
+#: src/pages/settings.jsx:1198
msgid "NOTE: Push notifications only work for <0>one account0>."
msgstr ""
diff --git a/src/locales/zh-CN.po b/src/locales/zh-CN.po
index 0d8f04fe..fa724d74 100644
--- a/src/locales/zh-CN.po
+++ b/src/locales/zh-CN.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-11-03 07:11\n"
+"PO-Revision-Date: 2024-11-03 09:32\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2725,7 +2725,7 @@ msgstr "内容"
#. js-lingui-explicit-id
#: src/pages/catchup.jsx:1471
msgid "group.filter"
-msgstr ""
+msgstr "分组"
#: src/pages/catchup.jsx:1486
msgid "Authors"
@@ -2765,7 +2765,7 @@ msgstr "嘟文按信息密度或深度排序。较短的嘟文“更轻”,而
#: src/pages/catchup.jsx:1610
msgid "Group: Authors"
-msgstr "排序: 作者"
+msgstr "分组: 作者"
#: src/pages/catchup.jsx:1613
msgid "Posts are grouped by authors, sorted by posts count per author."
diff --git a/src/pages/notifications.css b/src/pages/notifications.css
index d625937a..54ccedfd 100644
--- a/src/pages/notifications.css
+++ b/src/pages/notifications.css
@@ -561,6 +561,11 @@
display: flex;
align-items: center;
gap: 4px;
+
+ small {
+ flex: 1;
+ min-width: 0;
+ }
}
}
diff --git a/src/pages/settings.jsx b/src/pages/settings.jsx
index 0ba5eb50..76773afc 100644
--- a/src/pages/settings.jsx
+++ b/src/pages/settings.jsx
@@ -14,6 +14,7 @@ import targetLanguages from '../data/lingva-target-languages';
import { api } from '../utils/api';
import getTranslateTargetLanguage from '../utils/get-translate-target-language';
import localeCode2Text from '../utils/localeCode2Text';
+import prettyBytes from '../utils/pretty-bytes';
import {
initSubscription,
isPushSupported,
@@ -856,6 +857,13 @@ function Settings({ onClose }) {
>
Show keys count
{' '}
+ {' '}