Compare commits

...

10 commits

Author SHA1 Message Date
7ce5d07f8e add Dockerfile and compose file with caddy support
Some checks failed
Pull Request into `production` from `main` / auto-pull-request (push) Has been cancelled
2025-03-22 11:54:01 +01:00
Lim Chee Aun
a3dd8bab46 Handle all URL.parse cases with invalid URLs 2025-03-21 18:23:13 +08:00
Lim Chee Aun
ffcfc29d8c Quick fix invalid url 2025-03-20 15:40:42 +08:00
Chee Aun
82903087a4
i18n updates (lt-LT) (#1098) 2025-03-19 15:55:04 +00:00
Lim Chee Aun
d158fa3e4b Make 'Edit profile' more discoverable 2025-03-19 18:36:08 +08:00
Chee Aun
6ac064fa37
i18n updates (pt-BR,pt-PT,zh-CN) (#1095)
* New translations (Chinese Simplified)

* Update catalogs.json

* New translations (Portuguese)

* New translations (Portuguese, Brazilian)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-16 15:44:48 +00:00
github-actions[bot]
937c1d7927 Update README.md 2025-03-16 00:02:30 +00:00
Lim Chee Aun
6ae31fca6c Linkify account string if it's a URL 2025-03-15 18:37:06 +08:00
Chee Aun
7f923358b0
i18n updates (zh-CN) (#1094)
* New translations (Chinese Simplified)

* Update catalogs.json

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-15 03:29:15 +00:00
Lim Chee Aun
fbf510cb0d Fix compose context menu not working on other pages 2025-03-13 22:05:54 +08:00
21 changed files with 1587 additions and 1480 deletions

4
Caddyfile Normal file
View file

@ -0,0 +1,4 @@
:80
root * /usr/share/caddy
file_server

22
Dockerfile Normal file
View file

@ -0,0 +1,22 @@
# syntax=docker/dockerfile:1.9
FROM docker.io/node:22-alpine as BUILD
ENV \
PHANPY_CLIENT_NAME="Phanpy" \
PHANPY_WEBSITE="https://phanpy.brothertec.eu" \
PHANPY_DEFAULT_INSTANCE="gts.brothertec.eu" \
PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL="https://gts.brothertec.eu/login" \
PHANPY_PRIVACY_POLICY_URL="https://gts.brothertec.eu/about" \
PHANPY_DEFAULT_LANG="de" \
PHANPY_LINGVA_INSTANCES="phanpy.brothertec.eu" \
PHANPY_IMG_ALT_API_URL="" \
PHANPY_GIPHY_API_KEY=""
WORKDIR /build
COPY package.json package-lock.json ./
RUN npm install
COPY ./ ./
RUN npm run build
FROM caddy:2-alpine
COPY --from=BUILD /build/dist/ /usr/share/caddy
COPY Caddyfile /etc/caddy/Caddyfile

View file

@ -303,6 +303,7 @@ Costs involved in running and developing this web app:
### Translation volunteers
<!-- i18n volunteers start -->
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16945821/medium/3da66a1dde4951ad34c33ca23241b864_default.png" alt="" width="16" height="16" /> A.Mason (Polish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/12571163/medium/9f3ea938f4243f5ffe2a43f814ddc9e8_default.png" alt="" width="16" height="16" /> alidsds11 (Arabic)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16180744/medium/5b04ae975b23895635130d7a176515cb_default.png" alt="" width="16" height="16" /> alternative (Korean)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16848873/medium/d8773fdb621f4c9c1b08d2c641fa519a.jpeg" alt="" width="16" height="16" /> AmaseCocoa (Japanese)

31
docker-compose.yml Normal file
View file

@ -0,0 +1,31 @@
services:
phanpy:
#image: ghcr.io/cheeaun/phanpy:latest
build:
context: .
container_name: phanpy
#ports:
# - 8080:80
networks:
- caddy
labels:
com.centurylinklabs.watchtower.enable: true
caddy: phanpy.brothertec.eu
caddy.route.appsec: ""
caddy.route.crowdsec: ""
caddy.route.reverse_proxy: "{{upstreams 80}}"
caddy.encode: "zstd gzip"
caddy.log: ""
caddy.log.output: "file /logs/phanpy.brothertec.eu.log"
caddy.log.output.roll_size: "100MiB"
caddy.log.output.roll_keep: "5"
caddy.log.output.roll_keep_for: "100d"
caddy.log.format: "json"
caddy.log.level: "INFO"
networks:
caddy:
external: true

View file

@ -1660,7 +1660,7 @@ body:has(.media-modal-container + .status-deck) .media-post-link {
padding: 16px;
background-color: var(--button-bg-blur-color);
/* backdrop-filter: blur(16px); */
z-index: 10;
z-index: 20;
box-shadow:
0 3px 8px -1px var(--drop-shadow-color),
0 10px 36px -4px var(--button-bg-blur-color);

File diff suppressed because it is too large Load diff

View file

@ -61,19 +61,21 @@ function AccountSheet({ account, instance: propInstance, onClose }) {
return result.accounts[0];
} else if (/https?:\/\/[^/]+\/@/.test(account)) {
const accountURL = URL.parse(account);
const { hostname, pathname } = accountURL;
const acct =
pathname.replace(/^\//, '').replace(/\/$/, '') +
'@' +
hostname;
const result = await masto.v2.search.fetch({
q: acct,
type: 'accounts',
limit: 1,
resolve: authenticated,
});
if (result.accounts.length) {
return result.accounts[0];
if (accountURL) {
const { hostname, pathname } = accountURL;
const acct =
pathname.replace(/^\//, '').replace(/\/$/, '') +
'@' +
hostname;
const result = await masto.v2.search.fetch({
q: acct,
type: 'accounts',
limit: 1,
resolve: authenticated,
});
if (result.accounts.length) {
return result.accounts[0];
}
}
}
}

View file

@ -148,7 +148,7 @@ export default function ComposeButton() {
boundingBoxPadding={safeBoundingBoxPadding()}
containerProps={{
style: {
zIndex: 9,
zIndex: 19,
},
onClick: () => {
menuRef.current?.closeMenu?.();

View file

@ -46,6 +46,7 @@ import emojifyText from '../utils/emojify-text';
import enhanceContent from '../utils/enhance-content';
import FilterContext from '../utils/filter-context';
import { isFiltered } from '../utils/filters';
import getDomain from '../utils/get-domain';
import getTranslateTargetLanguage from '../utils/get-translate-target-language';
import getHTMLText from '../utils/getHTMLText';
import handleContentLinks from '../utils/handle-content-links';
@ -2695,14 +2696,6 @@ function MediaFirstContainer(props) {
);
}
function getDomain(url) {
return punycode.toUnicode(
URL.parse(url)
.hostname.replace(/^www\./, '')
.replace(/\/$/, ''),
);
}
// "Post": Quote post + card link preview combo
// Assume all links from these domains are "posts"
// Mastodon links are "posts" too but they are converted to real quote posts and there's too many domains to check
@ -3520,6 +3513,7 @@ const StatusButton = forwardRef((props, ref) => {
function nicePostURL(url) {
if (!url) return;
const urlObj = URL.parse(url);
if (!urlObj) return;
const { host, pathname } = urlObj;
const path = pathname.replace(/\/$/, '');
// split only first slash

View file

@ -159,7 +159,7 @@
"code": "zh-CN",
"nativeName": "简体中文",
"name": "Simplified Chinese",
"completion": 98
"completion": 100
},
{
"code": "zh-TW",

697
src/locales/en.po generated

File diff suppressed because it is too large Load diff

239
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: 2025-03-11 16:31\n"
"PO-Revision-Date: 2025-03-19 15:54\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"
@ -33,12 +33,12 @@ msgid "Last posted: {0}"
msgstr "Paskutinį kartą paskelbta: {0}"
#: src/components/account-block.jsx:162
#: src/components/account-info.jsx:659
#: src/components/account-info.jsx:688
msgid "Automated"
msgstr "Automatizuotas"
#: src/components/account-block.jsx:169
#: src/components/account-info.jsx:664
#: src/components/account-info.jsx:693
#: src/components/status.jsx:547
msgid "Group"
msgstr "Grupuoti"
@ -48,17 +48,17 @@ msgid "Mutual"
msgstr "Bendri"
#: src/components/account-block.jsx:183
#: src/components/account-info.jsx:1705
#: src/components/account-info.jsx:1760
msgid "Requested"
msgstr "Paprašyta"
#: src/components/account-block.jsx:187
#: src/components/account-info.jsx:1696
#: src/components/account-info.jsx:1751
msgid "Following"
msgstr "Sekama"
#: src/components/account-block.jsx:191
#: src/components/account-info.jsx:1087
#: src/components/account-info.jsx:1142
msgid "Follows you"
msgstr "Seka jus"
@ -67,14 +67,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}"
msgstr "{followersCount, plural, one {# sekėjas} few {# sekėjai} many {# sekėjo} other {# sekėjų}}"
#: src/components/account-block.jsx:208
#: src/components/account-info.jsx:705
#: src/components/account-info.jsx:736
msgid "Verified"
msgstr "Patvirtinta"
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#: src/components/account-block.jsx:223
#: src/components/account-info.jsx:805
#: src/components/account-info.jsx:838
msgid "Joined <0>{0}</0>"
msgstr "Prisijungė <0>{0}</0>"
@ -82,37 +82,37 @@ msgstr "Prisijungė <0>{0}</0>"
msgid "Forever"
msgstr "Visam laikui"
#: src/components/account-info.jsx:378
#: src/components/account-info.jsx:383
msgid "Unable to load account."
msgstr "Nepavyksta įkelti paskyros."
#: src/components/account-info.jsx:387
#: src/components/account-info.jsx:398
msgid "Go to account page"
msgstr "Eiti į paskyros puslapį"
#: src/components/account-info.jsx:416
#: src/components/account-info.jsx:727
#: src/components/account-info.jsx:757
#: src/components/account-info.jsx:427
#: src/components/account-info.jsx:758
#: src/components/account-info.jsx:788
msgid "Followers"
msgstr "Sekėjai"
#. js-lingui-explicit-id
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:767
#: src/components/account-info.jsx:784
#: src/components/account-info.jsx:431
#: src/components/account-info.jsx:798
#: src/components/account-info.jsx:817
msgid "following.stats"
msgstr "Sekimai"
#: src/components/account-info.jsx:422
#: src/components/account-info.jsx:801
#: src/components/account-info.jsx:434
#: src/components/account-info.jsx:834
#: src/pages/account-statuses.jsx:479
#: src/pages/search.jsx:328
#: src/pages/search.jsx:475
msgid "Posts"
msgstr "Įrašai"
#: src/components/account-info.jsx:430
#: src/components/account-info.jsx:1143
#: src/components/account-info.jsx:442
#: src/components/account-info.jsx:1198
#: src/components/compose.jsx:2772
#: src/components/media-alt-modal.jsx:46
#: src/components/media-modal.jsx:358
@ -132,50 +132,56 @@ msgstr "Įrašai"
msgid "More"
msgstr "Daugiau"
#: src/components/account-info.jsx:442
#: src/components/account-info.jsx:454
msgid "<0>{displayName}</0> has indicated that their new account is now:"
msgstr "<0>{displayName}</0> nurodė, kad jų naujoji paskyra dabar yra:"
#: src/components/account-info.jsx:587
#: src/components/account-info.jsx:1301
#: src/components/account-info.jsx:599
#: src/components/account-info.jsx:1356
msgid "Handle copied"
msgstr "Nukopijuotas socialinis medijos vardas"
#: src/components/account-info.jsx:590
#: src/components/account-info.jsx:1304
#: src/components/account-info.jsx:602
#: src/components/account-info.jsx:1359
msgid "Unable to copy handle"
msgstr "Nepavyksta nukopijuoti socialinės medijos vardo."
#: src/components/account-info.jsx:596
#: src/components/account-info.jsx:1310
#: src/components/account-info.jsx:608
#: src/components/account-info.jsx:1365
msgid "Copy handle"
msgstr "Kopijuoti socialinės medijos vardą"
#: src/components/account-info.jsx:602
#: src/components/account-info.jsx:614
msgid "Go to original profile page"
msgstr "Eiti į originalų profilio puslapį"
#: src/components/account-info.jsx:620
#: src/components/account-info.jsx:632
msgid "View profile image"
msgstr "Peržiūrėti profilio vaizdą"
#: src/components/account-info.jsx:637
#: src/components/account-info.jsx:649
msgid "View profile header"
msgstr "Peržiūrėti profilio antraštę"
#: src/components/account-info.jsx:654
#: src/components/account-info.jsx:664
#: src/components/account-info.jsx:1666
#: src/components/account-info.jsx:2184
msgid "Edit profile"
msgstr "Redaguoti profilį"
#: src/components/account-info.jsx:683
msgid "In Memoriam"
msgstr "Atminimui"
#: src/components/account-info.jsx:734
#: src/components/account-info.jsx:775
#: src/components/account-info.jsx:765
#: src/components/account-info.jsx:808
msgid "This user has chosen to not make this information available."
msgstr "Šis naudotojas pasirinko nepadaryti šią informaciją prieinamą."
#. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {2}: ( postingStats.boosts / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#: src/components/account-info.jsx:830
#: src/components/account-info.jsx:863
msgid "{0} original posts, {1} replies, {2} boosts"
msgstr "{0} originalūs įrašai, {1} atsakymai, {2} pasidalinimai"
@ -186,22 +192,22 @@ msgstr "{0} originalūs įrašai, {1} atsakymai, {2} pasidalinimai"
#. placeholder {4}: postingStats.total
#. placeholder {5}: postingStats.total
#. placeholder {6}: postingStats.daysSinceLastPost
#: src/components/account-info.jsx:846
#: src/components/account-info.jsx:879
msgid "{0, plural, one {{1, plural, one {Last 1 post in the past 1 day} other {Last 1 post in the past {2} days}}} other {{3, plural, one {Last {4} posts in the past 1 day} other {Last {5} posts in the past {6} days}}}}"
msgstr "{0, plural, one {{1, plural, one {Paskutinis {0} įrašas per pastarąją {1} dieną} few {Paskutinis 1 įrašas per pastarąsias {2} dienas} many {Paskutinis 1 įrašas per pastarąsias {2} dienos} other {Paskutinis 1 įrašas per pastarąsias {2} dienų}}} few {{3, plural, one {Paskutiniai {4} įrašai per pastarąją 1 dieną} few {Paskutiniai {5} įrašai per pastarąsias {6} dienas} many {Paskutinio {5} įrašo per pastaruosius {6} dienos} other {Paskutinių {5} įrašų per pastarąsias {6} dienų}}} many {{3, plural, one {Paskutiniai {4} įrašai per pastarąją 1 dieną} few {Paskutiniai {5} įrašai per pastarąsias {6} dienas} many {Paskutinio {5} įrašo per pastaruosius {6} dienos} other {Paskutinių {5} įrašų per pastarąsias {6} dienų}}} other {{3, plural, one {Paskutiniai {4} įrašai per pastarąją 1 dieną} few {Paskutiniai {5} įrašai per pastarąsias {6} dienas} many {Paskutinio {5} įrašo per pastaruosius {6} dienos} other {Paskutinių {5} įrašų per pastarąsias {6} dienų}}}}"
#. placeholder {0}: postingStats.total
#. placeholder {1}: postingStats.total
#: src/components/account-info.jsx:859
#: src/components/account-info.jsx:895
msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}"
msgstr "{0, plural, one {{1} paskutinis įrašas per pastaruosius metus} few {{1} paskutiniai įrašai per pastaruosius metus} many {{1} paskutinio įrašo per pastaruosius metus} other {{1} paskutinių įrašų per pastaruosius metus}}"
#: src/components/account-info.jsx:883
#: src/components/account-info.jsx:920
#: src/pages/catchup.jsx:70
msgid "Original"
msgstr "Originalūs"
#: src/components/account-info.jsx:887
#: src/components/account-info.jsx:924
#: src/components/status.jsx:2303
#: src/pages/catchup.jsx:71
#: src/pages/catchup.jsx:1445
@ -211,7 +217,7 @@ msgstr "Originalūs"
msgid "Replies"
msgstr "Atsakymai"
#: src/components/account-info.jsx:891
#: src/components/account-info.jsx:928
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2070
@ -219,210 +225,205 @@ msgstr "Atsakymai"
msgid "Boosts"
msgstr "Pasidalinimai"
#: src/components/account-info.jsx:897
#: src/components/account-info.jsx:934
msgid "Post stats unavailable."
msgstr "Įrašo statistika nepasiekiama."
#: src/components/account-info.jsx:928
#: src/components/account-info.jsx:965
msgid "View post stats"
msgstr "Peržiūrėti įrašų statistiką"
#. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, })
#: src/components/account-info.jsx:1091
#: src/components/account-info.jsx:1146
msgid "Last post: <0>{0}</0>"
msgstr "Paskutinis įrašas: <0>{0}</0>"
#: src/components/account-info.jsx:1105
#: src/components/account-info.jsx:1160
msgid "Muted"
msgstr "Nutildyta"
#: src/components/account-info.jsx:1110
#: src/components/account-info.jsx:1165
msgid "Blocked"
msgstr "Užblokuota"
#: src/components/account-info.jsx:1119
#: src/components/account-info.jsx:1174
msgid "Private note"
msgstr "Privati pastaba"
#: src/components/account-info.jsx:1176
#: src/components/account-info.jsx:1231
msgid "Mention <0>@{username}</0>"
msgstr "Paminėti <0>@{username}</0>"
#: src/components/account-info.jsx:1188
#: src/components/account-info.jsx:1243
msgid "Translate bio"
msgstr "Versti biografiją"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1254
msgid "Edit private note"
msgstr "Redaguoti privačią pastabą"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1254
msgid "Add private note"
msgstr "Pridėti privačią pastabą"
#: src/components/account-info.jsx:1219
#: src/components/account-info.jsx:1274
msgid "Notifications enabled for @{username}'s posts."
msgstr "Įjungti pranešimai apie @{username} įrašus."
#: src/components/account-info.jsx:1220
#: src/components/account-info.jsx:1275
msgid " Notifications disabled for @{username}'s posts."
msgstr " Išjungti pranešimai apie @{username} įrašus."
#: src/components/account-info.jsx:1232
#: src/components/account-info.jsx:1287
msgid "Disable notifications"
msgstr "Išjungti pranešimus"
#: src/components/account-info.jsx:1233
#: src/components/account-info.jsx:1288
msgid "Enable notifications"
msgstr "Įjungti pranešimus"
#: src/components/account-info.jsx:1250
#: src/components/account-info.jsx:1305
msgid "Boosts from @{username} enabled."
msgstr "Įjungti pasidalinimai iš @{username}."
#: src/components/account-info.jsx:1251
#: src/components/account-info.jsx:1306
msgid "Boosts from @{username} disabled."
msgstr "Išjungti pasidalinimai iš @{username}."
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1317
msgid "Disable boosts"
msgstr "Išjungti pasidalinimus"
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1317
msgid "Enable boosts"
msgstr "Įjungti pasidalinimus"
#: src/components/account-info.jsx:1278
#: src/components/account-info.jsx:1288
#: src/components/account-info.jsx:1891
#: src/components/account-info.jsx:1333
#: src/components/account-info.jsx:1343
#: src/components/account-info.jsx:1930
msgid "Add/Remove from Lists"
msgstr "Pridėti / šalinti iš sąrašų"
#: src/components/account-info.jsx:1327
#: src/components/account-info.jsx:1382
#: src/components/status.jsx:1210
msgid "Link copied"
msgstr "Nukopijuota nuorada"
#: src/components/account-info.jsx:1330
#: src/components/account-info.jsx:1385
#: src/components/status.jsx:1213
msgid "Unable to copy link"
msgstr "Nepavyksta atidaryti nuorodos."
#: src/components/account-info.jsx:1336
#: src/components/account-info.jsx:1391
#: src/components/shortcuts-settings.jsx:1059
#: src/components/status.jsx:1219
#: src/components/status.jsx:3298
msgid "Copy"
msgstr "Kopijuoti"
#: src/components/account-info.jsx:1351
#: src/components/account-info.jsx:1406
#: src/components/shortcuts-settings.jsx:1077
#: src/components/status.jsx:1235
msgid "Sharing doesn't seem to work."
msgstr "Atrodo, kad bendrinimas neveikia."
#: src/components/account-info.jsx:1357
#: src/components/account-info.jsx:1412
#: src/components/status.jsx:1241
msgid "Share…"
msgstr "Bendrinti…"
#: src/components/account-info.jsx:1377
#: src/components/account-info.jsx:1432
msgid "Unmuted @{username}"
msgstr "Atšauktas @{username} nutildymas"
#: src/components/account-info.jsx:1389
#: src/components/account-info.jsx:1444
msgid "Unmute <0>@{username}</0>"
msgstr "Atšaukti nutildymą <0>@{username}></0>"
#: src/components/account-info.jsx:1405
#: src/components/account-info.jsx:1460
msgid "Mute <0>@{username}</0>…"
msgstr "Nutildyti <0>@{username}</0>…"
#. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration])
#: src/components/account-info.jsx:1437
#: src/components/account-info.jsx:1492
msgid "Muted @{username} for {0}"
msgstr "Nutildytas @{username} dėl {0}"
#: src/components/account-info.jsx:1449
#: src/components/account-info.jsx:1504
msgid "Unable to mute @{username}"
msgstr "Nepavyksta nutildyti @{username}."
#: src/components/account-info.jsx:1470
#: src/components/account-info.jsx:1525
msgid "Remove <0>@{username}</0> from followers?"
msgstr "Pašalinti <0>@{username}</0> iš sekėjų?"
#: src/components/account-info.jsx:1490
#: src/components/account-info.jsx:1545
msgid "@{username} removed from followers"
msgstr "@{username} pašalintas iš sekėjų"
#: src/components/account-info.jsx:1502
#: src/components/account-info.jsx:1557
msgid "Remove follower…"
msgstr "Šalinti sekėją…"
#: src/components/account-info.jsx:1513
#: src/components/account-info.jsx:1568
msgid "Block <0>@{username}</0>?"
msgstr "Bluokuoti <0>@{username}</0>?"
#: src/components/account-info.jsx:1537
#: src/components/account-info.jsx:1592
msgid "Unblocked @{username}"
msgstr "Atblokuotas @{username}"
#: src/components/account-info.jsx:1545
#: src/components/account-info.jsx:1600
msgid "Blocked @{username}"
msgstr "Užblokuotas @{username}"
#: src/components/account-info.jsx:1553
#: src/components/account-info.jsx:1608
msgid "Unable to unblock @{username}"
msgstr "Nepavyksta atblokuoti @{username}."
#: src/components/account-info.jsx:1555
#: src/components/account-info.jsx:1610
msgid "Unable to block @{username}"
msgstr "Nepavyksta užblokuoti @{username}."
#: src/components/account-info.jsx:1565
#: src/components/account-info.jsx:1620
msgid "Unblock <0>@{username}</0>"
msgstr "Atblokuoti <0>@{username}</0>"
#: src/components/account-info.jsx:1574
#: src/components/account-info.jsx:1629
msgid "Block <0>@{username}</0>…"
msgstr "Bluokuoti <0>@{username}</0>…"
#: src/components/account-info.jsx:1591
#: src/components/account-info.jsx:1646
msgid "Report <0>@{username}</0>…"
msgstr "Pranešti apie <0>@{username}</0>…"
#: src/components/account-info.jsx:1611
#: src/components/account-info.jsx:2145
msgid "Edit profile"
msgstr "Redaguoti profilį"
#: src/components/account-info.jsx:1647
#: src/components/account-info.jsx:1702
msgid "Withdraw follow request?"
msgstr "Atšaukti sekimo prašymą?"
#. placeholder {1}: info.acct || info.username
#: src/components/account-info.jsx:1648
#: src/components/account-info.jsx:1703
msgid "Unfollow @{1}?"
msgstr "Nebesekti @{1}?"
#: src/components/account-info.jsx:1699
#: src/components/account-info.jsx:1754
msgid "Unfollow…"
msgstr "Nebesekti…"
#: src/components/account-info.jsx:1708
#: src/components/account-info.jsx:1763
msgid "Withdraw…"
msgstr "Atšaukti…"
#: src/components/account-info.jsx:1715
#: src/components/account-info.jsx:1719
#: src/components/account-info.jsx:1770
#: src/components/account-info.jsx:1774
#: src/pages/hashtag.jsx:262
msgid "Follow"
msgstr "Sekti"
#: src/components/account-info.jsx:1831
#: src/components/account-info.jsx:1886
#: src/components/account-info.jsx:2020
#: src/components/account-info.jsx:2140
#: src/components/account-info.jsx:1870
#: src/components/account-info.jsx:1925
#: src/components/account-info.jsx:2059
#: src/components/account-info.jsx:2179
#: src/components/account-sheet.jsx:38
#: src/components/compose.jsx:881
#: src/components/compose.jsx:2728
@ -455,85 +456,85 @@ msgstr "Sekti"
msgid "Close"
msgstr "Uždaryti"
#: src/components/account-info.jsx:1836
#: src/components/account-info.jsx:1875
msgid "Translated Bio"
msgstr "Išversta biografija"
#: src/components/account-info.jsx:1931
#: src/components/account-info.jsx:1970
msgid "Unable to remove from list."
msgstr "Nepavyksta pašalinti iš sąrašo."
#: src/components/account-info.jsx:1932
#: src/components/account-info.jsx:1971
msgid "Unable to add to list."
msgstr "Nepavyksta pridėti prie sąrašo."
#: src/components/account-info.jsx:1951
#: src/components/account-info.jsx:1990
#: src/pages/lists.jsx:105
msgid "Unable to load lists."
msgstr "Nepavyksta įkelti sąrašų."
#: src/components/account-info.jsx:1955
#: src/components/account-info.jsx:1994
msgid "No lists."
msgstr "Nėra sąrašų."
#: src/components/account-info.jsx:1966
#: src/components/account-info.jsx:2005
#: src/components/list-add-edit.jsx:40
#: src/pages/lists.jsx:59
msgid "New list"
msgstr "Naujas sąrašas"
#. placeholder {0}: account?.username || account?.acct
#: src/components/account-info.jsx:2025
#: src/components/account-info.jsx:2064
msgid "Private note about <0>@{0}</0>"
msgstr "Privati pastaba apie <0>@{0}</0>"
#: src/components/account-info.jsx:2055
#: src/components/account-info.jsx:2094
msgid "Unable to update private note."
msgstr "Nepavyksta atnaujinti privačios pastabos."
#: src/components/account-info.jsx:2078
#: src/components/account-info.jsx:2376
#: src/components/account-info.jsx:2117
#: src/components/account-info.jsx:2415
msgid "Cancel"
msgstr "Atšaukti"
#: src/components/account-info.jsx:2083
#: src/components/account-info.jsx:2122
msgid "Save & close"
msgstr "Išsaugoti ir uždaryti"
#: src/components/account-info.jsx:2200
#: src/components/account-info.jsx:2239
msgid "Unable to update profile."
msgstr "Nepavyksta atnaujinti profilio."
#: src/components/account-info.jsx:2207
#: src/components/account-info.jsx:2246
msgid "Header picture"
msgstr "Antraštinė nuotrauka"
#: src/components/account-info.jsx:2259
#: src/components/account-info.jsx:2298
msgid "Profile picture"
msgstr "Profilio nuotrauka"
#: src/components/account-info.jsx:2311
#: src/components/account-info.jsx:2350
#: src/components/list-add-edit.jsx:105
msgid "Name"
msgstr "Pavadinimas"
#: src/components/account-info.jsx:2324
#: src/components/account-info.jsx:2363
msgid "Bio"
msgstr "Biografija"
#: src/components/account-info.jsx:2337
#: src/components/account-info.jsx:2376
msgid "Extra fields"
msgstr "Papildomi laukai"
#: src/components/account-info.jsx:2343
#: src/components/account-info.jsx:2382
msgid "Label"
msgstr "Etiketė"
#: src/components/account-info.jsx:2346
#: src/components/account-info.jsx:2385
msgid "Content"
msgstr "Turinys"
#: src/components/account-info.jsx:2379
#: src/components/account-info.jsx:2418
#: src/components/list-add-edit.jsx:150
#: src/components/shortcuts-settings.jsx:715
#: src/pages/filters.jsx:554
@ -541,11 +542,11 @@ msgstr "Turinys"
msgid "Save"
msgstr "Išsaugoti"
#: src/components/account-info.jsx:2433
#: src/components/account-info.jsx:2472
msgid "username"
msgstr "naudotojo vardas"
#: src/components/account-info.jsx:2437
#: src/components/account-info.jsx:2476
msgid "server domain name"
msgstr "serverio domeno vardas"
@ -1534,7 +1535,7 @@ msgstr ""
#. placeholder {0}: shortenNumber(count)
#: src/components/notification.jsx:129
msgid "{count, plural, =1 {{account} followed you.} other {<0><1>{0}</1> people</0> followed you.}}"
msgstr "{count, plural, one {{0} seka tave.} few {<0><1>{0}</1> žmonės</0> seka tave.} many {<0><1>{0}</1> žmones</0> seka tave.}=1 {{account}} other {<0><1>{0}</1> žmonių</0> seka tave.}}"
msgstr "{count, plural, one {<0><1>{0}</1> žmogus seka jus.} few {<0><1>{0}</1> žmonės</0> seka jus.} many {<0><1>{0}</1> žmones</0> seka jus.}=1 {{account}} other {<0><1>{0}</1> žmonių</0> seka jus.}}"
#: src/components/notification.jsx:143
msgid "{account} requested to follow you."

328
src/locales/pt-BR.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-03-08 01:54\n"
"PO-Revision-Date: 2025-03-16 15:44\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -33,12 +33,12 @@ msgid "Last posted: {0}"
msgstr "Última publicação: {0}"
#: src/components/account-block.jsx:162
#: src/components/account-info.jsx:659
#: src/components/account-info.jsx:667
msgid "Automated"
msgstr "Automático"
#: src/components/account-block.jsx:169
#: src/components/account-info.jsx:664
#: src/components/account-info.jsx:672
#: src/components/status.jsx:547
msgid "Group"
msgstr "Grupo"
@ -48,17 +48,17 @@ msgid "Mutual"
msgstr "Mútuo"
#: src/components/account-block.jsx:183
#: src/components/account-info.jsx:1705
#: src/components/account-info.jsx:1713
msgid "Requested"
msgstr "Solicitado"
#: src/components/account-block.jsx:187
#: src/components/account-info.jsx:1696
#: src/components/account-info.jsx:1704
msgid "Following"
msgstr "Seguindo"
#: src/components/account-block.jsx:191
#: src/components/account-info.jsx:1087
#: src/components/account-info.jsx:1095
msgid "Follows you"
msgstr "Segue você"
@ -67,14 +67,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}"
msgstr "{followersCount, plural, one {# seguidor} other {# seguidores}}"
#: src/components/account-block.jsx:208
#: src/components/account-info.jsx:705
#: src/components/account-info.jsx:713
msgid "Verified"
msgstr "Verificado"
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#: src/components/account-block.jsx:223
#: src/components/account-info.jsx:805
#: src/components/account-info.jsx:813
msgid "Joined <0>{0}</0>"
msgstr "Juntou-se em <0>{0}</0>"
@ -82,45 +82,45 @@ msgstr "Juntou-se em <0>{0}</0>"
msgid "Forever"
msgstr "Permanente"
#: src/components/account-info.jsx:378
#: src/components/account-info.jsx:380
msgid "Unable to load account."
msgstr "Não foi possível carregar a conta."
#: src/components/account-info.jsx:387
#: src/components/account-info.jsx:395
msgid "Go to account page"
msgstr "Ir à página da conta"
#: src/components/account-info.jsx:416
#: src/components/account-info.jsx:727
#: src/components/account-info.jsx:757
#: src/components/account-info.jsx:424
#: src/components/account-info.jsx:735
#: src/components/account-info.jsx:765
msgid "Followers"
msgstr "Seguidores"
#. js-lingui-explicit-id
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:767
#: src/components/account-info.jsx:784
#: src/components/account-info.jsx:427
#: src/components/account-info.jsx:775
#: src/components/account-info.jsx:792
msgid "following.stats"
msgstr "Seguindo"
#: src/components/account-info.jsx:422
#: src/components/account-info.jsx:801
#: src/components/account-info.jsx:430
#: src/components/account-info.jsx:809
#: src/pages/account-statuses.jsx:479
#: src/pages/search.jsx:328
#: src/pages/search.jsx:475
msgid "Posts"
msgstr "Publicações"
#: src/components/account-info.jsx:430
#: src/components/account-info.jsx:1143
#: src/components/account-info.jsx:438
#: src/components/account-info.jsx:1151
#: src/components/compose.jsx:2772
#: src/components/media-alt-modal.jsx:46
#: src/components/media-modal.jsx:358
#: src/components/status.jsx:1770
#: src/components/status.jsx:1787
#: src/components/status.jsx:1912
#: src/components/status.jsx:2517
#: src/components/status.jsx:2520
#: src/components/status.jsx:2519
#: src/components/status.jsx:2522
#: src/pages/account-statuses.jsx:523
#: src/pages/accounts.jsx:110
#: src/pages/hashtag.jsx:200
@ -132,50 +132,50 @@ msgstr "Publicações"
msgid "More"
msgstr "Mais"
#: src/components/account-info.jsx:442
#: src/components/account-info.jsx:450
msgid "<0>{displayName}</0> has indicated that their new account is now:"
msgstr "<0>{displayName}</0> indicou que a nova conta é:"
#: src/components/account-info.jsx:587
#: src/components/account-info.jsx:1301
#: src/components/account-info.jsx:595
#: src/components/account-info.jsx:1309
msgid "Handle copied"
msgstr "Identificador copiado"
#: src/components/account-info.jsx:590
#: src/components/account-info.jsx:1304
#: src/components/account-info.jsx:598
#: src/components/account-info.jsx:1312
msgid "Unable to copy handle"
msgstr "Não foi possível copiar o identificador"
#: src/components/account-info.jsx:596
#: src/components/account-info.jsx:1310
#: src/components/account-info.jsx:604
#: src/components/account-info.jsx:1318
msgid "Copy handle"
msgstr "Copiar identificador"
#: src/components/account-info.jsx:602
#: src/components/account-info.jsx:610
msgid "Go to original profile page"
msgstr "Ir à página do perfil original"
#: src/components/account-info.jsx:620
#: src/components/account-info.jsx:628
msgid "View profile image"
msgstr "Ver foto de perfil"
#: src/components/account-info.jsx:637
#: src/components/account-info.jsx:645
msgid "View profile header"
msgstr "Ver banner de perfil"
#: src/components/account-info.jsx:654
#: src/components/account-info.jsx:662
msgid "In Memoriam"
msgstr "Em memória"
#: src/components/account-info.jsx:734
#: src/components/account-info.jsx:775
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:783
msgid "This user has chosen to not make this information available."
msgstr "O usuário deixou privado esta informação."
#. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {2}: ( postingStats.boosts / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#: src/components/account-info.jsx:830
#: src/components/account-info.jsx:838
msgid "{0} original posts, {1} replies, {2} boosts"
msgstr "{0} publicações originais, {1} respostas, {2} impulsos"
@ -186,22 +186,22 @@ msgstr "{0} publicações originais, {1} respostas, {2} impulsos"
#. placeholder {4}: postingStats.total
#. placeholder {5}: postingStats.total
#. placeholder {6}: postingStats.daysSinceLastPost
#: src/components/account-info.jsx:846
#: src/components/account-info.jsx:854
msgid "{0, plural, one {{1, plural, one {Last 1 post in the past 1 day} other {Last 1 post in the past {2} days}}} other {{3, plural, one {Last {4} posts in the past 1 day} other {Last {5} posts in the past {6} days}}}}"
msgstr "{0, plural, one {{1, plural, one {Última publicação no último dia} other {Última publicação nos últimos {2} dias}}} other {{3, plural, one {Últimas {4} publicações no último dia} other {Últimas {5} publicações nos últimos {6} dias}}}}"
#. placeholder {0}: postingStats.total
#. placeholder {1}: postingStats.total
#: src/components/account-info.jsx:859
#: src/components/account-info.jsx:867
msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}"
msgstr "{0, plural, one {Última publicação no(s) ano(s) passado(s)} other {Últimas {1} publicações no(s) ano(s) passado(s)}}"
#: src/components/account-info.jsx:883
#: src/components/account-info.jsx:891
#: src/pages/catchup.jsx:70
msgid "Original"
msgstr "Original"
#: src/components/account-info.jsx:887
#: src/components/account-info.jsx:895
#: src/components/status.jsx:2303
#: src/pages/catchup.jsx:71
#: src/pages/catchup.jsx:1445
@ -211,7 +211,7 @@ msgstr "Original"
msgid "Replies"
msgstr "Respostas"
#: src/components/account-info.jsx:891
#: src/components/account-info.jsx:899
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2070
@ -219,210 +219,210 @@ msgstr "Respostas"
msgid "Boosts"
msgstr "Impulsos"
#: src/components/account-info.jsx:897
#: src/components/account-info.jsx:905
msgid "Post stats unavailable."
msgstr "As estatísticas estão indisponíveis."
#: src/components/account-info.jsx:928
#: src/components/account-info.jsx:936
msgid "View post stats"
msgstr "Ver estatísticas"
#. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, })
#: src/components/account-info.jsx:1091
#: src/components/account-info.jsx:1099
msgid "Last post: <0>{0}</0>"
msgstr "Última publicação: <0>{0}</0>"
#: src/components/account-info.jsx:1105
#: src/components/account-info.jsx:1113
msgid "Muted"
msgstr "Silenciado"
#: src/components/account-info.jsx:1110
#: src/components/account-info.jsx:1118
msgid "Blocked"
msgstr "Bloqueado"
#: src/components/account-info.jsx:1119
#: src/components/account-info.jsx:1127
msgid "Private note"
msgstr "Nota privada"
#: src/components/account-info.jsx:1176
#: src/components/account-info.jsx:1184
msgid "Mention <0>@{username}</0>"
msgstr "Mencionar <0>@{username}</0>"
#: src/components/account-info.jsx:1188
#: src/components/account-info.jsx:1196
msgid "Translate bio"
msgstr "Traduzir bio"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1207
msgid "Edit private note"
msgstr "Editar nota privada"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1207
msgid "Add private note"
msgstr "Adicionar nota privada"
#: src/components/account-info.jsx:1219
#: src/components/account-info.jsx:1227
msgid "Notifications enabled for @{username}'s posts."
msgstr "Notificações ativadas para as publicações de @{username}."
#: src/components/account-info.jsx:1220
#: src/components/account-info.jsx:1228
msgid " Notifications disabled for @{username}'s posts."
msgstr " Notificações desativadas para as publicações de @{username}."
#: src/components/account-info.jsx:1232
#: src/components/account-info.jsx:1240
msgid "Disable notifications"
msgstr "Desativar notificações"
#: src/components/account-info.jsx:1233
#: src/components/account-info.jsx:1241
msgid "Enable notifications"
msgstr "Ativar notificações"
#: src/components/account-info.jsx:1250
#: src/components/account-info.jsx:1258
msgid "Boosts from @{username} enabled."
msgstr "Impulsos de @{username} ativados."
#: src/components/account-info.jsx:1251
#: src/components/account-info.jsx:1259
msgid "Boosts from @{username} disabled."
msgstr "Impulsos de @{username} desativados."
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1270
msgid "Disable boosts"
msgstr "Desativar impulsos"
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1270
msgid "Enable boosts"
msgstr "Ativar impulsos"
#: src/components/account-info.jsx:1278
#: src/components/account-info.jsx:1288
#: src/components/account-info.jsx:1891
#: src/components/account-info.jsx:1286
#: src/components/account-info.jsx:1296
#: src/components/account-info.jsx:1899
msgid "Add/Remove from Lists"
msgstr "Adicionar/remover das listas"
#: src/components/account-info.jsx:1327
#: src/components/account-info.jsx:1335
#: src/components/status.jsx:1210
msgid "Link copied"
msgstr "Link copiado"
#: src/components/account-info.jsx:1330
#: src/components/account-info.jsx:1338
#: src/components/status.jsx:1213
msgid "Unable to copy link"
msgstr "Não foi possível copiar link"
#: src/components/account-info.jsx:1336
#: src/components/account-info.jsx:1344
#: src/components/shortcuts-settings.jsx:1059
#: src/components/status.jsx:1219
#: src/components/status.jsx:3296
#: src/components/status.jsx:3298
msgid "Copy"
msgstr "Copiar"
#: src/components/account-info.jsx:1351
#: src/components/account-info.jsx:1359
#: src/components/shortcuts-settings.jsx:1077
#: src/components/status.jsx:1235
msgid "Sharing doesn't seem to work."
msgstr "Compartilhar não parece estar funcionando."
#: src/components/account-info.jsx:1357
#: src/components/account-info.jsx:1365
#: src/components/status.jsx:1241
msgid "Share…"
msgstr "Compartilhar…"
#: src/components/account-info.jsx:1377
#: src/components/account-info.jsx:1385
msgid "Unmuted @{username}"
msgstr "Dessilenciou @{username}"
#: src/components/account-info.jsx:1389
#: src/components/account-info.jsx:1397
msgid "Unmute <0>@{username}</0>"
msgstr "Dessilenciar <0>@{username}</0>"
#: src/components/account-info.jsx:1405
#: src/components/account-info.jsx:1413
msgid "Mute <0>@{username}</0>…"
msgstr "Silenciar <0>@{username}</0>…"
#. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration])
#: src/components/account-info.jsx:1437
#: src/components/account-info.jsx:1445
msgid "Muted @{username} for {0}"
msgstr "Silenciou @{username} por {0}"
#: src/components/account-info.jsx:1449
#: src/components/account-info.jsx:1457
msgid "Unable to mute @{username}"
msgstr "Não foi possível silenciar @{username}"
#: src/components/account-info.jsx:1470
#: src/components/account-info.jsx:1478
msgid "Remove <0>@{username}</0> from followers?"
msgstr "Excluir <0>@{username}</0> dos seguidores?"
#: src/components/account-info.jsx:1490
#: src/components/account-info.jsx:1498
msgid "@{username} removed from followers"
msgstr "@{username} excluído dos seguidores"
#: src/components/account-info.jsx:1502
#: src/components/account-info.jsx:1510
msgid "Remove follower…"
msgstr "Excluir seguidor…"
#: src/components/account-info.jsx:1513
#: src/components/account-info.jsx:1521
msgid "Block <0>@{username}</0>?"
msgstr "Bloquear <0>@{username}</0>?"
#: src/components/account-info.jsx:1537
#: src/components/account-info.jsx:1545
msgid "Unblocked @{username}"
msgstr "Desbloqueou @{username}"
#: src/components/account-info.jsx:1545
#: src/components/account-info.jsx:1553
msgid "Blocked @{username}"
msgstr "Bloqueou @{username}"
#: src/components/account-info.jsx:1553
#: src/components/account-info.jsx:1561
msgid "Unable to unblock @{username}"
msgstr "Não foi possível desbloquear @{username}"
#: src/components/account-info.jsx:1555
#: src/components/account-info.jsx:1563
msgid "Unable to block @{username}"
msgstr "Não foi possível bloquear @{username}"
#: src/components/account-info.jsx:1565
#: src/components/account-info.jsx:1573
msgid "Unblock <0>@{username}</0>"
msgstr "Desbloquear <0>@{username}</0>"
#: src/components/account-info.jsx:1574
#: src/components/account-info.jsx:1582
msgid "Block <0>@{username}</0>…"
msgstr "Bloquear <0>@{username}</0>…"
#: src/components/account-info.jsx:1591
#: src/components/account-info.jsx:1599
msgid "Report <0>@{username}</0>…"
msgstr "Denunciar <0>@{username}</0>…"
#: src/components/account-info.jsx:1611
#: src/components/account-info.jsx:2145
#: src/components/account-info.jsx:1619
#: src/components/account-info.jsx:2153
msgid "Edit profile"
msgstr "Editar perfil"
#: src/components/account-info.jsx:1647
#: src/components/account-info.jsx:1655
msgid "Withdraw follow request?"
msgstr "Excluir solicitação de seguimento?"
#. placeholder {1}: info.acct || info.username
#: src/components/account-info.jsx:1648
#: src/components/account-info.jsx:1656
msgid "Unfollow @{1}?"
msgstr "Parar de seguir @{1}?"
#: src/components/account-info.jsx:1699
#: src/components/account-info.jsx:1707
msgid "Unfollow…"
msgstr "Parar de seguir…"
#: src/components/account-info.jsx:1708
#: src/components/account-info.jsx:1716
msgid "Withdraw…"
msgstr "Excluir…"
#: src/components/account-info.jsx:1715
#: src/components/account-info.jsx:1719
#: src/components/account-info.jsx:1723
#: src/components/account-info.jsx:1727
#: src/pages/hashtag.jsx:262
msgid "Follow"
msgstr "Seguir"
#: src/components/account-info.jsx:1831
#: src/components/account-info.jsx:1886
#: src/components/account-info.jsx:2020
#: src/components/account-info.jsx:2140
#: src/components/account-info.jsx:1839
#: src/components/account-info.jsx:1894
#: src/components/account-info.jsx:2028
#: src/components/account-info.jsx:2148
#: src/components/account-sheet.jsx:38
#: src/components/compose.jsx:881
#: src/components/compose.jsx:2728
@ -441,9 +441,9 @@ msgstr "Seguir"
#: src/components/shortcuts-settings.jsx:230
#: src/components/shortcuts-settings.jsx:583
#: src/components/shortcuts-settings.jsx:783
#: src/components/status.jsx:3020
#: src/components/status.jsx:3260
#: src/components/status.jsx:3760
#: src/components/status.jsx:3022
#: src/components/status.jsx:3262
#: src/components/status.jsx:3762
#: src/pages/accounts.jsx:37
#: src/pages/catchup.jsx:1581
#: src/pages/filters.jsx:224
@ -455,85 +455,85 @@ msgstr "Seguir"
msgid "Close"
msgstr "Fechar"
#: src/components/account-info.jsx:1836
#: src/components/account-info.jsx:1844
msgid "Translated Bio"
msgstr "Bio traduzida"
#: src/components/account-info.jsx:1931
#: src/components/account-info.jsx:1939
msgid "Unable to remove from list."
msgstr "Não foi possível remover da lista."
#: src/components/account-info.jsx:1932
#: src/components/account-info.jsx:1940
msgid "Unable to add to list."
msgstr "Não foi possível adicionar à lista."
#: src/components/account-info.jsx:1951
#: src/components/account-info.jsx:1959
#: src/pages/lists.jsx:105
msgid "Unable to load lists."
msgstr "Não foi possível carregar listas."
#: src/components/account-info.jsx:1955
#: src/components/account-info.jsx:1963
msgid "No lists."
msgstr "Não há listas."
#: src/components/account-info.jsx:1966
#: src/components/account-info.jsx:1974
#: src/components/list-add-edit.jsx:40
#: src/pages/lists.jsx:59
msgid "New list"
msgstr "Nova lista"
#. placeholder {0}: account?.username || account?.acct
#: src/components/account-info.jsx:2025
#: src/components/account-info.jsx:2033
msgid "Private note about <0>@{0}</0>"
msgstr "Nota privada sobre <0>@{0}</0>"
#: src/components/account-info.jsx:2055
#: src/components/account-info.jsx:2063
msgid "Unable to update private note."
msgstr "Não foi possível atualizar nota privada."
#: src/components/account-info.jsx:2078
#: src/components/account-info.jsx:2376
#: src/components/account-info.jsx:2086
#: src/components/account-info.jsx:2384
msgid "Cancel"
msgstr "Cancelar"
#: src/components/account-info.jsx:2083
#: src/components/account-info.jsx:2091
msgid "Save & close"
msgstr "Salvar e fechar"
#: src/components/account-info.jsx:2200
#: src/components/account-info.jsx:2208
msgid "Unable to update profile."
msgstr "Não foi possível atualizar perfil."
#: src/components/account-info.jsx:2207
#: src/components/account-info.jsx:2215
msgid "Header picture"
msgstr "Foto do banner"
#: src/components/account-info.jsx:2259
#: src/components/account-info.jsx:2267
msgid "Profile picture"
msgstr "Foto de perfil"
#: src/components/account-info.jsx:2311
#: src/components/account-info.jsx:2319
#: src/components/list-add-edit.jsx:105
msgid "Name"
msgstr "Nome"
#: src/components/account-info.jsx:2324
#: src/components/account-info.jsx:2332
msgid "Bio"
msgstr "Bio"
#: src/components/account-info.jsx:2337
#: src/components/account-info.jsx:2345
msgid "Extra fields"
msgstr "Campos adicionais"
#: src/components/account-info.jsx:2343
#: src/components/account-info.jsx:2351
msgid "Label"
msgstr "Etiqueta"
#: src/components/account-info.jsx:2346
#: src/components/account-info.jsx:2354
msgid "Content"
msgstr "Conteúdo"
#: src/components/account-info.jsx:2379
#: src/components/account-info.jsx:2387
#: src/components/list-add-edit.jsx:150
#: src/components/shortcuts-settings.jsx:715
#: src/pages/filters.jsx:554
@ -541,11 +541,11 @@ msgstr "Conteúdo"
msgid "Save"
msgstr "Salvar"
#: src/components/account-info.jsx:2433
#: src/components/account-info.jsx:2441
msgid "username"
msgstr "nome de usuário"
#: src/components/account-info.jsx:2437
#: src/components/account-info.jsx:2445
msgid "server domain name"
msgstr "domínio do servidor"
@ -588,7 +588,7 @@ msgstr "Adicionar ao tópico"
#: src/components/compose.jsx:211
msgid "Take photo or video"
msgstr ""
msgstr "Fazer foto ou vídeo"
#: src/components/compose.jsx:212
msgid "Add media"
@ -760,7 +760,7 @@ msgstr "Agendar"
#: src/components/status.jsx:984
#: src/components/status.jsx:1750
#: src/components/status.jsx:1751
#: src/components/status.jsx:2421
#: src/components/status.jsx:2423
msgid "Reply"
msgstr "Responder"
@ -1202,9 +1202,9 @@ msgstr "<0>l</0> ou <1>f</1>"
#: src/components/keyboard-shortcuts-help.jsx:175
#: src/components/status.jsx:992
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2472
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
#: src/components/status.jsx:2474
msgid "Boost"
msgstr "Impulsionar"
@ -1214,8 +1214,8 @@ msgstr "<0>Shift</0> + <1>b</1>"
#: src/components/keyboard-shortcuts-help.jsx:183
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2497
#: src/components/status.jsx:2498
#: src/components/status.jsx:2499
msgid "Bookmark"
msgstr "Favoritar"
@ -1319,9 +1319,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr "Filtrado: {filterTitleStr}"
#: src/components/media-post.jsx:134
#: src/components/status.jsx:3590
#: src/components/status.jsx:3686
#: src/components/status.jsx:3764
#: src/components/status.jsx:3592
#: src/components/status.jsx:3688
#: src/components/status.jsx:3766
#: src/components/timeline.jsx:978
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1877
@ -2201,13 +2201,13 @@ msgstr "Publicação antiga (<0>{0}</0>)"
#: src/components/status.jsx:992
#: src/components/status.jsx:1032
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
msgid "Unboost"
msgstr "Remover impulso"
#: src/components/status.jsx:1008
#: src/components/status.jsx:2463
#: src/components/status.jsx:2465
msgid "Quote"
msgstr "Citar"
@ -2227,20 +2227,20 @@ msgstr "Impulsionar…"
#: src/components/status.jsx:1045
#: src/components/status.jsx:1760
#: src/components/status.jsx:2484
#: src/components/status.jsx:2486
msgid "Unlike"
msgstr "Remover curtida"
#: src/components/status.jsx:1046
#: src/components/status.jsx:1760
#: src/components/status.jsx:1761
#: src/components/status.jsx:2484
#: src/components/status.jsx:2485
#: src/components/status.jsx:2486
#: src/components/status.jsx:2487
msgid "Like"
msgstr "Curtir"
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2498
msgid "Unbookmark"
msgstr "Desfavoritar"
@ -2258,7 +2258,7 @@ msgid "Edited: {editedDateText}"
msgstr "Editado: {editedDateText}"
#: src/components/status.jsx:1254
#: src/components/status.jsx:3265
#: src/components/status.jsx:3267
msgid "Embed post"
msgstr "Incorporar publicação"
@ -2338,17 +2338,17 @@ msgstr "Impulsionou a publicação de @{7}"
#: src/components/status.jsx:1761
#: src/components/status.jsx:1797
#: src/components/status.jsx:2485
#: src/components/status.jsx:2487
msgid "Liked"
msgstr "Curtido"
#: src/components/status.jsx:1794
#: src/components/status.jsx:2472
#: src/components/status.jsx:2474
msgid "Boosted"
msgstr "Impulsionado"
#: src/components/status.jsx:1804
#: src/components/status.jsx:2497
#: src/components/status.jsx:2499
msgid "Bookmarked"
msgstr "Favoritado"
@ -2385,91 +2385,91 @@ msgstr "Mostrar conteúdo"
msgid "Show media"
msgstr "Mostrar mídia"
#: src/components/status.jsx:2345
#: src/components/status.jsx:2347
msgid "Edited"
msgstr "Editado"
#: src/components/status.jsx:2422
#: src/components/status.jsx:2424
msgid "Comments"
msgstr "Comentários"
#. More from [Author]
#: src/components/status.jsx:2723
#: src/components/status.jsx:2725
msgid "More from <0/>"
msgstr "Mais de <0/>"
#: src/components/status.jsx:3025
#: src/components/status.jsx:3027
msgid "Edit History"
msgstr "Histórico de edições"
#: src/components/status.jsx:3029
#: src/components/status.jsx:3031
msgid "Failed to load history"
msgstr "Houve um erro ao carregar histórico"
#: src/components/status.jsx:3034
#: src/components/status.jsx:3036
#: src/pages/annual-report.jsx:45
msgid "Loading…"
msgstr "Carregando…"
#: src/components/status.jsx:3270
#: src/components/status.jsx:3272
msgid "HTML Code"
msgstr "Código HTML"
#: src/components/status.jsx:3287
#: src/components/status.jsx:3289
msgid "HTML code copied"
msgstr "Código HTML copiado"
#: src/components/status.jsx:3290
#: src/components/status.jsx:3292
msgid "Unable to copy HTML code"
msgstr "Não foi possível copiar código HTML"
#: src/components/status.jsx:3302
#: src/components/status.jsx:3304
msgid "Media attachments:"
msgstr "Anexos de mídia:"
#: src/components/status.jsx:3324
#: src/components/status.jsx:3326
msgid "Account Emojis:"
msgstr "Emojis da conta:"
#: src/components/status.jsx:3355
#: src/components/status.jsx:3400
#: src/components/status.jsx:3357
#: src/components/status.jsx:3402
msgid "static URL"
msgstr "URL estático"
#: src/components/status.jsx:3369
#: src/components/status.jsx:3371
msgid "Emojis:"
msgstr "Emojis:"
#: src/components/status.jsx:3414
#: src/components/status.jsx:3416
msgid "Notes:"
msgstr "Notas:"
#: src/components/status.jsx:3418
#: src/components/status.jsx:3420
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "Isso é estático, instável e sem guião. Você pode precisar para aplicar seus próprios estilos e editar caso necessário."
#: src/components/status.jsx:3424
#: src/components/status.jsx:3426
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "Enquetes não são interativas, ela se torna uma lista com contagem de votos."
#: src/components/status.jsx:3429
#: src/components/status.jsx:3431
msgid "Media attachments can be images, videos, audios or any file types."
msgstr "Anexos de mídia pode ser imagens, vídeos, áudios ou qualquer arquivo."
#: src/components/status.jsx:3435
#: src/components/status.jsx:3437
msgid "Post could be edited or deleted later."
msgstr "Publicações podem ser editadas ou excluídas depois."
#: src/components/status.jsx:3441
#: src/components/status.jsx:3443
msgid "Preview"
msgstr "Prévia"
#: src/components/status.jsx:3450
#: src/components/status.jsx:3452
msgid "Note: This preview is lightly styled."
msgstr "Nota: Esta prévia tem um estilo levemente padronizado."
#. [Name] [Visibility icon] boosted
#: src/components/status.jsx:3694
#: src/components/status.jsx:3696
msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> impulsionou"

328
src/locales/pt-PT.po generated
View file

@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-03-08 01:54\n"
"PO-Revision-Date: 2025-03-16 15:44\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -33,12 +33,12 @@ msgid "Last posted: {0}"
msgstr "Última publicação: {0}"
#: src/components/account-block.jsx:162
#: src/components/account-info.jsx:659
#: src/components/account-info.jsx:667
msgid "Automated"
msgstr "Automático"
#: src/components/account-block.jsx:169
#: src/components/account-info.jsx:664
#: src/components/account-info.jsx:672
#: src/components/status.jsx:547
msgid "Group"
msgstr "Grupo"
@ -48,17 +48,17 @@ msgid "Mutual"
msgstr "Mútuo"
#: src/components/account-block.jsx:183
#: src/components/account-info.jsx:1705
#: src/components/account-info.jsx:1713
msgid "Requested"
msgstr "Pedido"
#: src/components/account-block.jsx:187
#: src/components/account-info.jsx:1696
#: src/components/account-info.jsx:1704
msgid "Following"
msgstr "A seguir"
#: src/components/account-block.jsx:191
#: src/components/account-info.jsx:1087
#: src/components/account-info.jsx:1095
msgid "Follows you"
msgstr "Segue tu"
@ -67,14 +67,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}"
msgstr "{followersCount, plural, one {# seguidor} other {# seguidores}}"
#: src/components/account-block.jsx:208
#: src/components/account-info.jsx:705
#: src/components/account-info.jsx:713
msgid "Verified"
msgstr "Verificado"
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
#: src/components/account-block.jsx:223
#: src/components/account-info.jsx:805
#: src/components/account-info.jsx:813
msgid "Joined <0>{0}</0>"
msgstr "Juntou-se em <0>{0}</0>"
@ -82,45 +82,45 @@ msgstr "Juntou-se em <0>{0}</0>"
msgid "Forever"
msgstr "Permanente"
#: src/components/account-info.jsx:378
#: src/components/account-info.jsx:380
msgid "Unable to load account."
msgstr "Impossível carregar conta."
#: src/components/account-info.jsx:387
#: src/components/account-info.jsx:395
msgid "Go to account page"
msgstr "Ir à página da conta"
#: src/components/account-info.jsx:416
#: src/components/account-info.jsx:727
#: src/components/account-info.jsx:757
#: src/components/account-info.jsx:424
#: src/components/account-info.jsx:735
#: src/components/account-info.jsx:765
msgid "Followers"
msgstr "Seguidores"
#. js-lingui-explicit-id
#: src/components/account-info.jsx:419
#: src/components/account-info.jsx:767
#: src/components/account-info.jsx:784
#: src/components/account-info.jsx:427
#: src/components/account-info.jsx:775
#: src/components/account-info.jsx:792
msgid "following.stats"
msgstr "A seguir"
#: src/components/account-info.jsx:422
#: src/components/account-info.jsx:801
#: src/components/account-info.jsx:430
#: src/components/account-info.jsx:809
#: src/pages/account-statuses.jsx:479
#: src/pages/search.jsx:328
#: src/pages/search.jsx:475
msgid "Posts"
msgstr "Postagens"
#: src/components/account-info.jsx:430
#: src/components/account-info.jsx:1143
#: src/components/account-info.jsx:438
#: src/components/account-info.jsx:1151
#: src/components/compose.jsx:2772
#: src/components/media-alt-modal.jsx:46
#: src/components/media-modal.jsx:358
#: src/components/status.jsx:1770
#: src/components/status.jsx:1787
#: src/components/status.jsx:1912
#: src/components/status.jsx:2517
#: src/components/status.jsx:2520
#: src/components/status.jsx:2519
#: src/components/status.jsx:2522
#: src/pages/account-statuses.jsx:523
#: src/pages/accounts.jsx:110
#: src/pages/hashtag.jsx:200
@ -132,50 +132,50 @@ msgstr "Postagens"
msgid "More"
msgstr "Mais"
#: src/components/account-info.jsx:442
#: src/components/account-info.jsx:450
msgid "<0>{displayName}</0> has indicated that their new account is now:"
msgstr "A nova conta de <0>{displayName}</0> é:"
#: src/components/account-info.jsx:587
#: src/components/account-info.jsx:1301
#: src/components/account-info.jsx:595
#: src/components/account-info.jsx:1309
msgid "Handle copied"
msgstr "Identificador copiado"
#: src/components/account-info.jsx:590
#: src/components/account-info.jsx:1304
#: src/components/account-info.jsx:598
#: src/components/account-info.jsx:1312
msgid "Unable to copy handle"
msgstr "Impossível copiar identificador"
#: src/components/account-info.jsx:596
#: src/components/account-info.jsx:1310
#: src/components/account-info.jsx:604
#: src/components/account-info.jsx:1318
msgid "Copy handle"
msgstr "Copiar identificador"
#: src/components/account-info.jsx:602
#: src/components/account-info.jsx:610
msgid "Go to original profile page"
msgstr "Ir à página do perfil original"
#: src/components/account-info.jsx:620
#: src/components/account-info.jsx:628
msgid "View profile image"
msgstr "Ver foto de perfil"
#: src/components/account-info.jsx:637
#: src/components/account-info.jsx:645
msgid "View profile header"
msgstr "Ver banner de perfil"
#: src/components/account-info.jsx:654
#: src/components/account-info.jsx:662
msgid "In Memoriam"
msgstr "Em memória"
#: src/components/account-info.jsx:734
#: src/components/account-info.jsx:775
#: src/components/account-info.jsx:742
#: src/components/account-info.jsx:783
msgid "This user has chosen to not make this information available."
msgstr "O utilizador deixou privado esta informação."
#. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#. placeholder {2}: ( postingStats.boosts / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
#: src/components/account-info.jsx:830
#: src/components/account-info.jsx:838
msgid "{0} original posts, {1} replies, {2} boosts"
msgstr "{0} postagens originais, {1} respostas, {2} impulsos"
@ -186,22 +186,22 @@ msgstr "{0} postagens originais, {1} respostas, {2} impulsos"
#. placeholder {4}: postingStats.total
#. placeholder {5}: postingStats.total
#. placeholder {6}: postingStats.daysSinceLastPost
#: src/components/account-info.jsx:846
#: src/components/account-info.jsx:854
msgid "{0, plural, one {{1, plural, one {Last 1 post in the past 1 day} other {Last 1 post in the past {2} days}}} other {{3, plural, one {Last {4} posts in the past 1 day} other {Last {5} posts in the past {6} days}}}}"
msgstr "{0, plural, one {{1, plural, one {Última postagem no último dia} other {Última postagem nos últimos {2} dias}}} other {{3, plural, one {Últimas {4} postagens no último dia} other {Últimas {5} postagens nos últimos {6} dias}}}}"
#. placeholder {0}: postingStats.total
#. placeholder {1}: postingStats.total
#: src/components/account-info.jsx:859
#: src/components/account-info.jsx:867
msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}"
msgstr "{0, plural, one {Última postagem no(s) ano(s) passado(s)} other {Últimas {1} postagens no(s) ano(s) passado(s)}}"
#: src/components/account-info.jsx:883
#: src/components/account-info.jsx:891
#: src/pages/catchup.jsx:70
msgid "Original"
msgstr "Original"
#: src/components/account-info.jsx:887
#: src/components/account-info.jsx:895
#: src/components/status.jsx:2303
#: src/pages/catchup.jsx:71
#: src/pages/catchup.jsx:1445
@ -211,7 +211,7 @@ msgstr "Original"
msgid "Replies"
msgstr "Respostas"
#: src/components/account-info.jsx:891
#: src/components/account-info.jsx:899
#: src/pages/catchup.jsx:72
#: src/pages/catchup.jsx:1447
#: src/pages/catchup.jsx:2070
@ -219,210 +219,210 @@ msgstr "Respostas"
msgid "Boosts"
msgstr "Impulsos"
#: src/components/account-info.jsx:897
#: src/components/account-info.jsx:905
msgid "Post stats unavailable."
msgstr "Estatísticas da publicação indisponíveis."
#: src/components/account-info.jsx:928
#: src/components/account-info.jsx:936
msgid "View post stats"
msgstr "Ver estatísticas"
#. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, })
#: src/components/account-info.jsx:1091
#: src/components/account-info.jsx:1099
msgid "Last post: <0>{0}</0>"
msgstr "Última publicação: <0>{0}</0>"
#: src/components/account-info.jsx:1105
#: src/components/account-info.jsx:1113
msgid "Muted"
msgstr "Silenciado"
#: src/components/account-info.jsx:1110
#: src/components/account-info.jsx:1118
msgid "Blocked"
msgstr "Bloqueado"
#: src/components/account-info.jsx:1119
#: src/components/account-info.jsx:1127
msgid "Private note"
msgstr "Nota privada"
#: src/components/account-info.jsx:1176
#: src/components/account-info.jsx:1184
msgid "Mention <0>@{username}</0>"
msgstr "Mencionar <0>@{username}</0>"
#: src/components/account-info.jsx:1188
#: src/components/account-info.jsx:1196
msgid "Translate bio"
msgstr "Traduzir biografia"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1207
msgid "Edit private note"
msgstr "Editar nota privada"
#: src/components/account-info.jsx:1199
#: src/components/account-info.jsx:1207
msgid "Add private note"
msgstr "Adicionar nota privada"
#: src/components/account-info.jsx:1219
#: src/components/account-info.jsx:1227
msgid "Notifications enabled for @{username}'s posts."
msgstr "Habilitado as notificações para postagens de @{username}."
#: src/components/account-info.jsx:1220
#: src/components/account-info.jsx:1228
msgid " Notifications disabled for @{username}'s posts."
msgstr " Desabilitado as notificações de postagens de @{username}."
#: src/components/account-info.jsx:1232
#: src/components/account-info.jsx:1240
msgid "Disable notifications"
msgstr "Desativar notificações"
#: src/components/account-info.jsx:1233
#: src/components/account-info.jsx:1241
msgid "Enable notifications"
msgstr "Ativar notificações"
#: src/components/account-info.jsx:1250
#: src/components/account-info.jsx:1258
msgid "Boosts from @{username} enabled."
msgstr "Impulsos de @{username} ativados."
#: src/components/account-info.jsx:1251
#: src/components/account-info.jsx:1259
msgid "Boosts from @{username} disabled."
msgstr "Impulsos de @{username} desativados."
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1270
msgid "Disable boosts"
msgstr "Desativar impulsos"
#: src/components/account-info.jsx:1262
#: src/components/account-info.jsx:1270
msgid "Enable boosts"
msgstr "Ativar impulsos"
#: src/components/account-info.jsx:1278
#: src/components/account-info.jsx:1288
#: src/components/account-info.jsx:1891
#: src/components/account-info.jsx:1286
#: src/components/account-info.jsx:1296
#: src/components/account-info.jsx:1899
msgid "Add/Remove from Lists"
msgstr "Adicionar/Remover das listas"
#: src/components/account-info.jsx:1327
#: src/components/account-info.jsx:1335
#: src/components/status.jsx:1210
msgid "Link copied"
msgstr "Ligação copiada"
#: src/components/account-info.jsx:1330
#: src/components/account-info.jsx:1338
#: src/components/status.jsx:1213
msgid "Unable to copy link"
msgstr "Impossível copiar ligação"
#: src/components/account-info.jsx:1336
#: src/components/account-info.jsx:1344
#: src/components/shortcuts-settings.jsx:1059
#: src/components/status.jsx:1219
#: src/components/status.jsx:3296
#: src/components/status.jsx:3298
msgid "Copy"
msgstr "Copiar"
#: src/components/account-info.jsx:1351
#: src/components/account-info.jsx:1359
#: src/components/shortcuts-settings.jsx:1077
#: src/components/status.jsx:1235
msgid "Sharing doesn't seem to work."
msgstr "Partilhar não parece estar a funcionar."
#: src/components/account-info.jsx:1357
#: src/components/account-info.jsx:1365
#: src/components/status.jsx:1241
msgid "Share…"
msgstr "Partilhar…"
#: src/components/account-info.jsx:1377
#: src/components/account-info.jsx:1385
msgid "Unmuted @{username}"
msgstr "Dessilenciou @{username}"
#: src/components/account-info.jsx:1389
#: src/components/account-info.jsx:1397
msgid "Unmute <0>@{username}</0>"
msgstr "Dessilenciar <0>@{username}</0>"
#: src/components/account-info.jsx:1405
#: src/components/account-info.jsx:1413
msgid "Mute <0>@{username}</0>…"
msgstr "Silenciar <0>@{username}</0>…"
#. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration])
#: src/components/account-info.jsx:1437
#: src/components/account-info.jsx:1445
msgid "Muted @{username} for {0}"
msgstr "Silenciou @{username} por {0}"
#: src/components/account-info.jsx:1449
#: src/components/account-info.jsx:1457
msgid "Unable to mute @{username}"
msgstr "Impossível silenciar @{username}"
#: src/components/account-info.jsx:1470
#: src/components/account-info.jsx:1478
msgid "Remove <0>@{username}</0> from followers?"
msgstr "Eliminar <0>@{username}</0> dos seguidores?"
#: src/components/account-info.jsx:1490
#: src/components/account-info.jsx:1498
msgid "@{username} removed from followers"
msgstr "@{username} eliminado dos seguidores"
#: src/components/account-info.jsx:1502
#: src/components/account-info.jsx:1510
msgid "Remove follower…"
msgstr "Eliminar seguidor…"
#: src/components/account-info.jsx:1513
#: src/components/account-info.jsx:1521
msgid "Block <0>@{username}</0>?"
msgstr "Bloquear <0>@{username}</0>?"
#: src/components/account-info.jsx:1537
#: src/components/account-info.jsx:1545
msgid "Unblocked @{username}"
msgstr "Desbloqueou @{username}"
#: src/components/account-info.jsx:1545
#: src/components/account-info.jsx:1553
msgid "Blocked @{username}"
msgstr "Bloqueou @{username}"
#: src/components/account-info.jsx:1553
#: src/components/account-info.jsx:1561
msgid "Unable to unblock @{username}"
msgstr "Impossível desbloquear @{username}"
#: src/components/account-info.jsx:1555
#: src/components/account-info.jsx:1563
msgid "Unable to block @{username}"
msgstr "Impossível bloquear @{username}"
#: src/components/account-info.jsx:1565
#: src/components/account-info.jsx:1573
msgid "Unblock <0>@{username}</0>"
msgstr "Desbloquear <0>@{username}</0>"
#: src/components/account-info.jsx:1574
#: src/components/account-info.jsx:1582
msgid "Block <0>@{username}</0>…"
msgstr "Bloquear <0>@{username}</0>…"
#: src/components/account-info.jsx:1591
#: src/components/account-info.jsx:1599
msgid "Report <0>@{username}</0>…"
msgstr "Reportar <0>@{username}</0>…"
#: src/components/account-info.jsx:1611
#: src/components/account-info.jsx:2145
#: src/components/account-info.jsx:1619
#: src/components/account-info.jsx:2153
msgid "Edit profile"
msgstr "Editar perfil"
#: src/components/account-info.jsx:1647
#: src/components/account-info.jsx:1655
msgid "Withdraw follow request?"
msgstr "Eliminar pedido de seguir?"
#. placeholder {1}: info.acct || info.username
#: src/components/account-info.jsx:1648
#: src/components/account-info.jsx:1656
msgid "Unfollow @{1}?"
msgstr "Deixar de seguir @{1}?"
#: src/components/account-info.jsx:1699
#: src/components/account-info.jsx:1707
msgid "Unfollow…"
msgstr "Deixar de seguir…"
#: src/components/account-info.jsx:1708
#: src/components/account-info.jsx:1716
msgid "Withdraw…"
msgstr "Eliminar…"
#: src/components/account-info.jsx:1715
#: src/components/account-info.jsx:1719
#: src/components/account-info.jsx:1723
#: src/components/account-info.jsx:1727
#: src/pages/hashtag.jsx:262
msgid "Follow"
msgstr "Seguir"
#: src/components/account-info.jsx:1831
#: src/components/account-info.jsx:1886
#: src/components/account-info.jsx:2020
#: src/components/account-info.jsx:2140
#: src/components/account-info.jsx:1839
#: src/components/account-info.jsx:1894
#: src/components/account-info.jsx:2028
#: src/components/account-info.jsx:2148
#: src/components/account-sheet.jsx:38
#: src/components/compose.jsx:881
#: src/components/compose.jsx:2728
@ -441,9 +441,9 @@ msgstr "Seguir"
#: src/components/shortcuts-settings.jsx:230
#: src/components/shortcuts-settings.jsx:583
#: src/components/shortcuts-settings.jsx:783
#: src/components/status.jsx:3020
#: src/components/status.jsx:3260
#: src/components/status.jsx:3760
#: src/components/status.jsx:3022
#: src/components/status.jsx:3262
#: src/components/status.jsx:3762
#: src/pages/accounts.jsx:37
#: src/pages/catchup.jsx:1581
#: src/pages/filters.jsx:224
@ -455,85 +455,85 @@ msgstr "Seguir"
msgid "Close"
msgstr "Fechar"
#: src/components/account-info.jsx:1836
#: src/components/account-info.jsx:1844
msgid "Translated Bio"
msgstr "Biografia traduzida"
#: src/components/account-info.jsx:1931
#: src/components/account-info.jsx:1939
msgid "Unable to remove from list."
msgstr "Impossível remover da lista."
#: src/components/account-info.jsx:1932
#: src/components/account-info.jsx:1940
msgid "Unable to add to list."
msgstr "Impossível adicionar na lista."
#: src/components/account-info.jsx:1951
#: src/components/account-info.jsx:1959
#: src/pages/lists.jsx:105
msgid "Unable to load lists."
msgstr "Impossível carregar listas."
#: src/components/account-info.jsx:1955
#: src/components/account-info.jsx:1963
msgid "No lists."
msgstr "Sem listas."
#: src/components/account-info.jsx:1966
#: src/components/account-info.jsx:1974
#: src/components/list-add-edit.jsx:40
#: src/pages/lists.jsx:59
msgid "New list"
msgstr "Nova lista"
#. placeholder {0}: account?.username || account?.acct
#: src/components/account-info.jsx:2025
#: src/components/account-info.jsx:2033
msgid "Private note about <0>@{0}</0>"
msgstr "Nota privada sobre <0>@{0}</0>"
#: src/components/account-info.jsx:2055
#: src/components/account-info.jsx:2063
msgid "Unable to update private note."
msgstr "Impossível atualizar nota privada."
#: src/components/account-info.jsx:2078
#: src/components/account-info.jsx:2376
#: src/components/account-info.jsx:2086
#: src/components/account-info.jsx:2384
msgid "Cancel"
msgstr "Cancelar"
#: src/components/account-info.jsx:2083
#: src/components/account-info.jsx:2091
msgid "Save & close"
msgstr "Guardar e fechar"
#: src/components/account-info.jsx:2200
#: src/components/account-info.jsx:2208
msgid "Unable to update profile."
msgstr "Impossível atualizar perfil."
#: src/components/account-info.jsx:2207
#: src/components/account-info.jsx:2215
msgid "Header picture"
msgstr "Foto de fundo"
#: src/components/account-info.jsx:2259
#: src/components/account-info.jsx:2267
msgid "Profile picture"
msgstr "Foto de perfil"
#: src/components/account-info.jsx:2311
#: src/components/account-info.jsx:2319
#: src/components/list-add-edit.jsx:105
msgid "Name"
msgstr "Nome"
#: src/components/account-info.jsx:2324
#: src/components/account-info.jsx:2332
msgid "Bio"
msgstr "Biografia"
#: src/components/account-info.jsx:2337
#: src/components/account-info.jsx:2345
msgid "Extra fields"
msgstr "Campos adicionais"
#: src/components/account-info.jsx:2343
#: src/components/account-info.jsx:2351
msgid "Label"
msgstr "Etiqueta"
#: src/components/account-info.jsx:2346
#: src/components/account-info.jsx:2354
msgid "Content"
msgstr "Conteúdo"
#: src/components/account-info.jsx:2379
#: src/components/account-info.jsx:2387
#: src/components/list-add-edit.jsx:150
#: src/components/shortcuts-settings.jsx:715
#: src/pages/filters.jsx:554
@ -541,11 +541,11 @@ msgstr "Conteúdo"
msgid "Save"
msgstr "Guardar"
#: src/components/account-info.jsx:2433
#: src/components/account-info.jsx:2441
msgid "username"
msgstr "nome de utilizador"
#: src/components/account-info.jsx:2437
#: src/components/account-info.jsx:2445
msgid "server domain name"
msgstr "domínio do servidor"
@ -588,7 +588,7 @@ msgstr "Adicionar ao tópico"
#: src/components/compose.jsx:211
msgid "Take photo or video"
msgstr ""
msgstr "Fazer foto ou vídeo"
#: src/components/compose.jsx:212
msgid "Add media"
@ -760,7 +760,7 @@ msgstr "Programar"
#: src/components/status.jsx:984
#: src/components/status.jsx:1750
#: src/components/status.jsx:1751
#: src/components/status.jsx:2421
#: src/components/status.jsx:2423
msgid "Reply"
msgstr "Responder"
@ -1202,9 +1202,9 @@ msgstr "<0>l</0> ou <1>f</1>"
#: src/components/keyboard-shortcuts-help.jsx:175
#: src/components/status.jsx:992
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2472
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
#: src/components/status.jsx:2474
msgid "Boost"
msgstr "Impulsionar"
@ -1214,8 +1214,8 @@ msgstr "<0>Shift</0> + <1>b</1>"
#: src/components/keyboard-shortcuts-help.jsx:183
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2497
#: src/components/status.jsx:2498
#: src/components/status.jsx:2499
msgid "Bookmark"
msgstr "Marcar como favorito"
@ -1319,9 +1319,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr "Filtrado: {filterTitleStr}"
#: src/components/media-post.jsx:134
#: src/components/status.jsx:3590
#: src/components/status.jsx:3686
#: src/components/status.jsx:3764
#: src/components/status.jsx:3592
#: src/components/status.jsx:3688
#: src/components/status.jsx:3766
#: src/components/timeline.jsx:978
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1877
@ -2201,13 +2201,13 @@ msgstr "Publicação antiga (<0>{0}</0>)"
#: src/components/status.jsx:992
#: src/components/status.jsx:1032
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
msgid "Unboost"
msgstr "Remover impulso"
#: src/components/status.jsx:1008
#: src/components/status.jsx:2463
#: src/components/status.jsx:2465
msgid "Quote"
msgstr "Citar"
@ -2227,20 +2227,20 @@ msgstr "Impulsionar…"
#: src/components/status.jsx:1045
#: src/components/status.jsx:1760
#: src/components/status.jsx:2484
#: src/components/status.jsx:2486
msgid "Unlike"
msgstr "Remover gosto"
#: src/components/status.jsx:1046
#: src/components/status.jsx:1760
#: src/components/status.jsx:1761
#: src/components/status.jsx:2484
#: src/components/status.jsx:2485
#: src/components/status.jsx:2486
#: src/components/status.jsx:2487
msgid "Like"
msgstr "Gosto"
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2498
msgid "Unbookmark"
msgstr "Eliminar dos favoritos"
@ -2258,7 +2258,7 @@ msgid "Edited: {editedDateText}"
msgstr "Editado: {editedDateText}"
#: src/components/status.jsx:1254
#: src/components/status.jsx:3265
#: src/components/status.jsx:3267
msgid "Embed post"
msgstr "Incorporar publicação"
@ -2338,17 +2338,17 @@ msgstr "Impulsionou a publicação de @{7}"
#: src/components/status.jsx:1761
#: src/components/status.jsx:1797
#: src/components/status.jsx:2485
#: src/components/status.jsx:2487
msgid "Liked"
msgstr "Gostado"
#: src/components/status.jsx:1794
#: src/components/status.jsx:2472
#: src/components/status.jsx:2474
msgid "Boosted"
msgstr "Impulsionado"
#: src/components/status.jsx:1804
#: src/components/status.jsx:2497
#: src/components/status.jsx:2499
msgid "Bookmarked"
msgstr "Adicionado aos favoritos"
@ -2385,91 +2385,91 @@ msgstr "Mostrar conteúdo"
msgid "Show media"
msgstr "Mostrar multimédia"
#: src/components/status.jsx:2345
#: src/components/status.jsx:2347
msgid "Edited"
msgstr "Editado"
#: src/components/status.jsx:2422
#: src/components/status.jsx:2424
msgid "Comments"
msgstr "Comentários"
#. More from [Author]
#: src/components/status.jsx:2723
#: src/components/status.jsx:2725
msgid "More from <0/>"
msgstr "Mais de <0/>"
#: src/components/status.jsx:3025
#: src/components/status.jsx:3027
msgid "Edit History"
msgstr "Histórico de edições"
#: src/components/status.jsx:3029
#: src/components/status.jsx:3031
msgid "Failed to load history"
msgstr "Falhou ao carregar histórico"
#: src/components/status.jsx:3034
#: src/components/status.jsx:3036
#: src/pages/annual-report.jsx:45
msgid "Loading…"
msgstr "A carregar…"
#: src/components/status.jsx:3270
#: src/components/status.jsx:3272
msgid "HTML Code"
msgstr "Código HTML"
#: src/components/status.jsx:3287
#: src/components/status.jsx:3289
msgid "HTML code copied"
msgstr "Código HTML copiado"
#: src/components/status.jsx:3290
#: src/components/status.jsx:3292
msgid "Unable to copy HTML code"
msgstr "Impossível copiar código HTML"
#: src/components/status.jsx:3302
#: src/components/status.jsx:3304
msgid "Media attachments:"
msgstr "Anexos de multimédia:"
#: src/components/status.jsx:3324
#: src/components/status.jsx:3326
msgid "Account Emojis:"
msgstr "Emojis da conta:"
#: src/components/status.jsx:3355
#: src/components/status.jsx:3400
#: src/components/status.jsx:3357
#: src/components/status.jsx:3402
msgid "static URL"
msgstr "URL estático"
#: src/components/status.jsx:3369
#: src/components/status.jsx:3371
msgid "Emojis:"
msgstr "Emojis:"
#: src/components/status.jsx:3414
#: src/components/status.jsx:3416
msgid "Notes:"
msgstr "Notas:"
#: src/components/status.jsx:3418
#: src/components/status.jsx:3420
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "Isto é estático, instável e sem guião. Pode precisar para aplicar os seus próprios estilos e editar caso necessário."
#: src/components/status.jsx:3424
#: src/components/status.jsx:3426
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "Votações não são interativas, ela vira uma lista com contador de votos."
#: src/components/status.jsx:3429
#: src/components/status.jsx:3431
msgid "Media attachments can be images, videos, audios or any file types."
msgstr "Anexos de multimédia pode ser imagens, vídeos, áudios, e qualquer tipo de ficheiro."
#: src/components/status.jsx:3435
#: src/components/status.jsx:3437
msgid "Post could be edited or deleted later."
msgstr "Publicações podem ser editadas ou eliminadas depois."
#: src/components/status.jsx:3441
#: src/components/status.jsx:3443
msgid "Preview"
msgstr "Prévia"
#: src/components/status.jsx:3450
#: src/components/status.jsx:3452
msgid "Note: This preview is lightly styled."
msgstr "Nota: Esta prévia tem um estilo levemente padronizado."
#. [Name] [Visibility icon] boosted
#: src/components/status.jsx:3694
#: src/components/status.jsx:3696
msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> impulsionou"

136
src/locales/zh-CN.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: 2025-03-08 01:54\n"
"PO-Revision-Date: 2025-03-15 05:12\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@ -119,8 +119,8 @@ msgstr "嘟文"
#: src/components/status.jsx:1770
#: src/components/status.jsx:1787
#: src/components/status.jsx:1912
#: src/components/status.jsx:2517
#: src/components/status.jsx:2520
#: src/components/status.jsx:2519
#: src/components/status.jsx:2522
#: src/pages/account-statuses.jsx:523
#: src/pages/accounts.jsx:110
#: src/pages/hashtag.jsx:200
@ -311,7 +311,7 @@ msgstr "无法复制链接"
#: src/components/account-info.jsx:1336
#: src/components/shortcuts-settings.jsx:1059
#: src/components/status.jsx:1219
#: src/components/status.jsx:3296
#: src/components/status.jsx:3298
msgid "Copy"
msgstr "复制"
@ -441,9 +441,9 @@ msgstr "关注"
#: src/components/shortcuts-settings.jsx:230
#: src/components/shortcuts-settings.jsx:583
#: src/components/shortcuts-settings.jsx:783
#: src/components/status.jsx:3020
#: src/components/status.jsx:3260
#: src/components/status.jsx:3760
#: src/components/status.jsx:3022
#: src/components/status.jsx:3262
#: src/components/status.jsx:3762
#: src/pages/accounts.jsx:37
#: src/pages/catchup.jsx:1581
#: src/pages/filters.jsx:224
@ -506,11 +506,11 @@ msgstr "无法更新个人资料。"
#: src/components/account-info.jsx:2207
msgid "Header picture"
msgstr ""
msgstr "横幅图片"
#: src/components/account-info.jsx:2259
msgid "Profile picture"
msgstr ""
msgstr "头像"
#: src/components/account-info.jsx:2311
#: src/components/list-add-edit.jsx:105
@ -580,15 +580,15 @@ msgstr "发嘟"
#: src/pages/scheduled-posts.jsx:31
#: src/pages/scheduled-posts.jsx:76
msgid "Scheduled Posts"
msgstr ""
msgstr "定时嘟文"
#: src/components/compose-button.jsx:175
msgid "Add to thread"
msgstr ""
msgstr "添加到嘟文串"
#: src/components/compose.jsx:211
msgid "Take photo or video"
msgstr ""
msgstr "拍摄"
#: src/components/compose.jsx:212
msgid "Add media"
@ -608,7 +608,7 @@ msgstr "添加投票"
#: src/components/compose.jsx:216
msgid "Schedule post"
msgstr ""
msgstr "设置定时发送"
#: src/components/compose.jsx:415
msgid "You have unsaved changes. Discard this post?"
@ -742,7 +742,7 @@ msgstr "将媒体标记为敏感"
#: src/components/compose.jsx:1405
msgid "Posting on <0/>"
msgstr ""
msgstr "发布于 <0/>"
#: src/components/compose.jsx:1436
#: src/components/compose.jsx:3260
@ -753,14 +753,14 @@ msgstr "添加"
#: src/components/compose.jsx:1662
msgid "Schedule"
msgstr ""
msgstr "定时发嘟"
#: src/components/compose.jsx:1664
#: src/components/keyboard-shortcuts-help.jsx:154
#: src/components/status.jsx:984
#: src/components/status.jsx:1750
#: src/components/status.jsx:1751
#: src/components/status.jsx:2421
#: src/components/status.jsx:2423
msgid "Reply"
msgstr "回复"
@ -1202,9 +1202,9 @@ msgstr "<0>l</0> 或 <1>f</1>"
#: src/components/keyboard-shortcuts-help.jsx:175
#: src/components/status.jsx:992
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2472
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
#: src/components/status.jsx:2474
msgid "Boost"
msgstr "转嘟"
@ -1214,8 +1214,8 @@ msgstr "<0>Shift</0> + <1>b</1>"
#: src/components/keyboard-shortcuts-help.jsx:183
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2497
#: src/components/status.jsx:2498
#: src/components/status.jsx:2499
msgid "Bookmark"
msgstr "收藏"
@ -1319,9 +1319,9 @@ msgid "Filtered: {filterTitleStr}"
msgstr "已过滤: {filterTitleStr}"
#: src/components/media-post.jsx:134
#: src/components/status.jsx:3590
#: src/components/status.jsx:3686
#: src/components/status.jsx:3764
#: src/components/status.jsx:3592
#: src/components/status.jsx:3688
#: src/components/status.jsx:3766
#: src/components/timeline.jsx:978
#: src/pages/catchup.jsx:75
#: src/pages/catchup.jsx:1877
@ -1334,7 +1334,7 @@ msgstr "打开文件"
#: src/components/modals.jsx:75
msgid "Post scheduled"
msgstr ""
msgstr "已设置定时发送"
#: src/components/modals.jsx:76
msgid "Post published. Check it out."
@ -1342,7 +1342,7 @@ msgstr "嘟文已发布。点击查看。"
#: src/components/modals.jsx:78
msgid "Reply scheduled"
msgstr ""
msgstr "已设置定时回复"
#: src/components/modals.jsx:79
msgid "Reply posted. Check it out."
@ -2200,13 +2200,13 @@ msgstr "旧嘟文 (<0>{0}</0>)"
#: src/components/status.jsx:992
#: src/components/status.jsx:1032
#: src/components/status.jsx:2448
#: src/components/status.jsx:2471
#: src/components/status.jsx:2450
#: src/components/status.jsx:2473
msgid "Unboost"
msgstr "取消转嘟"
#: src/components/status.jsx:1008
#: src/components/status.jsx:2463
#: src/components/status.jsx:2465
msgid "Quote"
msgstr "引用"
@ -2226,20 +2226,20 @@ msgstr "转嘟…"
#: src/components/status.jsx:1045
#: src/components/status.jsx:1760
#: src/components/status.jsx:2484
#: src/components/status.jsx:2486
msgid "Unlike"
msgstr "取消喜欢"
#: src/components/status.jsx:1046
#: src/components/status.jsx:1760
#: src/components/status.jsx:1761
#: src/components/status.jsx:2484
#: src/components/status.jsx:2485
#: src/components/status.jsx:2486
#: src/components/status.jsx:2487
msgid "Like"
msgstr "赞"
#: src/components/status.jsx:1055
#: src/components/status.jsx:2496
#: src/components/status.jsx:2498
msgid "Unbookmark"
msgstr "取消收藏"
@ -2257,7 +2257,7 @@ msgid "Edited: {editedDateText}"
msgstr "编辑于: {editedDateText}"
#: src/components/status.jsx:1254
#: src/components/status.jsx:3265
#: src/components/status.jsx:3267
msgid "Embed post"
msgstr "嵌入嘟文"
@ -2337,17 +2337,17 @@ msgstr "已转嘟 @{7} 的嘟文"
#: src/components/status.jsx:1761
#: src/components/status.jsx:1797
#: src/components/status.jsx:2485
#: src/components/status.jsx:2487
msgid "Liked"
msgstr "已点赞"
#: src/components/status.jsx:1794
#: src/components/status.jsx:2472
#: src/components/status.jsx:2474
msgid "Boosted"
msgstr "已转嘟"
#: src/components/status.jsx:1804
#: src/components/status.jsx:2497
#: src/components/status.jsx:2499
msgid "Bookmarked"
msgstr "已收藏"
@ -2384,91 +2384,91 @@ msgstr "显示内容"
msgid "Show media"
msgstr "显示媒体"
#: src/components/status.jsx:2345
#: src/components/status.jsx:2347
msgid "Edited"
msgstr "已编辑"
#: src/components/status.jsx:2422
#: src/components/status.jsx:2424
msgid "Comments"
msgstr "评论"
#. More from [Author]
#: src/components/status.jsx:2723
#: src/components/status.jsx:2725
msgid "More from <0/>"
msgstr "<0/> 的更多内容"
#: src/components/status.jsx:3025
#: src/components/status.jsx:3027
msgid "Edit History"
msgstr "编辑记录"
#: src/components/status.jsx:3029
#: src/components/status.jsx:3031
msgid "Failed to load history"
msgstr "无法加载编辑记录"
#: src/components/status.jsx:3034
#: src/components/status.jsx:3036
#: src/pages/annual-report.jsx:45
msgid "Loading…"
msgstr "正在加载…"
#: src/components/status.jsx:3270
#: src/components/status.jsx:3272
msgid "HTML Code"
msgstr "HTML 代码"
#: src/components/status.jsx:3287
#: src/components/status.jsx:3289
msgid "HTML code copied"
msgstr "已复制 HTML 代码"
#: src/components/status.jsx:3290
#: src/components/status.jsx:3292
msgid "Unable to copy HTML code"
msgstr "无法复制 HTML 代码"
#: src/components/status.jsx:3302
#: src/components/status.jsx:3304
msgid "Media attachments:"
msgstr "媒体附件:"
#: src/components/status.jsx:3324
#: src/components/status.jsx:3326
msgid "Account Emojis:"
msgstr "账户表情:"
#: src/components/status.jsx:3355
#: src/components/status.jsx:3400
#: src/components/status.jsx:3357
#: src/components/status.jsx:3402
msgid "static URL"
msgstr "静态URL"
#: src/components/status.jsx:3369
#: src/components/status.jsx:3371
msgid "Emojis:"
msgstr "表情:"
#: src/components/status.jsx:3414
#: src/components/status.jsx:3416
msgid "Notes:"
msgstr "注意:"
#: src/components/status.jsx:3418
#: src/components/status.jsx:3420
msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed."
msgstr "此代码是静态代码,不包含样式和脚本。你可能需要进行编辑并按需应用自己的样式。"
#: src/components/status.jsx:3424
#: src/components/status.jsx:3426
msgid "Polls are not interactive, becomes a list with vote counts."
msgstr "代码中的投票无法交互,将显示为一个带有投票数的列表。"
#: src/components/status.jsx:3429
#: src/components/status.jsx:3431
msgid "Media attachments can be images, videos, audios or any file types."
msgstr "媒体附件可以是图片、视频、音频或任何文件类型。"
#: src/components/status.jsx:3435
#: src/components/status.jsx:3437
msgid "Post could be edited or deleted later."
msgstr "嘟文可以稍后编辑或删除。"
#: src/components/status.jsx:3441
#: src/components/status.jsx:3443
msgid "Preview"
msgstr "预览"
#: src/components/status.jsx:3450
#: src/components/status.jsx:3452
msgid "Note: This preview is lightly styled."
msgstr "注意: 此预览带有少量额外的样式"
#. [Name] [Visibility icon] boosted
#: src/components/status.jsx:3694
#: src/components/status.jsx:3696
msgid "<0/> <1/> boosted"
msgstr "<0/> <1/> 转嘟了"
@ -3472,42 +3472,42 @@ msgstr "切换到本站时间线"
#: src/pages/scheduled-posts.jsx:108
msgid "No scheduled posts."
msgstr ""
msgstr "暂无定时嘟文。"
#. Scheduled [in 1 day] ([Thu, Feb 27, 6:30:00 PM])
#. placeholder {0}: niceDateTime(scheduledAt, { formatOpts: { weekday: 'short', second: 'numeric', }, })
#: src/pages/scheduled-posts.jsx:205
msgid "Scheduled <0><1/></0> <2>({0})</2>"
msgstr ""
msgstr "将在 <0><1/></0> <2>({0})</2> 发布"
#. Scheduled [in 1 day]
#: src/pages/scheduled-posts.jsx:261
msgid "Scheduled <0><1/></0>"
msgstr ""
msgstr "将在 <0><1/></0> 发布"
#: src/pages/scheduled-posts.jsx:306
msgid "Scheduled post rescheduled"
msgstr ""
msgstr "已修改发布时间"
#: src/pages/scheduled-posts.jsx:313
msgid "Failed to reschedule post"
msgstr ""
msgstr "修改发布时间失败"
#: src/pages/scheduled-posts.jsx:336
msgid "Reschedule"
msgstr ""
msgstr "修改发布时间"
#: src/pages/scheduled-posts.jsx:342
msgid "Delete scheduled post?"
msgstr ""
msgstr "是否删除该定时嘟文?"
#: src/pages/scheduled-posts.jsx:350
msgid "Scheduled post deleted"
msgstr ""
msgstr "已删除该定时嘟文"
#: src/pages/scheduled-posts.jsx:357
msgid "Failed to delete scheduled post"
msgstr ""
msgstr "删除定时嘟文失败"
#: src/pages/search.jsx:50
msgid "Search: {q} (Posts)"

View file

@ -467,7 +467,7 @@ function AccountStatuses() {
const accountInstance = useMemo(() => {
if (!account?.url) return null;
const domain = URL.parse(account.url).hostname;
const domain = URL.parse(account.url)?.hostname;
return domain;
}, [account]);
const sameInstance = instance === accountInstance;

View file

@ -35,6 +35,7 @@ import { oklab2rgb, rgb2oklab } from '../utils/color-utils';
import db from '../utils/db';
import emojifyText from '../utils/emojify-text';
import { isFiltered } from '../utils/filters';
import getDomain from '../utils/get-domain';
import htmlContentLength from '../utils/html-content-length';
import mem from '../utils/mem';
import niceDateTime from '../utils/nice-date-time';
@ -1171,11 +1172,7 @@ function Catchup() {
height,
publishedAt,
} = card;
const domain = punycode.toUnicode(
URL.parse(url)
.hostname.replace(/^www\./, '')
.replace(/\/$/, ''),
);
const domain = getDomain(url);
let accentColor;
if (blurhash) {
const averageColor = getBlurHashAverageColor(blurhash);

View file

@ -607,7 +607,7 @@ function StatusThread({ id, closeLink = '/', instance: propInstance }) {
if (!heroStatus) return;
const { url } = heroStatus;
if (!url) return;
return URL.parse(url).hostname;
return URL.parse(url)?.hostname;
}, [heroStatus]);
const postSameInstance = useMemo(() => {
if (!postInstance) return;

View file

@ -19,6 +19,7 @@ import Timeline from '../components/timeline';
import { api } from '../utils/api';
import { oklab2rgb, rgb2oklab } from '../utils/color-utils';
import { filteredItems } from '../utils/filters';
import getDomain from '../utils/get-domain';
import pmem from '../utils/pmem';
import shortenNumber from '../utils/shorten-number';
import states, { saveStatus } from '../utils/states';
@ -252,11 +253,7 @@ function Trending({ columnMode, ...props }) {
: null;
const isShortTitle = title.length < 30;
const hasAuthor = !!(authorName || author);
const domain = punycode.toUnicode(
URL.parse(url)
.hostname.replace(/^www\./, '')
.replace(/\/$/, ''),
);
const domain = getDomain(url);
let accentColor;
if (blurhash) {
const averageColor = getBlurHashAverageColor(blurhash);

13
src/utils/get-domain.js Normal file
View file

@ -0,0 +1,13 @@
import punycode from 'punycode/';
export default function getDomain(url) {
try {
return punycode.toUnicode(
URL.parse(url)
.hostname.replace(/^www\./, '')
.replace(/\/$/, ''),
);
} catch (e) {
return ''; // just give up
}
}

View file

@ -12,7 +12,9 @@ const statusPostRegexes = [
export function getInstanceStatusObject(url) {
// Regex /:username/:id, where username = @username or @username@domain, id = anything
const { hostname, pathname } = URL.parse(url);
const theURL = URL.parse(url);
if (!theURL) return {};
const { hostname, pathname } = theURL;
// const [, username, domain, id] = pathname.match(statusRegex) || [];
for (const regex of statusPostRegexes) {
const [, id] = pathname.match(regex) || [];