mirror of
https://github.com/cheeaun/phanpy.git
synced 2025-02-02 06:06:41 +01:00
Allow configure referrer policy
This commit is contained in:
parent
2b05784a37
commit
7aa677e6e2
12 changed files with 180 additions and 180 deletions
|
@ -233,6 +233,11 @@ Available variables:
|
||||||
- `PHANPY_DEFAULT_LANG` (optional):
|
- `PHANPY_DEFAULT_LANG` (optional):
|
||||||
- Default language is English (`en`) if not specified.
|
- Default language is English (`en`) if not specified.
|
||||||
- Fallback language after multiple detection methods (`lang` query parameter, `lang` key in `localStorage` and `navigator.language`)
|
- Fallback language after multiple detection methods (`lang` query parameter, `lang` key in `localStorage` and `navigator.language`)
|
||||||
|
- `PHANPY_REFERRER_POLICY` (optional, default: `origin`):
|
||||||
|
- Referrer policy for the site. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy).
|
||||||
|
- This is applied with the `<meta>` tag on the client-side.
|
||||||
|
- The policy can also be set with `Referrer-Policy` header configured on the server-side (not this variable).
|
||||||
|
- Note that since Phanpy uses hash-based URLs, the referrer does not include the hash part.
|
||||||
- `PHANPY_LINGVA_INSTANCES` (optional, space-separated list, default: `lingva.phanpy.social [...hard-coded list of fallback instances]`):
|
- `PHANPY_LINGVA_INSTANCES` (optional, space-separated list, default: `lingva.phanpy.social [...hard-coded list of fallback instances]`):
|
||||||
- Specify a space-separated list of instances. First will be used as default before falling back to the subsequent instances. If there's only 1 instance, means no fallback.
|
- Specify a space-separated list of instances. First will be used as default before falling back to the subsequent instances. If there's only 1 instance, means no fallback.
|
||||||
- May specify a self-hosted Lingva instance, powered by either [lingva-translate](https://github.com/thedaviddelta/lingva-translate) or [lingva-api](https://github.com/cheeaun/lingva-api)
|
- May specify a self-hosted Lingva instance, powered by either [lingva-translate](https://github.com/thedaviddelta/lingva-translate) or [lingva-api](https://github.com/cheeaun/lingva-api)
|
||||||
|
|
|
@ -379,11 +379,7 @@ function AccountInfo({
|
||||||
<Trans>Unable to load account.</Trans>
|
<Trans>Unable to load account.</Trans>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a
|
<a href={isString ? account : url} target="_blank" rel="noopener">
|
||||||
href={isString ? account : url}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Trans>Go to account page</Trans> <Icon icon="external" />
|
<Trans>Go to account page</Trans> <Icon icon="external" />
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -13,12 +13,7 @@ function EmbedModal({ html, url, width, height, onClose = () => {} }) {
|
||||||
<Icon icon="x" alt={t`Close`} />
|
<Icon icon="x" alt={t`Close`} />
|
||||||
</button>
|
</button>
|
||||||
{url && (
|
{url && (
|
||||||
<a
|
<a href={url} target="_blank" rel="noopener" class="button plain">
|
||||||
href={url}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
class="button plain"
|
|
||||||
>
|
|
||||||
<span>
|
<span>
|
||||||
<Trans>Open in new window</Trans>
|
<Trans>Open in new window</Trans>
|
||||||
</span>{' '}
|
</span>{' '}
|
||||||
|
|
|
@ -510,7 +510,7 @@ function Notification({
|
||||||
<a
|
<a
|
||||||
href={`https://${instance}/severed_relationships`}
|
href={`https://${instance}/severed_relationships`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<Trans>
|
<Trans>
|
||||||
Learn more <Icon icon="external" size="s" />
|
Learn more <Icon icon="external" size="s" />
|
||||||
|
@ -526,7 +526,7 @@ function Notification({
|
||||||
<a
|
<a
|
||||||
href={`/disputes/strikes/${moderation_warning.id}`}
|
href={`/disputes/strikes/${moderation_warning.id}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<Trans>
|
<Trans>
|
||||||
Learn more <Icon icon="external" size="s" />
|
Learn more <Icon icon="external" size="s" />
|
||||||
|
@ -550,7 +550,7 @@ function Notification({
|
||||||
<a
|
<a
|
||||||
key={account.id}
|
key={account.id}
|
||||||
href={account.url}
|
href={account.url}
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
class="account-avatar-stack"
|
class="account-avatar-stack"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -654,7 +654,7 @@ function Notification({
|
||||||
<a
|
<a
|
||||||
key={account.id}
|
key={account.id}
|
||||||
href={account.url}
|
href={account.url}
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
class="account-avatar-stack"
|
class="account-avatar-stack"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -2282,7 +2282,7 @@ function Status({
|
||||||
alt={visibilityText[visibility]}
|
alt={visibilityText[visibility]}
|
||||||
/> */}
|
/> */}
|
||||||
<span>{_(visibilityText[visibility])}</span> •{' '}
|
<span>{_(visibilityText[visibility])}</span> •{' '}
|
||||||
<a href={url} target="_blank" rel="noopener noreferrer">
|
<a href={url} target="_blank" rel="noopener">
|
||||||
{
|
{
|
||||||
// within a day
|
// within a day
|
||||||
new Date().getTime() - createdAtDate.getTime() <
|
new Date().getTime() - createdAtDate.getTime() <
|
||||||
|
@ -2820,7 +2820,7 @@ function Card({ card, selfReferential, selfAuthor, instance }) {
|
||||||
<a
|
<a
|
||||||
href={cardStatusURL || url}
|
href={cardStatusURL || url}
|
||||||
target={cardStatusURL ? null : '_blank'}
|
target={cardStatusURL ? null : '_blank'}
|
||||||
rel="nofollow noopener noreferrer"
|
rel="nofollow noopener"
|
||||||
class={`card link ${isPost ? 'card-post' : ''} ${
|
class={`card link ${isPost ? 'card-post' : ''} ${
|
||||||
blurhashImage ? '' : size
|
blurhashImage ? '' : size
|
||||||
}`}
|
}`}
|
||||||
|
@ -2883,7 +2883,7 @@ function Card({ card, selfReferential, selfAuthor, instance }) {
|
||||||
<a
|
<a
|
||||||
href={url}
|
href={url}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="nofollow noopener noreferrer"
|
rel="nofollow noopener"
|
||||||
class="card photo"
|
class="card photo"
|
||||||
onClick={handleClick}
|
onClick={handleClick}
|
||||||
>
|
>
|
||||||
|
@ -2930,7 +2930,7 @@ function Card({ card, selfReferential, selfAuthor, instance }) {
|
||||||
<a
|
<a
|
||||||
href={cardStatusURL || url}
|
href={cardStatusURL || url}
|
||||||
target={cardStatusURL ? null : '_blank'}
|
target={cardStatusURL ? null : '_blank'}
|
||||||
rel="nofollow noopener noreferrer"
|
rel="nofollow noopener"
|
||||||
class={`card link ${isPost ? 'card-post' : ''} no-image`}
|
class={`card link ${isPost ? 'card-post' : ''} no-image`}
|
||||||
lang={language}
|
lang={language}
|
||||||
dir="auto"
|
dir="auto"
|
||||||
|
|
274
src/locales/en.po
generated
274
src/locales/en.po
generated
|
@ -28,12 +28,12 @@ msgid "Last posted: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:162
|
#: src/components/account-block.jsx:162
|
||||||
#: src/components/account-info.jsx:636
|
#: src/components/account-info.jsx:632
|
||||||
msgid "Automated"
|
msgid "Automated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:169
|
#: src/components/account-block.jsx:169
|
||||||
#: src/components/account-info.jsx:641
|
#: src/components/account-info.jsx:637
|
||||||
#: src/components/status.jsx:514
|
#: src/components/status.jsx:514
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -43,17 +43,17 @@ msgid "Mutual"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:183
|
#: src/components/account-block.jsx:183
|
||||||
#: src/components/account-info.jsx:1682
|
#: src/components/account-info.jsx:1678
|
||||||
msgid "Requested"
|
msgid "Requested"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:187
|
#: src/components/account-block.jsx:187
|
||||||
#: src/components/account-info.jsx:1673
|
#: src/components/account-info.jsx:1669
|
||||||
msgid "Following"
|
msgid "Following"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:191
|
#: src/components/account-block.jsx:191
|
||||||
#: src/components/account-info.jsx:1064
|
#: src/components/account-info.jsx:1060
|
||||||
msgid "Follows you"
|
msgid "Follows you"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,14 +62,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-block.jsx:208
|
#: src/components/account-block.jsx:208
|
||||||
#: src/components/account-info.jsx:682
|
#: src/components/account-info.jsx:678
|
||||||
msgid "Verified"
|
msgid "Verified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
|
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
|
||||||
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
|
#. placeholder {0}: niceDateTime(createdAt, { hideTime: true, })
|
||||||
#: src/components/account-block.jsx:223
|
#: src/components/account-block.jsx:223
|
||||||
#: src/components/account-info.jsx:782
|
#: src/components/account-info.jsx:778
|
||||||
msgid "Joined <0>{0}</0>"
|
msgid "Joined <0>{0}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -81,33 +81,33 @@ msgstr ""
|
||||||
msgid "Unable to load account."
|
msgid "Unable to load account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:387
|
#: src/components/account-info.jsx:383
|
||||||
msgid "Go to account page"
|
msgid "Go to account page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:415
|
#: src/components/account-info.jsx:411
|
||||||
#: src/components/account-info.jsx:704
|
#: src/components/account-info.jsx:700
|
||||||
#: src/components/account-info.jsx:734
|
#: src/components/account-info.jsx:730
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. js-lingui-explicit-id
|
#. js-lingui-explicit-id
|
||||||
#: src/components/account-info.jsx:418
|
#: src/components/account-info.jsx:414
|
||||||
#: src/components/account-info.jsx:744
|
#: src/components/account-info.jsx:740
|
||||||
#: src/components/account-info.jsx:761
|
#: src/components/account-info.jsx:757
|
||||||
msgid "following.stats"
|
msgid "following.stats"
|
||||||
msgstr "Following"
|
msgstr "Following"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:421
|
#: src/components/account-info.jsx:417
|
||||||
#: src/components/account-info.jsx:778
|
#: src/components/account-info.jsx:774
|
||||||
#: src/pages/account-statuses.jsx:483
|
#: src/pages/account-statuses.jsx:483
|
||||||
#: src/pages/search.jsx:328
|
#: src/pages/search.jsx:328
|
||||||
#: src/pages/search.jsx:475
|
#: src/pages/search.jsx:475
|
||||||
msgid "Posts"
|
msgid "Posts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:429
|
#: src/components/account-info.jsx:425
|
||||||
#: src/components/account-info.jsx:1120
|
#: src/components/account-info.jsx:1116
|
||||||
#: src/components/compose.jsx:2624
|
#: src/components/compose.jsx:2624
|
||||||
#: src/components/media-alt-modal.jsx:46
|
#: src/components/media-alt-modal.jsx:46
|
||||||
#: src/components/media-modal.jsx:358
|
#: src/components/media-modal.jsx:358
|
||||||
|
@ -126,50 +126,50 @@ msgstr ""
|
||||||
msgid "More"
|
msgid "More"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:441
|
#: src/components/account-info.jsx:437
|
||||||
msgid "<0>{displayName}</0> has indicated that their new account is now:"
|
msgid "<0>{displayName}</0> has indicated that their new account is now:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:586
|
#: src/components/account-info.jsx:582
|
||||||
#: src/components/account-info.jsx:1278
|
#: src/components/account-info.jsx:1274
|
||||||
msgid "Handle copied"
|
msgid "Handle copied"
|
||||||
msgstr "Handle copied"
|
msgstr "Handle copied"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:589
|
#: src/components/account-info.jsx:585
|
||||||
#: src/components/account-info.jsx:1281
|
#: src/components/account-info.jsx:1277
|
||||||
msgid "Unable to copy handle"
|
msgid "Unable to copy handle"
|
||||||
msgstr "Unable to copy handle"
|
msgstr "Unable to copy handle"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:595
|
#: src/components/account-info.jsx:591
|
||||||
#: src/components/account-info.jsx:1287
|
#: src/components/account-info.jsx:1283
|
||||||
msgid "Copy handle"
|
msgid "Copy handle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:601
|
#: src/components/account-info.jsx:597
|
||||||
msgid "Go to original profile page"
|
msgid "Go to original profile page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:608
|
#: src/components/account-info.jsx:604
|
||||||
msgid "View profile image"
|
msgid "View profile image"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:614
|
#: src/components/account-info.jsx:610
|
||||||
msgid "View profile header"
|
msgid "View profile header"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:631
|
#: src/components/account-info.jsx:627
|
||||||
msgid "In Memoriam"
|
msgid "In Memoriam"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:711
|
#: src/components/account-info.jsx:707
|
||||||
#: src/components/account-info.jsx:752
|
#: src/components/account-info.jsx:748
|
||||||
msgid "This user has chosen to not make this information available."
|
msgid "This user has chosen to not make this information available."
|
||||||
msgstr "This user has chosen to not make this information available."
|
msgstr "This user has chosen to not make this information available."
|
||||||
|
|
||||||
#. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
|
#. 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 {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', })
|
||||||
#. placeholder {2}: ( postingStats.boosts / 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:807
|
#: src/components/account-info.jsx:803
|
||||||
msgid "{0} original posts, {1} replies, {2} boosts"
|
msgid "{0} original posts, {1} replies, {2} boosts"
|
||||||
msgstr "{0} original posts, {1} replies, {2} boosts"
|
msgstr "{0} original posts, {1} replies, {2} boosts"
|
||||||
|
|
||||||
|
@ -180,22 +180,22 @@ msgstr "{0} original posts, {1} replies, {2} boosts"
|
||||||
#. placeholder {4}: postingStats.total
|
#. placeholder {4}: postingStats.total
|
||||||
#. placeholder {5}: postingStats.total
|
#. placeholder {5}: postingStats.total
|
||||||
#. placeholder {6}: postingStats.daysSinceLastPost
|
#. placeholder {6}: postingStats.daysSinceLastPost
|
||||||
#: src/components/account-info.jsx:823
|
#: src/components/account-info.jsx:819
|
||||||
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}}}}"
|
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 ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: postingStats.total
|
#. placeholder {0}: postingStats.total
|
||||||
#. placeholder {1}: postingStats.total
|
#. placeholder {1}: postingStats.total
|
||||||
#: src/components/account-info.jsx:836
|
#: src/components/account-info.jsx:832
|
||||||
msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}"
|
msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:860
|
#: src/components/account-info.jsx:856
|
||||||
#: src/pages/catchup.jsx:70
|
#: src/pages/catchup.jsx:70
|
||||||
msgid "Original"
|
msgid "Original"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:864
|
#: src/components/account-info.jsx:860
|
||||||
#: src/components/status.jsx:2268
|
#: src/components/status.jsx:2268
|
||||||
#: src/pages/catchup.jsx:71
|
#: src/pages/catchup.jsx:71
|
||||||
#: src/pages/catchup.jsx:1445
|
#: src/pages/catchup.jsx:1445
|
||||||
|
@ -205,218 +205,218 @@ msgstr ""
|
||||||
msgid "Replies"
|
msgid "Replies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:868
|
#: src/components/account-info.jsx:864
|
||||||
#: src/pages/catchup.jsx:72
|
#: src/pages/catchup.jsx:72
|
||||||
#: src/pages/catchup.jsx:1447
|
#: src/pages/catchup.jsx:1447
|
||||||
#: src/pages/catchup.jsx:2070
|
#: src/pages/catchup.jsx:2070
|
||||||
#: src/pages/settings.jsx:1155
|
#: src/pages/settings.jsx:1151
|
||||||
msgid "Boosts"
|
msgid "Boosts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:874
|
#: src/components/account-info.jsx:870
|
||||||
msgid "Post stats unavailable."
|
msgid "Post stats unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:905
|
#: src/components/account-info.jsx:901
|
||||||
msgid "View post stats"
|
msgid "View post stats"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, })
|
#. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, })
|
||||||
#: src/components/account-info.jsx:1068
|
#: src/components/account-info.jsx:1064
|
||||||
msgid "Last post: <0>{0}</0>"
|
msgid "Last post: <0>{0}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1082
|
#: src/components/account-info.jsx:1078
|
||||||
msgid "Muted"
|
msgid "Muted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1087
|
#: src/components/account-info.jsx:1083
|
||||||
msgid "Blocked"
|
msgid "Blocked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1096
|
#: src/components/account-info.jsx:1092
|
||||||
msgid "Private note"
|
msgid "Private note"
|
||||||
msgstr "Private note"
|
msgstr "Private note"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1153
|
#: src/components/account-info.jsx:1149
|
||||||
msgid "Mention <0>@{username}</0>"
|
msgid "Mention <0>@{username}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1165
|
#: src/components/account-info.jsx:1161
|
||||||
msgid "Translate bio"
|
msgid "Translate bio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1176
|
#: src/components/account-info.jsx:1172
|
||||||
msgid "Edit private note"
|
msgid "Edit private note"
|
||||||
msgstr "Edit private note"
|
msgstr "Edit private note"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1176
|
#: src/components/account-info.jsx:1172
|
||||||
msgid "Add private note"
|
msgid "Add private note"
|
||||||
msgstr "Add private note"
|
msgstr "Add private note"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1196
|
#: src/components/account-info.jsx:1192
|
||||||
msgid "Notifications enabled for @{username}'s posts."
|
msgid "Notifications enabled for @{username}'s posts."
|
||||||
msgstr "Notifications enabled for @{username}'s posts."
|
msgstr "Notifications enabled for @{username}'s posts."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1197
|
#: src/components/account-info.jsx:1193
|
||||||
msgid " Notifications disabled for @{username}'s posts."
|
msgid " Notifications disabled for @{username}'s posts."
|
||||||
msgstr " Notifications disabled for @{username}'s posts."
|
msgstr " Notifications disabled for @{username}'s posts."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1209
|
#: src/components/account-info.jsx:1205
|
||||||
msgid "Disable notifications"
|
msgid "Disable notifications"
|
||||||
msgstr "Disable notifications"
|
msgstr "Disable notifications"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1210
|
#: src/components/account-info.jsx:1206
|
||||||
msgid "Enable notifications"
|
msgid "Enable notifications"
|
||||||
msgstr "Enable notifications"
|
msgstr "Enable notifications"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1227
|
#: src/components/account-info.jsx:1223
|
||||||
msgid "Boosts from @{username} enabled."
|
msgid "Boosts from @{username} enabled."
|
||||||
msgstr "Boosts from @{username} enabled."
|
msgstr "Boosts from @{username} enabled."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1228
|
#: src/components/account-info.jsx:1224
|
||||||
msgid "Boosts from @{username} disabled."
|
msgid "Boosts from @{username} disabled."
|
||||||
msgstr "Boosts from @{username} disabled."
|
msgstr "Boosts from @{username} disabled."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1239
|
#: src/components/account-info.jsx:1235
|
||||||
msgid "Disable boosts"
|
msgid "Disable boosts"
|
||||||
msgstr "Disable boosts"
|
msgstr "Disable boosts"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1239
|
#: src/components/account-info.jsx:1235
|
||||||
msgid "Enable boosts"
|
msgid "Enable boosts"
|
||||||
msgstr "Enable boosts"
|
msgstr "Enable boosts"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1255
|
#: src/components/account-info.jsx:1251
|
||||||
#: src/components/account-info.jsx:1265
|
#: src/components/account-info.jsx:1261
|
||||||
#: src/components/account-info.jsx:1868
|
#: src/components/account-info.jsx:1864
|
||||||
msgid "Add/Remove from Lists"
|
msgid "Add/Remove from Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1304
|
#: src/components/account-info.jsx:1300
|
||||||
#: src/components/status.jsx:1177
|
#: src/components/status.jsx:1177
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1307
|
#: src/components/account-info.jsx:1303
|
||||||
#: src/components/status.jsx:1180
|
#: src/components/status.jsx:1180
|
||||||
msgid "Unable to copy link"
|
msgid "Unable to copy link"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1313
|
#: src/components/account-info.jsx:1309
|
||||||
#: src/components/shortcuts-settings.jsx:1059
|
#: src/components/shortcuts-settings.jsx:1059
|
||||||
#: src/components/status.jsx:1186
|
#: src/components/status.jsx:1186
|
||||||
#: src/components/status.jsx:3269
|
#: src/components/status.jsx:3269
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1328
|
#: src/components/account-info.jsx:1324
|
||||||
#: src/components/shortcuts-settings.jsx:1077
|
#: src/components/shortcuts-settings.jsx:1077
|
||||||
#: src/components/status.jsx:1202
|
#: src/components/status.jsx:1202
|
||||||
msgid "Sharing doesn't seem to work."
|
msgid "Sharing doesn't seem to work."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1334
|
#: src/components/account-info.jsx:1330
|
||||||
#: src/components/status.jsx:1208
|
#: src/components/status.jsx:1208
|
||||||
msgid "Share…"
|
msgid "Share…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1354
|
#: src/components/account-info.jsx:1350
|
||||||
msgid "Unmuted @{username}"
|
msgid "Unmuted @{username}"
|
||||||
msgstr "Unmuted @{username}"
|
msgstr "Unmuted @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1366
|
#: src/components/account-info.jsx:1362
|
||||||
msgid "Unmute <0>@{username}</0>"
|
msgid "Unmute <0>@{username}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1382
|
#: src/components/account-info.jsx:1378
|
||||||
msgid "Mute <0>@{username}</0>…"
|
msgid "Mute <0>@{username}</0>…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration])
|
#. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration])
|
||||||
#: src/components/account-info.jsx:1414
|
#: src/components/account-info.jsx:1410
|
||||||
msgid "Muted @{username} for {0}"
|
msgid "Muted @{username} for {0}"
|
||||||
msgstr "Muted @{username} for {0}"
|
msgstr "Muted @{username} for {0}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1426
|
#: src/components/account-info.jsx:1422
|
||||||
msgid "Unable to mute @{username}"
|
msgid "Unable to mute @{username}"
|
||||||
msgstr "Unable to mute @{username}"
|
msgstr "Unable to mute @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1447
|
#: src/components/account-info.jsx:1443
|
||||||
msgid "Remove <0>@{username}</0> from followers?"
|
msgid "Remove <0>@{username}</0> from followers?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1467
|
#: src/components/account-info.jsx:1463
|
||||||
msgid "@{username} removed from followers"
|
msgid "@{username} removed from followers"
|
||||||
msgstr "@{username} removed from followers"
|
msgstr "@{username} removed from followers"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1479
|
#: src/components/account-info.jsx:1475
|
||||||
msgid "Remove follower…"
|
msgid "Remove follower…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1490
|
#: src/components/account-info.jsx:1486
|
||||||
msgid "Block <0>@{username}</0>?"
|
msgid "Block <0>@{username}</0>?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1514
|
#: src/components/account-info.jsx:1510
|
||||||
msgid "Unblocked @{username}"
|
msgid "Unblocked @{username}"
|
||||||
msgstr "Unblocked @{username}"
|
msgstr "Unblocked @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1522
|
#: src/components/account-info.jsx:1518
|
||||||
msgid "Blocked @{username}"
|
msgid "Blocked @{username}"
|
||||||
msgstr "Blocked @{username}"
|
msgstr "Blocked @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1530
|
#: src/components/account-info.jsx:1526
|
||||||
msgid "Unable to unblock @{username}"
|
msgid "Unable to unblock @{username}"
|
||||||
msgstr "Unable to unblock @{username}"
|
msgstr "Unable to unblock @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1532
|
#: src/components/account-info.jsx:1528
|
||||||
msgid "Unable to block @{username}"
|
msgid "Unable to block @{username}"
|
||||||
msgstr "Unable to block @{username}"
|
msgstr "Unable to block @{username}"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1542
|
#: src/components/account-info.jsx:1538
|
||||||
msgid "Unblock <0>@{username}</0>"
|
msgid "Unblock <0>@{username}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1551
|
#: src/components/account-info.jsx:1547
|
||||||
msgid "Block <0>@{username}</0>…"
|
msgid "Block <0>@{username}</0>…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1568
|
#: src/components/account-info.jsx:1564
|
||||||
msgid "Report <0>@{username}</0>…"
|
msgid "Report <0>@{username}</0>…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1588
|
#: src/components/account-info.jsx:1584
|
||||||
#: src/components/account-info.jsx:2103
|
#: src/components/account-info.jsx:2099
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1624
|
#: src/components/account-info.jsx:1620
|
||||||
msgid "Withdraw follow request?"
|
msgid "Withdraw follow request?"
|
||||||
msgstr "Withdraw follow request?"
|
msgstr "Withdraw follow request?"
|
||||||
|
|
||||||
#. placeholder {1}: info.acct || info.username
|
#. placeholder {1}: info.acct || info.username
|
||||||
#: src/components/account-info.jsx:1625
|
#: src/components/account-info.jsx:1621
|
||||||
msgid "Unfollow @{1}?"
|
msgid "Unfollow @{1}?"
|
||||||
msgstr "Unfollow @{1}?"
|
msgstr "Unfollow @{1}?"
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1676
|
#: src/components/account-info.jsx:1672
|
||||||
msgid "Unfollow…"
|
msgid "Unfollow…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1685
|
#: src/components/account-info.jsx:1681
|
||||||
msgid "Withdraw…"
|
msgid "Withdraw…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/account-info.jsx:1688
|
||||||
#: src/components/account-info.jsx:1692
|
#: src/components/account-info.jsx:1692
|
||||||
#: src/components/account-info.jsx:1696
|
|
||||||
#: src/pages/hashtag.jsx:262
|
#: src/pages/hashtag.jsx:262
|
||||||
msgid "Follow"
|
msgid "Follow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1808
|
#: src/components/account-info.jsx:1804
|
||||||
#: src/components/account-info.jsx:1863
|
#: src/components/account-info.jsx:1859
|
||||||
#: src/components/account-info.jsx:1997
|
#: src/components/account-info.jsx:1993
|
||||||
#: src/components/account-info.jsx:2098
|
#: src/components/account-info.jsx:2094
|
||||||
#: src/components/account-sheet.jsx:38
|
#: src/components/account-sheet.jsx:38
|
||||||
#: src/components/compose.jsx:859
|
#: src/components/compose.jsx:859
|
||||||
#: src/components/compose.jsx:2580
|
#: src/components/compose.jsx:2580
|
||||||
|
@ -448,77 +448,77 @@ msgstr ""
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1813
|
#: src/components/account-info.jsx:1809
|
||||||
msgid "Translated Bio"
|
msgid "Translated Bio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1908
|
#: src/components/account-info.jsx:1904
|
||||||
msgid "Unable to remove from list."
|
msgid "Unable to remove from list."
|
||||||
msgstr "Unable to remove from list."
|
msgstr "Unable to remove from list."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1909
|
#: src/components/account-info.jsx:1905
|
||||||
msgid "Unable to add to list."
|
msgid "Unable to add to list."
|
||||||
msgstr "Unable to add to list."
|
msgstr "Unable to add to list."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1928
|
#: src/components/account-info.jsx:1924
|
||||||
#: src/pages/lists.jsx:105
|
#: src/pages/lists.jsx:105
|
||||||
msgid "Unable to load lists."
|
msgid "Unable to load lists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1932
|
#: src/components/account-info.jsx:1928
|
||||||
msgid "No lists."
|
msgid "No lists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:1943
|
#: src/components/account-info.jsx:1939
|
||||||
#: src/components/list-add-edit.jsx:40
|
#: src/components/list-add-edit.jsx:40
|
||||||
#: src/pages/lists.jsx:59
|
#: src/pages/lists.jsx:59
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: account?.username || account?.acct
|
#. placeholder {0}: account?.username || account?.acct
|
||||||
#: src/components/account-info.jsx:2002
|
#: src/components/account-info.jsx:1998
|
||||||
msgid "Private note about <0>@{0}</0>"
|
msgid "Private note about <0>@{0}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2032
|
#: src/components/account-info.jsx:2028
|
||||||
msgid "Unable to update private note."
|
msgid "Unable to update private note."
|
||||||
msgstr "Unable to update private note."
|
msgstr "Unable to update private note."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2055
|
#: src/components/account-info.jsx:2051
|
||||||
#: src/components/account-info.jsx:2226
|
#: src/components/account-info.jsx:2222
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2060
|
#: src/components/account-info.jsx:2056
|
||||||
msgid "Save & close"
|
msgid "Save & close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2154
|
#: src/components/account-info.jsx:2150
|
||||||
msgid "Unable to update profile."
|
msgid "Unable to update profile."
|
||||||
msgstr "Unable to update profile."
|
msgstr "Unable to update profile."
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2161
|
#: src/components/account-info.jsx:2157
|
||||||
#: src/components/list-add-edit.jsx:105
|
#: src/components/list-add-edit.jsx:105
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2174
|
#: src/components/account-info.jsx:2170
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2187
|
#: src/components/account-info.jsx:2183
|
||||||
msgid "Extra fields"
|
msgid "Extra fields"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2193
|
#: src/components/account-info.jsx:2189
|
||||||
msgid "Label"
|
msgid "Label"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2196
|
#: src/components/account-info.jsx:2192
|
||||||
msgid "Content"
|
msgid "Content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2229
|
#: src/components/account-info.jsx:2225
|
||||||
#: src/components/list-add-edit.jsx:150
|
#: src/components/list-add-edit.jsx:150
|
||||||
#: src/components/shortcuts-settings.jsx:715
|
#: src/components/shortcuts-settings.jsx:715
|
||||||
#: src/pages/filters.jsx:554
|
#: src/pages/filters.jsx:554
|
||||||
|
@ -526,11 +526,11 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2283
|
#: src/components/account-info.jsx:2279
|
||||||
msgid "username"
|
msgid "username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/account-info.jsx:2287
|
#: src/components/account-info.jsx:2283
|
||||||
msgid "server domain name"
|
msgid "server domain name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -984,7 +984,7 @@ msgstr ""
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/embed-modal.jsx:23
|
#: src/components/embed-modal.jsx:18
|
||||||
msgid "Open in new window"
|
msgid "Open in new window"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1327,7 +1327,7 @@ msgstr ""
|
||||||
#: src/pages/home.jsx:225
|
#: src/pages/home.jsx:225
|
||||||
#: src/pages/mentions.jsx:21
|
#: src/pages/mentions.jsx:21
|
||||||
#: src/pages/mentions.jsx:168
|
#: src/pages/mentions.jsx:168
|
||||||
#: src/pages/settings.jsx:1147
|
#: src/pages/settings.jsx:1143
|
||||||
#: src/pages/trending.jsx:382
|
#: src/pages/trending.jsx:382
|
||||||
msgid "Mentions"
|
msgid "Mentions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1366,7 +1366,7 @@ msgstr ""
|
||||||
#: src/pages/catchup.jsx:2064
|
#: src/pages/catchup.jsx:2064
|
||||||
#: src/pages/favourites.jsx:12
|
#: src/pages/favourites.jsx:12
|
||||||
#: src/pages/favourites.jsx:24
|
#: src/pages/favourites.jsx:24
|
||||||
#: src/pages/settings.jsx:1151
|
#: src/pages/settings.jsx:1147
|
||||||
msgid "Likes"
|
msgid "Likes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2417,7 +2417,7 @@ msgid "<0/> <1/> boosted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/timeline.jsx:455
|
#: src/components/timeline.jsx:455
|
||||||
#: src/pages/settings.jsx:1175
|
#: src/pages/settings.jsx:1171
|
||||||
msgid "New posts"
|
msgid "New posts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3291,7 +3291,7 @@ msgid "{0, plural, one {Announcement} other {Announcements}}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/notifications.jsx:654
|
#: src/pages/notifications.jsx:654
|
||||||
#: src/pages/settings.jsx:1163
|
#: src/pages/settings.jsx:1159
|
||||||
msgid "Follow requests"
|
msgid "Follow requests"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3634,79 +3634,79 @@ msgstr ""
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr "Donate"
|
msgstr "Donate"
|
||||||
|
|
||||||
#: src/pages/settings.jsx:793
|
#: src/pages/settings.jsx:789
|
||||||
msgid "Privacy Policy"
|
msgid "Privacy Policy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: WEBSITE.replace(/https?:\/\//g, '').replace(/\/$/, '')
|
#. placeholder {0}: WEBSITE.replace(/https?:\/\//g, '').replace(/\/$/, '')
|
||||||
#: src/pages/settings.jsx:800
|
#: src/pages/settings.jsx:796
|
||||||
msgid "<0>Site:</0> {0}"
|
msgid "<0>Site:</0> {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: !__FAKE_COMMIT_HASH__ && ( <span class="ib insignificant"> ( <a href={`https://github.com/cheeaun/phanpy/commit/${__COMMIT_HASH__}`} target="_blank" rel="noopener noreferrer" > <RelativeTime datetime={new Date(__BUILD_TIME__)} /> </a> ) </span> )
|
#. placeholder {0}: !__FAKE_COMMIT_HASH__ && ( <span class="ib insignificant"> ( <a href={`https://github.com/cheeaun/phanpy/commit/${__COMMIT_HASH__}`} target="_blank" rel="noopener" > <RelativeTime datetime={new Date(__BUILD_TIME__)} /> </a> ) </span> )
|
||||||
#: src/pages/settings.jsx:807
|
#: src/pages/settings.jsx:803
|
||||||
msgid "<0>Version:</0> <1/> {0}"
|
msgid "<0>Version:</0> <1/> {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:822
|
#: src/pages/settings.jsx:818
|
||||||
msgid "Version string copied"
|
msgid "Version string copied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:825
|
#: src/pages/settings.jsx:821
|
||||||
msgid "Unable to copy version string"
|
msgid "Unable to copy version string"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1060
|
#: src/pages/settings.jsx:1056
|
||||||
#: src/pages/settings.jsx:1065
|
#: src/pages/settings.jsx:1061
|
||||||
msgid "Failed to update subscription. Please try again."
|
msgid "Failed to update subscription. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1071
|
#: src/pages/settings.jsx:1067
|
||||||
msgid "Failed to remove subscription. Please try again."
|
msgid "Failed to remove subscription. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1078
|
#: src/pages/settings.jsx:1074
|
||||||
msgid "Push Notifications (beta)"
|
msgid "Push Notifications (beta)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1100
|
#: src/pages/settings.jsx:1096
|
||||||
msgid "Push notifications are blocked. Please enable them in your browser settings."
|
msgid "Push notifications are blocked. Please enable them in your browser settings."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. placeholder {0}: [ { value: 'all', label: t`anyone`, }, { value: 'followed', label: t`people I follow`, }, { value: 'follower', label: t`followers`, }, ].map((type) => ( <option value={type.value}>{type.label}</option> ))
|
#. placeholder {0}: [ { value: 'all', label: t`anyone`, }, { value: 'followed', label: t`people I follow`, }, { value: 'follower', label: t`followers`, }, ].map((type) => ( <option value={type.value}>{type.label}</option> ))
|
||||||
#: src/pages/settings.jsx:1109
|
#: src/pages/settings.jsx:1105
|
||||||
msgid "Allow from <0>{0}</0>"
|
msgid "Allow from <0>{0}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1118
|
#: src/pages/settings.jsx:1114
|
||||||
msgid "anyone"
|
msgid "anyone"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1122
|
#: src/pages/settings.jsx:1118
|
||||||
msgid "people I follow"
|
msgid "people I follow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1126
|
#: src/pages/settings.jsx:1122
|
||||||
msgid "followers"
|
msgid "followers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1159
|
#: src/pages/settings.jsx:1155
|
||||||
msgid "Follows"
|
msgid "Follows"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1167
|
#: src/pages/settings.jsx:1163
|
||||||
msgid "Polls"
|
msgid "Polls"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1171
|
#: src/pages/settings.jsx:1167
|
||||||
msgid "Post edits"
|
msgid "Post edits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1192
|
#: src/pages/settings.jsx:1188
|
||||||
msgid "Push permission was not granted since your last login. You'll need to <0><1>log in</1> again to grant push permission</0>."
|
msgid "Push permission was not granted since your last login. You'll need to <0><1>log in</1> again to grant push permission</0>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/settings.jsx:1208
|
#: src/pages/settings.jsx:1204
|
||||||
msgid "NOTE: Push notifications only work for <0>one account</0>."
|
msgid "NOTE: Push notifications only work for <0>one account</0>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3807,7 +3807,7 @@ msgid "Trending News"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. By [Author]
|
#. By [Author]
|
||||||
#. placeholder {0}: author ? ( <NameText account={author} showAvatar /> ) : authorUrl ? ( <a href={authorUrl} target="_blank" rel="noopener noreferrer" > {authorName} </a> ) : ( authorName )
|
#. placeholder {0}: author ? ( <NameText account={author} showAvatar /> ) : authorUrl ? ( <a href={authorUrl} target="_blank" rel="noopener" > {authorName} </a> ) : ( authorName )
|
||||||
#: src/pages/trending.jsx:348
|
#: src/pages/trending.jsx:348
|
||||||
msgid "By {0}"
|
msgid "By {0}"
|
||||||
msgstr "By {0}"
|
msgstr "By {0}"
|
||||||
|
|
|
@ -1192,7 +1192,7 @@ function Catchup() {
|
||||||
key={url}
|
key={url}
|
||||||
href={url}
|
href={url}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
class="link-block"
|
class="link-block"
|
||||||
style={
|
style={
|
||||||
accentColor
|
accentColor
|
||||||
|
|
|
@ -68,7 +68,7 @@ export default function HttpRoute() {
|
||||||
<Trans>Resolving…</Trans>
|
<Trans>Resolving…</Trans>
|
||||||
</h2>
|
</h2>
|
||||||
<p>
|
<p>
|
||||||
<a href={url} target="_blank" rel="noopener noreferrer">
|
<a href={url} target="_blank" rel="noopener">
|
||||||
{url}
|
{url}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
@ -79,7 +79,7 @@ export default function HttpRoute() {
|
||||||
<Trans>Unable to resolve URL</Trans>
|
<Trans>Unable to resolve URL</Trans>
|
||||||
</h2>
|
</h2>
|
||||||
<p>
|
<p>
|
||||||
<a href={url} target="_blank" rel="noopener noreferrer">
|
<a href={url} target="_blank" rel="noopener">
|
||||||
{url}
|
{url}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -250,7 +250,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://crowdin.com/project/phanpy"
|
href="https://crowdin.com/project/phanpy"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<Trans>Volunteer translations</Trans>
|
<Trans>Volunteer translations</Trans>
|
||||||
</a>
|
</a>
|
||||||
|
@ -324,7 +324,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href={`https://${instance}/`}
|
href={`https://${instance}/`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
Go to your instance ({instance}) for more settings.
|
Go to your instance ({instance}) for more settings.
|
||||||
</a>
|
</a>
|
||||||
|
@ -483,7 +483,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://github.com/cheeaun/lingva-api"
|
href="https://github.com/cheeaun/lingva-api"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
Lingva API
|
Lingva API
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
|
@ -491,7 +491,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://github.com/thedaviddelta/lingva-translate"
|
href="https://github.com/thedaviddelta/lingva-translate"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
Lingva Translate
|
Lingva Translate
|
||||||
</a>
|
</a>
|
||||||
|
@ -545,7 +545,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://developers.giphy.com/"
|
href="https://developers.giphy.com/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
GIPHY
|
GIPHY
|
||||||
</a>
|
</a>
|
||||||
|
@ -585,7 +585,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://github.com/cheeaun/img-alt-api"
|
href="https://github.com/cheeaun/img-alt-api"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
img-alt-api
|
img-alt-api
|
||||||
</a>
|
</a>
|
||||||
|
@ -728,7 +728,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://hachyderm.io/@phanpy"
|
href="https://hachyderm.io/@phanpy"
|
||||||
// target="_blank"
|
// target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
states.showAccount = 'phanpy@hachyderm.io';
|
states.showAccount = 'phanpy@hachyderm.io';
|
||||||
|
@ -741,7 +741,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://github.com/cheeaun/phanpy"
|
href="https://github.com/cheeaun/phanpy"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
Built
|
Built
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
|
@ -749,7 +749,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://mastodon.social/@cheeaun"
|
href="https://mastodon.social/@cheeaun"
|
||||||
// target="_blank"
|
// target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
states.showAccount = 'cheeaun@mastodon.social';
|
states.showAccount = 'cheeaun@mastodon.social';
|
||||||
|
@ -764,7 +764,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://github.com/sponsors/cheeaun"
|
href="https://github.com/sponsors/cheeaun"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<Trans>Sponsor</Trans>
|
<Trans>Sponsor</Trans>
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
|
@ -772,7 +772,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://www.buymeacoffee.com/cheeaun"
|
href="https://www.buymeacoffee.com/cheeaun"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<Trans>Donate</Trans>
|
<Trans>Donate</Trans>
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
|
@ -780,16 +780,12 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href="https://patreon.com/cheeaun"
|
href="https://patreon.com/cheeaun"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
Patreon
|
Patreon
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
·{' '}
|
·{' '}
|
||||||
<a
|
<a href={PRIVACY_POLICY_URL} target="_blank" rel="noopener">
|
||||||
href={PRIVACY_POLICY_URL}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Trans>Privacy Policy</Trans>
|
<Trans>Privacy Policy</Trans>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
@ -832,7 +828,7 @@ function Settings({ onClose }) {
|
||||||
<a
|
<a
|
||||||
href={`https://github.com/cheeaun/phanpy/commit/${__COMMIT_HASH__}`}
|
href={`https://github.com/cheeaun/phanpy/commit/${__COMMIT_HASH__}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
<RelativeTime datetime={new Date(__BUILD_TIME__)} />
|
<RelativeTime datetime={new Date(__BUILD_TIME__)} />
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -274,7 +274,7 @@ function Trending({ columnMode, ...props }) {
|
||||||
ref={currentLink === url ? currentLinkRef : null}
|
ref={currentLink === url ? currentLinkRef : null}
|
||||||
href={url}
|
href={url}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
class={`link-block ${
|
class={`link-block ${
|
||||||
hasCurrentLink
|
hasCurrentLink
|
||||||
? currentLink === url
|
? currentLink === url
|
||||||
|
@ -353,7 +353,7 @@ function Trending({ columnMode, ...props }) {
|
||||||
<a
|
<a
|
||||||
href={authorUrl}
|
href={authorUrl}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener"
|
||||||
>
|
>
|
||||||
{authorName}
|
{authorName}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -218,7 +218,7 @@ function _enhanceContent(content, opts = {}) {
|
||||||
if (TWITTER_MENTION_REGEX.test(html)) {
|
if (TWITTER_MENTION_REGEX.test(html)) {
|
||||||
html = html.replaceAll(
|
html = html.replaceAll(
|
||||||
TWITTER_MENTION_CAPTURE_REGEX,
|
TWITTER_MENTION_CAPTURE_REGEX,
|
||||||
'<a href="https://twitter.com/$2" rel="nofollow noopener noreferrer" target="_blank">$1</a>',
|
'<a href="https://twitter.com/$2" rel="nofollow noopener" target="_blank">$1</a>',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
fauxDiv.innerHTML = html;
|
fauxDiv.innerHTML = html;
|
||||||
|
|
|
@ -21,6 +21,7 @@ const {
|
||||||
PHANPY_WEBSITE: WEBSITE,
|
PHANPY_WEBSITE: WEBSITE,
|
||||||
PHANPY_CLIENT_NAME: CLIENT_NAME,
|
PHANPY_CLIENT_NAME: CLIENT_NAME,
|
||||||
PHANPY_APP_ERROR_LOGGING: ERROR_LOGGING,
|
PHANPY_APP_ERROR_LOGGING: ERROR_LOGGING,
|
||||||
|
PHANPY_REFERRER_POLICY: REFERRER_POLICY,
|
||||||
} = loadEnv('production', process.cwd(), allowedEnvPrefixes);
|
} = loadEnv('production', process.cwd(), allowedEnvPrefixes);
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
|
@ -86,6 +87,13 @@ export default defineConfig({
|
||||||
includes: ['log', 'debug', 'info', 'warn', 'error'],
|
includes: ['log', 'debug', 'info', 'warn', 'error'],
|
||||||
}),
|
}),
|
||||||
htmlPlugin({
|
htmlPlugin({
|
||||||
|
metas: [
|
||||||
|
// Learn more: https://web.dev/articles/referrer-best-practices
|
||||||
|
{
|
||||||
|
name: 'referrer',
|
||||||
|
content: REFERRER_POLICY || 'origin',
|
||||||
|
},
|
||||||
|
],
|
||||||
headScripts: ERROR_LOGGING ? [rollbarCode] : [],
|
headScripts: ERROR_LOGGING ? [rollbarCode] : [],
|
||||||
links: [
|
links: [
|
||||||
...ALL_LOCALES.map((lang) => ({
|
...ALL_LOCALES.map((lang) => ({
|
||||||
|
|
Loading…
Reference in a new issue