Merge pull request #19 from emmawinston/unbranding

Ongoing unbranding of Hometown [WIP]
This commit is contained in:
Darius Kazemi 2019-10-07 23:18:35 -07:00 committed by GitHub
commit bfd29a34eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
67 changed files with 373 additions and 235 deletions

View File

@ -16,26 +16,26 @@ module StreamEntriesHelper
if user_signed_in?
if account.id == current_user.account_id
link_to settings_profile_url, class: 'button logo-button' do
safe_join([svg_logo, t('settings.edit_profile')])
safe_join([t('settings.edit_profile')])
end
elsif current_account.following?(account) || current_account.requested?(account)
link_to account_unfollow_path(account), class: 'button logo-button button--destructive', data: { method: :post } do
safe_join([svg_logo, t('accounts.unfollow')])
safe_join([t('accounts.unfollow')])
end
elsif !(account.memorial? || account.moved?)
link_to account_follow_path(account), class: "button logo-button#{account.blocking?(current_account) ? ' disabled' : ''}", data: { method: :post } do
safe_join([svg_logo, t('accounts.follow')])
safe_join([t('accounts.follow')])
end
end
elsif !(account.memorial? || account.moved?)
link_to account_remote_follow_path(account), class: 'button logo-button modal-button', target: '_new' do
safe_join([svg_logo, t('accounts.follow')])
safe_join([t('accounts.follow')])
end
end
end
def svg_logo
content_tag(:svg, tag(:use, 'xlink:href' => '#mastodon-svg-logo'), 'viewBox' => '0 0 216.4144 232.00976')
content_tag(:svg, tag(:use, 'xlink:href' => '#hometownlogo'), 'viewBox' => '0 0 100 100')
end
def svg_logo_full

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="hometownlogo" x="0px" y="0px" viewBox="25 40 50 20" width="100%" height="100%"><g><path d="M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z"/><path d="M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z"/><path d="M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z"/><path d="M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z"/><path d="M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z"/><path d="M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z"/><path d="M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,6 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
import illustration from '../../images/elephant_ui_disappointed.svg';
export default class ErrorBoundary extends React.PureComponent {
@ -31,7 +30,7 @@ export default class ErrorBoundary extends React.PureComponent {
return (
<div>
<img src={illustration} alt='' />
<svg xmlns="http://www.w3.org/2000/svg" id="hometownlogo" x="0px" y="0px" viewBox="25 40 50 20" width="100%" height="100%"><g><path d="M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z"/><path d="M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z"/><path d="M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z"/><path d="M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z"/><path d="M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z"/><path d="M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z"/><path d="M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z"/></g></svg>
</div>
);
}

View File

@ -33,7 +33,7 @@ const messages = defineMessages({
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
hideReblogs: { id: 'account.hide_reblogs', defaultMessage: 'Hide boosts from @{name}' },
showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
@ -306,7 +306,7 @@ class Header extends ImmutablePureComponent {
<div className='account__header__extra__links'>
<NavLink isActive={this.isStatusesPageActive} activeClassName='active' to={`/accounts/${account.get('id')}`} title={intl.formatNumber(account.get('statuses_count'))}>
<strong>{shortNumberFormat(account.get('statuses_count'))}</strong> <FormattedMessage id='account.posts' defaultMessage='Toots' />
<strong>{shortNumberFormat(account.get('statuses_count'))}</strong> <FormattedMessage id='account.posts' defaultMessage='Posts' />
</NavLink>
<NavLink exact activeClassName='active' to={`/accounts/${account.get('id')}/following`} title={intl.formatNumber(account.get('following_count'))}>

View File

@ -113,8 +113,8 @@ export default class Header extends ImmutablePureComponent {
{!hideTabs && (
<div className='account__section-headline'>
<NavLink exact to={`/accounts/${account.get('id')}`}><FormattedMessage id='account.posts' defaultMessage='Toots' /></NavLink>
<NavLink exact to={`/accounts/${account.get('id')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Toots and replies' /></NavLink>
<NavLink exact to={`/accounts/${account.get('id')}`}><FormattedMessage id='account.posts' defaultMessage='Posts' /></NavLink>
<NavLink exact to={`/accounts/${account.get('id')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Posts and replies' /></NavLink>
<NavLink exact to={`/accounts/${account.get('id')}/media`}><FormattedMessage id='account.media' defaultMessage='Media' /></NavLink>
</div>
)}

View File

@ -95,7 +95,7 @@ class AccountTimeline extends ImmutablePureComponent {
);
}
const emptyMessage = blockedBy ? <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' /> : <FormattedMessage id='empty_column.account_timeline' defaultMessage='No toots here!' />;
const emptyMessage = blockedBy ? <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' /> : <FormattedMessage id='empty_column.account_timeline' defaultMessage='No posts here!' />;
return (
<Column>

View File

@ -6,7 +6,7 @@ import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },

View File

@ -27,7 +27,7 @@ const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u20
const messages = defineMessages({
placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' },
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },
publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },
publish: { id: 'compose_form.publish', defaultMessage: 'Post' },
publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' },
});

View File

@ -10,9 +10,9 @@ import classNames from 'classnames';
const messages = defineMessages({
federate_short: { id: 'federation.federated.short', defaultMessage: 'Federated' },
federate_long: { id: 'federation.federated.long', defaultMessage: 'Allow toot to reach other instances' },
federate_long: { id: 'federation.federated.long', defaultMessage: 'Allow post to reach other instances' },
local_only_short: { id: 'federation.local_only.short', defaultMessage: 'Local-only' },
local_only_long: { id: 'federation.local_only.long', defaultMessage: 'Restrict this toot only to my instance' },
local_only_long: { id: 'federation.local_only.long', defaultMessage: 'Restrict this post only to my instance' },
change_federation: { id: 'federation.change', defaultMessage: 'Adjust status federation' },
});

View File

@ -73,7 +73,7 @@ class SearchResults extends ImmutablePureComponent {
count += results.get('statuses').size;
statuses = (
<div className='search-results__section'>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
{results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}
</div>
@ -81,10 +81,10 @@ class SearchResults extends ImmutablePureComponent {
} else if(results.get('statuses') && results.get('statuses').size === 0 && !searchEnabled && !(searchTerm.startsWith('@') || searchTerm.startsWith('#') || searchTerm.includes(' '))) {
statuses = (
<div className='search-results__section'>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
<h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
<div className='search-results__info'>
<FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching toots by their content is not enabled on this Mastodon server.' />
<FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching posts by their content is not enabled on this server.' />
</div>
</div>
);

View File

@ -19,7 +19,7 @@ const WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning
}
if (hashtagWarning) {
return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag." />} />;
}
if (directMessageWarning) {

View File

@ -12,7 +12,6 @@ import Motion from '../ui/util/optional_motion';
import spring from 'react-motion/lib/spring';
import SearchResultsContainer from './containers/search_results_container';
import { changeComposing } from '../../actions/compose';
import elephantUIPlane from '../../../images/elephant_ui_plane.svg';
import { mascot } from '../../initial_state';
import Icon from 'mastodon/components/icon';
@ -24,7 +23,7 @@ const messages = defineMessages({
community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' },
});
const mapStateToProps = (state, ownProps) => ({
@ -32,6 +31,13 @@ const mapStateToProps = (state, ownProps) => ({
showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage,
});
let instanceMascot;
if (mascot) {
instanceMascot = <img alt='' draggable='false' src={mascot} />;
} else {
instanceMascot = <svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' id='hometownlogo' preserveAspectRatio='xMidYMid meet' width='100%' height='100%' viewBox='25 40 50 20'><g><path d='M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z'/><path d='M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z'/><path d='M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z'/><path d='M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z'/><path d='M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z'/><path d='M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z'/><path d='M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z'/></g></svg>;
}
export default @connect(mapStateToProps)
@injectIntl
class Compose extends React.PureComponent {
@ -110,7 +116,7 @@ class Compose extends React.PureComponent {
<ComposeFormContainer />
<div className='drawer__inner__mastodon'>
<img alt='' draggable='false' src={mascot || elephantUIPlane} />
{instanceMascot}
</div>
</div>}

View File

@ -71,7 +71,7 @@ class Favourites extends ImmutablePureComponent {
const { intl, shouldUpdateScroll, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
const pinned = !!columnId;
const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite toots yet. When you favourite one, it will show up here." />;
const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite posts yet. When you favourite one, it will show up here." />;
return (
<Column ref={this.setRef} label={intl.formatMessage(messages.heading)}>

View File

@ -46,7 +46,7 @@ class Favourites extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this toot yet. When someone does, they will show up here.' />;
const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this post yet. When someone does, they will show up here.' />;
return (
<Column>

View File

@ -27,7 +27,7 @@ const messages = defineMessages({
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },

View File

@ -74,22 +74,22 @@ const FrameInteractions = ({ onNext }) => (
<div className='introduction__text introduction__text--columnized'>
<div>
<h3><FormattedMessage id='introduction.interactions.reply.headline' defaultMessage='Reply' /></h3>
<p><FormattedMessage id='introduction.interactions.reply.text' defaultMessage="You can reply to other people's and your own toots, which will chain them together in a conversation." /></p>
<p><FormattedMessage id='introduction.interactions.reply.text' defaultMessage="You can reply to other people's and your own posts, which will chain them together in a conversation." /></p>
</div>
<div>
<h3><FormattedMessage id='introduction.interactions.reblog.headline' defaultMessage='Boost' /></h3>
<p><FormattedMessage id='introduction.interactions.reblog.text' defaultMessage="You can share other people's toots with your followers by boosting them." /></p>
<p><FormattedMessage id='introduction.interactions.reblog.text' defaultMessage="You can share other people's posts with your followers by boosting them." /></p>
</div>
<div>
<h3><FormattedMessage id='introduction.interactions.favourite.headline' defaultMessage='Favourite' /></h3>
<p><FormattedMessage id='introduction.interactions.favourite.text' defaultMessage='You can save a toot for later, and let the author know that you liked it, by favouriting it.' /></p>
<p><FormattedMessage id='introduction.interactions.favourite.text' defaultMessage='You can save a post for later, and let the author know that you liked it, by favouriting it.' /></p>
</div>
</div>
<div className='introduction__action'>
<button className='button' onClick={onNext}><FormattedMessage id='introduction.interactions.action' defaultMessage='Finish toot-orial!' /></button>
<button className='button' onClick={onNext}><FormattedMessage id='introduction.interactions.action' defaultMessage='Finish tutorial!' /></button>
</div>
</div>
);

View File

@ -82,7 +82,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
</tr>
<tr>
<td><kbd>alt</kbd>+<kbd>n</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new toot' /></td>
<td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new post' /></td>
</tr>
<tr>
<td><kbd>backspace</kbd></td>
@ -126,7 +126,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>p</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned toots list' /></td>
<td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned posts list' /></td>
</tr>
<tr>
<td><kbd>g</kbd>+<kbd>u</kbd></td>

View File

@ -10,7 +10,7 @@ import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
heading: { id: 'column.pins', defaultMessage: 'Pinned toot' },
heading: { id: 'column.pins', defaultMessage: 'Pinned post' },
});
const mapStateToProps = state => ({

View File

@ -46,7 +46,7 @@ class Reblogs extends ImmutablePureComponent {
);
}
const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this toot yet. When someone does, they will show up here.' />;
const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this post yet. When someone does, they will show up here.' />;
return (
<Column>

View File

@ -33,7 +33,7 @@ const componentMap = {
};
const messages = defineMessages({
publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },
publish: { id: 'compose_form.publish', defaultMessage: 'Post' },
});
const shouldHideFAB = path => path.match(/^\/statuses\/|^\/search|^\/getting-started/);

View File

@ -55,7 +55,7 @@ import { previewState as previewVideoState } from './components/video_modal';
import '../../components/status';
const messages = defineMessages({
beforeUnload: { id: 'ui.beforeunload', defaultMessage: 'Your draft will be lost if you leave Mastodon.' },
beforeUnload: { id: 'ui.beforeunload', defaultMessage: 'Your draft will be lost if you leave.' },
});
const mapStateToProps = state => ({

View File

@ -23,7 +23,7 @@
"account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Toots",
"account.posts": "Posts",
"account.posts_with_replies": "Toots y rempuestes",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval. Click to cancel follow request",
@ -67,7 +67,7 @@
"community.column_settings.media_only": "Media Only",
"compose_form.direct_message_warning": "Esti toot namái va unviase a los usuarios mentaos.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"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.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.placeholder": "¿En qué pienses?",
@ -123,7 +123,7 @@
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
"empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "Entá nun tienes denguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
@ -171,13 +171,13 @@
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Finish toot-orial!",
"introduction.interactions.action": "Finish tutorial!",
"introduction.interactions.favourite.headline": "Favourite",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.favourite.text": "You can save a post for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reblog.text": "You can share other people's posts with your followers by boosting them.",
"introduction.interactions.reply.headline": "Reply",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.interactions.reply.text": "You can reply to other people's and your own posts, which will chain them together in a conversation.",
"introduction.welcome.action": "Let's go!",
"introduction.welcome.headline": "First steps",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",

View File

@ -67,7 +67,7 @@
"community.column_settings.media_only": "Media Only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"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.placeholder": "Какво си мислиш?",
@ -123,8 +123,8 @@
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
@ -175,12 +175,12 @@
"introduction.interactions.favourite.headline": "Favourite",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reblog.text": "You can share other people's posts with your followers by boosting them.",
"introduction.interactions.reply.headline": "Reply",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.interactions.reply.text": "You can reply to other people's and your own posts, which will chain them together in a conversation.",
"introduction.welcome.action": "Let's go!",
"introduction.welcome.headline": "First steps",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special it hosts your profile, so remember its name.",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "to boost",
@ -202,7 +202,7 @@
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.requests": "to open follow requests list",
@ -249,7 +249,7 @@
"navigation_bar.logout": "Излизане",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Предпочитания",
"navigation_bar.profile_directory": "Profile directory",
"navigation_bar.public_timeline": "Публичен канал",
@ -318,7 +318,7 @@
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.statuses": "Posts",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",

View File

@ -23,7 +23,7 @@
"account.mute": "Silencia @{name}",
"account.mute_notifications": "Notificacions desactivades de @{name}",
"account.muted": "Silenciat",
"account.posts": "Toots",
"account.posts": "Posts",
"account.posts_with_replies": "Toots i respostes",
"account.report": "Informe @{name}",
"account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment",

View File

@ -173,9 +173,9 @@
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Slut tutorial!",
"introduction.interactions.favourite.headline": "Favorisere",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.favourite.text": "You can save a post for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reblog.text": "You can share other people's posts with your followers by boosting them.",
"introduction.interactions.reply.headline": "Svar",
"introduction.interactions.reply.text": "Du kan svare andres og din egen bidrag, hvilke vil kæde dem sammen i en konversation.",
"introduction.welcome.action": "Læd os gå!",

View File

@ -409,7 +409,7 @@
"id": "status.filtered"
},
{
"defaultMessage": "Pinned toot",
"defaultMessage": "Pinned post",
"id": "status.pinned"
},
{
@ -493,11 +493,11 @@
{
"descriptors": [
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "account.posts"
},
{
"defaultMessage": "Toots and replies",
"defaultMessage": "Posts and replies",
"id": "account.posts_with_replies"
},
{
@ -556,7 +556,7 @@
"id": "empty_column.account_unavailable"
},
{
"defaultMessage": "No toots here!",
"defaultMessage": "No posts here!",
"id": "empty_column.account_timeline"
}
],
@ -641,7 +641,7 @@
"id": "account.show_reblogs"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -709,7 +709,7 @@
"id": "account.badges.bot"
},
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "account.posts"
},
{
@ -765,7 +765,7 @@
"id": "account.edit_profile"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -814,7 +814,7 @@
"id": "compose_form.spoiler_placeholder"
},
{
"defaultMessage": "Toot",
"defaultMessage": "Post",
"id": "compose_form.publish"
},
{
@ -892,7 +892,7 @@
"id": "federation.federated.short"
},
{
"defaultMessage": "Allow toot to reach other instances",
"defaultMessage": "Allow post to reach other instances",
"id": "federation.federated.long"
},
{
@ -900,7 +900,7 @@
"id": "federation.local_only.short"
},
{
"defaultMessage": "Restrict this toot only to my instance",
"defaultMessage": "Restrict this post only to my instance",
"id": "federation.local_only.long"
},
{
@ -1030,7 +1030,7 @@
"id": "search_results.accounts"
},
{
"defaultMessage": "Toots",
"defaultMessage": "Posts",
"id": "search_results.statuses"
},
{
@ -1153,11 +1153,11 @@
"id": "compose_form.lock_disclaimer.lock"
},
{
"defaultMessage": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"defaultMessage": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"id": "compose_form.hashtag_warning"
},
{
"defaultMessage": "This toot will only be sent to all the mentioned users.",
"defaultMessage": "This post will only be sent to all the mentioned users.",
"id": "compose_form.direct_message_warning"
},
{
@ -1198,7 +1198,7 @@
"id": "navigation_bar.logout"
},
{
"defaultMessage": "Compose new toot",
"defaultMessage": "Compose new post",
"id": "navigation_bar.compose"
}
],
@ -1241,7 +1241,7 @@
"id": "column.favourites"
},
{
"defaultMessage": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"defaultMessage": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"id": "empty_column.favourited_statuses"
}
],
@ -1250,7 +1250,7 @@
{
"descriptors": [
{
"defaultMessage": "No one has favourited this toot yet. When someone does, they will show up here.",
"defaultMessage": "No one has favourited this post yet. When someone does, they will show up here.",
"id": "empty_column.favourites"
}
],
@ -1359,7 +1359,7 @@
"id": "navigation_bar.mutes"
},
{
"defaultMessage": "Pinned toots",
"defaultMessage": "Pinned posts",
"id": "navigation_bar.pins"
},
{
@ -1520,7 +1520,7 @@
"id": "introduction.interactions.reply.headline"
},
{
"defaultMessage": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"defaultMessage": "You can reply to other people's and your own posts, which will chain them together in a conversation.",
"id": "introduction.interactions.reply.text"
},
{
@ -1528,7 +1528,7 @@
"id": "introduction.interactions.reblog.headline"
},
{
"defaultMessage": "You can share other people's toots with your followers by boosting them.",
"defaultMessage": "You can share other people's posts with your followers by boosting them.",
"id": "introduction.interactions.reblog.text"
},
{
@ -1536,11 +1536,11 @@
"id": "introduction.interactions.favourite.headline"
},
{
"defaultMessage": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"defaultMessage": "You can save a post for later, and let the author know that you liked it, by favouriting it.",
"id": "introduction.interactions.favourite.text"
},
{
"defaultMessage": "Finish toot-orial!",
"defaultMessage": "Finish tutorial!",
"id": "introduction.interactions.action"
}
],
@ -1609,7 +1609,7 @@
"id": "keyboard_shortcuts.compose"
},
{
"defaultMessage": "to start a brand new toot",
"defaultMessage": "to start a brand new post",
"id": "keyboard_shortcuts.toot"
},
{
@ -1653,7 +1653,7 @@
"id": "keyboard_shortcuts.favourites"
},
{
"defaultMessage": "to open pinned toots list",
"defaultMessage": "to open pinned posts list",
"id": "keyboard_shortcuts.pinned"
},
{
@ -1932,7 +1932,7 @@
{
"descriptors": [
{
"defaultMessage": "Pinned toot",
"defaultMessage": "Pinned post",
"id": "column.pins"
}
],
@ -1954,7 +1954,7 @@
{
"descriptors": [
{
"defaultMessage": "No one has boosted this toot yet. When someone does, they will show up here.",
"defaultMessage": "No one has boosted this post yet. When someone does, they will show up here.",
"id": "status.reblogs.empty"
}
],
@ -2210,7 +2210,7 @@
{
"descriptors": [
{
"defaultMessage": "Toot",
"defaultMessage": "Post",
"id": "compose_form.publish"
}
],
@ -2517,4 +2517,4 @@
],
"path": "app/javascript/mastodon/features/video/index.json"
}
]
]

View File

@ -23,8 +23,8 @@
"account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Toots",
"account.posts_with_replies": "Toots and replies",
"account.posts": "Posts",
"account.posts_with_replies": "Posts and replies",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval. Click to cancel follow request",
"account.share": "Share @{name}'s profile",
@ -54,7 +54,7 @@
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned toots",
"column.pins": "Pinned posts",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
@ -65,9 +65,9 @@
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.media_only": "Media Only",
"compose_form.direct_message_warning": "This toot will only be sent to the mentioned users.",
"compose_form.direct_message_warning": "This post will only be sent to the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"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.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.placeholder": "What's on your mind?",
@ -75,8 +75,8 @@
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.publish": "Post",
"compose_form.publish_loud": "{publish}",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive",
@ -117,14 +117,14 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_timeline": "No posts here!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
@ -135,9 +135,9 @@
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.long": "Allow post to reach other instances",
"federation.federated.short": "Federated",
"federation.local_only.long": "Restrict this toot only to my instance",
"federation.local_only.long": "Restrict this post only to my instance",
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
@ -174,11 +174,11 @@
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Finish tutorial!",
"introduction.interactions.favourite.headline": "Favourite",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.favourite.text": "You can save a post for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reblog.text": "You can share other people's posts with your followers by boosting them.",
"introduction.interactions.reply.headline": "Reply",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.interactions.reply.text": "You can reply to other people's and your own posts, which will chain them together in a conversation.",
"introduction.welcome.action": "Let's go!",
"introduction.welcome.headline": "First steps",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
@ -203,7 +203,7 @@
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.requests": "to open follow requests list",
@ -211,7 +211,7 @@
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.post": "to start a brand new post",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
@ -235,7 +235,7 @@
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
@ -250,7 +250,7 @@
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
"navigation_bar.profile_directory": "Profile directory",
"navigation_bar.public_timeline": "Federated timeline",
@ -319,7 +319,7 @@
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.statuses": "Posts",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
@ -342,12 +342,12 @@
"status.mute_conversation": "Mute conversation",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned toot",
"status.pinned": "Pinned post",
"status.read_more": "Read more",
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
@ -379,7 +379,7 @@
"upload_button.label": "Add media ({formats})",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description": "Describe for visually impaired users",
"upload_form.focus": "Change preview",
"upload_form.undo": "Delete",
"upload_progress.label": "Uploading...",

View File

@ -318,7 +318,7 @@
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.statuses": "Posts",
"search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",

View File

@ -0,0 +1,21 @@
export function svgSelect(light, dark) {
var svgbg = window.getComputedStyle(document.getElementsByClassName("drawer__inner")[0], null).getPropertyValue("background-color");
var rgbArray = ((svgbg.replace(/[^0-9,]/g, "")).split(",")).map(Number).map(x => x/255);
for ( var i = 0; i < rgbArray.length; ++i ) {
if ( rgbArray[i] <= 0.03928 ) {
rgbArray[i] = rgbArray[i] / 12.92
} else {
rgbArray[i] = Math.pow( ( rgbArray[i] + 0.055 ) / 1.055, 2.4);
}
}
var luminance = 0.2126 * rgbArray[0] + 0.7152 * rgbArray[1] + 0.0722 * rgbArray[2];
if ( luminance <= 0.179 ) {
return light;
} else {
return dark;
}
}

View File

@ -240,7 +240,7 @@ html {
}
.drawer__inner__mastodon {
background: $pink url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-lighter-color)}"/></svg>') no-repeat bottom / 100% auto;
background: $pink;
}
// Change the colors used in compose-form

View File

@ -218,6 +218,11 @@ h1 {
line-height: 36px;
}
.column-cell a h1 {
margin: 0 8px 10px;
line-height: 26px;
}
h2 {
font-size: 23px;
line-height: 30px;

View File

@ -147,7 +147,7 @@ html {
}
.drawer__inner__mastodon {
background: $white url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-color)}"/></svg>') no-repeat bottom / 100% auto;
background: $white;
}
// Change the colors used in compose-form

View File

@ -658,6 +658,8 @@ $small-breakpoint: 960px;
justify-content: center;
align-items: center;
padding: 50px;
font-family: $font-display, sans-serif;
font-weight: bold;
svg {
fill: $primary-text-color;
@ -834,6 +836,22 @@ $small-breakpoint: 960px;
.brand {
position: relative;
text-decoration: none;
color: $secondary-text-color;
}
a.brand {
color: $primary-text-color;
}
h1 a.brand {
color: $secondary-text-color;
font-size: 3.8em;
}
.originalmascotimg svg {
width: 200px;
fill: $secondary-text-color;
margin-top: -25px;
}
.brand__tagline {
@ -853,4 +871,3 @@ $small-breakpoint: 960px;
color: $dark-text-color;
}
}

View File

@ -109,6 +109,12 @@ body {
height: auto;
margin-top: -120px;
}
h1 {
a.brand {
font-size: 36px;
}
}
}
h1 {

View File

@ -2364,7 +2364,7 @@ a.account__display-name {
}
.drawer__inner__mastodon {
background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-color)}"/></svg>') no-repeat bottom / 100% auto;
background: lighten($ui-base-color, 13%);
flex: 1;
min-height: 47px;
display: none;
@ -3051,9 +3051,8 @@ a.status-card.compact:hover {
}
&__figure {
background: url('../images/elephant_ui_working.svg') no-repeat center 0;
width: 100%;
height: 160px;
height: 10px;
background-size: contain;
position: absolute;
top: 50%;
@ -3063,14 +3062,10 @@ a.status-card.compact:hover {
&.missing-indicator {
padding-top: 20px + 48px;
.regeneration-indicator__figure {
background-image: url('../images/elephant_ui_disappointed.svg');
}
}
&__label {
margin-top: 200px;
margin-top: 0px;
strong {
display: block;
@ -6042,6 +6037,14 @@ noscript {
}
}
.drawer__inner__mastodon svg#hometownlogo {
position: absolute;
fill: $secondary-text-color;
width: 100px;
height: 100px;
bottom: 0;
}
div.status__content,
div.status__content--with-action,
div.status__content--with-spoiler {

View File

@ -191,6 +191,29 @@
}
}
.originalhero {
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
align-content: space-between;
svg {
fill: $secondary-text-color;
height: 200px;
}
h1 {
flex-grow: 2;
text-align: center;
white-space: nowrap;
font-family: $font-display, sans-serif;
font-size: 0.6rem;
}
}
.public-layout {
@media screen and (max-width: $no-gap-breakpoint) {
padding-top: 48px;
@ -256,6 +279,7 @@
.brand {
display: block;
padding: 15px;
white-space: nowrap;
svg {
display: block;
@ -391,8 +415,42 @@
border-radius: 4px 4px 0 0;
}
.originalheader {
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
align-content: space-between;
svg {
fill: $secondary-text-color;
height: 300px;
}
h1 {
flex-grow: 2;
text-align: center;
white-space: nowrap;
font-family: $font-display, sans-serif;
}
}
@media screen and (max-width: 600px) {
height: 200px;
.originalheader {
svg {
height: 200px;
}
h1 {
font-size: 0.5rem;
}
}
}
}

View File

@ -15,7 +15,6 @@
> * {
flex: 1;
max-height: 235px;
background: url('../images/elephant_ui_plane.svg') no-repeat left bottom / contain;
}
}

View File

@ -17,7 +17,7 @@ class UserMailer < Devise::Mailer
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.unconfirmed_email.presence || @resource.email,
subject: I18n.t(@resource.pending_reconfirmation? ? 'devise.mailer.reconfirmation_instructions.subject' : 'devise.mailer.confirmation_instructions.subject', instance: @instance),
subject: I18n.t(@resource.pending_reconfirmation? ? 'devise.mailer.reconfirmation_instructions.subject' : 'devise.mailer.confirmation_instructions.subject', instance: @instance, title: Setting.site_title),
template_name: @resource.pending_reconfirmation? ? 'reconfirmation_instructions' : 'confirmation_instructions'
end
end
@ -30,7 +30,7 @@ class UserMailer < Devise::Mailer
return if @resource.disabled?
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.email, subject: I18n.t('devise.mailer.reset_password_instructions.subject')
mail to: @resource.email, subject: I18n.t('devise.mailer.reset_password_instructions.subject', title: Setting.site_title)
end
end
@ -41,7 +41,7 @@ class UserMailer < Devise::Mailer
return if @resource.disabled?
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.email, subject: I18n.t('devise.mailer.password_change.subject')
mail to: @resource.email, subject: I18n.t('devise.mailer.password_change.subject', title: Setting.site_title)
end
end
@ -52,7 +52,7 @@ class UserMailer < Devise::Mailer
return if @resource.disabled?
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject')
mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject', title: Setting.site_title)
end
end
@ -63,7 +63,7 @@ class UserMailer < Devise::Mailer
return if @resource.disabled?
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.email, subject: I18n.t('user_mailer.welcome.subject')
mail to: @resource.email, subject: I18n.t('user_mailer.welcome.subject', title: Setting.site_title)
end
end
@ -75,7 +75,7 @@ class UserMailer < Devise::Mailer
return if @resource.disabled?
I18n.with_locale(@resource.locale || I18n.default_locale) do
mail to: @resource.email, subject: I18n.t('user_mailer.backup_ready.subject')
mail to: @resource.email, subject: I18n.t('user_mailer.backup_ready.subject', title: Setting.site_title)
end
end

View File

@ -1,6 +1,6 @@
= simple_form_for(new_user, url: user_registration_path) do |f|
.simple_form__overlay-area
%p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
%p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_title))
.fields-group
= f.simple_fields_for :account do |account_fields|

View File

@ -9,7 +9,14 @@
.column-0
.public-account-header.public-account-header--no-bar
.public-account-header__image
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
- if @instance_presenter.hero.present? || @instance_presenter.thumbnail.present?
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url, alt: @instance_presenter.site_title, class: 'parallax'
- else
%div{:class => ("originalheader")}
= svg_logo
%h1
= link_to root_url, class: 'brand' do
= site_title
.column-1
.landing-page__call-to-action{ dir: 'ltr' }
@ -24,8 +31,13 @@
%strong= number_with_delimiter @instance_presenter.status_count
%span= t 'about.status_count_after', count: @instance_presenter.status_count
.row__mascot
.landing-page__mascot
= image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: ''
- if @instance_presenter.mascot&.file&.url
.landing-page__mascot
= image_tag @instance_presenter.mascot&.file&.url
- else
.landing-page__mascot{:class => ("originalmascot")}
%div{:class => ("originalmascotimg")}
= svg_logo
.column-2
.landing-page__information.contact-widget

View File

@ -7,9 +7,9 @@
.landing
.landing__brand
= link_to root_url, class: 'brand' do
= svg_logo_full
%span.brand__tagline=t 'about.tagline'
%h1
= link_to root_url, class: 'brand' do
= site_title
.landing__grid
.landing__grid__column.landing__grid__column-registration
@ -35,22 +35,29 @@
%h4
= fa_icon 'globe fw'
= t('about.see_whats_happening')
%small= t('about.browse_public_posts')
%small= t('about.browse_public_posts', title: site_title)
.directory__tag
= link_to 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener' do
%h4
= fa_icon 'tablet fw'
= t('about.get_apps')
%small= t('about.apps_platforms')
%small= t('about.apps_platforms', title: site_title)
.landing__grid__column.landing__grid__column-login
.box-widget
= render 'login'
.hero-widget
.hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
- if @instance_presenter.hero.present? || @instance_presenter.thumbnail.present?
.hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url, alt: @instance_presenter.site_title
- else
%div{:class => ("originalhero")}
= svg_logo
%h1
= link_to root_url, class: 'brand' do
= site_title
- if @instance_presenter.site_short_description.present?
.hero-widget__text

View File

@ -57,7 +57,7 @@
%h4= t 'admin.dashboard.software'
%ul
%li
Mastodon
Hometown
%span.pull-right= @version
%li
Ruby

View File

@ -1,6 +1,7 @@
.hero-widget
.hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
- if @instance_presenter.hero.present? || @instance_presenter.thumbnail.present?
.hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url, alt: @instance_presenter.site_title
.hero-widget__text
%p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)

View File

@ -1,5 +1,5 @@
%h4= t 'sessions.title'
%p.muted-hint= t 'sessions.explanation'
%p.muted-hint= t('sessions.explanation', title: site_title)
.table-wrapper
%table.table.inline-table

View File

@ -11,7 +11,7 @@
.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
%noscript
= image_pack_tag 'logo.svg', alt: 'Mastodon'
= image_pack_tag 'logo.svg', alt: site_title
%div
= t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps')
= t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps', title: site_title)

View File

@ -5,8 +5,7 @@
.admin-wrapper
.sidebar-wrapper
.sidebar
= link_to root_path do
= image_pack_tag 'logo.svg', class: 'logo', alt: 'Mastodon'
%div{:class => ("logo")}
= render_navigation
.content-wrapper

View File

@ -35,5 +35,5 @@
= content_for?(:content) ? yield(:content) : yield
%div{ style: 'display: none'}
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg')
= render file: Rails.root.join('app', 'javascript', 'images', 'hometown.svg')
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_full.svg')

View File

@ -5,8 +5,8 @@
.container-alt
.logo-container
%h1
= link_to root_path do
= svg_logo_full
= link_to root_path, class: 'brand' do
= site_title
.form-container
= render 'flashes'

View File

@ -8,10 +8,11 @@
= stylesheet_pack_tag 'common', media: 'all'
= stylesheet_pack_tag Setting.default_settings['theme'], media: 'all'
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= javascript_pack_tag 'error', integrity: true, crossorigin: 'anonymous'
%body.error
.dialog
.dialog__illustration
%img{ alt: Setting.default_settings['site_title'], src: '/oops.png' }/
%h1
= link_to root_url, class: 'brand' do
= site_title
.dialog__message
%h1= yield :content

View File

@ -24,7 +24,8 @@
%tr
%td.column-cell
= link_to root_url do
= image_tag full_pack_url('media/images/mailer/logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo'
%h1
= site_title
= yield
@ -49,4 +50,5 @@
%p= link_to t('application_mailer.notification_preferences'), settings_preferences_notifications_url
%td.column-cell.text-right
= link_to root_url do
= image_tag full_pack_url('media/images/mailer/logo_transparent.png'), alt: 'Mastodon', height: 24
%h4
= site_title

View File

@ -8,7 +8,7 @@
%nav.header
.nav-left
= link_to root_url, class: 'brand' do
= svg_logo_full
= site_title
= link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory
= link_to t('about.about_this'), about_more_path, class: 'nav-link optional'

View File

@ -8,7 +8,7 @@
.page-header
%h1= t('about.see_whats_happening')
%p= t('about.browse_public_posts')
%p= t('about.browse_public_posts', title: site_title)
#mastodon-timeline{ data: { props: Oj.dump(default_props) }}
#modal-container

View File

@ -45,7 +45,7 @@
.fields-row__column.fields-group.fields-row__column-6
%h6= t('verification.verification')
%p.hint= t('verification.explanation_html')
%p.hint= t('verification.explanation_html', instance: site_hostname)
.input-copy
.input-copy__wrapper

View File

@ -36,7 +36,7 @@
%tbody
%tr
%td.column-cell.text-center
%p= t 'user_mailer.backup_ready.explanation'
%p= t('user_mailer.backup_ready.explanation', title: site_title)
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody

View File

@ -57,4 +57,4 @@
%tbody
%tr
%td.column-cell.text-center.padded
%p= t 'devise.mailer.reconfirmation_instructions.extra'
%p= t 'devise.mailer.reconfirmation_instructions.extra', title: site_title

View File

@ -135,7 +135,7 @@
%h5= t 'user_mailer.welcome.tips'
%ul
%li
%span= t 'user_mailer.welcome.tip_mobile_webapp'
%span= t 'user_mailer.welcome.tip_mobile_webapp', instance: @instance
%li
%span= t 'user_mailer.welcome.tip_following'
%li

View File

@ -23,28 +23,28 @@ en:
explanation: You have created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.
explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can't login until then. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email.
extra_html: Please also check out <a href="%{terms_path}">the rules of the server</a> and <a href="%{policy_path}">our terms of service</a>.
subject: 'Mastodon: Confirmation instructions for %{instance}'
subject: '%{title}: Confirmation instructions'
title: Verify email address
email_changed:
explanation: 'The email address for your account is being changed to:'
extra: If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
subject: 'Mastodon: Email changed'
subject: '%{title}: Email changed'
title: New email address
password_change:
explanation: The password for your account has been changed.
extra: If you did not change your password, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
subject: 'Mastodon: Password changed'
subject: '%{title}: Password changed'
title: Password changed
reconfirmation_instructions:
explanation: Confirm the new address to change your email.
extra: If this change wasn't initiated by you, please ignore this email. The email address for the Mastodon account won't change until you access the link above.
subject: 'Mastodon: Confirm email for %{instance}'
extra: If this change wasn't initiated by you, please ignore this email. The email address for the %{title} account won't change until you access the link above.
subject: '%{title}: Confirm email'
title: Verify email address
reset_password_instructions:
action: Change password
explanation: You requested a new password for your account.
extra: If you didn't request this, please ignore this email. Your password won't change until you access the link above and create a new one.
subject: 'Mastodon: Reset password instructions'
subject: '%{title}: Reset password instructions'
title: Password reset
unlock_instructions:
subject: 'Mastodon: Unlock instructions'

View File

@ -1,17 +1,17 @@
---
en:
about:
about_hashtag_html: These are public toots tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
about_hashtag_html: These are public posts tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
about_mastodon_html: Hometown is adapted from Mastodon, a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
about_this: About
active_count_after: active
active_footnote: Monthly Active Users (MAU)
administered_by: 'Administered by:'
api: API
apps: Mobile apps
apps_platforms: Use Mastodon from iOS, Android and other platforms
apps_platforms: Use %{title} from iOS, Android and other platforms
browse_directory: Browse a profile directory and filter by interests
browse_public_posts: Browse a live stream of public posts on Mastodon
browse_public_posts: Browse a live stream of public posts on %{title}
contact: Contact
contact_missing: Not set
contact_unavailable: N/A
@ -20,10 +20,10 @@ en:
extended_description_html: |
<h3>A good place for rules</h3>
<p>The extended description has not been set up yet.</p>
federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
generic_description: "%{domain} is one server in the network"
federation_hint_html: With an account on %{instance} you'll be able to follow people on any Hometown or Mastodon server and beyond.
generic_description: "%{domain} is one server in the federated network"
get_apps: Try a mobile app
hosted_on: Mastodon hosted on %{domain}
hosted_on: Hometown hosted on %{domain}
learn_more: Learn more
privacy_policy: Privacy policy
see_whats_happening: See what's happening
@ -39,7 +39,7 @@ en:
one: user
other: users
user_count_before: Home to
what_is_mastodon: What is Mastodon?
what_is_mastodon: What is Hometown/Mastodon?
accounts:
choices_html: "%{name}'s choices:"
follow: Follow
@ -59,10 +59,10 @@ en:
pin_errors:
following: You must be already following the person you want to endorse
posts:
one: Toot
other: Toots
posts_tab_heading: Toots
posts_with_replies: Toots and replies
one: Post
other: Posts
posts_tab_heading: Posts
posts_with_replies: Posts and replies
reserved_username: The username is reserved
roles:
admin: Admin
@ -341,11 +341,11 @@ en:
relays:
add_new: Add new relay
delete: Delete
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public posts between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
disable: Disable
disabled: Disabled
enable: Enable
enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
enable_hint: Once enabled, your server will subscribe to all public posts from this relay, and will begin sending this server's public posts to it.
enabled: Enabled
inbox_url: Relay URL
pending: Waiting for relay's approval
@ -431,19 +431,19 @@ en:
open: Anyone can sign up
title: Registrations mode
show_known_fediverse_at_about_page:
desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show local toots.
desc_html: When toggled, it will show posts from all the known fediverse on preview. Otherwise it will only show local posts.
title: Show known fediverse on timeline preview
show_staff_badge:
desc_html: Show a staff badge on a user page
title: Show staff badge
site_description:
desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
desc_html: Introductory paragraph on the API. Describe what makes this Hometown server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
title: Server description
site_description_extended:
desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
title: Custom extended information
site_short_description:
desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph.
desc_html: Displayed in sidebar and meta tags. Describe what Hometown is and what makes this server special in a single paragraph.
title: Short server description
site_terms:
desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
@ -601,7 +601,7 @@ en:
'500':
content: We're sorry, but something went wrong on our end.
title: This page is not correct
noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the <a href="%{apps_path}">native apps</a> for Mastodon for your platform.
noscript_html: To use the %{title} web application, please enable JavaScript. Alternatively, try one of the <a href="%{apps_path}">native apps</a> for Hometown/Mastodon for your platform.
existing_username_validator:
not_found: could not find a local user with that username
not_found_multiple: could not find %{usernames}
@ -609,7 +609,7 @@ en:
archive_takeout:
date: Date
download: Download your archive
hint_html: You can request an archive of your <strong>toots and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
hint_html: You can request an archive of your <strong>posts and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
in_progress: Compiling your archive...
request: Request your archive
size: Size
@ -669,7 +669,7 @@ en:
i_am_html: I am %{username} on %{service}.
identity: Identity
inactive: Inactive
publicize_checkbox: 'And toot this:'
publicize_checkbox: 'And post this:'
publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
status: Verification status
view_proof: View proof
@ -812,20 +812,20 @@ en:
remote_interaction:
favourite:
proceed: Proceed to favourite
prompt: 'You want to favourite this toot:'
prompt: 'You want to favourite this post:'
reblog:
proceed: Proceed to boost
prompt: 'You want to boost this toot:'
prompt: 'You want to boost this post:'
reply:
proceed: Proceed to reply
prompt: 'You want to reply to this toot:'
prompt: 'You want to reply to this post:'
remote_unfollow:
error: Error
title: Title
unfollowed: Unfollowed
scheduled_statuses:
over_daily_limit: You have exceeded the limit of %{limit} scheduled toots for that day
over_total_limit: You have exceeded the limit of %{limit} scheduled toots
over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for that day
over_total_limit: You have exceeded the limit of %{limit} scheduled posts
too_soon: The scheduled date must be in the future
sessions:
activity: Last activity
@ -850,7 +850,7 @@ en:
weibo: Weibo
current_session: Current session
description: "%{browser} on %{platform}"
explanation: These are the web browsers currently logged in to your Mastodon account.
explanation: These are the web browsers currently logged in to your %{title} account.
ip: IP
platforms:
adobe_air: Adobe Air
@ -873,7 +873,7 @@ en:
account_settings: Account settings
appearance: Appearance
authorized_apps: Authorized apps
back: Back to Mastodon
back: Back home
delete: Account deletion
development: Development
edit_profile: Edit profile
@ -907,9 +907,9 @@ en:
open_in_web: Open in web
over_character_limit: character limit of %{max} exceeded
pin_errors:
limit: You have already pinned the maximum number of toots
ownership: Someone else's toot cannot be pinned
private: Non-public toot cannot be pinned
limit: You have already pinned the maximum number of posts
ownership: Someone else's post cannot be pinned
private: Non-public post cannot be pinned
reblog: A boost cannot be pinned
poll:
total_votes:
@ -927,7 +927,7 @@ en:
unlisted: Unlisted
unlisted_long: Everyone can see, but not listed on public timelines
stream_entries:
pinned: Pinned toot
pinned: Pinned post
reblogged: boosted
sensitive_content: Sensitive content
terms:
@ -938,7 +938,7 @@ en:
<ul>
<li><em>Basic account information</em>: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.</li>
<li><em>Posts, following and other public information</em>: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.</li>
<li><em>Direct and followers-only posts</em>: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. <em>Please keep in mind that the operators of the server and any receiving server may view such messages</em>, and that recipients may screenshot, copy or otherwise re-share them. <em>Do not share any dangerous information over Mastodon.</em></li>
<li><em>Direct and followers-only posts</em>: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. <em>Please keep in mind that the operators of the server and any receiving server may view such messages</em>, and that recipients may screenshot, copy or otherwise re-share them. <em>Do not share any dangerous information over Hometown/Mastodon.</em></li>
<li><em>IPs and other metadata</em>: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.</li>
</ul>
@ -949,7 +949,7 @@ en:
<p>Any of the information we collect from you may be used in the following ways:</p>
<ul>
<li>To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.</li>
<li>To provide the core functionality of Hometown/Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.</li>
<li>To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.</li>
<li>The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.</li>
</ul>
@ -1041,14 +1041,14 @@ en:
wrong_code: The entered code was invalid! Are server time and device time correct?
user_mailer:
backup_ready:
explanation: You requested a full backup of your Mastodon account. It's now ready for download!
explanation: You requested a full backup of your %{title} account. It's now ready for download!
subject: Your archive is ready for download
title: Archive takeout
warning:
explanation:
disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
silence: While your account is limited, only people who are already following you will see your posts on this server, and you may be excluded from various public listings. However, others may still manually follow you.
suspend: Your account has been suspended, and all of your posts and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
review_server_policies: Review server policies
subject:
disable: Your account %{acct} has been frozen
@ -1070,11 +1070,11 @@ en:
full_handle_hint: This is what you would tell your friends so they can message or follow you from another server.
review_preferences_action: Change preferences
review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level youd like your posts to default to. If you dont have motion sickness, you could choose to enable GIF autoplay.
subject: Welcome to Mastodon
tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
subject: Welcome to %{title}
tip_federated_timeline: The federated timeline is a firehose view of the wider network. But it only includes people your neighbours are subscribed to, so it's not complete.
tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways!
tip_mobile_webapp: If your Android mobile browser prompts you to add %{instance} to your homescreen, you can receive push notifications from the web app. It acts like a native app in many ways! On iOS, you can still pin %{instance} to your homescreen, but you will not receive push notifications.
tips: Tips
title: Welcome aboard, %{name}!
users:
@ -1085,5 +1085,5 @@ en:
seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
signed_in_as: 'Signed in as:'
verification:
explanation_html: 'You can <strong>verify yourself as the owner of the links in your profile metadata</strong>. For that, the linked website must contain a link back to your Mastodon profile. The link back <strong>must</strong> have a <code>rel="me"</code> attribute. The text content of the link does not matter. Here is an example:'
explanation_html: 'You can <strong>verify yourself as the owner of the links in your profile metadata</strong>. For that, the linked website must contain a link back to your %{instance} profile. The link back <strong>must</strong> have a <code>rel="me"</code> attribute. The text content of the link does not matter. Here is an example:'
verification: Verification

View File

@ -1,7 +1,7 @@
---
en_GB:
about:
about_hashtag_html: These are public toots tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
about_hashtag_html: These are public posts tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
about_this: About
active_count_after: active
@ -59,10 +59,10 @@ en_GB:
pin_errors:
following: You must be already following the person you want to endorse
posts:
one: Toot
other: Toots
posts_tab_heading: Toots
posts_with_replies: Toots and replies
one: Post
other: Posts
posts_tab_heading: Posts
posts_with_replies: Posts and replies
reserved_username: The username is reserved
roles:
admin: Admin
@ -332,11 +332,11 @@ en_GB:
relays:
add_new: Add new relay
delete: Delete
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public posts between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
disable: Disable
disabled: Disabled
enable: Enable
enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
enable_hint: Once enabled, your server will subscribe to all public posts from this relay, and will begin sending this server's public posts to it.
enabled: Enabled
inbox_url: Relay URL
pending: Waiting for relay's approval
@ -422,7 +422,7 @@ en_GB:
open: Anyone can sign up
title: Registrations mode
show_known_fediverse_at_about_page:
desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show local toots.
desc_html: When toggled, it will show posts from all the known fediverse on preview. Otherwise it will only show local posts.
title: Show known fediverse on timeline preview
show_staff_badge:
desc_html: Show a staff badge on a user page
@ -589,7 +589,7 @@ en_GB:
archive_takeout:
date: Date
download: Download your archive
hint_html: You can request an archive of your <strong>toots and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
hint_html: You can request an archive of your <strong>posts and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
in_progress: Compiling your archive...
request: Request your archive
size: Size
@ -781,20 +781,20 @@ en_GB:
remote_interaction:
favourite:
proceed: Proceed to favourite
prompt: 'You want to favourite this toot:'
prompt: 'You want to favourite this post:'
reblog:
proceed: Proceed to boost
prompt: 'You want to boost this toot:'
prompt: 'You want to boost this post:'
reply:
proceed: Proceed to reply
prompt: 'You want to reply to this toot:'
prompt: 'You want to reply to this post:'
remote_unfollow:
error: Error
title: Title
unfollowed: Unfollowed
scheduled_statuses:
over_daily_limit: You have exceeded the limit of %{limit} scheduled toots for that day
over_total_limit: You have exceeded the limit of %{limit} scheduled toots
over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for that day
over_total_limit: You have exceeded the limit of %{limit} scheduled posts
too_soon: The scheduled date must be in the future
sessions:
activity: Last activity
@ -839,7 +839,7 @@ en_GB:
title: Sessions
settings:
authorized_apps: Authorized apps
back: Back to Mastodon
back: Back home
delete: Account deletion
development: Development
edit_profile: Edit profile
@ -870,9 +870,9 @@ en_GB:
open_in_web: Open in web
over_character_limit: character limit of %{max} exceeded
pin_errors:
limit: You have already pinned the maximum number of toots
ownership: Someone else's toot cannot be pinned
private: Non-public toot cannot be pinned
limit: You have already pinned the maximum number of posts
ownership: Someone else's post cannot be pinned
private: Non-public post cannot be pinned
reblog: A boost cannot be pinned
poll:
total_votes:
@ -890,7 +890,7 @@ en_GB:
unlisted: Unlisted
unlisted_long: Everyone can see, but not listed on public timelines
stream_entries:
pinned: Pinned toot
pinned: Pinned post
reblogged: boosted
sensitive_content: Sensitive content
terms:
@ -1008,8 +1008,8 @@ en_GB:
warning:
explanation:
disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
silence: While your account is limited, only people who are already following you will see your posts on this server, and you may be excluded from various public listings. However, others may still manually follow you.
suspend: Your account has been suspended, and all of your posts and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
review_server_policies: Review server policies
subject:
disable: Your account %{acct} has been frozen

View File

@ -3,10 +3,10 @@ en:
simple_form:
hints:
account_warning_preset:
text: You can use toot syntax, such as URLs, hashtags and mentions
text: You can use post syntax, such as URLs, hashtags and mentions
admin_account_action:
send_email_notification: The user will receive an explanation of what happened with their account
text_html: Optional. You can use toot syntax. You can <a href="%{path}">add warning presets</a> to save time
text_html: Optional. You can use post syntax. You can <a href="%{path}">add warning presets</a> to save time
type_html: Choose what to do with <strong>%{acct}</strong>
warning_preset_id: Optional. You can still add custom text to end of the preset
defaults:
@ -20,21 +20,21 @@ en:
fields: You can have up to 4 items displayed as a table on your profile
header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
inbox_url: Copy the URL from the frontpage of the relay you want to use
irreversible: Filtered toots will disappear irreversibly, even if filter is later removed
irreversible: Filtered posts will disappear irreversibly, even if filter is later removed
locale: The language of the user interface, e-mails and push notifications
locked: Requires you to manually approve followers
password: Use at least 8 characters
phrase: Will be matched regardless of casing in text or content warning of a toot
phrase: Will be matched regardless of casing in text or content warning of a post
scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
setting_aggregate_reblogs: Do not show new boosts for toots that have been recently boosted (only affects newly-received boosts)
setting_default_federation: Toots do not federate to other instances unless manually changed while composing
setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts)
setting_default_federation: Posts do not federate to other instances unless manually changed while composing
setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide all media
setting_display_media_show_all: Always show media marked as sensitive
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
setting_show_application: The application you use to toot will be displayed in the detailed view of your toots
setting_show_application: The application you use to post will be displayed in the detailed view of your posts
username: Your username will be unique on %{domain}
whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
featured_tag:
@ -46,7 +46,7 @@ en:
sessions:
otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
user:
chosen_languages: When checked, only toots in selected languages will be displayed in public timelines
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
labels:
account:
fields:
@ -94,20 +94,20 @@ en:
setting_aggregate_reblogs: Group boosts in timelines
setting_auto_play_gif: Auto-play animated GIFs
setting_boost_modal: Show confirmation dialog before boosting
setting_default_federation: Allow my toots to reach other instances by default
setting_default_federation: Allow my posts to reach other instances by default
setting_default_language: Posting language
setting_default_privacy: Posting privacy
setting_default_sensitive: Always mark media as sensitive
setting_delete_modal: Show confirmation dialog before deleting a toot
setting_delete_modal: Show confirmation dialog before deleting a post
setting_display_media: Media display
setting_display_media_default: Default
setting_display_media_hide_all: Hide all
setting_display_media_show_all: Show all
setting_expand_spoilers: Always expand toots marked with content warnings
setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your network
setting_noindex: Opt-out of search engine indexing
setting_reduce_motion: Reduce motion in animations
setting_show_application: Disclose application used to send toots
setting_show_application: Disclose application used to send posts
setting_system_font_ui: Use system's default font
setting_theme: Site theme
setting_unfollow_modal: Show confirmation dialog before unfollowing someone

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 22 KiB