Merge remote-tracking branch 'upstream/main' into feature/paste-attach

# Conflicts:
#	src/locales/en.po
This commit is contained in:
Stefano Pigozzi 2024-09-10 16:54:08 +02:00
commit 2fbef61934
No known key found for this signature in database
GPG key ID: 5ADA3868646C3FC0
48 changed files with 5180 additions and 4791 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
*.po linguist-generated
readme-assets/** linguist-documentation

View file

@ -62,10 +62,10 @@ jobs:
# Better subject
# "i18n updates ([LOCALES_CHANGED])"
SUBJECT="i18n updates ($LOCALES_CHANGED)"
PR_NUMBER=$(echo ${{ github.event.pull_request.number }})
gh pr merge $PR_NUMBER --author "github-actions[bot]@users.noreply.github.com" --squash --subject "$SUBJECT" || true
SUBJECT="i18n updates ($LOCALES_CHANGED) (#$PR_NUMBER)"
gh pr merge $PR_NUMBER --squash --subject "$SUBJECT" || true
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -296,6 +296,7 @@ Costs involved in running and developing this web app:
<!-- i18n volunteers start -->
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/12571163/medium/9f3ea938f4243f5ffe2a43f814ddc9e8_default.png" alt="" width="16" height="16" /> alidsds11 (Arabic)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16180744/medium/5b04ae975b23895635130d7a176515cb_default.png" alt="" width="16" height="16" /> alternative (Korean)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/13170041/medium/603136896af17fc005fd592ce3f48717_default.png" alt="" width="16" height="16" /> BoFFire (Arabic, French, Kabyle)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/12898464/medium/d3758a76b894bade4bf271c9b32ea69b.png" alt="" width="16" height="16" /> Brawaru (Russian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/15460040/medium/1cfcfe5f5511b783b5d9f2b968bad819.png" alt="" width="16" height="16" /> cbasje (Dutch)
@ -329,15 +330,16 @@ Costs involved in running and developing this web app:
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16527325/medium/37ebb27e7a50f7f85ae93beafc7028a2.jpg" alt="" width="16" height="16" /> rezahosseinzadeh (Persian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/13422319/medium/66632a98d73d48e36753d94ebcec9d4f.png" alt="" width="16" height="16" /> rwmpelstilzchen (Esperanto, Hebrew)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16538605/medium/bcdb6e3286b7d6237923f3a9383eed29.png" alt="" width="16" height="16" /> SadmL (Russian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16539171/medium/0ce95ef6b3b0566136191fbedc1563d0.png" alt="" width="16" height="16" /> SadmL_AI (Russian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/14565190/medium/79100599131b7776e9803e4b696915a3_default.png" alt="" width="16" height="16" /> Sky_NiniKo (French)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16532441/medium/1a47e8d80c95636e02d2260f6e233ca5.png" alt="" width="16" height="16" /> Su5hicz (Czech)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16533843/medium/7314c15492ef90118c33a80a427e6c87_default.png" alt="" width="16" height="16" /> Talos00 (Italian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16530049/medium/683f3581620c6b4a5c753b416ed695a7.jpeg" alt="" width="16" height="16" /> tferrermo (Spanish)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16527851/medium/649e5a9a8a8cc61ced670d89e9cca082.png" alt="" width="16" height="16" /> tux93 (German)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16529833/medium/2991a65722acd721849656223014cd49.png" alt="" width="16" height="16" /> Urbestro (Esperanto, Spanish)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16539171/medium/db6fb87481026c72b895adfb94e17d2c_default.png" alt="" width="16" height="16" /> UsualUsername (Russian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/14427566/medium/ab733b5044c21867fc5a9d1b22cd2c03.png" alt="" width="16" height="16" /> Vac31. (Lithuanian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16026914/medium/e3ca187f354a298ef0c9d02a0ed17be7.jpg" alt="" width="16" height="16" /> valtlai (Finnish)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16563757/medium/af4556c13862d1fd593b51084a159b75_default.png" alt="" width="16" height="16" /> voyagercy (Chinese Traditional)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/15982109/medium/9c03062bdc1d3c6d384dbfead97c26ba.jpeg" alt="" width="16" height="16" /> xabi_itzultzaile (Basque)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16556017/medium/216e0f7a0c35b079920366939a3aaca7_default.png" alt="" width="16" height="16" /> xen4n (Ukrainian)
- <img src="https://crowdin-static.downloads.crowdin.com/avatar/16532657/medium/f309f319266e1ff95f3070eab0c9a9d9_default.png" alt="" width="16" height="16" /> xqueralt (Catalan)

58
package-lock.json generated
View file

@ -35,7 +35,7 @@
"preact": "~10.23.2",
"punycode": "~2.3.1",
"react-hotkeys-hook": "~4.5.1",
"react-intersection-observer": "~9.13.0",
"react-intersection-observer": "~9.13.1",
"react-quick-pinch-zoom": "~5.1.0",
"react-router-dom": "6.6.2",
"string-length": "6.0.0",
@ -61,7 +61,7 @@
"vite": "~5.4.3",
"vite-plugin-generate-file": "~0.2.0",
"vite-plugin-html-config": "~2.0.2",
"vite-plugin-pwa": "~0.20.3",
"vite-plugin-pwa": "~0.20.5",
"vite-plugin-remove-console": "~2.2.0",
"vite-plugin-run": "~0.5.2",
"workbox-cacheable-response": "~7.1.0",
@ -5798,13 +5798,12 @@
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "2.1.2"
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@ -7861,11 +7860,10 @@
"integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q=="
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true,
"license": "MIT"
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"node_modules/mute-stream": {
"version": "0.0.8",
@ -8320,9 +8318,9 @@
"dev": true
},
"node_modules/picocolors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
},
"node_modules/picomatch": {
"version": "2.3.1",
@ -9281,9 +9279,9 @@
}
},
"node_modules/react-intersection-observer": {
"version": "9.13.0",
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.13.0.tgz",
"integrity": "sha512-y0UvBfjDiXqC8h0EWccyaj4dVBWMxgEx0t5RGNzQsvkfvZwugnKwxpu70StY4ivzYuMajavwUDjH4LJyIki9Lw==",
"version": "9.13.1",
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.13.1.tgz",
"integrity": "sha512-tSzDaTy0qwNPLJHg8XZhlyHTgGW6drFKTtvjdL+p6um12rcnp8Z5XstE+QNBJ7c64n5o0Lj4ilUleA41bmDoMw==",
"peerDependencies": {
"react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@ -10090,12 +10088,12 @@
"dev": true
},
"node_modules/tinyglobby": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.0.tgz",
"integrity": "sha512-+clyYQfAnNlt5a1x7CCQ6RLuTIztDfDAl6mAANvqRUlz6sVy5znCzJOhais8G6oyUyoeeaorLopO3HptVP8niA==",
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.6.tgz",
"integrity": "sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==",
"dev": true,
"dependencies": {
"fdir": "^6.2.0",
"fdir": "^6.3.0",
"picomatch": "^4.0.2"
},
"engines": {
@ -10103,9 +10101,9 @@
}
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.2.0.tgz",
"integrity": "sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw==",
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.3.0.tgz",
"integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==",
"dev": true,
"peerDependencies": {
"picomatch": "^3 || ^4"
@ -10623,12 +10621,12 @@
}
},
"node_modules/vite-plugin-pwa": {
"version": "0.20.3",
"resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.3.tgz",
"integrity": "sha512-aqCOWWSwfX4o6H+6NyEvhzFs3eENBqYFKUK4FYx5OZ3jGio73BE189bPz9+BBgjHBLozldQVSmZTHySVC2zNkg==",
"version": "0.20.5",
"resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.5.tgz",
"integrity": "sha512-aweuI/6G6n4C5Inn0vwHumElU/UEpNuO+9iZzwPZGTCH87TeZ6YFMrEY6ZUBQdIHHlhTsbMDryFARcSuOdsz9Q==",
"dev": true,
"dependencies": {
"debug": "^4.3.4",
"debug": "^4.3.6",
"pretty-bytes": "^6.1.1",
"tinyglobby": "^0.2.0",
"workbox-build": "^7.1.0",
@ -10641,7 +10639,7 @@
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vite-pwa/assets-generator": "^0.2.4",
"@vite-pwa/assets-generator": "^0.2.6",
"vite": "^3.1.0 || ^4.0.0 || ^5.0.0",
"workbox-build": "^7.1.0",
"workbox-window": "^7.1.0"

View file

@ -43,7 +43,7 @@
"preact": "~10.23.2",
"punycode": "~2.3.1",
"react-hotkeys-hook": "~4.5.1",
"react-intersection-observer": "~9.13.0",
"react-intersection-observer": "~9.13.1",
"react-quick-pinch-zoom": "~5.1.0",
"react-router-dom": "6.6.2",
"string-length": "6.0.0",
@ -69,7 +69,7 @@
"vite": "~5.4.3",
"vite-plugin-generate-file": "~0.2.0",
"vite-plugin-html-config": "~2.0.2",
"vite-plugin-pwa": "~0.20.3",
"vite-plugin-pwa": "~0.20.5",
"vite-plugin-remove-console": "~2.2.0",
"vite-plugin-run": "~0.5.2",
"workbox-cacheable-response": "~7.1.0",

View file

@ -367,6 +367,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
border-bottom: var(--hairline-width) solid var(--divider-color);
--line-dir: var(--to-forward);
}
.timeline:not(.contextual) > li + li {
content-visibility: auto;
contain-intrinsic-size: auto 160px;
}
.timeline.flat > li {
border-bottom: none;
}
@ -2902,3 +2906,25 @@ ul.link-list li a .icon {
width: 10em;
}
}
/* DEBUG */
.debug-info {
font-size: smaller;
summary {
height: 1em;
width: 100%;
list-style: none;
display: inline-block;
}
summary::-webkit-details-marker {
display: none;
}
p,
ol,
ul {
margin-block-start: 0;
padding-block-start: 0;
}
}

View file

@ -301,9 +301,33 @@ subscribe(states, (changes) => {
}
});
const BENCHES = new Map();
window.__BENCH_RESULTS = new Map();
window.__BENCHMARK = {
start(name) {
if (!import.meta.env.DEV && !import.meta.env.PHANPY_DEV) return;
// If already started, ignore
if (BENCHES.has(name)) return;
const start = performance.now();
BENCHES.set(name, start);
},
end(name) {
if (!import.meta.env.DEV && !import.meta.env.PHANPY_DEV) return;
const start = BENCHES.get(name);
if (start) {
const end = performance.now();
const duration = end - start;
__BENCH_RESULTS.set(name, duration);
BENCHES.delete(name);
}
},
};
function App() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [uiState, setUIState] = useState('loading');
__BENCHMARK.start('app-init');
__BENCHMARK.start('time-to-home');
useLingui();
useEffect(() => {
@ -351,6 +375,7 @@ function App() {
} else {
setUIState('error');
}
__BENCHMARK.end('app-init');
})();
} else {
window.__IGNORE_GET_ACCOUNT_ERROR__ = true;
@ -393,6 +418,7 @@ function App() {
} else {
setUIState('default');
}
__BENCHMARK.end('app-init');
}
// Cleanup

View file

