Run yarn i18n, copy some messages from en.json back into source files

This commit is contained in:
Alex Gleason 2023-10-11 15:15:50 -05:00
parent b5f92b10f9
commit f6251a221a
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
29 changed files with 49 additions and 127 deletions

View File

@ -91,7 +91,7 @@ const COMPOSE_EDITOR_STATE_SET = 'COMPOSE_EDITOR_STATE_SET' as const;
const messages = defineMessages({
scheduleError: { id: 'compose.invalid_schedule', defaultMessage: 'You must schedule a post at least 5 minutes out.' },
success: { id: 'compose.submit_success', defaultMessage: 'Your post was sent' },
success: { id: 'compose.submit_success', defaultMessage: 'Your post was sent!' },
editSuccess: { id: 'compose.edit_success', defaultMessage: 'Your post was edited' },
uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' },

View File

@ -49,7 +49,7 @@ const PollFooter: React.FC<IPollFooter> = ({ poll, showResults, selected }): JSX
<Stack space={4} data-testid='poll-footer'>
{(!showResults && poll.multiple) && (
<Button onClick={handleVote} theme='primary' block>
<FormattedMessage id='poll.vote' defaultMessage='Vote' />
<FormattedMessage id='poll.vote' defaultMessage='Submit Vote' />
</Button>
)}

View File

@ -19,7 +19,7 @@ import type { Account as AccountEntity } from 'soapbox/types/entities';
const messages = defineMessages({
followers: { id: 'account.followers', defaultMessage: 'Followers' },
follows: { id: 'account.follows', defaultMessage: 'Follows' },
follows: { id: 'account.follows', defaultMessage: 'Following' },
profile: { id: 'account.profile', defaultMessage: 'Profile' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocks' },

View File

@ -43,7 +43,7 @@ const messages = defineMessages({
cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Un-repost' },
cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be reposted' },
chat: { id: 'status.chat', defaultMessage: 'Chat with @{name}' },
copy: { id: 'status.copy', defaultMessage: 'Copy link to post' },
copy: { id: 'status.copy', defaultMessage: 'Copy Link to Post' },
deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' },
delete: { id: 'status.delete', defaultMessage: 'Delete' },
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
@ -58,7 +58,7 @@ const messages = defineMessages({
embed: { id: 'status.embed', defaultMessage: 'Embed post' },
external: { id: 'status.external', defaultMessage: 'View post on {domain}' },
favourite: { id: 'status.favourite', defaultMessage: 'Like' },
groupBlockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban' },
groupBlockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban User' },
groupBlockFromGroupHeading: { id: 'confirmations.block_from_group.heading', defaultMessage: 'Ban From Group' },
groupBlockFromGroupMessage: { id: 'confirmations.block_from_group.message', defaultMessage: 'Are you sure you want to ban @{name} from the group?' },
groupModDelete: { id: 'status.group_mod_delete', defaultMessage: 'Delete post from group' },
@ -70,12 +70,12 @@ const messages = defineMessages({
more: { id: 'status.more', defaultMessage: 'More' },
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
muteConfirm: { id: 'confirmations.mute_group.confirm', defaultMessage: 'Mute' },
muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' },
muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute Conversation' },
muteGroup: { id: 'group.mute.long_label', defaultMessage: 'Mute Group' },
muteHeading: { id: 'confirmations.mute_group.heading', defaultMessage: 'Mute Group' },
muteMessage: { id: 'confirmations.mute_group.message', defaultMessage: 'You are about to mute the group. Do you want to continue?' },
muteSuccess: { id: 'group.mute.success', defaultMessage: 'Muted the group' },
open: { id: 'status.open', defaultMessage: 'Expand this post' },
open: { id: 'status.open', defaultMessage: 'Show Post Details' },
pin: { id: 'status.pin', defaultMessage: 'Pin on profile' },
pinToGroup: { id: 'status.pin_to_group', defaultMessage: 'Pin to Group' },
pinToGroupSuccess: { id: 'status.pin_to_group.success', defaultMessage: 'Pinned to Group!' },
@ -100,7 +100,7 @@ const messages = defineMessages({
report: { id: 'status.report', defaultMessage: 'Report @{name}' },
share: { id: 'status.share', defaultMessage: 'Share' },
unbookmark: { id: 'status.unbookmark', defaultMessage: 'Remove bookmark' },
unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' },
unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute Conversation' },
unmuteGroup: { id: 'group.unmute.long_label', defaultMessage: 'Unmute Group' },
unmuteSuccess: { id: 'group.unmute.success', defaultMessage: 'Unmuted the group' },
unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' },

View File

@ -213,7 +213,7 @@ const StatusList: React.FC<IStatusList> = ({
<div className='regeneration-indicator'>
<div>
<div className='regeneration-indicator__label'>
<FormattedMessage id='regeneration_indicator.label' tagName='strong' defaultMessage='Loading&hellip;' />
<FormattedMessage id='regeneration_indicator.label' tagName='strong' defaultMessage='Loading' />
<FormattedMessage id='regeneration_indicator.sublabel' defaultMessage='Your home feed is being prepared!' />
</div>
</div>

View File

@ -72,7 +72,7 @@ const ThumbNavigation: React.FC = (): JSX.Element => {
{account && (
<ThumbNavigationLink
src={require('@tabler/icons/bell.svg')}
text={<FormattedMessage id='navigation.notifications' defaultMessage='Alerts' />}
text={<FormattedMessage id='navigation.notifications' defaultMessage='Notifications' />}
to='/notifications'
exact
count={notificationCount}

View File

@ -8,7 +8,7 @@ import { useFeatures } from 'soapbox/hooks';
const messages = defineMessages({
username: {
id: 'login.fields.username_label',
defaultMessage: 'E-mail or username',
defaultMessage: 'Email or username',
},
email: {
id: 'login.fields.email_label',

View File

@ -9,7 +9,7 @@ import { useAppDispatch, useFeatures } from 'soapbox/hooks';
import toast from 'soapbox/toast';
const messages = defineMessages({
nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'E-mail or username' },
nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'Email or username' },
email: { id: 'password_reset.fields.email_placeholder', defaultMessage: 'E-mail address' },
confirmation: { id: 'password_reset.confirmation', defaultMessage: 'Check your email for confirmation.' },
});

View File

@ -17,7 +17,7 @@ const RegistrationPage: React.FC = () => {
<Text theme='muted' align='center'>
<FormattedMessage
id='registration.closed_message'
defaultMessage='{instance} is not accepting new members.'
defaultMessage='{instance} is not accepting new members'
values={{ instance: instance.title }}
/>
</Text>

View File

@ -4,7 +4,7 @@ import { defineMessages, useIntl } from 'react-intl';
import { Icon, Input } from 'soapbox/components/ui';
const messages = defineMessages({
searchPlaceholder: { id: 'chats.search_placeholder', defaultMessage: 'Search inbox' },
searchPlaceholder: { id: 'chats.search_placeholder', defaultMessage: 'Start a chat with…' },
});
interface IChatSearchInput {

View File

@ -13,7 +13,7 @@ import type { AutoSuggestion } from 'soapbox/components/autosuggest-input';
const messages = defineMessages({
option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Answer #{number}' },
add_option: { id: 'compose_form.poll.add_option', defaultMessage: 'Add an answer' },
pollDuration: { id: 'compose_form.poll.duration', defaultMessage: 'Duration' },
pollDuration: { id: 'compose_form.poll.duration', defaultMessage: 'Poll duration' },
removePoll: { id: 'compose_form.poll.remove', defaultMessage: 'Remove poll' },
switchToMultiple: { id: 'compose_form.poll.switch_to_multiple', defaultMessage: 'Change poll to allow multiple answers' },
switchToSingle: { id: 'compose_form.poll.switch_to_single', defaultMessage: 'Change poll to allow for a single answer' },
@ -95,7 +95,7 @@ const Option: React.FC<IOption> = ({
{index > 1 && (
<div>
<Button theme='danger' size='sm' onClick={handleOptionRemove}>
<FormattedMessage id='compose_form.poll.remove_option' defaultMessage='Delete' />
<FormattedMessage id='compose_form.poll.remove_option' defaultMessage='Remove this answer' />
</Button>
</div>
)}

View File

@ -49,7 +49,7 @@ const messages = defineMessages({
header: { id: 'edit_profile.header', defaultMessage: 'Edit Profile' },
metaFieldLabel: { id: 'edit_profile.fields.meta_fields.label_placeholder', defaultMessage: 'Label' },
metaFieldContent: { id: 'edit_profile.fields.meta_fields.content_placeholder', defaultMessage: 'Content' },
success: { id: 'edit_profile.success', defaultMessage: 'Profile saved!' },
success: { id: 'edit_profile.success', defaultMessage: 'Your profile has been successfully saved!' },
error: { id: 'edit_profile.error', defaultMessage: 'Profile update failed' },
bioPlaceholder: { id: 'edit_profile.fields.bio_placeholder', defaultMessage: 'Tell us about yourself.' },
displayNamePlaceholder: { id: 'edit_profile.fields.display_name_placeholder', defaultMessage: 'Name' },

View File

@ -18,7 +18,7 @@ export const messages = defineMessages({
emoji_pick: { id: 'emoji_button.pick', defaultMessage: 'Pick an emoji…' },
emoji_oh_no: { id: 'emoji_button.oh_no', defaultMessage: 'Oh no!' },
emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search…' },
emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emoji\'s found.' },
emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojis found.' },
emoji_add_custom: { id: 'emoji_button.add_custom', defaultMessage: 'Add custom emoji' },
custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },
recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },

View File

@ -23,7 +23,7 @@ import type { Group, GroupMember } from 'soapbox/types/entities';
const messages = defineMessages({
adminLimitTitle: { id: 'group.member.admin.limit.title', defaultMessage: 'Admin limit reached' },
adminLimitSummary: { id: 'group.member.admin.limit.summary', defaultMessage: 'You can assign up to {count, plural, one {admin} other {admins}} for the group at this time.' },
blockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban' },
blockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban User' },
blockFromGroupHeading: { id: 'confirmations.block_from_group.heading', defaultMessage: 'Ban From Group' },
blockFromGroupMessage: { id: 'confirmations.block_from_group.message', defaultMessage: 'Are you sure you want to ban @{name} from the group?' },
blocked: { id: 'group.group_mod_block.success', defaultMessage: '@{name} is banned' },

View File

@ -25,7 +25,7 @@ const messages = defineMessages({
deleteHeading: { id: 'confirmations.delete_group.heading', defaultMessage: 'Delete Group' },
deleteMessage: { id: 'confirmations.delete_group.message', defaultMessage: 'Are you sure you want to delete this group? This is a permanent action that cannot be undone.' },
members: { id: 'group.tabs.members', defaultMessage: 'Members' },
other: { id: 'settings.other', defaultMessage: 'Other options' },
other: { id: 'settings.other', defaultMessage: 'Other Options' },
deleteSuccess: { id: 'group.delete.success', defaultMessage: 'Group successfully deleted' },
});

View File

@ -13,7 +13,7 @@ import LayoutButtons, { GroupLayout } from './components/discover/layout-buttons
import type { Group } from 'soapbox/schemas';
const messages = defineMessages({
label: { id: 'groups.popular.label', defaultMessage: 'Popular Groups' },
label: { id: 'groups.popular.label', defaultMessage: 'Suggested Groups' },
});
const GridList: Components['List'] = React.forwardRef((props, ref) => {

View File

@ -148,7 +148,7 @@ const buildMessage = (
others: totalCount && totalCount > 0 ? (
<FormattedMessage
id='notification.others'
defaultMessage=' + {count, plural, one {# other} other {# others}}'
defaultMessage='+ {count, plural, one {# other} other {# others}}'
values={{ count: totalCount - 1 }}
/>
) : '',

View File

@ -134,7 +134,7 @@ const Preferences = () => {
<ThemeToggle />
</ListItem>
<ListItem label={<FormattedMessage id='preferences.fields.language_label' defaultMessage='Language' />}>
<ListItem label={<FormattedMessage id='preferences.fields.language_label' defaultMessage='Display Language' />}>
<SelectDropdown
className='max-w-[200px]'
items={languages}

View File

@ -68,7 +68,7 @@ const CommunityTimeline = () => {
>
<FormattedMessage
id='fediverse_tab.explanation_box.explanation'
defaultMessage='{site_title} is part of the Fediverse, a social network made up of thousands of independent social media sites (aka "servers"). The posts you see here are from 3rd-party servers. You have the freedom to engage with them, or to block any server you don&apos;t like. Pay attention to the full username after the second @ symbol to know which server a post is from. To see only {site_title} posts, visit {local}.'
defaultMessage={'{site_title} is part of the Fediverse, a social network made up of thousands of independent social media sites (aka "servers"). The posts you see here are from 3rd-party servers. You have the freedom to engage with them, or to block any server you don\'t like. Pay attention to the full username after the second @ symbol to know which server a post is from. To see only {site_title} posts, visit {local}.'}
values={{
site_title: instance.title,
local: (

View File

@ -25,7 +25,7 @@ const messages = defineMessages({
mfaDisabled: { id: 'mfa.disabled', defaultMessage: 'Disabled' },
mfaEnabled: { id: 'mfa.enabled', defaultMessage: 'Enabled' },
mutes: { id: 'settings.mutes', defaultMessage: 'Mutes' },
other: { id: 'settings.other', defaultMessage: 'Other options' },
other: { id: 'settings.other', defaultMessage: 'Other Options' },
preferences: { id: 'settings.preferences', defaultMessage: 'Preferences' },
privacy: { id: 'settings.privacy', defaultMessage: 'Privacy' },
profile: { id: 'settings.profile', defaultMessage: 'Profile' },

View File

@ -34,7 +34,7 @@ const UploadButton: React.FC<IUploadButton> = ({ disabled, onSelectFile }) => {
/>
<Text size='sm' theme='primary' weight='semibold' transform='uppercase' tabIndex={0}>
<FormattedMessage id='compose_event.upload_banner' defaultMessage='Upload photo' />
<FormattedMessage id='compose_event.upload_banner' defaultMessage='Upload event banner' />
</Text>
<input
ref={fileElement}

View File

@ -69,7 +69,7 @@ const ComposeModal: React.FC<IComposeModal> = ({ onClose, composeId = 'compose-m
} else if (quote) {
return <FormattedMessage id='navigation_bar.compose_quote' defaultMessage='Quote post' />;
} else {
return <FormattedMessage id='navigation_bar.compose' defaultMessage='Compose new post' />;
return <FormattedMessage id='navigation_bar.compose' defaultMessage='Compose a post' />;
}
};

View File

@ -10,8 +10,8 @@ import { useAppDispatch, useAppSelector } from 'soapbox/hooks';
const messages = defineMessages({
save: { id: 'admin.edit_announcement.save', defaultMessage: 'Save' },
announcementContentPlaceholder: { id: 'admin.edit_announcement.fields.content_placeholder', defaultMessage: 'Announcement content' },
announcementStartTimePlaceholder: { id: 'admin.edit_announcement.fields.start_time_placeholder', defaultMessage: 'Announcement starts on' },
announcementEndTimePlaceholder: { id: 'admin.edit_announcement.fields.end_time_placeholder', defaultMessage: 'Announcement ends on' },
announcementStartTimePlaceholder: { id: 'admin.edit_announcement.fields.start_time_placeholder', defaultMessage: 'Announcement starts on:' },
announcementEndTimePlaceholder: { id: 'admin.edit_announcement.fields.end_time_placeholder', defaultMessage: 'Announcement ends on:' },
});
interface IEditAnnouncementModal {

View File

@ -4,7 +4,7 @@ import { injectIntl, FormattedMessage, IntlShape, defineMessages } from 'react-i
import { Modal } from 'soapbox/components/ui';
const messages = defineMessages({
modalTitle: { id: 'missing_description_modal.text', defaultMessage: 'You have not entered a description for all attachments.' },
modalTitle: { id: 'missing_description_modal.text', defaultMessage: 'You have not entered a description for all attachments. Continue anyway?' },
post: { id: 'missing_description_modal.continue', defaultMessage: 'Post' },
cancel: { id: 'missing_description_modal.cancel', defaultMessage: 'Cancel' },
});

View File

@ -18,7 +18,7 @@ import type { AxiosError } from 'axios';
const messages = defineMessages({
login: { id: 'navbar.login.action', defaultMessage: 'Log in' },
username: { id: 'navbar.login.username.placeholder', defaultMessage: 'E-mail or username' },
username: { id: 'navbar.login.username.placeholder', defaultMessage: 'Email or username' },
email: { id: 'navbar.login.email.placeholder', defaultMessage: 'E-mail address' },
password: { id: 'navbar.login.password.label', defaultMessage: 'Password' },
forgotPassword: { id: 'navbar.login.forgot_password', defaultMessage: 'Forgot password?' },

View File

@ -9,7 +9,7 @@ import type { Account } from 'soapbox/schemas';
const messages = defineMessages({
followers: { id: 'account.followers', defaultMessage: 'Followers' },
follows: { id: 'account.follows', defaultMessage: 'Follows' },
follows: { id: 'account.follows', defaultMessage: 'Following' },
});
interface IProfileStats {

View File

@ -97,7 +97,7 @@ const UserPanel: React.FC<IUserPanel> = ({ accountId, action, badges, domain })
{shortNumberFormat(account.following_count)}
</Text>
<Text weight='bold' size='sm'>
<FormattedMessage id='account.follows' defaultMessage='Follows' />
<FormattedMessage id='account.follows' defaultMessage='Following' />
</Text>
</HStack>
</Link>

View File

@ -156,9 +156,6 @@
"admin_nav.awaiting_approval": "Waitlist",
"admin_nav.dashboard": "Dashboard",
"admin_nav.reports": "Reports",
"age_verification.body": "{siteTitle} requires users to be at least {ageMinimum, plural, one {# year} other {# years}} old to access its platform. Anyone under the age of {ageMinimum, plural, one {# year} other {# years}} old cannot access this platform.",
"age_verification.fail": "You must be {ageMinimum, plural, one {# year} other {# years}} old or older.",
"age_verification.header": "Enter your birth date",
"alert.unexpected.body": "We're sorry for the interruption. If the problem persists, please reach out to our support team. You may also try to {clearCookies} (this will log you out).",
"alert.unexpected.browser": "Browser",
"alert.unexpected.clear_cookies": "clear cookies and browser data",
@ -189,7 +186,6 @@
"auth.awaiting_approval": "Your account is awaiting approval",
"auth.invalid_credentials": "Wrong username or password",
"auth.logged_out": "Logged out.",
"auth_layout.register": "Create an account",
"authorize.success": "Approved",
"backups.actions.create": "Create backup",
"backups.empty_message": "No backups found. {action}",
@ -200,12 +196,6 @@
"birthdays_modal.empty": "None of your friends have birthday today.",
"boost_modal.combo": "You can press {combo} to skip this next time",
"boost_modal.title": "Repost?",
"bundle_column_error.body": "Something went wrong while loading this page.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
"bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this modal.",
"bundle_modal_error.retry": "Try again",
"card.back.label": "Back",
"chat.actions.send": "Send",
"chat.failed_to_send": "Message failed to send.",
@ -239,9 +229,11 @@
"chat_message_list_intro.leave_chat.confirm": "Leave Chat",
"chat_message_list_intro.leave_chat.heading": "Leave Chat",
"chat_message_list_intro.leave_chat.message": "Are you sure you want to leave this chat? Messages will be deleted for you and this chat will be removed from your inbox.",
"chat_pane.blankslate.action": "Message someone",
"chat_pane.blankslate.body": "Search for someone to chat with.",
"chat_pane.blankslate.title": "No messages yet",
"chat_search.blankslate.body": "Search for someone to chat with.",
"chat_search.blankslate.title": "Start a chat",
"chat_search.empty_results_blankslate.action": "Message someone",
"chat_search.empty_results_blankslate.body": "Try searching for another name.",
"chat_search.empty_results_blankslate.title": "No matches found",
"chat_search.placeholder": "Type a name",
@ -271,10 +263,10 @@
"chat_window.auto_delete_label": "Auto-delete after {day, plural, one {# day} other {# days}}",
"chat_window.auto_delete_tooltip": "Chat messages are set to auto-delete after {day, plural, one {# day} other {# days}} upon sending.",
"chats.actions.copy": "Copy",
"chats.actions.delete": "Delete message",
"chats.actions.delete": "Delete for both",
"chats.actions.deleteForMe": "Delete for me",
"chats.actions.more": "More",
"chats.actions.report": "Report user",
"chats.actions.report": "Report",
"chats.dividers.today": "Today",
"chats.main.blankslate.new_chat": "Message someone",
"chats.main.blankslate.subtitle": "Search for someone to chat with",
@ -336,7 +328,7 @@
"column.filters.delete_error": "Error deleting filter",
"column.filters.drop_header": "Drop instead of hide",
"column.filters.drop_hint": "Filtered posts will disappear irreversibly, even if filter is later removed",
"column.filters.edit": "Edit",
"column.filters.edit": "Edit Filter",
"column.filters.expires": "Expire after",
"column.filters.hide_header": "Hide completely",
"column.filters.hide_hint": "Completely hide the filtered content, instead of showing a warning",
@ -371,10 +363,11 @@
"column.notifications": "Notifications",
"column.pins": "Pinned posts",
"column.preferences": "Preferences",
"column.public": "Federated timeline",
"column.public": "Fediverse timeline",
"column.quotes": "Post quotes",
"column.reactions": "Reactions",
"column.reblogs": "Reposts",
"column.registration": "Sign Up",
"column.scheduled_statuses": "Scheduled Posts",
"column.search": "Search",
"column.settings_store": "Settings store",
@ -383,7 +376,6 @@
"column_forbidden.body": "You do not have permission to access this page.",
"column_forbidden.title": "Forbidden",
"common.cancel": "Cancel",
"common.error": "Something isn't right. Try reloading the page.",
"compare_history_modal.header": "Edit history",
"compose.character_counter.title": "Used {chars} out of {maxChars} {maxChars, plural, one {character} other {characters}}",
"compose.edit_success": "Your post was edited",
@ -417,14 +409,6 @@
"compose_form.direct_message_warning": "This post will only be sent to the mentioned users.",
"compose_form.event_placeholder": "Post to this event",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lexical.create_horizontal_line": "Create horizontal line",
"compose_form.lexical.format_bold": "Format bold",
"compose_form.lexical.format_italic": "Format italic",
"compose_form.lexical.format_strikethrough": "Format strikethrough",
"compose_form.lexical.format_underline": "Format underline",
"compose_form.lexical.insert_code_block": "Insert code block",
"compose_form.lexical.insert_link": "Insert link",
"compose_form.lexical.upload_media": "Upload media",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.markdown.marked": "Post markdown enabled",
@ -440,7 +424,7 @@
"compose_form.poll.remove_option": "Remove this answer",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple answers",
"compose_form.poll.switch_to_single": "Change poll to allow for a single answer",
"compose_form.poll_placeholder": "Add a poll topic...",
"compose_form.poll_placeholder": "Add a poll topic",
"compose_form.publish": "Post",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
@ -615,25 +599,6 @@
"edit_profile.save": "Save",
"edit_profile.success": "Your profile has been successfully saved!",
"email_confirmation.success": "Your email has been confirmed!",
"email_passthru.confirmed.body": "Close this tab and continue the registration process on the {bold} from which you sent this email confirmation.",
"email_passthru.confirmed.heading": "Email Confirmed!",
"email_passthru.fail.expired": "Your email token has expired",
"email_passthru.fail.generic": "Unable to confirm your email",
"email_passthru.fail.invalid_token": "Your token is invalid",
"email_passthru.fail.not_found": "Your email token is invalid.",
"email_passthru.generic_fail.body": "Please request a new email confirmation.",
"email_passthru.generic_fail.heading": "Something Went Wrong",
"email_passthru.success": "Your email has been verified!",
"email_passthru.token_expired.body": "Your email token has expired. Please request a new email confirmation from the {bold} from which you sent this email confirmation.",
"email_passthru.token_expired.heading": "Token Expired",
"email_passthru.token_not_found.body": "Your email token was not found. Please request a new email confirmation from the {bold} from which you sent this email confirmation.",
"email_passthru.token_not_found.heading": "Invalid Token",
"email_verification.email.label": "E-mail address",
"email_verification.fail": "Failed to request email verification.",
"email_verification.header": "Enter your email address",
"email_verification.success": "Verification email sent successfully.",
"email_verification.taken": "is taken",
"email_verifilcation.exists": "This email has already been taken.",
"embed.instructions": "Embed this post on your website by copying the code below.",
"emoji_button.activity": "Activity",
"emoji_button.add_custom": "Add custom emoji",
@ -876,13 +841,7 @@
"groups.suggested.label": "Suggested Groups",
"groups.tags.title": "Browse Topics",
"hashtag.follow": "Follow hashtag",
"header.home.label": "Home",
"header.login.email.placeholder": "E-mail address",
"header.login.forgot_password": "Forgot password?",
"header.login.label": "Log in",
"header.login.password.label": "Password",
"header.login.username.placeholder": "Email or username",
"header.menu.title": "Open menu",
"header.register.label": "Register",
"home.column_settings.show_reblogs": "Show reposts",
"home.column_settings.show_replies": "Show replies",
@ -943,7 +902,7 @@
"keyboard_shortcuts.up": "to move up in the list",
"landing_page_modal.download": "Download",
"landing_page_modal.helpCenter": "Help Center",
"lightbox.close": "Cancel",
"lightbox.close": "Close",
"lightbox.expand": "Expand",
"lightbox.minimize": "Minimize",
"lightbox.next": "Next",
@ -1042,8 +1001,6 @@
"missing_description_modal.text": "You have not entered a description for all attachments. Continue anyway?",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"modals.policy.submit": "Accept & Continue",
"modals.policy.updateTitle": "Youve scored the latest version of {siteTitle}! Take a moment to review the exciting new things weve been working on.",
"moderation_overlay.contact": "Contact",
"moderation_overlay.hide": "Hide content",
"moderation_overlay.show": "Show Content",
@ -1111,7 +1068,7 @@
"notification.mentioned": "{name} mentioned you",
"notification.move": "{name} moved to {targetName}",
"notification.name": "{link}{others}",
"notification.others": " + {count, plural, one {# other} other {# others}}",
"notification.others": "+ {count, plural, one {# other} other {# others}}",
"notification.pleroma:chat_mention": "{name} sent you a message",
"notification.pleroma:emoji_reaction": "{name} reacted to your post",
"notification.pleroma:event_reminder": "An event you are participating in starts soon",
@ -1184,7 +1141,6 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"preferences.fields.auto_play_gif_label": "Auto-play animated GIFs",
"preferences.fields.auto_play_video_label": "Auto-play videos",
"preferences.fields.autoload_more_label": "Automatically load more items when scrolled to the bottom of the page",
"preferences.fields.autoload_timelines_label": "Automatically load new posts when scrolled to the top of the page",
"preferences.fields.boost_modal_label": "Show confirmation dialog before reposting",
@ -1233,7 +1189,6 @@
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"register_invite.lead": "Complete the form below to create an account.",
"register_invite.title": "You've been invited to join {siteTitle}!",
"registration.acceptance": "By registering, you agree to the {terms} and {privacy}.",
"registration.agreement": "I agree to the {tos}.",
"registration.captcha.hint": "Click the image to get a new captcha",
"registration.captcha.placeholder": "Enter the pictured text",
@ -1245,27 +1200,13 @@
"registration.fields.password_placeholder": "Password",
"registration.fields.username_hint": "Only letters, numbers, and underscores are allowed.",
"registration.fields.username_placeholder": "Username",
"registration.header": "Register your account",
"registration.newsletter": "Subscribe to newsletter.",
"registration.password_mismatch": "Passwords don't match.",
"registration.privacy": "Privacy Policy",
"registration.reason": "Why do you want to join?",
"registration.reason_hint": "This will help us review your application",
"registration.sign_up": "Sign up",
"registration.tos": "Terms of Service",
"registration.username_unavailable": "Username is already taken.",
"registration.validation.capital_letter": "1 capital letter",
"registration.validation.lowercase_letter": "1 lowercase letter",
"registration.validation.minimum_characters": "8 characters",
"registrations.create_account": "Create an account",
"registrations.error": "Failed to register your account.",
"registrations.get_started": "Let's get started!",
"registrations.password.label": "Password",
"registrations.success": "Welcome to {siteTitle}!",
"registrations.tagline": "Social Media Without Discrimination",
"registrations.unprocessable_entity": "This username has already been taken.",
"registrations.username.hint": "May only contain A-Z, 0-9, and underscores",
"registrations.username.label": "Your username",
"reject.success": "Rejected",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
@ -1387,22 +1328,6 @@
"signup_panel.subtitle": "Sign up now to discuss what's happening.",
"signup_panel.title": "New to {site_title}?",
"site_preview.preview": "Preview",
"sms_verification.expired": "Your SMS token has expired.",
"sms_verification.fail": "Failed to send SMS message to your phone number.",
"sms_verification.header": "Enter your phone number",
"sms_verification.invalid": "Please enter a valid phone number.",
"sms_verification.modal.enter_code": "We sent you a 6-digit code via SMS. Enter it below.",
"sms_verification.modal.resend_code": "Resend verification code?",
"sms_verification.modal.verify_code": "Verify code",
"sms_verification.modal.verify_help_text": "Verify your phone number to start using {instance}.",
"sms_verification.modal.verify_number": "Verify phone number",
"sms_verification.modal.verify_sms": "Verify SMS",
"sms_verification.modal.verify_title": "Verify your phone number",
"sms_verification.phone.label": "Phone number",
"sms_verification.sent.actions.resend": "Resend verification code?",
"sms_verification.sent.body": "We sent you a 6-digit code via SMS. Enter it below.",
"sms_verification.sent.header": "Verification code",
"sms_verification.success": "A verification code has been sent to your phone number.",
"soapbox_config.authenticated_profile_hint": "Users must be logged-in to view replies and media on user profiles.",
"soapbox_config.authenticated_profile_label": "Profiles require authentication",
"soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer",
@ -1440,19 +1365,18 @@
"soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon",
"soapbox_config.promo_panel.meta_fields.label_placeholder": "Label",
"soapbox_config.promo_panel.meta_fields.url_placeholder": "URL",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.",
"soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click \"Save\" to apply your changes.",
"soapbox_config.raw_json_invalid": "is invalid",
"soapbox_config.raw_json_label": "Advanced: Edit raw JSON data",
"soapbox_config.redirect_root_no_login_hint": "Path to redirect the homepage when a user is not logged in.",
"soapbox_config.redirect_root_no_login_label": "Redirect homepage",
"soapbox_config.save": "Save",
"soapbox_config.saved": "Soapbox config saved!",
"soapbox_config.sentry_dsn_hint": "DSN URL for error reporting. Works with Sentry and GlitchTip.",
"soapbox_config.sentry_dsn_label": "Sentry DSN",
"soapbox_config.tile_server_attribution_label": "Map tiles attribution",
"soapbox_config.tile_server_label": "Map tile server",
"soapbox_config.verified_can_edit_name_label": "Allow verified users to edit their own display name.",
"sponsored.info.message": "{siteTitle} displays ads to help fund our service.",
"sponsored.info.title": "Why am I seeing this ad?",
"sponsored.subtitle": "Sponsored post",
"status.admin_account": "Moderate @{name}",
"status.admin_status": "Open this post in the moderation interface",
"status.approval.pending": "Pending approval",
@ -1595,7 +1519,5 @@
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound",
"waitlist.actions.verify_number": "Verify phone number",
"waitlist.body": "Welcome back to {title}! You were previously placed on our waitlist. Please verify your phone number to receive immediate access to your account!",
"who_to_follow.title": "People To Follow"
}

View File

@ -49,7 +49,7 @@ const ProfilePage: React.FC<IProfilePage> = ({ params, children }) => {
name: 'profile',
},
{
text: <FormattedMessage id='account.posts_with_replies' defaultMessage='Posts and replies' />,
text: <FormattedMessage id='account.posts_with_replies' defaultMessage='Posts & replies' />,
to: `/@${username}/with_replies`,
name: 'replies',
},