this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

All the updates for Lingui v5

Possibly might break if I accidentally miss something

+845 -922
+2 -1
src/components/account-block.jsx
··· 1 1 import './account-block.css'; 2 2 3 - import { Plural, t, Trans } from '@lingui/macro'; 3 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 4 4 5 5 // import { useNavigate } from 'react-router-dom'; 6 6 import enhanceContent from '../utils/enhance-content'; ··· 28 28 relationship = {}, 29 29 excludeRelationshipAttrs = [], 30 30 }) { 31 + const { t } = useLingui(); 31 32 if (skeleton) { 32 33 return ( 33 34 <div class="account-block skeleton">
+4 -4
src/components/account-info.jsx
··· 1 1 import './account-info.css'; 2 2 3 - import { msg, plural, t, Trans } from '@lingui/macro'; 4 - import { useLingui } from '@lingui/react'; 3 + import { msg, plural } from '@lingui/core/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { MenuDivider, MenuItem } from '@szhsin/react-menu'; 6 6 import { 7 7 useCallback, ··· 24 24 import shortenNumber from '../utils/shorten-number'; 25 25 import showCompose from '../utils/show-compose'; 26 26 import showToast from '../utils/show-toast'; 27 - import states, { hideAllModals } from '../utils/states'; 27 + import states from '../utils/states'; 28 28 import store from '../utils/store'; 29 29 import { getCurrentAccountID, updateAccount } from '../utils/store-utils'; 30 30 import supports from '../utils/supports'; ··· 135 135 instance, 136 136 authenticated, 137 137 }) { 138 - const { i18n } = useLingui(); 138 + const { i18n, t } = useLingui(); 139 139 const { masto } = api({ 140 140 instance, 141 141 });
+2 -1
src/components/account-sheet.jsx
··· 1 - import { t } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useEffect } from 'preact/hooks'; 3 3 4 4 import { api } from '../utils/api'; ··· 9 9 import Icon from './icon'; 10 10 11 11 function AccountSheet({ account, instance: propInstance, onClose }) { 12 + const { t } = useLingui(); 12 13 const { masto, instance, authenticated } = api({ instance: propInstance }); 13 14 const isString = typeof account === 'string'; 14 15
+3 -1
src/components/background-service.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { memo } from 'preact/compat'; 3 3 import { useEffect, useRef, useState } from 'preact/hooks'; 4 4 import { useHotkeys } from 'react-hotkeys-hook'; ··· 13 13 const POLL_INTERVAL = 20_000; // 20 seconds 14 14 15 15 export default memo(function BackgroundService({ isLoggedIn }) { 16 + const { t } = useLingui(); 17 + 16 18 // Notifications service 17 19 // - WebSocket to receive notifications when page is visible 18 20 const [visible, setVisible] = useState(true);
+2 -1
src/components/columns.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useHotkeys } from 'react-hotkeys-hook'; 3 3 import { useSnapshot } from 'valtio'; 4 4 ··· 23 23 }; 24 24 25 25 function Columns() { 26 + const { t } = useLingui(); 26 27 useTitle(t`Home`, '/'); 27 28 const snapStates = useSnapshot(states); 28 29 const { shortcuts } = snapStates;
+2 -1
src/components/compose-button.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useHotkeys } from 'react-hotkeys-hook'; 3 3 import { useSnapshot } from 'valtio'; 4 4 ··· 9 9 import Icon from './icon'; 10 10 11 11 export default function ComposeButton() { 12 + const { t } = useLingui(); 12 13 const snapStates = useSnapshot(states); 13 14 14 15 function handleButton(e) {
+4 -4
src/components/compose.jsx
··· 1 1 import './compose.css'; 2 2 import '@github/text-expander-element'; 3 3 4 - import { msg, plural, t, Trans } from '@lingui/macro'; 5 - import { useLingui } from '@lingui/react'; 4 + import { msg, plural } from '@lingui/core/macro'; 5 + import { Trans, useLingui } from '@lingui/react/macro'; 6 6 import { MenuItem } from '@szhsin/react-menu'; 7 7 import { deepEqual } from 'fast-equals'; 8 8 import Fuse from 'fuse.js'; ··· 217 217 standalone, 218 218 hasOpener, 219 219 }) { 220 - const { i18n, _ } = useLingui(); 220 + const { i18n, _, t } = useLingui(); 221 221 const rtf = RTF(i18n.locale); 222 222 const lf = LF(i18n.locale); 223 223 ··· 2244 2244 onDescriptionChange = () => {}, 2245 2245 onRemove = () => {}, 2246 2246 }) { 2247 - const { i18n } = useLingui(); 2247 + const { i18n, t } = useLingui(); 2248 2248 const [uiState, setUIState] = useState('default'); 2249 2249 const supportsEdit = supports('@mastodon/edit-media-attributes'); 2250 2250 const { type, id, file } = attachment;
+2 -1
src/components/drafts.jsx
··· 1 1 import './drafts.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { useEffect, useMemo, useReducer, useState } from 'react'; 5 5 6 6 import { api } from '../utils/api'; ··· 14 14 import MenuConfirm from './menu-confirm'; 15 15 16 16 function Drafts({ onClose }) { 17 + const { t } = useLingui(); 17 18 const { masto } = api(); 18 19 const [uiState, setUIState] = useState('default'); 19 20 const [drafts, setDrafts] = useState([]);
+2 -1
src/components/embed-modal.jsx
··· 1 1 import './embed-modal.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 5 5 import Icon from './icon'; 6 6 7 7 function EmbedModal({ html, url, width, height, onClose = () => {} }) { 8 + const { t } = useLingui(); 8 9 return ( 9 10 <div class="embed-modal-container"> 10 11 <div class="top-controls">
+2 -1
src/components/follow-request-buttons.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { useState } from 'preact/hooks'; 3 3 4 4 import { api } from '../utils/api'; ··· 7 7 import Loader from './loader'; 8 8 9 9 function FollowRequestButtons({ accountID, onChange }) { 10 + const { t } = useLingui(); 10 11 const { masto } = api(); 11 12 const [uiState, setUIState] = useState('default'); 12 13 const [requestState, setRequestState] = useState(null); // accept, reject
+6 -3
src/components/generic-accounts.jsx
··· 1 1 import './generic-accounts.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { useEffect, useRef, useState } from 'preact/hooks'; 5 5 import { InView } from 'react-intersection-observer'; 6 6 import { useSnapshot } from 'valtio'; ··· 21 21 excludeRelationshipAttrs = [], 22 22 postID, 23 23 onClose = () => {}, 24 - blankCopy = t`Nothing to show`, 24 + blankCopy, 25 25 }) { 26 + const { t } = useLingui(); 26 27 const { masto, instance: currentInstance } = api(); 27 28 const isCurrentInstance = instance ? instance === currentInstance : true; 28 29 const snapStates = useSnapshot(states); ··· 227 228 <Trans>Error loading accounts</Trans> 228 229 </p> 229 230 ) : ( 230 - <p class="ui-state insignificant">{blankCopy}</p> 231 + <p class="ui-state insignificant"> 232 + {blankCopy || t`Nothing to show`} 233 + </p> 231 234 )} 232 235 </main> 233 236 </div>
+2 -1
src/components/keyboard-shortcuts-help.jsx
··· 1 1 import './keyboard-shortcuts-help.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { memo } from 'preact/compat'; 5 5 import { useHotkeys } from 'react-hotkeys-hook'; 6 6 import { useSnapshot } from 'valtio'; ··· 11 11 import Modal from './modal'; 12 12 13 13 export default memo(function KeyboardShortcutsHelp() { 14 + const { t } = useLingui(); 14 15 const snapStates = useSnapshot(states); 15 16 16 17 function onClose() {
+2 -1
src/components/list-add-edit.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { useEffect, useRef, useState } from 'preact/hooks'; 3 3 4 4 import { api } from '../utils/api'; ··· 9 9 import MenuConfirm from './menu-confirm'; 10 10 11 11 function ListAddEdit({ list, onClose }) { 12 + const { t } = useLingui(); 12 13 const { masto } = api(); 13 14 const [uiState, setUIState] = useState('default'); 14 15 const editMode = !!list;
+2 -1
src/components/media-alt-modal.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { Menu, MenuItem } from '@szhsin/react-menu'; 3 3 import { useState } from 'preact/hooks'; 4 4 import { useSnapshot } from 'valtio'; ··· 13 13 import TranslationBlock from './translation-block'; 14 14 15 15 export default function MediaAltModal({ alt, lang, onClose }) { 16 + const { t } = useLingui(); 16 17 const snapStates = useSnapshot(states); 17 18 const [forceTranslate, setForceTranslate] = useState(false); 18 19 const targetLanguage = getTranslateTargetLanguage(true);
+2 -1
src/components/media-modal.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { MenuDivider, MenuItem } from '@szhsin/react-menu'; 3 3 import { getBlurHashAverageColor } from 'fast-blurhash'; 4 4 import { ··· 32 32 index = 0, 33 33 onClose = () => {}, 34 34 }) { 35 + const { t } = useLingui(); 35 36 const [uiState, setUIState] = useState('default'); 36 37 const carouselRef = useRef(null); 37 38
+2 -1
src/components/media-post.jsx
··· 1 1 import './media-post.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { memo } from 'preact/compat'; 5 5 import { useContext, useMemo } from 'preact/hooks'; 6 6 import { useSnapshot } from 'valtio'; ··· 22 22 // allowFilters, 23 23 onMediaClick, 24 24 }) { 25 + const { t } = useLingui(); 25 26 let sKey = statusKey(statusID, instance); 26 27 const snapStates = useSnapshot(states); 27 28 if (!status) {
+2 -1
src/components/media.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { getBlurHashAverageColor } from 'fast-blurhash'; 3 3 import { Fragment } from 'preact'; 4 4 import { memo } from 'preact/compat'; ··· 32 32 33 33 const dataAltLabel = 'ALT'; 34 34 const AltBadge = (props) => { 35 + const { t } = useLingui(); 35 36 const { alt, lang, index, ...rest } = props; 36 37 if (!alt || !alt.trim()) return null; 37 38 return (
+2 -1
src/components/modals.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useEffect } from 'preact/hooks'; 3 3 import { useLocation, useNavigate } from 'react-router-dom'; 4 4 import { subscribe, useSnapshot } from 'valtio'; ··· 30 30 }); 31 31 32 32 export default function Modals() { 33 + const { t } = useLingui(); 33 34 const snapStates = useSnapshot(states); 34 35 const navigate = useNavigate(); 35 36 const location = useLocation();
+2 -1
src/components/nav-menu.jsx
··· 1 1 import './nav-menu.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { ControlledMenu, MenuDivider, MenuItem } from '@szhsin/react-menu'; 5 5 import { memo } from 'preact/compat'; 6 6 import { useEffect, useMemo, useRef, useState } from 'preact/hooks'; ··· 21 21 import SubMenu2 from './submenu2'; 22 22 23 23 function NavMenu(props) { 24 + const { t } = useLingui(); 24 25 const snapStates = useSnapshot(states); 25 26 const { masto, instance, authenticated } = api(); 26 27
+2 -1
src/components/notification-service.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { memo } from 'preact/compat'; 3 3 import { useLayoutEffect, useState } from 'preact/hooks'; 4 4 import { useSnapshot } from 'valtio'; ··· 33 33 } 34 34 35 35 export default memo(function NotificationService() { 36 + const { t } = useLingui(); 36 37 if (!('serviceWorker' in navigator)) return null; 37 38 38 39 const snapStates = useSnapshot(states);
+2 -2
src/components/notification.jsx
··· 1 - import { msg, Plural, Select, t, Trans } from '@lingui/macro'; 2 - import { useLingui } from '@lingui/react'; 1 + import { msg, t } from '@lingui/core/macro'; 2 + import { Plural, Select, Trans, useLingui } from '@lingui/react/macro'; 3 3 import { Fragment } from 'preact'; 4 4 import { memo } from 'preact/compat'; 5 5
+3 -1
src/components/poll.jsx
··· 1 - import { Plural, plural, t, Trans } from '@lingui/macro'; 1 + import { plural } from '@lingui/core/macro'; 2 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 2 3 import { useState } from 'preact/hooks'; 3 4 4 5 import shortenNumber from '../utils/shorten-number'; ··· 14 15 refresh = () => {}, 15 16 votePoll = () => {}, 16 17 }) { 18 + const { t } = useLingui(); 17 19 const [uiState, setUIState] = useState('default'); 18 20 const { 19 21 expired,
+1 -1
src/components/relative-time.jsx
··· 1 1 import { i18n } from '@lingui/core'; 2 - import { t, Trans } from '@lingui/macro'; 2 + import { t } from '@lingui/core/macro'; 3 3 import { useEffect, useMemo, useReducer } from 'preact/hooks'; 4 4 5 5 import localeMatch from '../utils/locale-match';
+3 -3
src/components/report-modal.jsx
··· 1 1 import './report-modal.css'; 2 2 3 - import { msg, t, Trans } from '@lingui/macro'; 4 - import { useLingui } from '@lingui/react'; 3 + import { msg } from '@lingui/core/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { Fragment } from 'preact'; 6 6 import { useMemo, useRef, useState } from 'preact/hooks'; 7 7 ··· 46 46 }; 47 47 48 48 function ReportModal({ account, post, onClose }) { 49 - const { _ } = useLingui(); 49 + const { _, t } = useLingui(); 50 50 const { masto } = api(); 51 51 const [uiState, setUIState] = useState('default'); 52 52 const [username, domain] = account.acct.split('@');
+2 -1
src/components/search-form.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { forwardRef } from 'preact/compat'; 3 3 import { useImperativeHandle, useRef, useState } from 'preact/hooks'; 4 4 import { useSearchParams } from 'react-router-dom'; ··· 9 9 import Link from './link'; 10 10 11 11 const SearchForm = forwardRef((props, ref) => { 12 + const { t } = useLingui(); 12 13 const { instance } = api(); 13 14 const [searchParams, setSearchParams] = useSearchParams(); 14 15 const [searchMenuOpen, setSearchMenuOpen] = useState(false);
+2 -2
src/components/shortcuts-settings.jsx
··· 1 1 import './shortcuts-settings.css'; 2 2 3 3 import { useAutoAnimate } from '@formkit/auto-animate/preact'; 4 - import { msg, Plural, t, Trans } from '@lingui/macro'; 5 - import { useLingui } from '@lingui/react'; 4 + import { msg, t } from '@lingui/core/macro'; 5 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 6 6 import { 7 7 compressToEncodedURIComponent, 8 8 decompressFromEncodedURIComponent,
+2 -2
src/components/shortcuts.jsx
··· 1 1 import './shortcuts.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 4 - import { useLingui } from '@lingui/react'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 5 4 import { MenuDivider } from '@szhsin/react-menu'; 6 5 import { memo } from 'preact/compat'; 7 6 import { useRef, useState } from 'preact/hooks'; ··· 22 21 import SubMenu2 from './submenu2'; 23 22 24 23 function Shortcuts() { 24 + const { t } = useLingui(); 25 25 const { _ } = useLingui(); 26 26 const { instance } = api(); 27 27 const snapStates = useSnapshot(states);
+6 -4
src/components/status.jsx
··· 1 1 import './status.css'; 2 2 import '@justinribeiro/lite-youtube'; 3 3 4 - import { msg, plural, Plural, t, Trans } from '@lingui/macro'; 5 - import { useLingui } from '@lingui/react'; 4 + import { msg, plural } from '@lingui/core/macro'; 5 + import { Trans, useLingui } from '@lingui/react/macro'; 6 6 import { 7 7 ControlledMenu, 8 8 Menu, ··· 308 308 showReplyParent, 309 309 mediaFirst, 310 310 }) { 311 - const { _ } = useLingui(); 311 + const { _, t } = useLingui(); 312 312 313 313 if (skeleton) { 314 314 return ( ··· 2967 2967 fetchStatusHistory = () => {}, 2968 2968 onClose, 2969 2969 }) { 2970 + const { t } = useLingui(); 2970 2971 const [uiState, setUIState] = useState('default'); 2971 2972 const [editHistory, setEditHistory] = useState([]); 2972 2973 ··· 3202 3203 } 3203 3204 3204 3205 function EmbedModal({ post, instance, onClose }) { 3206 + const { t } = useLingui(); 3205 3207 const { 3206 3208 account: { 3207 3209 url: accountURL, ··· 3578 3580 showFollowedTags, 3579 3581 quoted, 3580 3582 }) { 3581 - const { _ } = useLingui(); 3583 + const { _, t } = useLingui(); 3582 3584 const snapStates = useSnapshot(states); 3583 3585 const { 3584 3586 id: statusID,
+6 -1
src/components/timeline.jsx
··· 1 - import { plural, t, Trans } from '@lingui/macro'; 1 + import { plural } from '@lingui/core/macro'; 2 + import { Trans, useLingui } from '@lingui/react/macro'; 2 3 import { memo } from 'preact/compat'; 3 4 import { 4 5 useCallback, ··· 60 61 showReplyParent, 61 62 clearWhenRefresh, 62 63 }) { 64 + const { t } = useLingui(); 63 65 const snapStates = useSnapshot(states); 64 66 const [items, setItems] = useState([]); 65 67 const [uiState, setUIState] = useState('start'); ··· 573 575 showReplyParent, 574 576 mediaFirst, 575 577 }) => { 578 + const { t } = useLingui(); 576 579 console.debug('RENDER TimelineItem', status.id); 577 580 const { id: statusID, reblog, items, type, _pinned } = status; 578 581 if (_pinned) useItemID = false; ··· 836 839 ); 837 840 838 841 function StatusCarousel({ title, class: className, children }) { 842 + const { t } = useLingui(); 839 843 const carouselRef = useRef(); 840 844 // const { reachStart, reachEnd, init } = useScroll({ 841 845 // scrollableRef: carouselRef, ··· 929 933 } 930 934 931 935 function TimelineStatusCompact({ status, instance, filterContext }) { 936 + const { t } = useLingui(); 932 937 const snapStates = useSnapshot(states); 933 938 const { id, visibility, language } = status; 934 939 const statusPeekText = statusPeek(status);
+2 -1
src/components/translation-block.jsx
··· 1 1 import './translation-block.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import pRetry from 'p-retry'; 5 5 import pThrottle from 'p-throttle'; 6 6 import { useEffect, useRef, useState } from 'preact/hooks'; ··· 80 80 mini, 81 81 autoDetected, 82 82 }) { 83 + const { t } = useLingui(); 83 84 const targetLang = getTranslateTargetLanguage(true); 84 85 const [uiState, setUIState] = useState('default'); 85 86 const [pronunciationContent, setPronunciationContent] = useState(null);
+3 -2
src/compose.jsx
··· 3 3 import './polyfills'; 4 4 5 5 import { i18n } from '@lingui/core'; 6 - import { t, Trans } from '@lingui/macro'; 7 6 import { I18nProvider } from '@lingui/react'; 7 + import { Trans, useLingui } from '@lingui/react/macro'; 8 8 import { render } from 'preact'; 9 9 import { useEffect, useState } from 'preact/hooks'; 10 10 ··· 12 12 import Loader from './components/loader'; 13 13 import { initActivateLang } from './utils/lang'; 14 14 import { initStates } from './utils/states'; 15 - import { getCurrentAccount, setCurrentAccountID } from './utils/store-utils'; 15 + import { getCurrentAccount } from './utils/store-utils'; 16 16 import useTitle from './utils/useTitle'; 17 17 18 18 initActivateLang(); ··· 22 22 } 23 23 24 24 function App() { 25 + const { t } = useLingui(); 25 26 const [uiState, setUIState] = useState('default'); 26 27 const [isLoggedIn, setIsLoggedIn] = useState(null); 27 28
+703 -837
src/locales/en.po
··· 13 13 "Language-Team: \n" 14 14 "Plural-Forms: \n" 15 15 16 - #: src/components/account-block.jsx:135 16 + #: src/components/account-block.jsx:136 17 17 msgid "Locked" 18 18 msgstr "" 19 19 20 20 #. placeholder {0}: shortenNumber(statusesCount) 21 - #: src/components/account-block.jsx:141 21 + #: src/components/account-block.jsx:142 22 22 msgid "Posts: {0}" 23 23 msgstr "" 24 24 25 25 #. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, }) 26 - #: src/components/account-block.jsx:146 26 + #: src/components/account-block.jsx:147 27 27 msgid "Last posted: {0}" 28 28 msgstr "" 29 29 30 - #: src/components/account-block.jsx:161 30 + #: src/components/account-block.jsx:162 31 31 #: src/components/account-info.jsx:636 32 32 msgid "Automated" 33 33 msgstr "" 34 34 35 - #: src/components/account-block.jsx:168 35 + #: src/components/account-block.jsx:169 36 36 #: src/components/account-info.jsx:641 37 37 #: src/components/status.jsx:514 38 38 msgid "Group" 39 39 msgstr "" 40 40 41 - #: src/components/account-block.jsx:178 41 + #: src/components/account-block.jsx:179 42 42 msgid "Mutual" 43 43 msgstr "" 44 44 45 - #: src/components/account-block.jsx:182 45 + #: src/components/account-block.jsx:183 46 46 #: src/components/account-info.jsx:1682 47 47 msgid "Requested" 48 48 msgstr "" 49 49 50 - #: src/components/account-block.jsx:186 50 + #: src/components/account-block.jsx:187 51 51 #: src/components/account-info.jsx:1673 52 52 msgid "Following" 53 53 msgstr "" 54 54 55 - #: src/components/account-block.jsx:190 55 + #: src/components/account-block.jsx:191 56 56 #: src/components/account-info.jsx:1064 57 57 msgid "Follows you" 58 58 msgstr "" 59 59 60 - #: src/components/account-block.jsx:198 60 + #: src/components/account-block.jsx:199 61 61 msgid "{followersCount, plural, one {# follower} other {# followers}}" 62 62 msgstr "" 63 63 64 - #: src/components/account-block.jsx:207 64 + #: src/components/account-block.jsx:208 65 65 #: src/components/account-info.jsx:682 66 66 msgid "Verified" 67 67 msgstr "" 68 68 69 69 #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) 70 70 #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) 71 - #: src/components/account-block.jsx:222 71 + #: src/components/account-block.jsx:223 72 72 #: src/components/account-info.jsx:782 73 73 msgid "Joined <0>{0}</0>" 74 74 msgstr "" ··· 100 100 101 101 #: src/components/account-info.jsx:421 102 102 #: src/components/account-info.jsx:778 103 - #: src/pages/account-statuses.jsx:484 104 - #: src/pages/search.jsx:327 105 - #: src/pages/search.jsx:474 103 + #: src/pages/account-statuses.jsx:483 104 + #: src/pages/search.jsx:328 105 + #: src/pages/search.jsx:475 106 106 msgid "Posts" 107 107 msgstr "" 108 108 109 109 #: src/components/account-info.jsx:429 110 - #: src/components/account-info.jsx:1120 111 110 #: src/components/compose.jsx:2591 112 - #: src/components/media-alt-modal.jsx:45 113 - #: src/components/media-modal.jsx:357 111 + #: src/components/media-alt-modal.jsx:46 112 + #: src/components/media-modal.jsx:358 114 113 #: src/components/status.jsx:1737 115 114 #: src/components/status.jsx:1754 116 115 #: src/components/status.jsx:1878 117 116 #: src/components/status.jsx:2490 118 117 #: src/components/status.jsx:2493 119 - #: src/pages/account-statuses.jsx:528 120 - #: src/pages/accounts.jsx:109 121 - #: src/pages/hashtag.jsx:199 122 - #: src/pages/list.jsx:157 123 - #: src/pages/public.jsx:114 124 - #: src/pages/status.jsx:1212 125 - #: src/pages/trending.jsx:471 118 + #: src/pages/account-statuses.jsx:527 119 + #: src/pages/accounts.jsx:110 120 + #: src/pages/hashtag.jsx:200 121 + #: src/pages/list.jsx:158 122 + #: src/pages/public.jsx:115 123 + #: src/pages/status.jsx:1214 124 + #: src/pages/trending.jsx:472 126 125 msgid "More" 127 126 msgstr "" 128 127 ··· 131 130 msgstr "" 132 131 133 132 #: src/components/account-info.jsx:586 134 - #: src/components/account-info.jsx:1278 135 133 msgid "Handle copied" 136 - msgstr "" 134 + msgstr "Handle copied" 137 135 138 136 #: src/components/account-info.jsx:589 139 - #: src/components/account-info.jsx:1281 140 137 msgid "Unable to copy handle" 141 - msgstr "" 138 + msgstr "Unable to copy handle" 142 139 143 140 #: src/components/account-info.jsx:595 144 141 #: src/components/account-info.jsx:1287 ··· 164 161 #: src/components/account-info.jsx:711 165 162 #: src/components/account-info.jsx:752 166 163 msgid "This user has chosen to not make this information available." 167 - msgstr "" 164 + msgstr "This user has chosen to not make this information available." 168 165 169 166 #. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) 170 167 #. placeholder {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) 171 168 #. placeholder {2}: ( postingStats.boosts / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) 172 169 #: src/components/account-info.jsx:807 173 170 msgid "{0} original posts, {1} replies, {2} boosts" 174 - msgstr "" 171 + msgstr "{0} original posts, {1} replies, {2} boosts" 175 172 176 173 #. placeholder {0}: postingStats.total 177 174 #. placeholder {1}: postingStats.daysSinceLastPost ··· 199 196 #: src/components/status.jsx:2268 200 197 #: src/pages/catchup.jsx:71 201 198 #: src/pages/catchup.jsx:1445 202 - #: src/pages/catchup.jsx:2056 203 - #: src/pages/status.jsx:935 204 - #: src/pages/status.jsx:1557 199 + #: src/pages/catchup.jsx:2058 200 + #: src/pages/status.jsx:937 201 + #: src/pages/status.jsx:1560 205 202 msgid "Replies" 206 203 msgstr "" 207 204 208 205 #: src/components/account-info.jsx:868 209 206 #: src/pages/catchup.jsx:72 210 207 #: src/pages/catchup.jsx:1447 211 - #: src/pages/catchup.jsx:2068 212 - #: src/pages/settings.jsx:1153 208 + #: src/pages/catchup.jsx:2070 209 + #: src/pages/settings.jsx:1155 213 210 msgid "Boosts" 214 211 msgstr "" 215 212 ··· 232 229 233 230 #: src/components/account-info.jsx:1087 234 231 msgid "Blocked" 235 - msgstr "" 236 - 237 - #: src/components/account-info.jsx:1096 238 - msgid "Private note" 239 232 msgstr "" 240 233 241 234 #: src/components/account-info.jsx:1153 ··· 246 239 msgid "Translate bio" 247 240 msgstr "" 248 241 249 - #: src/components/account-info.jsx:1176 250 - msgid "Edit private note" 251 - msgstr "" 252 - 253 - #: src/components/account-info.jsx:1176 254 - msgid "Add private note" 255 - msgstr "" 256 - 257 - #: src/components/account-info.jsx:1196 258 - msgid "Notifications enabled for @{username}'s posts." 259 - msgstr "" 260 - 261 - #: src/components/account-info.jsx:1197 262 - msgid " Notifications disabled for @{username}'s posts." 263 - msgstr " Notifications disabled for @{username}'s posts." 264 - 265 - #: src/components/account-info.jsx:1209 266 - msgid "Disable notifications" 267 - msgstr "" 268 - 269 - #: src/components/account-info.jsx:1210 270 - msgid "Enable notifications" 271 - msgstr "" 272 - 273 - #: src/components/account-info.jsx:1227 274 - msgid "Boosts from @{username} enabled." 275 - msgstr "" 276 - 277 - #: src/components/account-info.jsx:1228 278 - msgid "Boosts from @{username} disabled." 279 - msgstr "" 280 - 281 - #: src/components/account-info.jsx:1239 282 - msgid "Disable boosts" 283 - msgstr "" 284 - 285 - #: src/components/account-info.jsx:1239 286 - msgid "Enable boosts" 287 - msgstr "" 288 - 289 242 #: src/components/account-info.jsx:1255 290 243 #: src/components/account-info.jsx:1265 291 244 #: src/components/account-info.jsx:1866 292 245 msgid "Add/Remove from Lists" 293 246 msgstr "" 294 247 295 - #: src/components/account-info.jsx:1304 296 - #: src/components/status.jsx:1177 297 - msgid "Link copied" 298 - msgstr "" 299 - 300 - #: src/components/account-info.jsx:1307 301 - #: src/components/status.jsx:1180 302 - msgid "Unable to copy link" 303 - msgstr "" 304 - 305 248 #: src/components/account-info.jsx:1313 306 249 #: src/components/shortcuts-settings.jsx:1059 307 250 #: src/components/status.jsx:1186 308 - #: src/components/status.jsx:3267 251 + #: src/components/status.jsx:3269 309 252 msgid "Copy" 310 253 msgstr "" 311 254 312 - #: src/components/account-info.jsx:1328 313 - #: src/components/shortcuts-settings.jsx:1077 314 - #: src/components/status.jsx:1202 315 - msgid "Sharing doesn't seem to work." 316 - msgstr "" 317 - 318 255 #: src/components/account-info.jsx:1334 319 256 #: src/components/status.jsx:1208 320 257 msgid "Share…" 321 258 msgstr "" 322 259 323 - #: src/components/account-info.jsx:1354 324 - msgid "Unmuted @{username}" 325 - msgstr "" 326 - 327 260 #: src/components/account-info.jsx:1366 328 261 msgid "Unmute <0>@{username}</0>" 329 262 msgstr "" ··· 332 265 msgid "Mute <0>@{username}</0>…" 333 266 msgstr "" 334 267 335 - #. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration]) 336 - #: src/components/account-info.jsx:1414 337 - msgid "Muted @{username} for {0}" 338 - msgstr "" 339 - 340 - #: src/components/account-info.jsx:1426 341 - msgid "Unable to mute @{username}" 342 - msgstr "" 343 - 344 268 #: src/components/account-info.jsx:1447 345 269 msgid "Remove <0>@{username}</0> from followers?" 346 270 msgstr "" 347 271 348 - #: src/components/account-info.jsx:1467 349 - msgid "@{username} removed from followers" 350 - msgstr "" 351 - 352 272 #: src/components/account-info.jsx:1479 353 273 msgid "Remove follower…" 354 274 msgstr "" ··· 357 277 msgid "Block <0>@{username}</0>?" 358 278 msgstr "" 359 279 360 - #: src/components/account-info.jsx:1514 361 - msgid "Unblocked @{username}" 362 - msgstr "" 363 - 364 - #: src/components/account-info.jsx:1522 365 - msgid "Blocked @{username}" 366 - msgstr "" 367 - 368 - #: src/components/account-info.jsx:1530 369 - msgid "Unable to unblock @{username}" 370 - msgstr "" 371 - 372 - #: src/components/account-info.jsx:1532 373 - msgid "Unable to block @{username}" 374 - msgstr "" 375 - 376 280 #: src/components/account-info.jsx:1542 377 281 msgid "Unblock <0>@{username}</0>" 378 282 msgstr "" ··· 390 294 msgid "Edit profile" 391 295 msgstr "" 392 296 393 - #: src/components/account-info.jsx:1624 394 - msgid "Withdraw follow request?" 395 - msgstr "" 396 - 397 - #. placeholder {0}: info.acct || info.username 398 - #: src/components/account-info.jsx:1625 399 - msgid "Unfollow @{0}?" 400 - msgstr "" 401 - 402 297 #: src/components/account-info.jsx:1676 403 298 msgid "Unfollow…" 404 299 msgstr "" ··· 408 303 msgstr "" 409 304 410 305 #: src/components/account-info.jsx:1692 411 - #: src/components/account-info.jsx:1696 412 - #: src/pages/hashtag.jsx:261 306 + #: src/pages/hashtag.jsx:262 413 307 msgid "Follow" 414 308 msgstr "" 415 309 416 - #: src/components/account-info.jsx:1807 417 - #: src/components/account-info.jsx:1861 418 - #: src/components/account-info.jsx:1994 419 - #: src/components/account-info.jsx:2094 420 - #: src/components/account-sheet.jsx:37 421 - #: src/components/compose.jsx:859 422 - #: src/components/compose.jsx:2547 423 - #: src/components/compose.jsx:3020 424 - #: src/components/compose.jsx:3228 425 - #: src/components/compose.jsx:3458 426 - #: src/components/drafts.jsx:58 427 - #: src/components/embed-modal.jsx:12 428 - #: src/components/generic-accounts.jsx:142 429 - #: src/components/keyboard-shortcuts-help.jsx:39 430 - #: src/components/list-add-edit.jsx:35 431 - #: src/components/media-alt-modal.jsx:33 432 - #: src/components/media-modal.jsx:321 433 - #: src/components/notification-service.jsx:156 434 - #: src/components/report-modal.jsx:75 435 - #: src/components/shortcuts-settings.jsx:230 436 - #: src/components/shortcuts-settings.jsx:583 437 - #: src/components/shortcuts-settings.jsx:783 438 - #: src/components/status.jsx:2992 439 - #: src/components/status.jsx:3231 440 - #: src/components/status.jsx:3731 441 - #: src/pages/accounts.jsx:36 442 - #: src/pages/catchup.jsx:1581 443 - #: src/pages/filters.jsx:224 444 - #: src/pages/list.jsx:274 445 - #: src/pages/notifications.jsx:915 446 - #: src/pages/notifications.jsx:1129 447 - #: src/pages/settings.jsx:77 448 - #: src/pages/status.jsx:1299 449 - msgid "Close" 450 - msgstr "" 451 - 452 310 #: src/components/account-info.jsx:1812 453 311 msgid "Translated Bio" 454 312 msgstr "" 455 313 456 - #: src/components/account-info.jsx:1906 457 - msgid "Unable to remove from list." 458 - msgstr "" 459 - 460 - #: src/components/account-info.jsx:1907 461 - msgid "Unable to add to list." 462 - msgstr "" 463 - 464 314 #: src/components/account-info.jsx:1926 465 - #: src/pages/lists.jsx:104 315 + #: src/pages/lists.jsx:105 466 316 msgid "Unable to load lists." 467 317 msgstr "" 468 318 ··· 471 321 msgstr "" 472 322 473 323 #: src/components/account-info.jsx:1941 474 - #: src/components/list-add-edit.jsx:39 475 - #: src/pages/lists.jsx:58 324 + #: src/components/list-add-edit.jsx:40 325 + #: src/pages/lists.jsx:59 476 326 msgid "New list" 477 327 msgstr "" 478 328 ··· 481 331 msgid "Private note about <0>@{0}</0>" 482 332 msgstr "" 483 333 484 - #: src/components/account-info.jsx:2029 485 - msgid "Unable to update private note." 486 - msgstr "" 487 - 488 334 #: src/components/account-info.jsx:2052 489 335 #: src/components/account-info.jsx:2222 490 336 msgid "Cancel" ··· 494 340 msgid "Save & close" 495 341 msgstr "" 496 342 497 - #: src/components/account-info.jsx:2150 498 - msgid "Unable to update profile." 499 - msgstr "" 500 - 501 343 #: src/components/account-info.jsx:2157 502 - #: src/components/list-add-edit.jsx:104 344 + #: src/components/list-add-edit.jsx:105 503 345 msgid "Name" 504 346 msgstr "" 505 347 ··· 520 362 msgstr "" 521 363 522 364 #: src/components/account-info.jsx:2225 523 - #: src/components/list-add-edit.jsx:149 365 + #: src/components/list-add-edit.jsx:150 524 366 #: src/components/shortcuts-settings.jsx:715 525 367 #: src/pages/filters.jsx:554 526 368 #: src/pages/notifications.jsx:981 ··· 535 377 msgid "server domain name" 536 378 msgstr "" 537 379 538 - #: src/components/background-service.jsx:149 380 + #: src/components/account-sheet.jsx:38 381 + #: src/components/compose.jsx:859 382 + #: src/components/compose.jsx:2547 383 + #: src/components/drafts.jsx:59 384 + #: src/components/embed-modal.jsx:13 385 + #: src/components/generic-accounts.jsx:143 386 + #: src/components/keyboard-shortcuts-help.jsx:40 387 + #: src/components/list-add-edit.jsx:36 388 + #: src/components/media-alt-modal.jsx:34 389 + #: src/components/media-modal.jsx:322 390 + #: src/components/notification-service.jsx:157 391 + #: src/components/report-modal.jsx:75 392 + #: src/components/shortcuts-settings.jsx:230 393 + #: src/components/shortcuts-settings.jsx:583 394 + #: src/components/shortcuts-settings.jsx:783 395 + #: src/components/status.jsx:2993 396 + #: src/components/status.jsx:3233 397 + #: src/components/status.jsx:3733 398 + #: src/pages/accounts.jsx:37 399 + #: src/pages/catchup.jsx:1581 400 + #: src/pages/filters.jsx:224 401 + #: src/pages/list.jsx:276 402 + #: src/pages/notifications.jsx:915 403 + #: src/pages/settings.jsx:78 404 + #: src/pages/status.jsx:1301 405 + msgid "Close" 406 + msgstr "" 407 + 408 + #: src/components/background-service.jsx:151 539 409 msgid "Cloak mode disabled" 540 410 msgstr "" 541 411 542 - #: src/components/background-service.jsx:149 412 + #: src/components/background-service.jsx:151 543 413 msgid "Cloak mode enabled" 544 414 msgstr "" 545 415 546 - #: src/components/columns.jsx:26 547 - #: src/components/nav-menu.jsx:175 416 + #: src/components/columns.jsx:27 417 + #: src/components/nav-menu.jsx:176 548 418 #: src/components/shortcuts-settings.jsx:139 549 - #: src/components/timeline.jsx:437 419 + #: src/components/timeline.jsx:439 550 420 #: src/pages/catchup.jsx:876 551 421 #: src/pages/filters.jsx:89 552 - #: src/pages/followed-hashtags.jsx:40 422 + #: src/pages/followed-hashtags.jsx:41 553 423 #: src/pages/home.jsx:53 554 424 #: src/pages/notifications.jsx:560 555 425 msgid "Home" 556 426 msgstr "" 557 427 558 - #: src/components/compose-button.jsx:49 559 - #: src/compose.jsx:37 428 + #: src/components/compose-button.jsx:50 429 + #: src/compose.jsx:38 560 430 msgid "Compose" 561 431 msgstr "" 562 432 ··· 578 448 579 449 #: src/components/compose.jsx:402 580 450 msgid "You have unsaved changes. Discard this post?" 581 - msgstr "" 451 + msgstr "You have unsaved changes. Discard this post?" 582 452 583 453 #. placeholder {0}: unsupportedFiles.length 584 454 #. placeholder {1}: unsupportedFiles[0].name ··· 596 466 597 467 #: src/components/compose.jsx:840 598 468 msgid "Pop out" 599 - msgstr "" 469 + msgstr "Pop out" 600 470 601 471 #: src/components/compose.jsx:847 602 472 msgid "Minimize" 603 - msgstr "" 473 + msgstr "Minimize" 604 474 605 475 #: src/components/compose.jsx:883 606 476 msgid "Looks like you closed the parent window." 607 - msgstr "" 477 + msgstr "Looks like you closed the parent window." 608 478 609 479 #: src/components/compose.jsx:890 610 480 msgid "Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later." 611 - msgstr "" 481 + msgstr "Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later." 612 482 613 483 #: src/components/compose.jsx:895 614 484 msgid "Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?" 615 - msgstr "" 485 + msgstr "Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?" 616 486 617 487 #: src/components/compose.jsx:937 618 488 msgid "Pop in" 619 - msgstr "" 489 + msgstr "Pop in" 620 490 621 491 #. placeholder {0}: replyToStatus.account.acct || replyToStatus.account.username 622 492 #. placeholder {1}: rtf.format(-replyToStatusMonthsAgo, 'month') ··· 635 505 636 506 #: src/components/compose.jsx:1017 637 507 msgid "Poll must have at least 2 options" 638 - msgstr "" 508 + msgstr "Poll must have at least 2 options" 639 509 640 510 #: src/components/compose.jsx:1021 641 511 msgid "Some poll choices are empty" 642 - msgstr "" 512 + msgstr "Some poll choices are empty" 643 513 644 514 #: src/components/compose.jsx:1034 645 515 msgid "Some media have no descriptions. Continue?" 646 - msgstr "" 516 + msgstr "Some media have no descriptions. Continue?" 647 517 648 518 #: src/components/compose.jsx:1086 649 519 msgid "Attachment #{i} failed" 650 - msgstr "" 520 + msgstr "Attachment #{i} failed" 651 521 652 522 #: src/components/compose.jsx:1180 653 523 #: src/components/status.jsx:2063 654 - #: src/components/timeline.jsx:984 524 + #: src/components/timeline.jsx:989 655 525 msgid "Content warning" 656 526 msgstr "" 657 527 658 528 #: src/components/compose.jsx:1196 659 529 msgid "Content warning or sensitive media" 660 - msgstr "" 530 + msgstr "Content warning or sensitive media" 661 531 662 532 #: src/components/compose.jsx:1232 663 533 #: src/components/status.jsx:93 664 - #: src/pages/settings.jsx:305 534 + #: src/pages/settings.jsx:306 665 535 msgid "Public" 666 536 msgstr "" 667 537 668 538 #: src/components/compose.jsx:1237 669 - #: src/components/nav-menu.jsx:337 539 + #: src/components/nav-menu.jsx:338 670 540 #: src/components/shortcuts-settings.jsx:165 671 541 #: src/components/status.jsx:94 672 542 msgid "Local" ··· 674 544 675 545 #: src/components/compose.jsx:1241 676 546 #: src/components/status.jsx:95 677 - #: src/pages/settings.jsx:308 547 + #: src/pages/settings.jsx:309 678 548 msgid "Unlisted" 679 549 msgstr "" 680 550 681 551 #: src/components/compose.jsx:1244 682 552 #: src/components/status.jsx:96 683 - #: src/pages/settings.jsx:311 553 + #: src/pages/settings.jsx:312 684 554 msgid "Followers only" 685 555 msgstr "" 686 556 ··· 692 562 693 563 #: src/components/compose.jsx:1256 694 564 msgid "Post your reply" 695 - msgstr "" 565 + msgstr "Post your reply" 696 566 697 567 #: src/components/compose.jsx:1258 698 568 msgid "Edit your post" 699 - msgstr "" 569 + msgstr "Edit your post" 700 570 701 571 #: src/components/compose.jsx:1259 702 572 msgid "What are you doing?" 703 - msgstr "" 573 + msgstr "What are you doing?" 704 574 705 575 #: src/components/compose.jsx:1337 706 576 msgid "Mark media as sensitive" 707 577 msgstr "" 708 578 709 579 #: src/components/compose.jsx:1381 710 - #: src/components/compose.jsx:3078 711 580 #: src/components/shortcuts-settings.jsx:715 712 - #: src/pages/list.jsx:359 581 + #: src/pages/list.jsx:362 713 582 msgid "Add" 714 583 msgstr "" 715 584 716 585 #: src/components/compose.jsx:1555 717 - #: src/components/keyboard-shortcuts-help.jsx:151 586 + #: src/components/keyboard-shortcuts-help.jsx:152 718 587 #: src/components/status.jsx:929 719 588 #: src/components/status.jsx:1717 720 589 #: src/components/status.jsx:1718 ··· 724 593 725 594 #: src/components/compose.jsx:1557 726 595 msgid "Update" 727 - msgstr "" 596 + msgstr "Update" 728 597 729 598 #: src/components/compose.jsx:1558 730 599 msgctxt "Submit button in composer" 731 600 msgid "Post" 732 - msgstr "" 601 + msgstr "Post" 733 602 734 603 #: src/components/compose.jsx:1686 735 604 msgid "Downloading GIF…" 736 - msgstr "" 605 + msgstr "Downloading GIF…" 737 606 738 607 #: src/components/compose.jsx:1714 739 608 msgid "Failed to download GIF" 740 - msgstr "" 741 - 742 - #: src/components/compose.jsx:1878 743 - #: src/components/compose.jsx:1955 744 - #: src/components/nav-menu.jsx:238 745 - msgid "More…" 746 - msgstr "" 609 + msgstr "Failed to download GIF" 747 610 748 611 #: src/components/compose.jsx:2360 749 612 msgid "Uploaded" ··· 751 614 752 615 #: src/components/compose.jsx:2373 753 616 msgid "Image description" 754 - msgstr "" 617 + msgstr "Image description" 755 618 756 619 #: src/components/compose.jsx:2374 757 620 msgid "Video description" 758 - msgstr "" 621 + msgstr "Video description" 759 622 760 623 #: src/components/compose.jsx:2375 761 624 msgid "Audio description" 762 - msgstr "" 625 + msgstr "Audio description" 763 626 764 627 #. placeholder {0}: prettyBytes( imageSize, ) 765 - #. placeholder {0}: prettyBytes( videoSize, ) 766 628 #. placeholder {1}: prettyBytes(imageSizeLimit) 767 - #. placeholder {1}: prettyBytes(videoSizeLimit) 768 629 #: src/components/compose.jsx:2411 769 - #: src/components/compose.jsx:2431 770 630 msgid "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower." 771 - msgstr "" 631 + msgstr "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower." 772 632 773 - #. placeholder {0}: i18n.number( width, ) 774 - #. placeholder {1}: i18n.number(height) 775 - #. placeholder {2}: i18n.number(newWidth) 776 - #. placeholder {3}: i18n.number( newHeight, ) 633 + #. placeholder {2}: i18n.number( width, ) 634 + #. placeholder {3}: i18n.number(height) 635 + #. placeholder {4}: i18n.number(newWidth) 636 + #. placeholder {5}: i18n.number( newHeight, ) 777 637 #: src/components/compose.jsx:2423 638 + msgid "Dimension too large. Uploading might encounter issues. Try reduce dimension from {2}×{3}px to {4}×{5}px." 639 + msgstr "Dimension too large. Uploading might encounter issues. Try reduce dimension from {2}×{3}px to {4}×{5}px." 640 + 641 + #. placeholder {6}: prettyBytes( videoSize, ) 642 + #. placeholder {7}: prettyBytes(videoSizeLimit) 643 + #: src/components/compose.jsx:2431 644 + msgid "File size too large. Uploading might encounter issues. Try reduce the file size from {6} to {7} or lower." 645 + msgstr "File size too large. Uploading might encounter issues. Try reduce the file size from {6} to {7} or lower." 646 + 647 + #. placeholder {8}: i18n.number( width, ) 648 + #. placeholder {9}: i18n.number(height) 649 + #. placeholder {10}: i18n.number(newWidth) 650 + #. placeholder {11}: i18n.number( newHeight, ) 778 651 #: src/components/compose.jsx:2443 779 - msgid "Dimension too large. Uploading might encounter issues. Try reduce dimension from {0}×{1}px to {2}×{3}px." 780 - msgstr "" 652 + msgid "Dimension too large. Uploading might encounter issues. Try reduce dimension from {8}×{9}px to {10}×{11}px." 653 + msgstr "Dimension too large. Uploading might encounter issues. Try reduce dimension from {8}×{9}px to {10}×{11}px." 781 654 782 655 #: src/components/compose.jsx:2451 783 656 msgid "Frame rate too high. Uploading might encounter issues." 784 - msgstr "" 657 + msgstr "Frame rate too high. Uploading might encounter issues." 785 658 786 659 #: src/components/compose.jsx:2511 787 - #: src/components/compose.jsx:2761 788 660 #: src/components/shortcuts-settings.jsx:726 789 661 #: src/pages/catchup.jsx:1074 790 662 #: src/pages/filters.jsx:412 ··· 792 664 msgstr "" 793 665 794 666 #: src/components/compose.jsx:2528 795 - #: src/compose.jsx:83 667 + #: src/compose.jsx:84 796 668 msgid "Error" 797 669 msgstr "" 798 670 799 671 #: src/components/compose.jsx:2553 800 672 msgid "Edit image description" 801 - msgstr "" 673 + msgstr "Edit image description" 802 674 803 675 #: src/components/compose.jsx:2554 804 676 msgid "Edit video description" 805 - msgstr "" 677 + msgstr "Edit video description" 806 678 807 679 #: src/components/compose.jsx:2555 808 680 msgid "Edit audio description" 809 - msgstr "" 681 + msgstr "Edit audio description" 810 682 811 683 #: src/components/compose.jsx:2600 812 684 #: src/components/compose.jsx:2649 813 685 msgid "Generating description. Please wait…" 814 - msgstr "" 686 + msgstr "Generating description. Please wait…" 815 687 816 - #. placeholder {0}: e.message 688 + #. placeholder {12}: e.message 817 689 #: src/components/compose.jsx:2620 818 - msgid "Failed to generate description: {0}" 819 - msgstr "" 690 + msgid "Failed to generate description: {12}" 691 + msgstr "Failed to generate description: {12}" 820 692 821 693 #: src/components/compose.jsx:2621 822 694 msgid "Failed to generate description" 823 - msgstr "" 695 + msgstr "Failed to generate description" 824 696 825 697 #: src/components/compose.jsx:2633 826 698 #: src/components/compose.jsx:2639 ··· 828 700 msgid "Generate description…" 829 701 msgstr "" 830 702 831 - #. placeholder {0}: e?.message ? `: ${e.message}` : '' 703 + #. placeholder {13}: e?.message ? `: ${e.message}` : '' 832 704 #: src/components/compose.jsx:2672 833 - msgid "Failed to generate description{0}" 834 - msgstr "" 705 + msgid "Failed to generate description{13}" 706 + msgstr "Failed to generate description{13}" 835 707 836 708 #. placeholder {0}: localeCode2Text(lang) 837 709 #: src/components/compose.jsx:2687 ··· 842 714 msgid "Done" 843 715 msgstr "" 844 716 845 - #. placeholder {0}: i + 1 846 - #: src/components/compose.jsx:2742 847 - msgid "Choice {0}" 848 - msgstr "" 849 - 850 717 #: src/components/compose.jsx:2789 851 718 msgid "Multiple choices" 852 719 msgstr "" ··· 859 726 msgid "Remove poll" 860 727 msgstr "" 861 728 862 - #: src/components/compose.jsx:3037 863 - msgid "Search accounts" 864 - msgstr "" 865 - 866 729 #: src/components/compose.jsx:3091 867 - #: src/components/generic-accounts.jsx:227 730 + #: src/components/generic-accounts.jsx:228 868 731 msgid "Error loading accounts" 869 732 msgstr "" 870 733 ··· 872 735 msgid "Custom emojis" 873 736 msgstr "" 874 737 875 - #: src/components/compose.jsx:3254 876 - msgid "Search emoji" 877 - msgstr "" 878 - 879 738 #: src/components/compose.jsx:3285 880 739 msgid "Error loading custom emojis" 881 740 msgstr "" 882 741 883 - #: src/components/compose.jsx:3296 884 - msgid "Recently used" 885 - msgstr "" 886 - 887 - #: src/components/compose.jsx:3297 888 - msgid "Others" 889 - msgstr "" 890 - 891 742 #. placeholder {0}: i18n.number(emojis.length - max) 892 743 #: src/components/compose.jsx:3335 893 744 msgid "{0} more…" 894 745 msgstr "" 895 746 896 - #: src/components/compose.jsx:3473 897 - msgid "Search GIFs" 898 - msgstr "" 899 - 900 - #: src/components/compose.jsx:3488 901 - msgid "Powered by GIPHY" 902 - msgstr "" 903 - 904 747 #: src/components/compose.jsx:3496 905 748 msgid "Type to search GIFs" 906 749 msgstr "" 907 750 908 751 #: src/components/compose.jsx:3594 909 - #: src/components/media-modal.jsx:461 910 - #: src/components/timeline.jsx:889 752 + #: src/components/media-modal.jsx:462 753 + #: src/components/timeline.jsx:893 911 754 msgid "Previous" 912 755 msgstr "" 913 756 914 757 #: src/components/compose.jsx:3612 915 - #: src/components/media-modal.jsx:480 916 - #: src/components/timeline.jsx:906 758 + #: src/components/media-modal.jsx:481 759 + #: src/components/timeline.jsx:910 917 760 msgid "Next" 918 761 msgstr "" 919 762 ··· 921 764 msgid "Error loading GIFs" 922 765 msgstr "" 923 766 924 - #: src/components/drafts.jsx:63 925 - #: src/pages/settings.jsx:692 767 + #: src/components/drafts.jsx:64 768 + #: src/pages/settings.jsx:693 926 769 msgid "Unsent drafts" 927 770 msgstr "" 928 771 929 - #: src/components/drafts.jsx:68 772 + #: src/components/drafts.jsx:69 930 773 msgid "Looks like you have unsent drafts. Let's continue where you left off." 931 774 msgstr "" 932 775 933 - #: src/components/drafts.jsx:102 776 + #: src/components/drafts.jsx:103 934 777 msgid "Delete this draft?" 935 778 msgstr "" 936 779 937 - #: src/components/drafts.jsx:117 780 + #: src/components/drafts.jsx:118 938 781 msgid "Error deleting draft! Please try again." 939 782 msgstr "" 940 783 941 - #: src/components/drafts.jsx:127 942 - #: src/components/list-add-edit.jsx:185 784 + #: src/components/drafts.jsx:128 785 + #: src/components/list-add-edit.jsx:186 943 786 #: src/components/status.jsx:1352 944 787 #: src/pages/filters.jsx:587 945 788 msgid "Delete…" 946 789 msgstr "" 947 790 948 - #: src/components/drafts.jsx:146 791 + #: src/components/drafts.jsx:147 949 792 msgid "Error fetching reply-to status!" 950 793 msgstr "" 951 794 952 - #: src/components/drafts.jsx:171 795 + #: src/components/drafts.jsx:172 953 796 msgid "Delete all drafts?" 954 797 msgstr "" 955 798 956 - #: src/components/drafts.jsx:189 799 + #: src/components/drafts.jsx:190 957 800 msgid "Error deleting drafts! Please try again." 958 801 msgstr "" 959 802 960 - #: src/components/drafts.jsx:201 803 + #: src/components/drafts.jsx:202 961 804 msgid "Delete all…" 962 805 msgstr "" 963 806 964 - #: src/components/drafts.jsx:209 807 + #: src/components/drafts.jsx:210 965 808 msgid "No drafts found." 966 809 msgstr "" 967 810 968 - #: src/components/drafts.jsx:245 969 - #: src/pages/catchup.jsx:1928 970 - msgid "Poll" 971 - msgstr "" 972 - 973 - #: src/components/drafts.jsx:248 974 - #: src/pages/account-statuses.jsx:365 975 - msgid "Media" 976 - msgstr "" 977 - 978 - #: src/components/embed-modal.jsx:22 811 + #: src/components/embed-modal.jsx:23 979 812 msgid "Open in new window" 980 813 msgstr "" 981 814 982 - #: src/components/follow-request-buttons.jsx:42 815 + #: src/components/follow-request-buttons.jsx:43 983 816 #: src/pages/notifications.jsx:965 984 817 msgid "Accept" 985 818 msgstr "" 986 819 987 - #: src/components/follow-request-buttons.jsx:68 820 + #: src/components/follow-request-buttons.jsx:69 988 821 msgid "Reject" 989 822 msgstr "" 990 823 991 - #: src/components/follow-request-buttons.jsx:75 992 - #: src/pages/notifications.jsx:1248 824 + #: src/components/follow-request-buttons.jsx:76 825 + #: src/pages/notifications.jsx:1249 993 826 msgid "Accepted" 994 827 msgstr "" 995 828 996 - #: src/components/follow-request-buttons.jsx:79 829 + #: src/components/follow-request-buttons.jsx:80 997 830 msgid "Rejected" 998 831 msgstr "" 999 832 1000 - #: src/components/generic-accounts.jsx:24 1001 - msgid "Nothing to show" 1002 - msgstr "" 1003 - 1004 - #: src/components/generic-accounts.jsx:145 833 + #: src/components/generic-accounts.jsx:146 1005 834 #: src/components/notification.jsx:445 1006 - #: src/pages/accounts.jsx:41 1007 - #: src/pages/search.jsx:317 1008 - #: src/pages/search.jsx:350 835 + #: src/pages/accounts.jsx:42 836 + #: src/pages/search.jsx:318 837 + #: src/pages/search.jsx:351 1009 838 msgid "Accounts" 1010 839 msgstr "" 1011 840 1012 - #: src/components/generic-accounts.jsx:205 1013 - #: src/components/timeline.jsx:519 1014 - #: src/pages/list.jsx:293 841 + #: src/components/generic-accounts.jsx:206 842 + #: src/components/timeline.jsx:521 843 + #: src/pages/list.jsx:295 1015 844 #: src/pages/notifications.jsx:895 1016 - #: src/pages/search.jsx:544 1017 - #: src/pages/status.jsx:1332 845 + #: src/pages/search.jsx:545 846 + #: src/pages/status.jsx:1334 1018 847 msgid "Show more…" 1019 848 msgstr "" 1020 849 1021 - #: src/components/generic-accounts.jsx:210 1022 - #: src/components/timeline.jsx:524 1023 - #: src/pages/search.jsx:549 850 + #: src/components/generic-accounts.jsx:211 851 + #: src/components/timeline.jsx:526 852 + #: src/pages/search.jsx:550 1024 853 msgid "The end." 1025 854 msgstr "" 1026 855 1027 - #: src/components/keyboard-shortcuts-help.jsx:43 1028 - #: src/components/nav-menu.jsx:356 856 + #: src/components/generic-accounts.jsx:232 857 + msgid "Nothing to show" 858 + msgstr "" 859 + 860 + #: src/components/keyboard-shortcuts-help.jsx:44 861 + #: src/components/nav-menu.jsx:357 1029 862 #: src/pages/catchup.jsx:1619 1030 863 msgid "Keyboard shortcuts" 1031 864 msgstr "" 1032 865 1033 - #: src/components/keyboard-shortcuts-help.jsx:51 866 + #: src/components/keyboard-shortcuts-help.jsx:52 1034 867 msgid "Keyboard shortcuts help" 1035 868 msgstr "" 1036 869 1037 - #: src/components/keyboard-shortcuts-help.jsx:55 870 + #: src/components/keyboard-shortcuts-help.jsx:56 1038 871 #: src/pages/catchup.jsx:1644 1039 872 msgid "Next post" 1040 873 msgstr "" 1041 874 1042 - #: src/components/keyboard-shortcuts-help.jsx:59 875 + #: src/components/keyboard-shortcuts-help.jsx:60 1043 876 #: src/pages/catchup.jsx:1652 1044 877 msgid "Previous post" 1045 878 msgstr "" 1046 879 1047 - #: src/components/keyboard-shortcuts-help.jsx:63 880 + #: src/components/keyboard-shortcuts-help.jsx:64 1048 881 msgid "Skip carousel to next post" 1049 882 msgstr "" 1050 883 1051 - #: src/components/keyboard-shortcuts-help.jsx:65 884 + #: src/components/keyboard-shortcuts-help.jsx:66 1052 885 msgid "<0>Shift</0> + <1>j</1>" 1053 886 msgstr "" 1054 887 1055 - #: src/components/keyboard-shortcuts-help.jsx:71 888 + #: src/components/keyboard-shortcuts-help.jsx:72 1056 889 msgid "Skip carousel to previous post" 1057 890 msgstr "" 1058 891 1059 - #: src/components/keyboard-shortcuts-help.jsx:73 892 + #: src/components/keyboard-shortcuts-help.jsx:74 1060 893 msgid "<0>Shift</0> + <1>k</1>" 1061 894 msgstr "" 1062 895 1063 - #: src/components/keyboard-shortcuts-help.jsx:79 896 + #: src/components/keyboard-shortcuts-help.jsx:80 1064 897 msgid "Load new posts" 1065 898 msgstr "" 1066 899 1067 - #: src/components/keyboard-shortcuts-help.jsx:83 900 + #: src/components/keyboard-shortcuts-help.jsx:84 1068 901 #: src/pages/catchup.jsx:1676 1069 902 msgid "Open post details" 1070 903 msgstr "" 1071 904 1072 - #: src/components/keyboard-shortcuts-help.jsx:85 905 + #: src/components/keyboard-shortcuts-help.jsx:86 1073 906 msgid "<0>Enter</0> or <1>o</1>" 1074 907 msgstr "" 1075 908 1076 - #: src/components/keyboard-shortcuts-help.jsx:92 909 + #: src/components/keyboard-shortcuts-help.jsx:93 1077 910 msgid "Expand content warning or<0/>toggle expanded/collapsed thread" 1078 911 msgstr "" 1079 912 1080 - #: src/components/keyboard-shortcuts-help.jsx:101 913 + #: src/components/keyboard-shortcuts-help.jsx:102 1081 914 msgid "Close post or dialogs" 1082 915 msgstr "" 1083 916 1084 - #: src/components/keyboard-shortcuts-help.jsx:103 917 + #: src/components/keyboard-shortcuts-help.jsx:104 1085 918 msgid "<0>Esc</0> or <1>Backspace</1>" 1086 919 msgstr "" 1087 920 1088 - #: src/components/keyboard-shortcuts-help.jsx:109 921 + #: src/components/keyboard-shortcuts-help.jsx:110 1089 922 msgid "Focus column in multi-column mode" 1090 923 msgstr "" 1091 924 1092 - #: src/components/keyboard-shortcuts-help.jsx:111 925 + #: src/components/keyboard-shortcuts-help.jsx:112 1093 926 msgid "<0>1</0> to <1>9</1>" 1094 927 msgstr "" 1095 928 1096 - #: src/components/keyboard-shortcuts-help.jsx:117 929 + #: src/components/keyboard-shortcuts-help.jsx:118 1097 930 msgid "Focus next column in multi-column mode" 1098 931 msgstr "Focus next column in multi-column mode" 1099 932 1100 - #: src/components/keyboard-shortcuts-help.jsx:121 933 + #: src/components/keyboard-shortcuts-help.jsx:122 1101 934 msgid "Focus previous column in multi-column mode" 1102 935 msgstr "Focus previous column in multi-column mode" 1103 936 1104 - #: src/components/keyboard-shortcuts-help.jsx:125 937 + #: src/components/keyboard-shortcuts-help.jsx:126 1105 938 msgid "Compose new post" 1106 939 msgstr "" 1107 940 1108 - #: src/components/keyboard-shortcuts-help.jsx:129 941 + #: src/components/keyboard-shortcuts-help.jsx:130 1109 942 msgid "Compose new post (new window)" 1110 943 msgstr "" 1111 944 1112 - #: src/components/keyboard-shortcuts-help.jsx:132 945 + #: src/components/keyboard-shortcuts-help.jsx:133 1113 946 msgid "<0>Shift</0> + <1>c</1>" 1114 947 msgstr "" 1115 948 1116 - #: src/components/keyboard-shortcuts-help.jsx:138 949 + #: src/components/keyboard-shortcuts-help.jsx:139 1117 950 msgid "Send post" 1118 951 msgstr "" 1119 952 1120 - #: src/components/keyboard-shortcuts-help.jsx:140 953 + #: src/components/keyboard-shortcuts-help.jsx:141 1121 954 msgid "<0>Ctrl</0> + <1>Enter</1> or <2>⌘</2> + <3>Enter</3>" 1122 955 msgstr "" 1123 956 1124 - #: src/components/keyboard-shortcuts-help.jsx:147 1125 - #: src/components/nav-menu.jsx:325 1126 - #: src/components/search-form.jsx:72 957 + #: src/components/keyboard-shortcuts-help.jsx:148 958 + #: src/components/nav-menu.jsx:326 959 + #: src/components/search-form.jsx:73 1127 960 #: src/components/shortcuts-settings.jsx:52 1128 961 #: src/components/shortcuts-settings.jsx:179 1129 - #: src/pages/search.jsx:45 1130 - #: src/pages/search.jsx:299 962 + #: src/pages/search.jsx:46 963 + #: src/pages/search.jsx:300 1131 964 msgid "Search" 1132 965 msgstr "" 1133 966 1134 - #: src/components/keyboard-shortcuts-help.jsx:155 967 + #: src/components/keyboard-shortcuts-help.jsx:156 1135 968 msgid "Reply (new window)" 1136 969 msgstr "" 1137 970 1138 - #: src/components/keyboard-shortcuts-help.jsx:158 971 + #: src/components/keyboard-shortcuts-help.jsx:159 1139 972 msgid "<0>Shift</0> + <1>r</1>" 1140 973 msgstr "" 1141 974 1142 - #: src/components/keyboard-shortcuts-help.jsx:164 975 + #: src/components/keyboard-shortcuts-help.jsx:165 1143 976 msgid "Like (favourite)" 1144 977 msgstr "" 1145 978 1146 - #: src/components/keyboard-shortcuts-help.jsx:166 979 + #: src/components/keyboard-shortcuts-help.jsx:167 1147 980 msgid "<0>l</0> or <1>f</1>" 1148 981 msgstr "" 1149 982 1150 - #: src/components/keyboard-shortcuts-help.jsx:172 983 + #: src/components/keyboard-shortcuts-help.jsx:173 1151 984 #: src/components/status.jsx:937 1152 985 #: src/components/status.jsx:2413 1153 986 #: src/components/status.jsx:2444 ··· 1155 988 msgid "Boost" 1156 989 msgstr "" 1157 990 1158 - #: src/components/keyboard-shortcuts-help.jsx:174 991 + #: src/components/keyboard-shortcuts-help.jsx:175 1159 992 msgid "<0>Shift</0> + <1>b</1>" 1160 993 msgstr "" 1161 994 1162 - #: src/components/keyboard-shortcuts-help.jsx:180 995 + #: src/components/keyboard-shortcuts-help.jsx:181 1163 996 #: src/components/status.jsx:1022 1164 997 #: src/components/status.jsx:2469 1165 998 #: src/components/status.jsx:2470 1166 999 msgid "Bookmark" 1167 1000 msgstr "" 1168 1001 1169 - #: src/components/keyboard-shortcuts-help.jsx:184 1002 + #: src/components/keyboard-shortcuts-help.jsx:185 1170 1003 msgid "Toggle Cloak mode" 1171 1004 msgstr "" 1172 1005 1173 - #: src/components/keyboard-shortcuts-help.jsx:186 1006 + #: src/components/keyboard-shortcuts-help.jsx:187 1174 1007 msgid "<0>Shift</0> + <1>Alt</1> + <2>k</2>" 1175 1008 msgstr "" 1176 1009 1177 - #: src/components/list-add-edit.jsx:39 1010 + #: src/components/list-add-edit.jsx:40 1178 1011 msgid "Edit list" 1179 1012 msgstr "" 1180 1013 1181 - #: src/components/list-add-edit.jsx:95 1014 + #: src/components/list-add-edit.jsx:96 1182 1015 msgid "Unable to edit list." 1183 1016 msgstr "" 1184 1017 1185 - #: src/components/list-add-edit.jsx:96 1018 + #: src/components/list-add-edit.jsx:97 1186 1019 msgid "Unable to create list." 1187 1020 msgstr "" 1188 1021 1189 - #: src/components/list-add-edit.jsx:124 1022 + #: src/components/list-add-edit.jsx:125 1190 1023 msgid "Show replies to list members" 1191 1024 msgstr "" 1192 1025 1193 - #: src/components/list-add-edit.jsx:127 1026 + #: src/components/list-add-edit.jsx:128 1194 1027 msgid "Show replies to people I follow" 1195 1028 msgstr "" 1196 1029 1197 - #: src/components/list-add-edit.jsx:130 1030 + #: src/components/list-add-edit.jsx:131 1198 1031 msgid "Don't show replies" 1199 1032 msgstr "" 1200 1033 1201 - #: src/components/list-add-edit.jsx:143 1034 + #: src/components/list-add-edit.jsx:144 1202 1035 msgid "Hide posts on this list from Home/Following" 1203 1036 msgstr "" 1204 1037 1205 - #: src/components/list-add-edit.jsx:149 1038 + #: src/components/list-add-edit.jsx:150 1206 1039 #: src/pages/filters.jsx:554 1207 1040 msgid "Create" 1208 1041 msgstr "" 1209 1042 1210 - #: src/components/list-add-edit.jsx:156 1043 + #: src/components/list-add-edit.jsx:157 1211 1044 msgid "Delete this list?" 1212 1045 msgstr "" 1213 1046 1214 - #: src/components/list-add-edit.jsx:175 1047 + #: src/components/list-add-edit.jsx:176 1215 1048 msgid "Unable to delete list." 1216 1049 msgstr "" 1217 1050 1218 - #: src/components/media-alt-modal.jsx:38 1219 - #: src/components/media.jsx:50 1051 + #: src/components/media-alt-modal.jsx:39 1052 + #: src/components/media.jsx:51 1220 1053 msgid "Media description" 1221 1054 msgstr "" 1222 1055 1223 - #: src/components/media-alt-modal.jsx:57 1056 + #: src/components/media-alt-modal.jsx:58 1224 1057 #: src/components/status.jsx:1066 1225 1058 #: src/components/status.jsx:1093 1226 - #: src/components/translation-block.jsx:195 1059 + #: src/components/translation-block.jsx:196 1227 1060 msgid "Translate" 1228 1061 msgstr "" 1229 1062 1230 - #: src/components/media-alt-modal.jsx:68 1063 + #: src/components/media-alt-modal.jsx:69 1231 1064 #: src/components/status.jsx:1080 1232 1065 #: src/components/status.jsx:1107 1233 1066 msgid "Speak" 1234 1067 msgstr "" 1235 1068 1236 - #: src/components/media-modal.jsx:368 1069 + #: src/components/media-modal.jsx:369 1237 1070 msgid "Open original media in new window" 1238 1071 msgstr "" 1239 1072 1240 - #: src/components/media-modal.jsx:372 1073 + #: src/components/media-modal.jsx:373 1241 1074 msgid "Open original media" 1242 1075 msgstr "" 1243 1076 1244 - #: src/components/media-modal.jsx:388 1077 + #: src/components/media-modal.jsx:389 1245 1078 msgid "Attempting to describe image. Please wait…" 1246 1079 msgstr "" 1247 1080 1248 - #: src/components/media-modal.jsx:403 1081 + #: src/components/media-modal.jsx:404 1249 1082 msgid "Failed to describe image" 1250 1083 msgstr "" 1251 1084 1252 - #: src/components/media-modal.jsx:413 1085 + #: src/components/media-modal.jsx:414 1253 1086 msgid "Describe image…" 1254 1087 msgstr "" 1255 1088 1256 - #: src/components/media-modal.jsx:436 1089 + #: src/components/media-modal.jsx:437 1257 1090 msgid "View post" 1258 1091 msgstr "" 1259 1092 1260 - #: src/components/media-post.jsx:127 1093 + #: src/components/media-post.jsx:128 1261 1094 msgid "Sensitive media" 1262 1095 msgstr "" 1263 1096 1264 - #: src/components/media-post.jsx:132 1097 + #: src/components/media-post.jsx:133 1265 1098 msgid "Filtered: {filterTitleStr}" 1266 1099 msgstr "" 1267 1100 1268 - #: src/components/media-post.jsx:133 1269 - #: src/components/status.jsx:3561 1270 - #: src/components/status.jsx:3657 1271 - #: src/components/status.jsx:3735 1272 - #: src/components/timeline.jsx:973 1101 + #: src/components/media-post.jsx:134 1102 + #: src/components/status.jsx:3563 1103 + #: src/components/status.jsx:3659 1104 + #: src/components/status.jsx:3737 1105 + #: src/components/timeline.jsx:978 1273 1106 #: src/pages/catchup.jsx:75 1274 - #: src/pages/catchup.jsx:1876 1107 + #: src/pages/catchup.jsx:1877 1275 1108 msgid "Filtered" 1276 1109 msgstr "" 1277 1110 1278 - #: src/components/modals.jsx:72 1111 + #: src/components/modals.jsx:73 1279 1112 msgid "Post published. Check it out." 1280 1113 msgstr "" 1281 1114 1282 - #: src/components/modals.jsx:73 1115 + #: src/components/modals.jsx:74 1283 1116 msgid "Reply posted. Check it out." 1284 1117 msgstr "" 1285 1118 1286 - #: src/components/modals.jsx:74 1119 + #: src/components/modals.jsx:75 1287 1120 msgid "Post updated. Check it out." 1288 1121 msgstr "" 1289 1122 1290 - #: src/components/nav-menu.jsx:117 1123 + #: src/components/nav-menu.jsx:118 1291 1124 msgid "Menu" 1292 1125 msgstr "" 1293 1126 1294 - #: src/components/nav-menu.jsx:153 1127 + #: src/components/nav-menu.jsx:154 1295 1128 msgid "Reload page now to update?" 1296 1129 msgstr "" 1297 1130 1298 - #: src/components/nav-menu.jsx:165 1131 + #: src/components/nav-menu.jsx:166 1299 1132 msgid "New update available…" 1300 1133 msgstr "" 1301 1134 1302 1135 #. js-lingui-explicit-id 1303 - #: src/components/nav-menu.jsx:184 1136 + #: src/components/nav-menu.jsx:185 1304 1137 #: src/components/shortcuts-settings.jsx:140 1305 - #: src/pages/following.jsx:22 1306 - #: src/pages/following.jsx:141 1138 + #: src/pages/following.jsx:23 1139 + #: src/pages/following.jsx:142 1307 1140 msgid "following.title" 1308 1141 msgstr "Following" 1309 1142 1310 - #: src/components/nav-menu.jsx:191 1143 + #: src/components/nav-menu.jsx:192 1311 1144 #: src/pages/catchup.jsx:871 1312 1145 msgid "Catch-up" 1313 1146 msgstr "" 1314 1147 1315 - #: src/components/nav-menu.jsx:198 1148 + #: src/components/nav-menu.jsx:199 1316 1149 #: src/components/shortcuts-settings.jsx:58 1317 1150 #: src/components/shortcuts-settings.jsx:146 1318 - #: src/pages/home.jsx:224 1319 - #: src/pages/mentions.jsx:20 1320 - #: src/pages/mentions.jsx:167 1321 - #: src/pages/settings.jsx:1145 1322 - #: src/pages/trending.jsx:381 1151 + #: src/pages/home.jsx:225 1152 + #: src/pages/mentions.jsx:21 1153 + #: src/pages/mentions.jsx:168 1154 + #: src/pages/settings.jsx:1147 1155 + #: src/pages/trending.jsx:382 1323 1156 msgid "Mentions" 1324 1157 msgstr "" 1325 1158 1326 - #: src/components/nav-menu.jsx:205 1159 + #: src/components/nav-menu.jsx:206 1327 1160 #: src/components/shortcuts-settings.jsx:49 1328 1161 #: src/components/shortcuts-settings.jsx:152 1329 - #: src/pages/filters.jsx:24 1330 - #: src/pages/home.jsx:84 1331 - #: src/pages/home.jsx:184 1162 + #: src/pages/filters.jsx:23 1163 + #: src/pages/home.jsx:85 1164 + #: src/pages/home.jsx:185 1332 1165 #: src/pages/notifications.jsx:113 1333 1166 #: src/pages/notifications.jsx:564 1334 1167 msgid "Notifications" 1335 1168 msgstr "" 1336 1169 1337 - #: src/components/nav-menu.jsx:208 1170 + #: src/components/nav-menu.jsx:209 1338 1171 msgid "New" 1339 1172 msgstr "" 1340 1173 1341 - #: src/components/nav-menu.jsx:219 1174 + #: src/components/nav-menu.jsx:220 1342 1175 msgid "Profile" 1343 1176 msgstr "" 1344 1177 1345 - #: src/components/nav-menu.jsx:227 1178 + #: src/components/nav-menu.jsx:228 1346 1179 #: src/components/shortcuts-settings.jsx:54 1347 1180 #: src/components/shortcuts-settings.jsx:195 1348 - #: src/pages/bookmarks.jsx:11 1349 - #: src/pages/bookmarks.jsx:23 1181 + #: src/pages/bookmarks.jsx:12 1182 + #: src/pages/bookmarks.jsx:24 1350 1183 msgid "Bookmarks" 1351 1184 msgstr "" 1352 1185 1353 - #: src/components/nav-menu.jsx:247 1186 + #: src/components/nav-menu.jsx:239 1187 + msgid "More…" 1188 + msgstr "" 1189 + 1190 + #: src/components/nav-menu.jsx:248 1354 1191 #: src/components/shortcuts-settings.jsx:55 1355 1192 #: src/components/shortcuts-settings.jsx:201 1356 1193 #: src/pages/catchup.jsx:1446 1357 - #: src/pages/catchup.jsx:2062 1358 - #: src/pages/favourites.jsx:11 1359 - #: src/pages/favourites.jsx:23 1360 - #: src/pages/settings.jsx:1149 1194 + #: src/pages/catchup.jsx:2064 1195 + #: src/pages/favourites.jsx:12 1196 + #: src/pages/favourites.jsx:24 1197 + #: src/pages/settings.jsx:1151 1361 1198 msgid "Likes" 1362 1199 msgstr "" 1363 1200 1364 - #: src/components/nav-menu.jsx:253 1365 - #: src/pages/followed-hashtags.jsx:14 1366 - #: src/pages/followed-hashtags.jsx:44 1201 + #: src/components/nav-menu.jsx:254 1202 + #: src/pages/followed-hashtags.jsx:15 1203 + #: src/pages/followed-hashtags.jsx:45 1367 1204 msgid "Followed Hashtags" 1368 1205 msgstr "" 1369 1206 1370 - #: src/components/nav-menu.jsx:261 1371 - #: src/pages/account-statuses.jsx:331 1207 + #: src/components/nav-menu.jsx:262 1208 + #: src/pages/account-statuses.jsx:330 1372 1209 #: src/pages/filters.jsx:54 1373 1210 #: src/pages/filters.jsx:93 1374 - #: src/pages/hashtag.jsx:339 1211 + #: src/pages/hashtag.jsx:340 1375 1212 msgid "Filters" 1376 1213 msgstr "" 1377 1214 1378 - #: src/components/nav-menu.jsx:269 1215 + #: src/components/nav-menu.jsx:270 1379 1216 msgid "Muted users" 1380 1217 msgstr "" 1381 1218 1382 - #: src/components/nav-menu.jsx:277 1219 + #: src/components/nav-menu.jsx:278 1383 1220 msgid "Muted users…" 1384 1221 msgstr "" 1385 1222 1386 - #: src/components/nav-menu.jsx:284 1223 + #: src/components/nav-menu.jsx:285 1387 1224 msgid "Blocked users" 1388 1225 msgstr "" 1389 1226 1390 - #: src/components/nav-menu.jsx:292 1227 + #: src/components/nav-menu.jsx:293 1391 1228 msgid "Blocked users…" 1392 1229 msgstr "" 1393 1230 1394 - #: src/components/nav-menu.jsx:304 1231 + #: src/components/nav-menu.jsx:305 1395 1232 msgid "Accounts…" 1396 1233 msgstr "" 1397 1234 1398 - #: src/components/nav-menu.jsx:314 1399 - #: src/pages/login.jsx:189 1400 - #: src/pages/status.jsx:835 1401 - #: src/pages/welcome.jsx:64 1235 + #: src/components/nav-menu.jsx:315 1236 + #: src/pages/login.jsx:190 1237 + #: src/pages/status.jsx:837 1238 + #: src/pages/welcome.jsx:65 1402 1239 msgid "Log in" 1403 1240 msgstr "" 1404 1241 1405 - #: src/components/nav-menu.jsx:331 1242 + #: src/components/nav-menu.jsx:332 1406 1243 #: src/components/shortcuts-settings.jsx:57 1407 1244 #: src/components/shortcuts-settings.jsx:172 1408 - #: src/pages/trending.jsx:441 1245 + #: src/pages/trending.jsx:442 1409 1246 msgid "Trending" 1410 1247 msgstr "" 1411 1248 1412 - #: src/components/nav-menu.jsx:343 1249 + #: src/components/nav-menu.jsx:344 1413 1250 #: src/components/shortcuts-settings.jsx:165 1414 1251 msgid "Federated" 1415 1252 msgstr "" 1416 1253 1417 - #: src/components/nav-menu.jsx:366 1254 + #: src/components/nav-menu.jsx:367 1418 1255 msgid "Shortcuts / Columns…" 1419 1256 msgstr "" 1420 1257 1421 - #: src/components/nav-menu.jsx:376 1422 - #: src/components/nav-menu.jsx:390 1258 + #: src/components/nav-menu.jsx:377 1259 + #: src/components/nav-menu.jsx:391 1423 1260 msgid "Settings…" 1424 1261 msgstr "" 1425 1262 1426 - #: src/components/nav-menu.jsx:420 1427 - #: src/components/nav-menu.jsx:447 1263 + #: src/components/nav-menu.jsx:421 1264 + #: src/components/nav-menu.jsx:448 1428 1265 #: src/components/shortcuts-settings.jsx:50 1429 1266 #: src/components/shortcuts-settings.jsx:158 1430 - #: src/pages/list.jsx:126 1431 - #: src/pages/lists.jsx:16 1432 - #: src/pages/lists.jsx:50 1267 + #: src/pages/list.jsx:127 1268 + #: src/pages/lists.jsx:17 1269 + #: src/pages/lists.jsx:51 1433 1270 msgid "Lists" 1434 1271 msgstr "" 1435 1272 1436 - #: src/components/nav-menu.jsx:428 1273 + #: src/components/nav-menu.jsx:429 1437 1274 #: src/components/shortcuts.jsx:215 1438 - #: src/pages/list.jsx:133 1275 + #: src/pages/list.jsx:134 1439 1276 msgid "All Lists" 1440 1277 msgstr "" 1441 1278 1442 - #: src/components/notification-service.jsx:160 1279 + #: src/components/notification-service.jsx:161 1443 1280 msgid "Notification" 1444 1281 msgstr "" 1445 1282 1446 - #: src/components/notification-service.jsx:166 1283 + #: src/components/notification-service.jsx:167 1447 1284 msgid "This notification is from your other account." 1448 1285 msgstr "" 1449 1286 1450 - #: src/components/notification-service.jsx:195 1287 + #: src/components/notification-service.jsx:196 1451 1288 msgid "View all notifications" 1452 1289 msgstr "" 1453 1290 ··· 1598 1435 msgid "Read more →" 1599 1436 msgstr "" 1600 1437 1601 - #: src/components/poll.jsx:110 1438 + #: src/components/poll.jsx:112 1602 1439 msgid "Voted" 1603 1440 msgstr "" 1604 1441 1605 - #: src/components/poll.jsx:116 1442 + #: src/components/poll.jsx:118 1606 1443 msgid "{optionVotesCount, plural, one {# vote} other {# votes}}" 1607 1444 msgstr "{optionVotesCount, plural, one {# vote} other {# votes}}" 1608 1445 1609 - #: src/components/poll.jsx:136 1610 - #: src/components/poll.jsx:219 1611 - #: src/components/poll.jsx:223 1446 + #: src/components/poll.jsx:138 1447 + #: src/components/poll.jsx:221 1448 + #: src/components/poll.jsx:225 1612 1449 msgid "Hide results" 1613 1450 msgstr "" 1614 1451 1615 - #: src/components/poll.jsx:185 1452 + #: src/components/poll.jsx:187 1616 1453 msgid "Vote" 1617 1454 msgstr "" 1618 1455 1619 - #: src/components/poll.jsx:205 1620 1456 #: src/components/poll.jsx:207 1621 - #: src/pages/status.jsx:1201 1622 - #: src/pages/status.jsx:1224 1457 + #: src/components/poll.jsx:209 1458 + #: src/pages/status.jsx:1203 1459 + #: src/pages/status.jsx:1226 1623 1460 msgid "Refresh" 1624 1461 msgstr "" 1625 1462 1626 - #: src/components/poll.jsx:219 1627 - #: src/components/poll.jsx:223 1463 + #: src/components/poll.jsx:221 1464 + #: src/components/poll.jsx:225 1628 1465 msgid "Show results" 1629 1466 msgstr "" 1630 1467 1631 1468 #. placeholder {0}: shortenNumber(votesCount) 1632 1469 #. placeholder {1}: shortenNumber(votesCount) 1633 - #: src/components/poll.jsx:228 1470 + #: src/components/poll.jsx:230 1634 1471 msgid "{votesCount, plural, one {<0>{0}</0> vote} other {<1>{1}</1> votes}}" 1635 1472 msgstr "" 1636 1473 1637 1474 #. placeholder {0}: shortenNumber(votersCount) 1638 1475 #. placeholder {1}: shortenNumber(votersCount) 1639 - #: src/components/poll.jsx:245 1476 + #: src/components/poll.jsx:247 1640 1477 msgid "{votersCount, plural, one {<0>{0}</0> voter} other {<1>{1}</1> voters}}" 1641 1478 msgstr "" 1642 1479 1643 - #: src/components/poll.jsx:265 1480 + #: src/components/poll.jsx:267 1644 1481 msgid "Ended <0/>" 1645 1482 msgstr "" 1646 1483 1647 - #: src/components/poll.jsx:269 1484 + #: src/components/poll.jsx:271 1648 1485 msgid "Ended" 1649 1486 msgstr "" 1650 1487 1651 - #: src/components/poll.jsx:272 1488 + #: src/components/poll.jsx:274 1652 1489 msgid "Ending <0/>" 1653 1490 msgstr "" 1654 1491 1655 - #: src/components/poll.jsx:276 1492 + #: src/components/poll.jsx:278 1656 1493 msgid "Ending" 1657 1494 msgstr "" 1658 1495 ··· 1782 1619 msgid "Send Report <0>+ Block profile</0>" 1783 1620 msgstr "" 1784 1621 1785 - #: src/components/search-form.jsx:202 1622 + #: src/components/search-form.jsx:203 1786 1623 msgid "{query} <0>‒ accounts, hashtags & posts</0>" 1787 1624 msgstr "" 1788 1625 1789 - #: src/components/search-form.jsx:215 1626 + #: src/components/search-form.jsx:216 1790 1627 msgid "Posts with <0>{query}</0>" 1791 1628 msgstr "" 1792 1629 1793 1630 #. placeholder {0}: query.replace(/^#/, '') 1794 - #: src/components/search-form.jsx:227 1631 + #: src/components/search-form.jsx:228 1795 1632 msgid "Posts tagged with <0>#{0}</0>" 1796 1633 msgstr "" 1797 1634 1798 - #: src/components/search-form.jsx:241 1635 + #: src/components/search-form.jsx:242 1799 1636 msgid "Look up <0>{query}</0>" 1800 1637 msgstr "" 1801 1638 1802 - #: src/components/search-form.jsx:252 1639 + #: src/components/search-form.jsx:253 1803 1640 msgid "Accounts with <0>{query}</0>" 1804 1641 msgstr "" 1805 1642 ··· 1830 1667 #: src/components/shortcuts-settings.jsx:75 1831 1668 #: src/components/shortcuts-settings.jsx:84 1832 1669 #: src/components/shortcuts-settings.jsx:122 1833 - #: src/pages/login.jsx:193 1670 + #: src/pages/login.jsx:194 1834 1671 msgid "Instance" 1835 1672 msgstr "" 1836 1673 ··· 1853 1690 msgstr "" 1854 1691 1855 1692 #: src/components/shortcuts-settings.jsx:117 1856 - #: src/pages/hashtag.jsx:355 1693 + #: src/pages/hashtag.jsx:356 1857 1694 msgid "Media only" 1858 1695 msgstr "" 1859 1696 ··· 1896 1733 1897 1734 #: src/components/shortcuts-settings.jsx:379 1898 1735 #: src/components/status.jsx:1314 1899 - #: src/pages/list.jsx:170 1736 + #: src/pages/list.jsx:171 1900 1737 msgid "Edit" 1901 1738 msgstr "" 1902 1739 ··· 2061 1898 msgid "Unable to copy shortcut settings" 2062 1899 msgstr "" 2063 1900 1901 + #: src/components/shortcuts-settings.jsx:1077 1902 + #: src/components/status.jsx:1202 1903 + msgid "Sharing doesn't seem to work." 1904 + msgstr "" 1905 + 2064 1906 #: src/components/shortcuts-settings.jsx:1083 2065 1907 msgid "Share" 2066 1908 msgstr "" ··· 2107 1949 msgid "Unliked @{0}'s post" 2108 1950 msgstr "" 2109 1951 2110 - #. placeholder {0}: username || acct 1952 + #. placeholder {1}: username || acct 2111 1953 #: src/components/status.jsx:791 2112 - msgid "Liked @{0}'s post" 2113 - msgstr "" 1954 + msgid "Liked @{1}'s post" 1955 + msgstr "Liked @{1}'s post" 2114 1956 2115 - #. placeholder {0}: username || acct 1957 + #. placeholder {2}: username || acct 2116 1958 #: src/components/status.jsx:830 2117 - msgid "Unbookmarked @{0}'s post" 2118 - msgstr "" 1959 + msgid "Unbookmarked @{2}'s post" 1960 + msgstr "Unbookmarked @{2}'s post" 2119 1961 2120 - #. placeholder {0}: username || acct 1962 + #. placeholder {3}: username || acct 2121 1963 #: src/components/status.jsx:831 2122 - msgid "Bookmarked @{0}'s post" 2123 - msgstr "" 1964 + msgid "Bookmarked @{3}'s post" 1965 + msgstr "Bookmarked @{3}'s post" 2124 1966 2125 1967 #: src/components/status.jsx:937 2126 1968 #: src/components/status.jsx:999 ··· 2144 1986 msgid "Old post (<0>{0}</0>)" 2145 1987 msgstr "" 2146 1988 2147 - #. placeholder {0}: username || acct 1989 + #. placeholder {4}: username || acct 2148 1990 #: src/components/status.jsx:987 2149 - #: src/components/status.jsx:1442 2150 - msgid "Unboosted @{0}'s post" 2151 - msgstr "" 1991 + msgid "Unboosted @{4}'s post" 1992 + msgstr "Unboosted @{4}'s post" 2152 1993 2153 - #. placeholder {0}: username || acct 1994 + #. placeholder {5}: username || acct 2154 1995 #: src/components/status.jsx:988 2155 - #: src/components/status.jsx:1443 2156 - msgid "Boosted @{0}'s post" 2157 - msgstr "" 1996 + msgid "Boosted @{5}'s post" 1997 + msgstr "Boosted @{5}'s post" 2158 1998 2159 1999 #: src/components/status.jsx:1000 2160 2000 msgid "Boost…" ··· 2192 2032 msgid "Edited: {editedDateText}" 2193 2033 msgstr "" 2194 2034 2035 + #: src/components/status.jsx:1177 2036 + msgid "Link copied" 2037 + msgstr "" 2038 + 2039 + #: src/components/status.jsx:1180 2040 + msgid "Unable to copy link" 2041 + msgstr "" 2042 + 2195 2043 #: src/components/status.jsx:1221 2196 - #: src/components/status.jsx:3236 2044 + #: src/components/status.jsx:3238 2197 2045 msgid "Embed post" 2198 2046 msgstr "" 2199 2047 ··· 2261 2109 msgid "Report post…" 2262 2110 msgstr "" 2263 2111 2112 + #. placeholder {6}: username || acct 2113 + #: src/components/status.jsx:1442 2114 + msgid "Unboosted @{6}'s post" 2115 + msgstr "Unboosted @{6}'s post" 2116 + 2117 + #. placeholder {7}: username || acct 2118 + #: src/components/status.jsx:1443 2119 + msgid "Boosted @{7}'s post" 2120 + msgstr "Boosted @{7}'s post" 2121 + 2264 2122 #: src/components/status.jsx:1728 2265 2123 #: src/components/status.jsx:1764 2266 2124 #: src/components/status.jsx:2458 ··· 2323 2181 msgid "More from <0/>" 2324 2182 msgstr "More from <0/>" 2325 2183 2326 - #: src/components/status.jsx:2997 2184 + #: src/components/status.jsx:2998 2327 2185 msgid "Edit History" 2328 2186 msgstr "" 2329 2187 2330 - #: src/components/status.jsx:3001 2188 + #: src/components/status.jsx:3002 2331 2189 msgid "Failed to load history" 2332 2190 msgstr "" 2333 2191 2334 - #: src/components/status.jsx:3006 2335 - #: src/pages/annual-report.jsx:46 2192 + #: src/components/status.jsx:3007 2193 + #: src/pages/annual-report.jsx:45 2336 2194 msgid "Loading…" 2337 2195 msgstr "" 2338 2196 2339 - #: src/components/status.jsx:3241 2197 + #: src/components/status.jsx:3243 2340 2198 msgid "HTML Code" 2341 2199 msgstr "" 2342 2200 2343 - #: src/components/status.jsx:3258 2201 + #: src/components/status.jsx:3260 2344 2202 msgid "HTML code copied" 2345 2203 msgstr "" 2346 2204 2347 - #: src/components/status.jsx:3261 2205 + #: src/components/status.jsx:3263 2348 2206 msgid "Unable to copy HTML code" 2349 2207 msgstr "" 2350 2208 2351 - #: src/components/status.jsx:3273 2209 + #: src/components/status.jsx:3275 2352 2210 msgid "Media attachments:" 2353 2211 msgstr "" 2354 2212 2355 - #: src/components/status.jsx:3295 2213 + #: src/components/status.jsx:3297 2356 2214 msgid "Account Emojis:" 2357 2215 msgstr "" 2358 2216 2359 - #: src/components/status.jsx:3326 2360 - #: src/components/status.jsx:3371 2217 + #: src/components/status.jsx:3328 2218 + #: src/components/status.jsx:3373 2361 2219 msgid "static URL" 2362 2220 msgstr "" 2363 2221 2364 - #: src/components/status.jsx:3340 2222 + #: src/components/status.jsx:3342 2365 2223 msgid "Emojis:" 2366 2224 msgstr "" 2367 2225 2368 - #: src/components/status.jsx:3385 2226 + #: src/components/status.jsx:3387 2369 2227 msgid "Notes:" 2370 2228 msgstr "" 2371 2229 2372 - #: src/components/status.jsx:3389 2230 + #: src/components/status.jsx:3391 2373 2231 msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed." 2374 2232 msgstr "" 2375 2233 2376 - #: src/components/status.jsx:3395 2234 + #: src/components/status.jsx:3397 2377 2235 msgid "Polls are not interactive, becomes a list with vote counts." 2378 2236 msgstr "" 2379 2237 2380 - #: src/components/status.jsx:3400 2238 + #: src/components/status.jsx:3402 2381 2239 msgid "Media attachments can be images, videos, audios or any file types." 2382 2240 msgstr "" 2383 2241 2384 - #: src/components/status.jsx:3406 2242 + #: src/components/status.jsx:3408 2385 2243 msgid "Post could be edited or deleted later." 2386 2244 msgstr "" 2387 2245 2388 - #: src/components/status.jsx:3412 2246 + #: src/components/status.jsx:3414 2389 2247 msgid "Preview" 2390 2248 msgstr "" 2391 2249 2392 - #: src/components/status.jsx:3421 2250 + #: src/components/status.jsx:3423 2393 2251 msgid "Note: This preview is lightly styled." 2394 2252 msgstr "" 2395 2253 2396 2254 #. [Name] [Visibility icon] boosted 2397 - #: src/components/status.jsx:3665 2255 + #: src/components/status.jsx:3667 2398 2256 msgid "<0/> <1/> boosted" 2399 2257 msgstr "" 2400 2258 2401 - #: src/components/timeline.jsx:453 2402 - #: src/pages/settings.jsx:1173 2259 + #: src/components/timeline.jsx:455 2260 + #: src/pages/settings.jsx:1175 2403 2261 msgid "New posts" 2404 2262 msgstr "" 2405 2263 2406 - #: src/components/timeline.jsx:554 2407 - #: src/pages/home.jsx:213 2264 + #: src/components/timeline.jsx:556 2265 + #: src/pages/home.jsx:214 2408 2266 #: src/pages/notifications.jsx:871 2409 - #: src/pages/status.jsx:988 2410 - #: src/pages/status.jsx:1361 2267 + #: src/pages/status.jsx:990 2268 + #: src/pages/status.jsx:1363 2411 2269 msgid "Try again" 2412 2270 msgstr "" 2413 2271 2414 2272 #. placeholder {0}: fItems.length 2415 - #: src/components/timeline.jsx:588 2273 + #: src/components/timeline.jsx:591 2416 2274 msgid "{0, plural, one {# Boost} other {# Boosts}}" 2417 2275 msgstr "{0, plural, one {# Boost} other {# Boosts}}" 2418 2276 2419 - #: src/components/timeline.jsx:593 2277 + #: src/components/timeline.jsx:596 2420 2278 msgid "Pinned posts" 2421 2279 msgstr "Pinned posts" 2422 2280 2423 - #: src/components/timeline.jsx:946 2424 - #: src/components/timeline.jsx:953 2425 - #: src/pages/catchup.jsx:1893 2281 + #: src/components/timeline.jsx:951 2282 + #: src/components/timeline.jsx:958 2283 + #: src/pages/catchup.jsx:1894 2426 2284 msgid "Thread" 2427 2285 msgstr "" 2428 2286 2429 2287 #. placeholder {0}: filterInfo.titlesStr 2430 - #: src/components/timeline.jsx:968 2288 + #: src/components/timeline.jsx:973 2431 2289 msgid "<0>Filtered</0>: <1>{0}</1>" 2432 2290 msgstr "" 2433 2291 2434 - #: src/components/translation-block.jsx:152 2292 + #: src/components/translation-block.jsx:153 2435 2293 msgid "Auto-translated from {sourceLangText}" 2436 2294 msgstr "" 2437 2295 2438 - #: src/components/translation-block.jsx:190 2296 + #: src/components/translation-block.jsx:191 2439 2297 msgid "Translating…" 2440 2298 msgstr "" 2441 2299 2442 - #: src/components/translation-block.jsx:193 2300 + #: src/components/translation-block.jsx:194 2443 2301 msgid "Translate from {sourceLangText} (auto-detected)" 2444 2302 msgstr "" 2445 2303 2446 - #: src/components/translation-block.jsx:194 2304 + #: src/components/translation-block.jsx:195 2447 2305 msgid "Translate from {sourceLangText}" 2448 2306 msgstr "" 2449 2307 2450 2308 #. placeholder {0}: detectedLang ?? '…' 2451 - #: src/components/translation-block.jsx:222 2309 + #: src/components/translation-block.jsx:223 2452 2310 msgid "Auto ({0})" 2453 2311 msgstr "" 2454 2312 2455 - #: src/components/translation-block.jsx:235 2313 + #: src/components/translation-block.jsx:236 2456 2314 msgid "Failed to translate" 2457 2315 msgstr "" 2458 2316 2459 - #: src/compose.jsx:32 2317 + #: src/compose.jsx:33 2460 2318 msgid "Editing source status" 2461 2319 msgstr "" 2462 2320 2463 2321 #. placeholder {0}: replyToStatus.account?.acct || replyToStatus.account?.username 2464 - #: src/compose.jsx:34 2322 + #: src/compose.jsx:35 2465 2323 msgid "Replying to @{0}" 2466 2324 msgstr "" 2467 2325 2468 - #: src/compose.jsx:62 2326 + #: src/compose.jsx:63 2469 2327 msgid "You may close this page now." 2470 2328 msgstr "" 2471 2329 2472 - #: src/compose.jsx:70 2330 + #: src/compose.jsx:71 2473 2331 msgid "Close window" 2474 2332 msgstr "" 2475 2333 2476 - #: src/compose.jsx:86 2334 + #: src/compose.jsx:87 2477 2335 msgid "Login required." 2478 2336 msgstr "Login required." 2479 2337 2480 - #: src/compose.jsx:90 2481 - #: src/pages/annual-report.jsx:165 2338 + #: src/compose.jsx:91 2339 + #: src/pages/annual-report.jsx:164 2482 2340 #: src/pages/http-route.jsx:91 2483 - #: src/pages/login.jsx:270 2341 + #: src/pages/login.jsx:271 2484 2342 msgid "Go home" 2485 2343 msgstr "" 2486 2344 2487 - #: src/pages/account-statuses.jsx:233 2345 + #: src/pages/account-statuses.jsx:232 2488 2346 msgid "Account posts" 2489 2347 msgstr "" 2490 2348 2491 - #: src/pages/account-statuses.jsx:240 2349 + #: src/pages/account-statuses.jsx:239 2492 2350 msgid "{accountDisplay} (+ Replies)" 2493 2351 msgstr "" 2494 2352 2495 - #: src/pages/account-statuses.jsx:242 2353 + #: src/pages/account-statuses.jsx:241 2496 2354 msgid "{accountDisplay} (- Boosts)" 2497 2355 msgstr "" 2498 2356 2499 - #: src/pages/account-statuses.jsx:244 2357 + #: src/pages/account-statuses.jsx:243 2500 2358 msgid "{accountDisplay} (#{tagged})" 2501 2359 msgstr "" 2502 2360 2503 - #: src/pages/account-statuses.jsx:246 2361 + #: src/pages/account-statuses.jsx:245 2504 2362 msgid "{accountDisplay} (Media)" 2505 2363 msgstr "" 2506 2364 2507 - #: src/pages/account-statuses.jsx:252 2365 + #: src/pages/account-statuses.jsx:251 2508 2366 msgid "{accountDisplay} ({monthYear})" 2509 2367 msgstr "" 2510 2368 2511 - #: src/pages/account-statuses.jsx:321 2369 + #: src/pages/account-statuses.jsx:320 2512 2370 msgid "Clear filters" 2513 2371 msgstr "" 2514 2372 2515 - #: src/pages/account-statuses.jsx:324 2373 + #: src/pages/account-statuses.jsx:323 2516 2374 msgid "Clear" 2517 2375 msgstr "" 2518 2376 2519 - #: src/pages/account-statuses.jsx:338 2377 + #: src/pages/account-statuses.jsx:337 2520 2378 msgid "Showing post with replies" 2521 2379 msgstr "" 2522 2380 2523 - #: src/pages/account-statuses.jsx:343 2381 + #: src/pages/account-statuses.jsx:342 2524 2382 msgid "+ Replies" 2525 2383 msgstr "" 2526 2384 2527 - #: src/pages/account-statuses.jsx:349 2385 + #: src/pages/account-statuses.jsx:348 2528 2386 msgid "Showing posts without boosts" 2529 2387 msgstr "" 2530 2388 2531 - #: src/pages/account-statuses.jsx:354 2389 + #: src/pages/account-statuses.jsx:353 2532 2390 msgid "- Boosts" 2533 2391 msgstr "" 2534 2392 2535 - #: src/pages/account-statuses.jsx:360 2393 + #: src/pages/account-statuses.jsx:359 2536 2394 msgid "Showing posts with media" 2537 2395 msgstr "" 2538 2396 2397 + #: src/pages/account-statuses.jsx:364 2398 + msgid "Media" 2399 + msgstr "" 2400 + 2539 2401 #. placeholder {0}: tag.name 2540 - #: src/pages/account-statuses.jsx:377 2402 + #: src/pages/account-statuses.jsx:376 2541 2403 msgid "Showing posts tagged with #{0}" 2542 2404 msgstr "" 2543 2405 2544 - #. placeholder {0}: date.toLocaleString(i18n.locale, { month: 'long', year: 'numeric', }) 2545 - #: src/pages/account-statuses.jsx:416 2546 - msgid "Showing posts in {0}" 2547 - msgstr "" 2406 + #. placeholder {1}: date.toLocaleString(i18n.locale, { month: 'long', year: 'numeric', }) 2407 + #: src/pages/account-statuses.jsx:415 2408 + msgid "Showing posts in {1}" 2409 + msgstr "Showing posts in {1}" 2548 2410 2549 - #: src/pages/account-statuses.jsx:505 2411 + #: src/pages/account-statuses.jsx:504 2550 2412 msgid "Nothing to see here yet." 2551 2413 msgstr "" 2552 2414 2553 - #: src/pages/account-statuses.jsx:506 2554 - #: src/pages/public.jsx:97 2555 - #: src/pages/trending.jsx:449 2415 + #: src/pages/account-statuses.jsx:505 2416 + #: src/pages/public.jsx:98 2417 + #: src/pages/trending.jsx:450 2556 2418 msgid "Unable to load posts" 2557 2419 msgstr "" 2558 2420 2559 - #: src/pages/account-statuses.jsx:547 2560 - #: src/pages/account-statuses.jsx:577 2421 + #: src/pages/account-statuses.jsx:546 2422 + #: src/pages/account-statuses.jsx:576 2561 2423 msgid "Unable to fetch account info" 2562 2424 msgstr "" 2563 2425 2564 2426 #. placeholder {0}: accountInstance ? ( <> {' '} (<b>{punycode.toUnicode(accountInstance)}</b>) </> ) : null 2565 - #: src/pages/account-statuses.jsx:554 2427 + #: src/pages/account-statuses.jsx:553 2566 2428 msgid "Switch to account's instance {0}" 2567 2429 msgstr "" 2568 2430 2569 - #: src/pages/account-statuses.jsx:584 2431 + #: src/pages/account-statuses.jsx:583 2570 2432 msgid "Switch to my instance (<0>{currentInstance}</0>)" 2571 2433 msgstr "" 2572 2434 2573 - #: src/pages/account-statuses.jsx:646 2435 + #: src/pages/account-statuses.jsx:645 2574 2436 msgid "Month" 2575 2437 msgstr "" 2576 2438 2577 - #: src/pages/accounts.jsx:55 2439 + #: src/pages/accounts.jsx:56 2578 2440 msgid "Current" 2579 2441 msgstr "" 2580 2442 2581 - #: src/pages/accounts.jsx:101 2443 + #: src/pages/accounts.jsx:102 2582 2444 msgid "Default" 2583 2445 msgstr "" 2584 2446 2585 - #: src/pages/accounts.jsx:123 2447 + #: src/pages/accounts.jsx:124 2586 2448 msgid "Switch to this account" 2587 2449 msgstr "Switch to this account" 2588 2450 2589 - #: src/pages/accounts.jsx:132 2451 + #: src/pages/accounts.jsx:133 2590 2452 msgid "Switch in new tab/window" 2591 2453 msgstr "Switch in new tab/window" 2592 2454 2593 - #: src/pages/accounts.jsx:146 2455 + #: src/pages/accounts.jsx:147 2594 2456 msgid "View profile…" 2595 2457 msgstr "" 2596 2458 2597 - #: src/pages/accounts.jsx:163 2459 + #: src/pages/accounts.jsx:164 2598 2460 msgid "Set as default" 2599 2461 msgstr "" 2600 2462 2601 2463 #. placeholder {0}: account.info.acct 2602 - #: src/pages/accounts.jsx:173 2464 + #: src/pages/accounts.jsx:174 2603 2465 msgid "Log out <0>@{0}</0>?" 2604 2466 msgstr "" 2605 2467 2606 - #: src/pages/accounts.jsx:196 2468 + #: src/pages/accounts.jsx:197 2607 2469 msgid "Log out…" 2608 2470 msgstr "" 2609 2471 2610 - #: src/pages/accounts.jsx:209 2472 + #: src/pages/accounts.jsx:210 2611 2473 msgid "Add an existing account" 2612 2474 msgstr "" 2613 2475 2614 - #: src/pages/accounts.jsx:216 2476 + #: src/pages/accounts.jsx:217 2615 2477 msgid "Note: <0>Default</0> account will always be used for first load. Switched accounts will persist during the session." 2616 2478 msgstr "" 2617 2479 2618 - #: src/pages/bookmarks.jsx:25 2480 + #: src/pages/bookmarks.jsx:26 2619 2481 msgid "No bookmarks yet. Go bookmark something!" 2620 2482 msgstr "No bookmarks yet. Go bookmark something!" 2621 2483 2622 - #: src/pages/bookmarks.jsx:26 2484 + #: src/pages/bookmarks.jsx:27 2623 2485 msgid "Unable to load bookmarks." 2624 2486 msgstr "" 2625 2487 ··· 2685 2547 2686 2548 #: src/pages/catchup.jsx:596 2687 2549 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 {}}" 2688 - msgstr "" 2550 + msgstr "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 {}}" 2689 2551 2690 2552 #: src/pages/catchup.jsx:882 2691 2553 #: src/pages/catchup.jsx:906 ··· 2707 2569 2708 2570 #: src/pages/catchup.jsx:926 2709 2571 msgid "Preview of Catch-up UI" 2710 - msgstr "" 2572 + msgstr "Preview of Catch-up UI" 2711 2573 2712 2574 #: src/pages/catchup.jsx:935 2713 2575 msgid "Let's catch up" ··· 2723 2585 2724 2586 #: src/pages/catchup.jsx:967 2725 2587 msgid "until the max" 2726 - msgstr "" 2588 + msgstr "until the max" 2727 2589 2728 2590 #: src/pages/catchup.jsx:997 2729 2591 msgid "Catch up" ··· 2753 2615 2754 2616 #: src/pages/catchup.jsx:1062 2755 2617 msgid "Remove this catch-up?" 2756 - msgstr "" 2618 + msgstr "Remove this catch-up?" 2757 2619 2758 2620 #. placeholder {0}: pc.id 2759 2621 #: src/pages/catchup.jsx:1065 2760 2622 msgid "Removing Catch-up {0}" 2761 2623 msgstr "Removing Catch-up {0}" 2762 2624 2763 - #. placeholder {0}: pc.id 2625 + #. placeholder {1}: pc.id 2764 2626 #: src/pages/catchup.jsx:1069 2765 - msgid "Catch-up {0} removed" 2766 - msgstr "Catch-up {0} removed" 2627 + msgid "Catch-up {1} removed" 2628 + msgstr "Catch-up {1} removed" 2767 2629 2768 2630 #: src/pages/catchup.jsx:1083 2769 2631 msgid "Note: Only max 3 will be stored. The rest will be automatically removed." ··· 2792 2654 msgstr "" 2793 2655 2794 2656 #: src/pages/catchup.jsx:1316 2795 - #: src/pages/mentions.jsx:147 2796 - #: src/pages/search.jsx:312 2657 + #: src/pages/mentions.jsx:148 2658 + #: src/pages/search.jsx:313 2797 2659 msgid "All" 2798 2660 msgstr "" 2799 2661 ··· 2808 2670 2809 2671 #: src/pages/catchup.jsx:1444 2810 2672 msgid "Date" 2811 - msgstr "" 2673 + msgstr "Date" 2812 2674 2813 2675 #: src/pages/catchup.jsx:1448 2814 2676 msgid "Density" 2815 - msgstr "" 2677 + msgstr "Density" 2816 2678 2817 2679 #. js-lingui-explicit-id 2818 2680 #: src/pages/catchup.jsx:1471 ··· 2821 2683 2822 2684 #: src/pages/catchup.jsx:1486 2823 2685 msgid "Authors" 2824 - msgstr "" 2686 + msgstr "Authors" 2825 2687 2826 2688 #: src/pages/catchup.jsx:1487 2827 2689 msgid "None" 2828 - msgstr "" 2690 + msgstr "None" 2829 2691 2830 2692 #: src/pages/catchup.jsx:1503 2831 2693 msgid "Show all authors" ··· 2833 2695 2834 2696 #: src/pages/catchup.jsx:1554 2835 2697 msgid "You don't have to read everything." 2836 - msgstr "" 2698 + msgstr "You don't have to read everything." 2837 2699 2838 2700 #: src/pages/catchup.jsx:1555 2839 2701 msgid "That's all." 2840 - msgstr "" 2702 + msgstr "That's all." 2841 2703 2842 2704 #: src/pages/catchup.jsx:1563 2843 2705 msgid "Back to top" ··· 2876 2738 msgstr "" 2877 2739 2878 2740 #. placeholder {0}: filterInfo.titlesStr 2879 - #: src/pages/catchup.jsx:1875 2741 + #: src/pages/catchup.jsx:1876 2880 2742 msgid "Filtered: {0}" 2743 + msgstr "Filtered: {0}" 2744 + 2745 + #: src/pages/catchup.jsx:1929 2746 + msgid "Poll" 2881 2747 msgstr "" 2882 2748 2883 - #: src/pages/favourites.jsx:25 2749 + #: src/pages/favourites.jsx:26 2884 2750 msgid "No likes yet. Go like something!" 2885 2751 msgstr "No likes yet. Go like something!" 2886 2752 2887 - #: src/pages/favourites.jsx:26 2753 + #: src/pages/favourites.jsx:27 2888 2754 msgid "Unable to load likes." 2889 2755 msgstr "" 2890 2756 2891 - #: src/pages/filters.jsx:23 2757 + #: src/pages/filters.jsx:22 2892 2758 msgid "Home and lists" 2893 2759 msgstr "" 2894 2760 2895 - #: src/pages/filters.jsx:25 2761 + #: src/pages/filters.jsx:24 2896 2762 msgid "Public timelines" 2897 2763 msgstr "" 2898 2764 2899 - #: src/pages/filters.jsx:26 2765 + #: src/pages/filters.jsx:25 2900 2766 msgid "Conversations" 2901 2767 msgstr "" 2902 2768 2903 - #: src/pages/filters.jsx:27 2769 + #: src/pages/filters.jsx:26 2904 2770 msgid "Profiles" 2905 2771 msgstr "" 2906 2772 2907 - #: src/pages/filters.jsx:42 2773 + #: src/pages/filters.jsx:41 2908 2774 msgid "Never" 2909 2775 msgstr "" 2910 2776 ··· 3003 2869 msgid "Unable to delete filter." 3004 2870 msgstr "" 3005 2871 3006 - #: src/pages/filters.jsx:608 2872 + #: src/pages/filters.jsx:609 3007 2873 msgid "Expired" 3008 2874 msgstr "" 3009 2875 3010 - #: src/pages/filters.jsx:610 2876 + #: src/pages/filters.jsx:611 3011 2877 msgid "Expiring <0/>" 3012 2878 msgstr "" 3013 2879 3014 - #: src/pages/filters.jsx:614 2880 + #: src/pages/filters.jsx:615 3015 2881 msgid "Never expires" 3016 2882 msgstr "" 3017 2883 3018 2884 #. placeholder {0}: followedHashtags.length 3019 - #: src/pages/followed-hashtags.jsx:70 2885 + #: src/pages/followed-hashtags.jsx:71 3020 2886 msgid "{0, plural, one {# hashtag} other {# hashtags}}" 3021 2887 msgstr "" 3022 2888 3023 - #: src/pages/followed-hashtags.jsx:85 2889 + #: src/pages/followed-hashtags.jsx:86 3024 2890 msgid "Unable to load followed hashtags." 3025 2891 msgstr "" 3026 2892 3027 - #: src/pages/followed-hashtags.jsx:89 2893 + #: src/pages/followed-hashtags.jsx:90 3028 2894 msgid "No hashtags followed yet." 3029 2895 msgstr "" 3030 2896 3031 - #: src/pages/following.jsx:143 2897 + #: src/pages/following.jsx:144 3032 2898 msgid "Nothing to see here." 3033 2899 msgstr "" 3034 2900 3035 - #: src/pages/following.jsx:144 3036 - #: src/pages/list.jsx:108 2901 + #: src/pages/following.jsx:145 2902 + #: src/pages/list.jsx:109 3037 2903 msgid "Unable to load posts." 3038 2904 msgstr "" 3039 2905 3040 - #: src/pages/hashtag.jsx:55 2906 + #: src/pages/hashtag.jsx:56 3041 2907 msgid "{hashtagTitle} (Media only) on {instance}" 3042 2908 msgstr "" 3043 2909 3044 - #: src/pages/hashtag.jsx:56 2910 + #: src/pages/hashtag.jsx:57 3045 2911 msgid "{hashtagTitle} on {instance}" 3046 2912 msgstr "" 3047 2913 3048 - #: src/pages/hashtag.jsx:58 2914 + #: src/pages/hashtag.jsx:59 3049 2915 msgid "{hashtagTitle} (Media only)" 3050 2916 msgstr "" 3051 2917 3052 - #: src/pages/hashtag.jsx:59 2918 + #: src/pages/hashtag.jsx:60 3053 2919 msgid "{hashtagTitle}" 3054 2920 msgstr "" 3055 2921 3056 - #: src/pages/hashtag.jsx:181 2922 + #: src/pages/hashtag.jsx:182 3057 2923 msgid "No one has posted anything with this tag yet." 3058 2924 msgstr "" 3059 2925 3060 - #: src/pages/hashtag.jsx:182 2926 + #: src/pages/hashtag.jsx:183 3061 2927 msgid "Unable to load posts with this tag" 3062 2928 msgstr "" 3063 2929 3064 - #: src/pages/hashtag.jsx:208 2930 + #: src/pages/hashtag.jsx:209 3065 2931 msgid "Unfollow #{hashtag}?" 3066 2932 msgstr "Unfollow #{hashtag}?" 3067 2933 3068 - #: src/pages/hashtag.jsx:223 2934 + #: src/pages/hashtag.jsx:224 3069 2935 msgid "Unfollowed #{hashtag}" 3070 2936 msgstr "" 3071 2937 3072 - #: src/pages/hashtag.jsx:238 2938 + #: src/pages/hashtag.jsx:239 3073 2939 msgid "Followed #{hashtag}" 3074 2940 msgstr "" 3075 2941 3076 - #: src/pages/hashtag.jsx:254 2942 + #: src/pages/hashtag.jsx:255 3077 2943 msgid "Following…" 3078 2944 msgstr "" 3079 2945 3080 - #: src/pages/hashtag.jsx:282 2946 + #: src/pages/hashtag.jsx:283 3081 2947 msgid "Unfeatured on profile" 3082 2948 msgstr "" 3083 2949 3084 - #: src/pages/hashtag.jsx:296 2950 + #: src/pages/hashtag.jsx:297 3085 2951 msgid "Unable to unfeature on profile" 3086 2952 msgstr "" 3087 2953 3088 - #: src/pages/hashtag.jsx:305 3089 - #: src/pages/hashtag.jsx:321 2954 + #: src/pages/hashtag.jsx:306 2955 + #: src/pages/hashtag.jsx:322 3090 2956 msgid "Featured on profile" 3091 2957 msgstr "" 3092 2958 3093 - #: src/pages/hashtag.jsx:328 2959 + #: src/pages/hashtag.jsx:329 3094 2960 msgid "Feature on profile" 3095 2961 msgstr "" 3096 2962 3097 - #: src/pages/hashtag.jsx:393 2963 + #: src/pages/hashtag.jsx:394 3098 2964 msgid "{TOTAL_TAGS_LIMIT, plural, other {Max # tags}}" 3099 2965 msgstr "" 3100 2966 3101 - #: src/pages/hashtag.jsx:396 2967 + #: src/pages/hashtag.jsx:397 3102 2968 msgid "Add hashtag" 3103 2969 msgstr "" 3104 2970 3105 - #: src/pages/hashtag.jsx:428 2971 + #: src/pages/hashtag.jsx:429 3106 2972 msgid "Remove hashtag" 3107 2973 msgstr "" 3108 2974 3109 - #: src/pages/hashtag.jsx:442 2975 + #: src/pages/hashtag.jsx:443 3110 2976 msgid "{SHORTCUTS_LIMIT, plural, one {Max # shortcut reached. Unable to add shortcut.} other {Max # shortcuts reached. Unable to add shortcut.}}" 3111 2977 msgstr "" 3112 2978 3113 - #: src/pages/hashtag.jsx:471 2979 + #: src/pages/hashtag.jsx:472 3114 2980 msgid "This shortcut already exists" 3115 2981 msgstr "" 3116 2982 3117 - #: src/pages/hashtag.jsx:474 2983 + #: src/pages/hashtag.jsx:475 3118 2984 msgid "Hashtag shortcut added" 3119 2985 msgstr "" 3120 2986 3121 - #: src/pages/hashtag.jsx:480 2987 + #: src/pages/hashtag.jsx:481 3122 2988 msgid "Add to Shortcuts" 3123 2989 msgstr "" 3124 2990 3125 - #: src/pages/hashtag.jsx:486 3126 - #: src/pages/public.jsx:139 3127 - #: src/pages/trending.jsx:478 2991 + #: src/pages/hashtag.jsx:487 2992 + #: src/pages/public.jsx:140 2993 + #: src/pages/trending.jsx:479 3128 2994 msgid "Enter a new instance e.g. \"mastodon.social\"" 3129 2995 msgstr "" 3130 2996 3131 - #: src/pages/hashtag.jsx:489 3132 - #: src/pages/public.jsx:142 3133 - #: src/pages/trending.jsx:481 2997 + #: src/pages/hashtag.jsx:490 2998 + #: src/pages/public.jsx:143 2999 + #: src/pages/trending.jsx:482 3134 3000 msgid "Invalid instance" 3135 3001 msgstr "" 3136 3002 3137 - #: src/pages/hashtag.jsx:503 3138 - #: src/pages/public.jsx:156 3139 - #: src/pages/trending.jsx:493 3003 + #: src/pages/hashtag.jsx:504 3004 + #: src/pages/public.jsx:157 3005 + #: src/pages/trending.jsx:494 3140 3006 msgid "Go to another instance…" 3141 3007 msgstr "" 3142 3008 3143 - #: src/pages/hashtag.jsx:516 3144 - #: src/pages/public.jsx:169 3145 - #: src/pages/trending.jsx:504 3009 + #: src/pages/hashtag.jsx:517 3010 + #: src/pages/public.jsx:170 3011 + #: src/pages/trending.jsx:505 3146 3012 msgid "Go to my instance (<0>{currentInstance}</0>)" 3147 3013 msgstr "" 3148 3014 3149 - #: src/pages/home.jsx:209 3015 + #: src/pages/home.jsx:210 3150 3016 msgid "Unable to fetch notifications." 3151 3017 msgstr "" 3152 3018 3153 - #: src/pages/home.jsx:229 3019 + #: src/pages/home.jsx:230 3154 3020 msgid "<0>New</0> <1>Follow Requests</1>" 3155 3021 msgstr "" 3156 3022 3157 - #: src/pages/home.jsx:235 3023 + #: src/pages/home.jsx:236 3158 3024 msgid "See all" 3159 3025 msgstr "" 3160 3026 ··· 3166 3032 msgid "Unable to resolve URL" 3167 3033 msgstr "" 3168 3034 3169 - #: src/pages/list.jsx:107 3035 + #: src/pages/list.jsx:108 3170 3036 msgid "Nothing yet." 3171 3037 msgstr "" 3172 3038 3173 - #: src/pages/list.jsx:176 3174 - #: src/pages/list.jsx:279 3039 + #: src/pages/list.jsx:177 3040 + #: src/pages/list.jsx:281 3175 3041 msgid "Manage members" 3176 3042 msgstr "" 3177 3043 3178 3044 #. placeholder {0}: account.username 3179 - #: src/pages/list.jsx:313 3045 + #: src/pages/list.jsx:316 3180 3046 msgid "Remove <0>@{0}</0> from list?" 3181 3047 msgstr "" 3182 3048 3183 - #: src/pages/list.jsx:359 3049 + #: src/pages/list.jsx:362 3184 3050 msgid "Remove…" 3185 3051 msgstr "" 3186 3052 3187 3053 #. placeholder {0}: lists.length 3188 - #: src/pages/lists.jsx:93 3054 + #: src/pages/lists.jsx:94 3189 3055 msgid "{0, plural, one {# list} other {# lists}}" 3190 3056 msgstr "" 3191 3057 3192 - #: src/pages/lists.jsx:108 3058 + #: src/pages/lists.jsx:109 3193 3059 msgid "No lists yet." 3194 3060 msgstr "" 3195 3061 3196 - #: src/pages/login.jsx:109 3197 - #: src/pages/login.jsx:122 3062 + #: src/pages/login.jsx:110 3063 + #: src/pages/login.jsx:123 3198 3064 msgid "Failed to register application" 3199 3065 msgstr "Failed to register application" 3200 3066 3201 - #: src/pages/login.jsx:208 3067 + #: src/pages/login.jsx:209 3202 3068 msgid "instance domain" 3203 3069 msgstr "instance domain" 3204 3070 3205 - #: src/pages/login.jsx:232 3071 + #: src/pages/login.jsx:233 3206 3072 msgid "e.g. “mastodon.social”" 3207 3073 msgstr "" 3208 3074 3209 - #: src/pages/login.jsx:243 3075 + #: src/pages/login.jsx:244 3210 3076 msgid "Failed to log in. Please try again or try another instance." 3211 3077 msgstr "" 3212 3078 3213 - #: src/pages/login.jsx:255 3079 + #: src/pages/login.jsx:256 3214 3080 msgid "Continue with {selectedInstanceText}" 3215 3081 msgstr "" 3216 3082 3217 - #: src/pages/login.jsx:256 3083 + #: src/pages/login.jsx:257 3218 3084 msgid "Continue" 3219 3085 msgstr "" 3220 3086 3221 - #: src/pages/login.jsx:264 3087 + #: src/pages/login.jsx:265 3222 3088 msgid "Don't have an account? Create one!" 3223 3089 msgstr "" 3224 3090 3225 - #: src/pages/mentions.jsx:20 3091 + #: src/pages/mentions.jsx:21 3226 3092 msgid "Private mentions" 3227 3093 msgstr "" 3228 3094 3229 - #: src/pages/mentions.jsx:159 3095 + #: src/pages/mentions.jsx:160 3230 3096 msgid "Private" 3231 3097 msgstr "" 3232 3098 3233 - #: src/pages/mentions.jsx:169 3099 + #: src/pages/mentions.jsx:170 3234 3100 msgid "No one mentioned you :(" 3235 3101 msgstr "" 3236 3102 3237 - #: src/pages/mentions.jsx:170 3103 + #: src/pages/mentions.jsx:171 3238 3104 msgid "Unable to load mentions." 3239 3105 msgstr "" 3240 3106 ··· 3273 3139 msgstr "" 3274 3140 3275 3141 #: src/pages/notifications.jsx:654 3276 - #: src/pages/settings.jsx:1161 3142 + #: src/pages/settings.jsx:1163 3277 3143 msgid "Follow requests" 3278 3144 msgstr "" 3279 3145 ··· 3339 3205 msgstr "" 3340 3206 3341 3207 #. placeholder {0}: request.account.username 3342 - #: src/pages/notifications.jsx:1200 3208 + #: src/pages/notifications.jsx:1201 3343 3209 msgid "Notifications from @{0} will not be filtered from now on." 3344 3210 msgstr "" 3345 3211 3346 - #: src/pages/notifications.jsx:1205 3212 + #: src/pages/notifications.jsx:1206 3347 3213 msgid "Unable to accept notification request" 3348 3214 msgstr "" 3349 3215 3350 - #: src/pages/notifications.jsx:1210 3216 + #: src/pages/notifications.jsx:1211 3351 3217 msgid "Allow" 3352 3218 msgstr "" 3353 3219 3354 - #. placeholder {0}: request.account.username 3355 - #: src/pages/notifications.jsx:1230 3356 - msgid "Notifications from @{0} will not show up in Filtered notifications from now on." 3357 - msgstr "" 3220 + #. placeholder {1}: request.account.username 3221 + #: src/pages/notifications.jsx:1231 3222 + msgid "Notifications from @{1} will not show up in Filtered notifications from now on." 3223 + msgstr "Notifications from @{1} will not show up in Filtered notifications from now on." 3358 3224 3359 - #: src/pages/notifications.jsx:1235 3225 + #: src/pages/notifications.jsx:1236 3360 3226 msgid "Unable to dismiss notification request" 3361 3227 msgstr "" 3362 3228 3363 - #: src/pages/notifications.jsx:1240 3229 + #: src/pages/notifications.jsx:1241 3364 3230 msgid "Dismiss" 3365 3231 msgstr "" 3366 3232 3367 - #: src/pages/notifications.jsx:1255 3233 + #: src/pages/notifications.jsx:1256 3368 3234 msgid "Dismissed" 3369 3235 msgstr "" 3370 3236 3371 - #: src/pages/public.jsx:27 3237 + #: src/pages/public.jsx:28 3372 3238 msgid "Local timeline ({instance})" 3373 3239 msgstr "" 3374 3240 3375 - #: src/pages/public.jsx:28 3241 + #: src/pages/public.jsx:29 3376 3242 msgid "Federated timeline ({instance})" 3377 3243 msgstr "" 3378 3244 3379 - #: src/pages/public.jsx:90 3245 + #: src/pages/public.jsx:91 3380 3246 msgid "Local timeline" 3381 3247 msgstr "" 3382 3248 3383 - #: src/pages/public.jsx:90 3249 + #: src/pages/public.jsx:91 3384 3250 msgid "Federated timeline" 3385 3251 msgstr "" 3386 3252 3387 - #: src/pages/public.jsx:96 3253 + #: src/pages/public.jsx:97 3388 3254 msgid "No one has posted anything yet." 3389 3255 msgstr "" 3390 3256 3391 - #: src/pages/public.jsx:123 3257 + #: src/pages/public.jsx:124 3392 3258 msgid "Switch to Federated" 3393 - msgstr "" 3259 + msgstr "Switch to Federated" 3394 3260 3395 - #: src/pages/public.jsx:130 3261 + #: src/pages/public.jsx:131 3396 3262 msgid "Switch to Local" 3397 - msgstr "" 3263 + msgstr "Switch to Local" 3398 3264 3399 - #: src/pages/search.jsx:49 3265 + #: src/pages/search.jsx:50 3400 3266 msgid "Search: {q} (Posts)" 3401 3267 msgstr "" 3402 3268 3403 - #: src/pages/search.jsx:52 3269 + #: src/pages/search.jsx:53 3404 3270 msgid "Search: {q} (Accounts)" 3405 3271 msgstr "" 3406 3272 3407 - #: src/pages/search.jsx:55 3273 + #: src/pages/search.jsx:56 3408 3274 msgid "Search: {q} (Hashtags)" 3409 3275 msgstr "" 3410 3276 3411 - #: src/pages/search.jsx:58 3277 + #: src/pages/search.jsx:59 3412 3278 msgid "Search: {q}" 3413 3279 msgstr "" 3414 3280 3415 - #: src/pages/search.jsx:322 3416 - #: src/pages/search.jsx:404 3281 + #: src/pages/search.jsx:323 3282 + #: src/pages/search.jsx:405 3417 3283 msgid "Hashtags" 3418 3284 msgstr "" 3419 3285 3420 - #: src/pages/search.jsx:354 3421 - #: src/pages/search.jsx:408 3422 - #: src/pages/search.jsx:478 3286 + #: src/pages/search.jsx:355 3287 + #: src/pages/search.jsx:409 3288 + #: src/pages/search.jsx:479 3423 3289 msgid "See more" 3424 3290 msgstr "" 3425 3291 3426 - #: src/pages/search.jsx:380 3292 + #: src/pages/search.jsx:381 3427 3293 msgid "See more accounts" 3428 3294 msgstr "" 3429 3295 3430 - #: src/pages/search.jsx:394 3296 + #: src/pages/search.jsx:395 3431 3297 msgid "No accounts found." 3432 3298 msgstr "" 3433 3299 3434 - #: src/pages/search.jsx:450 3300 + #: src/pages/search.jsx:451 3435 3301 msgid "See more hashtags" 3436 3302 msgstr "" 3437 3303 3438 - #: src/pages/search.jsx:464 3304 + #: src/pages/search.jsx:465 3439 3305 msgid "No hashtags found." 3440 3306 msgstr "" 3441 3307 3442 - #: src/pages/search.jsx:508 3308 + #: src/pages/search.jsx:509 3443 3309 msgid "See more posts" 3444 3310 msgstr "" 3445 3311 3446 - #: src/pages/search.jsx:522 3312 + #: src/pages/search.jsx:523 3447 3313 msgid "No posts found." 3448 3314 msgstr "" 3449 3315 3450 - #: src/pages/search.jsx:566 3316 + #: src/pages/search.jsx:567 3451 3317 msgid "Enter your search term or paste a URL above to get started." 3452 3318 msgstr "" 3453 3319 3454 - #: src/pages/settings.jsx:82 3320 + #: src/pages/settings.jsx:83 3455 3321 msgid "Settings" 3456 3322 msgstr "" 3457 3323 3458 - #: src/pages/settings.jsx:91 3324 + #: src/pages/settings.jsx:92 3459 3325 msgid "Appearance" 3460 3326 msgstr "" 3461 3327 3462 - #: src/pages/settings.jsx:167 3328 + #: src/pages/settings.jsx:168 3463 3329 msgid "Light" 3464 3330 msgstr "" 3465 3331 3466 - #: src/pages/settings.jsx:178 3332 + #: src/pages/settings.jsx:179 3467 3333 msgid "Dark" 3468 3334 msgstr "" 3469 3335 3470 - #: src/pages/settings.jsx:191 3336 + #: src/pages/settings.jsx:192 3471 3337 msgid "Auto" 3472 3338 msgstr "" 3473 3339 3474 - #: src/pages/settings.jsx:201 3340 + #: src/pages/settings.jsx:202 3475 3341 msgid "Text size" 3476 3342 msgstr "" 3477 3343 3478 3344 #. Preview of one character, in smallest size 3479 3345 #. Preview of one character, in largest size 3480 - #: src/pages/settings.jsx:206 3481 - #: src/pages/settings.jsx:231 3346 + #: src/pages/settings.jsx:207 3347 + #: src/pages/settings.jsx:232 3482 3348 msgid "A" 3483 3349 msgstr "" 3484 3350 3485 - #: src/pages/settings.jsx:245 3351 + #: src/pages/settings.jsx:246 3486 3352 msgid "Display language" 3487 3353 msgstr "" 3488 3354 3489 - #: src/pages/settings.jsx:254 3355 + #: src/pages/settings.jsx:255 3490 3356 msgid "Volunteer translations" 3491 3357 msgstr "Volunteer translations" 3492 3358 3493 - #: src/pages/settings.jsx:265 3359 + #: src/pages/settings.jsx:266 3494 3360 msgid "Posting" 3495 3361 msgstr "" 3496 3362 3497 - #: src/pages/settings.jsx:272 3363 + #: src/pages/settings.jsx:273 3498 3364 msgid "Default visibility" 3499 3365 msgstr "" 3500 3366 3501 - #: src/pages/settings.jsx:273 3502 - #: src/pages/settings.jsx:319 3367 + #: src/pages/settings.jsx:274 3368 + #: src/pages/settings.jsx:320 3503 3369 msgid "Synced" 3504 3370 msgstr "" 3505 3371 3506 - #: src/pages/settings.jsx:298 3372 + #: src/pages/settings.jsx:299 3507 3373 msgid "Failed to update posting privacy" 3508 3374 msgstr "" 3509 3375 3510 - #: src/pages/settings.jsx:321 3376 + #: src/pages/settings.jsx:322 3511 3377 msgid "Synced to your instance server's settings. <0>Go to your instance ({instance}) for more settings.</0>" 3512 3378 msgstr "" 3513 3379 3514 - #: src/pages/settings.jsx:336 3380 + #: src/pages/settings.jsx:337 3515 3381 msgid "Experiments" 3516 3382 msgstr "" 3517 3383 3518 - #: src/pages/settings.jsx:349 3384 + #: src/pages/settings.jsx:350 3519 3385 msgid "Auto refresh timeline posts" 3520 3386 msgstr "" 3521 3387 3522 - #: src/pages/settings.jsx:361 3388 + #: src/pages/settings.jsx:362 3523 3389 msgid "Boosts carousel" 3524 3390 msgstr "" 3525 3391 3526 - #: src/pages/settings.jsx:377 3392 + #: src/pages/settings.jsx:378 3527 3393 msgid "Post translation" 3528 3394 msgstr "" 3529 3395 3530 - #: src/pages/settings.jsx:388 3396 + #: src/pages/settings.jsx:389 3531 3397 msgid "Translate to " 3532 3398 msgstr "Translate to " 3533 3399 3534 - #: src/pages/settings.jsx:399 3400 + #: src/pages/settings.jsx:400 3535 3401 msgid "System language ({systemTargetLanguageText})" 3536 3402 msgstr "" 3537 3403 3538 3404 #. placeholder {0}: snapStates.settings.contentTranslationHideLanguages.length 3539 - #: src/pages/settings.jsx:425 3405 + #: src/pages/settings.jsx:426 3540 3406 msgid "{0, plural, =0 {Hide \"Translate\" button for:} other {Hide \"Translate\" button for (#):}}" 3541 3407 msgstr "" 3542 3408 3543 - #: src/pages/settings.jsx:479 3409 + #: src/pages/settings.jsx:480 3544 3410 msgid "Note: This feature uses external translation services, powered by <0>Lingva API</0> & <1>Lingva Translate</1>." 3545 3411 msgstr "" 3546 3412 3547 - #: src/pages/settings.jsx:513 3413 + #: src/pages/settings.jsx:514 3548 3414 msgid "Auto inline translation" 3549 3415 msgstr "" 3550 3416 3551 - #: src/pages/settings.jsx:517 3417 + #: src/pages/settings.jsx:518 3552 3418 msgid "Automatically show translation for posts in timeline. Only works for <0>short</0> posts without content warning, media and poll." 3553 3419 msgstr "" 3554 3420 3555 - #: src/pages/settings.jsx:537 3421 + #: src/pages/settings.jsx:538 3556 3422 msgid "GIF Picker for composer" 3557 3423 msgstr "" 3558 3424 3559 - #: src/pages/settings.jsx:541 3425 + #: src/pages/settings.jsx:542 3560 3426 msgid "Note: This feature uses external GIF search service, powered by <0>GIPHY</0>. 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." 3561 3427 msgstr "" 3562 3428 3563 - #: src/pages/settings.jsx:570 3429 + #: src/pages/settings.jsx:571 3564 3430 msgid "Image description generator" 3565 3431 msgstr "" 3566 3432 3567 - #: src/pages/settings.jsx:575 3433 + #: src/pages/settings.jsx:576 3568 3434 msgid "Only for new images while composing new posts." 3569 3435 msgstr "" 3570 3436 3571 - #: src/pages/settings.jsx:582 3437 + #: src/pages/settings.jsx:583 3572 3438 msgid "Note: This feature uses external AI service, powered by <0>img-alt-api</0>. May not work well. Only for images and in English." 3573 3439 msgstr "" 3574 3440 3575 - #: src/pages/settings.jsx:608 3441 + #: src/pages/settings.jsx:609 3576 3442 msgid "Server-side grouped notifications" 3577 3443 msgstr "" 3578 3444 3579 - #: src/pages/settings.jsx:612 3445 + #: src/pages/settings.jsx:613 3580 3446 msgid "Alpha-stage feature. Potentially improved grouping window but basic grouping logic." 3581 3447 msgstr "" 3582 3448 3583 - #: src/pages/settings.jsx:633 3449 + #: src/pages/settings.jsx:634 3584 3450 msgid "\"Cloud\" import/export for shortcuts settings" 3585 3451 msgstr "" 3586 3452 3587 - #: src/pages/settings.jsx:638 3453 + #: src/pages/settings.jsx:639 3588 3454 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." 3589 3455 msgstr "" 3590 3456 3591 - #: src/pages/settings.jsx:649 3457 + #: src/pages/settings.jsx:650 3592 3458 msgid "Note: This feature uses currently-logged-in instance server API." 3593 3459 msgstr "" 3594 3460 3595 - #: src/pages/settings.jsx:666 3461 + #: src/pages/settings.jsx:667 3596 3462 msgid "Cloak mode <0>(<1>Text</1> → <2>████</2>)</0>" 3597 3463 msgstr "" 3598 3464 3599 - #: src/pages/settings.jsx:675 3465 + #: src/pages/settings.jsx:676 3600 3466 msgid "Replace text as blocks, useful when taking screenshots, for privacy reasons." 3601 3467 msgstr "" 3602 3468 3603 - #: src/pages/settings.jsx:700 3469 + #: src/pages/settings.jsx:701 3604 3470 msgid "About" 3605 3471 msgstr "" 3606 3472 3607 - #: src/pages/settings.jsx:739 3473 + #: src/pages/settings.jsx:740 3608 3474 msgid "<0>Built</0> by <1>@cheeaun</1>" 3609 3475 msgstr "" 3610 3476 3611 - #: src/pages/settings.jsx:768 3477 + #: src/pages/settings.jsx:769 3612 3478 msgid "Sponsor" 3613 3479 msgstr "" 3614 3480 3615 - #: src/pages/settings.jsx:776 3481 + #: src/pages/settings.jsx:777 3616 3482 msgid "Donate" 3617 3483 msgstr "Donate" 3618 3484 3619 - #: src/pages/settings.jsx:792 3485 + #: src/pages/settings.jsx:793 3620 3486 msgid "Privacy Policy" 3621 3487 msgstr "" 3622 3488 3623 3489 #. placeholder {0}: WEBSITE.replace(/https?:\/\//g, '').replace(/\/$/, '') 3624 - #: src/pages/settings.jsx:799 3490 + #: src/pages/settings.jsx:800 3625 3491 msgid "<0>Site:</0> {0}" 3626 3492 msgstr "" 3627 3493 3628 3494 #. placeholder {0}: !__FAKE_COMMIT_HASH__ && ( <span class="ib insignificant"> ( <a href={`https://github.com/cheeaun/phanpy/commit/${__COMMIT_HASH__}`} target="_blank" rel="noopener noreferrer" > <RelativeTime datetime={new Date(__BUILD_TIME__)} /> </a> ) </span> ) 3629 - #: src/pages/settings.jsx:806 3495 + #: src/pages/settings.jsx:807 3630 3496 msgid "<0>Version:</0> <1/> {0}" 3631 3497 msgstr "" 3632 3498 3633 - #: src/pages/settings.jsx:821 3499 + #: src/pages/settings.jsx:822 3634 3500 msgid "Version string copied" 3635 3501 msgstr "" 3636 3502 3637 - #: src/pages/settings.jsx:824 3503 + #: src/pages/settings.jsx:825 3638 3504 msgid "Unable to copy version string" 3639 3505 msgstr "" 3640 3506 3641 - #: src/pages/settings.jsx:1058 3642 - #: src/pages/settings.jsx:1063 3507 + #: src/pages/settings.jsx:1060 3508 + #: src/pages/settings.jsx:1065 3643 3509 msgid "Failed to update subscription. Please try again." 3644 3510 msgstr "" 3645 3511 3646 - #: src/pages/settings.jsx:1069 3512 + #: src/pages/settings.jsx:1071 3647 3513 msgid "Failed to remove subscription. Please try again." 3648 3514 msgstr "" 3649 3515 3650 - #: src/pages/settings.jsx:1076 3516 + #: src/pages/settings.jsx:1078 3651 3517 msgid "Push Notifications (beta)" 3652 3518 msgstr "" 3653 3519 3654 - #: src/pages/settings.jsx:1098 3520 + #: src/pages/settings.jsx:1100 3655 3521 msgid "Push notifications are blocked. Please enable them in your browser settings." 3656 3522 msgstr "" 3657 3523 3658 3524 #. placeholder {0}: [ { value: 'all', label: t`anyone`, }, { value: 'followed', label: t`people I follow`, }, { value: 'follower', label: t`followers`, }, ].map((type) => ( <option value={type.value}>{type.label}</option> )) 3659 - #: src/pages/settings.jsx:1107 3525 + #: src/pages/settings.jsx:1109 3660 3526 msgid "Allow from <0>{0}</0>" 3661 3527 msgstr "" 3662 3528 3663 - #: src/pages/settings.jsx:1116 3529 + #: src/pages/settings.jsx:1118 3664 3530 msgid "anyone" 3665 3531 msgstr "" 3666 3532 3667 - #: src/pages/settings.jsx:1120 3533 + #: src/pages/settings.jsx:1122 3668 3534 msgid "people I follow" 3669 3535 msgstr "" 3670 3536 3671 - #: src/pages/settings.jsx:1124 3537 + #: src/pages/settings.jsx:1126 3672 3538 msgid "followers" 3673 3539 msgstr "" 3674 3540 3675 - #: src/pages/settings.jsx:1157 3541 + #: src/pages/settings.jsx:1159 3676 3542 msgid "Follows" 3677 3543 msgstr "" 3678 3544 3679 - #: src/pages/settings.jsx:1165 3545 + #: src/pages/settings.jsx:1167 3680 3546 msgid "Polls" 3681 3547 msgstr "" 3682 3548 3683 - #: src/pages/settings.jsx:1169 3549 + #: src/pages/settings.jsx:1171 3684 3550 msgid "Post edits" 3685 3551 msgstr "" 3686 3552 3687 - #: src/pages/settings.jsx:1190 3553 + #: src/pages/settings.jsx:1192 3688 3554 msgid "Push permission was not granted since your last login. You'll need to <0><1>log in</1> again to grant push permission</0>." 3689 3555 msgstr "" 3690 3556 3691 - #: src/pages/settings.jsx:1206 3557 + #: src/pages/settings.jsx:1208 3692 3558 msgid "NOTE: Push notifications only work for <0>one account</0>." 3693 3559 msgstr "" 3694 3560 3695 3561 #. js-lingui-explicit-id 3696 - #: src/pages/status.jsx:597 3697 - #: src/pages/status.jsx:1131 3562 + #: src/pages/status.jsx:599 3563 + #: src/pages/status.jsx:1133 3698 3564 msgid "post.title" 3699 3565 msgstr "Post" 3700 3566 3701 - #: src/pages/status.jsx:822 3567 + #: src/pages/status.jsx:824 3702 3568 msgid "You're not logged in. Interactions (reply, boost, etc) are not possible." 3703 3569 msgstr "" 3704 3570 3705 - #: src/pages/status.jsx:842 3571 + #: src/pages/status.jsx:844 3706 3572 msgid "This post is from another instance (<0>{instance}</0>). Interactions (reply, boost, etc) are not possible." 3707 3573 msgstr "" 3708 3574 3709 - #: src/pages/status.jsx:870 3575 + #: src/pages/status.jsx:872 3710 3576 msgid "Error: {e}" 3711 3577 msgstr "" 3712 3578 3713 - #: src/pages/status.jsx:877 3579 + #: src/pages/status.jsx:879 3714 3580 msgid "Switch to my instance to enable interactions" 3715 3581 msgstr "" 3716 3582 3717 - #: src/pages/status.jsx:979 3583 + #: src/pages/status.jsx:981 3718 3584 msgid "Unable to load replies." 3719 3585 msgstr "" 3720 3586 3721 - #: src/pages/status.jsx:1091 3587 + #: src/pages/status.jsx:1093 3722 3588 msgid "Back" 3723 3589 msgstr "" 3724 3590 3725 - #: src/pages/status.jsx:1122 3591 + #: src/pages/status.jsx:1124 3726 3592 msgid "Go to main post" 3727 3593 msgstr "" 3728 3594 3729 3595 #. placeholder {0}: ancestors.length 3730 - #: src/pages/status.jsx:1145 3596 + #: src/pages/status.jsx:1147 3731 3597 msgid "{0} posts above ‒ Go to top" 3732 3598 msgstr "" 3733 3599 3734 - #: src/pages/status.jsx:1188 3735 - #: src/pages/status.jsx:1251 3600 + #: src/pages/status.jsx:1190 3601 + #: src/pages/status.jsx:1253 3736 3602 msgid "Switch to Side Peek view" 3737 3603 msgstr "" 3738 3604 3739 - #: src/pages/status.jsx:1252 3605 + #: src/pages/status.jsx:1254 3740 3606 msgid "Switch to Full view" 3741 3607 msgstr "" 3742 3608 3743 - #: src/pages/status.jsx:1270 3609 + #: src/pages/status.jsx:1272 3744 3610 msgid "Show all sensitive content" 3745 3611 msgstr "" 3746 3612 3747 - #: src/pages/status.jsx:1275 3613 + #: src/pages/status.jsx:1277 3748 3614 msgid "Experimental" 3749 3615 msgstr "" 3750 3616 3751 - #: src/pages/status.jsx:1284 3617 + #: src/pages/status.jsx:1286 3752 3618 msgid "Unable to switch" 3753 3619 msgstr "" 3754 3620 3755 - #. placeholder {0}: punycode.toUnicode( postInstance, ) 3756 - #: src/pages/status.jsx:1291 3757 - msgid "Switch to post's instance ({0})" 3758 - msgstr "" 3621 + #. placeholder {1}: punycode.toUnicode( postInstance, ) 3622 + #: src/pages/status.jsx:1293 3623 + msgid "Switch to post's instance ({1})" 3624 + msgstr "Switch to post's instance ({1})" 3759 3625 3760 - #: src/pages/status.jsx:1294 3626 + #: src/pages/status.jsx:1296 3761 3627 msgid "Switch to post's instance" 3762 3628 msgstr "" 3763 3629 3764 - #: src/pages/status.jsx:1352 3630 + #: src/pages/status.jsx:1354 3765 3631 msgid "Unable to load post" 3766 3632 msgstr "" 3767 3633 3768 3634 #. placeholder {0}: replies.length 3769 3635 #. placeholder {1}: shortenNumber(replies.length) 3770 - #: src/pages/status.jsx:1487 3636 + #: src/pages/status.jsx:1490 3771 3637 msgid "{0, plural, one {# reply} other {<0>{1}</0> replies}}" 3772 3638 msgstr "" 3773 3639 3774 3640 #. placeholder {0}: shortenNumber(totalComments) 3775 - #: src/pages/status.jsx:1505 3641 + #: src/pages/status.jsx:1508 3776 3642 msgid "{totalComments, plural, one {# comment} other {<0>{0}</0> comments}}" 3777 3643 msgstr "" 3778 3644 3779 - #: src/pages/status.jsx:1527 3645 + #: src/pages/status.jsx:1530 3780 3646 msgid "View post with its replies" 3781 3647 msgstr "" 3782 3648 3783 - #: src/pages/trending.jsx:71 3649 + #: src/pages/trending.jsx:72 3784 3650 msgid "Trending ({instance})" 3785 3651 msgstr "" 3786 3652 3787 - #: src/pages/trending.jsx:228 3653 + #: src/pages/trending.jsx:229 3788 3654 msgid "Trending News" 3789 3655 msgstr "" 3790 3656 3791 3657 #. By [Author] 3792 3658 #. placeholder {0}: author ? ( <NameText account={author} showAvatar /> ) : authorUrl ? ( <a href={authorUrl} target="_blank" rel="noopener noreferrer" > {authorName} </a> ) : ( authorName ) 3793 - #: src/pages/trending.jsx:347 3659 + #: src/pages/trending.jsx:348 3794 3660 msgid "By {0}" 3795 3661 msgstr "By {0}" 3796 3662 3797 - #: src/pages/trending.jsx:408 3663 + #: src/pages/trending.jsx:409 3798 3664 msgid "Back to showing trending posts" 3799 3665 msgstr "" 3800 3666 3801 3667 #. placeholder {0}: currentLink .replace(/^https?:\/\/(www\.)?/i, '') .replace(/\/$/, '') 3802 - #: src/pages/trending.jsx:413 3668 + #: src/pages/trending.jsx:414 3803 3669 msgid "Showing posts mentioning <0>{0}</0>" 3804 3670 msgstr "" 3805 3671 3806 - #: src/pages/trending.jsx:425 3672 + #: src/pages/trending.jsx:426 3807 3673 msgid "Trending posts" 3808 3674 msgstr "" 3809 3675 3810 - #: src/pages/trending.jsx:448 3676 + #: src/pages/trending.jsx:449 3811 3677 msgid "No trending posts." 3812 3678 msgstr "" 3813 3679 3814 - #: src/pages/welcome.jsx:53 3680 + #: src/pages/welcome.jsx:54 3815 3681 msgid "A minimalistic opinionated Mastodon web client." 3816 3682 msgstr "" 3817 3683 3818 - #: src/pages/welcome.jsx:64 3684 + #: src/pages/welcome.jsx:65 3819 3685 msgid "Log in with Mastodon" 3820 3686 msgstr "" 3821 3687 3822 - #: src/pages/welcome.jsx:70 3688 + #: src/pages/welcome.jsx:71 3823 3689 msgid "Sign up" 3824 3690 msgstr "" 3825 3691 3826 - #: src/pages/welcome.jsx:77 3692 + #: src/pages/welcome.jsx:78 3827 3693 msgid "Connect your existing Mastodon/Fediverse account.<0/>Your credentials are not stored on this server." 3828 3694 msgstr "" 3829 3695 3830 - #: src/pages/welcome.jsx:94 3696 + #: src/pages/welcome.jsx:95 3831 3697 msgid "<0>Built</0> by <1>@cheeaun</1>. <2>Privacy Policy</2>." 3832 3698 msgstr "" 3833 3699 3834 - #: src/pages/welcome.jsx:125 3700 + #: src/pages/welcome.jsx:126 3835 3701 msgid "Screenshot of Boosts Carousel" 3836 3702 msgstr "" 3837 3703 3838 - #: src/pages/welcome.jsx:129 3704 + #: src/pages/welcome.jsx:130 3839 3705 msgid "Boosts Carousel" 3840 3706 msgstr "" 3841 3707 3842 - #: src/pages/welcome.jsx:132 3708 + #: src/pages/welcome.jsx:133 3843 3709 msgid "Visually separate original posts and re-shared posts (boosted posts)." 3844 3710 msgstr "" 3845 3711 3846 - #: src/pages/welcome.jsx:141 3712 + #: src/pages/welcome.jsx:142 3847 3713 msgid "Screenshot of nested comments thread" 3848 3714 msgstr "" 3849 3715 3850 - #: src/pages/welcome.jsx:145 3716 + #: src/pages/welcome.jsx:146 3851 3717 msgid "Nested comments thread" 3852 3718 msgstr "" 3853 3719 3854 - #: src/pages/welcome.jsx:148 3720 + #: src/pages/welcome.jsx:149 3855 3721 msgid "Effortlessly follow conversations. Semi-collapsible replies." 3856 3722 msgstr "" 3857 3723 3858 - #: src/pages/welcome.jsx:156 3724 + #: src/pages/welcome.jsx:157 3859 3725 msgid "Screenshot of grouped notifications" 3860 3726 msgstr "" 3861 3727 3862 - #: src/pages/welcome.jsx:160 3728 + #: src/pages/welcome.jsx:161 3863 3729 msgid "Grouped notifications" 3864 3730 msgstr "" 3865 3731 3866 - #: src/pages/welcome.jsx:163 3732 + #: src/pages/welcome.jsx:164 3867 3733 msgid "Similar notifications are grouped and collapsed to reduce clutter." 3868 3734 msgstr "" 3869 3735 3870 - #: src/pages/welcome.jsx:172 3736 + #: src/pages/welcome.jsx:173 3871 3737 msgid "Screenshot of multi-column UI" 3872 3738 msgstr "" 3873 3739 3874 - #: src/pages/welcome.jsx:176 3740 + #: src/pages/welcome.jsx:177 3875 3741 msgid "Single or multi-column" 3876 3742 msgstr "" 3877 3743 3878 - #: src/pages/welcome.jsx:179 3744 + #: src/pages/welcome.jsx:180 3879 3745 msgid "By default, single column for zen-mode seekers. Configurable multi-column for power users." 3880 3746 msgstr "" 3881 3747 3882 - #: src/pages/welcome.jsx:188 3748 + #: src/pages/welcome.jsx:189 3883 3749 msgid "Screenshot of multi-hashtag timeline with a form to add more hashtags" 3884 3750 msgstr "" 3885 3751 3886 - #: src/pages/welcome.jsx:192 3752 + #: src/pages/welcome.jsx:193 3887 3753 msgid "Multi-hashtag timeline" 3888 3754 msgstr "" 3889 3755 3890 - #: src/pages/welcome.jsx:195 3756 + #: src/pages/welcome.jsx:196 3891 3757 msgid "Up to 5 hashtags combined into a single timeline." 3892 3758 msgstr "" 3893 3759
+2 -3
src/pages/account-statuses.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 2 - import { useLingui } from '@lingui/react'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 3 2 import { MenuItem } from '@szhsin/react-menu'; 4 3 import { 5 4 useCallback, ··· 51 50 const isSearchEnabled = pmem(_isSearchEnabled); 52 51 53 52 function AccountStatuses() { 53 + const { i18n, t } = useLingui(); 54 54 const snapStates = useSnapshot(states); 55 55 const { id, ...params } = useParams(); 56 56 const [searchParams, setSearchParams] = useSearchParams(); ··· 229 229 } 230 230 231 231 const [featuredTags, setFeaturedTags] = useState([]); 232 - const { i18n } = useLingui(); 233 232 let title = t`Account posts`; 234 233 if (account?.acct) { 235 234 const acctDisplay = (/@/.test(account.acct) ? '' : '@') + account.acct;
+2 -1
src/pages/accounts.jsx
··· 1 1 import './accounts.css'; 2 2 3 3 import { useAutoAnimate } from '@formkit/auto-animate/preact'; 4 - import { t, Trans } from '@lingui/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu'; 6 6 import { useReducer } from 'preact/hooks'; 7 7 ··· 20 20 const isStandalone = window.matchMedia('(display-mode: standalone)').matches; 21 21 22 22 function Accounts({ onClose }) { 23 + const { t } = useLingui(); 23 24 const { masto } = api(); 24 25 // Accounts 25 26 const accounts = store.local.getJSON('accounts');
+1 -2
src/pages/annual-report.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 2 - 3 1 import './annual-report.css'; 4 2 3 + import { Trans } from '@lingui/react/macro'; 5 4 import { useEffect, useState } from 'preact/hooks'; 6 5 import { useParams } from 'react-router-dom'; 7 6
+2 -1
src/pages/bookmarks.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useRef } from 'preact/hooks'; 3 3 4 4 import Timeline from '../components/timeline'; ··· 8 8 const LIMIT = 20; 9 9 10 10 function Bookmarks() { 11 + const { t } = useLingui(); 11 12 useTitle(t`Bookmarks`, '/bookmarks'); 12 13 const { masto, instance } = api(); 13 14 const bookmarksIterator = useRef();
+5 -3
src/pages/catchup.jsx
··· 2 2 import './catchup.css'; 3 3 4 4 import autoAnimate from '@formkit/auto-animate'; 5 - import { msg, Plural, select, t, Trans } from '@lingui/macro'; 6 - import { useLingui } from '@lingui/react'; 5 + import { msg, select } from '@lingui/core/macro'; 6 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 7 7 import { getBlurHashAverageColor } from 'fast-blurhash'; 8 8 import { Fragment } from 'preact'; 9 9 import { memo } from 'preact/compat'; ··· 95 95 ); 96 96 97 97 function Catchup() { 98 - const { i18n, _ } = useLingui(); 98 + const { i18n, _, t } = useLingui(); 99 99 const dtf = DTF(i18n.locale); 100 100 101 101 useTitle(`Catch-up`, '/catchup'); ··· 1834 1834 const MEDIA_SIZE = 48; 1835 1835 1836 1836 function PostPeek({ post, filterInfo }) { 1837 + const { t } = useLingui(); 1837 1838 const { 1838 1839 spoilerText, 1839 1840 sensitive, ··· 2048 2049 } 2049 2050 2050 2051 function PostStats({ post }) { 2052 + const { t } = useLingui(); 2051 2053 const { reblogsCount, repliesCount, favouritesCount } = post; 2052 2054 return ( 2053 2055 <span class="post-stats">
+2 -1
src/pages/favourites.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { useRef } from 'preact/hooks'; 3 3 4 4 import Timeline from '../components/timeline'; ··· 8 8 const LIMIT = 20; 9 9 10 10 function Favourites() { 11 + const { t } = useLingui(); 11 12 useTitle(t`Likes`, '/favourites'); 12 13 const { masto, instance } = api(); 13 14 const favouritesIterator = useRef();
+5 -4
src/pages/filters.jsx
··· 1 1 import './filters.css'; 2 2 3 - import { i18n } from '@lingui/core'; 4 - import { msg, Plural, t, Trans } from '@lingui/macro'; 5 - import { useLingui } from '@lingui/react'; 3 + import { msg } from '@lingui/core/macro'; 4 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 6 5 import { useEffect, useReducer, useRef, useState } from 'preact/hooks'; 7 6 8 7 import Icon from '../components/icon'; ··· 50 49 }; 51 50 52 51 function Filters() { 52 + const { t } = useLingui(); 53 53 const { masto } = api(); 54 54 useTitle(t`Filters`, `/ft`); 55 55 const [uiState, setUIState] = useState('default'); ··· 197 197 let _id = 1; 198 198 const incID = () => _id++; 199 199 function FiltersAddEdit({ filter, onClose }) { 200 - const { _ } = useLingui(); 200 + const { _, t } = useLingui(); 201 201 const { masto } = api(); 202 202 const [uiState, setUIState] = useState('default'); 203 203 const editMode = !!filter; ··· 596 596 } 597 597 598 598 function ExpiryStatus({ expiresAt, showNeverExpires }) { 599 + const { t } = useLingui(); 599 600 const hasExpiry = !!expiresAt; 600 601 const expiresAtDate = hasExpiry && new Date(expiresAt); 601 602 const expired = hasExpiry && expiresAtDate <= new Date();
+2 -1
src/pages/followed-hashtags.jsx
··· 1 - import { Plural, t, Trans } from '@lingui/macro'; 1 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 2 2 import { useEffect, useState } from 'preact/hooks'; 3 3 4 4 import Icon from '../components/icon'; ··· 10 10 import useTitle from '../utils/useTitle'; 11 11 12 12 function FollowedHashtags() { 13 + const { t } = useLingui(); 13 14 const { masto, instance } = api(); 14 15 useTitle(t`Followed Hashtags`, `/fh`); 15 16 const [uiState, setUIState] = useState('default');
+2 -1
src/pages/following.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { useLingui } from '@lingui/react/macro'; 2 2 import { useEffect, useRef } from 'preact/hooks'; 3 3 import { useSnapshot } from 'valtio'; 4 4 ··· 17 17 const LIMIT = 20; 18 18 19 19 function Following({ title, path, id, ...props }) { 20 + const { t } = useLingui(); 20 21 useTitle( 21 22 title || 22 23 t({
+3 -2
src/pages/hashtag.jsx
··· 1 - import { plural, t, Trans } from '@lingui/macro'; 2 - import { useLingui } from '@lingui/react'; 1 + import { plural } from '@lingui/core/macro'; 2 + import { Trans, useLingui } from '@lingui/react/macro'; 3 3 import { 4 4 FocusableItem, 5 5 MenuDivider, ··· 31 31 const TOTAL_TAGS_LIMIT = TAGS_LIMIT_PER_MODE + 1; 32 32 33 33 function Hashtags({ media: mediaView, columnMode, ...props }) { 34 + const { t } = useLingui(); 34 35 // const navigate = useNavigate(); 35 36 let { hashtag, ...params } = columnMode ? {} : useParams(); 36 37 if (props.hashtag) hashtag = props.hashtag;
+3 -2
src/pages/home.jsx
··· 1 1 import './notifications-menu.css'; 2 2 3 - import { msg, t, Trans } from '@lingui/macro'; 4 - import { useLingui } from '@lingui/react'; 3 + import { msg } from '@lingui/core/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { ControlledMenu } from '@szhsin/react-menu'; 6 6 import { memo } from 'preact/compat'; 7 7 import { useEffect, useRef, useState } from 'preact/hooks'; ··· 62 62 } 63 63 64 64 function NotificationsLink() { 65 + const { t } = useLingui(); 65 66 const snapStates = useSnapshot(states); 66 67 const notificationLinkRef = useRef(); 67 68 const [menuState, setMenuState] = useState(undefined);
+1 -1
src/pages/http-route.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans } from '@lingui/react/macro'; 2 2 import { useLayoutEffect, useState } from 'preact/hooks'; 3 3 import { useLocation } from 'react-router-dom'; 4 4
+4 -1
src/pages/list.jsx
··· 1 1 import './lists.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu'; 5 5 import { useEffect, useRef, useState } from 'preact/hooks'; 6 6 import { InView } from 'react-intersection-observer'; ··· 25 25 const LIMIT = 20; 26 26 27 27 function List(props) { 28 + const { t } = useLingui(); 28 29 const snapStates = useSnapshot(states); 29 30 const { masto, instance } = api(); 30 31 const id = props?.id || useParams()?.id; ··· 222 223 223 224 const MEMBERS_LIMIT = 40; 224 225 function ListManageMembers({ listID, onClose }) { 226 + const { t } = useLingui(); 225 227 // Show list of members with [Remove] button 226 228 // API only returns 40 members at a time, so this need to be paginated with infinite scroll 227 229 // Show [Add] button after removing a member ··· 301 303 } 302 304 303 305 function RemoveAddButton({ account, listID }) { 306 + const { t } = useLingui(); 304 307 const { masto } = api(); 305 308 const [uiState, setUIState] = useState('default'); 306 309 const [removed, setRemoved] = useState(false);
+2 -1
src/pages/lists.jsx
··· 1 1 import './lists.css'; 2 2 3 - import { Plural, t, Trans } from '@lingui/macro'; 3 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 4 4 import { useEffect, useReducer, useState } from 'preact/hooks'; 5 5 6 6 import Icon from '../components/icon'; ··· 13 13 import useTitle from '../utils/useTitle'; 14 14 15 15 function Lists() { 16 + const { t } = useLingui(); 16 17 useTitle(t`Lists`, `/l`); 17 18 const [uiState, setUIState] = useState('default'); 18 19
+2 -1
src/pages/login.jsx
··· 1 1 import './login.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 import Fuse from 'fuse.js'; 5 5 import { useEffect, useRef, useState } from 'preact/hooks'; 6 6 import { useSearchParams } from 'react-router-dom'; ··· 23 23 const { PHANPY_DEFAULT_INSTANCE: DEFAULT_INSTANCE } = import.meta.env; 24 24 25 25 function Login() { 26 + const { t } = useLingui(); 26 27 useTitle('Log in'); 27 28 const instanceURLRef = useRef(); 28 29 const cachedInstanceURL = store.local.get('instanceURL');
+2 -1
src/pages/mentions.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { useMemo, useRef, useState } from 'preact/hooks'; 3 3 import { useSearchParams } from 'react-router-dom'; 4 4 ··· 13 13 const emptySearchParams = new URLSearchParams(); 14 14 15 15 function Mentions({ columnMode, ...props }) { 16 + const { t } = useLingui(); 16 17 const { masto, instance } = api(); 17 18 const [searchParams] = columnMode ? [emptySearchParams] : useSearchParams(); 18 19 const [stateType, setStateType] = useState(null);
+4 -3
src/pages/notifications.jsx
··· 1 1 import './notifications.css'; 2 2 3 - import { msg, Plural, t, Trans } from '@lingui/macro'; 4 - import { useLingui } from '@lingui/react'; 3 + import { msg } from '@lingui/core/macro'; 4 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 5 5 import { Fragment } from 'preact'; 6 6 import { memo } from 'preact/compat'; 7 7 import { ··· 109 109 }; 110 110 111 111 function Notifications({ columnMode }) { 112 - const { _ } = useLingui(); 112 + const { _, t } = useLingui(); 113 113 useTitle(t`Notifications`, '/notifications'); 114 114 const { masto, instance } = api(); 115 115 const snapStates = useSnapshot(states); ··· 1173 1173 } 1174 1174 1175 1175 function NotificationRequestButtons({ request, onChange }) { 1176 + const { t } = useLingui(); 1176 1177 const { masto } = api(); 1177 1178 const [uiState, setUIState] = useState('default'); 1178 1179 const [requestState, setRequestState] = useState(null); // accept, dismiss
+2 -1
src/pages/public.jsx
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { Trans, useLingui } from '@lingui/react/macro'; 2 2 import { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu'; 3 3 import { useRef } from 'preact/hooks'; 4 4 import { useNavigate, useParams } from 'react-router-dom'; ··· 16 16 const LIMIT = 20; 17 17 18 18 function Public({ local, columnMode, ...props }) { 19 + const { t } = useLingui(); 19 20 const snapStates = useSnapshot(states); 20 21 const isLocal = !!local; 21 22 const params = columnMode ? {} : useParams();
+2 -1
src/pages/search.jsx
··· 1 1 import './search.css'; 2 2 3 3 import { useAutoAnimate } from '@formkit/auto-animate/preact'; 4 - import { t, Trans } from '@lingui/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { useEffect, useLayoutEffect, useRef, useState } from 'preact/hooks'; 6 6 import { useHotkeys } from 'react-hotkeys-hook'; 7 7 import { InView } from 'react-intersection-observer'; ··· 31 31 }; 32 32 33 33 function Search({ columnMode, ...props }) { 34 + const { t } = useLingui(); 34 35 const params = columnMode ? {} : useParams(); 35 36 const { masto, instance, authenticated } = api({ 36 37 instance: params.instance,
+3 -1
src/pages/settings.jsx
··· 1 1 import './settings.css'; 2 2 3 - import { Plural, t, Trans } from '@lingui/macro'; 3 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 4 4 import { useEffect, useRef, useState } from 'preact/hooks'; 5 5 import { useSnapshot } from 'valtio'; 6 6 ··· 36 36 } = import.meta.env; 37 37 38 38 function Settings({ onClose }) { 39 + const { t } = useLingui(); 39 40 const snapStates = useSnapshot(states); 40 41 const currentTheme = store.local.get('theme') || 'auto'; 41 42 const themeFormRef = useRef(); ··· 957 958 } 958 959 959 960 function PushNotificationsSection({ onClose }) { 961 + const { t } = useLingui(); 960 962 if (!isPushSupported()) return null; 961 963 962 964 const { instance } = api();
+4 -1
src/pages/status.jsx
··· 1 1 import './status.css'; 2 2 3 - import { Plural, t, Trans } from '@lingui/macro'; 3 + import { Plural, Trans, useLingui } from '@lingui/react/macro'; 4 4 import { Menu, MenuDivider, MenuHeader, MenuItem } from '@szhsin/react-menu'; 5 5 import debounce from 'just-debounce-it'; 6 6 import pRetry from 'p-retry'; ··· 73 73 const STATUS_URL_REGEX = /\/s\//i; 74 74 75 75 function StatusPage(params) { 76 + const { t } = useLingui(); 76 77 const { id } = params; 77 78 const { masto, instance } = api({ instance: params.instance }); 78 79 const snapStates = useSnapshot(states); ··· 214 215 } 215 216 216 217 function StatusThread({ id, closeLink = '/', instance: propInstance }) { 218 + const { t } = useLingui(); 217 219 const [searchParams, setSearchParams] = useSearchParams(); 218 220 const mediaParam = searchParams.get('media'); 219 221 const mediaStatusID = searchParams.get('mediaStatusID'); ··· 1377 1379 openAll, 1378 1380 parentLink, 1379 1381 }) { 1382 + const { t } = useLingui(); 1380 1383 const [searchParams, setSearchParams] = useSearchParams(); 1381 1384 1382 1385 // Total comments count, including sub-replies
+2 -1
src/pages/trending.jsx
··· 1 1 import '../components/links-bar.css'; 2 2 import './trending.css'; 3 3 4 - import { t, Trans } from '@lingui/macro'; 4 + import { Trans, useLingui } from '@lingui/react/macro'; 5 5 import { MenuItem } from '@szhsin/react-menu'; 6 6 import { getBlurHashAverageColor } from 'fast-blurhash'; 7 7 import { useEffect, useMemo, useRef, useState } from 'preact/hooks'; ··· 62 62 } 63 63 64 64 function Trending({ columnMode, ...props }) { 65 + const { t } = useLingui(); 65 66 const snapStates = useSnapshot(states); 66 67 const params = columnMode ? {} : useParams(); 67 68 const { masto, instance } = api({
+2 -1
src/pages/welcome.jsx
··· 1 1 import './welcome.css'; 2 2 3 - import { t, Trans } from '@lingui/macro'; 3 + import { Trans, useLingui } from '@lingui/react/macro'; 4 4 5 5 import boostsCarouselUrl from '../assets/features/boosts-carousel.jpg'; 6 6 import groupedNotificationsUrl from '../assets/features/grouped-notifications.jpg'; ··· 31 31 : null; 32 32 33 33 function Welcome() { 34 + const { t } = useLingui(); 34 35 useTitle(null, ['/', '/welcome']); 35 36 return ( 36 37 <main id="welcome">
+1 -1
src/utils/open-compose.js
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { t } from '@lingui/core/macro'; 2 2 3 3 export default function openCompose(opts) { 4 4 const url = URL.parse('/compose/', window.location);
+1 -1
src/utils/show-compose.js
··· 1 - import { t, Trans } from '@lingui/macro'; 1 + import { t } from '@lingui/core/macro'; 2 2 3 3 import openOSK from './open-osk'; 4 4 import showToast from './show-toast';