pull/1124/head
Lim Chee Aun 2025-04-17 18:20:33 +08:00
rodzic c4149930d3
commit b9fcd4d054
2 zmienionych plików z 138 dodań i 158 usunięć

Wyświetl plik

@ -1105,69 +1105,50 @@ function Status({
</MenuItem> </MenuItem>
</> </>
)} )}
{!mediaFirst && ( {!mediaFirst && (enableTranslate || !language || differentLanguage) && (
<> <>
{(enableTranslate || !language || differentLanguage) && ( <MenuDivider />
<MenuDivider /> <div class={supportsTTS ? 'menu-horizontal' : ''}>
)} {enableTranslate ? (
{enableTranslate ? (
<div class={supportsTTS ? 'menu-horizontal' : ''}>
<MenuItem <MenuItem
disabled={forceTranslate} disabled={forceTranslate}
onClick={() => { onClick={() => setForceTranslate(true)}
setForceTranslate(true);
}}
> >
<Icon icon="translate" /> <Icon icon="translate" />
<span> <span>
<Trans>Translate</Trans> <Trans>Translate</Trans>
</span> </span>
</MenuItem> </MenuItem>
{supportsTTS && ( ) : (
<MenuItem <MenuLink
onClick={() => { to={`${instance ? `/${instance}` : ''}/s/${id}?translate=1`}
>
<Icon icon="translate" />
<span>
<Trans>Translate</Trans>
</span>
</MenuLink>
)}
{supportsTTS && (
<MenuItem
onClick={() => {
try {
const postText = getPostText(status); const postText = getPostText(status);
if (postText) { if (postText) {
speak(postText, language); speak(postText, language);
} }
}} } catch (error) {
> console.error('Failed to speak text:', error);
<Icon icon="speak" /> }
<span> }}
<Trans>Speak</Trans> >
</span> <Icon icon="speak" />
</MenuItem> <span>
)} <Trans>Speak</Trans>
</div> </span>
) : ( </MenuItem>
(!language || differentLanguage) && ( )}
<div class={supportsTTS ? 'menu-horizontal' : ''}> </div>
<MenuLink
to={`${instance ? `/${instance}` : ''}/s/${id}?translate=1`}
>
<Icon icon="translate" />
<span>
<Trans>Translate</Trans>
</span>
</MenuLink>
{supportsTTS && (
<MenuItem
onClick={() => {
const postText = getPostText(status);
if (postText) {
speak(postText, language);
}
}}
>
<Icon icon="speak" />
<span>
<Trans>Speak</Trans>
</span>
</MenuItem>
)}
</div>
)
)}
</> </>
)} )}
{((!isSizeLarge && sameInstance) || {((!isSizeLarge && sameInstance) ||

215
src/locales/en.po wygenerowano
Wyświetl plik

@ -111,11 +111,11 @@ msgstr ""
#: src/components/compose.jsx:2772 #: src/components/compose.jsx:2772
#: src/components/media-alt-modal.jsx:46 #: src/components/media-alt-modal.jsx:46
#: src/components/media-modal.jsx:358 #: src/components/media-modal.jsx:358
#: src/components/status.jsx:1794 #: src/components/status.jsx:1775
#: src/components/status.jsx:1811 #: src/components/status.jsx:1792
#: src/components/status.jsx:1936 #: src/components/status.jsx:1917
#: src/components/status.jsx:2554 #: src/components/status.jsx:2535
#: src/components/status.jsx:2557 #: src/components/status.jsx:2538
#: src/pages/account-statuses.jsx:523 #: src/pages/account-statuses.jsx:523
#: src/pages/accounts.jsx:110 #: src/pages/accounts.jsx:110
#: src/pages/hashtag.jsx:200 #: src/pages/hashtag.jsx:200
@ -203,7 +203,7 @@ msgid "Original"
msgstr "" msgstr ""
#: src/components/account-info.jsx:926 #: src/components/account-info.jsx:926
#: src/components/status.jsx:2338 #: src/components/status.jsx:2319
#: src/pages/catchup.jsx:72 #: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1442 #: src/pages/catchup.jsx:1442
#: src/pages/catchup.jsx:2057 #: src/pages/catchup.jsx:2057
@ -300,30 +300,30 @@ msgid "Add/Remove from Lists"
msgstr "" msgstr ""
#: src/components/account-info.jsx:1384 #: src/components/account-info.jsx:1384
#: src/components/status.jsx:1234 #: src/components/status.jsx:1215
msgid "Link copied" msgid "Link copied"
msgstr "" msgstr ""
#: src/components/account-info.jsx:1387 #: src/components/account-info.jsx:1387
#: src/components/status.jsx:1237 #: src/components/status.jsx:1218
msgid "Unable to copy link" msgid "Unable to copy link"
msgstr "" msgstr ""
#: src/components/account-info.jsx:1393 #: src/components/account-info.jsx:1393
#: src/components/shortcuts-settings.jsx:1059 #: src/components/shortcuts-settings.jsx:1059
#: src/components/status.jsx:1243 #: src/components/status.jsx:1224
#: src/components/status.jsx:3325 #: src/components/status.jsx:3306
msgid "Copy" msgid "Copy"
msgstr "" msgstr ""
#: src/components/account-info.jsx:1408 #: src/components/account-info.jsx:1408
#: src/components/shortcuts-settings.jsx:1077 #: src/components/shortcuts-settings.jsx:1077
#: src/components/status.jsx:1259 #: src/components/status.jsx:1240
msgid "Sharing doesn't seem to work." msgid "Sharing doesn't seem to work."
msgstr "" msgstr ""
#: src/components/account-info.jsx:1414 #: src/components/account-info.jsx:1414
#: src/components/status.jsx:1265 #: src/components/status.jsx:1246
msgid "Share…" msgid "Share…"
msgstr "" msgstr ""
@ -437,9 +437,9 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:230 #: src/components/shortcuts-settings.jsx:230
#: src/components/shortcuts-settings.jsx:583 #: src/components/shortcuts-settings.jsx:583
#: src/components/shortcuts-settings.jsx:783 #: src/components/shortcuts-settings.jsx:783
#: src/components/status.jsx:3049 #: src/components/status.jsx:3030
#: src/components/status.jsx:3289 #: src/components/status.jsx:3270
#: src/components/status.jsx:3798 #: src/components/status.jsx:3779
#: src/pages/accounts.jsx:37 #: src/pages/accounts.jsx:37
#: src/pages/catchup.jsx:1578 #: src/pages/catchup.jsx:1578
#: src/pages/filters.jsx:225 #: src/pages/filters.jsx:225
@ -680,7 +680,7 @@ msgid "Attachment #{i} failed"
msgstr "Attachment #{i} failed" msgstr "Attachment #{i} failed"
#: src/components/compose.jsx:1211 #: src/components/compose.jsx:1211
#: src/components/status.jsx:2124 #: src/components/status.jsx:2105
#: src/components/timeline.jsx:993 #: src/components/timeline.jsx:993
msgid "Content warning" msgid "Content warning"
msgstr "" msgstr ""
@ -716,7 +716,7 @@ msgstr ""
#: src/components/compose.jsx:1278 #: src/components/compose.jsx:1278
#: src/components/status.jsx:100 #: src/components/status.jsx:100
#: src/components/status.jsx:2000 #: src/components/status.jsx:1981
msgid "Private mention" msgid "Private mention"
msgstr "" msgstr ""
@ -754,9 +754,9 @@ msgstr "Schedule"
#: src/components/compose.jsx:1664 #: src/components/compose.jsx:1664
#: src/components/keyboard-shortcuts-help.jsx:154 #: src/components/keyboard-shortcuts-help.jsx:154
#: src/components/status.jsx:1008 #: src/components/status.jsx:1008
#: src/components/status.jsx:1774 #: src/components/status.jsx:1755
#: src/components/status.jsx:1775 #: src/components/status.jsx:1756
#: src/components/status.jsx:2458 #: src/components/status.jsx:2439
msgid "Reply" msgid "Reply"
msgstr "" msgstr ""
@ -978,7 +978,7 @@ msgstr ""
#: src/components/drafts.jsx:128 #: src/components/drafts.jsx:128
#: src/components/list-add-edit.jsx:186 #: src/components/list-add-edit.jsx:186
#: src/components/status.jsx:1409 #: src/components/status.jsx:1390
#: src/pages/filters.jsx:603 #: src/pages/filters.jsx:603
#: src/pages/scheduled-posts.jsx:367 #: src/pages/scheduled-posts.jsx:367
msgid "Delete…" msgid "Delete…"
@ -1188,9 +1188,9 @@ msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:175 #: src/components/keyboard-shortcuts-help.jsx:175
#: src/components/status.jsx:1016 #: src/components/status.jsx:1016
#: src/components/status.jsx:2485 #: src/components/status.jsx:2466
#: src/components/status.jsx:2508 #: src/components/status.jsx:2489
#: src/components/status.jsx:2509 #: src/components/status.jsx:2490
msgid "Boost" msgid "Boost"
msgstr "" msgstr ""
@ -1200,8 +1200,8 @@ msgstr ""
#: src/components/keyboard-shortcuts-help.jsx:183 #: src/components/keyboard-shortcuts-help.jsx:183
#: src/components/status.jsx:1079 #: src/components/status.jsx:1079
#: src/components/status.jsx:2533 #: src/components/status.jsx:2514
#: src/components/status.jsx:2534 #: src/components/status.jsx:2515
msgid "Bookmark" msgid "Bookmark"
msgstr "" msgstr ""
@ -1260,15 +1260,14 @@ msgid "Media description"
msgstr "" msgstr ""
#: src/components/media-alt-modal.jsx:58 #: src/components/media-alt-modal.jsx:58
#: src/components/status.jsx:1123 #: src/components/status.jsx:1119
#: src/components/status.jsx:1150 #: src/components/status.jsx:1128
#: src/components/translation-block.jsx:215 #: src/components/translation-block.jsx:215
msgid "Translate" msgid "Translate"
msgstr "" msgstr ""
#: src/components/media-alt-modal.jsx:69 #: src/components/media-alt-modal.jsx:69
#: src/components/status.jsx:1137 #: src/components/status.jsx:1147
#: src/components/status.jsx:1164
msgid "Speak" msgid "Speak"
msgstr "" msgstr ""
@ -1305,9 +1304,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr "" msgstr ""
#: src/components/media-post.jsx:134 #: src/components/media-post.jsx:134
#: src/components/status.jsx:3628 #: src/components/status.jsx:3609
#: src/components/status.jsx:3724 #: src/components/status.jsx:3705
#: src/components/status.jsx:3802 #: src/components/status.jsx:3783
#: src/components/timeline.jsx:982 #: src/components/timeline.jsx:982
#: src/pages/catchup.jsx:76 #: src/pages/catchup.jsx:76
#: src/pages/catchup.jsx:1876 #: src/pages/catchup.jsx:1876
@ -1948,7 +1947,7 @@ msgid "Move down"
msgstr "" msgstr ""
#: src/components/shortcuts-settings.jsx:379 #: src/components/shortcuts-settings.jsx:379
#: src/components/status.jsx:1371 #: src/components/status.jsx:1352
#: src/pages/list.jsx:171 #: src/pages/list.jsx:171
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
@ -2186,25 +2185,25 @@ msgstr ""
#: src/components/status.jsx:1016 #: src/components/status.jsx:1016
#: src/components/status.jsx:1056 #: src/components/status.jsx:1056
#: src/components/status.jsx:2485 #: src/components/status.jsx:2466
#: src/components/status.jsx:2508 #: src/components/status.jsx:2489
msgid "Unboost" msgid "Unboost"
msgstr "" msgstr ""
#: src/components/status.jsx:1032 #: src/components/status.jsx:1032
#: src/components/status.jsx:2500 #: src/components/status.jsx:2481
msgid "Quote" msgid "Quote"
msgstr "" msgstr ""
#. placeholder {0}: username || acct #. placeholder {0}: username || acct
#: src/components/status.jsx:1044 #: src/components/status.jsx:1044
#: src/components/status.jsx:1499 #: src/components/status.jsx:1480
msgid "Unboosted @{0}'s post" msgid "Unboosted @{0}'s post"
msgstr "Unboosted @{0}'s post" msgstr "Unboosted @{0}'s post"
#. placeholder {0}: username || acct #. placeholder {0}: username || acct
#: src/components/status.jsx:1045 #: src/components/status.jsx:1045
#: src/components/status.jsx:1500 #: src/components/status.jsx:1481
msgid "Boosted @{0}'s post" msgid "Boosted @{0}'s post"
msgstr "Boosted @{0}'s post" msgstr "Boosted @{0}'s post"
@ -2213,247 +2212,247 @@ msgid "Boost…"
msgstr "" msgstr ""
#: src/components/status.jsx:1069 #: src/components/status.jsx:1069
#: src/components/status.jsx:1784 #: src/components/status.jsx:1765
#: src/components/status.jsx:2521 #: src/components/status.jsx:2502
msgid "Unlike" msgid "Unlike"
msgstr "" msgstr ""
#: src/components/status.jsx:1070 #: src/components/status.jsx:1070
#: src/components/status.jsx:1784 #: src/components/status.jsx:1765
#: src/components/status.jsx:1785 #: src/components/status.jsx:1766
#: src/components/status.jsx:2521 #: src/components/status.jsx:2502
#: src/components/status.jsx:2522 #: src/components/status.jsx:2503
msgid "Like" msgid "Like"
msgstr "" msgstr ""
#: src/components/status.jsx:1079 #: src/components/status.jsx:1079
#: src/components/status.jsx:2533 #: src/components/status.jsx:2514
msgid "Unbookmark" msgid "Unbookmark"
msgstr "" msgstr ""
#. placeholder {0}: username || acct #. placeholder {0}: username || acct
#: src/components/status.jsx:1187 #: src/components/status.jsx:1168
msgid "View post by <0>@{0}</0>" msgid "View post by <0>@{0}</0>"
msgstr "" msgstr ""
#: src/components/status.jsx:1208 #: src/components/status.jsx:1189
msgid "Show Edit History" msgid "Show Edit History"
msgstr "" msgstr ""
#: src/components/status.jsx:1211 #: src/components/status.jsx:1192
msgid "Edited: {editedDateText}" msgid "Edited: {editedDateText}"
msgstr "" msgstr ""
#: src/components/status.jsx:1278 #: src/components/status.jsx:1259
#: src/components/status.jsx:3294 #: src/components/status.jsx:3275
msgid "Embed post" msgid "Embed post"
msgstr "" msgstr ""
#: src/components/status.jsx:1292 #: src/components/status.jsx:1273
msgid "Conversation unmuted" msgid "Conversation unmuted"
msgstr "" msgstr ""
#: src/components/status.jsx:1292 #: src/components/status.jsx:1273
msgid "Conversation muted" msgid "Conversation muted"
msgstr "" msgstr ""
#: src/components/status.jsx:1298 #: src/components/status.jsx:1279
msgid "Unable to unmute conversation" msgid "Unable to unmute conversation"
msgstr "" msgstr ""
#: src/components/status.jsx:1299 #: src/components/status.jsx:1280
msgid "Unable to mute conversation" msgid "Unable to mute conversation"
msgstr "" msgstr ""
#: src/components/status.jsx:1308 #: src/components/status.jsx:1289
msgid "Unmute conversation" msgid "Unmute conversation"
msgstr "" msgstr ""
#: src/components/status.jsx:1315 #: src/components/status.jsx:1296
msgid "Mute conversation" msgid "Mute conversation"
msgstr "" msgstr ""
#: src/components/status.jsx:1331 #: src/components/status.jsx:1312
msgid "Post unpinned from profile" msgid "Post unpinned from profile"
msgstr "" msgstr ""
#: src/components/status.jsx:1332 #: src/components/status.jsx:1313
msgid "Post pinned to profile" msgid "Post pinned to profile"
msgstr "" msgstr ""
#: src/components/status.jsx:1337 #: src/components/status.jsx:1318
msgid "Unable to unpin post" msgid "Unable to unpin post"
msgstr "" msgstr ""
#: src/components/status.jsx:1337 #: src/components/status.jsx:1318
msgid "Unable to pin post" msgid "Unable to pin post"
msgstr "" msgstr ""
#: src/components/status.jsx:1346 #: src/components/status.jsx:1327
msgid "Unpin from profile" msgid "Unpin from profile"
msgstr "" msgstr ""
#: src/components/status.jsx:1353 #: src/components/status.jsx:1334
msgid "Pin to profile" msgid "Pin to profile"
msgstr "" msgstr ""
#: src/components/status.jsx:1382 #: src/components/status.jsx:1363
msgid "Delete this post?" msgid "Delete this post?"
msgstr "" msgstr ""
#: src/components/status.jsx:1398 #: src/components/status.jsx:1379
msgid "Post deleted" msgid "Post deleted"
msgstr "" msgstr ""
#: src/components/status.jsx:1401 #: src/components/status.jsx:1382
msgid "Unable to delete post" msgid "Unable to delete post"
msgstr "" msgstr ""
#: src/components/status.jsx:1429 #: src/components/status.jsx:1410
msgid "Report post…" msgid "Report post…"
msgstr "" msgstr ""
#: src/components/status.jsx:1785 #: src/components/status.jsx:1766
#: src/components/status.jsx:1821 #: src/components/status.jsx:1802
#: src/components/status.jsx:2522 #: src/components/status.jsx:2503
msgid "Liked" msgid "Liked"
msgstr "" msgstr ""
#: src/components/status.jsx:1818 #: src/components/status.jsx:1799
#: src/components/status.jsx:2509 #: src/components/status.jsx:2490
msgid "Boosted" msgid "Boosted"
msgstr "" msgstr ""
#: src/components/status.jsx:1828 #: src/components/status.jsx:1809
#: src/components/status.jsx:2534 #: src/components/status.jsx:2515
msgid "Bookmarked" msgid "Bookmarked"
msgstr "" msgstr ""
#: src/components/status.jsx:1832 #: src/components/status.jsx:1813
msgid "Pinned" msgid "Pinned"
msgstr "" msgstr ""
#: src/components/status.jsx:1878 #: src/components/status.jsx:1859
#: src/components/status.jsx:2346 #: src/components/status.jsx:2327
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr ""
#: src/components/status.jsx:1919 #: src/components/status.jsx:1900
msgid "{repliesCount, plural, one {# reply} other {# replies}}" msgid "{repliesCount, plural, one {# reply} other {# replies}}"
msgstr "" msgstr ""
#. placeholder {0}: snapStates.statusThreadNumber[sKey] ? ` ${snapStates.statusThreadNumber[sKey]}/X` : '' #. placeholder {0}: snapStates.statusThreadNumber[sKey] ? ` ${snapStates.statusThreadNumber[sKey]}/X` : ''
#: src/components/status.jsx:2009 #: src/components/status.jsx:1990
msgid "Thread{0}" msgid "Thread{0}"
msgstr "" msgstr ""
#: src/components/status.jsx:2087 #: src/components/status.jsx:2068
#: src/components/status.jsx:2149 #: src/components/status.jsx:2130
#: src/components/status.jsx:2242 #: src/components/status.jsx:2223
msgid "Show less" msgid "Show less"
msgstr "" msgstr ""
#: src/components/status.jsx:2087 #: src/components/status.jsx:2068
#: src/components/status.jsx:2149 #: src/components/status.jsx:2130
msgid "Show content" msgid "Show content"
msgstr "" msgstr ""
#. placeholder {0}: filterInfo.titlesStr #. placeholder {0}: filterInfo.titlesStr
#. placeholder {0}: filterInfo?.titlesStr #. placeholder {0}: filterInfo?.titlesStr
#: src/components/status.jsx:2238 #: src/components/status.jsx:2219
#: src/pages/catchup.jsx:1875 #: src/pages/catchup.jsx:1875
msgid "Filtered: {0}" msgid "Filtered: {0}"
msgstr "Filtered: {0}" msgstr "Filtered: {0}"
#: src/components/status.jsx:2242 #: src/components/status.jsx:2223
msgid "Show media" msgid "Show media"
msgstr "" msgstr ""
#: src/components/status.jsx:2382 #: src/components/status.jsx:2363
msgid "Edited" msgid "Edited"
msgstr "" msgstr ""
#: src/components/status.jsx:2459 #: src/components/status.jsx:2440
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
#. More from [Author] #. More from [Author]
#: src/components/status.jsx:2752 #: src/components/status.jsx:2733
msgid "More from <0/>" msgid "More from <0/>"
msgstr "More from <0/>" msgstr "More from <0/>"
#: src/components/status.jsx:3054 #: src/components/status.jsx:3035
msgid "Edit History" msgid "Edit History"
msgstr "" msgstr ""
#: src/components/status.jsx:3058 #: src/components/status.jsx:3039
msgid "Failed to load history" msgid "Failed to load history"
msgstr "" msgstr ""
#: src/components/status.jsx:3063 #: src/components/status.jsx:3044
#: src/pages/annual-report.jsx:45 #: src/pages/annual-report.jsx:45
msgid "Loading…" msgid "Loading…"
msgstr "" msgstr ""
#: src/components/status.jsx:3299 #: src/components/status.jsx:3280
msgid "HTML Code" msgid "HTML Code"
msgstr "" msgstr ""
#: src/components/status.jsx:3316 #: src/components/status.jsx:3297
msgid "HTML code copied" msgid "HTML code copied"
msgstr "" msgstr ""
#: src/components/status.jsx:3319 #: src/components/status.jsx:3300
msgid "Unable to copy HTML code" msgid "Unable to copy HTML code"
msgstr "" msgstr ""
#: src/components/status.jsx:3331 #: src/components/status.jsx:3312
msgid "Media attachments:" msgid "Media attachments:"
msgstr "" msgstr ""
#: src/components/status.jsx:3353 #: src/components/status.jsx:3334
msgid "Account Emojis:" msgid "Account Emojis:"
msgstr "" msgstr ""
#: src/components/status.jsx:3384 #: src/components/status.jsx:3365
#: src/components/status.jsx:3429 #: src/components/status.jsx:3410
msgid "static URL" msgid "static URL"
msgstr "" msgstr ""
#: src/components/status.jsx:3398 #: src/components/status.jsx:3379
msgid "Emojis:" msgid "Emojis:"
msgstr "" msgstr ""
#: src/components/status.jsx:3443 #: src/components/status.jsx:3424
msgid "Notes:" msgid "Notes:"
msgstr "" msgstr ""
#: src/components/status.jsx:3447 #: src/components/status.jsx:3428
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed." msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "" msgstr ""
#: src/components/status.jsx:3453 #: src/components/status.jsx:3434
msgid "Polls are not interactive, becomes a list with vote counts." msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "" msgstr ""
#: src/components/status.jsx:3458 #: src/components/status.jsx:3439
msgid "Media attachments can be images, videos, audios or any file types." msgid "Media attachments can be images, videos, audios or any file types."
msgstr "" msgstr ""
#: src/components/status.jsx:3464 #: src/components/status.jsx:3445
msgid "Post could be edited or deleted later." msgid "Post could be edited or deleted later."
msgstr "" msgstr ""
#: src/components/status.jsx:3470 #: src/components/status.jsx:3451
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: src/components/status.jsx:3479 #: src/components/status.jsx:3460
msgid "Note: This preview is lightly styled." msgid "Note: This preview is lightly styled."
msgstr "" msgstr ""
#. [Name] [Visibility icon] boosted #. [Name] [Visibility icon] boosted
#: src/components/status.jsx:3732 #: src/components/status.jsx:3713
msgid "<0/> <1/> boosted" msgid "<0/> <1/> boosted"
msgstr "" msgstr ""