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