@ -2146,7 +2146,7 @@ function EditProfileSheet({ onClose = () => {} }) {
>
<p>
<label>
Name{' '}
<Trans>Name</Trans>{' '}
<input
type="text"
name="display_name"

View file

@ -1186,6 +1186,11 @@ function Compose({
<option value="public">
<Trans>Public</Trans>
</option>
{(supports('@pleroma/local-visibility-post') || supports('@akkoma/local-visibility-post')) &&
<option value="local">
<Trans>Local</Trans>
</option>
}
<option value="unlisted">
<Trans>Unlisted</Trans>
</option>

View file

@ -49,7 +49,7 @@ export default function Poll({
// };
// }, [expired, expiresAtDate]);
const pollVotesCount = votersCount || votesCount;
const pollVotesCount = multiple ? votersCount : votesCount;
let roundPrecision = 0;
if (pollVotesCount <= 1000) {

View file

@ -91,6 +91,7 @@ const memFetchAccount = pmem(throttle(fetchAccount));
const visibilityText = {
public: msg`Public`,
local: msg`Local`,
unlisted: msg`Unlisted`,
private: msg`Followers only`,
direct: msg`Private mention`,
@ -2640,9 +2641,9 @@ function Card({ card, selfReferential, instance }) {
[hasIframeHTML],
);
const [blurhashImage, setBlurhashImage] = useState(null);
if (hasText && (image || (type === 'photo' && blurhash))) {
const domain = getDomain(url);
let blurhashImage;
const rgbAverageColor =
image && blurhash ? getBlurHashAverageColor(blurhash) : null;
if (!image) {
@ -2659,11 +2660,17 @@ function Card({ card, selfReferential, instance }) {
const imageData = ctx.createImageData(w, h);
imageData.data.set(blurhashPixels);
ctx.putImageData(imageData, 0, 0);
if (window.OffscreenCanvas) {
const blob = canvas.convertToBlob();
blurhashImage = URL.createObjectURL(blob);
} else {
blurhashImage = canvas.toDataURL();
try {
if (window.OffscreenCanvas) {
canvas.convertToBlob().then((blob) => {
setBlurhashImage(URL.createObjectURL(blob));
});
} else {
setBlurhashImage(canvas.toDataURL());
}
} catch (e) {
// Silently fail
console.error(e);
}
}

View file

@ -1,4 +1,4 @@
import { t, Trans } from '@lingui/macro';
import { plural, t, Trans } from '@lingui/macro';
import { memo } from 'preact/compat';
import {
useCallback,
@ -69,6 +69,7 @@ function Timeline({
const scrollableRef = useRef();
console.debug('RENDER Timeline', id, refresh);
__BENCHMARK.start(`timeline-${id}-load`);
const mediaFirst = useMemo(() => isMediaFirstInstance(), []);
@ -119,6 +120,7 @@ function Timeline({
setShowMore(false);
}
setUIState('default');
__BENCHMARK.end(`timeline-${id}-load`);
} catch (e) {
console.error(e);
setUIState('error');
@ -583,9 +585,12 @@ const TimelineItem = memo(
let fItems = filteredItems(items, filterContext);
let title = '';
if (type === 'boosts') {
title = `${fItems.length} Boosts`;
title = plural(fItems.length, {
one: '# Boost',
other: '# Boosts',
});
} else if (type === 'pinned') {
title = 'Pinned posts';
title = t`Pinned posts`;
}
const isCarousel = type === 'boosts' || type === 'pinned';
if (isCarousel) {

View file

@ -27,7 +27,7 @@
"code": "eo-UY",
"nativeName": "Esperanto",
"name": "Esperanto",
"completion": 30
"completion": 61
},
{
"code": "es-ES",
@ -45,7 +45,7 @@
"code": "fa-IR",
"nativeName": "فارسی",
"name": "Persian",
"completion": 73
"completion": 77
},
{
"code": "fi-FI",
@ -75,7 +75,7 @@
"code": "it-IT",
"nativeName": "italiano",
"name": "Italian",
"completion": 34
"completion": 95
},
{
"code": "ja-JP",
@ -93,7 +93,7 @@
"code": "ko-KR",
"nativeName": "한국어",
"name": "Korean",
"completion": 86
"completion": 97
},
{
"code": "lt-LT",
@ -105,13 +105,13 @@
"code": "nl-NL",
"nativeName": "Nederlands",
"name": "Dutch",
"completion": 48
"completion": 84
},
{
"code": "pl-PL",
"nativeName": "polski",
"name": "Polish",
"completion": 1
"completion": 2
},
{
"code": "pt-BR",
@ -153,6 +153,6 @@
"code": "zh-TW",
"nativeName": "繁體中文",
"name": "Traditional Chinese",
"completion": 14
"completion": 15
}
]

24
src/locales/ar-SA.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:33\n"
"PO-Revision-Date: 2024-09-06 02:31\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr "منشورات جديدة"
msgid "Try again"
msgstr "حاول مجددًا"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "مناقشة"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

35
src/locales/ca-ES.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-01 07:36\n"
"PO-Revision-Date: 2024-09-07 04:12\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -484,6 +484,11 @@ msgstr "Desa i tanca"
msgid "Unable to update profile."
msgstr "No ha estat possible actualitzar el perfil."
#: src/components/account-info.jsx:2149
#: src/components/list-add-edit.jsx:102
msgid "Name"
msgstr "Nom"
#: src/components/account-info.jsx:2162
msgid "Bio"
msgstr "Biografia"
@ -606,7 +611,7 @@ msgstr "El fitxer adjunt #{i} ha fallat"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Avís de contingut"
@ -849,13 +854,13 @@ msgstr "Escriviu per cercar un GIF"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Anterior"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Següent"
@ -1120,10 +1125,6 @@ msgstr "No s'ha pogut editar la llista."
msgid "Unable to create list."
msgstr "No s'ha pogut crear la llista."
#: src/components/list-add-edit.jsx:102
msgid "Name"
msgstr "Nom"
#: src/components/list-add-edit.jsx:122
msgid "Show replies to list members"
msgstr "Mostra les respostes dels membres de la llista"
@ -1207,7 +1208,7 @@ msgstr "Filtrat: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2307,13 +2308,21 @@ msgstr "Publicacions noves"
msgid "Try again"
msgstr "Torna-ho a provar"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr "{0, plural, one {# impuls} other {# impulsos}}"
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr "Publicacions fixades"
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Fil"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Filtrat</0>: <1>{0}</1>"
@ -2594,7 +2603,7 @@ msgstr "Posem-nos al dia"
#: src/pages/catchup.jsx:940
msgid "Let's catch up on the posts from your followings."
msgstr "Poseu-vos al dia amb les publicacions de les persones que segueixes."
msgstr "Poseu-vos al dia amb les publicacions de les persones que seguiu."
#: src/pages/catchup.jsx:944
msgid "Show me all posts from…"

24
src/locales/cs-CZ.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:34\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@ -606,7 +606,7 @@ msgstr "Příloha #{i} selhala"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Varování o obsahu"
@ -849,13 +849,13 @@ msgstr "Zadejte pro vyhledávání GIFů"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Zpět"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Další"
@ -1207,7 +1207,7 @@ msgstr "Filtrováno: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr "Nové příspěvky"
msgid "Try again"
msgstr "Zkuste to znovu"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Vlákno"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Filtrované</0>: <1>{0}</1>"

24
src/locales/de-DE.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:33\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -606,7 +606,7 @@ msgstr "Anhang #{i} fehlgeschlagen"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Inhaltswarnung"
@ -849,13 +849,13 @@ msgstr "Eintippen, um GIFs zu suchen"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Zurück"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Weiter"
@ -1207,7 +1207,7 @@ msgstr "Gefiltert: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr "Neue Posts"
msgid "Try again"
msgstr "Erneut versuchen"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Thread"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Herausgefiltert</0>: <1>{0}</1>"

633
src/locales/en.po generated

File diff suppressed because it is too large Load diff

1163
src/locales/eo-UY.po generated

File diff suppressed because it is too large Load diff

509
src/locales/es-ES.po generated

File diff suppressed because it is too large Load diff

98
src/locales/eu-ES.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: eu\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 16:29\n"
"PO-Revision-Date: 2024-09-06 13:24\n"
"Last-Translator: \n"
"Language-Team: Basque\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -606,7 +606,7 @@ msgstr "#{i} eranskinak huts egin du"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Edukiari buruzko abisua"
@ -770,7 +770,7 @@ msgstr "Sortu deskribapena…"
#: src/components/compose.jsx:2532
msgid "Failed to generate description{0}"
msgstr "Ezin iza da deskribapena sortu{0}"
msgstr "Ezin izan da deskribapena sortu{0}"
#: src/components/compose.jsx:2547
msgid "({0}) <0>— experimental</0>"
@ -849,13 +849,13 @@ msgstr "Idatzi GIFak bilatzeko"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Aurrekoa"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Hurrengoa"
@ -1207,7 +1207,7 @@ msgstr "Iragazita: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -1367,7 +1367,7 @@ msgstr "Federatua"
#: src/components/nav-menu.jsx:415
msgid "Shortcuts / Columns…"
msgstr "Laster-teklak / Zutabeak…"
msgstr "Lasterbideak / Zutabeak…"
#: src/components/nav-menu.jsx:425
#: src/components/nav-menu.jsx:439
@ -1772,7 +1772,7 @@ msgstr "Multimedia bakarrik"
#: src/components/shortcuts-settings.jsx:232
#: src/components/shortcuts.jsx:186
msgid "Shortcuts"
msgstr "Laster-teklak"
msgstr "Lasterbideak"
#: src/components/shortcuts-settings.jsx:240
msgid "beta"
@ -1780,7 +1780,7 @@ msgstr "beta"
#: src/components/shortcuts-settings.jsx:246
msgid "Specify a list of shortcuts that'll appear as:"
msgstr "Zehaztu laster-teklen zerrenda bat honela agertzeko:"
msgstr "Zehaztu lasterbideen zerrenda bat honela agertzeko:"
#: src/components/shortcuts-settings.jsx:252
msgid "Floating button"
@ -1814,7 +1814,7 @@ msgstr "Editatu"
#: src/components/shortcuts-settings.jsx:397
msgid "Add more than one shortcut/column to make this work."
msgstr "Gehitu laster-tekla / zutabe bat baino gehiago erabili ahal izateko."
msgstr "Gehitu lasterbide / zutabe bat baino gehiago erabili ahal izateko."
#: src/components/shortcuts-settings.jsx:408
msgid "No columns yet. Tap on the Add column button."
@ -1822,7 +1822,7 @@ msgstr "Oraindik ez dago zutaberik. Egin tap Gehitu zutabea botoian."
#: src/components/shortcuts-settings.jsx:409
msgid "No shortcuts yet. Tap on the Add shortcut button."
msgstr "Oraindik ez dago laster-teklarik. Egin tap Gehitu laster-tekla botoian."
msgstr "Oraindik ez dago lasterbiderik. Egin tap Gehitu lasterbidea botoian."
#: src/components/shortcuts-settings.jsx:412
msgid "Not sure what to add?<0/>Try adding <1>Home / Following and Notifications</1> first."
@ -1834,7 +1834,7 @@ msgstr "{SHORTCUTS_LIMIT} zutabe gehienez"
#: src/components/shortcuts-settings.jsx:441
msgid "Max {SHORTCUTS_LIMIT} shortcuts"
msgstr "{SHORTCUTS_LIMIT} laster-tekla gehienez"
msgstr "{SHORTCUTS_LIMIT} lasterbide gehienez"
#: src/components/shortcuts-settings.jsx:455
msgid "Import/export"
@ -1846,7 +1846,7 @@ msgstr "Gehitu zutabea…"
#: src/components/shortcuts-settings.jsx:466
msgid "Add shortcut…"
msgstr "Gehitu laster-tekla…"
msgstr "Gehitu lasterbidea…"
#: src/components/shortcuts-settings.jsx:513
msgid "Specific list is optional. For multi-column mode, list is required, else the column will not be shown."
@ -1862,11 +1862,11 @@ msgstr "Traola bat baino gehiago onartzen dira. Espazioen bidez bereizita."
#: src/components/shortcuts-settings.jsx:584
msgid "Edit shortcut"
msgstr "Editatu laster-tekla"
msgstr "Editatu lasterbidea"
#: src/components/shortcuts-settings.jsx:584
msgid "Add shortcut"
msgstr "Gehitu laster-tekla"
msgstr "Gehitu lasterbidea"
#: src/components/shortcuts-settings.jsx:620
msgid "Timeline"
@ -1878,7 +1878,7 @@ msgstr "Zerrenda"
#: src/components/shortcuts-settings.jsx:785
msgid "Import/Export <0>Shortcuts</0>"
msgstr "Inportatu / Esportatu <0>Laster-teklak</0>"
msgstr "Inportatu / Esportatu <0>Lasterbideak</0>"
#: src/components/shortcuts-settings.jsx:795
msgid "Import"
@ -1886,23 +1886,23 @@ msgstr "Inportatu"
#: src/components/shortcuts-settings.jsx:803
msgid "Paste shortcuts here"
msgstr "Itsatsi laster-teklak hemen"
msgstr "Itsatsi lasterbideak hemen"
#: src/components/shortcuts-settings.jsx:819
msgid "Downloading saved shortcuts from instance server…"
msgstr "Gordetako laster-teklak zerbitzaritik deskargatzen…"
msgstr "Gordetako lasterbideak zerbitzaritik deskargatzen…"
#: src/components/shortcuts-settings.jsx:848
msgid "Unable to download shortcuts"
msgstr "Ezin dira laster-teklak deskargatu"
msgstr "Ezin dira lasterbideak deskargatu"
#: src/components/shortcuts-settings.jsx:851
msgid "Download shortcuts from instance server"
msgstr "Deskargatu laster-teklak zerbitzaritik"
msgstr "Deskargatu lasterbideak zerbitzaritik"
#: src/components/shortcuts-settings.jsx:909
msgid "* Exists in current shortcuts"
msgstr "* Laster-tekla badago lehendik ere"
msgstr "* Lasterbidea badago lehendik ere"
#: src/components/shortcuts-settings.jsx:914
msgid "List may not work if it's from a different account."
@ -1914,24 +1914,24 @@ msgstr "Ezarpenen formatu baliogabea"
#: src/components/shortcuts-settings.jsx:932
msgid "Append to current shortcuts?"
msgstr "Gehitu uneko laster-teklei?"
msgstr "Gehitu uneko lasterbideei?"
#: src/components/shortcuts-settings.jsx:935
msgid "Only shortcuts that dont exist in current shortcuts will be appended."
msgstr "Uneko laster-tekletan ez daudenak gehituko dira soilik."
msgstr "Uneko lasterbideetan ez daudenak gehituko dira soilik."
#: src/components/shortcuts-settings.jsx:957
msgid "No new shortcuts to import"
msgstr "Ez dago inportatzeko laster-tekla berririk"
msgstr "Ez dago inportatzeko lasterbide berririk"
#: src/components/shortcuts-settings.jsx:972
msgid "Shortcuts imported. Exceeded max {SHORTCUTS_LIMIT}, so the rest are not imported."
msgstr "Laster-teklak inportatu dira. {SHORTCUTS_LIMIT} muga gainditu da, gainerakoak ez dira inportatuko."
msgstr "Lasterbideak inportatu dira. {SHORTCUTS_LIMIT} muga gainditu da, gainerakoak ez dira inportatuko."
#: src/components/shortcuts-settings.jsx:973
#: src/components/shortcuts-settings.jsx:997
msgid "Shortcuts imported"
msgstr "Laster-teklak inportatu dira"
msgstr "Lasterbideak inportatu dira"
#: src/components/shortcuts-settings.jsx:983
msgid "Import & append…"
@ -1939,11 +1939,11 @@ msgstr "Inportatu eta gehitu…"
#: src/components/shortcuts-settings.jsx:991
msgid "Override current shortcuts?"
msgstr "Uneko laster-teklak gainidatzi?"
msgstr "Uneko lasterbideak gainidatzi?"
#: src/components/shortcuts-settings.jsx:992
msgid "Import shortcuts?"
msgstr "Laster-teklak inportatu?"
msgstr "Lasterbideak inportatu?"
#: src/components/shortcuts-settings.jsx:1006
msgid "or override…"
@ -1959,19 +1959,19 @@ msgstr "Esportatu"
#: src/components/shortcuts-settings.jsx:1030
msgid "Shortcuts copied"
msgstr "Laster-teklak kopiatu dira"
msgstr "Lasterbideak kopiatu dira"
#: src/components/shortcuts-settings.jsx:1033
msgid "Unable to copy shortcuts"
msgstr "Ezin dira laster-teklak kopiatu"
msgstr "Ezin dira lasterbideak kopiatu"
#: src/components/shortcuts-settings.jsx:1047
msgid "Shortcut settings copied"
msgstr "Laster-teklen ezarpenak kopiatu dira"
msgstr "Lasterbideen ezarpenak kopiatu dira"
#: src/components/shortcuts-settings.jsx:1050
msgid "Unable to copy shortcut settings"
msgstr "Ezin dira laster-teklen ezarpenak kopiatu"
msgstr "Ezin dira lasterbideen ezarpenak kopiatu"
#: src/components/shortcuts-settings.jsx:1080
msgid "Share"
@ -1979,15 +1979,15 @@ msgstr "Partekatu"
#: src/components/shortcuts-settings.jsx:1119
msgid "Saving shortcuts to instance server…"
msgstr "Laster-teklak zerbitzarian gordetzen…"
msgstr "Lasterbideak zerbitzarian gordetzen…"
#: src/components/shortcuts-settings.jsx:1126
msgid "Shortcuts saved"
msgstr "Laster-teklak gorde dira"
msgstr "Lasterbideak gorde dira"
#: src/components/shortcuts-settings.jsx:1131
msgid "Unable to save shortcuts"
msgstr "Ezin dira laster-teklak gorde"
msgstr "Ezin dira lasterbideak gorde"
#: src/components/shortcuts-settings.jsx:1134
msgid "Sync to instance server"
@ -1999,7 +1999,7 @@ msgstr "{0, plural, one {karaktere #} other {# karaktere}}"
#: src/components/shortcuts-settings.jsx:1154
msgid "Raw Shortcuts JSON"
msgstr "Laster-teklen JSON gordina"
msgstr "Lasterbideen JSON gordina"
#: src/components/shortcuts-settings.jsx:1167
msgid "Import/export settings from/to instance server (Very experimental)"
@ -2306,13 +2306,21 @@ msgstr "Bidalketa berriak"
msgid "Try again"
msgstr "Saiatu berriro"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr "{0, plural, one {Bultzada #} other {# bultzada}}"
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr "Finkatutako bidalketak"
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Haria"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Iragazita</0>: <1>{0}</1>"
@ -2963,19 +2971,19 @@ msgstr "Kendu traola"
#: src/pages/hashtag.jsx:442
msgid "{SHORTCUTS_LIMIT, plural, one {Max # shortcut reached. Unable to add shortcut.} other {Max # shortcuts reached. Unable to add shortcut.}}"
msgstr "{SHORTCUTS_LIMIT, plural, one {Gehienezko # laster-teklara iritsi zara. Ezin da laster-tekla gehitu.} other {Gehienezko # laster-teklatara iritsi zara. Ezin da laster-tekla gehitu.}}"
msgstr "{SHORTCUTS_LIMIT, plural, one {Gehienezko lasterbidera (#) iritsi zara. Ezin da lasterbidea gehitu.} other {Gehienezko # lasterbideetara iritsi zara. Ezin da lasterbidea gehitu.}}"
#: src/pages/hashtag.jsx:471
msgid "This shortcut already exists"
msgstr "Laster-tekla badago lehendik ere"
msgstr "Lasterbidea badago lehendik ere"
#: src/pages/hashtag.jsx:474
msgid "Hashtag shortcut added"
msgstr "Traolaren laster-tekla gehitu da"
msgstr "Traolaren lasterbidea gehitu da"
#: src/pages/hashtag.jsx:480
msgid "Add to Shortcuts"
msgstr "Gehitu laster-tekletara"
msgstr "Gehitu lasterbideetara"
#: src/pages/hashtag.jsx:486
#: src/pages/public.jsx:139
@ -3426,7 +3434,7 @@ msgstr "Alpha fasean dagoen ezaugarria. Taldekatzea hobetu lezake, baina oinarri
#: src/pages/settings.jsx:625
msgid "\"Cloud\" import/export for shortcuts settings"
msgstr "Laster-teklen hodeiko inportazio / esportazio ezarpenak"
msgstr "Lasterbideen hodeiko inportazio / esportazio ezarpenak"
#: src/pages/settings.jsx:630
msgid "⚠️⚠️⚠️ Very experimental.<0/>Stored in your own profiles notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."
@ -3507,7 +3515,7 @@ msgstr "edonor"
#: src/pages/settings.jsx:995
msgid "people I follow"
msgstr "jarraitzen dudan jendea"
msgstr "jarraitzen diodan jendea"
#: src/pages/settings.jsx:999
msgid "followers"

647
src/locales/fa-IR.po generated

File diff suppressed because it is too large Load diff

24
src/locales/fi-FI.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-01 11:50\n"
"PO-Revision-Date: 2024-09-06 08:08\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -606,7 +606,7 @@ msgstr "Liite #{i} epäonnistui"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Sisältövaroitus"
@ -849,13 +849,13 @@ msgstr "Hae GIF-kuvia kirjoittamalla"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Edellinen"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Seuraava"
@ -1207,7 +1207,7 @@ msgstr "Suodatettu: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr "Uudet julkaisut"
msgid "Try again"
msgstr "Yritä uudelleen"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr "{0, plural, one {# tehostus} other {# tehostusta}}"
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr "Kiinnitetyt julkaisut"
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Ketju"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Suodatettu</0>: <1>{0}</1>"

515
src/locales/fr-FR.po generated

File diff suppressed because it is too large Load diff

459
src/locales/gl-ES.po generated

File diff suppressed because it is too large Load diff

24
src/locales/he-IL.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 22:48\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

1633
src/locales/it-IT.po generated

File diff suppressed because it is too large Load diff

24
src/locales/ja-JP.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:33\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "前へ"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "次へ"
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "スレッド"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

24
src/locales/kab.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: kab\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-02 07:56\n"
"PO-Revision-Date: 2024-09-06 14:22\n"
"Last-Translator: \n"
"Language-Team: Kabyle\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -606,7 +606,7 @@ msgstr "Amedday #{i} yecceḍ"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Yir agbur"
@ -849,13 +849,13 @@ msgstr "Aru i unadi n GIFs"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Uzwir"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Uḍfir"
@ -1207,7 +1207,7 @@ msgstr "Yettwasizdeg: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr "Tisuffaɣ timaynutin"
msgid "Try again"
msgstr "Ɛreḍ tikkelt-nniḍen"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr "{0, plural, one {# n uzuzer} other {# n yizurar}}"
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr "Tisuffaɣ yettwasenṭḍen"
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Asqerdec"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Yettwasizdeg</0>: <1>{0}</1>"

212
src/locales/ko-KR.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-01 12:49\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@ -550,7 +550,7 @@ msgstr "저장되지 않은 변경 사항이 있습니다. 해당 게시물을
#: src/components/compose.jsx:1328
#: src/components/compose.jsx:1589
msgid "{maxMediaAttachments, plural, one {You can only attach up to 1 file.} other {You can only attach up to # files.}}"
msgstr ""
msgstr "{maxMediaAttachments, plural, one {파일은 1개까지만 첨부할 수 있습니다.} other {파일은 #개 까지만 첨부할 수 있습니다.}}"
#: src/components/compose.jsx:778
msgid "Pop out"
@ -562,15 +562,15 @@ msgstr "최소화"
#: src/components/compose.jsx:821
msgid "Looks like you closed the parent window."
msgstr ""
msgstr "Parent window를 닫으신거 같습니다."
#: src/components/compose.jsx:828
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."
msgstr ""
msgstr "Parent window에 이미 작성 필드가 열려 있고 현재 게시 중인 것 같습니다. 완료될 때까지 기다렸다가 나중에 다시 시도하세요."
#: src/components/compose.jsx:833
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?"
msgstr ""
msgstr "Parent window에 이미 작성 필드가 열려 있는 것 같습니다. 이 창을 열면 Parent window에서 변경한 내용이 취소됩니다. 계속하시겠습니까?"
#: src/components/compose.jsx:875
msgid "Pop in"
@ -606,7 +606,7 @@ msgstr "첨부 파일 #{i} 실패"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "열람 주의"
@ -849,13 +849,13 @@ msgstr "움짤을 검색하려면 입력하세요"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "이전"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "다음"
@ -1201,13 +1201,13 @@ msgstr "민감한 매체"
#: src/components/media-post.jsx:132
msgid "Filtered: {filterTitleStr}"
msgstr ""
msgstr "필터됨: {filterTitleStr}"
#: src/components/media-post.jsx:133
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -1448,15 +1448,15 @@ msgstr "조정 경고"
#: src/components/notification.jsx:267
msgid "An admin from <0>{from}</0> has suspended <1>{targetName}</1>, which means you can no longer receive updates from them or interact with them."
msgstr ""
msgstr "<0>{from}</0> 의 관리자가 <1>{targetName}</1> 를 일시 중단하였습니다, 이는 더 이상 업데이트를 받거나 상호 작용할 수 없다는 의미입니다."
#: src/components/notification.jsx:273
msgid "An admin from <0>{from}</0> has blocked <1>{targetName}</1>. Affected followers: {followersCount}, followings: {followingCount}."
msgstr ""
msgstr "<0>{from}</0>의 관리자가 <1>{targetName}</1>를 차단하였습니다. 영향을 받는 팔로워: {followersCount}, 팔로잉: {followingCount}."
#: src/components/notification.jsx:279
msgid "You have blocked <0>{targetName}</0>. Removed followers: {followersCount}, followings: {followingCount}."
msgstr ""
msgstr "당신은 <0>{targetName}</0>를 차단하였습니다. 제거된 팔로워: {followersCount}, 팔로잉: {followingCount}."
#: src/components/notification.jsx:287
msgid "Your account has received a moderation warning."
@ -1524,7 +1524,7 @@ msgstr "투표함"
#: src/components/poll.jsx:116
msgid "{optionVotesCount, plural, one {# vote} other {# votes}}"
msgstr ""
msgstr "{optionVotesCount, plural, one {# vote} other {# votes}}"
#: src/components/poll.jsx:136
#: src/components/poll.jsx:219
@ -1697,23 +1697,23 @@ msgstr "신고 <0>및 프로필 차단</0>"
#: src/components/search-form.jsx:202
msgid "{query} <0> accounts, hashtags & posts</0>"
msgstr ""
msgstr "{query} <0> 계정, 해시태그 & 포스트</0>"
#: src/components/search-form.jsx:215
msgid "Posts with <0>{query}</0>"
msgstr ""
msgstr "<0>{query}</0>이/가 포함된 게시물"
#: src/components/search-form.jsx:227
msgid "Posts tagged with <0>#{0}</0>"
msgstr ""
msgstr "<0>#{0}</0>로 태그된 게시물"
#: src/components/search-form.jsx:241
msgid "Look up <0>{query}</0>"
msgstr ""
msgstr "<0>{query}</0> 찾기"
#: src/components/search-form.jsx:252
msgid "Accounts with <0>{query}</0>"
msgstr ""
msgstr "<0>{query}</0>이/가 포함된 계정"
#: src/components/shortcuts-settings.jsx:48
msgid "Home / Following"
@ -1721,7 +1721,7 @@ msgstr "홈·팔로잉"
#: src/components/shortcuts-settings.jsx:51
msgid "Public (Local / Federated)"
msgstr ""
msgstr "공개(로컬/연합)"
#: src/components/shortcuts-settings.jsx:53
msgid "Account"
@ -1737,7 +1737,7 @@ msgstr "리스트 ID"
#: src/components/shortcuts-settings.jsx:70
msgid "Local only"
msgstr ""
msgstr "로컬만"
#: src/components/shortcuts-settings.jsx:75
#: src/components/shortcuts-settings.jsx:84
@ -1814,7 +1814,7 @@ msgstr "고치기"
#: src/components/shortcuts-settings.jsx:397
msgid "Add more than one shortcut/column to make this work."
msgstr ""
msgstr "바로 가기/열을 두 개 이상 추가하여 작동하도록 합니다."
#: src/components/shortcuts-settings.jsx:408
msgid "No columns yet. Tap on the Add column button."
@ -1854,11 +1854,11 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:514
msgid "For multi-column mode, search term is required, else the column will not be shown."
msgstr ""
msgstr "멀티 칼럼 모드의 경우 검색어가 필수이며, 그렇지 않으면 칼럼이 표시되지 않습니다."
#: src/components/shortcuts-settings.jsx:515
msgid "Multiple hashtags are supported. Space-separated."
msgstr ""
msgstr "멀티 해시태그가 지원됩니다. (띄어쓰기로 구분)"
#: src/components/shortcuts-settings.jsx:584
msgid "Edit shortcut"
@ -1898,7 +1898,7 @@ msgstr "바로 가기 받을 수 없음"
#: src/components/shortcuts-settings.jsx:851
msgid "Download shortcuts from instance server"
msgstr ""
msgstr "인스턴스 서버에서 바로 가기 받기"
#: src/components/shortcuts-settings.jsx:909
msgid "* Exists in current shortcuts"
@ -1922,7 +1922,7 @@ msgstr ""
#: src/components/shortcuts-settings.jsx:957
msgid "No new shortcuts to import"
msgstr ""
msgstr "가져올 바로가기가 없습니다"
#: src/components/shortcuts-settings.jsx:972
msgid "Shortcuts imported. Exceeded max {SHORTCUTS_LIMIT}, so the rest are not imported."
@ -1931,7 +1931,7 @@ msgstr "바로 가기를 가져왔습니다. 최다치인 {SHORTCUTS_LIMIT}개
#: src/components/shortcuts-settings.jsx:973
#: src/components/shortcuts-settings.jsx:997
msgid "Shortcuts imported"
msgstr ""
msgstr "바로가기 복사됨"
#: src/components/shortcuts-settings.jsx:983
msgid "Import & append…"
@ -1939,7 +1939,7 @@ msgstr "가져와서 덧붙이기…"
#: src/components/shortcuts-settings.jsx:991
msgid "Override current shortcuts?"
msgstr ""
msgstr "현재 바로가기를 덮어쓸까요?"
#: src/components/shortcuts-settings.jsx:992
msgid "Import shortcuts?"
@ -2306,13 +2306,21 @@ msgstr "새 게시물"
msgid "Try again"
msgstr "재시도"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "글타래"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>필터됨</0>: <1>{0}</1>"
@ -2342,7 +2350,7 @@ msgstr "번역 실패"
#: src/compose.jsx:32
msgid "Editing source status"
msgstr ""
msgstr "소스 상태 고치기"
#: src/compose.jsx:34
msgid "Replying to @{0}"
@ -2358,7 +2366,7 @@ msgstr "창 닫기"
#: src/compose.jsx:86
msgid "Login required."
msgstr ""
msgstr "로그인이 필요합니다."
#: src/compose.jsx:90
#: src/pages/http-route.jsx:91
@ -2368,7 +2376,7 @@ msgstr "홈 가기"
#: src/pages/account-statuses.jsx:233
msgid "Account posts"
msgstr ""
msgstr "계정 게시물"
#: src/pages/account-statuses.jsx:240
msgid "{accountDisplay} (+ Replies)"
@ -2380,15 +2388,15 @@ msgstr "{accountDisplay} (- 부스트)"
#: src/pages/account-statuses.jsx:244
msgid "{accountDisplay} (#{tagged})"
msgstr ""
msgstr "{accountDisplay} (#{tagged})"
#: src/pages/account-statuses.jsx:246
msgid "{accountDisplay} (Media)"
msgstr ""
msgstr "{accountDisplay} (매체)"
#: src/pages/account-statuses.jsx:252
msgid "{accountDisplay} ({monthYear})"
msgstr ""
msgstr "{accountDisplay} ({monthYear})"
#: src/pages/account-statuses.jsx:321
msgid "Clear filters"
@ -2396,7 +2404,7 @@ msgstr "필터 초기화"
#: src/pages/account-statuses.jsx:324
msgid "Clear"
msgstr ""
msgstr "초기화"
#: src/pages/account-statuses.jsx:338
msgid "Showing post with replies"
@ -2416,15 +2424,15 @@ msgstr "- 부스트"
#: src/pages/account-statuses.jsx:360
msgid "Showing posts with media"
msgstr ""
msgstr "매체와 함께 게시글 보여주기"
#: src/pages/account-statuses.jsx:377
msgid "Showing posts tagged with #{0}"
msgstr ""
msgstr "#{0} 으로 태그된 게시물 보여주기"
#: src/pages/account-statuses.jsx:416
msgid "Showing posts in {0}"
msgstr ""
msgstr "{0} 에서 게시글 보여주기"
#: src/pages/account-statuses.jsx:505
msgid "Nothing to see here yet."
@ -2451,7 +2459,7 @@ msgstr "내 인스턴스로 전환 (<0>{currentInstance}</0>)"
#: src/pages/account-statuses.jsx:646
msgid "Month"
msgstr ""
msgstr ""
#: src/pages/accounts.jsx:55
msgid "Current"
@ -2467,7 +2475,7 @@ msgstr "이 계정으로 전환"
#: src/pages/accounts.jsx:132
msgid "Switch in new tab/window"
msgstr ""
msgstr "새 탭/창으로 변경하기"
#: src/pages/accounts.jsx:146
msgid "View profile…"
@ -2479,7 +2487,7 @@ msgstr "기본 계정으로 삼기"
#: src/pages/accounts.jsx:173
msgid "Log out <0>@{0}</0>?"
msgstr ""
msgstr "로그아웃 <0>@{0}</0>?"
#: src/pages/accounts.jsx:196
msgid "Log out…"
@ -2495,7 +2503,7 @@ msgstr "참고: <0>기본 계정</0>은 언제나 가장 먼저 뜹니다. 교
#: src/pages/bookmarks.jsx:25
msgid "No bookmarks yet. Go bookmark something!"
msgstr ""
msgstr "아직 북마크한 것이 없습니다. 북마크 하나 해보세요!"
#: src/pages/bookmarks.jsx:26
msgid "Unable to load bookmarks."
@ -2555,11 +2563,11 @@ msgstr "12시간 이상"
#: src/pages/catchup.jsx:73
msgid "Followed tags"
msgstr ""
msgstr "팔로우한 태그"
#: src/pages/catchup.jsx:74
msgid "Groups"
msgstr ""
msgstr "그룹"
#: src/pages/catchup.jsx:596
msgid "Showing {selectedFilterCategory, select, all {all posts} original {original posts} replies {replies} boosts {boosts} followedTags {followed tags} groups {groups} filtered {filtered posts}}, {sortBy, select, createdAt {{sortOrder, select, asc {oldest} desc {latest}}} reblogsCount {{sortOrder, select, asc {fewest boosts} desc {most boosts}}} favouritesCount {{sortOrder, select, asc {fewest likes} desc {most likes}}} repliesCount {{sortOrder, select, asc {fewest replies} desc {most replies}}} density {{sortOrder, select, asc {least dense} desc {most dense}}}} first{groupBy, select, account {, grouped by authors} other {}}"
@ -2654,13 +2662,13 @@ msgstr "인기 링크"
#: src/pages/catchup.jsx:1260
msgid "Shared by {0}"
msgstr ""
msgstr "{0} 이 공유함"
#: src/pages/catchup.jsx:1299
#: src/pages/mentions.jsx:147
#: src/pages/search.jsx:222
msgid "All"
msgstr ""
msgstr "전체"
#: src/pages/catchup.jsx:1384
msgid "{0, plural, one {# author} other {# authors}}"
@ -2736,15 +2744,15 @@ msgstr "맨 위로"
#: src/pages/catchup.jsx:1858
msgid "Filtered: {0}"
msgstr ""
msgstr "필터됨: {0}"
#: src/pages/favourites.jsx:25
msgid "No likes yet. Go like something!"
msgstr ""
msgstr "아직 좋아요가 없습니다. 좋아요를 눌러보세요!"
#: src/pages/favourites.jsx:26
msgid "Unable to load likes."
msgstr ""
msgstr "좋아요를 불러올 수 없음"
#: src/pages/filters.jsx:23
msgid "Home and lists"
@ -2752,7 +2760,7 @@ msgstr "홈 및 리스트"
#: src/pages/filters.jsx:25
msgid "Public timelines"
msgstr ""
msgstr "공개 타임라인"
#: src/pages/filters.jsx:26
msgid "Conversations"
@ -2764,7 +2772,7 @@ msgstr "프로필"
#: src/pages/filters.jsx:42
msgid "Never"
msgstr ""
msgstr "안 함"
#: src/pages/filters.jsx:103
#: src/pages/filters.jsx:228
@ -2777,7 +2785,7 @@ msgstr ""
#: src/pages/filters.jsx:166
msgid "Unable to load filters."
msgstr ""
msgstr "필터를 로드할 수 없음."
#: src/pages/filters.jsx:170
msgid "No filters yet."
@ -2785,7 +2793,7 @@ msgstr "아직 아무 필터도 없습니다."
#: src/pages/filters.jsx:177
msgid "Add filter"
msgstr ""
msgstr "필터 추가"
#: src/pages/filters.jsx:228
msgid "Edit filter"
@ -2821,7 +2829,7 @@ msgstr "{0, plural, other {검색어 #개}}"
#: src/pages/filters.jsx:466
msgid "Filter from…"
msgstr ""
msgstr "…로 부터 필터"
#: src/pages/filters.jsx:492
msgid "* Not implemented yet"
@ -2837,7 +2845,7 @@ msgstr "만기 변경"
#: src/pages/filters.jsx:507
msgid "Expiry"
msgstr ""
msgstr "만기"
#: src/pages/filters.jsx:526
msgid "Filtered post will be…"
@ -2861,7 +2869,7 @@ msgstr "필터를 지울 수 없습니다."
#: src/pages/filters.jsx:608
msgid "Expired"
msgstr ""
msgstr "만료됨"
#: src/pages/filters.jsx:610
msgid "Expiring <0/>"
@ -2869,7 +2877,7 @@ msgstr "<0/> 만료됨"
#: src/pages/filters.jsx:614
msgid "Never expires"
msgstr ""
msgstr "만기 없음"
#: src/pages/followed-hashtags.jsx:70
msgid "{0, plural, one {# hashtag} other {# hashtags}}"
@ -2918,7 +2926,7 @@ msgstr "해당 태그를 포함한 게시물을 불러올 수 없습니다"
#: src/pages/hashtag.jsx:208
msgid "Unfollow #{hashtag}?"
msgstr ""
msgstr "#{hashtag} 를 그만 팔로우할까요?"
#: src/pages/hashtag.jsx:223
msgid "Unfollowed #{hashtag}"
@ -2934,11 +2942,11 @@ msgstr "팔로잉…"
#: src/pages/hashtag.jsx:282
msgid "Unfeatured on profile"
msgstr ""
msgstr "프로필에 표시되지 않음"
#: src/pages/hashtag.jsx:296
msgid "Unable to unfeature on profile"
msgstr ""
msgstr "프로필에 표시되지 않음 기능을 사용할 수 없습니다."
#: src/pages/hashtag.jsx:305
#: src/pages/hashtag.jsx:321
@ -3049,11 +3057,11 @@ msgstr "아직 아무 리스트도 없습니다."
#: src/pages/login.jsx:86
#: src/pages/login.jsx:99
msgid "Failed to register application"
msgstr ""
msgstr "앱 등록에 실패함"
#: src/pages/login.jsx:185
msgid "instance domain"
msgstr ""
msgstr "인스턴스 도메인"
#: src/pages/login.jsx:209
msgid "e.g. “mastodon.social”"
@ -3101,7 +3109,7 @@ msgstr "날 팔로하지 않는 사람"
#: src/pages/notifications.jsx:99
msgid "With a new account"
msgstr ""
msgstr "새 계정으로"
#: src/pages/notifications.jsx:100
msgid "Who unsolicitedly private mention you"
@ -3109,7 +3117,7 @@ msgstr ""
#: src/pages/notifications.jsx:101
msgid "Who are limited by server moderators"
msgstr ""
msgstr "모더레이터를 통해 제한된 유저"
#: src/pages/notifications.jsx:523
#: src/pages/notifications.jsx:844
@ -3167,11 +3175,11 @@ msgstr "다음 사용자로부터 알림을 제외:"
#: src/pages/notifications.jsx:893
msgid "Filter"
msgstr ""
msgstr "필터"
#: src/pages/notifications.jsx:896
msgid "Ignore"
msgstr ""
msgstr "무시"
#: src/pages/notifications.jsx:969
msgid "Updated <0>{0}</0>"
@ -3179,15 +3187,15 @@ msgstr "<0>{0}</0> 업데이트됨"
#: src/pages/notifications.jsx:1037
msgid "View notifications from <0>@{0}</0>"
msgstr ""
msgstr "<0>@{0}</0> 로부터 받은 알림 보기"
#: src/pages/notifications.jsx:1058
msgid "Notifications from <0>@{0}</0>"
msgstr ""
msgstr "<0>@{0}</0> 로부터 받은 알림"
#: src/pages/notifications.jsx:1125
msgid "Notifications from @{0} will not be filtered from now on."
msgstr ""
msgstr "<0>@{0}</0> 로부터 받은 알림은 이제부터 필터링되지 않습니다."
#: src/pages/notifications.jsx:1130
msgid "Unable to accept notification request"
@ -3195,7 +3203,7 @@ msgstr ""
#: src/pages/notifications.jsx:1135
msgid "Allow"
msgstr ""
msgstr "수락"
#: src/pages/notifications.jsx:1155
msgid "Notifications from @{0} will not show up in Filtered notifications from now on."
@ -3203,7 +3211,7 @@ msgstr ""
#: src/pages/notifications.jsx:1160
msgid "Unable to dismiss notification request"
msgstr ""
msgstr "알림 요청을 해제할 수 없습니다."
#: src/pages/notifications.jsx:1165
msgid "Dismiss"
@ -3215,47 +3223,47 @@ msgstr "닫힘"
#: src/pages/public.jsx:27
msgid "Local timeline ({instance})"
msgstr ""
msgstr "로컬 타임라인 ({instance})"
#: src/pages/public.jsx:28
msgid "Federated timeline ({instance})"
msgstr ""
msgstr "연합 타임라인 ({instance})"
#: src/pages/public.jsx:90
msgid "Local timeline"
msgstr ""
msgstr "로컬 타임라인"
#: src/pages/public.jsx:90
msgid "Federated timeline"
msgstr ""
msgstr "연합 타임라인"
#: src/pages/public.jsx:96
msgid "No one has posted anything yet."
msgstr ""
msgstr "아직 아무도 게시물을 쓰지 않았습니다."
#: src/pages/public.jsx:123
msgid "Switch to Federated"
msgstr ""
msgstr "연합으로 변경하기"
#: src/pages/public.jsx:130
msgid "Switch to Local"
msgstr ""
msgstr "로컬로 변경하기"
#: src/pages/search.jsx:43
msgid "Search: {q} (Posts)"
msgstr ""
msgstr "검색: {q} (게시물)"
#: src/pages/search.jsx:46
msgid "Search: {q} (Accounts)"
msgstr ""
msgstr "검색: {q} (계정)"
#: src/pages/search.jsx:49
msgid "Search: {q} (Hashtags)"
msgstr ""
msgstr "검색: {q} (해시태그)"
#: src/pages/search.jsx:52
msgid "Search: {q}"
msgstr ""
msgstr "검색: {q}"
#: src/pages/search.jsx:232
#: src/pages/search.jsx:314
@ -3426,7 +3434,7 @@ msgstr "알파 단계 기능입니다. 묶음의 크기가 커질 수도 있지
#: src/pages/settings.jsx:625
msgid "\"Cloud\" import/export for shortcuts settings"
msgstr ""
msgstr "바로 가기 설정을 위해 \"클라우드\" 가져오기/내보내기"
#: src/pages/settings.jsx:630
msgid "⚠️⚠️⚠️ Very experimental.<0/>Stored in your own profiles notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."
@ -3434,7 +3442,7 @@ msgstr ""
#: src/pages/settings.jsx:641
msgid "Note: This feature uses currently-logged-in instance server API."
msgstr ""
msgstr "알림: 이 기능은 현재 로그인한 인스턴스 서버 API를 사용합니다."
#: src/pages/settings.jsx:658
msgid "Cloak mode <0>(<1>Text</1> → <2>████</2>)</0>"
@ -3487,7 +3495,7 @@ msgstr "구독을 갱신하는 데 실패했습니다. 다시 시도해 보세
#: src/pages/settings.jsx:944
msgid "Failed to remove subscription. Please try again."
msgstr ""
msgstr "구독을 삭제하는 데 실패했습니다. 다시 시도하세요."
#: src/pages/settings.jsx:951
msgid "Push Notifications (beta)"
@ -3495,7 +3503,7 @@ msgstr "푸시 알림 (베타)"
#: src/pages/settings.jsx:973
msgid "Push notifications are blocked. Please enable them in your browser settings."
msgstr ""
msgstr "푸시 알림이 차단되었습니다. 브라우저 설정에서 푸시 알림을 활성화하세요."
#: src/pages/settings.jsx:982
msgid "Allow from <0>{0}</0>"
@ -3527,7 +3535,7 @@ msgstr "게시물 수정"
#: src/pages/settings.jsx:1065
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>."
msgstr ""
msgstr "마지막 로그인 이후 푸시 권한이 부여되지 않았습니다. <0>푸시 권한을 다시 얻으려면<1>로그인</1>을</0>해야합니다."
#: src/pages/settings.jsx:1081
msgid "NOTE: Push notifications only work for <0>one account</0>."
@ -3539,19 +3547,19 @@ msgstr "게시물"
#: src/pages/status.jsx:786
msgid "You're not logged in. Interactions (reply, boost, etc) are not possible."
msgstr ""
msgstr "로그인하지 않았습니다. 상호작용(댓글, 부스트 등) 은 불가능합니다."
#: src/pages/status.jsx:799
msgid "This post is from another instance (<0>{instance}</0>). Interactions (reply, boost, etc) are not possible."
msgstr ""
msgstr "이 게시글은 다른 인스턴스 (<0>{instance}</0>) 에서 작성돠었습니다. 상호작용(댓글, 부스트 등) 은 불가능합니다."
#: src/pages/status.jsx:827
msgid "Error: {e}"
msgstr ""
msgstr "오류: {e}"
#: src/pages/status.jsx:834
msgid "Switch to my instance to enable interactions"
msgstr ""
msgstr "내 인스턴스를 변경해 상호작용을 활성화시키기"
#: src/pages/status.jsx:936
msgid "Unable to load replies."
@ -3576,15 +3584,15 @@ msgstr ""
#: src/pages/status.jsx:1209
msgid "Switch to Full view"
msgstr ""
msgstr "전체 화면으로 전환"
#: src/pages/status.jsx:1227
msgid "Show all sensitive content"
msgstr ""
msgstr "모든 민감한 내용 보기"
#: src/pages/status.jsx:1232
msgid "Experimental"
msgstr ""
msgstr "시범적"
#: src/pages/status.jsx:1241
msgid "Unable to switch"
@ -3688,7 +3696,7 @@ msgstr ""
#: src/pages/welcome.jsx:160
msgid "Grouped notifications"
msgstr ""
msgstr "그룹 알림"
#: src/pages/welcome.jsx:163
msgid "Similar notifications are grouped and collapsed to reduce clutter."
@ -3696,7 +3704,7 @@ msgstr ""
#: src/pages/welcome.jsx:172
msgid "Screenshot of multi-column UI"
msgstr ""
msgstr "멀티 칼럼 UI 스크린샷"
#: src/pages/welcome.jsx:176
msgid "Single or multi-column"
@ -3708,7 +3716,7 @@ msgstr "기본적으로는 젠 모드를 추구하는 분들을 위해 한 칼
#: src/pages/welcome.jsx:188
msgid "Screenshot of multi-hashtag timeline with a form to add more hashtags"
msgstr ""
msgstr "해시태그를 더 추가할 수 있는 양식이 있는 멀티 해시태그 타임라인 스크린샷"
#: src/pages/welcome.jsx:192
msgid "Multi-hashtag timeline"
@ -3724,9 +3732,9 @@ msgstr "웹브라우저에서 팝업 윈도를 차단한 것 같습니다."
#: src/utils/show-compose.js:16
msgid "A draft post is currently minimized. Post or discard it before creating a new one."
msgstr ""
msgstr "게시글 초고가 현재 최소화되어있습니다. 새로운 게시글을 작성하기 전 올리거나 지우세요."
#: src/utils/show-compose.js:21
msgid "A post is currently open. Post or discard it before creating a new one."
msgstr ""
msgstr "게시글이 현재 열려있습니다. 새로운 게시글을 작성하기 전 올리거나 지우세요."

24
src/locales/lt-LT.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 16:29\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@ -606,7 +606,7 @@ msgstr "Nepavyko #{i} priedas."
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Turinio įspėjimas"
@ -849,13 +849,13 @@ msgstr "Rašyk, kad ieškotum GIF"
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Ankstesnis"
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Kitas"
@ -1207,7 +1207,7 @@ msgstr "Filtruota: {filterTitleStr}"
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Gija"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

1217
src/locales/nl-NL.po generated

File diff suppressed because it is too large Load diff

24
src/locales/oc-FR.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: oc\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:33\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Occitan\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

32
src/locales/pl-PL.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:34\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@ -75,20 +75,20 @@ msgstr "{followersCount, plural, one {# obserwujący} few {# obserwujących} man
#: src/components/account-block.jsx:205
#: src/components/account-info.jsx:680
msgid "Verified"
msgstr "Własność tego odnośnika została potwierdzona"
msgstr "Zweryfikowany"
#: src/components/account-block.jsx:220
#: src/components/account-info.jsx:777
msgid "Joined <0>{0}</0>"
msgstr ""
msgstr "Jest tutaj od <0>{0}</0>"
#: src/components/account-info.jsx:57
msgid "Forever"
msgstr ""
msgstr "Na zawsze"
#: src/components/account-info.jsx:377
msgid "Unable to load account."
msgstr ""
msgstr "Nie można załadować konta."
#: src/components/account-info.jsx:385
msgid "Go to account page"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

561
src/locales/pt-BR.po generated

File diff suppressed because it is too large Load diff

671
src/locales/pt-PT.po generated

File diff suppressed because it is too large Load diff

437
src/locales/ru-RU.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 17:49\n"
"PO-Revision-Date: 2024-09-07 05:11\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@ -37,7 +37,7 @@ msgstr "Бот"
#: src/components/account-block.jsx:166
#: src/components/account-info.jsx:639
#: src/components/status.jsx:439
#: src/components/status.jsx:440
#: src/pages/catchup.jsx:1454
msgid "Group"
msgstr "Группа"
@ -110,14 +110,14 @@ msgstr "Посты"
#: src/components/account-info.jsx:427
#: src/components/account-info.jsx:1115
#: src/components/compose.jsx:2451
#: src/components/compose.jsx:2456
#: src/components/media-alt-modal.jsx:45
#: src/components/media-modal.jsx:283
#: src/components/status.jsx:1635
#: src/components/status.jsx:1652
#: src/components/status.jsx:1776
#: src/components/status.jsx:2371
#: src/components/status.jsx:2374
#: src/components/status.jsx:1636
#: src/components/status.jsx:1653
#: src/components/status.jsx:1777
#: src/components/status.jsx:2372
#: src/components/status.jsx:2375
#: src/pages/account-statuses.jsx:528
#: src/pages/accounts.jsx:109
#: src/pages/hashtag.jsx:199
@ -186,7 +186,7 @@ msgid "Original"
msgstr "Оригинальные"
#: src/components/account-info.jsx:859
#: src/components/status.jsx:2162
#: src/components/status.jsx:2163
#: src/pages/catchup.jsx:71
#: src/pages/catchup.jsx:1428
#: src/pages/catchup.jsx:2039
@ -282,30 +282,30 @@ msgid "Add/Remove from Lists"
msgstr "Управление списками"
#: src/components/account-info.jsx:1299
#: src/components/status.jsx:1078
#: src/components/status.jsx:1079
msgid "Link copied"
msgstr "Ссылка скопирована"
#: src/components/account-info.jsx:1302
#: src/components/status.jsx:1081
#: src/components/status.jsx:1082
msgid "Unable to copy link"
msgstr "Не удалось скопировать ссылку"
#: src/components/account-info.jsx:1308
#: src/components/shortcuts-settings.jsx:1056
#: src/components/status.jsx:1087
#: src/components/status.jsx:3114
#: src/components/status.jsx:1088
#: src/components/status.jsx:3115
msgid "Copy"
msgstr "Копировать"
#: src/components/account-info.jsx:1323
#: src/components/shortcuts-settings.jsx:1074
#: src/components/status.jsx:1103
#: src/components/status.jsx:1104
msgid "Sharing doesn't seem to work."
msgstr "Кажется, функция «Поделиться» не работает."
#: src/components/account-info.jsx:1329
#: src/components/status.jsx:1109
#: src/components/status.jsx:1110
msgid "Share…"
msgstr "Поделиться…"
@ -406,10 +406,10 @@ msgstr "Подписаться"
#: src/components/account-info.jsx:2086
#: src/components/account-sheet.jsx:37
#: src/components/compose.jsx:797
#: src/components/compose.jsx:2407
#: src/components/compose.jsx:2880
#: src/components/compose.jsx:3088
#: src/components/compose.jsx:3318
#: src/components/compose.jsx:2412
#: src/components/compose.jsx:2885
#: src/components/compose.jsx:3093
#: src/components/compose.jsx:3323
#: src/components/drafts.jsx:58
#: src/components/embed-modal.jsx:12
#: src/components/generic-accounts.jsx:142
@ -422,9 +422,9 @@ msgstr "Подписаться"
#: src/components/shortcuts-settings.jsx:227
#: src/components/shortcuts-settings.jsx:580
#: src/components/shortcuts-settings.jsx:780
#: src/components/status.jsx:2839
#: src/components/status.jsx:3078
#: src/components/status.jsx:3576
#: src/components/status.jsx:2840
#: src/components/status.jsx:3079
#: src/components/status.jsx:3577
#: src/pages/accounts.jsx:36
#: src/pages/catchup.jsx:1564
#: src/pages/filters.jsx:224
@ -484,6 +484,11 @@ msgstr "Сохранить и закрыть"
msgid "Unable to update profile."
msgstr "Не удалось обновить профиль."
#: src/components/account-info.jsx:2149
#: src/components/list-add-edit.jsx:102
msgid "Name"
msgstr "Название"
#: src/components/account-info.jsx:2162
msgid "Bio"
msgstr "О себе"
@ -547,8 +552,8 @@ msgstr "У вас есть несохраненные изменения. Отм
#: src/components/compose.jsx:614
#: src/components/compose.jsx:630
#: src/components/compose.jsx:1328
#: src/components/compose.jsx:1589
#: src/components/compose.jsx:1333
#: src/components/compose.jsx:1594
msgid "{maxMediaAttachments, plural, one {You can only attach up to 1 file.} other {You can only attach up to # files.}}"
msgstr "{maxMediaAttachments, plural, one {Вы можете прикрепить только 1 файл.} other {Вы можете прикрепить до # файлов.}}"
@ -605,8 +610,8 @@ msgid "Attachment #{i} failed"
msgstr "Не удалось прикрепить вложение №{i}"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/status.jsx:1962
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Предупреждение о содержании"
@ -620,246 +625,253 @@ msgstr "Предупреждение о содержании или медиаф
msgid "Public"
msgstr "Публичный"
#: src/components/compose.jsx:1173
#: src/components/compose.jsx:1174
#: src/components/nav-menu.jsx:386
#: src/components/shortcuts-settings.jsx:162
#: src/components/status.jsx:94
msgid "Local"
msgstr "Локальная"
#: src/components/compose.jsx:1178
#: src/components/status.jsx:95
#: src/pages/settings.jsx:300
msgid "Unlisted"
msgstr "Без включения в поиск"
#: src/components/compose.jsx:1176
#: src/components/status.jsx:95
#: src/components/compose.jsx:1181
#: src/components/status.jsx:96
#: src/pages/settings.jsx:303
msgid "Followers only"
msgstr "Только для подписчиков"
#: src/components/compose.jsx:1179
#: src/components/status.jsx:96
#: src/components/status.jsx:1839
#: src/components/compose.jsx:1184
#: src/components/status.jsx:97
#: src/components/status.jsx:1840
msgid "Private mention"
msgstr "Личное упоминание"
#: src/components/compose.jsx:1188
#: src/components/compose.jsx:1193
msgid "Post your reply"
msgstr "Опубликовать ответ"
#: src/components/compose.jsx:1190
#: src/components/compose.jsx:1195
msgid "Edit your post"
msgstr "Редактировать свой пост"
#: src/components/compose.jsx:1191
#: src/components/compose.jsx:1196
msgid "What are you doing?"
msgstr "Начните писать свои мысли"
#: src/components/compose.jsx:1266
#: src/components/compose.jsx:1271
msgid "Mark media as sensitive"
msgstr "Отметить медиафайл как деликатный"
#: src/components/compose.jsx:1364
#: src/components/compose.jsx:1369
msgid "Add poll"
msgstr "Добавить голосование"
#: src/components/compose.jsx:1386
#: src/components/compose.jsx:1391
msgid "Add custom emoji"
msgstr "Добавить пользовательские эмодзи"
#: src/components/compose.jsx:1470
#: src/components/compose.jsx:1475
#: src/components/keyboard-shortcuts-help.jsx:143
#: src/components/status.jsx:830
#: src/components/status.jsx:1615
#: src/components/status.jsx:831
#: src/components/status.jsx:1616
#: src/components/status.jsx:2267
#: src/components/status.jsx:1617
#: src/components/status.jsx:2268
msgid "Reply"
msgstr "Ответить"
#: src/components/compose.jsx:1472
#: src/components/compose.jsx:1477
msgid "Update"
msgstr "Сохранить"
#: src/components/compose.jsx:1473
#: src/components/compose.jsx:1478
msgctxt "Submit button in composer"
msgid "Post"
msgstr "Опубликовать"
#: src/components/compose.jsx:1601
#: src/components/compose.jsx:1606
msgid "Downloading GIF…"
msgstr "Загружаем GIF-анимацию…"
#: src/components/compose.jsx:1629
#: src/components/compose.jsx:1634
msgid "Failed to download GIF"
msgstr "Не удалось загрузить GIF-анимацию"
#: src/components/compose.jsx:1740
#: src/components/compose.jsx:1817
#: src/components/compose.jsx:1745
#: src/components/compose.jsx:1822
#: src/components/nav-menu.jsx:287
msgid "More…"
msgstr "Ещё…"
#: src/components/compose.jsx:2220
#: src/components/compose.jsx:2225
msgid "Uploaded"
msgstr "Загружено"
#: src/components/compose.jsx:2233
#: src/components/compose.jsx:2238
msgid "Image description"
msgstr "Описание изображения"
#: src/components/compose.jsx:2234
#: src/components/compose.jsx:2239
msgid "Video description"
msgstr "Описание видео"
#: src/components/compose.jsx:2235
#: src/components/compose.jsx:2240
msgid "Audio description"
msgstr "Описание аудио"
#: src/components/compose.jsx:2271
#: src/components/compose.jsx:2291
#: src/components/compose.jsx:2276
#: src/components/compose.jsx:2296
msgid "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower."
msgstr "Файл слишком большой — при загрузке могут возникнуть проблемы. Попробуйте уменьшить размер с {0} до {1} или меньше."
#: src/components/compose.jsx:2283
#: src/components/compose.jsx:2303
#: src/components/compose.jsx:2288
#: src/components/compose.jsx:2308
msgid "Dimension too large. Uploading might encounter issues. Try reduce dimension from {0}×{1}px to {2}×{3}px."
msgstr "Сильно большое разрешение — при загрузке могут возникнуть проблемы. Попробуйте уменьшить разрешение с {0}×{1}px до {2}×{3}px."
#: src/components/compose.jsx:2311
#: src/components/compose.jsx:2316
msgid "Frame rate too high. Uploading might encounter issues."
msgstr "Слишком высокая частота кадров — при загрузке могут возникнуть проблемы."
#: src/components/compose.jsx:2371
#: src/components/compose.jsx:2621
#: src/components/compose.jsx:2376
#: src/components/compose.jsx:2626
#: src/components/shortcuts-settings.jsx:723
#: src/pages/catchup.jsx:1074
#: src/pages/filters.jsx:412
msgid "Remove"
msgstr "Убрать"
#: src/components/compose.jsx:2388
#: src/components/compose.jsx:2393
#: src/compose.jsx:83
msgid "Error"
msgstr "Ошибка"
#: src/components/compose.jsx:2413
#: src/components/compose.jsx:2418
msgid "Edit image description"
msgstr "Редактировать описание изображения"
#: src/components/compose.jsx:2414
#: src/components/compose.jsx:2419
msgid "Edit video description"
msgstr "Редактировать описание видео"
#: src/components/compose.jsx:2415
#: src/components/compose.jsx:2420
msgid "Edit audio description"
msgstr "Редактировать описание аудио"
#: src/components/compose.jsx:2460
#: src/components/compose.jsx:2509
#: src/components/compose.jsx:2465
#: src/components/compose.jsx:2514
msgid "Generating description. Please wait…"
msgstr "Создаём описание. Один момент, пожалуйста…"
#: src/components/compose.jsx:2480
#: src/components/compose.jsx:2485
msgid "Failed to generate description: {0}"
msgstr "Не удалось создать описание: {0}"
#: src/components/compose.jsx:2481
#: src/components/compose.jsx:2486
msgid "Failed to generate description"
msgstr "Не удалось создать описание"
#: src/components/compose.jsx:2493
#: src/components/compose.jsx:2499
#: src/components/compose.jsx:2545
#: src/components/compose.jsx:2498
#: src/components/compose.jsx:2504
#: src/components/compose.jsx:2550
msgid "Generate description…"
msgstr "Автоматическое описание…"
#: src/components/compose.jsx:2532
#: src/components/compose.jsx:2537
msgid "Failed to generate description{0}"
msgstr "Не удалось создать описание: {0}"
#: src/components/compose.jsx:2547
#: src/components/compose.jsx:2552
msgid "({0}) <0>— experimental</0>"
msgstr "({0}) <0>— экспериментальная функция</0>"
#: src/components/compose.jsx:2566
#: src/components/compose.jsx:2571
msgid "Done"
msgstr "Готово"
#: src/components/compose.jsx:2602
#: src/components/compose.jsx:2607
msgid "Choice {0}"
msgstr "Вариант №{0}"
#: src/components/compose.jsx:2649
#: src/components/compose.jsx:2654
msgid "Multiple choices"
msgstr "Разрешить несколько ответов"
#: src/components/compose.jsx:2652
#: src/components/compose.jsx:2657
msgid "Duration"
msgstr "Продолжительность"
#: src/components/compose.jsx:2683
#: src/components/compose.jsx:2688
msgid "Remove poll"
msgstr "Убрать опрос"
#: src/components/compose.jsx:2897
#: src/components/compose.jsx:2902
msgid "Search accounts"
msgstr "Поиск пользователей"
#: src/components/compose.jsx:2938
#: src/components/compose.jsx:2943
#: src/components/shortcuts-settings.jsx:712
#: src/pages/list.jsx:359
msgid "Add"
msgstr "Добавить"
#: src/components/compose.jsx:2951
#: src/components/compose.jsx:2956
#: src/components/generic-accounts.jsx:227
msgid "Error loading accounts"
msgstr "Ошибка поиска пользователей"
#: src/components/compose.jsx:3094
#: src/components/compose.jsx:3099
msgid "Custom emojis"
msgstr "Пользовательские эмодзи"
#: src/components/compose.jsx:3114
#: src/components/compose.jsx:3119
msgid "Search emoji"
msgstr "Поиск эмодзи"
#: src/components/compose.jsx:3145
#: src/components/compose.jsx:3150
msgid "Error loading custom emojis"
msgstr "Ошибка загрузки пользовательских эмодзи"
#: src/components/compose.jsx:3156
#: src/components/compose.jsx:3161
msgid "Recently used"
msgstr "Недавно использованные"
#: src/components/compose.jsx:3157
#: src/components/compose.jsx:3162
msgid "Others"
msgstr "Прочие"
#: src/components/compose.jsx:3195
#: src/components/compose.jsx:3200
msgid "{0} more…"
msgstr "Ещё {0}…"
#: src/components/compose.jsx:3333
#: src/components/compose.jsx:3338
msgid "Search GIFs"
msgstr "Поиск GIF-анимации"
#: src/components/compose.jsx:3348
#: src/components/compose.jsx:3353
msgid "Powered by GIPHY"
msgstr "При помощи GIPHY"
#: src/components/compose.jsx:3356
#: src/components/compose.jsx:3361
msgid "Type to search GIFs"
msgstr "Начните набирать для поиска GIF-анимаций"
#: src/components/compose.jsx:3454
#: src/components/compose.jsx:3459
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr "Назад"
#: src/components/compose.jsx:3472
#: src/components/compose.jsx:3477
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr "Вперёд"
#: src/components/compose.jsx:3489
#: src/components/compose.jsx:3494
msgid "Error loading GIFs"
msgstr "Ошибка поиска GIF-анимаций"
@ -882,7 +894,7 @@ msgstr "Не удалось удалить черновик. Попробуйт
#: src/components/drafts.jsx:127
#: src/components/list-add-edit.jsx:183
#: src/components/status.jsx:1250
#: src/components/status.jsx:1251
#: src/pages/filters.jsx:587
msgid "Delete…"
msgstr "Удалить…"
@ -1082,10 +1094,10 @@ msgid "<0>l</0> or <1>f</1>"
msgstr "<0>l</0> или <1>f</1>"
#: src/components/keyboard-shortcuts-help.jsx:164
#: src/components/status.jsx:838
#: src/components/status.jsx:2293
#: src/components/status.jsx:2325
#: src/components/status.jsx:839
#: src/components/status.jsx:2294
#: src/components/status.jsx:2326
#: src/components/status.jsx:2327
msgid "Boost"
msgstr "Продвинуть"
@ -1094,9 +1106,9 @@ msgid "<0>Shift</0> + <1>b</1>"
msgstr "<0>Shift</0> + <1>b</1>"
#: src/components/keyboard-shortcuts-help.jsx:172
#: src/components/status.jsx:923
#: src/components/status.jsx:2350
#: src/components/status.jsx:924
#: src/components/status.jsx:2351
#: src/components/status.jsx:2352
msgid "Bookmark"
msgstr "Закладка"
@ -1120,10 +1132,6 @@ msgstr "Не удалось изменить список."
msgid "Unable to create list."
msgstr "Не удалось создать список."
#: src/components/list-add-edit.jsx:102
msgid "Name"
msgstr "Название"
#: src/components/list-add-edit.jsx:122
msgid "Show replies to list members"
msgstr "Показать ответы участникам списка"
@ -1159,15 +1167,15 @@ msgid "Media description"
msgstr "Описание медиа"
#: src/components/media-alt-modal.jsx:57
#: src/components/status.jsx:967
#: src/components/status.jsx:994
#: src/components/status.jsx:968
#: src/components/status.jsx:995
#: src/components/translation-block.jsx:195
msgid "Translate"
msgstr "Перевести"
#: src/components/media-alt-modal.jsx:68
#: src/components/status.jsx:981
#: src/components/status.jsx:1008
#: src/components/status.jsx:982
#: src/components/status.jsx:1009
msgid "Speak"
msgstr "Произнести"
@ -1204,10 +1212,10 @@ msgid "Filtered: {filterTitleStr}"
msgstr "Отфильтровано: {filterTitleStr}"
#: src/components/media-post.jsx:133
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/status.jsx:3407
#: src/components/status.jsx:3503
#: src/components/status.jsx:3581
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -1355,11 +1363,6 @@ msgstr "Войти"
msgid "Trending"
msgstr "В тренде"
#: src/components/nav-menu.jsx:386
#: src/components/shortcuts-settings.jsx:162
msgid "Local"
msgstr "Локальная"
#: src/components/nav-menu.jsx:392
#: src/components/shortcuts-settings.jsx:162
msgid "Federated"
@ -1491,8 +1494,8 @@ msgid "[Unknown notification type: {type}]"
msgstr "[Неизвестный тип уведомления: {type}]"
#: src/components/notification.jsx:425
#: src/components/status.jsx:937
#: src/components/status.jsx:947
#: src/components/status.jsx:938
#: src/components/status.jsx:948
msgid "Boosted/Liked by…"
msgstr "Продвинули/Отметили как \"нравится\"…"
@ -1514,9 +1517,9 @@ msgid "Learn more <0/>"
msgstr "Подробнее <0/>"
#: src/components/notification.jsx:680
#: src/components/status.jsx:189
#: src/components/status.jsx:190
msgid "Read more →"
msgstr "Читать дальше →"
msgstr "Читать далее →"
#: src/components/poll.jsx:110
msgid "Voted"
@ -1807,7 +1810,7 @@ msgid "Move down"
msgstr "Переместить вниз"
#: src/components/shortcuts-settings.jsx:376
#: src/components/status.jsx:1215
#: src/components/status.jsx:1216
#: src/pages/list.jsx:170
msgid "Edit"
msgstr "Редактировать"
@ -2005,291 +2008,291 @@ msgstr "Исходный JSON ярлыков"
msgid "Import/export settings from/to instance server (Very experimental)"
msgstr "Импорт/экспорт настроек с сервера инстанса (Очень экспериментально)"
#: src/components/status.jsx:463
#: src/components/status.jsx:464
msgid "<0/> <1>boosted</1>"
msgstr "<0/> <1>продвинул(а)</1>"
#: src/components/status.jsx:562
#: src/components/status.jsx:563
msgid "Sorry, your current logged-in instance can't interact with this post from another instance."
msgstr "К сожалению, ваша текущая учетная запись не может взаимодействовать с этим постом из другого инстанса."
#: src/components/status.jsx:715
#: src/components/status.jsx:716
msgid "Unliked @{0}'s post"
msgstr "Удалена отметка \"нравится\" у поста от @{0}"
#: src/components/status.jsx:716
#: src/components/status.jsx:717
msgid "Liked @{0}'s post"
msgstr "Понравился пост от @{0}"
#: src/components/status.jsx:755
#: src/components/status.jsx:756
msgid "Unbookmarked @{0}'s post"
msgstr "Удалена закладка поста от @{0}"
#: src/components/status.jsx:756
#: src/components/status.jsx:757
msgid "Bookmarked @{0}'s post"
msgstr "Добавлена закладка поста от @{0}"
#: src/components/status.jsx:838
#: src/components/status.jsx:900
#: src/components/status.jsx:2293
#: src/components/status.jsx:2325
#: src/components/status.jsx:839
#: src/components/status.jsx:901
#: src/components/status.jsx:2294
#: src/components/status.jsx:2326
msgid "Unboost"
msgstr "Прекратить продвигать"
#: src/components/status.jsx:854
#: src/components/status.jsx:2308
#: src/components/status.jsx:855
#: src/components/status.jsx:2309
msgid "Quote"
msgstr "Цитировать"
#: src/components/status.jsx:862
#: src/components/status.jsx:2317
#: src/components/status.jsx:863
#: src/components/status.jsx:2318
msgid "Some media have no descriptions."
msgstr "Некоторые медиа не имеют описаний."
#: src/components/status.jsx:869
#: src/components/status.jsx:870
msgid "Old post (<0>{0}</0>)"
msgstr "Старый пост (<0>{0}</0>)"
#: src/components/status.jsx:888
#: src/components/status.jsx:1340
#: src/components/status.jsx:889
#: src/components/status.jsx:1341
msgid "Unboosted @{0}'s post"
msgstr "Прекратил(а) продвигать пост @{0}"
#: src/components/status.jsx:889
#: src/components/status.jsx:1341
#: src/components/status.jsx:890
#: src/components/status.jsx:1342
msgid "Boosted @{0}'s post"
msgstr "Продвинул(а) пост @{0}"
#: src/components/status.jsx:901
#: src/components/status.jsx:902
msgid "Boost…"
msgstr "Продвинуть…"
#: src/components/status.jsx:913
#: src/components/status.jsx:1625
#: src/components/status.jsx:2338
#: src/components/status.jsx:914
#: src/components/status.jsx:1626
#: src/components/status.jsx:2339
msgid "Unlike"
msgstr "Не нравится"
#: src/components/status.jsx:914
#: src/components/status.jsx:1625
#: src/components/status.jsx:915
#: src/components/status.jsx:1626
#: src/components/status.jsx:2338
#: src/components/status.jsx:1627
#: src/components/status.jsx:2339
#: src/components/status.jsx:2340
msgid "Like"
msgstr "Нравится"
#: src/components/status.jsx:923
#: src/components/status.jsx:2350
#: src/components/status.jsx:924
#: src/components/status.jsx:2351
msgid "Unbookmark"
msgstr "Удалить закладку"
#: src/components/status.jsx:1031
#: src/components/status.jsx:1032
msgid "View post by <0>@{0}</0>"
msgstr "Посмотреть пост <0>@{0}</0>"
#: src/components/status.jsx:1052
#: src/components/status.jsx:1053
msgid "Show Edit History"
msgstr "Показать историю редактирования"
#: src/components/status.jsx:1055
#: src/components/status.jsx:1056
msgid "Edited: {editedDateText}"
msgstr "Отредактировано: {editedDateText}"
#: src/components/status.jsx:1122
#: src/components/status.jsx:3083
#: src/components/status.jsx:1123
#: src/components/status.jsx:3084
msgid "Embed post"
msgstr "Встроить пост"
#: src/components/status.jsx:1136
#: src/components/status.jsx:1137
msgid "Conversation unmuted"
msgstr "Обсуждение не игнорируется"
#: src/components/status.jsx:1136
#: src/components/status.jsx:1137
msgid "Conversation muted"
msgstr "Обсуждение игнорируется"
#: src/components/status.jsx:1142
#: src/components/status.jsx:1143
msgid "Unable to unmute conversation"
msgstr "Не удалось прекратить игнорировать обсуждение"
#: src/components/status.jsx:1143
#: src/components/status.jsx:1144
msgid "Unable to mute conversation"
msgstr "Не удалось игнорировать обсуждение"
#: src/components/status.jsx:1152
#: src/components/status.jsx:1153
msgid "Unmute conversation"
msgstr "Не игнорировать обсуждение"
#: src/components/status.jsx:1159
#: src/components/status.jsx:1160
msgid "Mute conversation"
msgstr "Игнорировать обсуждение"
#: src/components/status.jsx:1175
#: src/components/status.jsx:1176
msgid "Post unpinned from profile"
msgstr "Пост откреплён из профиля"
#: src/components/status.jsx:1176
#: src/components/status.jsx:1177
msgid "Post pinned to profile"
msgstr "Пост прикреплён к профилю"
#: src/components/status.jsx:1181
#: src/components/status.jsx:1182
msgid "Unable to unpin post"
msgstr "Не удалось открепить пост"
#: src/components/status.jsx:1181
#: src/components/status.jsx:1182
msgid "Unable to pin post"
msgstr "Не удалось закрепить пост"
#: src/components/status.jsx:1190
#: src/components/status.jsx:1191
msgid "Unpin from profile"
msgstr "Открепить от профиля"
#: src/components/status.jsx:1197
#: src/components/status.jsx:1198
msgid "Pin to profile"
msgstr "Закрепить в профиле"
#: src/components/status.jsx:1226
#: src/components/status.jsx:1227
msgid "Delete this post?"
msgstr "Удалить этот пост?"
#: src/components/status.jsx:1239
#: src/components/status.jsx:1240
msgid "Post deleted"
msgstr "Пост удален"
#: src/components/status.jsx:1242
#: src/components/status.jsx:1243
msgid "Unable to delete post"
msgstr "Не удалось удалить пост"
#: src/components/status.jsx:1270
#: src/components/status.jsx:1271
msgid "Report post…"
msgstr "Пожаловаться на пост…"
#: src/components/status.jsx:1626
#: src/components/status.jsx:1662
#: src/components/status.jsx:2339
#: src/components/status.jsx:1627
#: src/components/status.jsx:1663
#: src/components/status.jsx:2340
msgid "Liked"
msgstr "Нравится"
#: src/components/status.jsx:1659
#: src/components/status.jsx:2326
#: src/components/status.jsx:1660
#: src/components/status.jsx:2327
msgid "Boosted"
msgstr "Продвинут"
#: src/components/status.jsx:1669
#: src/components/status.jsx:2351
#: src/components/status.jsx:1670
#: src/components/status.jsx:2352
msgid "Bookmarked"
msgstr "Добавлен в закладки"
#: src/components/status.jsx:1673
#: src/components/status.jsx:1674
msgid "Pinned"
msgstr "Закреплён"
#: src/components/status.jsx:1718
#: src/components/status.jsx:2170
#: src/components/status.jsx:1719
#: src/components/status.jsx:2171
msgid "Deleted"
msgstr "Удалён"
#: src/components/status.jsx:1759
#: src/components/status.jsx:1760
msgid "{repliesCount, plural, one {# reply} other {# replies}}"
msgstr "{repliesCount, plural, one {# ответ} other {# ответ(а/ов)}}"
#: src/components/status.jsx:1848
#: src/components/status.jsx:1849
msgid "Thread{0}"
msgstr "Обсуждение{0}"
#: src/components/status.jsx:1924
#: src/components/status.jsx:1986
#: src/components/status.jsx:2071
#: src/components/status.jsx:1925
#: src/components/status.jsx:1987
#: src/components/status.jsx:2072
msgid "Show less"
msgstr "Свернуть/скрыть"
#: src/components/status.jsx:1924
#: src/components/status.jsx:1986
#: src/components/status.jsx:1925
#: src/components/status.jsx:1987
msgid "Show content"
msgstr "Показать содержимое"
#: src/components/status.jsx:2071
#: src/components/status.jsx:2072
msgid "Show media"
msgstr "Показать медиа"
#: src/components/status.jsx:2191
#: src/components/status.jsx:2192
msgid "Edited"
msgstr "Отредактировано"
#: src/components/status.jsx:2268
#: src/components/status.jsx:2269
msgid "Comments"
msgstr "Комментарии"
#: src/components/status.jsx:2844
#: src/components/status.jsx:2845
msgid "Edit History"
msgstr "История изменений"
#: src/components/status.jsx:2848
#: src/components/status.jsx:2849
msgid "Failed to load history"
msgstr "Не удалось загрузить историю"
#: src/components/status.jsx:2853
#: src/components/status.jsx:2854
msgid "Loading…"
msgstr "Загрузка…"
#: src/components/status.jsx:3088
#: src/components/status.jsx:3089
msgid "HTML Code"
msgstr "HTML-код"
#: src/components/status.jsx:3105
#: src/components/status.jsx:3106
msgid "HTML code copied"
msgstr "HTML-код скопирован"
#: src/components/status.jsx:3108
#: src/components/status.jsx:3109
msgid "Unable to copy HTML code"
msgstr "Не удалось скопировать HTML-код"
#: src/components/status.jsx:3120
#: src/components/status.jsx:3121
msgid "Media attachments:"
msgstr "Медиа-вложения:"
#: src/components/status.jsx:3142
#: src/components/status.jsx:3143
msgid "Account Emojis:"
msgstr "Эмодзи пользователя:"
#: src/components/status.jsx:3173
#: src/components/status.jsx:3218
#: src/components/status.jsx:3174
#: src/components/status.jsx:3219
msgid "static URL"
msgstr "статический URL"
#: src/components/status.jsx:3187
#: src/components/status.jsx:3188
msgid "Emojis:"
msgstr "Эмодзи:"
#: src/components/status.jsx:3232
#: src/components/status.jsx:3233
msgid "Notes:"
msgstr "Заметки:"
#: src/components/status.jsx:3236
#: src/components/status.jsx:3237
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "Это статическое, нестилизованное и не требующее сценариев. Возможно, вам придется применить свои собственные стили и отредактировать их по мере необходимости."
#: src/components/status.jsx:3242
#: src/components/status.jsx:3243
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "Опросы не интерактивны, они представляют собой список с подсчетом голосов."
#: src/components/status.jsx:3247
#: src/components/status.jsx:3248
msgid "Media attachments can be images, videos, audios or any file types."
msgstr "Медиа-вложения могут быть изображениями, видео, аудио или определёнными типами файлов."
#: src/components/status.jsx:3253
#: src/components/status.jsx:3254
msgid "Post could be edited or deleted later."
msgstr "Пост может быть отредактирован или удален позже."
#: src/components/status.jsx:3259
#: src/components/status.jsx:3260
msgid "Preview"
msgstr "Предпросмотр"
#: src/components/status.jsx:3268
#: src/components/status.jsx:3269
msgid "Note: This preview is lightly styled."
msgstr "Примечание: Этот предварительный просмотр слегка стилизован."
#: src/components/status.jsx:3510
#: src/components/status.jsx:3511
msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> продвинули"
@ -2306,13 +2309,21 @@ msgstr "Новые посты"
msgid "Try again"
msgstr "Повторите попытку"
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr "{0, plural, one {# Продвижение} other {# Продвижения}}"
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr "Закреплённые посты"
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr "Обсуждение"
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr "<0>Отфильтровано</0>: <1>{0}</1>"

24
src/locales/th-TH.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-08-31 15:34\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

24
src/locales/uk-UA.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-01 17:35\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@ -606,7 +606,7 @@ msgstr "Помилка вкладення #{i}"
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr "Попередження про вміст"
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

571
src/locales/zh-CN.po generated

File diff suppressed because it is too large Load diff

46
src/locales/zh-TW.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-01 12:49\n"
"PO-Revision-Date: 2024-09-06 02:32\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@ -284,7 +284,7 @@ msgstr "從列表中新增/刪除"
#: src/components/account-info.jsx:1299
#: src/components/status.jsx:1078
msgid "Link copied"
msgstr ""
msgstr "連結已複製"
#: src/components/account-info.jsx:1302
#: src/components/status.jsx:1081
@ -331,15 +331,15 @@ msgstr ""
#: src/components/account-info.jsx:1442
msgid "Remove <0>@{username}</0> from followers?"
msgstr ""
msgstr "要把 <0>@{username}</0> 從跟隨者中移除嗎?"
#: src/components/account-info.jsx:1462
msgid "@{username} removed from followers"
msgstr ""
msgstr "已把 @{username} 從跟隨者中移除"
#: src/components/account-info.jsx:1474
msgid "Remove follower…"
msgstr ""
msgstr "移除跟隨者..."
#: src/components/account-info.jsx:1485
msgid "Block <0>@{username}</0>?"
@ -351,7 +351,7 @@ msgstr ""
#: src/components/account-info.jsx:1514
msgid "Blocked @{username}"
msgstr ""
msgstr "已把 @{username} 封鎖"
#: src/components/account-info.jsx:1522
msgid "Unable to unblock @{username}"
@ -446,12 +446,12 @@ msgstr ""
#: src/components/account-info.jsx:1899
msgid "Unable to add to list."
msgstr ""
msgstr "無法新增到列表"
#: src/components/account-info.jsx:1918
#: src/pages/lists.jsx:104
msgid "Unable to load lists."
msgstr ""
msgstr "無法載入列表"
#: src/components/account-info.jsx:1922
msgid "No lists."
@ -482,7 +482,7 @@ msgstr ""
#: src/components/account-info.jsx:2142
msgid "Unable to update profile."
msgstr ""
msgstr "無法更新個人資料"
#: src/components/account-info.jsx:2162
msgid "Bio"
@ -582,7 +582,7 @@ msgstr ""
#: src/components/compose.jsx:895
msgid "Replying to @{0}s post"
msgstr ""
msgstr "正在回覆 @{0} 的文章"
#: src/components/compose.jsx:908
msgid "Editing source post"
@ -606,7 +606,7 @@ msgstr ""
#: src/components/compose.jsx:1118
#: src/components/status.jsx:1961
#: src/components/timeline.jsx:979
#: src/components/timeline.jsx:982
msgid "Content warning"
msgstr ""
@ -713,7 +713,7 @@ msgstr ""
#: src/components/compose.jsx:2271
#: src/components/compose.jsx:2291
msgid "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower."
msgstr ""
msgstr "檔案大小太大,上載可能會遇到問題。請嘗試把檔案大小從 {0} 縮小到 {1} 或更小"
#: src/components/compose.jsx:2283
#: src/components/compose.jsx:2303
@ -849,13 +849,13 @@ msgstr ""
#: src/components/compose.jsx:3454
#: src/components/media-modal.jsx:387
#: src/components/timeline.jsx:884
#: src/components/timeline.jsx:887
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3472
#: src/components/media-modal.jsx:406
#: src/components/timeline.jsx:901
#: src/components/timeline.jsx:904
msgid "Next"
msgstr ""
@ -885,7 +885,7 @@ msgstr ""
#: src/components/status.jsx:1250
#: src/pages/filters.jsx:587
msgid "Delete…"
msgstr ""
msgstr "移除..."
#: src/components/drafts.jsx:146
msgid "Error fetching reply-to status!"
@ -1207,7 +1207,7 @@ msgstr ""
#: src/components/status.jsx:3406
#: src/components/status.jsx:3502
#: src/components/status.jsx:3580
#: src/components/timeline.jsx:968
#: src/components/timeline.jsx:971
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1859
msgid "Filtered"
@ -2306,13 +2306,21 @@ msgstr ""
msgid "Try again"
msgstr ""
#: src/components/timeline.jsx:941
#: src/components/timeline.jsx:948
#: src/components/timeline.jsx:586
msgid "{0, plural, one {# Boost} other {# Boosts}}"
msgstr ""
#: src/components/timeline.jsx:591
msgid "Pinned posts"
msgstr ""
#: src/components/timeline.jsx:944
#: src/components/timeline.jsx:951
#: src/pages/catchup.jsx:1876
msgid "Thread"
msgstr ""
#: src/components/timeline.jsx:963
#: src/components/timeline.jsx:966
msgid "<0>Filtered</0>: <1>{0}</1>"
msgstr ""

View file

@ -1262,11 +1262,27 @@ function Catchup() {
{sharers.map((s) => {
const { avatarStatic, displayName } = s;
return (
<Avatar
url={avatarStatic}
size="s"
alt={displayName}
/>
<button
type="button"
class="plain"
style={{
padding: 0,
}}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
// Reset and filter to author
const { id } = s;
setSelectedAuthor(id);
setSelectedFilterCategory('all');
}}
>
<Avatar
url={avatarStatic}
size="s"
alt={displayName}
/>
</button>
);
})}
</Trans>

View file

@ -28,6 +28,7 @@ function Following({ title, path, id, ...props }) {
async function fetchHome(firstLoad) {
if (firstLoad || !homeIterator.current) {
__BENCHMARK.start('fetch-home-first');
homeIterator.current = masto.v1.timelines.home.list({ limit: LIMIT });
}
if (supportsPixelfed && homeIterator.current?.nextParams) {
@ -64,6 +65,8 @@ function Following({ title, path, id, ...props }) {
return bDate - aDate;
});
}
__BENCHMARK.end('fetch-home-first');
__BENCHMARK.end('time-to-home');
return {
...results,
value,

View file

@ -58,9 +58,32 @@ function Login() {
const submitInstance = (instanceURL) => {
if (!instanceURL) return;
store.local.set('instanceURL', instanceURL);
(async () => {
// WEB_DOMAIN vs LOCAL_DOMAIN negotiation time
// https://docs.joinmastodon.org/admin/config/#web_domain
try {
const res = await fetch(`https://${instanceURL}/.well-known/host-meta`); // returns XML
const text = await res.text();
// Parse XML
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Get Link[template]
const link = xmlDoc.getElementsByTagName('Link')[0];
const template = link.getAttribute('template');
const url = URL.parse(template);
const { host } = url; // host includes the port
if (instanceURL !== host) {
console.log(`💫 ${instanceURL} -> ${host}`);
instanceURL = host;
}
} catch (e) {
// Silently fail
console.error(e);
}
store.local.set('instanceURL', instanceURL);
setUIState('loading');
try {
const { client_id, client_secret, vapid_key } =

View file

@ -826,6 +826,23 @@ function Settings({ onClose }) {
</p>
)}
</section>
{(import.meta.env.DEV || import.meta.env.PHANPY_DEV) && (
<details class="debug-info">
<summary></summary>
<p>Debugging</p>
{__BENCH_RESULTS?.size > 0 && (
<ul>
{Array.from(__BENCH_RESULTS.entries()).map(
([name, duration]) => (
<li>
<b>{name}</b>: {duration}ms
</li>
),
)}
</ul>
)}
</details>
)}
</main>
</div>
);

View file

@ -8,11 +8,12 @@ const locales = [
...navigator.languages,
];
const localeTargetLanguages = localeMatch(
locales,
translationTargetLanguages.map((l) => l.code.replace('_', '-')), // The underscore will fail Intl.Locale inside `match`
'en',
);
const localeTargetLanguages = () =>
localeMatch(
locales,
translationTargetLanguages.map((l) => l.code.replace('_', '-')), // The underscore will fail Intl.Locale inside `match`
'en',
);
function getTranslateTargetLanguage(fromSettings = false) {
if (fromSettings) {
@ -21,7 +22,7 @@ function getTranslateTargetLanguage(fromSettings = false) {
return contentTranslationTargetLanguage;
}
}
return localeTargetLanguages;
return localeTargetLanguages();
}
export default getTranslateTargetLanguage;

View file

@ -7,6 +7,8 @@ import { getCurrentInstance } from './store-utils';
// Non-semver(?) UA string detection
const containPixelfed = /pixelfed/i;
const notContainPixelfed = /^(?!.*pixelfed).*$/i;
const containPleroma = /pleroma/i;
const containAkkoma = /akkoma/i;
const platformFeatures = {
'@mastodon/lists': notContainPixelfed,
'@mastodon/filters': notContainPixelfed,
@ -20,6 +22,8 @@ const platformFeatures = {
'@pixelfed/trending': containPixelfed,
'@pixelfed/home-include-reblogs': containPixelfed,
'@pixelfed/global-feed': containPixelfed,
'@pleroma/local-visibility-post': containPleroma,
'@akkoma/local-visibility-post': containAkkoma,
};
const supportsCache = {};

View file

@ -3,4 +3,5 @@ export default {
unlisted: 'group',
private: 'lock',
direct: 'message',
local: 'building',
};