diff --git a/README.md b/README.md
index c07d351a..e0f22394 100644
--- a/README.md
+++ b/README.md
@@ -271,6 +271,7 @@ These are self-hosted by other wonderful folks.
- [social.qrk.one](https://social.qrk.one) by [@kev@fosstodon.org](https://fosstodon.org/@kev)
- [phanpy.cz](https://phanpy.cz) by [@zdendys@mamutovo.cz](https://mamutovo.cz/@zdendys)
- [phanpy.social.tchncs.de](https://phanpy.social.tchncs.de) by [@milan@social.tchncs.de](https://social.tchncs.de/@milan)
+- [phanpy.mastodon.world](https://phanpy.mastodon.world) by [@ruud@mastodon.world](https://mastodon.world/@ruud)
> Note: Add yours by creating a pull request.
diff --git a/src/app.css b/src/app.css
index bdef94ee..36ed9cf0 100644
--- a/src/app.css
+++ b/src/app.css
@@ -1861,7 +1861,7 @@ body > .szh-menu-container {
box-shadow: 0 3px 24px -3px var(--drop-shadow-color);
}
.szh-menu__header {
- margin: -8px 0 8px;
+ margin: -4px 0 8px;
padding: 8px 16px;
color: var(--text-insignificant-color);
font-size: 90%;
diff --git a/src/components/status.css b/src/components/status.css
index 16ce1273..78c1b7fa 100644
--- a/src/components/status.css
+++ b/src/components/status.css
@@ -1995,7 +1995,11 @@ a.card:is(:hover, :focus):visited {
gap: 4px;
color: var(--text-insignificant-color);
padding: 2px 8px;
- align-items: center;
+ align-items: flex-start;
+
+ .icon {
+ min-height: 1em;
+ }
.avatar {
width: 16px !important;
diff --git a/src/components/status.jsx b/src/components/status.jsx
index aaa2f529..915464e8 100644
--- a/src/components/status.jsx
+++ b/src/components/status.jsx
@@ -125,6 +125,46 @@ function getPostText(status) {
);
}
+function isTranslateble(content) {
+ if (!content) return false;
+ content = content.trim();
+ if (!content) return false;
+ const text = getHTMLText(content, {
+ preProcess: (dom) => {
+ // Remove .mention, pre, code, a:has(.invisible)
+ for (const a of dom.querySelectorAll(
+ '.mention, pre, code, a:has(.invisible)',
+ )) {
+ a.remove();
+ }
+ },
+ });
+ return !!text;
+}
+
+function getHTMLTextForDetectLang(content) {
+ return getHTMLText(content, {
+ preProcess: (dom) => {
+ // Remove anything that can skew the language detection
+
+ // Remove .mention, .hashtag, pre, code, a:has(.invisible)
+ for (const a of dom.querySelectorAll(
+ '.mention, .hashtag, pre, code, a:has(.invisible)',
+ )) {
+ a.remove();
+ }
+
+ // Remove links that contains text that starts with https?://
+ for (const a of dom.querySelectorAll('a')) {
+ const text = a.innerText.trim();
+ if (text.startsWith('https://') || text.startsWith('http://')) {
+ a.remove();
+ }
+ }
+ },
+ });
+}
+
const HTTP_REGEX = /^http/i;
const PostContent =
/*memo(*/
@@ -343,32 +383,10 @@ function Status({
useEffect(() => {
if (!content) return;
if (_language) return;
+ if (languageAutoDetected) return;
let timer;
timer = setTimeout(async () => {
- let detected = await detectLang(
- getHTMLText(content, {
- preProcess: (dom) => {
- // Remove anything that can skew the language detection
-
- // Remove .mention, .hashtag, pre, code, a:has(.invisible)
- dom
- .querySelectorAll(
- '.mention, .hashtag, pre, code, a:has(.invisible)',
- )
- .forEach((a) => {
- a.remove();
- });
-
- // Remove links that contains text that starts with https?://
- dom.querySelectorAll('a').forEach((a) => {
- const text = a.innerText.trim();
- if (text.startsWith('https://') || text.startsWith('http://')) {
- a.remove();
- }
- });
- },
- }),
- );
+ let detected = await detectLang(getHTMLTextForDetectLang(content));
setLanguageAutoDetected(detected);
}, 1000);
return () => clearTimeout(timer);
@@ -2061,6 +2079,7 @@ function Status({
class="content"
ref={contentRef}
data-read-more={_(readMoreText)}
+ inert={!!spoilerText && !showSpoiler ? true : undefined}
>
)}
{(((enableTranslate || inlineTranslate) &&
- !!content.trim() &&
- !!getHTMLText(emojifyText(content, emojis)) &&
+ isTranslateble(content) &&
differentLanguage) ||
forceTranslate) && (
l0> or <1>f1>"
msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:164
-#: src/components/status.jsx:903
-#: src/components/status.jsx:2364
-#: src/components/status.jsx:2396
-#: src/components/status.jsx:2397
+#: src/components/status.jsx:921
+#: src/components/status.jsx:2382
+#: src/components/status.jsx:2414
+#: src/components/status.jsx:2415
msgid "Boost"
msgstr ""
@@ -1105,9 +1105,9 @@ msgid "<0>Shift0> + <1>b1>"
msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:172
-#: src/components/status.jsx:988
-#: src/components/status.jsx:2421
-#: src/components/status.jsx:2422
+#: src/components/status.jsx:1006
+#: src/components/status.jsx:2439
+#: src/components/status.jsx:2440
msgid "Bookmark"
msgstr ""
@@ -1166,15 +1166,15 @@ msgid "Media description"
msgstr ""
#: src/components/media-alt-modal.jsx:57
-#: src/components/status.jsx:1032
-#: src/components/status.jsx:1059
+#: src/components/status.jsx:1050
+#: src/components/status.jsx:1077
#: src/components/translation-block.jsx:195
msgid "Translate"
msgstr ""
#: src/components/media-alt-modal.jsx:68
-#: src/components/status.jsx:1046
-#: src/components/status.jsx:1073
+#: src/components/status.jsx:1064
+#: src/components/status.jsx:1091
msgid "Speak"
msgstr ""
@@ -1211,9 +1211,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr ""
#: src/components/media-post.jsx:133
-#: src/components/status.jsx:3511
-#: src/components/status.jsx:3607
-#: src/components/status.jsx:3685
+#: src/components/status.jsx:3529
+#: src/components/status.jsx:3625
+#: src/components/status.jsx:3703
#: src/components/timeline.jsx:973
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1876
@@ -1501,8 +1501,8 @@ msgid "[Unknown notification type: {type}]"
msgstr ""
#: src/components/notification.jsx:434
-#: src/components/status.jsx:1002
-#: src/components/status.jsx:1012
+#: src/components/status.jsx:1020
+#: src/components/status.jsx:1030
msgid "Boosted/Liked by…"
msgstr ""
@@ -1524,7 +1524,7 @@ msgid "Learn more <0/>"
msgstr ""
#: src/components/notification.jsx:756
-#: src/components/status.jsx:211
+#: src/components/status.jsx:251
msgid "Read more →"
msgstr ""
@@ -1817,7 +1817,7 @@ msgid "Move down"
msgstr ""
#: src/components/shortcuts-settings.jsx:379
-#: src/components/status.jsx:1280
+#: src/components/status.jsx:1298
#: src/pages/list.jsx:170
msgid "Edit"
msgstr ""
@@ -2015,297 +2015,297 @@ msgstr ""
msgid "Import/export settings from/to instance server (Very experimental)"
msgstr ""
-#: src/components/status.jsx:504
+#: src/components/status.jsx:522
msgid "<0/> <1>boosted1>"
msgstr ""
-#: src/components/status.jsx:603
+#: src/components/status.jsx:621
msgid "Sorry, your current logged-in instance can't interact with this post from another instance."
msgstr ""
-#: src/components/status.jsx:756
+#: src/components/status.jsx:774
msgid "Unliked @{0}'s post"
msgstr ""
-#: src/components/status.jsx:757
+#: src/components/status.jsx:775
msgid "Liked @{0}'s post"
msgstr ""
-#: src/components/status.jsx:796
+#: src/components/status.jsx:814
msgid "Unbookmarked @{0}'s post"
msgstr ""
-#: src/components/status.jsx:797
+#: src/components/status.jsx:815
msgid "Bookmarked @{0}'s post"
msgstr ""
-#: src/components/status.jsx:903
-#: src/components/status.jsx:965
-#: src/components/status.jsx:2364
-#: src/components/status.jsx:2396
+#: src/components/status.jsx:921
+#: src/components/status.jsx:983
+#: src/components/status.jsx:2382
+#: src/components/status.jsx:2414
msgid "Unboost"
msgstr ""
-#: src/components/status.jsx:919
-#: src/components/status.jsx:2379
+#: src/components/status.jsx:937
+#: src/components/status.jsx:2397
msgid "Quote"
msgstr ""
-#: src/components/status.jsx:927
-#: src/components/status.jsx:2388
+#: src/components/status.jsx:945
+#: src/components/status.jsx:2406
msgid "Some media have no descriptions."
msgstr ""
-#: src/components/status.jsx:934
+#: src/components/status.jsx:952
msgid "Old post (<0>{0}0>)"
msgstr ""
-#: src/components/status.jsx:953
-#: src/components/status.jsx:1408
+#: src/components/status.jsx:971
+#: src/components/status.jsx:1426
msgid "Unboosted @{0}'s post"
msgstr ""
-#: src/components/status.jsx:954
-#: src/components/status.jsx:1409
+#: src/components/status.jsx:972
+#: src/components/status.jsx:1427
msgid "Boosted @{0}'s post"
msgstr ""
-#: src/components/status.jsx:966
+#: src/components/status.jsx:984
msgid "Boost…"
msgstr ""
-#: src/components/status.jsx:978
-#: src/components/status.jsx:1693
-#: src/components/status.jsx:2409
+#: src/components/status.jsx:996
+#: src/components/status.jsx:1711
+#: src/components/status.jsx:2427
msgid "Unlike"
msgstr ""
-#: src/components/status.jsx:979
-#: src/components/status.jsx:1693
-#: src/components/status.jsx:1694
-#: src/components/status.jsx:2409
-#: src/components/status.jsx:2410
+#: src/components/status.jsx:997
+#: src/components/status.jsx:1711
+#: src/components/status.jsx:1712
+#: src/components/status.jsx:2427
+#: src/components/status.jsx:2428
msgid "Like"
msgstr ""
-#: src/components/status.jsx:988
-#: src/components/status.jsx:2421
+#: src/components/status.jsx:1006
+#: src/components/status.jsx:2439
msgid "Unbookmark"
msgstr ""
-#: src/components/status.jsx:1096
+#: src/components/status.jsx:1114
msgid "View post by <0>@{0}0>"
msgstr ""
-#: src/components/status.jsx:1117
+#: src/components/status.jsx:1135
msgid "Show Edit History"
msgstr ""
-#: src/components/status.jsx:1120
+#: src/components/status.jsx:1138
msgid "Edited: {editedDateText}"
msgstr ""
-#: src/components/status.jsx:1187
-#: src/components/status.jsx:3188
+#: src/components/status.jsx:1205
+#: src/components/status.jsx:3206
msgid "Embed post"
msgstr ""
-#: src/components/status.jsx:1201
+#: src/components/status.jsx:1219
msgid "Conversation unmuted"
msgstr ""
-#: src/components/status.jsx:1201
+#: src/components/status.jsx:1219
msgid "Conversation muted"
msgstr ""
-#: src/components/status.jsx:1207
+#: src/components/status.jsx:1225
msgid "Unable to unmute conversation"
msgstr ""
-#: src/components/status.jsx:1208
+#: src/components/status.jsx:1226
msgid "Unable to mute conversation"
msgstr ""
-#: src/components/status.jsx:1217
+#: src/components/status.jsx:1235
msgid "Unmute conversation"
msgstr ""
-#: src/components/status.jsx:1224
+#: src/components/status.jsx:1242
msgid "Mute conversation"
msgstr ""
-#: src/components/status.jsx:1240
+#: src/components/status.jsx:1258
msgid "Post unpinned from profile"
msgstr ""
-#: src/components/status.jsx:1241
+#: src/components/status.jsx:1259
msgid "Post pinned to profile"
msgstr ""
-#: src/components/status.jsx:1246
+#: src/components/status.jsx:1264
msgid "Unable to unpin post"
msgstr ""
-#: src/components/status.jsx:1246
+#: src/components/status.jsx:1264
msgid "Unable to pin post"
msgstr ""
-#: src/components/status.jsx:1255
+#: src/components/status.jsx:1273
msgid "Unpin from profile"
msgstr ""
-#: src/components/status.jsx:1262
+#: src/components/status.jsx:1280
msgid "Pin to profile"
msgstr ""
-#: src/components/status.jsx:1291
+#: src/components/status.jsx:1309
msgid "Delete this post?"
msgstr ""
-#: src/components/status.jsx:1307
+#: src/components/status.jsx:1325
msgid "Post deleted"
msgstr ""
-#: src/components/status.jsx:1310
+#: src/components/status.jsx:1328
msgid "Unable to delete post"
msgstr ""
-#: src/components/status.jsx:1338
+#: src/components/status.jsx:1356
msgid "Report post…"
msgstr ""
-#: src/components/status.jsx:1694
-#: src/components/status.jsx:1730
-#: src/components/status.jsx:2410
+#: src/components/status.jsx:1712
+#: src/components/status.jsx:1748
+#: src/components/status.jsx:2428
msgid "Liked"
msgstr ""
-#: src/components/status.jsx:1727
-#: src/components/status.jsx:2397
+#: src/components/status.jsx:1745
+#: src/components/status.jsx:2415
msgid "Boosted"
msgstr ""
-#: src/components/status.jsx:1737
-#: src/components/status.jsx:2422
+#: src/components/status.jsx:1755
+#: src/components/status.jsx:2440
msgid "Bookmarked"
msgstr ""
-#: src/components/status.jsx:1741
+#: src/components/status.jsx:1759
msgid "Pinned"
msgstr ""
-#: src/components/status.jsx:1786
-#: src/components/status.jsx:2241
+#: src/components/status.jsx:1804
+#: src/components/status.jsx:2259
msgid "Deleted"
msgstr ""
-#: src/components/status.jsx:1827
+#: src/components/status.jsx:1845
msgid "{repliesCount, plural, one {# reply} other {# replies}}"
msgstr ""
-#: src/components/status.jsx:1916
+#: src/components/status.jsx:1934
msgid "Thread{0}"
msgstr ""
-#: src/components/status.jsx:1992
-#: src/components/status.jsx:2054
-#: src/components/status.jsx:2139
+#: src/components/status.jsx:2010
+#: src/components/status.jsx:2072
+#: src/components/status.jsx:2157
msgid "Show less"
msgstr ""
-#: src/components/status.jsx:1992
-#: src/components/status.jsx:2054
+#: src/components/status.jsx:2010
+#: src/components/status.jsx:2072
msgid "Show content"
msgstr ""
-#: src/components/status.jsx:2139
+#: src/components/status.jsx:2157
msgid "Show media"
msgstr ""
-#: src/components/status.jsx:2262
+#: src/components/status.jsx:2280
msgid "Edited"
msgstr ""
-#: src/components/status.jsx:2339
+#: src/components/status.jsx:2357
msgid "Comments"
msgstr ""
#. More from [Author]
-#: src/components/status.jsx:2648
+#: src/components/status.jsx:2666
msgid "More from <0/>"
msgstr "More from <0/>"
-#: src/components/status.jsx:2949
+#: src/components/status.jsx:2967
msgid "Edit History"
msgstr ""
-#: src/components/status.jsx:2953
+#: src/components/status.jsx:2971
msgid "Failed to load history"
msgstr ""
-#: src/components/status.jsx:2958
+#: src/components/status.jsx:2976
msgid "Loading…"
msgstr ""
-#: src/components/status.jsx:3193
+#: src/components/status.jsx:3211
msgid "HTML Code"
msgstr ""
-#: src/components/status.jsx:3210
+#: src/components/status.jsx:3228
msgid "HTML code copied"
msgstr ""
-#: src/components/status.jsx:3213
+#: src/components/status.jsx:3231
msgid "Unable to copy HTML code"
msgstr ""
-#: src/components/status.jsx:3225
+#: src/components/status.jsx:3243
msgid "Media attachments:"
msgstr ""
-#: src/components/status.jsx:3247
+#: src/components/status.jsx:3265
msgid "Account Emojis:"
msgstr ""
-#: src/components/status.jsx:3278
-#: src/components/status.jsx:3323
+#: src/components/status.jsx:3296
+#: src/components/status.jsx:3341
msgid "static URL"
msgstr ""
-#: src/components/status.jsx:3292
+#: src/components/status.jsx:3310
msgid "Emojis:"
msgstr ""
-#: src/components/status.jsx:3337
+#: src/components/status.jsx:3355
msgid "Notes:"
msgstr ""
-#: src/components/status.jsx:3341
+#: src/components/status.jsx:3359
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr ""
-#: src/components/status.jsx:3347
+#: src/components/status.jsx:3365
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr ""
-#: src/components/status.jsx:3352
+#: src/components/status.jsx:3370
msgid "Media attachments can be images, videos, audios or any file types."
msgstr ""
-#: src/components/status.jsx:3358
+#: src/components/status.jsx:3376
msgid "Post could be edited or deleted later."
msgstr ""
-#: src/components/status.jsx:3364
+#: src/components/status.jsx:3382
msgid "Preview"
msgstr ""
-#: src/components/status.jsx:3373
+#: src/components/status.jsx:3391
msgid "Note: This preview is lightly styled."
msgstr ""
#. [Name] [Visibility icon] boosted
-#: src/components/status.jsx:3615
+#: src/components/status.jsx:3633
msgid "<0/> <1/> boosted"
msgstr ""
diff --git a/src/locales/eu-ES.po b/src/locales/eu-ES.po
index fec893a8..842a1d3e 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-10-14 15:38\n"
+"PO-Revision-Date: 2024-10-17 21:34\n"
"Last-Translator: \n"
"Language-Team: Basque\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -54,7 +54,7 @@ msgstr "Eskatuta"
#: src/components/account-block.jsx:186
#: src/components/account-info.jsx:1671
msgid "Following"
-msgstr "jarraitzen"
+msgstr "Jarraitzen"
#: src/components/account-block.jsx:190
#: src/components/account-info.jsx:1062
@@ -98,7 +98,7 @@ msgstr "jarraitzaile"
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:759
msgid "following.stats"
-msgstr ""
+msgstr "jarraitzen"
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:776
@@ -552,7 +552,7 @@ msgstr "Gorde gabeko aldaketak dituzu. Bidalketa zokoratu nahi duzu?"
#: src/components/compose.jsx:622
msgid "{0, plural, one {File {1} is not supported.} other {Files {2} are not supported.}}"
-msgstr ""
+msgstr "{0, plural, one {{1} fitxategia ez da bateragarria.} other {{2} fitxategiak ez dira bateragarriak.}}"
#: src/components/compose.jsx:632
#: src/components/compose.jsx:650
@@ -1255,7 +1255,7 @@ msgstr "Eguneraketa eskuragarri…"
#: src/pages/following.jsx:22
#: src/pages/following.jsx:141
msgid "following.title"
-msgstr ""
+msgstr "Jarraitzen ditu"
#: src/components/nav-menu.jsx:200
#: src/pages/catchup.jsx:871
@@ -3566,7 +3566,7 @@ msgstr "Oharra: push jakinarazpenak <0>kontu bakarrarentzat0> dabiltza."
#: src/pages/status.jsx:567
#: src/pages/status.jsx:1100
msgid "post.title"
-msgstr ""
+msgstr "Bidalketa"
#: src/pages/status.jsx:791
msgid "You're not logged in. Interactions (reply, boost, etc) are not possible."
diff --git a/src/locales/fi-FI.po b/src/locales/fi-FI.po
index 279c740b..a44eeaa4 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-10-14 17:05\n"
+"PO-Revision-Date: 2024-10-16 18:19\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -974,7 +974,7 @@ msgstr "Tilit"
#: src/pages/search.jsx:454
#: src/pages/status.jsx:1301
msgid "Show more…"
-msgstr "Show lisää…"
+msgstr "Näytä lisää…"
#: src/components/generic-accounts.jsx:210
#: src/components/timeline.jsx:524
diff --git a/src/locales/nb-NO.po b/src/locales/nb-NO.po
index 3210274c..24d34bce 100644
--- a/src/locales/nb-NO.po
+++ b/src/locales/nb-NO.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: nb_NO\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2024-10-14 15:38\n"
+"PO-Revision-Date: 2024-10-17 12:56\n"
"Last-Translator: \n"
"Language-Team: Norwegian Bokmal\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1197,15 +1197,15 @@ msgstr ""
#: src/components/media-modal.jsx:329
msgid "Failed to describe image"
-msgstr ""
+msgstr "Kunne ikke beskrive bildet"
#: src/components/media-modal.jsx:339
msgid "Describe image…"
-msgstr ""
+msgstr "Beskriv bilde…"
#: src/components/media-modal.jsx:362
msgid "View post"
-msgstr ""
+msgstr "Vis innlegg"
#: src/components/media-post.jsx:127
msgid "Sensitive media"
@@ -1223,7 +1223,7 @@ msgstr ""
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1876
msgid "Filtered"
-msgstr ""
+msgstr "Filtrert"
#: src/components/modals.jsx:72
msgid "Post published. Check it out."
@@ -1479,7 +1479,7 @@ msgstr ""
#: src/components/notification.jsx:290
msgid "Your account has been disabled."
-msgstr ""
+msgstr "Kontoen din har blitt deaktivert."
#: src/components/notification.jsx:291
msgid "Some of your posts have been marked as sensitive."
@@ -1487,7 +1487,7 @@ msgstr ""
#: src/components/notification.jsx:292
msgid "Some of your posts have been deleted."
-msgstr ""
+msgstr "Noen av dine innlegg har blitt slettet."
#: src/components/notification.jsx:293
msgid "Your posts will be marked as sensitive from now on."
@@ -1531,7 +1531,7 @@ msgstr ""
#: src/components/notification.jsx:756
#: src/components/status.jsx:211
msgid "Read more →"
-msgstr ""
+msgstr "Les mer →"
#: src/components/poll.jsx:110
msgid "Voted"
@@ -1545,7 +1545,7 @@ msgstr ""
#: src/components/poll.jsx:219
#: src/components/poll.jsx:223
msgid "Hide results"
-msgstr ""
+msgstr "Skjul resultater"
#: src/components/poll.jsx:185
msgid "Vote"
@@ -1573,19 +1573,19 @@ msgstr ""
#: src/components/poll.jsx:265
msgid "Ended <0/>"
-msgstr ""
+msgstr "Avsluttet <0/>"
#: src/components/poll.jsx:269
msgid "Ended"
-msgstr ""
+msgstr "Avsluttet"
#: src/components/poll.jsx:272
msgid "Ending <0/>"
-msgstr ""
+msgstr "Avslutter <0/>"
#: src/components/poll.jsx:276
msgid "Ending"
-msgstr ""
+msgstr "Avslutter"
#. Relative time in seconds, as short as possible
#: src/components/relative-time.jsx:57
@@ -1600,11 +1600,11 @@ msgstr "{0}m"
#. Relative time in hours, as short as possible
#: src/components/relative-time.jsx:67
msgid "{0}h"
-msgstr ""
+msgstr "{0}t"
#: src/components/report-modal.jsx:29
msgid "Spam"
-msgstr ""
+msgstr "Søppel"
#: src/components/report-modal.jsx:30
msgid "Malicious links, fake engagement, or repetitive replies"
@@ -1815,17 +1815,17 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:351
msgid "Move up"
-msgstr ""
+msgstr "Flytt opp"
#: src/components/shortcuts-settings.jsx:367
msgid "Move down"
-msgstr ""
+msgstr "Flytt ned"
#: src/components/shortcuts-settings.jsx:379
#: src/components/status.jsx:1280
#: src/pages/list.jsx:170
msgid "Edit"
-msgstr ""
+msgstr "Rediger"
#: src/components/shortcuts-settings.jsx:400
msgid "Add more than one shortcut/column to make this work."
@@ -1853,7 +1853,7 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:458
msgid "Import/export"
-msgstr ""
+msgstr "Import/eksport"
#: src/components/shortcuts-settings.jsx:468
msgid "Add column…"
@@ -2002,11 +2002,11 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:1134
msgid "Unable to save shortcuts"
-msgstr ""
+msgstr "Kunne ikke lagre snarveier"
#: src/components/shortcuts-settings.jsx:1137
msgid "Sync to instance server"
-msgstr ""
+msgstr "Synkroniser til instanstjener"
#: src/components/shortcuts-settings.jsx:1145
msgid "{0, plural, one {# character} other {# characters}}"
@@ -2042,7 +2042,7 @@ msgstr ""
#: src/components/status.jsx:797
msgid "Bookmarked @{0}'s post"
-msgstr ""
+msgstr "Bokmerket @{0} sitt innlegg"
#: src/components/status.jsx:903
#: src/components/status.jsx:965
@@ -2054,7 +2054,7 @@ msgstr ""
#: src/components/status.jsx:919
#: src/components/status.jsx:2379
msgid "Quote"
-msgstr ""
+msgstr "Siter"
#: src/components/status.jsx:927
#: src/components/status.jsx:2388
@@ -2091,12 +2091,12 @@ msgstr ""
#: src/components/status.jsx:2409
#: src/components/status.jsx:2410
msgid "Like"
-msgstr ""
+msgstr "Lik"
#: src/components/status.jsx:988
#: src/components/status.jsx:2421
msgid "Unbookmark"
-msgstr ""
+msgstr "Fjern bokmerke"
#: src/components/status.jsx:1096
msgid "View post by <0>@{0}0>"
@@ -2104,20 +2104,20 @@ msgstr ""
#: src/components/status.jsx:1117
msgid "Show Edit History"
-msgstr ""
+msgstr "Vis redigeringshistorikk"
#: src/components/status.jsx:1120
msgid "Edited: {editedDateText}"
-msgstr ""
+msgstr "Redigert: {editedDateText}"
#: src/components/status.jsx:1187
#: src/components/status.jsx:3188
msgid "Embed post"
-msgstr ""
+msgstr "Bygg inn innlegg"
#: src/components/status.jsx:1201
msgid "Conversation unmuted"
-msgstr ""
+msgstr "Samtale dempet"
#: src/components/status.jsx:1201
msgid "Conversation muted"
@@ -2183,7 +2183,7 @@ msgstr ""
#: src/components/status.jsx:1730
#: src/components/status.jsx:2410
msgid "Liked"
-msgstr ""
+msgstr "Likt"
#: src/components/status.jsx:1727
#: src/components/status.jsx:2397
@@ -2193,16 +2193,16 @@ msgstr ""
#: src/components/status.jsx:1737
#: src/components/status.jsx:2422
msgid "Bookmarked"
-msgstr ""
+msgstr "Bokmerket"
#: src/components/status.jsx:1741
msgid "Pinned"
-msgstr ""
+msgstr "Festet"
#: src/components/status.jsx:1786
#: src/components/status.jsx:2241
msgid "Deleted"
-msgstr ""
+msgstr "Slettet"
#: src/components/status.jsx:1827
msgid "{repliesCount, plural, one {# reply} other {# replies}}"
@@ -2317,7 +2317,7 @@ msgstr ""
#: src/components/timeline.jsx:453
#: src/pages/settings.jsx:1130
msgid "New posts"
-msgstr ""
+msgstr "Nye innlegg"
#: src/components/timeline.jsx:554
#: src/pages/home.jsx:213
@@ -2333,7 +2333,7 @@ msgstr ""
#: src/components/timeline.jsx:593
msgid "Pinned posts"
-msgstr ""
+msgstr "Festede innlegg"
#: src/components/timeline.jsx:946
#: src/components/timeline.jsx:953
@@ -2359,15 +2359,15 @@ msgstr ""
#: src/components/translation-block.jsx:194
msgid "Translate from {sourceLangText}"
-msgstr ""
+msgstr "Oversett fra {sourceLangText}"
#: src/components/translation-block.jsx:222
msgid "Auto ({0})"
-msgstr ""
+msgstr "Automatisk ({0})"
#: src/components/translation-block.jsx:235
msgid "Failed to translate"
-msgstr ""
+msgstr "Kunne ikke oversette"
#: src/compose.jsx:32
msgid "Editing source status"
@@ -2383,7 +2383,7 @@ msgstr ""
#: src/compose.jsx:70
msgid "Close window"
-msgstr ""
+msgstr "Lukk vindu"
#: src/compose.jsx:86
msgid "Login required."
@@ -2504,19 +2504,19 @@ msgstr ""
#: src/pages/accounts.jsx:163
msgid "Set as default"
-msgstr ""
+msgstr "Sett som standard"
#: src/pages/accounts.jsx:173
msgid "Log out <0>@{0}0>?"
-msgstr ""
+msgstr "Logg ut <0>@{0}0>?"
#: src/pages/accounts.jsx:196
msgid "Log out…"
-msgstr ""
+msgstr "Logg ut…"
#: src/pages/accounts.jsx:209
msgid "Add an existing account"
-msgstr ""
+msgstr "Legg til en eksisterende konto"
#: src/pages/accounts.jsx:216
msgid "Note: <0>Default0> account will always be used for first load. Switched accounts will persist during the session."
@@ -2580,15 +2580,15 @@ msgstr "siste 12 timer"
#: src/pages/catchup.jsx:66
msgid "beyond 12 hours"
-msgstr ""
+msgstr "mer enn 12 timer"
#: src/pages/catchup.jsx:73
msgid "Followed tags"
-msgstr ""
+msgstr "Fulgte emneknagger"
#: src/pages/catchup.jsx:74
msgid "Groups"
-msgstr ""
+msgstr "Grupper"
#: src/pages/catchup.jsx:596
msgid "Showing {selectedFilterCategory, select, all {all posts} original {original posts} replies {replies} boosts {boosts} followedTags {followed tags} groups {groups} filtered {filtered posts}}, {sortBy, select, createdAt {{sortOrder, select, asc {oldest} desc {latest}}} reblogsCount {{sortOrder, select, asc {fewest boosts} desc {most boosts}}} favouritesCount {{sortOrder, select, asc {fewest likes} desc {most likes}}} repliesCount {{sortOrder, select, asc {fewest replies} desc {most replies}}} density {{sortOrder, select, asc {least dense} desc {most dense}}}} first{groupBy, select, account {, grouped by authors} other {}}"
@@ -2602,11 +2602,11 @@ msgstr ""
#: src/pages/catchup.jsx:896
#: src/pages/catchup.jsx:1585
msgid "Help"
-msgstr ""
+msgstr "Hjelp"
#: src/pages/catchup.jsx:912
msgid "What is this?"
-msgstr ""
+msgstr "Hva er dette?"
#: src/pages/catchup.jsx:915
msgid "Catch-up is a separate timeline for your followings, offering a high-level view at a glance, with a simple, email-inspired interface to effortlessly sort and filter through posts."
@@ -2650,7 +2650,7 @@ msgstr ""
#: src/pages/catchup.jsx:1034
msgid "Previously…"
-msgstr ""
+msgstr "Tidligere…"
#: src/pages/catchup.jsx:1052
msgid "{0, plural, one {# post} other {# posts}}"
@@ -2666,15 +2666,15 @@ msgstr ""
#: src/pages/catchup.jsx:1098
msgid "Fetching posts…"
-msgstr ""
+msgstr "Henter innlegg…"
#: src/pages/catchup.jsx:1101
msgid "This might take a while."
-msgstr ""
+msgstr "Dette kan ta litt tid."
#: src/pages/catchup.jsx:1136
msgid "Reset filters"
-msgstr ""
+msgstr "Tilbakestill filtre"
#: src/pages/catchup.jsx:1144
#: src/pages/catchup.jsx:1591
@@ -2689,7 +2689,7 @@ msgstr ""
#: src/pages/mentions.jsx:147
#: src/pages/search.jsx:222
msgid "All"
-msgstr ""
+msgstr "Alle"
#: src/pages/catchup.jsx:1401
msgid "{0, plural, one {# author} other {# authors}}"
@@ -2697,39 +2697,39 @@ msgstr ""
#: src/pages/catchup.jsx:1413
msgid "Sort"
-msgstr ""
+msgstr "Sorter"
#: src/pages/catchup.jsx:1444
msgid "Date"
-msgstr ""
+msgstr "Dato"
#: src/pages/catchup.jsx:1448
msgid "Density"
-msgstr ""
+msgstr "Tetthet"
#: src/pages/catchup.jsx:1486
msgid "Authors"
-msgstr ""
+msgstr "Forfattere"
#: src/pages/catchup.jsx:1487
msgid "None"
-msgstr ""
+msgstr "Ingen"
#: src/pages/catchup.jsx:1503
msgid "Show all authors"
-msgstr ""
+msgstr "Vis alle forfattere"
#: src/pages/catchup.jsx:1554
msgid "You don't have to read everything."
-msgstr ""
+msgstr "Du trenger ikke lese alt."
#: src/pages/catchup.jsx:1555
msgid "That's all."
-msgstr ""
+msgstr "Det var alle."
#: src/pages/catchup.jsx:1563
msgid "Back to top"
-msgstr ""
+msgstr "Tilbake til toppen"
#: src/pages/catchup.jsx:1594
msgid "Links shared by followings, sorted by shared counts, boosts and likes."
@@ -2785,28 +2785,28 @@ msgstr ""
#: src/pages/filters.jsx:26
msgid "Conversations"
-msgstr ""
+msgstr "Samtaler"
#: src/pages/filters.jsx:27
msgid "Profiles"
-msgstr ""
+msgstr "Profiler"
#: src/pages/filters.jsx:42
msgid "Never"
-msgstr ""
+msgstr "Aldri"
#: src/pages/filters.jsx:103
#: src/pages/filters.jsx:228
msgid "New filter"
-msgstr ""
+msgstr "Nytt filter"
#: src/pages/filters.jsx:151
msgid "{0, plural, one {# filter} other {# filters}}"
-msgstr ""
+msgstr "{0, plural, one {# filter} other {# filtre}}"
#: src/pages/filters.jsx:166
msgid "Unable to load filters."
-msgstr ""
+msgstr "Kunne ikke laste filtre."
#: src/pages/filters.jsx:170
msgid "No filters yet."
@@ -2814,27 +2814,27 @@ msgstr ""
#: src/pages/filters.jsx:177
msgid "Add filter"
-msgstr ""
+msgstr "Legg til filter"
#: src/pages/filters.jsx:228
msgid "Edit filter"
-msgstr ""
+msgstr "Rediger filter"
#: src/pages/filters.jsx:345
msgid "Unable to edit filter"
-msgstr ""
+msgstr "Kunne ikke redigere filter"
#: src/pages/filters.jsx:346
msgid "Unable to create filter"
-msgstr ""
+msgstr "Kunne ikke opprette filter"
#: src/pages/filters.jsx:355
msgid "Title"
-msgstr ""
+msgstr "Tittel"
#: src/pages/filters.jsx:396
msgid "Whole word"
-msgstr ""
+msgstr "Hele ordet"
#: src/pages/filters.jsx:422
msgid "No keywords. Add one."
@@ -2890,19 +2890,19 @@ msgstr ""
#: src/pages/filters.jsx:608
msgid "Expired"
-msgstr ""
+msgstr "Utløpt"
#: src/pages/filters.jsx:610
msgid "Expiring <0/>"
-msgstr ""
+msgstr "Utløper <0/>"
#: src/pages/filters.jsx:614
msgid "Never expires"
-msgstr ""
+msgstr "Utløper aldri"
#: src/pages/followed-hashtags.jsx:70
msgid "{0, plural, one {# hashtag} other {# hashtags}}"
-msgstr ""
+msgstr "{0, plural, one {# emneknagg} other {# emneknagger}}"
#: src/pages/followed-hashtags.jsx:85
msgid "Unable to load followed hashtags."
@@ -2914,12 +2914,12 @@ msgstr ""
#: src/pages/following.jsx:143
msgid "Nothing to see here."
-msgstr ""
+msgstr "Ingenting å se her."
#: src/pages/following.jsx:144
#: src/pages/list.jsx:108
msgid "Unable to load posts."
-msgstr ""
+msgstr "Kunne ikke laste innlegg."
#: src/pages/hashtag.jsx:55
msgid "{hashtagTitle} (Media only) on {instance}"
@@ -2935,7 +2935,7 @@ msgstr ""
#: src/pages/hashtag.jsx:59
msgid "{hashtagTitle}"
-msgstr ""
+msgstr "{hashtagTitle}"
#: src/pages/hashtag.jsx:181
msgid "No one has posted anything with this tag yet."
@@ -2955,7 +2955,7 @@ msgstr ""
#: src/pages/hashtag.jsx:238
msgid "Followed #{hashtag}"
-msgstr ""
+msgstr "Fulgte #{hashtag}"
#: src/pages/hashtag.jsx:254
msgid "Following…"
@@ -3040,7 +3040,7 @@ msgstr ""
#: src/pages/home.jsx:235
msgid "See all"
-msgstr ""
+msgstr "Se alle"
#: src/pages/http-route.jsx:68
msgid "Resolving…"
@@ -3065,7 +3065,7 @@ msgstr ""
#: src/pages/list.jsx:359
msgid "Remove…"
-msgstr ""
+msgstr "Fjern…"
#: src/pages/lists.jsx:93
msgid "{0, plural, one {# list} other {# lists}}"
@@ -3082,15 +3082,15 @@ msgstr ""
#: src/pages/login.jsx:208
msgid "instance domain"
-msgstr ""
+msgstr "instanstjener"
#: src/pages/login.jsx:232
msgid "e.g. “mastodon.social”"
-msgstr ""
+msgstr "f.eks. «mastodon.social»"
#: src/pages/login.jsx:243
msgid "Failed to log in. Please try again or try another instance."
-msgstr ""
+msgstr "Kunne ikke logge inn. Vennligst prøv igjen, eller prøv en annen instans."
#: src/pages/login.jsx:255
msgid "Continue with {selectedInstanceText}"
@@ -3098,11 +3098,11 @@ msgstr ""
#: src/pages/login.jsx:256
msgid "Continue"
-msgstr ""
+msgstr "Fortsett"
#: src/pages/login.jsx:264
msgid "Don't have an account? Create one!"
-msgstr ""
+msgstr "Har du ikke en konto? Opprett en!"
#: src/pages/mentions.jsx:20
msgid "Private mentions"
@@ -3110,7 +3110,7 @@ msgstr ""
#: src/pages/mentions.jsx:159
msgid "Private"
-msgstr ""
+msgstr "Privat"
#: src/pages/mentions.jsx:169
msgid "No one mentioned you :("
@@ -3147,7 +3147,7 @@ msgstr ""
#: src/pages/notifications.jsx:556
msgid "New notifications"
-msgstr ""
+msgstr "Nye varsler"
#: src/pages/notifications.jsx:567
msgid "{0, plural, one {Announcement} other {Announcements}}"
@@ -3172,7 +3172,7 @@ msgstr ""
#: src/pages/notifications.jsx:744
msgid "Today"
-msgstr ""
+msgstr "I dag"
#: src/pages/notifications.jsx:749
msgid "You're all caught up."
@@ -3180,7 +3180,7 @@ msgstr ""
#: src/pages/notifications.jsx:772
msgid "Yesterday"
-msgstr ""
+msgstr "I går"
#: src/pages/notifications.jsx:820
msgid "Unable to load notifications"
@@ -3196,23 +3196,23 @@ msgstr ""
#: src/pages/notifications.jsx:921
msgid "Filter"
-msgstr ""
+msgstr "Filter"
#: src/pages/notifications.jsx:924
msgid "Ignore"
-msgstr ""
+msgstr "Ignorer"
#: src/pages/notifications.jsx:997
msgid "Updated <0>{0}0>"
-msgstr ""
+msgstr "Oppdaterte <0>{0}0>"
#: src/pages/notifications.jsx:1065
msgid "View notifications from <0>@{0}0>"
-msgstr ""
+msgstr "Vis varsler fra <0>@{0}0>"
#: src/pages/notifications.jsx:1086
msgid "Notifications from <0>@{0}0>"
-msgstr ""
+msgstr "Varsler fra <0>@{0}0>"
#: src/pages/notifications.jsx:1153
msgid "Notifications from @{0} will not be filtered from now on."
@@ -3220,11 +3220,11 @@ msgstr ""
#: src/pages/notifications.jsx:1158
msgid "Unable to accept notification request"
-msgstr ""
+msgstr "Kunne ikke akseptere varselforespørsel"
#: src/pages/notifications.jsx:1163
msgid "Allow"
-msgstr ""
+msgstr "Tillat"
#: src/pages/notifications.jsx:1183
msgid "Notifications from @{0} will not show up in Filtered notifications from now on."
@@ -3236,19 +3236,19 @@ msgstr ""
#: src/pages/notifications.jsx:1193
msgid "Dismiss"
-msgstr ""
+msgstr "Avvis"
#: src/pages/notifications.jsx:1208
msgid "Dismissed"
-msgstr ""
+msgstr "Avvist"
#: src/pages/public.jsx:27
msgid "Local timeline ({instance})"
-msgstr ""
+msgstr "Lokal tidslinje ({instance})"
#: src/pages/public.jsx:28
msgid "Federated timeline ({instance})"
-msgstr ""
+msgstr "Føderert tidslinje ({instance})"
#: src/pages/public.jsx:90
msgid "Local timeline"
@@ -3284,18 +3284,18 @@ msgstr ""
#: src/pages/search.jsx:52
msgid "Search: {q}"
-msgstr ""
+msgstr "Søk: {q}"
#: src/pages/search.jsx:232
#: src/pages/search.jsx:314
msgid "Hashtags"
-msgstr ""
+msgstr "Emneknagger"
#: src/pages/search.jsx:264
#: src/pages/search.jsx:318
#: src/pages/search.jsx:388
msgid "See more"
-msgstr ""
+msgstr "Se mer"
#: src/pages/search.jsx:290
msgid "See more accounts"
@@ -3327,34 +3327,34 @@ msgstr ""
#: src/pages/settings.jsx:81
msgid "Settings"
-msgstr ""
+msgstr "Innstillinger"
#: src/pages/settings.jsx:90
msgid "Appearance"
-msgstr ""
+msgstr "Utseende"
#: src/pages/settings.jsx:166
msgid "Light"
-msgstr ""
+msgstr "Lyst"
#: src/pages/settings.jsx:177
msgid "Dark"
-msgstr ""
+msgstr "Mørkt"
#: src/pages/settings.jsx:190
msgid "Auto"
-msgstr ""
+msgstr "Automatisk"
#: src/pages/settings.jsx:200
msgid "Text size"
-msgstr ""
+msgstr "Tekststørrelse"
#. Preview of one character, in smallest size
#. Preview of one character, in largest size
#: src/pages/settings.jsx:205
#: src/pages/settings.jsx:230
msgid "A"
-msgstr ""
+msgstr "A"
#: src/pages/settings.jsx:244
msgid "Display language"
@@ -3387,7 +3387,7 @@ msgstr ""
#: src/pages/settings.jsx:335
msgid "Experiments"
-msgstr ""
+msgstr "Eksperimenter"
#: src/pages/settings.jsx:348
msgid "Auto refresh timeline posts"
@@ -3403,11 +3403,11 @@ msgstr ""
#: src/pages/settings.jsx:387
msgid "Translate to"
-msgstr ""
+msgstr "Oversett til"
#: src/pages/settings.jsx:398
msgid "System language ({systemTargetLanguageText})"
-msgstr ""
+msgstr "Systemspråk ({systemTargetLanguageText})"
#: src/pages/settings.jsx:424
msgid "{0, plural, =0 {Hide \"Translate\" button for:} other {Hide \"Translate\" button for (#):}}"
@@ -3499,7 +3499,7 @@ msgstr ""
#: src/pages/settings.jsx:797
msgid "<0>Version:0> <1/> {0}"
-msgstr ""
+msgstr "<0>Versjon:0> <1/> {0}"
#: src/pages/settings.jsx:812
msgid "Version string copied"
@@ -3578,7 +3578,7 @@ msgstr ""
#: src/pages/status.jsx:839
msgid "Error: {e}"
-msgstr ""
+msgstr "Feil: {e}"
#: src/pages/status.jsx:846
msgid "Switch to my instance to enable interactions"
diff --git a/src/locales/ru-RU.po b/src/locales/ru-RU.po
index 367d0a92..98aa10b9 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-10-14 17:05\n"
+"PO-Revision-Date: 2024-10-16 13:47\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"
@@ -98,7 +98,7 @@ msgstr "Подписчик(а/ов)"
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:759
msgid "following.stats"
-msgstr "Подписк(и/ок)"
+msgstr "Подпис(ки/ок)"
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:776
diff --git a/src/locales/zh-CN.po b/src/locales/zh-CN.po
index abe0cae1..07a23d09 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-10-15 17:16\n"
+"PO-Revision-Date: 2024-10-18 15:22\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -37,7 +37,7 @@ msgstr "机器人"
#: src/components/account-block.jsx:168
#: src/components/account-info.jsx:639
-#: src/components/status.jsx:480
+#: src/components/status.jsx:498
#: src/pages/catchup.jsx:1471
msgid "Group"
msgstr "群组"
@@ -98,7 +98,7 @@ msgstr "粉丝"
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:759
msgid "following.stats"
-msgstr "关注数据"
+msgstr "关注"
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:776
@@ -113,11 +113,11 @@ msgstr "嘟文"
#: src/components/compose.jsx:2488
#: src/components/media-alt-modal.jsx:45
#: src/components/media-modal.jsx:283
-#: src/components/status.jsx:1703
-#: src/components/status.jsx:1720
-#: src/components/status.jsx:1844
-#: src/components/status.jsx:2442
-#: src/components/status.jsx:2445
+#: src/components/status.jsx:1721
+#: src/components/status.jsx:1738
+#: src/components/status.jsx:1862
+#: src/components/status.jsx:2460
+#: src/components/status.jsx:2463
#: src/pages/account-statuses.jsx:528
#: src/pages/accounts.jsx:109
#: src/pages/hashtag.jsx:199
@@ -186,7 +186,7 @@ msgid "Original"
msgstr "原创"
#: src/components/account-info.jsx:862
-#: src/components/status.jsx:2233
+#: src/components/status.jsx:2251
#: src/pages/catchup.jsx:71
#: src/pages/catchup.jsx:1445
#: src/pages/catchup.jsx:2056
@@ -282,30 +282,30 @@ msgid "Add/Remove from Lists"
msgstr "加入/移出列表"
#: src/components/account-info.jsx:1302
-#: src/components/status.jsx:1143
+#: src/components/status.jsx:1161
msgid "Link copied"
msgstr "已复制链接"
#: src/components/account-info.jsx:1305
-#: src/components/status.jsx:1146
+#: src/components/status.jsx:1164
msgid "Unable to copy link"
msgstr "无法复制链接"
#: src/components/account-info.jsx:1311
#: src/components/shortcuts-settings.jsx:1059
-#: src/components/status.jsx:1152
-#: src/components/status.jsx:3219
+#: src/components/status.jsx:1170
+#: src/components/status.jsx:3237
msgid "Copy"
msgstr "复制"
#: src/components/account-info.jsx:1326
#: src/components/shortcuts-settings.jsx:1077
-#: src/components/status.jsx:1168
+#: src/components/status.jsx:1186
msgid "Sharing doesn't seem to work."
msgstr "分享似乎无法正常工作。"
#: src/components/account-info.jsx:1332
-#: src/components/status.jsx:1174
+#: src/components/status.jsx:1192
msgid "Share…"
msgstr "分享…"
@@ -422,9 +422,9 @@ msgstr "关注"
#: src/components/shortcuts-settings.jsx:230
#: src/components/shortcuts-settings.jsx:583
#: src/components/shortcuts-settings.jsx:783
-#: src/components/status.jsx:2944
-#: src/components/status.jsx:3183
-#: src/components/status.jsx:3681
+#: src/components/status.jsx:2962
+#: src/components/status.jsx:3201
+#: src/components/status.jsx:3699
#: src/pages/accounts.jsx:36
#: src/pages/catchup.jsx:1581
#: src/pages/filters.jsx:224
@@ -614,7 +614,7 @@ msgid "Attachment #{i} failed"
msgstr "附加附件 #{i} 失败"
#: src/components/compose.jsx:1139
-#: src/components/status.jsx:2029
+#: src/components/status.jsx:2047
#: src/components/timeline.jsx:984
msgid "Content warning"
msgstr "内容警告"
@@ -650,7 +650,7 @@ msgstr "仅粉丝"
#: src/components/compose.jsx:1206
#: src/components/status.jsx:97
-#: src/components/status.jsx:1907
+#: src/components/status.jsx:1925
msgid "Private mention"
msgstr "私信"
@@ -680,10 +680,10 @@ msgstr "添加自定义表情"
#: src/components/compose.jsx:1504
#: src/components/keyboard-shortcuts-help.jsx:143
-#: src/components/status.jsx:895
-#: src/components/status.jsx:1683
-#: src/components/status.jsx:1684
-#: src/components/status.jsx:2338
+#: src/components/status.jsx:913
+#: src/components/status.jsx:1701
+#: src/components/status.jsx:1702
+#: src/components/status.jsx:2356
msgid "Reply"
msgstr "回复"
@@ -898,7 +898,7 @@ msgstr "删除草稿时出错!请重试。"
#: src/components/drafts.jsx:127
#: src/components/list-add-edit.jsx:183
-#: src/components/status.jsx:1318
+#: src/components/status.jsx:1336
#: src/pages/filters.jsx:587
msgid "Delete…"
msgstr "删除…"
@@ -1098,10 +1098,10 @@ msgid "<0>l0> or <1>f1>"
msgstr "<0>l0> 或 <1>f1>"
#: src/components/keyboard-shortcuts-help.jsx:164
-#: src/components/status.jsx:903
-#: src/components/status.jsx:2364
-#: src/components/status.jsx:2396
-#: src/components/status.jsx:2397
+#: src/components/status.jsx:921
+#: src/components/status.jsx:2382
+#: src/components/status.jsx:2414
+#: src/components/status.jsx:2415
msgid "Boost"
msgstr "转嘟"
@@ -1110,9 +1110,9 @@ msgid "<0>Shift0> + <1>b1>"
msgstr "<0>Shift0> + <1>b1>"
#: src/components/keyboard-shortcuts-help.jsx:172
-#: src/components/status.jsx:988
-#: src/components/status.jsx:2421
-#: src/components/status.jsx:2422
+#: src/components/status.jsx:1006
+#: src/components/status.jsx:2439
+#: src/components/status.jsx:2440
msgid "Bookmark"
msgstr "收藏"
@@ -1171,15 +1171,15 @@ msgid "Media description"
msgstr "媒体描述"
#: src/components/media-alt-modal.jsx:57
-#: src/components/status.jsx:1032
-#: src/components/status.jsx:1059
+#: src/components/status.jsx:1050
+#: src/components/status.jsx:1077
#: src/components/translation-block.jsx:195
msgid "Translate"
msgstr "翻译"
#: src/components/media-alt-modal.jsx:68
-#: src/components/status.jsx:1046
-#: src/components/status.jsx:1073
+#: src/components/status.jsx:1064
+#: src/components/status.jsx:1091
msgid "Speak"
msgstr "朗读"
@@ -1216,9 +1216,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr "已过滤: {filterTitleStr}"
#: src/components/media-post.jsx:133
-#: src/components/status.jsx:3511
-#: src/components/status.jsx:3607
-#: src/components/status.jsx:3685
+#: src/components/status.jsx:3529
+#: src/components/status.jsx:3625
+#: src/components/status.jsx:3703
#: src/components/timeline.jsx:973
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1876
@@ -1506,8 +1506,8 @@ msgid "[Unknown notification type: {type}]"
msgstr "[未知通知类型:{type}]"
#: src/components/notification.jsx:434
-#: src/components/status.jsx:1002
-#: src/components/status.jsx:1012
+#: src/components/status.jsx:1020
+#: src/components/status.jsx:1030
msgid "Boosted/Liked by…"
msgstr "查看转嘟/点赞…"
@@ -1529,7 +1529,7 @@ msgid "Learn more <0/>"
msgstr "了解更多 <0/>"
#: src/components/notification.jsx:756
-#: src/components/status.jsx:211
+#: src/components/status.jsx:251
msgid "Read more →"
msgstr "阅读更多 →"
@@ -1822,7 +1822,7 @@ msgid "Move down"
msgstr "向下移动"
#: src/components/shortcuts-settings.jsx:379
-#: src/components/status.jsx:1280
+#: src/components/status.jsx:1298
#: src/pages/list.jsx:170
msgid "Edit"
msgstr "编辑"
@@ -2020,297 +2020,297 @@ msgstr "原始快捷方式 JSON"
msgid "Import/export settings from/to instance server (Very experimental)"
msgstr "导入/导出配置到实例服务器(很不稳定)"
-#: src/components/status.jsx:504
+#: src/components/status.jsx:522
msgid "<0/> <1>boosted1>"
msgstr "<0/> <1>转嘟了1>"
-#: src/components/status.jsx:603
+#: src/components/status.jsx:621
msgid "Sorry, your current logged-in instance can't interact with this post from another instance."
msgstr "抱歉,你当前登录的实例无法与该外站嘟文互动。"
-#: src/components/status.jsx:756
+#: src/components/status.jsx:774
msgid "Unliked @{0}'s post"
msgstr "已取消点赞 @{0} 的嘟文"
-#: src/components/status.jsx:757
+#: src/components/status.jsx:775
msgid "Liked @{0}'s post"
msgstr "已点赞 @{0} 的嘟文"
-#: src/components/status.jsx:796
+#: src/components/status.jsx:814
msgid "Unbookmarked @{0}'s post"
msgstr "已取消收藏 @{0} 的嘟文"
-#: src/components/status.jsx:797
+#: src/components/status.jsx:815
msgid "Bookmarked @{0}'s post"
msgstr "已收藏 @{0} 的嘟文"
-#: src/components/status.jsx:903
-#: src/components/status.jsx:965
-#: src/components/status.jsx:2364
-#: src/components/status.jsx:2396
+#: src/components/status.jsx:921
+#: src/components/status.jsx:983
+#: src/components/status.jsx:2382
+#: src/components/status.jsx:2414
msgid "Unboost"
msgstr "取消转嘟"
-#: src/components/status.jsx:919
-#: src/components/status.jsx:2379
+#: src/components/status.jsx:937
+#: src/components/status.jsx:2397
msgid "Quote"
msgstr "引用"
-#: src/components/status.jsx:927
-#: src/components/status.jsx:2388
+#: src/components/status.jsx:945
+#: src/components/status.jsx:2406
msgid "Some media have no descriptions."
msgstr "某些媒体附件没有描述文本。"
-#: src/components/status.jsx:934
+#: src/components/status.jsx:952
msgid "Old post (<0>{0}0>)"
msgstr "旧嘟文 (<0>{0}0>)"
-#: src/components/status.jsx:953
-#: src/components/status.jsx:1408
+#: src/components/status.jsx:971
+#: src/components/status.jsx:1426
msgid "Unboosted @{0}'s post"
msgstr "已取消转嘟 @{0} 的嘟文"
-#: src/components/status.jsx:954
-#: src/components/status.jsx:1409
+#: src/components/status.jsx:972
+#: src/components/status.jsx:1427
msgid "Boosted @{0}'s post"
msgstr "已转嘟 @{0} 的嘟文"
-#: src/components/status.jsx:966
+#: src/components/status.jsx:984
msgid "Boost…"
msgstr "转嘟…"
-#: src/components/status.jsx:978
-#: src/components/status.jsx:1693
-#: src/components/status.jsx:2409
+#: src/components/status.jsx:996
+#: src/components/status.jsx:1711
+#: src/components/status.jsx:2427
msgid "Unlike"
msgstr "取消喜欢"
-#: src/components/status.jsx:979
-#: src/components/status.jsx:1693
-#: src/components/status.jsx:1694
-#: src/components/status.jsx:2409
-#: src/components/status.jsx:2410
+#: src/components/status.jsx:997
+#: src/components/status.jsx:1711
+#: src/components/status.jsx:1712
+#: src/components/status.jsx:2427
+#: src/components/status.jsx:2428
msgid "Like"
msgstr "赞"
-#: src/components/status.jsx:988
-#: src/components/status.jsx:2421
+#: src/components/status.jsx:1006
+#: src/components/status.jsx:2439
msgid "Unbookmark"
msgstr "取消收藏"
-#: src/components/status.jsx:1096
+#: src/components/status.jsx:1114
msgid "View post by <0>@{0}0>"
msgstr "查看 <0>@{0}0> 的嘟文"
-#: src/components/status.jsx:1117
+#: src/components/status.jsx:1135
msgid "Show Edit History"
msgstr "显示编辑记录"
-#: src/components/status.jsx:1120
+#: src/components/status.jsx:1138
msgid "Edited: {editedDateText}"
msgstr "编辑于: {editedDateText}"
-#: src/components/status.jsx:1187
-#: src/components/status.jsx:3188
+#: src/components/status.jsx:1205
+#: src/components/status.jsx:3206
msgid "Embed post"
msgstr "嵌入嘟文"
-#: src/components/status.jsx:1201
+#: src/components/status.jsx:1219
msgid "Conversation unmuted"
msgstr "已取消静音该对话"
-#: src/components/status.jsx:1201
+#: src/components/status.jsx:1219
msgid "Conversation muted"
msgstr "已静音该对话"
-#: src/components/status.jsx:1207
+#: src/components/status.jsx:1225
msgid "Unable to unmute conversation"
msgstr "无法取消静音该对话"
-#: src/components/status.jsx:1208
+#: src/components/status.jsx:1226
msgid "Unable to mute conversation"
msgstr "无法静音该对话"
-#: src/components/status.jsx:1217
+#: src/components/status.jsx:1235
msgid "Unmute conversation"
msgstr "取消静音对话"
-#: src/components/status.jsx:1224
+#: src/components/status.jsx:1242
msgid "Mute conversation"
msgstr "静音对话"
-#: src/components/status.jsx:1240
+#: src/components/status.jsx:1258
msgid "Post unpinned from profile"
msgstr "已取消置顶该嘟文"
-#: src/components/status.jsx:1241
+#: src/components/status.jsx:1259
msgid "Post pinned to profile"
msgstr "已置顶该嘟文"
-#: src/components/status.jsx:1246
+#: src/components/status.jsx:1264
msgid "Unable to unpin post"
msgstr "无法取消置顶该嘟文"
-#: src/components/status.jsx:1246
+#: src/components/status.jsx:1264
msgid "Unable to pin post"
msgstr "无法置顶该嘟文"
-#: src/components/status.jsx:1255
+#: src/components/status.jsx:1273
msgid "Unpin from profile"
msgstr "取消置顶"
-#: src/components/status.jsx:1262
+#: src/components/status.jsx:1280
msgid "Pin to profile"
msgstr "置顶"
-#: src/components/status.jsx:1291
+#: src/components/status.jsx:1309
msgid "Delete this post?"
msgstr "是否删除此嘟文?"
-#: src/components/status.jsx:1307
+#: src/components/status.jsx:1325
msgid "Post deleted"
msgstr "嘟文已删除"
-#: src/components/status.jsx:1310
+#: src/components/status.jsx:1328
msgid "Unable to delete post"
msgstr "无法删除嘟文"
-#: src/components/status.jsx:1338
+#: src/components/status.jsx:1356
msgid "Report post…"
msgstr "举报嘟文…"
-#: src/components/status.jsx:1694
-#: src/components/status.jsx:1730
-#: src/components/status.jsx:2410
+#: src/components/status.jsx:1712
+#: src/components/status.jsx:1748
+#: src/components/status.jsx:2428
msgid "Liked"
msgstr "已点赞"
-#: src/components/status.jsx:1727
-#: src/components/status.jsx:2397
+#: src/components/status.jsx:1745
+#: src/components/status.jsx:2415
msgid "Boosted"
msgstr "已转嘟"
-#: src/components/status.jsx:1737
-#: src/components/status.jsx:2422
+#: src/components/status.jsx:1755
+#: src/components/status.jsx:2440
msgid "Bookmarked"
msgstr "已收藏"
-#: src/components/status.jsx:1741
+#: src/components/status.jsx:1759
msgid "Pinned"
msgstr "已置顶"
-#: src/components/status.jsx:1786
-#: src/components/status.jsx:2241
+#: src/components/status.jsx:1804
+#: src/components/status.jsx:2259
msgid "Deleted"
msgstr "已删除"
-#: src/components/status.jsx:1827
+#: src/components/status.jsx:1845
msgid "{repliesCount, plural, one {# reply} other {# replies}}"
msgstr "{repliesCount, plural, other {# 条回复}}"
-#: src/components/status.jsx:1916
+#: src/components/status.jsx:1934
msgid "Thread{0}"
msgstr "嘟文串{0}"
-#: src/components/status.jsx:1992
-#: src/components/status.jsx:2054
-#: src/components/status.jsx:2139
+#: src/components/status.jsx:2010
+#: src/components/status.jsx:2072
+#: src/components/status.jsx:2157
msgid "Show less"
msgstr "折叠"
-#: src/components/status.jsx:1992
-#: src/components/status.jsx:2054
+#: src/components/status.jsx:2010
+#: src/components/status.jsx:2072
msgid "Show content"
msgstr "显示内容"
-#: src/components/status.jsx:2139
+#: src/components/status.jsx:2157
msgid "Show media"
msgstr "显示媒体"
-#: src/components/status.jsx:2262
+#: src/components/status.jsx:2280
msgid "Edited"
msgstr "已编辑"
-#: src/components/status.jsx:2339
+#: src/components/status.jsx:2357
msgid "Comments"
msgstr "评论"
#. More from [Author]
-#: src/components/status.jsx:2648
+#: src/components/status.jsx:2666
msgid "More from <0/>"
msgstr "<0/> 的更多内容"
-#: src/components/status.jsx:2949
+#: src/components/status.jsx:2967
msgid "Edit History"
msgstr "编辑记录"
-#: src/components/status.jsx:2953
+#: src/components/status.jsx:2971
msgid "Failed to load history"
msgstr "无法加载编辑记录"
-#: src/components/status.jsx:2958
+#: src/components/status.jsx:2976
msgid "Loading…"
msgstr "正在加载…"
-#: src/components/status.jsx:3193
+#: src/components/status.jsx:3211
msgid "HTML Code"
msgstr "HTML 代码"
-#: src/components/status.jsx:3210
+#: src/components/status.jsx:3228
msgid "HTML code copied"
msgstr "已复制 HTML 代码"
-#: src/components/status.jsx:3213
+#: src/components/status.jsx:3231
msgid "Unable to copy HTML code"
msgstr "无法复制 HTML 代码"
-#: src/components/status.jsx:3225
+#: src/components/status.jsx:3243
msgid "Media attachments:"
msgstr "媒体附件:"
-#: src/components/status.jsx:3247
+#: src/components/status.jsx:3265
msgid "Account Emojis:"
msgstr "账户表情:"
-#: src/components/status.jsx:3278
-#: src/components/status.jsx:3323
+#: src/components/status.jsx:3296
+#: src/components/status.jsx:3341
msgid "static URL"
msgstr "静态URL"
-#: src/components/status.jsx:3292
+#: src/components/status.jsx:3310
msgid "Emojis:"
msgstr "表情:"
-#: src/components/status.jsx:3337
+#: src/components/status.jsx:3355
msgid "Notes:"
msgstr "注意:"
-#: src/components/status.jsx:3341
+#: src/components/status.jsx:3359
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "此代码是静态代码,不包含样式和脚本。你可能需要进行编辑并按需应用自己的样式。"
-#: src/components/status.jsx:3347
+#: src/components/status.jsx:3365
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "代码中的投票无法交互,将显示为一个带有投票数的列表。"
-#: src/components/status.jsx:3352
+#: src/components/status.jsx:3370
msgid "Media attachments can be images, videos, audios or any file types."
msgstr "媒体附件可以是图片、视频、音频或任何文件类型。"
-#: src/components/status.jsx:3358
+#: src/components/status.jsx:3376
msgid "Post could be edited or deleted later."
msgstr "嘟文可以稍后编辑或删除。"
-#: src/components/status.jsx:3364
+#: src/components/status.jsx:3382
msgid "Preview"
msgstr "预览"
-#: src/components/status.jsx:3373
+#: src/components/status.jsx:3391
msgid "Note: This preview is lightly styled."
msgstr "注意: 此预览带有少量额外的样式"
#. [Name] [Visibility icon] boosted
-#: src/components/status.jsx:3615
+#: src/components/status.jsx:3633
msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> 转嘟了"
diff --git a/src/utils/enhance-content.js b/src/utils/enhance-content.js
index caf05b1b..dc65480d 100644
--- a/src/utils/enhance-content.js
+++ b/src/utils/enhance-content.js
@@ -290,6 +290,17 @@ function _enhanceContent(content, opts = {}) {
}
}
+ // FIX CLOAK MODE FOR SAFARI
+ // Workaround for Safari so that `text-decoration-thickness` works
+ // Wrap child text nodes in spans
+ for (const node of dom.childNodes) {
+ if (node.nodeType === Node.TEXT_NODE) {
+ const span = document.createElement('span');
+ span.textContent = node.textContent;
+ dom.replaceChild(span, node);
+ }
+ }
+
if (postEnhanceDOM) {
queueMicrotask(() => postEnhanceDOM(dom));
// postEnhanceDOM(dom); // mutate dom