diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index 0dbf0283d206e8959c2fbdfaab78835128deedfb..67bb2c87fa0bfabbd8d86ff8ec7bfae269521202 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -1,21 +1,17 @@ # frozen_string_literal: true class AboutController < ApplicationController - before_action :set_body_classes + layout 'public' + before_action :set_instance_presenter, only: [:show, :more, :terms] def show - serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer) - @initial_state_json = serializable_resource.to_json + @hide_navbar = true end - def more - render layout: 'public' - end + def more; end - def terms - render layout: 'public' - end + def terms; end private @@ -28,15 +24,4 @@ class AboutController < ApplicationController def set_instance_presenter @instance_presenter = InstancePresenter.new end - - def set_body_classes - @body_classes = 'with-modals' - end - - def initial_state_params - { - settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, - token: current_session&.token, - } - end end diff --git a/app/controllers/public_timelines_controller.rb b/app/controllers/public_timelines_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..53d4472d88da355af4d67d23501117dbfb0fee35 --- /dev/null +++ b/app/controllers/public_timelines_controller.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +class PublicTimelinesController < ApplicationController + layout 'public' + + before_action :check_enabled + before_action :set_body_classes + before_action :set_instance_presenter + + def show + respond_to do |format| + format.html do + @initial_state_json = ActiveModelSerializers::SerializableResource.new( + InitialStatePresenter.new(settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, token: current_session&.token), + serializer: InitialStateSerializer + ).to_json + end + end + end + + private + + def check_enabled + raise ActiveRecord::RecordNotFound unless Setting.timeline_preview + end + + def set_body_classes + @body_classes = 'with-modals' + end + + def set_instance_presenter + @instance_presenter = InstancePresenter.new + end +end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 4694c823a42c80968de3351f1f8b90c35a0c0160..729553e1e7f5e10328b8e9333ef24e598ad8f6c8 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -13,8 +13,10 @@ class TagsController < ApplicationController respond_to do |format| format.html do - serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer) - @initial_state_json = serializable_resource.to_json + @initial_state_json = ActiveModelSerializers::SerializableResource.new( + InitialStatePresenter.new(settings: {}, token: current_session&.token), + serializer: InitialStateSerializer + ).to_json end format.rss do @@ -25,8 +27,7 @@ class TagsController < ApplicationController end format.json do - @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local]) - .paginate_by_max_id(PAGE_SIZE, params[:max_id]) + @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local]).paginate_by_max_id(PAGE_SIZE, params[:max_id]) @statuses = cache_collection(@statuses, Status) render json: collection_presenter, @@ -55,11 +56,4 @@ class TagsController < ApplicationController items: @statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s) } ) end - - def initial_state_params - { - settings: {}, - token: current_session&.token, - } - end end diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index 9b3f1380b149b99d702e92cb5755f366f453859d..1f648649fe349ddafe217ea13a74ea70d6a036ac 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -56,4 +56,12 @@ module HomeHelper 'emojify' end end + + def optional_link_to(condition, path, options = {}, &block) + if condition + link_to(path, options, &block) + else + content_tag(:div, &block) + end + end end diff --git a/app/javascript/mastodon/containers/timeline_container.js b/app/javascript/mastodon/containers/timeline_container.js index a1a4bd024bce363dcbee32d5ab49640db4761c3a..54f8eb310817c01eeb833a95992651c8fc9cefd2 100644 --- a/app/javascript/mastodon/containers/timeline_container.js +++ b/app/javascript/mastodon/containers/timeline_container.js @@ -7,7 +7,6 @@ import { hydrateStore } from '../actions/store'; import { IntlProvider, addLocaleData } from 'react-intl'; import { getLocale } from '../locales'; import PublicTimeline from '../features/standalone/public_timeline'; -import CommunityTimeline from '../features/standalone/community_timeline'; import HashtagTimeline from '../features/standalone/hashtag_timeline'; import ModalContainer from '../features/ui/containers/modal_container'; import initialState from '../initial_state'; @@ -26,24 +25,22 @@ export default class TimelineContainer extends React.PureComponent { static propTypes = { locale: PropTypes.string.isRequired, hashtag: PropTypes.string, - showPublicTimeline: PropTypes.bool.isRequired, + local: PropTypes.bool, }; static defaultProps = { - showPublicTimeline: initialState.settings.known_fediverse, + local: !initialState.settings.known_fediverse, }; render () { - const { locale, hashtag, showPublicTimeline } = this.props; + const { locale, hashtag, local } = this.props; let timeline; if (hashtag) { timeline = <HashtagTimeline hashtag={hashtag} />; - } else if (showPublicTimeline) { - timeline = <PublicTimeline />; } else { - timeline = <CommunityTimeline />; + timeline = <PublicTimeline local={local} />; } return ( @@ -51,6 +48,7 @@ export default class TimelineContainer extends React.PureComponent { <Provider store={store}> <Fragment> {timeline} + {ReactDOM.createPortal( <ModalContainer />, document.getElementById('modal-container'), diff --git a/app/javascript/mastodon/features/standalone/community_timeline/index.js b/app/javascript/mastodon/features/standalone/community_timeline/index.js deleted file mode 100644 index f917f41c974a2dbe6e4789783931ab22881c62f6..0000000000000000000000000000000000000000 --- a/app/javascript/mastodon/features/standalone/community_timeline/index.js +++ /dev/null @@ -1,71 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import StatusListContainer from '../../ui/containers/status_list_container'; -import { expandCommunityTimeline } from '../../../actions/timelines'; -import Column from '../../../components/column'; -import ColumnHeader from '../../../components/column_header'; -import { defineMessages, injectIntl } from 'react-intl'; -import { connectCommunityStream } from '../../../actions/streaming'; - -const messages = defineMessages({ - title: { id: 'standalone.public_title', defaultMessage: 'A look inside...' }, -}); - -export default @connect() -@injectIntl -class CommunityTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - }; - - handleHeaderClick = () => { - this.column.scrollTop(); - } - - setRef = c => { - this.column = c; - } - - componentDidMount () { - const { dispatch } = this.props; - - dispatch(expandCommunityTimeline()); - this.disconnect = dispatch(connectCommunityStream()); - } - - componentWillUnmount () { - if (this.disconnect) { - this.disconnect(); - this.disconnect = null; - } - } - - handleLoadMore = maxId => { - this.props.dispatch(expandCommunityTimeline({ maxId })); - } - - render () { - const { intl } = this.props; - - return ( - <Column ref={this.setRef} label={intl.formatMessage(messages.title)}> - <ColumnHeader - icon='users' - title={intl.formatMessage(messages.title)} - onClick={this.handleHeaderClick} - /> - - <StatusListContainer - timelineId='community' - onLoadMore={this.handleLoadMore} - scrollKey='standalone_public_timeline' - trackScroll={false} - /> - </Column> - ); - } - -} diff --git a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js b/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js index 333726f94225d91c946a10b1eb41243f5f161a9d..0880d98c8d76018fef1f53121879bf8d9f5089af 100644 --- a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js +++ b/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js @@ -2,13 +2,13 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandHashtagTimeline } from '../../../actions/timelines'; -import { connectHashtagStream } from '../../../actions/streaming'; +import { expandHashtagTimeline } from 'mastodon/actions/timelines'; +import { connectHashtagStream } from 'mastodon/actions/streaming'; import Masonry from 'react-masonry-infinite'; import { List as ImmutableList } from 'immutable'; -import DetailedStatusContainer from '../../status/containers/detailed_status_container'; +import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; import { debounce } from 'lodash'; -import LoadingIndicator from '../../../components/loading_indicator'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; const mapStateToProps = (state, { hashtag }) => ({ statusIds: state.getIn(['timelines', `hashtag:${hashtag}`, 'items'], ImmutableList()), diff --git a/app/javascript/mastodon/features/standalone/public_timeline/index.js b/app/javascript/mastodon/features/standalone/public_timeline/index.js index 618696eb167f5412874b51fe8769e7cc996d782d..5a67492ac094cc50dcd50b2b709f047bd217ea13 100644 --- a/app/javascript/mastodon/features/standalone/public_timeline/index.js +++ b/app/javascript/mastodon/features/standalone/public_timeline/index.js @@ -1,42 +1,59 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; -import StatusListContainer from '../../ui/containers/status_list_container'; -import { expandPublicTimeline } from '../../../actions/timelines'; -import Column from '../../../components/column'; -import ColumnHeader from '../../../components/column_header'; -import { defineMessages, injectIntl } from 'react-intl'; -import { connectPublicStream } from '../../../actions/streaming'; - -const messages = defineMessages({ - title: { id: 'standalone.public_title', defaultMessage: 'A look inside...' }, -}); - -export default @connect() -@injectIntl +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { expandPublicTimeline, expandCommunityTimeline } from 'mastodon/actions/timelines'; +import { connectPublicStream, connectCommunityStream } from 'mastodon/actions/streaming'; +import Masonry from 'react-masonry-infinite'; +import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; +import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; +import { debounce } from 'lodash'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; + +const mapStateToProps = (state, { local }) => { + const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap()); + + return { + statusIds: timeline.get('items', ImmutableList()), + isLoading: timeline.get('isLoading', false), + hasMore: timeline.get('hasMore', false), + }; +}; + +export default @connect(mapStateToProps) class PublicTimeline extends React.PureComponent { static propTypes = { dispatch: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, + statusIds: ImmutablePropTypes.list.isRequired, + isLoading: PropTypes.bool.isRequired, + hasMore: PropTypes.bool.isRequired, + local: PropTypes.bool, }; - handleHeaderClick = () => { - this.column.scrollTop(); + componentDidMount () { + this._connect(); } - setRef = c => { - this.column = c; + componentDidUpdate (prevProps) { + if (prevProps.local !== this.props.local) { + this._disconnect(); + this._connect(); + } } - componentDidMount () { - const { dispatch } = this.props; + componentWillUnmount () { + this._disconnect(); + } - dispatch(expandPublicTimeline()); - this.disconnect = dispatch(connectPublicStream()); + _connect () { + const { dispatch, local } = this.props; + + dispatch(local ? expandCommunityTimeline() : expandPublicTimeline()); + this.disconnect = dispatch(local ? connectCommunityStream() : connectPublicStream()); } - componentWillUnmount () { + _disconnect () { if (this.disconnect) { this.disconnect(); this.disconnect = null; @@ -44,27 +61,48 @@ class PublicTimeline extends React.PureComponent { } handleLoadMore = maxId => { - this.props.dispatch(expandPublicTimeline({ maxId })); + const { dispatch, local } = this.props; + dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId })); + } + + setRef = c => { + this.masonry = c; } + handleHeightChange = debounce(() => { + if (!this.masonry) { + return; + } + + this.masonry.forcePack(); + }, 50) + render () { - const { intl } = this.props; + const { statusIds, hasMore, isLoading } = this.props; + + const sizes = [ + { columns: 1, gutter: 0 }, + { mq: '415px', columns: 1, gutter: 10 }, + { mq: '640px', columns: 2, gutter: 10 }, + { mq: '960px', columns: 3, gutter: 10 }, + { mq: '1255px', columns: 3, gutter: 10 }, + ]; + + const loader = (isLoading && statusIds.isEmpty()) ? <LoadingIndicator key={0} /> : undefined; return ( - <Column ref={this.setRef} label={intl.formatMessage(messages.title)}> - <ColumnHeader - icon='globe' - title={intl.formatMessage(messages.title)} - onClick={this.handleHeaderClick} - /> - - <StatusListContainer - timelineId='public' - onLoadMore={this.handleLoadMore} - scrollKey='standalone_public_timeline' - trackScroll={false} - /> - </Column> + <Masonry ref={this.setRef} className='statuses-grid' hasMore={hasMore} loadMore={this.handleLoadMore} sizes={sizes} loader={loader}> + {statusIds.map(statusId => ( + <div className='statuses-grid__item' key={statusId}> + <DetailedStatusContainer + id={statusId} + compact + measureHeight + onHeightChange={this.handleHeightChange} + /> + </div> + )).toArray()} + </Masonry> ); } diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 5cd50f055dcb6488ba8331a1102fc843b5beb1f2..5c79f9f197d922269d21009b166169796c1b4ffa 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -23,7 +23,7 @@ export default class DetailedStatus extends ImmutablePureComponent { }; static propTypes = { - status: ImmutablePropTypes.map.isRequired, + status: ImmutablePropTypes.map, onOpenMedia: PropTypes.func.isRequired, onOpenVideo: PropTypes.func.isRequired, onToggleHidden: PropTypes.func.isRequired, diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index b078d4d24d5def60aca9d23f38b75447588a13d6..465ef2c1198cd866df20a5a5b30ccdfdfb58ba05 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -193,6 +193,7 @@ $small-breakpoint: 960px; } strong { + font-family: $font-display, sans-serif; font-weight: 500; font-size: 32px; line-height: 48px; @@ -280,168 +281,6 @@ $small-breakpoint: 960px; } .landing-page { - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: 1fr 2fr; - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - display: none; - } - - .column-1 { - grid-column: 1; - grid-row: 1; - } - - .column-2 { - grid-column: 2; - grid-row: 1; - } - - .column-3 { - grid-column: 3; - grid-row: 1 / 3; - } - - .column-4 { - grid-column: 1 / 3; - grid-row: 2; - } - } - - @media screen and (max-width: $small-breakpoint) { - .grid { - grid-template-columns: 40% 60%; - - .column-0 { - display: none; - } - - .column-1 { - grid-column: 1; - grid-row: 1; - - &.non-preview .landing-page__forms { - height: 100%; - } - } - - .column-2 { - grid-column: 2; - grid-row: 1 / 3; - - &.non-preview { - grid-column: 2; - grid-row: 1; - } - } - - .column-3 { - grid-column: 1; - grid-row: 2 / 4; - } - - .column-4 { - grid-column: 2; - grid-row: 3; - - &.non-preview { - grid-column: 1 / 3; - grid-row: 2; - } - } - } - } - - @media screen and (max-width: $column-breakpoint) { - .grid { - grid-template-columns: 100%; - - .column-0 { - display: block; - grid-column: 1; - grid-row: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - - .brand { - display: none; - } - } - - .column-2 { - grid-column: 1; - grid-row: 2; - - .landing-page__logo, - .landing-page__call-to-action { - display: none; - } - - &.non-preview { - grid-column: 1; - grid-row: 2; - } - } - - .column-3 { - grid-column: 1; - grid-row: 5; - } - - .column-4 { - grid-column: 1; - grid-row: 4; - - &.non-preview { - grid-column: 1; - grid-row: 4; - } - } - } - } - - .column-flex { - display: flex; - flex-direction: column; - } - - .separator-or { - position: relative; - margin: 40px 0; - text-align: center; - - &::before { - content: ""; - display: block; - width: 100%; - height: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, .6); - position: absolute; - top: 50%; - left: 0; - } - - span { - display: inline-block; - background: $ui-base-color; - font-size: 12px; - font-weight: 500; - color: $darker-text-color; - text-transform: uppercase; - position: relative; - z-index: 1; - padding: 0 8px; - cursor: default; - } - } - p, li { font-family: $font-sans-serif, sans-serif; @@ -458,28 +297,6 @@ $small-breakpoint: 960px; } } - .closed-registrations-message { - margin-top: 20px; - - &, - p { - text-align: center; - font-size: 12px; - line-height: 18px; - color: $darker-text-color; - margin-bottom: 0; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - - p:last-child { - margin-bottom: 0; - } - } - em { display: inline; margin: 0; @@ -593,187 +410,6 @@ $small-breakpoint: 960px; } } - .container-alt { - width: 100%; - box-sizing: border-box; - max-width: 800px; - margin: 0 auto; - word-wrap: break-word; - } - - .header-wrapper { - padding-top: 15px; - background: $ui-base-color; - background: linear-gradient(150deg, lighten($ui-base-color, 8%), $ui-base-color); - position: relative; - - &.compact { - background: $ui-base-color; - padding-bottom: 15px; - - .hero .heading { - padding-bottom: 20px; - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - font-weight: 400; - font-size: 16px; - line-height: 30px; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - } - } - - .brand { - a { - padding-left: 0; - padding-right: 0; - color: $white; - } - - img { - height: 32px; - position: relative; - top: 4px; - left: -10px; - } - } - - .header { - line-height: 30px; - overflow: hidden; - - .container-alt { - display: flex; - justify-content: space-between; - } - - .links { - position: relative; - z-index: 4; - - a { - display: flex; - justify-content: center; - align-items: center; - color: $darker-text-color; - text-decoration: none; - padding: 12px 16px; - line-height: 32px; - font-family: $font-display, sans-serif; - font-weight: 500; - font-size: 14px; - - &:hover { - color: $secondary-text-color; - } - } - - ul { - list-style: none; - margin: 0; - - li { - display: inline-block; - vertical-align: bottom; - margin: 0; - - &:first-child a { - padding-left: 0; - } - - &:last-child a { - padding-right: 0; - } - } - } - } - - .hero { - margin-top: 50px; - align-items: center; - position: relative; - - .heading { - position: relative; - z-index: 4; - padding-bottom: 150px; - } - - .simple_form, - .closed-registrations-message { - background: darken($ui-base-color, 4%); - width: 280px; - padding: 15px 20px; - border-radius: 4px 4px 0 0; - line-height: initial; - position: relative; - z-index: 4; - - .actions { - margin-bottom: 0; - - button, - .button, - .block-button { - margin-bottom: 0; - } - } - } - - .closed-registrations-message { - min-height: 330px; - display: flex; - flex-direction: column; - justify-content: space-between; - } - } - } - - .about-short { - background: darken($ui-base-color, 4%); - padding: 50px 0 30px; - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - font-weight: 400; - font-size: 16px; - line-height: 30px; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - - &.alternative { - padding: 10px 0; - - .brand { - text-align: center; - padding: 30px 0; - margin-bottom: 10px; - - img { - position: static; - padding: 10px 0; - } - - @media screen and (max-width: $small-breakpoint) { - padding: 15px 0; - } - - @media screen and (max-width: $column-breakpoint) { - padding: 0; - margin-bottom: -10px; - } - } - } - &__information, &__forms { padding: 20px; @@ -967,353 +603,253 @@ $small-breakpoint: 960px; } } - &__forms { - height: 100%; - - @media screen and (max-width: $small-breakpoint) { - height: auto; - } - - @media screen and (max-width: $column-breakpoint) { - background: transparent; - box-shadow: none; - padding: 0 20px; - margin-top: 30px; - margin-bottom: 40px; - - .separator-or { - span { - background: darken($ui-base-color, 8%); - } + @media screen and (max-width: 840px) { + .information-board { + .container-alt { + padding-right: 20px; } - } - - hr { - margin: 40px 0; - } - .button { - display: block; - } - - .subtle-hint a { - text-decoration: none; + .panel { + position: static; + margin-top: 20px; + width: 100%; + border-radius: 4px; - &:hover, - &:focus, - &:active { - text-decoration: underline; + .panel-header { + text-align: center; + } } } } - #mastodon-timeline { - display: flex; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - font-family: $font-sans-serif, sans-serif; - font-size: 13px; - line-height: 18px; - font-weight: 400; - color: $primary-text-color; - width: 100%; - flex: 1 1 auto; - overflow: hidden; - height: 100%; - - .column-header { - color: inherit; - font-family: inherit; - font-size: 16px; - line-height: inherit; - font-weight: inherit; - margin: 0; - padding: 0; - } - - .column { - padding: 0; - border-radius: 4px; - overflow: hidden; - width: 100%; - } - - .scrollable { - height: 400px; - } - - p { - font-size: inherit; - line-height: inherit; - font-weight: inherit; - color: $primary-text-color; - margin-bottom: 20px; - - &:last-child { - margin-bottom: 0; - } + @media screen and (max-width: 675px) { + .header-wrapper { + padding-top: 0; - a { - color: $secondary-text-color; - text-decoration: none; + &.compact { + padding-bottom: 0; } - } - - .attachment-list__list { - margin-left: 0; - list-style: none; - - li { - font-size: inherit; - line-height: inherit; - font-weight: inherit; - margin-bottom: 0; - - a { - color: $dark-text-color; - text-decoration: none; - &:hover { - text-decoration: underline; - } - } + &.compact .hero .heading { + text-align: initial; } } - @media screen and (max-width: $column-breakpoint) { - display: none; + .header .container-alt, + .features .container-alt { + display: block; } } - &__features { - & > p { - padding-right: 60px; - } - - .features-list { - margin: 40px 0; - margin-top: 30px; - } - - &__action { - text-align: center; - } + .cta { + margin: 20px; } +} - .features-list { - .features-list__row { - display: flex; - padding: 10px 0; - justify-content: space-between; - - .visual { - flex: 0 0 auto; - display: flex; - align-items: center; - margin-left: 15px; +.landing { + margin-bottom: 100px; - .fa { - display: block; - color: $darker-text-color; - font-size: 48px; - } - } + @media screen and (max-width: 738px) { + margin-bottom: 0; + } - .text { - font-size: 16px; - line-height: 30px; - color: $darker-text-color; + &__brand { + display: flex; + justify-content: center; + align-items: center; + padding: 100px; - h6 { - font-size: inherit; - line-height: inherit; - margin-bottom: 0; - } - } + img { + height: 52px; } - @media screen and (min-width: $small-breakpoint) { - display: grid; - grid-gap: 30px; - grid-template-columns: 1fr 1fr; - grid-auto-columns: 50%; - grid-auto-rows: max-content; + @media screen and (max-width: $no-gap-breakpoint) { + padding: 0; + margin-bottom: 30px; } } - .footer-links { - padding-bottom: 50px; - text-align: right; - color: $dark-text-color; + .directory { + margin-top: 30px; + background: transparent; + box-shadow: none; + border-radius: 0; + } - p { - font-size: 14px; - } + .hero-widget { + margin-top: 30px; + margin-bottom: 0; - a { - color: inherit; - text-decoration: underline; + h4 { + padding: 10px; + text-transform: uppercase; + font-weight: 700; + font-size: 13px; + color: $darker-text-color; } - } - &__footer { - margin-top: 10px; - text-align: center; - color: $dark-text-color; + &__text { + border-radius: 0; + padding-bottom: 0; + } - p { - font-size: 14px; + &__footer { + background: $ui-base-color; + padding: 10px; + border-radius: 0 0 4px 4px; + display: flex; - a { - color: inherit; - text-decoration: underline; + &__column { + flex: 1 1 50%; } } - } - @media screen and (max-width: 840px) { - .container-alt { - padding: 0 20px; - } + .account { + padding: 10px 0; + border-bottom: 0; - .information-board { - .container-alt { - padding-right: 20px; + .account__display-name { + display: flex; + align-items: center; } - .panel { - position: static; - margin-top: 20px; - width: 100%; - border-radius: 4px; - - .panel-header { - text-align: center; - } + .account__avatar { + width: 44px; + height: 44px; + background-size: 44px 44px; } } - } - @media screen and (max-width: 675px) { - .header-wrapper { - padding-top: 0; + &__counter { + padding: 10px; - &.compact { - padding-bottom: 0; + strong { + font-family: $font-display, sans-serif; + font-size: 15px; + font-weight: 700; + display: block; } - &.compact .hero .heading { - text-align: initial; + span { + font-size: 14px; + color: $darker-text-color; } } + } - .header .container-alt, - .features .container-alt { - display: block; - } - - .header { - .links { - padding-top: 15px; - background: darken($ui-base-color, 4%); + .simple_form .user_agreement .label_input > label { + font-weight: 400; + color: $darker-text-color; + } - a { - padding: 12px 8px; - } + .simple_form p.lead { + color: $darker-text-color; + font-size: 15px; + line-height: 20px; + font-weight: 400; + margin-bottom: 25px; + } - .nav { - display: flex; - flex-flow: row wrap; - justify-content: space-around; - } + &__grid { + max-width: 960px; + margin: 0 auto; + display: grid; + grid-template-columns: minmax(0, 50%) minmax(0, 50%); + grid-gap: 30px; - .brand img { - left: 0; - top: 0; - } - } + @media screen and (max-width: 738px) { + grid-template-columns: minmax(0, 100%); + grid-gap: 10px; - .hero { - margin-top: 30px; - padding: 0; + &__column-login { + grid-row: 1; + display: flex; + flex-direction: column; - .heading { - padding: 30px 20px; - text-align: center; + .box-widget { + order: 2; + flex: 0 0 auto; } - .simple_form, - .closed-registrations-message { - background: darken($ui-base-color, 8%); - width: 100%; - border-radius: 0; - box-sizing: border-box; + .hero-widget { + margin-top: 0; + margin-bottom: 10px; + order: 1; + flex: 0 0 auto; } } - } - } - - .cta { - margin: 20px; - } - &.tag-page { - @media screen and (max-width: $column-breakpoint) { - padding: 0; - - .container { - padding: 0; + &__column-registration { + grid-row: 2; } - #mastodon-timeline { - display: flex; - height: 100vh; - border-radius: 0; + .directory { + margin-top: 10px; } } - .grid { - @media screen and (min-width: $small-breakpoint) { - grid-template-columns: 33% 67%; - } - - .column-2 { - grid-column: 2; - grid-row: 1; - } - } + @media screen and (max-width: $no-gap-breakpoint) { + grid-gap: 0; - .brand { - text-align: unset; - padding: 0; + .hero-widget { + display: block; + margin-bottom: 0; + box-shadow: none; - img { - height: 48px; - width: auto; + &__img, + &__img img, + &__footer { + border-radius: 0; + } } - } - .cta { - margin: 0; - - .button { - margin-right: 4px; + .hero-widget, + .box-widget, + .directory__tag { + border-bottom: 1px solid lighten($ui-base-color, 8%); } - } - @media screen and (max-width: $column-breakpoint) { - .grid { - grid-gap: 0; + .directory { + margin-top: 0; - .column-1 { - grid-column: 1; - grid-row: 1; - } + &__tag { + margin-bottom: 0; - .column-2 { - display: none; + & > a, + & > div { + border-radius: 0; + box-shadow: none; + } + + &:last-child { + border-bottom: 0; + } } } } } } + +.brand { + position: relative; + text-decoration: none; +} + +.brand__tagline { + display: block; + position: absolute; + bottom: -10px; + left: 50px; + width: 300px; + color: $ui-primary-color; + text-decoration: none; + font-size: 14px; + + @media screen and (max-width: $no-gap-breakpoint) { + position: static; + width: auto; + margin-top: 20px; + color: $dark-text-color; + } +} + diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index bab982706fd5c53bd9469bf2e9f70663492e682c..6051c1d00c239147495dd87b3ea26c5764135403 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -68,6 +68,17 @@ code { top: 2px; left: 0; } + + label a { + color: $highlight-text-color; + text-decoration: underline; + + &:hover, + &:active, + &:focus { + text-decoration: none; + } + } } } @@ -305,7 +316,7 @@ code { box-shadow: none; } - &:focus:invalid { + &:focus:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); } @@ -346,6 +357,10 @@ code { } } + .input.disabled { + opacity: 0.5; + } + .actions { margin-top: 30px; display: flex; @@ -392,6 +407,10 @@ code { background-color: darken($ui-highlight-color, 5%); } + &:disabled:hover { + background-color: $ui-primary-color; + } + &.negative { background: $error-value-color; diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 1eaf30c5b37c11c44259ea7171f7012b0f4bab83..645192ea4ea337e09bb64b66533285e7b2d9c91d 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -295,6 +295,11 @@ cursor: default; } + &.disabled > div { + opacity: 0.5; + cursor: default; + } + h4 { flex: 1 1 auto; font-size: 18px; diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index dc77162d441aa3ee8e8f641cc5dacc6e3240a4f1..7d7bae7ede428cc2ffffad98b255121d2739afa5 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -21,6 +21,10 @@ class InstancePresenter Rails.cache.fetch('user_count') { User.confirmed.joins(:account).merge(Account.without_suspended).count } end + def active_user_count + Rails.cache.fetch('active_user_count') { Redis.current.pfcount(*(0..3).map { |i| "activity:logins:#{i.weeks.ago.utc.to_date.cweek}" }) } + end + def status_count Rails.cache.fetch('local_status_count') { Account.local.joins(:account_stat).sum('account_stats.statuses_count') }.to_i end @@ -29,6 +33,10 @@ class InstancePresenter Rails.cache.fetch('distinct_domain_count') { Account.distinct.count(:domain) } end + def sample_accounts + Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.local.searchable.joins(:account_stat).popular.limit(3) } + end + def version_number Mastodon::Version end diff --git a/app/views/about/_features.html.haml b/app/views/about/_features.html.haml deleted file mode 100644 index 8fbc6b7607334ae839704962f6555263c7ccf3ff..0000000000000000000000000000000000000000 --- a/app/views/about/_features.html.haml +++ /dev/null @@ -1,25 +0,0 @@ -.features-list - .features-list__row - .text - %h6= t 'about.features.real_conversation_title' - = t 'about.features.real_conversation_body' - .visual - = fa_icon 'fw comments' - .features-list__row - .text - %h6= t 'about.features.not_a_product_title' - = t 'about.features.not_a_product_body' - .visual - = fa_icon 'fw users' - .features-list__row - .text - %h6= t 'about.features.within_reach_title' - = t 'about.features.within_reach_body' - .visual - = fa_icon 'fw mobile' - .features-list__row - .text - %h6= t 'about.features.humane_approach_title' - = t 'about.features.humane_approach_body' - .visual - = fa_icon 'fw leaf' diff --git a/app/views/about/_forms.html.haml b/app/views/about/_forms.html.haml deleted file mode 100644 index 78a422690e6d03489c0bb766ac360e6a1db0b69f..0000000000000000000000000000000000000000 --- a/app/views/about/_forms.html.haml +++ /dev/null @@ -1,15 +0,0 @@ -- if @instance_presenter.open_registrations - = render 'registration' -- else - = link_to t('auth.register_elsewhere'), 'https://joinmastodon.org/#getting-started', class: 'button button-primary' - - .closed-registrations-message - - if @instance_presenter.closed_registrations_message.blank? - %p= t('about.closed_registrations') - - else - = @instance_presenter.closed_registrations_message.html_safe - -.separator-or - %span= t('auth.or') - -= link_to t('auth.login'), new_user_session_path, class: 'button button-alternative-2 webapp-btn' diff --git a/app/views/about/_links.html.haml b/app/views/about/_links.html.haml deleted file mode 100644 index 381f301f94dea2262bbc718c2c3d0ccae7df072d..0000000000000000000000000000000000000000 --- a/app/views/about/_links.html.haml +++ /dev/null @@ -1,16 +0,0 @@ -.container-alt.links - .brand - = link_to root_url do - = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' - - %ul.nav - %li - - if user_signed_in? - = link_to t('settings.back'), root_url, class: 'webapp-btn' - - else - = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn' - %li= link_to t('about.about_this'), about_more_path - %li - = link_to 'https://joinmastodon.org/#getting-started' do - = "#{t('about.other_instances')}" - %i.fa.fa-external-link{ style: 'padding-left: 5px;' } diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..d286f0d3c6e2411c81759802373e7cc9fceff6e3 --- /dev/null +++ b/app/views/about/_login.html.haml @@ -0,0 +1,13 @@ += simple_form_for(new_user, url: user_session_path) do |f| + .fields-group + - if use_seamless_external_login? + = f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false + - else + = f.input :email, placeholder: t('simple_form.labels.defaults.email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, hint: false + + = f.input :password, placeholder: t('simple_form.labels.defaults.password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }, hint: false + + .actions + = f.button :button, t('auth.login'), type: :submit, class: 'button button-primary' + + %p.hint.subtle-hint= link_to t('auth.trouble_logging_in'), new_user_password_path diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml index ee4f8fe2e61d8994af7ce0888ff72d8981c2e146..715bcd37c670325614aed5e6268bb8fe39d98f5b 100644 --- a/app/views/about/_registration.html.haml +++ b/app/views/about/_registration.html.haml @@ -1,12 +1,16 @@ = simple_form_for(new_user, url: user_registration_path) do |f| - = f.simple_fields_for :account do |account_fields| - = account_fields.input :username, wrapper: :with_label, autofocus: true, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false + %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname)) - = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false - = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false - = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false + .fields-group + = f.simple_fields_for :account do |account_fields| + = account_fields.input :username, wrapper: :with_label, autofocus: true, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false, disabled: !Setting.open_registrations - .actions - = f.button :button, t('auth.register'), type: :submit, class: 'button button-primary' + = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: !Setting.open_registrations + = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: !Setting.open_registrations + = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: !Setting.open_registrations + + .fields-group + = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: !Setting.open_registrations - %p.hint.subtle-hint=t('auth.agreement_html', rules_path: about_more_path, terms_path: terms_path) + .actions + = f.button :button, Setting.open_registrations ? t('auth.register') : t('auth.registration_closed', instance: site_hostname), type: :submit, class: 'button button-primary', disabled: !Setting.open_registrations diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml index f5a78665d3d84c0ea68ef2c981aa5278eecfdef9..15d0af64e741a088146e5537d2104886f264ef32 100644 --- a/app/views/about/show.html.haml +++ b/app/views/about/show.html.haml @@ -3,144 +3,76 @@ - content_for :header_tags do %link{ rel: 'canonical', href: about_url }/ - %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json) - = javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous' = render partial: 'shared/og' -.landing-page.alternative - .container - .grid - .column-0 - .brand - = link_to root_url do - = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' - - - if Setting.timeline_preview - .column-1 - .landing-page__forms - .brand - = link_to root_url do - = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' - - = render 'forms' - - - else - .column-1.non-preview - .landing-page__forms - .brand - = link_to root_url do - = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' - - = render 'forms' - - - if Setting.timeline_preview - .column-2 - .landing-page__hero - = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title - - .landing-page__information - .landing-page__short-description - .row - .landing-page__logo - = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon' - - %h1 - = @instance_presenter.site_title - %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname) - - %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) - - .landing-page__call-to-action{ dir: 'ltr' } - .row - .row__information-board - .information-board__section - %span= t 'about.user_count_before' - %strong= number_with_delimiter @instance_presenter.user_count - %span= t 'about.user_count_after', count: @instance_presenter.user_count - .information-board__section - %span= t 'about.status_count_before' - %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('elephant_ui_plane.svg'), alt: '' - - - else - .column-2.non-preview - .landing-page__hero - = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title - - .landing-page__information - .landing-page__short-description - .row - .landing-page__logo - = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon' - - %h1 - = @instance_presenter.site_title - %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname) - - %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) - - .landing-page__call-to-action - .row - .row__information-board - .information-board__section - %span= t 'about.user_count_before' - %strong= number_with_delimiter @instance_presenter.user_count - %span= t 'about.user_count_after', count: @instance_presenter.user_count - .information-board__section - %span= t 'about.status_count_before' - %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('elephant_ui_plane.svg'), alt: '' - - - if Setting.timeline_preview - .column-3 - #mastodon-timeline{ data: { props: Oj.dump(default_props) } } - - - if Setting.timeline_preview - .column-4.landing-page__information - .landing-page__features - .features-list - %div - %h3= t 'about.what_is_mastodon' - %p= t 'about.about_mastodon_html' - %div.contact - %h3= t 'about.administered_by' - = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative')) - - = render 'features' - - .landing-page__features__action - = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative' - - .landing-page__footer +.landing + .landing__brand + = link_to root_url, class: 'brand' do + = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' + %span.brand__tagline=t 'about.tagline' + + .landing__grid + .landing__grid__column.landing__grid__column-registration + .box-widget + = render 'registration' + + .directory + .directory__tag{ class: Setting.profile_directory ? nil : 'disabled' } + = optional_link_to Setting.profile_directory, explore_path do + %h4 + = fa_icon 'address-book fw' + = t('about.discover_users') + %small= t('about.browse_directory') + + .avatar-stack + - @instance_presenter.sample_accounts.each do |account| + = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, width: 48, height: 48, alt: '', class: 'account__avatar' + + .directory__tag{ class: Setting.timeline_preview ? nil : 'disabled' } + = optional_link_to Setting.timeline_preview, public_timeline_path do + %h4 + = fa_icon 'globe fw' + = t('about.see_whats_happening') + %small= t('about.browse_public_posts') + + .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') + + .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('preview.jpg'), alt: @instance_presenter.site_title + + - if @instance_presenter.site_short_description.present? + .hero-widget__text %p - = link_to t('about.source_code'), @instance_presenter.source_url - = " (#{@instance_presenter.version_number})" - - - else - .column-4.non-preview.landing-page__information - .landing-page__features - .features-list - %div - %h3= t 'about.what_is_mastodon' - %p= t 'about.about_mastodon_html' - %div.contact - %h3= t 'about.administered_by' - = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative')) - - = render 'features' - - .landing-page__features__action - = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative' - - .landing-page__footer - %p - = link_to t('about.source_code'), @instance_presenter.source_url - = " (#{@instance_presenter.version_number})" - -#modal-container + = @instance_presenter.site_short_description.html_safe.presence + = link_to about_more_path do + = t('about.learn_more') + = fa_icon 'angle-double-right' + + .hero-widget__footer + .hero-widget__footer__column + %h4= t 'about.administered_by' + + = account_link_to @instance_presenter.contact_account + + .hero-widget__footer__column + %h4= t 'about.server_stats' + + %div{ style: 'display: flex' } + .hero-widget__counter{ style: 'width: 50%' } + %strong= number_to_human @instance_presenter.user_count, strip_insignificant_zeros: true + %span= t 'about.user_count_after', count: @instance_presenter.user_count + .hero-widget__counter{ style: 'width: 50%' } + %strong= number_to_human @instance_presenter.active_user_count, strip_insignificant_zeros: true + %span + = t 'about.active_count_after' + %abbr{ title: t('about.active_footnote') } * diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml index caccd5bb67f66a7875c351562d68f2a5ad60d1a6..15d819dfe36e481652f013338667ba6f7606ddcf 100644 --- a/app/views/layouts/public.html.haml +++ b/app/views/layouts/public.html.haml @@ -3,23 +3,24 @@ - content_for :content do .public-layout - .container - %nav.header - .nav-left - = link_to root_url, class: 'brand' do - = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' + - unless @hide_navbar + .container + %nav.header + .nav-left + = link_to root_url, class: 'brand' do + = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' - - if Setting.profile_directory - = link_to t('directories.directory'), explore_path, class: 'nav-link optional' - = link_to t('about.about_this'), about_more_path, class: 'nav-link optional' - = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional' - .nav-center - .nav-right - - if user_signed_in? - = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn' - - else - = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn nav-link nav-button' - = link_to t('auth.register'), open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started', class: 'webapp-btn nav-link nav-button' + - if Setting.profile_directory + = link_to t('directories.directory'), explore_path, class: 'nav-link optional' + = link_to t('about.about_this'), about_more_path, class: 'nav-link optional' + = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional' + .nav-center + .nav-right + - if user_signed_in? + = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn' + - else + = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn nav-link nav-button' + = link_to t('auth.register'), open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started', class: 'webapp-btn nav-link nav-button' .container= yield diff --git a/app/views/public_timelines/show.html.haml b/app/views/public_timelines/show.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..913d5d855d2eb2e57d1daa20315775c158c7910f --- /dev/null +++ b/app/views/public_timelines/show.html.haml @@ -0,0 +1,14 @@ +- content_for :page_title do + = t('about.see_whats_happening') + +- content_for :header_tags do + %meta{ name: 'robots', content: 'noindex' }/ + %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json) + = javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous' + +.page-header + %h1= t('about.see_whats_happening') + %p= t('about.browse_public_posts') + +#mastodon-timeline{ data: { props: Oj.dump(default_props) }} +#modal-container diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml index 18de48eea2cc9201efcb992cc6fe1a3a4acb93ce..cf42468224fa801c3c3e0b94092ef0b551d40ba9 100644 --- a/app/views/tags/show.html.haml +++ b/app/views/tags/show.html.haml @@ -2,6 +2,7 @@ = "##{@tag.name}" - content_for :header_tags do + %meta{ name: 'robots', content: 'noindex' }/ %link{ rel: 'alternate', type: 'application/rss+xml', href: tag_url(@tag, format: 'rss') }/ %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json) diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 67fa97c5957926685acd00b48a92450c720b2f65..d3de422a98817159d8d5d25f19fe2017b7b6cfcf 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -7,7 +7,6 @@ ar: administered_by: 'ÙŠÙØ¯ÙŠØ±Ù‡ :' api: واجهة برمجة التطبيقات apps: تطبيقات الأجهزة المØÙ…ولة - closed_registrations: التسجيلات ÙÙŠ مثيل الخادوم هذا Ù…ÙØºÙ„قة ØØ§Ù„يًا. غير أنه بامكانك العثور على خادم آخر لإنشاء ØØ³Ø§Ø¨Ùƒ Ùˆ Ù…ÙÙ† ثم Ø§Ù„Ù†ÙØ§Ø° إلى Ù†ÙØ³ الشبكة Ù…ÙÙ† هناك. contact: للتواصل معنا contact_missing: لم يتم تعيينه contact_unavailable: غير Ù…ØªÙˆÙØ± @@ -15,19 +14,9 @@ ar: extended_description_html: | <h3>مكان جيد للقواعد</h3> <p>لم يتم بعد إدخال الوص٠الطويل.</p> - features: - humane_approach_body: تعلّÙمًا Ù…ÙÙ† ÙØ´Ù„ الشبكات الأخرى، غاية ماستدون هي بلوغ الخيارات الأخلاقية ÙÙŠ التصميم Ù„Ù…ÙØØ§Ø±ÙŽØ¨Ø© إسائة إستعمال شبكات التواصل الإجتماعية. - humane_approach_title: أسلوب ÙŠÙØ¹ÙŠØ¯ الإعتبار للÙَرد - not_a_product_body: ماستدون ليس شبكة تجارية. لا ÙŠØØªÙˆÙŠ Ø¹Ù„Ù‰ إعلانات Ùˆ لا يقوم باستغلال البيانات Ùˆ لا هو Ø¨ÙØ¨Ùستان Ù…ÙØ³ÙŠÙ‘َج. لا تØÙƒÙ… Ùيه وليس له أية هيئة٠مركزيةÙ. - not_a_product_title: إنك ÙØ±Ø¯ Ùˆ لست سلعة - real_conversation_body: ÙŠÙمكنكم التعبير عن آرائكم بكل ØØ±ÙŠØ© Ø¨ÙØ¶Ù„ 500 ØØ±Ù Ùˆ انتقاء دقيق Ù„Ù„Ù…ØØªÙˆÙ‰ Ùˆ الوسائط Ø¨ÙØ¶Ù„ أدوات Ø§Ù„ØªØØ°ÙŠØ± التي هي بين أيديكم. - real_conversation_title: مبني لتØÙ‚يق تواصل ØÙ‚يقي - within_reach_body: إبقوا على اتصال دائم بأصدقائكم ØÙŠØ«Ù…ا كانوا عبر عدة تطبيقات لنظام آي أواس Ùˆ أندرويد Ùˆ عدة منصات أخرى Ø¨ÙØ¶Ù„ واجهة برمجية للتطبيقات Ùˆ بيئة صديقة للتطوير. - within_reach_title: ÙÙŠ Ù…ÙØªÙ†Ø§ÙˆÙŽÙ„ يدك دائمًا generic_description: "%{domain} هو Ø³ÙŠØ±ÙØ± من بين Ø³ÙŠØ±ÙØ±Ø§Øª الشبكة" hosted_on: ماستدون Ù…ÙØ³ØªØ¶Ø§Ù على %{domain} learn_more: تعلم المزيد - other_instances: خوادم أخرى privacy_policy: سياسة الخصوصية source_code: Ø§Ù„Ø´ÙØ±Ø© المصدرية status_count_after: @@ -524,13 +513,11 @@ ar: logout: خروج migrate_account: الإنتقال إلى ØØ³Ø§Ø¨ آخر migrate_account_html: إن كنت ترغب ÙÙŠ تØÙˆÙŠÙ„ هذا Ø§Ù„ØØ³Ø§Ø¨ Ù†ØÙˆ ØØ³Ø§Ø¨ آخَر، ÙŠÙمكÙÙ†ÙÙƒ <a href="%{path}">إعداده هنا</a>. - or: أو or_log_in_with: أو قم بتسجيل الدخول بواسطة providers: cas: CAS saml: SAML register: إنشاء ØØ³Ø§Ø¨ - register_elsewhere: التسجيل على خادوم آخَر resend_confirmation: إعادة إرسال تعليمات التأكيد reset_password: إعادة تعيين كلمة المرور security: الأمان diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 78ad796a00de762fb3d46587924d5d852e875a83..ebf6a379982cddac74c4c18848a6b9db19147b2a 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -12,12 +12,6 @@ ast: extended_description_html: | <h3>Un llugar bonu pa les regles</h3> <p>Entá nun se configuró la descripción estendida.</p> - features: - humane_approach_title: Una visión más humana - not_a_product_body: Mastodon nun ye una rede comercial, nun hai anuncios, nun recueye datos o nun pon muries a xardinos. Nin siquier tien una autoridá central. - not_a_product_title: Yes una persona, non un productu - real_conversation_title: Fechu pa conversaciones de verdá - within_reach_title: Siempres al algame hosted_on: Mastodon ta agospiáu en %{domain} learn_more: Deprendi más source_code: Códigu fonte @@ -141,7 +135,6 @@ ast: cas: CAS saml: SAML register: Rexistrase - register_elsewhere: Rexistrase n'otru sirvidor security: Seguranza authorize_follow: already_following: Yá tas siguiendo a esta cuenta diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 4de5b1e22a34866ceb7a2e44094971ed8b4bcaea..2424d93991fefef7915147af0301bc1b124e499b 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -3,9 +3,7 @@ bg: about: about_mastodon_html: Mastodon е <em>безплатен</em> Ñървър Ñ <em>отворен код</em> за Ñоциални мрежи. Като <em>децентрализирана</em> алтернатива на комерÑиалните платформи, той позволÑва избÑгването на риÑка от Ð¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° твоÑта ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¾Ñ‚ единични компании. Изберете Ñи Ñървър, на който Ñе доверÑвате, и ще можете да контактувате Ñ Ð²Ñички оÑтанали. Ð’Ñеки може да пуÑне Mastodon и леÑно да вземе учаÑтие в <em>Ñоциалната мрежа</em>. about_this: За тази инÑÑ‚Ð°Ð½Ñ†Ð¸Ñ - closed_registrations: Ð’ момента региÑтрациите за тази инÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ñа затворени. contact: За контакти - other_instances: Други инÑтанции source_code: Програмен код status_count_after: публикации status_count_before: ÐапиÑали diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 560e743986210cfec0256179ef0a2a13e9d24a28..e76c7ba21dcb3486a5858fef73327097944a5bc6 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -7,7 +7,6 @@ bn: administered_by: 'পরিচালনা করছেন:' api: সফটওয়à§à¦¯à¦¾à¦° তৈরীর নিয়ম (API) apps: মোবাইল অà§à¦¯à¦¾à¦ª - closed_registrations: à¦à¦‡ সারà§à¦à¦¾à¦°à§‡ à¦à¦–ন নিবনà§à¦§à¦¨ বনà§à¦§à¥¤ কিনà§à¦¤à§ ! অনà§à¦¯ à¦à¦•টি সারà§à¦à¦¾à¦° খà§à¦à¦œà§‡ নিবনà§à¦§à¦¨ করলেও à¦à¦•ই নেটওয়ারà§à¦•ে ঢà§à¦•তে পারবেন। contact: যোগাযোগ contact_missing: নেই contact_unavailable: পà§à¦°à¦¯à§‹à¦œà§à¦¯ নয় @@ -15,8 +14,3 @@ bn: extended_description_html: | <h3>নিয়মের জনà§à¦¯ উপযà§à¦•à§à¦¤ জায়গা</h3> <p>বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ বিবরণ à¦à¦–নো যà§à¦•à§à¦¤ করা হয়নি</p> - features: - humane_approach_body: অননà§à¦¯à¦¾ নেটওয়ারà§à¦•ের বà§à¦¯à¦°à§à¦¥à¦¤à¦¾ থেকে শিখে, মাসà§à¦Ÿà¦¾à¦¡à¦¨à§‡à¦° লকà§à¦·à§à¦¯ নৈতিক পরিকলà§à¦ªà¦¨à¦¾à¦° দà§à¦¬à¦¾à¦°à¦¾ সামাজিক মাধà§à¦¯à¦®à§‡à¦° অপবà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° বিরোধিতা করা। - humane_approach_title: à¦à¦•টি মনà§à¦·à§à¦¯à¦¤à§à¦¬à¦ªà§‚রà§à¦£ চেষà§à¦Ÿà¦¾ - not_a_product_body: মাসà§à¦Ÿà¦¾à¦¡à¦¨ কোনো বà§à¦¯à¦¬à¦¸à¦¾à¦¯à¦¼à¦¿à¦• নেটওয়ারà§à¦• না। কোনো বিজà§à¦žà¦¾à¦ªà¦¨ নেই, কোনো তথà§à¦¯ খনি নেই, কোনো বাধার দেয়াল নেই। à¦à¦° কোনো কেনà§à¦¦à§à¦°à§€à¦¯à¦¼ করà§à¦¤à§ƒà¦ªà¦•à§à¦· নেই। - not_a_product_title: আপনি à¦à¦•জন মানà§à¦·, পণà§à¦¯ নন diff --git a/config/locales/ca.yml b/config/locales/ca.yml index f5245bd9843f9e7a8a40a34e510c192f2b17e957..f4ce50e0cd6cdbdde293c45bb05a16d514943328 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -7,7 +7,6 @@ ca: administered_by: 'Administrat per:' api: API apps: Apps mòbil - closed_registrations: Actualment, el registre està tancat en aquesta instà ncia. Malgrat això! Pots trobar una altra instà ncia per fer-te un compte i obtenir accés a la mateixa xarxa des d'allà . contact: Contacte contact_missing: No configurat contact_unavailable: N/D @@ -15,19 +14,9 @@ ca: extended_description_html: | <h3>Un bon lloc per les regles</h3> <p>Encara no s'ha configurat la descripció ampliada.</p> - features: - humane_approach_body: Aprenent dels errors d'altres xarxes, Mastodon té com a objectiu fer eleccions ètiques de disseny per a combatre el mal ús de les xarxes socials. - humane_approach_title: Un enfocament més humà - not_a_product_body: Mastodon no és una xarxa comercial. Sense publicitat, sense mineria de dades, sense jardins emmurallats. No hi ha cap autoritat central. - not_a_product_title: Ets una persona, no un producte - real_conversation_body: Amb 500 carà cters a la teva disposició i suport per a continguts granulars i avisos multimèdia, pots expressar-te de la manera que vulguis. - real_conversation_title: Construït per a converses reals - within_reach_body: Diverses aplicacions per a iOS, Android i altres plataformes grà cies a un ecosistema API amable amb el desenvolupador, et permet mantenir-te al dia amb els amics en qualsevol lloc.. - within_reach_title: Sempre a l'abast generic_description: "%{domain} és un servidor a la xarxa" hosted_on: Mastodon allotjat a %{domain} learn_more: Més informació - other_instances: Altres instà ncies privacy_policy: PolÃtica de privacitat source_code: Codi font status_count_after: @@ -507,13 +496,11 @@ ca: logout: Tanca sessió migrate_account: Mou a un compte diferent migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots <a href="%{path}">configurar aquÃ</a>. - or: o or_log_in_with: O inicia sessió amb providers: cas: CAS saml: SAML register: Registre - register_elsewhere: Registra't en un altre servidor resend_confirmation: Torna a enviar el correu de confirmació reset_password: Restableix la contrasenya security: Seguretat diff --git a/config/locales/co.yml b/config/locales/co.yml index 8fcb27598e5b59c1f7c7a039fddbc28fc3b9c7ef..772479e6ac5ba844c75c8123b349907dc61d9cbd 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -7,7 +7,6 @@ co: administered_by: 'Amministratu da:' api: API apps: Applicazione per u telefuninu - closed_registrations: Pè avà , l’arregistramenti sò chjosi nant’à stu servore. Mà pudete truvà un’altru per fà un contu è avè accessu à listessa reta da quallà . contact: Cuntattu contact_missing: Mancante contact_unavailable: Micca dispunibule @@ -15,19 +14,9 @@ co: extended_description_html: | <h3>Una bona piazza per e regule</h3> <p>A descrizzione stesa ùn hè micca stata riempiuta.</p> - features: - humane_approach_body: Mastodon hà amparatu da i sbagli di l’altre rete suciale, è prova à fà scelte di cuncezzione più etiche per luttà contr’à l’abusu di i media suciali. - humane_approach_title: Una mentalità più umana - not_a_product_body: Mastodon ùn hè micca una rete cummerciale. Micca pubblicità , micca pruspizzione di dati, micca ambienti chjosi, è micca auturità centrale. - not_a_product_title: Site una parsona, micca un pruduttu - real_conversation_body: Cù 500 caratteri dispunibuli, diffusione persunalizata di u cuntinutu è avertimenti per media sensibili, pudete cumunicà cum’è voi vulete. - real_conversation_title: Fattu per una vera cunversazione - within_reach_body: Parechje app per iOS, Android è altre piattaforme, create cù un sistemu d’API accessibile à i prugrammatori, vi permettenu d’avè accessu à i vostri amichi senza prublemi. - within_reach_title: Sempre accessibile generic_description: "%{domain} hè un servore di a rete" hosted_on: Mastodon allughjatu nant’à %{domain} learn_more: Amparà di più - other_instances: Lista di i servori privacy_policy: Pulitica di vita privata source_code: Codice di fonte status_count_after: @@ -508,13 +497,11 @@ co: logout: Scunnettassi migrate_account: Cambià di contu migrate_account_html: S’è voi vulete riindirizà stu contu versu un’altru, <a href="%{path}">ghjè pussibule quì</a>. - or: o or_log_in_with: O cunnettatevi cù providers: cas: CAS saml: SAML register: Arregistrassi - register_elsewhere: Arregistrassi altrò resend_confirmation: Rimandà l’istruzzioni di cunfirmazione reset_password: Cambià a chjave d’accessu security: Sicurità diff --git a/config/locales/cs.yml b/config/locales/cs.yml index fe83bd57ad722dec68d456b745d2923c0037be20..2b2f512a32f860e332138e9c34a6aa960f8d8255 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -7,7 +7,6 @@ cs: administered_by: 'Server spravuje:' api: API apps: Mobilnà aplikace - closed_registrations: Registrace na tomto serveru jsou momentálnÄ› uzavÅ™ené. Ale pozor! Můžete si najÃt jiný server, vytvoÅ™it si na nÄ›m úÄet a zÃskat z nÄ›j pÅ™Ãstup do naprosto stejné sÃtÄ›. contact: Kontakt contact_missing: Nenastaveno contact_unavailable: Neuvedeno @@ -15,19 +14,9 @@ cs: extended_description_html: | <h3>Dobré mÃsto pro pravidla</h3> <p>RozÅ¡ÃÅ™ený popis jeÅ¡tÄ› nebyl nastaven.</p> - features: - humane_approach_body: Mastodon se uÄà z chyb jiných sociálnÃch sÃtà a volenÃm etických rozhodnutà pÅ™i designu se snažà bojovat s jejich zneužÃvánÃm. - humane_approach_title: LidÅ¡tÄ›jšà pÅ™Ãstup - not_a_product_body: Mastodon nenà komerÄnà sÃÅ¥. Žádné reklamy, žádné dolovánà dat, žádné hranice. Žádná centrálnà autorita. - not_a_product_title: Jste osoba, ne produkt - real_conversation_body: S 500 znaky k vašà dispozici a podporou pro varovánà o obsahu a médiÃch se můžete vyjadÅ™ovat tak, jak chcete. - real_conversation_title: VytvoÅ™en pro opravdovou konverzaci - within_reach_body: NÄ›kolik aplikacà pro iOS, Android a jiné platformy vám dÃky jednoduchému API ekosystému dovolujà držet krok s vaÅ¡imi přáteli, aÅ¥ už jste kdekoliv. - within_reach_title: Vždy v dosahu generic_description: "%{domain} je jednÃm ze serverů v sÃti" hosted_on: Server Mastodon na adrese %{domain} learn_more: Zjistit vÃce - other_instances: Seznam serverů privacy_policy: Zásady soukromà source_code: Zdrojový kód status_count_after: @@ -514,13 +503,11 @@ cs: logout: Odhlásit migrate_account: PÅ™esunout se na jiný úÄet migrate_account_html: Chcete-li pÅ™esmÄ›rovat tento úÄet na jiný, můžete to <a href="%{path}">nastavit zde</a>. - or: nebo or_log_in_with: Nebo se pÅ™ihlaste pomocà providers: cas: CAS saml: SAML register: Registrovat - register_elsewhere: Registrovat na jiném serveru resend_confirmation: Znovu odeslat pokyny pro potvrzenà reset_password: Obnovit heslo security: ZabezpeÄenà diff --git a/config/locales/cy.yml b/config/locales/cy.yml index f225cc086db6b9299e4c9c0ea4e2a27f813e5720..b3746e4e01cd6ffda614ac0b4c71aa251e9b32a8 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -7,7 +7,6 @@ cy: administered_by: 'Gweinyddir gan:' api: API apps: Apiau symudol - closed_registrations: Mae cofrestru wedi cau ar yr achos hwn ar hyn o bryd. Fodd bynnag, mae modd ffeindio achos arall er mwyn creu cyfrif arno a chael mynediad at union yr un rhwydwaith o'r man hwnnw. contact: Cyswllt contact_missing: Heb ei osod contact_unavailable: Ddim yn berthnasol @@ -15,19 +14,9 @@ cy: extended_description_html: | <h3>Lle da ar gyfer rheolau</h3> <p>Nid yw'r disgrifiad estynedig wedi ei osod eto.</p> - features: - humane_approach_body: Gan ddysgu o fethiannau rhwydweithiau eraill, mae Mastodon yn anelu i wneud penderfyniadau dylunio moesol i ymladd camddefnydd o gyfryngau cymdeithasol. - humane_approach_title: Agwedd fwy dynol - not_a_product_body: Nid yw Mastodon yn rwydwaith masnachol. Nid oes hysbysebion, cloddio data na gerddi caeedig. Nid oes awdurdod canolog. - not_a_product_title: Rwyt yn berson, nid yn beth - real_conversation_body: Gyda'r modd i ddefnyddio hyd at 500 o nodau a chefnogaeth ar gyfer cynnwys gronynnol a rhybuddion cyfryngau, mae modd i chi fynegi'ch hun yn y ffordd yr hoffech chi. - real_conversation_title: Wedi ei adeiladu ar gyfer sgyrsiau go iawn - within_reach_body: Nifer o apiau ar gyfer iOS, Android, a nifer blatfformau eraill diolch i amgylchedd API hygyrch i ddatblygwyr sy'n caniatau i chi gadw mewn cysylltiad a'ch ffrindiau o unrhywle. - within_reach_title: Bob tro o fewn gafael generic_description: Mae %{domain} yn un gweinydd yn y rhwydwaith hosted_on: Mastodon wedi ei weinyddu ar %{domain} learn_more: Dysu mwy - other_instances: Rhestr achosion privacy_policy: Polisi preifatrwydd source_code: Cod ffynhonnell status_count_after: @@ -529,13 +518,11 @@ cy: logout: Allgofnodi migrate_account: Symud i gyfrif gwahanol migrate_account_html: Os hoffech chi ailgyfeirio'r cyfrif hwn at un gwahanol, mae modd <a href="%{path}">ei ffurfweddu yma</a>. - or: neu or_log_in_with: Neu logiwch mewn a providers: cas: CAS saml: SAML register: Cofrestru - register_elsewhere: Cofrestru ar weinydd gwahanol resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau reset_password: Ailosod cyfrinair security: Diogelwch diff --git a/config/locales/da.yml b/config/locales/da.yml index ca4ff32dac53e28fdc9a478a72fa149a0be2b766..f4d884554815d366e2f381a0131b7f89645eb0b0 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -7,7 +7,6 @@ da: administered_by: 'Administreret af:' api: API apps: Apps til mobilen - closed_registrations: Registreringer er pÃ¥ nuværrende tidspunkt lukkede for denne instans. Du kan dog finde andre instanser du kan oprette dig pÃ¥ og fÃ¥ adgang til det samme netværk derfra. contact: Kontakt contact_missing: Ikke sat contact_unavailable: Ikke tilgængeligt @@ -15,19 +14,9 @@ da: extended_description_html: | <h3>Et godt sted for regler</h3> <p>Den udvidede beskrivelse er endnu ikke blevet opsat.</p> - features: - humane_approach_body: Ved at lære fra fejl fra andre netværk, sigter Mastodon for at tage etisk designmæssig valg for at bekæmpe misbrug af sociale medier. - humane_approach_title: En mere human tilgang - not_a_product_body: Mastodon er ikke et kommercielt netværk. Ingen reklamer, ingen datamining, ingen indhegnet haver. Der er ingen central regering. - not_a_product_title: Du er en person, ikke et produkt - real_conversation_body: Med 500 tegn til din rÃ¥dighed og understøttelse af granulært indhold og medie advarsler, kan du udtrykke dig pÃ¥ en hvilken som helst mÃ¥de du ønsker. - real_conversation_title: Bygget til rigtige samtaler - within_reach_body: Adskillige apps for iOS, Android og andre platforme takket være et udviklervenligt API økosystem tillader dig at holde kontakten med dine venner hvor som helst. - within_reach_title: Altid indenfor rækkevidde generic_description: "%{domain} er en server i netværket" hosted_on: Mostodon hostet pÃ¥ %{domain} learn_more: Lær mere - other_instances: Liste over instanser privacy_policy: Privatlivspolitik source_code: Kildekode status_count_after: @@ -457,13 +446,11 @@ da: logout: Log ud migrate_account: Flyt til en anden konto migrate_account_html: Hvis du ønsker at omdirigere denne konto til en anden, kan du <a href="%{path}">gøre det her</a>. - or: eller or_log_in_with: Eller log in med providers: cas: CAS saml: SAML register: Opret dig - register_elsewhere: Opret dig pÃ¥ en anden server resend_confirmation: Gensend bekræftelses instrukser reset_password: Nulstil kodeord security: Sikkerhed diff --git a/config/locales/de.yml b/config/locales/de.yml index 1dff7156e88986fd75760f34a57ee705ff89a312..150ead7f7943432cebe0f5a389a4f0af724d49ea 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -7,7 +7,6 @@ de: administered_by: 'Administriert von:' api: API apps: Mobile Apps - closed_registrations: Die Registrierung auf diesem Server ist momentan geschlossen. Aber du kannst dein Konto auch auf einem anderen Server erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk. contact: Kontakt contact_missing: Nicht angegeben contact_unavailable: N/A @@ -15,19 +14,9 @@ de: extended_description_html: | <h3>Ein guter Platz für Regeln</h3> <p>Die erweiterte Beschreibung wurde noch nicht aufgesetzt.</p> - features: - humane_approach_body: Aus den Fehlern anderer Netzwerke lernend, zielt Mastodon darauf ab, mit ethischen Design-Entscheidungen den Missbrauch sozialer Medien zu verhindern. - humane_approach_title: Ein menschlicherer Ansatz - not_a_product_body: Mastodon ist kein kommerzielles Netzwerk. Keine Werbung, kein Abgraben deiner Daten, keine geschlossene Plattform. Es gibt keine Zentrale. - not_a_product_title: Du bist ein Mensch und keine Ware - real_conversation_body: Mit 500 Zeichen pro Beitrag und Features wie Inhalts- und Bilderwarnungen kannst du dich so ausdrücken, wie du es möchtest. - real_conversation_title: Geschaffen für echte Gespräche - within_reach_body: Verschiedene Apps für iOS, Android und andere Plattformen erlauben es dir, dank unseres blühenden API-Ökosystems, dich von überall auf dem Laufenden zu halten. - within_reach_title: Immer für dich da generic_description: "%{domain} ist ein Server im Netzwerk" hosted_on: Mastodon, beherbergt auf %{domain} learn_more: Mehr erfahren - other_instances: Andere Server privacy_policy: Datenschutzerklärung source_code: Quellcode status_count_after: @@ -507,13 +496,11 @@ de: logout: Abmelden migrate_account: Ziehe zu einem anderen Konto um migrate_account_html: Wenn du wünschst, dieses Konto zu einem anderen umzuziehen, kannst du <a href="%{path}">dies hier einstellen</a>. - or: oder or_log_in_with: Oder anmelden mit providers: cas: CAS saml: SAML register: Registrieren - register_elsewhere: Registrieren auf einem anderen Server resend_confirmation: Bestätigungs-Mail erneut versenden reset_password: Passwort zurücksetzen security: Sicherheit diff --git a/config/locales/el.yml b/config/locales/el.yml index 35da50af7c0f4597044ed49ee2b2d2859dfbf965..22ec313c05c96cddb4e489dabc545f505fedf004 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -7,7 +7,6 @@ el: administered_by: 'ΔιαχειÏιστής:' api: API apps: ΕφαÏμογÎÏ‚ κινητών - closed_registrations: Αυτή τη στιγμή οι εγγÏαφÎÏ‚ σε αυτό τον κόμβο είναι κλειστÎÏ‚. Αλλά! ΜποÏείς να βÏεις Îναν άλλο κόμβο για να ανοίξεις λογαÏιασμό και να Îχεις Ï€Ïόσβαση από εκεί στο ίδιο ακÏιβώς δίκτυο. contact: Επικοινωνία contact_missing: Δεν Îχει οÏιστεί contact_unavailable: Μ/Δ @@ -15,19 +14,9 @@ el: extended_description_html: | <h3>Ένα καλό σημείο για κανόνες</h3> <p>Η αναλυτική πεÏιγÏαφή δεν Îχει ακόμα οÏιστεί</p> - features: - humane_approach_body: Μαθαίνοντας από τις αποτυχίες άλλων δικτÏων, το Mastodon στοχεÏει να κάνει σχεδιαστικά ηθικÎÏ‚ επιλογÎÏ‚ για να καταπολεμήσει την κακόβουλη χÏήση των κοινωνικών δικτÏων. - humane_approach_title: Μια πιο ανθÏώπινη Ï€ÏοσÎγγιση - not_a_product_body: Το Mastodon δεν είναι Îνα εμποÏικό δίκτυο. Δεν Îχει διαφημίσεις, δεν Îχει εξόÏυξη δεδομÎνων, δεν Îχει πεÏιφÏαγμÎνους κήπους. Δεν υπάÏχει κεντÏικό σημείο ελÎγχου. - not_a_product_title: Είσαι άνθÏωπος, όχι Ï€Ïοϊόν - real_conversation_body: Με 500 χαÏακτήÏες στη διάθεσή σου και υποστήÏιξη για λεπτομεÏή Îλεγχο και Ï€Ïοειδοποιήσεις πολυμÎσων, μποÏείς να εκφÏαστείς με τον Ï„Ïόπο που θÎλεις. - real_conversation_title: ΦτιαγμÎνο για αληθινή συζήτηση - within_reach_body: Οι πολλαπλÎÏ‚ εφαÏμογÎÏ‚ για το iOS, το Android και τις υπόλοιπες πλατφόÏμες, χάÏη σε Îνα φιλικό Ï€Ïος τους Ï€ÏογÏαμματιστÎÏ‚ οικοσÏστημα API, σου επιτÏÎπουν να κÏατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε. - within_reach_title: Πάντα Ï€Ïοσβάσιμο generic_description: "%{domain} είναι Îνας εξυπηÏετητής στο δίκτυο" hosted_on: Το Mastodon φιλοξενείται στο %{domain} learn_more: Μάθε πεÏισσότεÏα - other_instances: Λίστα κόμβων privacy_policy: Πολιτική αποÏÏήτου source_code: Πηγαίος κώδικας status_count_after: @@ -508,13 +497,11 @@ el: logout: ΑποσÏνδεση migrate_account: Μετακόμισε σε διαφοÏετικό λογαÏιασμό migrate_account_html: Αν θÎλεις να ανακατευθÏνεις αυτό τον λογαÏιασμό σε Îναν διαφοÏετικό, μποÏείς να το <a href="%{path}">διαμοÏφώσεις εδώ</a>. - or: ή or_log_in_with: Ή συνδÎσου με providers: cas: ΥπηÏεσία ΚεντÏικής Πιστοποίησης (CAS) saml: SAML register: ΕγγÏαφή - register_elsewhere: ΕγγÏαφή σε διαφοÏετικό εξυπηÏετητή resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης reset_password: ΕπαναφοÏά ÏƒÏ…Î½Î¸Î·Î¼Î±Ï„Î¹ÎºÎ¿Ï security: Ασφάλεια diff --git a/config/locales/en.yml b/config/locales/en.yml index f714884f9711db652be10de61952bce23696cb74..b026e892f6b8fb4b7e1d494e1e931eb8ffc84f18 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4,36 +4,36 @@ en: 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_this: About + active_count_after: active + active_footnote: Monthly Active Users (MAU) administered_by: 'Administered by:' api: API apps: Mobile apps - closed_registrations: Registrations are currently closed on this server. However! You can find a different server to make an account on and get access to the very same network from there. + apps_platforms: Use Mastodon 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 contact: Contact contact_missing: Not set contact_unavailable: N/A + discover_users: Discover users documentation: Documentation extended_description_html: | <h3>A good place for rules</h3> <p>The extended description has not been set up yet.</p> - features: - humane_approach_body: Learning from failures of other networks, Mastodon aims to make ethical design choices to combat the misuse of social media. - humane_approach_title: A more humane approach - not_a_product_body: Mastodon is not a commercial network. No advertising, no data mining, no walled gardens. There is no central authority. - not_a_product_title: You’re a person, not a product - real_conversation_body: With 500 characters at your disposal and support for granular content and media warnings, you can express yourself the way you want to. - real_conversation_title: Built for real conversation - within_reach_body: Multiple apps for iOS, Android, and other platforms thanks to a developer-friendly API ecosystem allow you to keep up with your friends anywhere. - within_reach_title: Always within reach + 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" + get_apps: Try a mobile app hosted_on: Mastodon hosted on %{domain} learn_more: Learn more - other_instances: Server list privacy_policy: Privacy policy + see_whats_happening: See what's happening + server_stats: 'Server stats:' source_code: Source code status_count_after: one: status other: statuses status_count_before: Who authored + tagline: Follow friends and discover new ones terms: Terms of service user_count_after: one: user @@ -498,6 +498,7 @@ en: auth: agreement_html: By clicking "Sign up" below you agree to follow <a href="%{rules_path}">the rules of the server</a> and <a href="%{terms_path}">our terms of service</a>. change_password: Password + checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a> confirm_email: Confirm email delete_account: Delete account delete_account_html: If you wish to delete your account, you can <a href="%{path}">proceed here</a>. You will be asked for confirmation. @@ -508,17 +509,17 @@ en: logout: Logout migrate_account: Move to a different account migrate_account_html: If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>. - or: or or_log_in_with: Or log in with providers: cas: CAS saml: SAML register: Sign up - register_elsewhere: Sign up on another server + registration_closed: "%{instance} is not accepting new members" resend_confirmation: Resend confirmation instructions reset_password: Reset password security: Security set_new_password: Set new password + trouble_logging_in: Trouble logging in? authorize_follow: already_following: You are already following this account error: Unfortunately, there was an error looking up the remote account diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 4e404d9eb543a149355e1abd421e24b5cc904e76..a1ed5eceda02ea5e37b6b4e72798ad0c9bfa11ea 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -7,7 +7,6 @@ eo: administered_by: 'Administrata de:' api: API apps: PoÅtelefonaj aplikaĵoj - closed_registrations: RegistriÄoj estas nuntempe fermitaj en ĉi tiu servilo. Tamen, vi povas trovi alian servilon por fari konton kaj aliri al la sama reto de tie. contact: Kontakti contact_missing: Ne elektita contact_unavailable: Ne disponebla @@ -15,19 +14,9 @@ eo: extended_description_html: | <h3>Bona loko por reguloj</h3> <p>La detala priskribo ne estis elektita.</p> - features: - humane_approach_body: Lernante de eraroj de aliaj retoj, Mastodon celas fari etikajn fasonajn elektojn por batali kontraÅ misuzado de sociaj retoj. - humane_approach_title: Aliro pli humana - not_a_product_body: Mastodon ne estas komerca reto. Neniu reklamo, neniu kolektado de datumoj, neniu privilegio. Ne estas centra aÅtoritato. - not_a_product_title: Vi estas homo, ne produkto - real_conversation_body: Per 500 disponeblaj signoj, per elektebloj pri videbleco, kaj per avertoj pri enhavo, vi povas esprimi vin tiel, kiel vi volas. - real_conversation_title: Konstruita por veraj konversacioj - within_reach_body: Pluraj aplikaĵoj por iOS, Android, kaj aliaj platformoj danke al API-medio bonveniga por programistoj permesas resti en kontakto kun viaj amikoj ĉie. - within_reach_title: Ĉiam kontaktebla generic_description: "%{domain} estas unu servilo en la reto" hosted_on: "%{domain} estas nodo de Mastodon" learn_more: Lerni pli - other_instances: Listo de serviloj privacy_policy: Privateca politiko source_code: Fontkodo status_count_after: @@ -508,13 +497,11 @@ eo: logout: Elsaluti migrate_account: Movi al alia konto migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas <a href="%{path}">agordi Äin ĉi tie</a>. - or: aÅ or_log_in_with: AÅ ensaluti per providers: cas: CAS saml: SAML register: RegistriÄi - register_elsewhere: RegistriÄi en alia servilo resend_confirmation: Resendi la instrukciojn por konfirmi reset_password: ÅœanÄi pasvorton security: Sekureco diff --git a/config/locales/es.yml b/config/locales/es.yml index 2bde59dbc0a9c1b66cc9f05766e556e71716d573..41e5cdd249cbd081153331399aaf508daddfe076 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -7,7 +7,6 @@ es: administered_by: 'Administrado por:' api: API apps: Aplicaciones móviles - closed_registrations: Los registros están actualmente cerrados en este servidor. Aun asÃ, puedes encontrar un servidor diferente para registrarte y tener acceso a la misma comunidad contact: Contacto contact_missing: No especificado contact_unavailable: N/A @@ -15,19 +14,9 @@ es: extended_description_html: | <h3>Un buen lugar para las reglas</h3> <p>La descripción extendida no se ha colocado aún.</p> - features: - humane_approach_body: Aprendiendo de los errores de otras redes, Mastodon apunta a las decisiones de diseño ético para combatir el desuso de las redes sociales. - humane_approach_title: Una misión más humana - not_a_product_body: Mastodon no es una red comercial. Nada de publicidad, nada de minado de datos, nada de jardines murados. No hay ninguna autoridad central. - not_a_product_title: Eres una persona, no un producto - real_conversation_body: Con 500 caracteres a tu disposición y soporte para contenido granular y advertencias de contenido, puedes expresarte como quieras. - real_conversation_title: Hecho para verdaderas conversaciones - within_reach_body: Aplicaciones múltiples para iOS, Android, y otras plataformas gracias a un ecosistema de APIs amigable al desarrollador para permitirte estar con tus amigos donde sea. - within_reach_title: Siempre al alcance generic_description: "%{domain} es un servidor en la red" hosted_on: Mastodon hosteado en %{domain} learn_more: Aprende más - other_instances: Otras instancias privacy_policy: PolÃtica de privacidad source_code: Código fuente status_count_after: @@ -460,13 +449,11 @@ es: logout: Cerrar sesión migrate_account: Mudarse a otra cuenta migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes <a href="%{path}">configurarlo aquÃ</a>. - or: o or_log_in_with: O inicia sesión con providers: cas: CAS saml: SAML register: Registrarse - register_elsewhere: Registrarse en otro servidor resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña security: Cambiar contraseña diff --git a/config/locales/eu.yml b/config/locales/eu.yml index f8eb18279ebdc8de816fdc8611c09e08f13c6df1..f7bb8bba29e6184bbea6e258d013a28f5314974c 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -7,7 +7,6 @@ eu: administered_by: 'Administratzailea(k):' api: APIa apps: Aplikazio mugikorrak - closed_registrations: Harpidetza itxita dago orain zerbitzari honetan. Hala ere, beste zerbitzari bat aurkitu dezakezu kontua egiteko eta hona ere sarbidea izan. contact: Kontaktua contact_missing: Ezarri gabe contact_unavailable: E/E @@ -15,19 +14,9 @@ eu: extended_description_html: | <h3>Arauentzako toki egoki bat</h3> <p>Azalpen luzea ez da ezarri oraindik.</p> - features: - humane_approach_body: Beste sareen akatsetatik ikasiz, Mastodon diseinu erabaki etikoak hartzen saiatzen da gizarte sareen erabilera okerrak borrokatzeko. - humane_approach_title: Ikuspuntu humanoago bat - not_a_product_body: Mastodon ez da sare komertzial bat. Ez du iragarkirik, eta ditu datuak mehatzen, ez da hormaz babestutako lorategi bat. Ez dago autoritate zentralik. - not_a_product_title: Pertsona bat zara, ez produktu bat - real_conversation_body: 500 karaktere dituzu eskura, edukia xehetasunez kudeatu daiteke eta multimediari abisuak jarri, adierazi zure burua zure erara. - real_conversation_title: Egiazko elkarrizketarako eraikia - within_reach_body: iOS, Android eta beste plataformetarako aplikazio ugari, eta garatzaileentzako erabilterraza den API ekosistema bati esker beste plataforma batzuetako lagunekin aritzeko aukera. - within_reach_title: Beti eskura generic_description: "%{domain} sareko zerbitzari bat da" hosted_on: Mastodon %{domain} domeinuan ostatatua learn_more: Ikasi gehiago - other_instances: Zerbitzarien zerrenda privacy_policy: Pribatutasun politika source_code: Iturburu kodea status_count_after: @@ -507,13 +496,11 @@ eu: logout: Amaitu saioa migrate_account: Lekualdatu beste kontu batera migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, <a href="%{path}">hemen konfiguratu</a> dezakezu. - or: edo or_log_in_with: Edo hasi saioa honekin providers: cas: CAS saml: SAML register: Eman izena - register_elsewhere: Eman izena beste zerbitzari batean resend_confirmation: Birbidali berresteko argibideak reset_password: Berrezarri pasahitza security: Segurtasuna diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 4214e793cbe9f00d3cf30cbcdb0a11cfad471106..cd8034ae117c0e07d8371b87e44faa14cda24291 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -7,7 +7,6 @@ fa: administered_by: 'با مدیریت:' api: رابط برنامه‌نویسی کاربردی apps: اپ‌های موبایل - closed_registrations: ثبت‌نام روی این سرور هم‌اینک ÙØ¹Ø§Ù„ نیست. اما شما می‌توانید سرور دیگری بیابید Ùˆ با ØØ³Ø§Ø¨ÛŒ Ú©Ù‡ آن‌جا می‌سازید دقیقاً به همین شبکه دسترسی داشته باشید. contact: تماس contact_missing: تعیین نشده contact_unavailable: موجود نیست @@ -15,19 +14,9 @@ fa: extended_description_html: | <h3>جای خوبی برای قانون‌ها</h3> <p>ØªÙˆØ¶ÛŒØØ§Øª تکمیلی نوشته نشده است.</p> - features: - humane_approach_body: با آموختن از کاستی‌های شبکه‌های دیگر، ماستدون می‌خواهد به Ú©Ù…Ú© انتخاب‌های اخلاقی‌تر در طراØÛŒ خودش با آسیب‌های شبکه‌های اجتماعی مبارزه کند. - humane_approach_title: رویکردی انسانی‌تر - not_a_product_body: ماستدون یک شبکهٔ تجاری نیست. بدون تبلیغات، بدون داده‌کاوی، بدون ØØµØ§Ø±Ú©Ø´ÛŒ. هیچ قدرت مرکزی‌ای وجود ندارد. - not_a_product_title: شما یک انسان هستید، نه یک Ù…ØØµÙˆÙ„ - real_conversation_body: با ÛµÛ°Û° نویسه برای هر نوشته Ùˆ با پشتیبانی از هشدارهای موردی برای نوشته‌ها Ùˆ تصاویر، می‌توانید خود را همان گونه Ú©Ù‡ می‌خواهید ابراز کنید. - real_conversation_title: برای Ú¯ÙØªÚ¯ÙˆÙ‡Ø§ÛŒ واقعی - within_reach_body: اپ‌های متنوع برای iOSØŒ اندروید، Ùˆ سیستم‌های دیگر به خاطر وجود یک اکوسیستم API دوستانه برای برنامه‌نویسان. از همه جا با دوستان خود ارتباط داشته باشید. - within_reach_title: همیشه در دسترس generic_description: "%{domain} یک سرور روی شبکه است" hosted_on: ماستدون، میزبانی‌شده روی %{domain} learn_more: بیشتر بدانید - other_instances: Ùهرست سرورها privacy_policy: سیاست رازداری source_code: کدهای منبع status_count_after: @@ -508,13 +497,11 @@ fa: logout: خروج migrate_account: نقل مکان به یک ØØ³Ø§Ø¨ دیگر migrate_account_html: اگر می‌خواهید این ØØ³Ø§Ø¨ را به ØØ³Ø§Ø¨ دیگری منتقل کنید، <a href="%{path}">این‌جا را کلیک کنید</a>. - or: یا or_log_in_with: یا ورود به وسیلهٔ providers: cas: CAS saml: SAML register: عضو شوید - register_elsewhere: ثبت نام روی یک سرور دیگر resend_confirmation: راهنمایی برای تأیید را دوباره Ø¨ÙØ±Ø³Øª reset_password: بازنشانی رمز security: امنیت diff --git a/config/locales/fi.yml b/config/locales/fi.yml index c3c48cbe31fd191ec635c0d1350f2c34019a087a..94dfa61b0c8cde5286153f86032f3cc481d2b208 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -7,7 +7,6 @@ fi: administered_by: 'Ylläpitäjä:' api: API apps: Mobiili sovellukset - closed_registrations: Tähän instanssiin ei voi tällä hetkellä rekisteröityä. Voit kuitenkin luoda tilin johonkin toiseen instanssiin ja käyttää samaa verkostoa sitä kautta. contact: Ota yhteyttä contact_missing: Ei asetettu contact_unavailable: Ei saatavilla @@ -15,19 +14,9 @@ fi: extended_description_html: | <h3>Hyvä paikka säännöille</h3> <p>Pidempää kuvausta ei ole vielä laadittu.</p> - features: - humane_approach_body: Mastodonissa otetaan oppia muiden verkostojen virheistä, ja sen suunnittelussa pyritään toimimaan eettisesti ja ehkäisemään sosiaalisen median väärinkäyttöä. - humane_approach_title: Ihmisläheisempi ote - not_a_product_body: Mastodon ei ole kaupallinen verkosto. Ei mainoksia, ei tiedonlouhintaa, ei suljettuja protokollia. Mastodonissa ei ole keskusjohtoa. - not_a_product_title: Olet henkilö, et tuote - real_conversation_body: 'Voit ilmaista itseäsi niin kuin itse haluat: tilaa on 500 merkkiä, ja sisältövaroituksia voi tehdä monin tavoin.' - real_conversation_title: Tehty oikeaa keskustelua varten - within_reach_body: Rajapintoja on tarjolla moniin eri kehitysympäristöihin, minkä ansiosta iOS:lle, Androidille ja muille alustoille on saatavana useita eri sovelluksia. Näin voit pitää yhteyttä ystäviisi missä vain. - within_reach_title: Aina lähellä generic_description: "%{domain} on yksi verkostoon kuuluvista palvelimista" hosted_on: Mastodon palvelimella %{domain} learn_more: Lisätietoja - other_instances: Muut palvelimet privacy_policy: Tietosuojaseloste source_code: Lähdekoodi status_count_after: @@ -396,13 +385,11 @@ fi: logout: Kirjaudu ulos migrate_account: Muuta toiseen tiliin migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit <a href="%{path}">asettaa toisen tilin tästä</a>. - or: tai or_log_in_with: Tai käytä kirjautumiseen providers: cas: CAS saml: SAML register: Rekisteröidy - register_elsewhere: Rekisteröidy toiselle palvelimelle resend_confirmation: Lähetä vahvistusohjeet uudestaan reset_password: Palauta salasana security: Tunnukset diff --git a/config/locales/fr.yml b/config/locales/fr.yml index b9d813e9e57d8cc7d3578ff120ed155b5565da64..4fbc0294549c83f70067aa3646595c7663e602be 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -7,7 +7,6 @@ fr: administered_by: 'Administrée par :' api: API apps: Applications mobiles - closed_registrations: Les inscriptions sont actuellement fermées sur cette instance. Cependant, vous pouvez trouver une autre instance sur laquelle vous créer un compte et à partir de laquelle vous pourrez accéder au même réseau. contact: Contact contact_missing: Manquant contact_unavailable: Non disponible @@ -15,19 +14,9 @@ fr: extended_description_html: | <h3>Un bon endroit pour les règles</h3> <p>La description étendue n’a pas été remplie.</p> - features: - humane_approach_body: Ayant appris des échecs d’autres réseaux, Mastodon à l’ambition de combattre l’abus des médias sociaux en effectuant des choix de conception éthiques. - humane_approach_title: Une approche plus humaine - not_a_product_body: Mastodon n’est pas un réseau commercial. Ici, pas de publicités, pas de prospection de données et pas d’environnements fermés. Il n’y existe aucune autorité centrale. - not_a_product_title: Vous êtes une personne, pas un produit - real_conversation_body: Avec 500 caractères à votre disposition, une grande granularité en termes de diffusion et la possibilité de masquer vos messages derrière des avertissements, vous êtes libre de vous exprimer de la manière qui vous plaît. - real_conversation_title: Construit pour de vraies conversations - within_reach_body: Grâce à l’existence d’un environnement API accueillant pour les développeur·se·s, de multiples applications pour iOS, Android et d’autres plateformes vous permettent de rester en contact avec vos ami·e·s où que vous soyez. - within_reach_title: Toujours à portée de main generic_description: "%{domain} est seulement un serveur du réseau" hosted_on: Instance Mastodon hébergée par %{domain} learn_more: En savoir plus - other_instances: Liste des instances privacy_policy: Politique de vie privée source_code: Code source status_count_after: @@ -508,13 +497,11 @@ fr: logout: Se déconnecter migrate_account: Déplacer vers un compte différent migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le <a href="%{path}">configurer ici</a>. - or: ou or_log_in_with: Ou authentifiez-vous avec providers: cas: CAS saml: SAML register: S’inscrire - register_elsewhere: S’inscrire sur un autre serveur resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe security: Sécurité diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 2435137f9221564e959586d298485b22acb60ec5..f18695046479a555734ee7d9e307b5337d3117c5 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -7,7 +7,6 @@ gl: administered_by: 'Administrada por:' api: API apps: Apps móbiles - closed_registrations: O rexistro en este servidor está pechado neste momento. Porén! Pode atopar un servidor diferente para obter unha conta e ter acceso exactamente a misma rede desde alÃ. contact: Contacto contact_missing: Non establecido contact_unavailable: N/A @@ -15,19 +14,9 @@ gl: extended_description_html: | <h3>Un bo lugar para regras</h3> <p>A descrición extendida aÃnda non se proporcionou.</p> - features: - humane_approach_body: Aprendendo dos erros de outras redes, Mastodon intenta tomar decisións éticas de deseño para loitar contra os usos incorrectos da rede. - humane_approach_title: Unha aproximación máis humana - not_a_product_body: Mastodon non é unha rede comercial. Sen anuncios, sen minerÃa de datos, sen xardÃns privados. Non hai autoridade centralizada. - not_a_product_title: Vostede é unha persoa, non un producto - real_conversation_body: Con 500 caracteres a súa disposición, soporte para contido polo miúdo e avisos sobre o contido, pode expresarse vostede con libertade. - real_conversation_title: ConstruÃdo para conversacións reais - within_reach_body: Existen múltiples aplicacións para iOS, Android e outras plataformas grazas a un entorno API amigable para o desenvolvedor que lle permite estar ao tanto cos seus amigos en calquer lugar. - within_reach_title: Sempre en contacto generic_description: "%{domain} é un servidor na rede" hosted_on: Mastodon aloxado en %{domain} learn_more: Coñeza máis - other_instances: Lista de servidores privacy_policy: PolÃtica de intimidade source_code: Código fonte status_count_after: @@ -508,13 +497,11 @@ gl: logout: Desconectar migrate_account: Mover a unha conta diferente migrate_account_html: Se desexa redirixir esta conta hacia outra diferente, pode <a href="%{path}">configuralo aquÃ</a>. - or: ou or_log_in_with: ou conectar con providers: cas: CAS saml: SAML register: Rexistro - register_elsewhere: RexÃstrese en outro servidor resend_confirmation: Voltar a enviar intruccións de confirmación reset_password: Restablecer contrasinal security: Seguridade diff --git a/config/locales/he.yml b/config/locales/he.yml index bc92ed90828acf5a937cf30c9b5a6dee0100dafc..5febebe29a6fdbb258b0e8348eed2b3a03b40ca5 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -6,7 +6,6 @@ he: about_this: ×ודות שרת ×–×” api: API apps: ×™×™×©×•×ž×•× ×™× ×œ× ×™×™×“ - closed_registrations: הרשמות סגורות לשרת ×–×” לעת עתה. contact: יצירת קשר contact_missing: ×œ×œ× ×”×’×“×¨×” contact_unavailable: ×œ× ×¨×œ×•×•× ×˜×™/חסר @@ -14,19 +13,9 @@ he: extended_description_html: | <h3>×ž×§×•× ×˜×•×‘ לכללי×</h3> <p>התי×ור המורחב ×˜×¨× ×”×•×’×“×¨.</p> - features: - humane_approach_body: מתוך למידה ×ž×›×©×œ×™× ×©×œ רשתות ×חרות, מסטודון ×ž×›×•×•× ×ª להחלטות ×ª×›× ×•× ×™×•×ª ×תיות ×©× ×בקות בשימוש לרעה של מדיה חברתית. - humane_approach_title: גישה הומ×× ×™×ª יותר - not_a_product_body: מסטודון ××™× × ×” רשת מסחרית. ×ין פרסו×, ×ין כריית מידע, ×ין ×’× ×™× ×¡×’×•×¨×™×. ×ין סמכות מרכזית. - not_a_product_title: ×ת(×”) ×ד×, ×œ× ×ž×•×¦×¨ - real_conversation_body: ×¢× 500 ×ª×•×•×™× ×œ×¨×©×•×ª×š, ו×פשרויות ×¤×¨×˜× ×™×•×ª ל×זהרות תוכן והסתרת מדיה, יש לך ×ת החופש ×œ×”×ª×‘×˜× ×›×¨×¦×•× ×š. - real_conversation_title: ×‘× ×•×™ לשיחות ×מתיות - within_reach_body: שלל ×פליקציות עבור iOS, ×× ×“×¨×•×יד ופלטפורמות ×חרות שי×פשרו לך לשמור על קשר ×¢× ×—×‘×¨×™× ×‘×›×œ מקו×, תודות למערכת ×ž× ×©×§×™ ×ª×•×›× ×” ×™×“×™×“×•×ª×™×™× ×œ×ž×¤×ª×—×™×. - within_reach_title: תמיד במרחק × ×’×™×¢×” generic_description: "%{domain} ×”×•× ×©×¨×ª ×חד בתוך הרשת" hosted_on: מסטודון שיושב בכתובת %{domain} learn_more: מידע × ×•×¡×£ - other_instances: ×©×¨×ª×™× ××—×¨×™× source_code: קוד מקור status_count_after: הודעות status_count_before: שכתבו diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 38971833c1fd2ac9874d433609f01d6d1cd01b85..f53515d7aff798dcb13528319b7bcb5834543eda 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -3,9 +3,7 @@ hr: about: about_mastodon_html: Mastodon je <em>besplatna, open-source</em> socijalna mreža. <em>Decentralizirana</em> alternativa komercijalnim platformama, izbjegava rizik toga da jedna tvrtka monopolizira vaÅ¡u komunikaciju. Izaberite server kojem ćete vjerovati — koji god odabrali, moći ćete komunicirati sa svima ostalima. Bilo tko može imati svoju vlastitu Mastodon instancu i sudjelovati u <em>socijalnoj mreži</em> bez problema. about_this: O ovoj instanci - closed_registrations: Registracije na ovoj instanci su trenutno zatvorene. contact: Kontakt - other_instances: Druge instance source_code: Izvorni kod status_count_after: statusi status_count_before: Tko je autor diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 79363b9ee2d8acfeb243f12ee171860cf5394314..56d608819424f55890c29a1c20365b2e3186aa74 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -4,26 +4,15 @@ hu: about_hashtag_html: Ezek a <strong>#%{hashtag}</strong> cÃmkével ellátott publikus tülkök. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban. about_mastodon_html: Mastodon egy <em>szabad, nyÃlt forráskódú</em> szociális hálózati kiszolgálo. Egy <em>központosÃtatlan</em> alternatÃva a kereskedelmi platformokra, elkerüli a kommunikációd monopolizációját veszélyét. Bárki futtathatja a Mastodon-t és részt vehet a <em>szociális hálózatban</em>. about_this: Rólunk - closed_registrations: A regisztráció jelenleg nem engedélyezett ezen az instancián. De ne csüggedj! Létrehozhatsz fiókot egy másik instancián és azon keresztül is hozzáférsz a teljes föderációhoz. contact: Kapcsolat contact_missing: Nincs megadva contact_unavailable: N/A extended_description_html: | <h3>Ez itt a szabályzat helye</h3> <p>Még nem állÃtottál be bÅ‘vebb leÃrást.</p> - features: - humane_approach_body: Más alkalmazások hibáiból tanulva a Mastodon etikus alapokon nyugvó döntésekkel küzd a közösségi média ártalmai ellen. - humane_approach_title: Emberséges attitűd - not_a_product_body: A Mastodon nem a profitszerzésre épül, nem is privát játszótér. Nincsenek reklámok, nincs adatbányászat és központosÃtott döntéshozatal sincsen. - not_a_product_title: Ember vagy, nem pedig árucikk - real_conversation_body: Az 500 karakteres limit, az érzékeny tartalomként jelölés és más kifinomult eszközök segÃtségével tényleg egyedi módon fejezheted ki önmagad. - real_conversation_title: Valódi beszélgetésekre tervezve - within_reach_body: A fejlesztÅ‘barát API-nak köszönhetÅ‘en számos iOS, Android és egyéb platformra Ãrt alkalmazás teszi lehetÅ‘vé, hogy bármikor, bárhonnan részt vehess a társalgásban. - within_reach_title: Mindig elérhetÅ‘nek lenni generic_description: "%{domain} csak egy a számtalan szerver közül a föderációban" hosted_on: "%{domain} Mastodon instancia" learn_more: Tudj meg többet - other_instances: Instanciák listája source_code: Forráskód status_count_after: tülköt küldött status_count_before: eddig diff --git a/config/locales/id.yml b/config/locales/id.yml index d155ab0a7915999bb6978c1aa399f508c3b476e8..896ea402b70e3958c3489cf025cb9a87e0cb0f5f 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -7,7 +7,6 @@ id: administered_by: 'Dikelola oleh:' api: API apps: Aplikasi hp - closed_registrations: Pendaftaran untuk server ini sedang ditutup. Tetapi, anda bisa mencari server lain untuk membuat akun dan mendapatkan akses dari jaringan yang sama di sana. contact: Kontak contact_missing: Belum diset contact_unavailable: Tidak Tersedia @@ -15,19 +14,9 @@ id: extended_description_html: | <h3>Tempat yang baik untuk peraturan</h3> <p>Deskripsi lainnya belum diset.</p> - features: - humane_approach_body: Belajar dari kegagalan jaringan lain, Mastodon berupaya untuk membuat pilihan desain yang etis untuk melawan penyalahgunaan media sosial. - humane_approach_title: Pendekatan yang lebih manusiawi - not_a_product_body: Mastodon bukanlah jaringan komersil. Tidak ada iklan, tidak ada pengumpulan data, tidak ada batasan vendor. Tidak ada otoritas terpusat. - not_a_product_title: Anda adalah orang, bukanlah sebuah produk - real_conversation_body: Dengan 500 karakter dan dukungan konten granular dan peringatan media, anda dapat mengekspresikan diri anda sendiri sesuai yang anda mau. - real_conversation_title: Dibangun untuk percakapan yang sebenarnya - within_reach_body: Berbagai aplikasi untuk iOS, Android, dan platform lainnya berkat ekosistem API yang ramah pada pengembang untuk tetap terhubung dengan teman-teman anda dimanapun. - within_reach_title: Selalu dalam jangkauan generic_description: "%{domain} adalah satu server dalam jaringan" hosted_on: Mastodon dihosting di %{domain} learn_more: Pelajari selengkapnya - other_instances: Daftar Server privacy_policy: Kebijakan Privasi source_code: Kode sumber status_count_after: diff --git a/config/locales/io.yml b/config/locales/io.yml index 73c981a985a9971a392146ec32bdfb2af0a4ba5d..ec86d1a79bec62edb35553b634c5313dad0a9d34 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -3,9 +3,7 @@ io: about: about_mastodon_html: Mastodon esas <em>gratuita, apertitkodexa</em> sociala reto. Ol esas <em>sencentra</em> altra alternativo a komercala servadi. Ol evitigas, ke sola firmo guvernez tua tota komunikadol. Selektez servero, quan tu fidas. Irge qua esas tua selekto, tu povas komunikar kun omna altra uzeri. Irgu povas krear sua propra instaluro di Mastodon en sua servero, e partoprenar en la <em>sociala reto</em> tote glate. about_this: Pri ta instaluro - closed_registrations: Membresko ne nun esas posible en ta instaluro. contact: Kontaktar - other_instances: Altra instaluri source_code: Fontkodexo status_count_after: mesaji status_count_before: Qua publikigis diff --git a/config/locales/it.yml b/config/locales/it.yml index 76fcb2b91f68f0103078fcd634241ccd9ec53952..3a4703ca175f1ae86d66bb41c1a8c578bc2aae0d 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -7,7 +7,6 @@ it: administered_by: 'Amministrato da:' api: API apps: Applicazioni Mobile - closed_registrations: Al momento le iscrizioni a questo server sono chiuse. Tuttavia! Puoi provare a cercare un server diverso su cui creare un account ed avere accesso alla stessa identica rete. contact: Contatti contact_missing: Non impostato contact_unavailable: N/D @@ -15,19 +14,9 @@ it: extended_description_html: | <h3>Un buon posto per le regole</h3> <p>La descrizione estesa non è ancora stata preparata.</p> - features: - humane_approach_body: Imparando dai fallimenti degli altri networks, Mastodon mira a fare scelte etiche di design per combattere l'abuso dei social media. - humane_approach_title: Un approccio più umano - not_a_product_body: Mastodon non è una rete commerciale. Niente pubblicità , niente data mining, nessun recinto dorato. Non c'è nessuna autorità centrale. - not_a_product_title: Tu sei una persona, non un prodotto - real_conversation_body: Con 500 caratteri a disposizione, un supporto per i contenuti granulari ed avvisi sui media potrai esprimerti nel modo desiderato. - real_conversation_title: Creato per conversazioni reali - within_reach_body: Apps per iOS, Android ed altre piattaforme, realizzate grazie ad un ecosistema di API adatto agli sviluppatori, ti consentono di poter stare in contatto con i tuoi amici ovunque ti trovi. - within_reach_title: Sempre a portata di mano generic_description: "%{domain} è un server nella rete" hosted_on: Mastodon ospitato su %{domain} learn_more: Scopri altro - other_instances: Elenco server privacy_policy: Politica della privacy source_code: Codice sorgente status_count_after: @@ -484,10 +473,8 @@ it: logout: Esci da Mastodon migrate_account: Sposta ad un account differente migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi <a href="%{path}">configurarlo qui</a>. - or: o or_log_in_with: Oppure accedi con register: Iscriviti - register_elsewhere: Iscriviti su un altro server resend_confirmation: Invia di nuovo le istruzioni di conferma reset_password: Resetta la password security: Credenziali diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 7cbe82354aa8eeb9afe9c5ae44f3a33e5a560d9e..6d5574ba10fe8867557088e599392041a60e48d2 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -7,7 +7,6 @@ ja: administered_by: '管ç†è€…:' api: API apps: アプリ - closed_registrations: ç¾åœ¨ã“ã®ã‚µãƒ¼ãƒãƒ¼ã§ã®æ–°è¦ç™»éŒ²ã¯å—ã‘付ã‘ã¦ã„ã¾ã›ã‚“。ã—ã‹ã—ã€ä»–ã®ã‚µãƒ¼ãƒãƒ¼ã«ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’作æˆã—ã¦ã‚‚å…¨ãåŒã˜ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ contact: 連絡先 contact_missing: 未è¨å®š contact_unavailable: N/A @@ -15,19 +14,9 @@ ja: extended_description_html: | <h3>ルールを書ãã®ã«é©ã—ãŸå ´æ‰€</h3> <p>詳細説明ãŒè¨å®šã•れã¦ã„ã¾ã›ã‚“。</p> - features: - humane_approach_body: ä»–ã® SNS ã®å¤±æ•—ã‹ã‚‰å¦ã³ã€Mastodon ã¯ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ãƒ‡ã‚£ã‚¢ãŒèª¤ã£ãŸä½¿ã„方をã•れるã“ã¨ã®ç„¡ã„よã†ã«å€«ç†çš„ãªè¨è¨ˆã‚’目指ã—ã¦ã„ã¾ã™ã€‚ - humane_approach_title: よりæ€ã„やりã®ã‚ã‚‹è¨è¨ˆ - not_a_product_body: Mastodon ã¯å–¶åˆ©çš„㪠SNS ã§ã¯ã‚りã¾ã›ã‚“。広告やã€ãƒ‡ãƒ¼ã‚¿ã®åŽé›†ãƒ»è§£æžã«ã‚ˆã‚‹ã‚¿ãƒ¼ã‚²ãƒ†ã‚£ãƒ³ã‚°ã¯ç„¡ãã€ã¾ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å›²ã„è¾¼ã¿ã‚‚ã‚りã¾ã›ã‚“。ã“ã“ã«ã¯ä¸å¤®æ¨©åŠ›ã¯ã‚りã¾ã›ã‚“。 - not_a_product_title: ã‚ãªãŸã¯äººé–“ã§ã‚りã€å•†å“ã§ã¯ã‚りã¾ã›ã‚“ - real_conversation_body: 好ããªã‚ˆã†ã«æ›¸ã‘ã‚‹500æ–‡å—ã¾ã§ã®æŠ•ç¨¿ã‚„ã€æ–‡ç« やメディアã®å†…容ã«è¦å‘Šã‚’ã¤ã‘られる機能ã§ã€æ€ã„通りã«è‡ªåˆ†è‡ªèº«ã‚’表ç¾ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ - real_conversation_title: 本当ã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®ãŸã‚ã« - within_reach_body: デベãƒãƒƒãƒ‘ーフレンドリー㪠API ã«ã‚ˆã‚Šå®Ÿç¾ã•れãŸã€iOS ã‚„ Androidã€ãã®ä»–様々ãªãƒ—ラットフォームã®ãŸã‚ã®ã‚¢ãƒ—リã§ã©ã“ã§ã‚‚å‹äººã¨ã‚„りã¨ã‚Šã§ãã¾ã™ã€‚ - within_reach_title: ã„ã¤ã§ã‚‚身近㫠generic_description: "%{domain} ã¯ã€Mastodon サーãƒãƒ¼ã®ä¸€ã¤ã§ã™" hosted_on: Mastodon hosted on %{domain} learn_more: ã‚‚ã£ã¨è©³ã—ã - other_instances: ä»–ã®ã‚µãƒ¼ãƒãƒ¼ privacy_policy: プライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ source_code: ソースコード status_count_after: @@ -508,13 +497,11 @@ ja: logout: ãƒã‚°ã‚¢ã‚¦ãƒˆ migrate_account: 別ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«å¼•ã£è¶Šã™ migrate_account_html: 引ã£è¶Šã—先を明記ã—ãŸã„å ´åˆã¯<a href="%{path}">ã“ã¡ã‚‰</a>ã§è¨å®šã§ãã¾ã™ã€‚ - or: ã¾ãŸã¯ or_log_in_with: ã¾ãŸã¯æ¬¡ã®ã‚µãƒ¼ãƒ“スã§ãƒã‚°ã‚¤ãƒ³ providers: cas: CAS saml: SAML register: 登録ã™ã‚‹ - register_elsewhere: ä»–ã®ã‚µãƒ¼ãƒãƒ¼ã§æ–°è¦ç™»éŒ² resend_confirmation: 確èªãƒ¡ãƒ¼ãƒ«ã‚’å†é€ã™ã‚‹ reset_password: パスワードをå†ç™ºè¡Œ security: ã‚»ã‚ュリティ diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 056942ecd5503a5cc876e727c930a68f60075995..24c6638a320663ab4f626d69f7b2a2d3963815de 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -7,7 +7,6 @@ ka: administered_by: 'áƒáƒ“მინისტრáƒáƒ¢áƒáƒ ი:' api: áƒáƒžáƒ˜ apps: მáƒáƒ‘ილური áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒ”ბი - closed_registrations: რეგისტრáƒáƒªáƒ˜áƒ”ბი áƒáƒ›áƒŸáƒáƒ›áƒáƒ“ ინსტáƒáƒœáƒªáƒ˜áƒáƒ–ე დáƒáƒ®áƒ£áƒ ულიáƒ. თუმცáƒ! áƒáƒœáƒ’áƒáƒ იშის შესáƒáƒ¥áƒ›áƒœáƒ”ლáƒáƒ“ შეგიძლიáƒáƒ— იპáƒáƒ•áƒáƒ— სხვრინსტáƒáƒœáƒªáƒ˜áƒ დრიმáƒáƒ•ე ქსელზე იქáƒáƒœáƒ˜áƒáƒ— წვდáƒáƒ›áƒ იქიდáƒáƒœ. contact: კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ contact_missing: áƒáƒ áƒáƒ დáƒáƒ§áƒ”ნებული contact_unavailable: მიუწ. @@ -15,19 +14,9 @@ ka: extended_description_html: | <h3>კáƒáƒ გი áƒáƒ“გილი წესებისთვის</h3> <p>გáƒáƒœáƒ•რცáƒáƒ‘ილი áƒáƒ¦áƒ¬áƒ”რილáƒáƒ‘რჯერáƒáƒ შექმნილáƒ.</p> - features: - humane_approach_body: სხვრქსელების შეცდáƒáƒ›áƒ”ბის გáƒáƒ—ვáƒáƒšáƒ˜áƒ¡áƒ¬áƒ˜áƒœáƒ”ბით, მáƒáƒ¡áƒ¢áƒáƒ“áƒáƒœáƒ˜ მიზნáƒáƒ“ ისáƒáƒ®áƒáƒ•ს ეტიკური დიზáƒáƒ˜áƒœáƒ˜áƒ¡ áƒáƒ ჩევნების გáƒáƒ™áƒ”თებáƒáƒ¡, დáƒáƒ£áƒžáƒ˜áƒ ისპირდეს სáƒáƒªáƒ˜áƒáƒšáƒ£áƒ ი მედიის áƒáƒ áƒáƒ¡áƒ¬áƒáƒ მáƒáƒ®áƒ›áƒáƒ ებáƒáƒ¡. - humane_approach_title: უფრრáƒáƒ“áƒáƒ›áƒ˜áƒáƒœáƒ£áƒ ი მიდგáƒáƒ›áƒ - not_a_product_body: მáƒáƒ¡áƒ¢áƒáƒ“áƒáƒœáƒ˜ áƒáƒ áƒáƒ ის კáƒáƒ›áƒ”რციული ქსელი. áƒáƒ áƒáƒ რეკლáƒáƒ›áƒ, áƒáƒ áƒáƒ მáƒáƒ˜áƒœáƒ˜áƒœáƒ’ი, áƒáƒ áƒáƒ შემáƒáƒ¦áƒáƒ‘ილი ბáƒáƒ¦áƒ”ბი. áƒáƒ áƒáƒ ცენტრáƒáƒšáƒ£áƒ ი áƒáƒ•ტáƒáƒ იტეტი. - not_a_product_title: შენ ხáƒáƒ პერსáƒáƒœáƒ დრáƒáƒ რპრáƒáƒ“უქტი - real_conversation_body: 500 ნიშნის გáƒáƒœáƒ™áƒáƒ გულებით, მáƒáƒ ცვლáƒáƒ•áƒáƒœáƒ˜ კáƒáƒœáƒ¢áƒ”ნტის დრმედირგáƒáƒ¤áƒ თხილებების მხáƒáƒ დáƒáƒáƒ”რით, შეგიძლიáƒáƒ— გáƒáƒ›áƒáƒ®áƒáƒ¢áƒáƒ— ისე რáƒáƒ’áƒáƒ ც გსურთ. - real_conversation_title: შექმნილირნáƒáƒ›áƒ“ვილი სáƒáƒ£áƒ‘რისთვის - within_reach_body: დეველáƒáƒžáƒ”რისთვის-მეგáƒáƒ‘რული áƒáƒžáƒ˜ ექáƒáƒ¡áƒ˜áƒ¡áƒ¢áƒ”მის წყáƒáƒšáƒáƒ‘ით, მრáƒáƒ•áƒáƒšáƒ˜ áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒ áƒáƒ˜-áƒáƒ¡áƒ˜áƒ¡áƒ—ვის, áƒáƒœáƒ“რáƒáƒ˜áƒ“ისთვის დრსხვრპლáƒáƒ¢áƒ¤áƒáƒ მებისთვის, სáƒáƒ¨áƒáƒšáƒ”ბáƒáƒ¡ მáƒáƒ’ცემთ ნებისმიერი áƒáƒ“გილიდáƒáƒœ იქáƒáƒœáƒ˜áƒáƒ— კáƒáƒ•შირი თქვენს მეგáƒáƒ‘რებთáƒáƒœ. - within_reach_title: მუდáƒáƒ› წვდáƒáƒ›áƒ˜áƒ¡ ქვეშ generic_description: "%{domain} ერთი სერვერირქსელში" hosted_on: მáƒáƒ¡áƒ¢áƒáƒ“áƒáƒœáƒ¡ მáƒáƒ¡áƒžáƒ˜áƒœáƒ«áƒšáƒáƒ‘ს %{domain} learn_more: გáƒáƒ˜áƒ’ე მეტი - other_instances: ინსტáƒáƒœáƒªáƒ˜áƒ”ბის სირprivacy_policy: კáƒáƒœáƒ¤áƒ˜áƒ“ენციáƒáƒšáƒ£áƒ áƒáƒ‘ის პáƒáƒšáƒ˜áƒ¢áƒ˜áƒ™áƒ source_code: კáƒáƒ“ი status_count_after: სტáƒáƒ¢áƒ£áƒ¡áƒ”ბი @@ -427,13 +416,11 @@ ka: logout: გáƒáƒ¡áƒ•ლრmigrate_account: სხვრáƒáƒœáƒ’áƒáƒ იშზე გáƒáƒ“áƒáƒ¡áƒ•ლრmigrate_account_html: თუ გსურთ áƒáƒ› áƒáƒœáƒ’áƒáƒ იშის რედირექტის ხვáƒáƒ–ე, შეგიძლიáƒáƒ— <a href="%{path}">გáƒáƒ£áƒ¬áƒ˜áƒáƒ— კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ áƒáƒ¥</a>. - or: áƒáƒœ or_log_in_with: áƒáƒœ გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნეთ providers: cas: ქეს saml: სáƒáƒ›áƒš register: რეგისტრáƒáƒªáƒ˜áƒ - register_elsewhere: რეგისტრáƒáƒªáƒ˜áƒ სხვრსერვერზე resend_confirmation: დáƒáƒ›áƒáƒ¬áƒ›áƒ”ბის ინსტრუქციების ხელáƒáƒ®áƒáƒšáƒ˜ გáƒáƒ›áƒáƒ’ზáƒáƒ•ნრreset_password: პáƒáƒ áƒáƒšáƒ˜áƒ¡ გáƒáƒ“áƒáƒ¢áƒ•ირთვრsecurity: უსáƒáƒ¤áƒ თხáƒáƒ”ბრdiff --git a/config/locales/kk.yml b/config/locales/kk.yml index 1c40adeb7501534c9144e116066d47ec1862b225..f6284d1915d54286f2f581d9a48d231a321ff2c5 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -7,7 +7,6 @@ kk: administered_by: 'Ðдмин:' api: API apps: Мобиль қоÑымшалар - closed_registrations: Бұл Ñерверде тіркелу уақытша тоқтатылған. Дегенмен, Ñіз баÑқа Ñервер арқылы тіркеліп, Ñол аккаунтыңызбен қолдана берÑеңіз болады. contact: Ð‘Ð°Ð¹Ð»Ð°Ð½Ñ‹Ñ contact_missing: Бапталмаған contact_unavailable: БелгіÑіз @@ -15,19 +14,9 @@ kk: extended_description_html: | <h3>Ережелерге арналған жақÑÑ‹ орын</h3> <p>Әлі ештеңе жазылмапты</p> - features: - humane_approach_body: БаÑқа желілердің ÑәтÑіздіктерінен Ñабақ алып, Mastodon әлеуметтік медианы Ð´Ò±Ñ€Ñ‹Ñ Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ð±Ð°ÑƒÐ¼ÐµÐ½ күреÑу үшін Ñтикалық дизайнды таңдауға бағытталған. - humane_approach_title: ГуманиÑтік ÐºÓ©Ð·Ò›Ð°Ñ€Ð°Ñ Ð±Ð°Ñым - not_a_product_body: Mastodon коммерциÑлық желі емеÑ. Жарнама жоқ, деректерді өңдеу, қоршаулы бақтар да жоқ. Орталықтан баÑқару да жоқ. - not_a_product_title: Сіз тұлғаÑыз, тауар ÐµÐ¼ÐµÑ - real_conversation_body: 500 таңба арқылы мазмұнды пікір және қызық медиа қолданып, өз ойыңызды жеткізе алаÑыз. - real_conversation_title: Ðақты әңгімелерге арналған - within_reach_body: Ыңғайлы API ÑкожүйеÑÑ– арқаÑында iOS, Android және баÑқа платформаларға арналған бірнеше қоÑымшалар арқылы доÑтарыңызбен кез-келген жерде әңгіме құруға мүмкіндік береді. - within_reach_title: Әрқашан қол жетімді generic_description: "%{domain} желідегі Ñерверлердің бірі" hosted_on: Mastodon орнатылған %{domain} доменінде learn_more: Көбірек білу - other_instances: Серверлер тізімі privacy_policy: ҚұпиÑлылық ÑаÑÑаты source_code: Ðшық коды status_count_after: @@ -508,13 +497,11 @@ kk: logout: Шығу migrate_account: БаÑқа аккаунтқа көшіру migrate_account_html: Егер аккаунтыңызды баÑқаÑына байлағыңыз келÑе, <a href="%{path}">мына жерге келіңіз</a>. - or: немеÑе or_log_in_with: ÐемеÑе былай кіріңіз providers: cas: СÐS saml: SÐML register: Тіркелу - register_elsewhere: БаÑқа Ñерверге тіркелу resend_confirmation: РаÑтау нұÑқаулықтарын жіберу reset_password: ҚұпиÑÑөзді қалпына келтіру security: ҚауіпÑіздік diff --git a/config/locales/ko.yml b/config/locales/ko.yml index fe347a7037dd7d8f84810ac4823e2fbe731a17ac..6574d14ca6a40c00462574c022d51287a85e6a9f 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -7,7 +7,6 @@ ko: administered_by: '관리ìž:' api: API apps: ëª¨ë°”ì¼ ì•± - closed_registrations: 현재 ì´ ì„œë²„ì—서는 ì‹ ê·œ 등ë¡ì„ ë°›ê³ ìžˆì§€ 않습니다. 하지만! 다른 ì„œë²„ì— ê³„ì •ì„ ë§Œë“¤ì–´ ë˜‘ê°™ì€ ë„¤íŠ¸ì›Œí¬ì— ì ‘ì† í• ìˆ˜ 있습니다. contact: ì—°ë½ì²˜ contact_missing: ë¯¸ì„¤ì • contact_unavailable: N/A @@ -15,19 +14,9 @@ ko: extended_description_html: | <h3>ë£°ì„ ìž‘ì„±í•˜ëŠ” 장소</h3> <p>ì•„ì§ ì„¤ëª…ì´ ìž‘ì„±ë˜ì§€ 않았습니다.</p> - features: - humane_approach_body: 다른 SNSì˜ ì‹¤íŒ¨ë¥¼ êµí›ˆì‚¼ì•„, ë§ˆìŠ¤í† ëˆì€ 소셜미디어가 잘못 사용ë˜ëŠ” ê²ƒì„ ë§‰ê¸° 위하여 윤리ì ì¸ ì„¤ê³„ë¥¼ 추구합니다. - humane_approach_title: 보다 ë°°ë ¤ë¥¼ ì˜ì‹í•œ 설계를 추구 - not_a_product_body: ë§ˆìŠ¤í† ëˆì€ ì´ìµì„ 추구하는 SNSê°€ 아닙니다. 그러므로 ê´‘ê³ ì™€ ë°ì´í„°ì˜ 수집 ë° ë¶„ì„ì´ ì¡´ìž¬í•˜ì§€ ì•Šê³ , ìœ ì €ë¥¼ 구ì†í•˜ì§€ë„ 않습니다. - not_a_product_title: ì—¬ëŸ¬ë¶„ì€ ì‚¬ëžŒì´ë©°, ìƒí’ˆì´ 아닙니다 - real_conversation_body: ìžìœ ë¡ê²Œ ì‚¬ìš©í• ìˆ˜ 있는 500문ìžì˜ 메세지와 미디어 ê²½ê³ ë‚´ìš©ì„ ë°”íƒ•ìœ¼ë¡œ, ìžê¸°ìžì‹ ì„ ìžìœ ë¡ê²Œ í‘œí˜„í• ìˆ˜ 있습니다. - real_conversation_title: ì§„ì •í•œ 커뮤니케ì´ì…˜ì„ 위하여 - within_reach_body: ê°œë°œìž ì¹œí™”ì ì¸ APIì— ì˜í•´ì„œ ì‹¤í˜„ëœ iOS나 Android, ê·¸ ì™¸ì˜ ì—¬ëŸ¬ Platform들 ë•ë¶„ì— ì–´ë””ì„œë“ ì¹œêµ¬ë“¤ê³¼ ìžìœ ë¡ê²Œ 메세지를 ì£¼ê³ ë°›ì„ ìˆ˜ 있습니다. - within_reach_title: ì–¸ì œë‚˜ ìœ ì €ì˜ ê³ì—서 generic_description: "%{domain} ì€ ë„¤íŠ¸ì›Œí¬ì— 있는 한 서버입니다" hosted_on: "%{domain}ì—서 호스팅 ë˜ëŠ” ë§ˆìŠ¤í† ëˆ" learn_more: ìžì„¸ížˆ - other_instances: 서버 ëª©ë¡ privacy_policy: ê°œì¸ì •ë³´ ì •ì±… source_code: 소스 코드 status_count_after: @@ -510,13 +499,11 @@ ko: logout: 로그아웃 migrate_account: ê³„ì • 옮기기 migrate_account_html: ì´ ê³„ì •ì„ ë‹¤ë¥¸ ê³„ì •ìœ¼ë¡œ ë¦¬ë””ë ‰ì…˜ 하길 ì›í•˜ëŠ” 경우 <a href="%{path}">여기</a>ì—서 ì„¤ì •í• ìˆ˜ 있습니다. - or: ë˜ëŠ” or_log_in_with: 다른 방법으로 ë¡œê·¸ì¸ í•˜ë ¤ë©´ providers: cas: CAS saml: SAML register: 등ë¡í•˜ê¸° - register_elsewhere: 다른 ì¸ìŠ¤í„´ìŠ¤ì—서 가입 resend_confirmation: í™•ì¸ ë©”ì¼ì„ 다시 보내기 reset_password: 비밀번호 ìž¬ì„¤ì • security: 보안 diff --git a/config/locales/lt.yml b/config/locales/lt.yml index fa3469b116a961b821fe2360263534120ff4c195..1b09c17ece90e7b7f65615aee99f65e485481f12 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -7,7 +7,6 @@ lt: administered_by: 'Administruoja:' api: API apps: Mobilioji Aplikacija - closed_registrations: Registracija Å¡iuo metu uždaryta prie Å¡ito tinklo. JÅ«s galite rasti kitÄ… bÅ«dÄ… susikurti paskyrÄ… ir gauti prieigÄ… prie to paties tinklo. contact: Kontaktai contact_missing: Nenustatyta contact_unavailable: N/A @@ -15,19 +14,9 @@ lt: extended_description_html: | <h3>TaisyklÄ—s</h3> <p>Ilgas apraÅ¡ymas dar nÄ—ra sudartyas</p> - features: - humane_approach_body: Mokantis iÅ¡ kitų socialinių tinklų, bei jų daromu klaidų, Mastodon siekia sukurti etiÅ¡ka dizainÄ…, kuris kovotu su netinkamu socialinių tinklų naudojimu. - humane_approach_title: HumaniÅ¡kesnis metodas - not_a_product_body: Mastodon nÄ—ra komercinis tinklas. Jokių reklamų, privaÄios informacijos rinkimo. ÄŒia nÄ—ra vieno žmogaus, kuris už viskÄ… atsako. - not_a_product_title: Tu esi žmogus, o ne produktas - real_conversation_body: Su 500 simbolių limitu, ir galimybe pažymÄ—ti savo įkeliama informacija su įspÄ—jamaisiais ženklais, galite iÅ¡sireikÅ¡ti kaip tik norite. - real_conversation_title: Sukurtas tikram bendravimui - within_reach_body: Mobiliosios aplikacijos skirtos iOS, Android, ir kitoms platformoms. DraugiÅ¡kos API ekosistemos dÄ—ka, JÅ«s galite palaikyti pokalbi su draugais bet kur. - within_reach_title: Visada pasiekama generic_description: "%{domain} yra vienas serveris tinkle" hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu learn_more: Daugiau - other_instances: Serverių sÄ…raÅ¡as privacy_policy: Privatumo Politika source_code: Å altinio kodas status_count_after: @@ -516,13 +505,11 @@ lt: logout: Atsijungti migrate_account: Prisijungti prie kitos paskyros migrate_account_html: Jeigu norite nukreipti Å¡iÄ… paskyrÄ… į kita, galite tai <a href="%{path}">konfiguruoti Äia</a>. - or: arba or_log_in_with: Arba prisijungti su providers: cas: CAS saml: SAML register: Užsiregistruoti - register_elsewhere: Užsiregistruoti kitame serveryje resend_confirmation: IÅ¡siųsti dar kartÄ… patvirtinimo instrukcijas reset_password: Atstatyti slaptažodį security: Apsauga diff --git a/config/locales/ms.yml b/config/locales/ms.yml index e3c901eff84856a8af490c4a9d7974da12a5853e..0b1269fb2e894242bac1e968b635e3069e0af90c 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -7,7 +7,6 @@ ms: administered_by: 'Ditadbir oleh:' api: API apps: Aplikasi mudah alih - closed_registrations: Pendaftaran ditutup di tika ini. Tetapi! Anda boleh mencari tika lain untuk mencipta akaun dan capai ke rangkaian yang sama daripada sana. contact: Hubungi kami contact_missing: Tidak ditetapkan contact_unavailable: Tidak tersedia @@ -15,19 +14,9 @@ ms: extended_description_html: | <h3>Tempat sesuai untuk peraturan</h3> <p>Kenyataan penuh masih belum ditetapkan.</p> - features: - humane_approach_body: Belajar daripada kegagalan rangkaian lain, Mastodon berazam untuk membuat pilihan reka cipta beretika untuk mengatasi penyalahgunaan media sosial. - humane_approach_title: Pendekatan yang lebih berperikemanusiaan - not_a_product_body: Mastodon bukannya rangkaian komersial. Tiada iklan, tiada perlombongan data, tiada kurungan atau tapisan. Tiada pihak berkuasa pusat. - not_a_product_title: Anda seorang manusia, bukannya sebuah produk - real_conversation_body: Dengan had 500 aksara dan sokongan kandungan berbutir serta pemberi amaran media, anda boleh meluahkan diri anda dengan cara yang anda inginkan. - real_conversation_title: Dibina untuk perbualan sebenar - within_reach_body: Pelbagai aplikasi untuk iOS, Android, dan platform lain telah dibangunkan dengan ekosistem API mesra-pembangun membolehkan anda terus berhubung dengan rakan anda di mana-mana sahaja. - within_reach_title: Sentiasa dalam jangkauan generic_description: "%{domain} ialah salah sebuah pelayan dalam rangkaian Mastodon" hosted_on: Mastodon dihoskan di %{domain} learn_more: Ketahui lebih lanjut - other_instances: Senarai tika privacy_policy: Polisi privasi source_code: Kod sumber status_count_after: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 70094f764ffe12be46db83c60f3b342bbd0be0f9..5a86a2027f4c678c59950414237e1c89fe8cc332 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -7,7 +7,6 @@ nl: administered_by: 'Beheerd door:' api: API apps: Mobiele apps - closed_registrations: Registreren op deze server is momenteel niet mogelijk. Je kunt echter een andere server vinden om zo toegang te krijgen tot het netwerk. contact: Contact contact_missing: Niet ingesteld contact_unavailable: n.v.t @@ -15,19 +14,9 @@ nl: extended_description_html: | <h3>Een goede plek voor richtlijnen</h3> <p>De uitgebreide omschrijving is nog niet ingevuld.</p> - features: - humane_approach_body: Mastodon heeft van de fouten van andere sociale netwerken geleerd en probeert aan de hand van ethische ontwerpkeuzes misbruik van sociale media te voorkomen. - humane_approach_title: Een meer menselijke aanpak - not_a_product_body: Mastodon is geen commercieel netwerk. Dus geen advertenties, geen datamining en geen besloten systemen. Er is geen centrale organisatie die alles bepaalt. - not_a_product_title: Jij bent een persoon, geen product - real_conversation_body: Met 500 tekens tot jouw beschikking en ondersteuning voor tekst- en media-waarschuwingen, kan je jezelf uiten zoals jij dat wil. - real_conversation_title: Voor echte gesprekken gemaakt - within_reach_body: Meerdere apps voor iOS, Android en andere platformen, met dank aan het ontwikkelaarsvriendelijke API-systeem, zorgen ervoor dat je overal op de hoogte blijft. - within_reach_title: Altijd binnen bereik generic_description: "%{domain} is een server in het Mastodonnetwerk" hosted_on: Mastodon op %{domain} learn_more: Meer leren - other_instances: Andere servers privacy_policy: Privacybeleid source_code: Broncode status_count_after: @@ -508,13 +497,11 @@ nl: logout: Uitloggen migrate_account: Naar een ander account verhuizen migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je <a href="%{path}">dit hier instellen</a>. - or: of or_log_in_with: Of inloggen met providers: cas: CAS saml: SAML register: Registreren - register_elsewhere: Op een andere server registreren resend_confirmation: Verstuur de bevestigingsinstructies nogmaals reset_password: Wachtwoord opnieuw instellen security: Beveiliging diff --git a/config/locales/no.yml b/config/locales/no.yml index cf8f77b4ccd54439663279cb3f256cf187a726ac..f6b036b9dfd9cb5d2f755ef8abcb9fb93fe32b18 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -4,26 +4,15 @@ about_hashtag_html: Dette er offentlige toots merket med <strong>#%{hashtag}</strong>. Du kan interagere med dem om du har en konto et sted i fediverset. about_mastodon_html: Mastodon er et sosialt nettverk laget med <em>fri programvare</em>. Et <em>desentralisert</em> alternativ til kommersielle plattformer. Slik kan det unngÃ¥ risikoene ved Ã¥ ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler pÃ¥ — uansett hvilken du velger sÃ¥ kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket. about_this: Om denne instansen - closed_registrations: Registreringer er for øyeblikket lukket pÃ¥ denne instansen. contact: Kontakt contact_missing: Ikke innstilt contact_unavailable: Ikke tilgjengelig extended_description_html: | <h3>En god plassering for regler</h3> <p>En utvidet beskrivelse er ikke satt opp ennÃ¥.</p> - features: - humane_approach_body: Mastodon har tatt lærdom fra andre nettverk og har til mÃ¥l Ã¥ gjøre etiske designvalg for Ã¥ bekjempe misbruk av sosiale medier. - humane_approach_title: En mer menneskelig tilnærming - not_a_product_body: Mastodon er ikke et kommerst nettverk. Ingen reklame, ingen datainnsamling, ingen innhegnede hager. Det finnes ingen sentral myndighet. - not_a_product_title: Du er en person, ikke et produkt - real_conversation_body: Med 500 tegn til din disposisjon og støtte for granulært innhold og media-advarsler kan du uttrykke deg pÃ¥ den mÃ¥ten du selv vil. - real_conversation_title: Laget for ekte samtaler - within_reach_body: Takket være et utviklingsvennlig API-økosystem vil flere apper for iOS, Android og andre plattformer la deg holde kontakten med dine venner hvor som helst. - within_reach_title: Alltid innen rekkevidde generic_description: "%{domain} er en tjener i nettverket" hosted_on: Mastodon driftet pÃ¥ %{domain} learn_more: Lær mer - other_instances: Andre instanser source_code: Kildekode status_count_after: statuser status_count_before: Som skrev diff --git a/config/locales/oc.yml b/config/locales/oc.yml index fc6194527f9a38e5fe6a7dc17c6bd17b61fee12c..8c690f1446b3c19015a989f5804dfd693e4dcf05 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -7,7 +7,6 @@ oc: administered_by: 'Gerida per :' api: API apps: Aplicacions per mobil - closed_registrations: Las inscripcions son clavadas pel moment sus aquesta instà ncia. contact: Contacte contact_missing: Pas parametrat contact_unavailable: Pas disponible @@ -15,19 +14,9 @@ oc: extended_description_html: | <h3>Una bona plaça per las règlas</h3> <p>La descripcion longa es pas estada causida pel moment.</p> - features: - humane_approach_body: Amb l’experiéncia dels fracasses d’autres malhums, Mastodon ten per objectiu de lutar contra los abuses dels malhums socials en far de causidas eticas. - humane_approach_title: Un biais mai uman - not_a_product_body: Mastodon es pas un malhum comercial. Pas cap de reclama, d’utilizacion de vòstras donadas o d’òrt daurat clavat. I a pas cap d’autoritat centrala. - not_a_product_title: Sètz una persona, non pas un produit - real_conversation_body: Amb 500 caractèrs a vòstra disposicion e un nivèl de confidencialitat per cada publicacion, podètz vos exprimir coma volètz. - real_conversation_title: Fach per de conversacions vertadièras - within_reach_body: Multiplas aplicacion per iOS, Android, e autras plataformas mercés a un entorn API de bon utilizar, vos permet de gardar lo contacte pertot. - within_reach_title: Totjorn al costat generic_description: "%{domain} es un dels servidors del malhum" hosted_on: Mastodon albergat sus %{domain} learn_more: Ne saber mai - other_instances: Lista d’instà ncias privacy_policy: Politica de confidencialitat source_code: Còdi font status_count_after: @@ -508,13 +497,11 @@ oc: logout: Se desconnectar migrate_account: Mudar endacòm mai migrate_account_html: Se volètz mandar los visitors d’aqueste compte a un autre, podètz<a href="%{path}"> o configurar aquÃ</a>. - or: o or_log_in_with: O autentificatz-vos amb providers: cas: CAS saml: SAML register: Se marcar - register_elsewhere: Se marcar endacòm mai resend_confirmation: Tornar mandar las instruccions de confirmacion reset_password: Reïnicializar lo senhal security: Seguretat diff --git a/config/locales/pl.yml b/config/locales/pl.yml index e110db50de642b074e7fa48ea81b2855182ee0cb..ea4da424d41b0eb2fe7446ee17ae07b5a6a4ce2d 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -7,7 +7,6 @@ pl: administered_by: 'Administrowana przez:' api: API apps: Aplikacje - closed_registrations: Rejestracja na tej instancji jest obecnie zamkniÄ™ta. Możesz jednak zarejestrować siÄ™ na innej instancji, uzyskujÄ…c dostÄ™p do tej samej sieci. contact: Kontakt contact_missing: Nie ustawiono contact_unavailable: Nie dotyczy @@ -15,19 +14,9 @@ pl: extended_description_html: | <h3>Dobre miejsce na zasady użytkowania</h3> <p>Nie ustawiono jeszcze szczegółowego opisu</p> - features: - humane_approach_body: Nauczeni na błędach innych sieci spoÅ‚ecznoÅ›ciowych, zaprojektowaliÅ›my Mastodona tak, aby uniknąć czÄ™stych nadużyć. - humane_approach_title: Bardziej ludzkie podejÅ›cie - not_a_product_body: Mastodon nie jest komercyjnÄ… sieciÄ…. Nie doÅ›wiadczysz tu reklam, zbierania danych, ani centralnego oÅ›rodka, tak jak w przypadku wielu rozwiÄ…zaÅ„. - not_a_product_title: JesteÅ› czÅ‚owiekiem, nie produktem - real_conversation_body: MajÄ…c do dyspozycji 500 znaków na wpis, rozdrobnienie zawartoÅ›ci i ostrzeżenia o multimediach, możesz wyrażać siebie na wszystkie możliwe sposoby. - real_conversation_title: Zaprojektowany do prawdziwych rozmów - within_reach_body: Wiele aplikacji dla Androida, iOS i innych platform dziÄ™ki przyjaznemu programistom API sprawia, że możesz utrzymywać kontakt ze znajomymi praktycznie wszÄ™dzie. - within_reach_title: Zawsze w Twoim zasiÄ™gu generic_description: "%{domain} jest jednym z serwerów sieci" hosted_on: Mastodon uruchomiony na %{domain} learn_more: Dowiedz siÄ™ wiÄ™cej - other_instances: Lista instancji privacy_policy: Polityka prywatnoÅ›ci source_code: Kod źródÅ‚owy status_count_after: @@ -519,13 +508,11 @@ pl: logout: Wyloguj siÄ™ migrate_account: PrzenieÅ› konto migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz <a href="%{path}">zrobić to tutaj</a>. - or: lub or_log_in_with: Lub zaloguj siÄ™ z użyciem providers: cas: CAS saml: SAML register: Rejestracja - register_elsewhere: Zarejestruj siÄ™ na innym serwerze resend_confirmation: Ponownie przeÅ›lij instrukcje weryfikacji reset_password: Zresetuj hasÅ‚o security: BezpieczeÅ„stwo diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index d44d1a045ecbc3bfdd02c05daf025da61f3f97f2..f5f59a4d9ec88a0972636aa64665dc5a0edb5719 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -7,7 +7,6 @@ pt-BR: administered_by: 'Administrado por:' api: API apps: Apps - closed_registrations: Os cadastros estão atualmente fechados nesta instância. No entanto, você pode procurar uma instância diferente na qual possa criar uma conta e acessar a mesma rede por lá. contact: Contato contact_missing: Não definido contact_unavailable: Não disponÃvel @@ -15,19 +14,9 @@ pt-BR: extended_description_html: | <h3>Um bom lugar para regras</h3> <p>A descrição da instância ainda não foi feita.</p> - features: - humane_approach_body: Aprendendo com erros de outras redes, Mastodon tem como objetivo fazer decisões éticas de design para combater o desuso de redes sociais. - humane_approach_title: Uma abordagem mais humana - not_a_product_body: Mastodon não é uma rede comercial. Sem propagandas, coleta de dados, jardins fechados. Não há uma autoridade central. - not_a_product_title: Você é uma pessoa e não um produto - real_conversation_body: Com 500 caracteres à sua disposição e suporte para conteúdo granular e avisos de conteúdo, você pode se expressar da maneira que desejar. - real_conversation_title: Feito para conversas reais - within_reach_body: Vários apps para iOS, Android e outras plataformas graças a um ecossistema de API amigável para desenvolvedores permitem que você possa se manter atualizado sobre seus amigos de qualquer lugar. - within_reach_title: Sempre ao seu alcance generic_description: "%{domain} é um servidor na rede" hosted_on: Mastodon hospedado em %{domain} learn_more: Saiba mais - other_instances: Lista de instâncias privacy_policy: PolÃtica de Privacidade source_code: Código-fonte status_count_after: @@ -507,13 +496,11 @@ pt-BR: logout: Sair migrate_account: Mudar para uma conta diferente migrate_account_html: Se você quer redirecionar essa conta para uma outra você pode <a href="%{path}">configurar isso aqui</a>. - or: ou or_log_in_with: Ou faça login com providers: cas: CAS saml: SAML register: Cadastrar-se - register_elsewhere: Cadastrar-se em um outro servidor resend_confirmation: Reenviar instruções de confirmação reset_password: Redefinir senha security: Segurança diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 037582f3432705f591335c278a55df668ee00324..0078fd5dc269427d7ca5d12d8f182b144c69567b 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -4,26 +4,15 @@ pt: about_hashtag_html: Estes são toots públicos marcados com <strong>#%{hashtag}</strong>. Podes interagir com eles se tiveres uma conta Mastodon. about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail. about_this: Sobre esta instância - closed_registrations: Novos registos estão fechados nesta instância. No entanto! Podes procurar uma instância diferente na qual criar uma conta e obter acesso à mesma rede desde lá. contact: Contacto contact_missing: Não configurado contact_unavailable: n.d. extended_description_html: | <h3>Um bom lugar para regras</h3> <p>A descrição estendida ainda não foi configurada.</p> - features: - humane_approach_body: Aprendendo com erros de outras redes sociais, Mastodon tem como objetivo fazer decisões éticas de design para combater o utilização errada de redes sociais. - humane_approach_title: Uma abordagem mais humana - not_a_product_body: Mastodon não é uma rede comercial. Sem publicidade, sem recolha de dados ou portas fechadas. Não existe uma autoridade central. - not_a_product_title: Tu és uma pessoa, não um produto - real_conversation_body: Com 500 caracteres à sua disposição e suporte para conteúdo granular e avisos de conteúdo, podes te expressar da forma que desejares. - real_conversation_title: Feito para conversas reais - within_reach_body: Várias aplicações para iOS, Android e outras plataformas graças a um ecossistema de API amigável para desenvolvedores, permitem-te que te mantenhas em contacto com os teus amigos em qualquer lugar. - within_reach_title: Sempre ao teu alcance generic_description: "%{domain} é um servidor na rede" hosted_on: Mastodon em %{domain} learn_more: Saber mais - other_instances: Outras instâncias source_code: Código fonte status_count_after: publicações status_count_before: Que fizeram diff --git a/config/locales/ro.yml b/config/locales/ro.yml index aa4d3c967c485039b4248d30a6bad8ddd2e662d5..82872e651d2dc21c7ba4655717712630d34ddaab 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -1,8 +1,6 @@ --- ro: about: - features: - not_a_product_title: EÈ™ti o persoană, nu un produs hosted_on: Mastodon găzduit de %{domain} accounts: posts: @@ -22,13 +20,11 @@ ro: logout: Deconectare migrate_account: Transfer către un alt cont migrate_account_html: Dacă doreÈ™ti să redirecÈ›ionezi acest cont către un altul, poÈ›i <a href="%{path}">configura asta aici</a>. - or: sau or_log_in_with: Sau conectează-te cu providers: cas: CAS saml: SAML register: ÃŽnregistrare - register_elsewhere: ÃŽnregistrează-te pe un alt server resend_confirmation: Retrimite instrucÈ›iunile de confirmare reset_password: Resetare parolă security: Securitate diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 3e37391a89101adaf5ef38e8d347afe377a3a4c7..8dd6e3688fb5733fc2df239bab55f88abed01144 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -7,26 +7,15 @@ ru: administered_by: 'ÐдминиÑтратор узла:' api: API apps: ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - closed_registrations: Ð’ данный момент региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ñтом узле закрыта. Ðо вы можете найти другой узел, Ñоздать на нём учётную запиÑÑŒ и получить доÑтуп к той же Ñети оттуда. contact: СвÑзатьÑÑ contact_missing: Ðе уÑтановлено contact_unavailable: ÐедоÑтупен extended_description_html: | <h3>Хорошее меÑто Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»</h3> <p>РаÑширенное опиÑание еще не наÑтроено.</p> - features: - humane_approach_body: Ðаученный ошибками других проектов, Mastodon направлен на выбор Ñтичных решений в борьбе Ñо злоупотреблениÑми возможноÑÑ‚Ñми Ñоциальных Ñетей. - humane_approach_title: Человечный подход - not_a_product_body: Mastodon - не коммерчеÑÐºÐ°Ñ Ñеть. ЗдеÑÑŒ нет рекламы, Ñбора данных, отгороженных меÑÑ‚. ЗдеÑÑŒ нет централизованного управлениÑ. - not_a_product_title: Ð’Ñ‹ - человек, а не продукт - real_conversation_body: С 500 Ñимволами в Вашем раÑпорÑжении и поддержкой предупреждений о Ñодержании ÑтатуÑов Ð’Ñ‹ Ñможете выражать Ñвои мыÑли так, как Ð’Ñ‹ Ñтого хотите. - real_conversation_title: Создан Ð´Ð»Ñ Ð½Ð°ÑтоÑщего Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ - within_reach_body: Различные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ iOS, Android и других платформ, напиÑанные Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ð´Ñ€ÑƒÐ¶ÐµÑтвенной к разработчикам ÑкоÑиÑтеме API, позволÑÑ‚ Вам держать ÑвÑзь Ñ Ð’Ð°ÑˆÐ¸Ð¼Ð¸ друзьÑми где угодно. - within_reach_title: Ð’Ñегда под рукой generic_description: "%{domain} - один из Ñерверов Ñети" hosted_on: Mastodon размещен на %{domain} learn_more: Узнать больше - other_instances: Другие узлы privacy_policy: Политика конфиденциальноÑти source_code: ИÑходный код status_count_after: @@ -450,13 +439,11 @@ ru: logout: Выйти migrate_account: ПеренеÑти аккаунт migrate_account_html: ЕÑли Ð’Ñ‹ хотите перенеÑти Ñтот аккаунт на другой, вы можете <a href="%{path}">Ñделать Ñто здеÑÑŒ</a>. - or: или or_log_in_with: Или войти Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ providers: cas: CAS saml: SAML register: ЗарегиÑтрироватьÑÑ - register_elsewhere: ЗарегиÑтрироватьÑÑ Ð½Ð° другом узле resend_confirmation: Повторить отправку инÑтрукции Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ reset_password: СброÑить пароль security: БезопаÑноÑть diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 0800b8f8caae350fbc8f6bc2c62d8b930caef341..9d888a51552ebe60323dc6ecaa3448032d82c069 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -7,7 +7,6 @@ sk: administered_by: 'Správcom je:' api: API apps: Aplikácie - closed_registrations: Registrácie na tomto serveri sú momentálne uzatvorené. AvÅ¡ak, môžeÅ¡ nájsÅ¥ nejaký iný server kde si založÃÅ¡ úÄet a zÃskaÅ¡ tak prÃstup do presne tej istej siete odtiaľ. contact: Kontakt contact_missing: Nezadaný contact_unavailable: Neuvedený @@ -15,19 +14,9 @@ sk: extended_description_html: | <h3>Pravidlá</h3> <p>Žiadne zatiaľ uvedené nie sú</p> - features: - humane_approach_body: PouÄený z chýb iných sociálnych sietÃ, Mastodon sa snažà bojovaÅ¥ so zneužÃvanÃm siete voľbou etických návrhov. - humane_approach_title: Ľudskejšà prÃstup - not_a_product_body: Mastodon nie je komerÄná sieÅ¥. Žiadne reklamy, žiadne dolovanie dát, žiadne múry. Nieje tu žiadna centrálna autorita. - not_a_product_title: Si Älovekom, nie produktom - real_conversation_body: K dispozÃcii s 500 znakmi a podporou pre varovania o obsahu a médiách sa môžeÅ¡ vyjadriÅ¥ tak ako budeÅ¡ chcieÅ¥. - real_conversation_title: Vytvorený pre naozajstnú konverzáciu - within_reach_body: Viacero aplikácià pre iOS, Android a iné platformy, ktoré ti vÄaka jednoduchému API ekosystému dovoľujú byÅ¥ online so svojimi priateľmi kdekoľvek. - within_reach_title: Stále v dosahu generic_description: "%{domain} je jeden server v sieti" hosted_on: Mastodon hostovaný na %{domain} learn_more: Zisti viac - other_instances: Zoznam serverov privacy_policy: Ustanovenia o súkromà source_code: Zdrojový kód status_count_after: @@ -514,13 +503,11 @@ sk: logout: Odhlás sa migrate_account: Presúvam sa na iný úÄet migrate_account_html: Pokiaľ si želáš presmerovaÅ¥ tento úÄet na nejaký iný, môžeÅ¡ si to <a href="%{path}">nastaviÅ¥ tu</a>. - or: alebo or_log_in_with: Alebo prihlásiÅ¥ z providers: cas: CAS saml: SAML register: Zaregistruj sa - register_elsewhere: Zaregistruj sa na inom serveri resend_confirmation: PoslaÅ¥ potvrdzujúce pokyny znovu reset_password: ResetovaÅ¥ heslo security: ZabezpeÄenie diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 35cba927be4cf5126849b7bf841bc291b07c3aa0..5a4ffb6cd844ef79199e3d755e2457a2e21d551b 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -7,7 +7,6 @@ sl: administered_by: 'Upravlja:' api: API apps: Mobilne aplikacije - closed_registrations: Registracije so trenutno zaprte na tem vozliÅ¡Äu. Vendar! Tukaj lahko najdete druga vozliÅ¡Äa, na katerih se prijavite in dostopate do istega omrežja od tam. contact: Kontakt contact_missing: Ni nastavljeno contact_unavailable: Ni na voljo @@ -15,19 +14,9 @@ sl: extended_description_html: | <h3>Dober prostor za pravila</h3> <p>RazÅ¡irjen opis Å¡e ni bil nastavljen.</p> - features: - humane_approach_body: Na podlagi uÄenja od neuspehov drugih omrežij, želi Mastodon oblikovati etiÄne naÄrte za boj proti zlorabi socialnih medijev. - humane_approach_title: Bolj human pristop - not_a_product_body: Mastodon ni komercialno omrežje. Brez oglaÅ¡evanja, brez podatkovnega rudarjenja, brez obzidanih vrtov. Ni osrednjega organa. - not_a_product_title: Ti si oseba, ne izdelek - real_conversation_body: S 500 znaki, ki so vam na voljo, in podporo za zrnate vsebine ter opozorila pred mediji, se lahko izrazite tako, kot želite. - real_conversation_title: Zgrajen za pravi pogovor - within_reach_body: ZahvaljujoÄ razvijalcem prijaznemu API ekosistemu, obstaja veÄ aplikacija za iOS, Arduino in druge platforme, ki vam omogoÄajo, da sledite svojim prijateljem kjerkoli. - within_reach_title: Vedno na dosegu roke generic_description: "%{domain} je en strežnik v omrežju" hosted_on: Mastodon gostuje na %{domain} learn_more: Spoznaj veÄ - other_instances: Seznam vozliÅ¡Ä privacy_policy: Politika zasebnosti source_code: Izvorna koda status_count_after: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index b542ffc9738e1b1253942a9135a5e04494854e8c..e7f17579519840ac47bdb8724d42f9e436767b40 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -7,7 +7,6 @@ sq: administered_by: 'Administruar nga:' api: API apps: Aplikacione për celular - closed_registrations: Hëpërhë regjistrimet në këtë shërbyes janë të mbyllura. Por! Mund të gjeni një shërbyes tjetër për të krijuar një llogari dhe të mund të përdorni andej pikërisht të njëjtin rrjet të këtushëm. contact: Kontakt contact_missing: I parregulluar contact_unavailable: N/A @@ -15,19 +14,9 @@ sq: extended_description_html: | <h3>Një vend i mirë për rregulla</h3> <p>Përshkrimi i zgjeruar s’është sajuar ende.</p> - features: - humane_approach_body: Duke nxjerrë mësime nga dështimet e rrjeteve të tjera, Mastodon-i synon të bëjë zgjedhje konceptuale etike, për të luftuar keqpërdorimin e mediave shoqërore. - humane_approach_title: Një trajtim më njerëzor - not_a_product_body: Mastodon-i s’është rrjet komercial. Pa reklama, pa monetarizim të dhënash, pa gardhe. S’ka autoritet qendror. - not_a_product_title: Jeni një person, jo një produkt - real_conversation_body: Me 500 shenja në dorën tuaj për t’i përdorur dhe mbulim për sinjalizime të imta lidhur me lëndën dhe median, mund të shpreheni ashtu si dëshironi. - real_conversation_title: Ndërtuar për bashkëbisedim të njëmendtë - within_reach_body: Aplikacione të shumtë, për iOS, Android, dhe të tjera platforma, falë një ekosistemi API miqësor ndaj zhvilluesve, ju lejojnë të mbani lidhje me miqtë tuaj kudo. - within_reach_title: Përherë i kapshëm generic_description: "%{domain} është një shërbyes te rrjeti" hosted_on: Mastodon i strehuar në %{domain} learn_more: Mësoni më tepër - other_instances: Listë shërbyesish privacy_policy: Rregulla privatësie source_code: Kod burim status_count_after: @@ -505,13 +494,11 @@ sq: logout: Dalje migrate_account: Kaloni në një tjetër llogari migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund <a href="%{path}">ta formësoni këtu</a>. - or: ose or_log_in_with: Ose bëni hyrjen me providers: cas: CAS saml: SAML register: Regjistrohuni - register_elsewhere: Regjistrohuni në një tjetër shërbyes resend_confirmation: Ridërgo udhëzime ripohimi reset_password: Ricaktoni fjalëkalimin security: Siguri diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 82739c9bb77cfe2612a892ab268d8a3835b7a8ed..9d848d6edab8b66cf49ba58152e0a0f5c08183f9 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -4,26 +4,15 @@ sr-Latn: about_hashtag_html: Ovo su javni statusi tagovani sa <strong>#%{hashtag}</strong>. Možete odgovarati na njih ako imate nalog bilo gde u fediversu. about_mastodon_html: Mastodont je druÅ¡tvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao Å¡to je decentralizovana e-poÅ¡ta. about_this: O instanci - closed_registrations: Registracije su trenutno zatvorene na ovoj instanci. Ipak! Možete naći drugu instancu na kojoj ćete napraviti nalog i odatle dobiti pristup istoj ovoj mreži. contact: Kontakt contact_missing: Nije postavljeno contact_unavailable: N/A extended_description_html: | <h3>Dobro mesto za pravila</h3> <p>ProÅ¡ireni opis koji joÅ¡ nije postavljen.</p> - features: - humane_approach_body: UÄeći od greÅ¡aka sa ostalih mreža, a da bi se borio protiv zloupotreba na druÅ¡tvenim mrežama, Mastodont pokuÅ¡ava da pravi Å¡to etiÄkije odluke prilikom razvoja. - humane_approach_title: Humaniji pristup - not_a_product_body: Mastodont nije komercijalna mreža. Nema reklama, nema skupljanja privatnih podataka, nema zaÅ¡tićenih delova. Nema centralnog autoriteta. - not_a_product_title: Vi ste osoba, ne proizvod - real_conversation_body: Sa 500 karaktera na raspolaganju i podrÅ¡kom za granularniji sadržaj i upozorenja na osetljiviji sadržaj, možete se izraziti kako god želite. - real_conversation_title: Pravljen za pravi razgovor - within_reach_body: ViÅ¡e aplikacija za iOS, Android, kao i druge platforme zahvaljujući ekosistemu dobrih API-ja će Vam omogućiti da ostanete u kontaktu sa prijateljima svuda. - within_reach_title: Uvek u kontaktu generic_description: "%{domain} je server na mreži" hosted_on: Mastodont hostovan na %{domain} learn_more: Saznajte viÅ¡e - other_instances: Lista instanci source_code: Izvorni kod status_count_after: statusa status_count_before: Koji su napisali diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 331ec3f8040fffaf344270ef8648c64b0dc1cea5..4474cd4fc614a6f7e0fab041647c5b8e1d55eef2 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -7,7 +7,6 @@ sr: administered_by: 'ÐдминиÑтрирано од Ñтране:' api: API apps: Мобилне апликације - closed_registrations: РегиÑтрације Ñу тренутно затворене на овој инÑтанци. Међутим! Можете наћи другу инÑтанцу на којој ћете направити налог и одатле добити приÑтуп на иÑтој овој мрежи. contact: Контакт contact_missing: Ðије поÑтављено contact_unavailable: N/A @@ -15,19 +14,9 @@ sr: extended_description_html: | <h3>Добро меÑто за правила</h3> <p>Проширени Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ñ˜Ð¸ још није поÑтављен.</p> - features: - humane_approach_body: Учећи од грешака Ñа оÑталих мрежа, а да би Ñе борио против злоупотреба на друштвеним мрежама, МаÑтодонт покушава да прави што етичкије одлуке приликом развоја. - humane_approach_title: Хуманији приÑтуп - not_a_product_body: МаÑтодонт није комерцијална мрежа. Ðема реклама, нема Ñкупљања приватних података, нема заштићених делова. Ðема централног ауторитета. - not_a_product_title: Ви Ñте оÑоба, не производ - real_conversation_body: Са 500 карактера на раÑполагању и подршком за грануларнији Ñадржај и упозорења на оÑетљивији Ñадржај, можете Ñе изразити како год желите. - real_conversation_title: Прављен за прави разговор - within_reach_body: Више апликација за iOS, Ðндроид, као и друге платформе захваљујући екоÑиÑтему добрих API-ја ће Вам омогућити да оÑтанете у контакту Ñа пријатељима Ñвуда. - within_reach_title: Увек у контакту generic_description: "%{domain} је Ñервер на мрежи" hosted_on: МаÑтодонт хоÑтован на %{domain} learn_more: Сазнајте више - other_instances: ЛиÑта инÑтанци privacy_policy: ПолиÑа приватноÑти source_code: Изворни код status_count_after: @@ -518,13 +507,11 @@ sr: logout: Одјава migrate_account: Помери у други налог migrate_account_html: Ðко желите да преуÑмерите овај налог на неки други, можете то <a href="%{path}">подеÑити овде</a>. - or: или or_log_in_with: Или Ñе пријавите Ñа providers: cas: CAS-ом saml: SAML-ом register: РегиÑтруј Ñе - register_elsewhere: РегиÑтрујте Ñе на другом Ñерверу resend_confirmation: Пошаљи поруку Ñа упутÑтвима о потврди налога поново reset_password: РеÑетуј лозинку security: БезбедноÑÑ‚ diff --git a/config/locales/sv.yml b/config/locales/sv.yml index aa5b3420daf7708033963f0ccc1d401cf27798b4..3023fb183824e4217c060cd758f8ebe731880db4 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -5,26 +5,15 @@ sv: about_mastodon_html: Mastodon är ett socialt nätverk baserat pÃ¥ öppna webbprotokoll och gratis, öppen källkodsprogramvara. Det är decentraliserat som e-post. about_this: Om administered_by: 'Administreras av:' - closed_registrations: Registreringar är för närvarande stängda i denna instans. Dock sÃ¥ kan du hitta en annan instans för att skapa ett konto och fÃ¥ tillgÃ¥ng till samma nätverk frÃ¥n det. contact: Kontakt contact_missing: Inte inställd contact_unavailable: N/A extended_description_html: | <h3>En bra plats för regler</h3> <p>Den utökade beskrivningen har inte konfigurerats ännu.</p> - features: - humane_approach_body: Mastodon, har lärt sig frÃ¥n tidigare misslyckanden i andra nätverk och syftar till att göra etiska designval i Mastodon för att bekämpa missbruk av sociala medier. - humane_approach_title: En mer human inställning - not_a_product_body: Mastodon är inte ett kommersiellt nätverk. Ingen reklam, ingen datautvinning, inga muromgärdade trädgÃ¥rdar. Det finns ingen central myndighet. - not_a_product_title: Du är en person, inte en produkt - real_conversation_body: Med 500 tecken till ditt förfogande och stöd för granulärt innehÃ¥ll och mediavarningar sÃ¥ kan du uttrycka dig själv, som du vill. - real_conversation_title: Byggd för riktiga konversationer - within_reach_body: Flera appar för iOS, Android och andra plattformar tack vare ett utvecklingsvänligt API-ekosystem gör att du kan hÃ¥lla kontakten med dina vänner var som helst. - within_reach_title: Alltid inom räckhÃ¥ll generic_description: "%{domain} är en server i nätverket" hosted_on: Mastodon värd pÃ¥ %{domain} learn_more: Lär dig mer - other_instances: Instanslista source_code: Källkod status_count_after: statusar status_count_before: Som skapat @@ -380,13 +369,11 @@ sv: logout: Logga ut migrate_account: Flytta till ett annat konto migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du <a href="%{path}">konfigurera det här</a>. - or: eller or_log_in_with: Eller logga in med providers: cas: CAS saml: SAML register: Registrera - register_elsewhere: Registrera dig pÃ¥ en annan server resend_confirmation: Skicka instruktionerna om bekräftelse igen reset_password: Ã…terställ lösenord security: Säkerhet diff --git a/config/locales/te.yml b/config/locales/te.yml index f0f6942abffae70284d3d13adce95116501d787f..1dfc87060a5b6fffd2b5d13a20dd07a8d7354271 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -7,7 +7,6 @@ te: administered_by: 'నిరà±à°µà°¹à°£à°²à±‹:' api: API apps: మొబైలౠయాపà±à°¸à± - closed_registrations: à°ªà±à°°à°¸à±à°¤à±à°¤à°‚ à°ˆ ఇనà±à°¸à±à°Ÿà±†à°¨à±à°¸à± లో రిజిసà±à°Ÿà±‡à°·à°¨à±à°²à± మూసివేయబడà±à°¡à°¾à°¯à°¿. అయితే, వేరే ఇనà±à°¸à±à°Ÿà±†à°¨à±à°¸à± లో ఖాతా తెరచికూడా à°ˆ ఇనà±à°¸à±à°Ÿà±†à°¨à±à°¸à± నౠఅకà±à°•à°¡à°¿à°¨à±à°‚డే యాకà±à°¸à±†à°¸à± చేయవచà±à°šà±. contact: సంపà±à°°à°¦à°¿à°‚à°šà°‚à°¡à°¿ contact_missing: ఇంకా సెటౠచేయలేదౠcontact_unavailable: వరà±à°¤à°¿à°‚చదౠ@@ -15,19 +14,9 @@ te: extended_description_html: | <h3>నియమాలకౠఒక మంచి à°ªà±à°°à°¦à±‡à°¶à°‚</h3> <p>మరింత విశదీకరణ ఇంకా సెటౠచేయబడలేదà±.</p> - features: - humane_approach_body: వేరే సామాజిక మాధà±à°¯à°®à°¾à°² వైఫలà±à°¯à°¾à°² à°¨à±à°‚à°¡à°¿ నేరà±à°šà±à°•à±à°¨à°¿, నైతిక రూపకలà±à°ªà°¨à°²à°¤à±‹ సామాజిక మాధà±à°¯à°®à°¾à°² à°¦à±à°°à±à°µà°¿à°¨à°¿à°¯à±‹à°—ంపై మాసà±à°Ÿà±Šà°¡à°¾à°¨à± పోరాటం చేసే లకà±à°·à±à°¯à°‚తో పనిచేసà±à°¤à±à°‚ది. - humane_approach_title: మరింత మానవతà±à°µà°‚తో కూడిన విధానం - not_a_product_body: మాసà±à°Ÿà±Šà°¡à°¾à°¨à± à°µà±à°¯à°¾à°ªà°¾à°° సంబంధిత మాధà±à°¯à°®à°‚ కాదà±. à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ à°ªà±à°°à°•టనలà±, డేటా మైనింగà±, కంచెలౠలేనిది. ఠకేందà±à°° అధికరమూ లేదà±. - not_a_product_title: మీరొక à°µà±à°¯à°•à±à°¤à°¿, వసà±à°¤à±à°µà± కాదౠ- real_conversation_body: With 500 characters at your disposal and support for granular content and media warnings, you can express yourself the way you want to. - real_conversation_title: నిజమైన సంà°à°¾à°·à°£à°²à°•ోసం నిరà±à°®à°¿à°‚చబడింది - within_reach_body: ఆండà±à°°à°¾à°¯à°¿à°¡à±, iOS మరియౠఇతర à°ªà±à°²à°¾à°Ÿà±à°«à°¾à°‚లకౠవివిధరకాల యాపà±à°¸à± à°µà±à°¨à±à°¨à°¾à°¯à°¿. డెవలపరౠసహిత API à°µà±à°¯à°µà°¸à±à°¥à±‡ ఇందà±à°•ౠమూలకారణం. ఇవి మీ à°¸à±à°£à±‡à°¹à°¿à°¤à±à°²à°¤à±‹ à°…à°¨à±à°¨à°¿à°µà±‡à°³à°²à°¾ à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ à°µà±à°‚డడానికి సహాయపడతాయి. - within_reach_title: à°Žà°²à±à°²à°ªà±à°ªà±à°¡à±‚ à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ generic_description: "%{domain} అనేది నెటà±à°µà°°à±à°•à±à°²à±‹à°¨à°¿ à°’à°• సరà±à°µà°°à±" hosted_on: మాసà±à°Ÿà±Šà°¡à°¾à°¨à± %{domain} లో హోసà±à°Ÿà± చేయబడింది learn_more: మరింత తెలà±à°¸à±à°•ోండి - other_instances: ఇనà±à°¸à±à°Ÿà°¾à°¨à±à°¸à± à°² జాబితా privacy_policy: గోపà±à°¯à°¤ విధానమౠsource_code: సోరà±à°¸à± కోడౠstatus_count_after: diff --git a/config/locales/th.yml b/config/locales/th.yml index 5be8e02c0f0d36d470ac20e766141d299b7b91ec..dcf49c24c3cec2576ee292fbcb587e1416663228 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -3,9 +3,7 @@ th: about: about_mastodon_html: à¹à¸¡à¸ªà¹‚ทดà¸à¸™ เป็น <em>ดีเซ็นทรัลไลซ์</em><em>ฟรีโà¸à¹€à¸žà¹ˆà¸™à¸‹à¸à¸£à¹Œà¸ª</em> โซเชี่ยวเน็ตเวริ์ค. เป็นทางเลืà¸à¸à¸—ดà¹à¸—นโซเชี่ยวเน็ตเวิร์คที่ทำเป็นธุรà¸à¸´à¸ˆà¸à¸²à¸£à¸„้า, ป้à¸à¸‡à¸à¸±à¸™à¸à¸²à¸£à¸œà¸¹à¸à¸‚าดช่à¸à¸‡à¸—างà¸à¸²à¸£à¸ªà¸·à¹ˆà¸à¸ªà¸²à¸£à¸‚à¸à¸‡à¸„ุณ. เลืà¸à¸à¹€à¸‹à¸£à¹Œà¸Ÿà¹€à¸§à¸à¸£à¹Œà¸—ี่คุณไว้ใจ — ที่คุณเลืà¸à¸à¹„ด้เà¸à¸‡, สื่à¸à¸ªà¸²à¸£à¸à¸±à¸šà¸„นที่คุณต้à¸à¸‡à¸à¸²à¸£à¹„ด้เสมà¸. ใครๆà¸à¹‡à¸£à¸±à¸™à¹à¸¡à¸ªà¹‚ทดà¸à¸™à¸à¸´à¸™à¸‹à¸°à¹à¸•นซ์ได้ à¹à¸¥à¸° เชื่à¸à¸¡à¸•่à¸à¸à¸±à¸š<em>โซเชี่ยวเน็ตเวิร์ค</em> โดยไม่มีà¸à¸°à¹„รมาขวางà¸à¸±à¹‰à¸™. about_this: เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸´à¸™à¸‹à¸°à¹à¸•นซ์นี้ - closed_registrations: à¸à¸´à¸™à¸‹à¸°à¹à¸•นซ์นี้ปิดรับลงทะเบียนà¹à¸¥à¹‰à¸§. contact: ติดต่ภ- other_instances: à¸à¸´à¸™à¸‹à¸°à¹à¸•นซ์à¸à¸·à¹ˆà¸™à¹† source_code: ซà¸à¸£à¹Œà¸ªà¹‚ค๊ด status_count_after: สถานะ status_count_before: Who authored diff --git a/config/locales/tr.yml b/config/locales/tr.yml index fefbb66676c7ee142957187b1721bd03f1e2b920..b76d793295ae4b36ec0d620b7e7350652af7eb2e 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -7,7 +7,6 @@ tr: administered_by: 'Tarafından yönetildi:' api: API apps: Mobil uygulamalar - closed_registrations: Bu sunucudaki kayıtlar ÅŸu anda kapalı. Ancak! Bir hesap oluÅŸturmak ve oradan aynı aÄŸa eriÅŸmek için farklı bir sunucu bulabilirsiniz. contact: İletiÅŸim contact_missing: Ayarlanmadı contact_unavailable: Yok @@ -15,19 +14,9 @@ tr: extended_description_html: | <h3>Kural için iyi bir yer</h3> <p>GeniÅŸletilmiÅŸ açıklama henüz ayarlanmamış.</p> - features: - humane_approach_body: DiÄŸer aÄŸların baÅŸarısızlıklarından öğrenen Mastodon, sosyal medyanın kötüye kullanımı ile mücadele etmek için etik tasarım seçimleri yapmayı amaçlamaktadır. - humane_approach_title: Daha insancıl bir yaklaşım - not_a_product_body: Mastodon ticari bir aÄŸ deÄŸildir. Reklam yok, Veri madenciliÄŸi yok, duvarlı bahçeler yok. Merkezi bir otorite yok. - not_a_product_title: Sen bir insansın, bir ürün deÄŸil - real_conversation_body: Emrindeki 500 karakter ve granüler içerik ve medya uyarıları için destek ile kendinizi istediÄŸiniz ÅŸekilde ifade edebilirsiniz. - real_conversation_title: Gerçek sohbet için üretildi - within_reach_body: GeliÅŸtirici dostu bir API ekosistemi sayesinde iOS, Android ve diÄŸer platformlar için birden fazla uygulama, arkadaÅŸlarınıza her yerden ulaÅŸmanızı saÄŸlar. - within_reach_title: Her zaman ulaşılabilir generic_description: "%{domain} aÄŸdaki bir sunucudur" hosted_on: Mastodon %{domain} üzerinde barındırılıyor learn_more: Daha fazla bilgi edinin - other_instances: Sunucu listesi privacy_policy: Gizlilik politikası source_code: Kaynak kodu status_count_after: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 9a63854b5821a064a667315c72153a88d2956699..5cc9141044f704ddfaf68db5c42979bd22bf7cd6 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -6,7 +6,6 @@ uk: about_this: Про цю інÑтанцію administered_by: 'ÐдмініÑтратор:' api: API - closed_registrations: Ðа даний момент реєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð½Ð° цій інÑтанції закрита. contact: Зв'ÑзатиÑÑ contact_missing: Ðе зазначено contact_unavailable: ÐедоÑтупно @@ -14,19 +13,9 @@ uk: extended_description_html: | <h3>Гарне міÑце Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»</h3> <p>Детальний Ð¾Ð¿Ð¸Ñ Ñ‰Ðµ не налаштований.</p> - features: - humane_approach_body: ÐавчаючиÑÑŒ з помилок інших Ñоціальних мереж, Mastodon націлений на етичні Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð±Ð¾Ñ€Ð¾Ñ‚ÑŒÐ±Ð¸ з направильним викориÑтаннÑм Ñоціальних медіа. - humane_approach_title: Більш людÑький підхід - not_a_product_body: Mastodon - це некомерційна мережа. ÐÑ–Ñкої реклами, збору даних Ñ– залізних Ñтін. Тут немає центральної влади. - not_a_product_title: Ви - оÑобиÑтіÑть, а не продукт - real_conversation_body: ВиÑловлюйте Ñвої думки Ñебе у будь-Ñкий ÑпоÑіб маючи в розпорÑдженні 500 Ñимволів з підтримкою гранульованого контенту та попереджень медіа. - real_conversation_title: Побудований Ð´Ð»Ñ Ñправжньої розмови - within_reach_body: Велика кількіÑть заÑтоÑунків Ð´Ð»Ñ iOS, Android та інших платформ, завдÑки дружній до розробника екоÑиÑтемі дозволÑÑ” бути на звÑзку з друзÑми звідуÑіль. - within_reach_title: Завжди на звÑзку generic_description: "%{domain} Ñ” одним Ñервером у мережі" hosted_on: Mastodon розміщено на %{domain} learn_more: ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ - other_instances: Інші інÑтанції privacy_policy: Політика приватноÑті source_code: Вихідний код status_count_after: ÑтатуÑів @@ -412,13 +401,11 @@ uk: logout: Вийти migrate_account: Переїхати до іншого аккаунту migrate_account_html: Якщо ви бажаєте, щоб відвідувачі цього акканту були перенаправлені до іншого, ви можете <a href="%{path}">налаштувати це тут</a>. - or: або or_log_in_with: Ðбо увійдіть з providers: cas: CAS saml: SAML register: ЗареєÑтруватиÑÑ - register_elsewhere: ЗареєÑтруватиÑÑ Ð½Ð° іншому Ñервері resend_confirmation: Повторно відправити інÑтрукції з Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ reset_password: Скинути пароль security: Зміна паролю diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index e482e9c417a5d290f4a09516f493758a2411eabc..50527546af7d9a4201fee5948e6e0d15e8e8a60d 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -7,7 +7,6 @@ zh-CN: administered_by: 本实例的管ç†å‘˜ï¼š api: API apps: 移动应用 - closed_registrations: è¿™ä¸ªå®žä¾‹ç›®å‰æ²¡æœ‰å¼€æ”¾æ³¨å†Œã€‚ä¸è¿‡ï¼Œä½ å¯ä»¥å‰å¾€å…¶ä»–å®žä¾‹æ³¨å†Œä¸€ä¸ªå¸æˆ·ï¼ŒåŒæ ·å¯ä»¥åŠ å…¥åˆ°è¿™ä¸ªç½‘ç»œä¸å“¦ï¼ contact: è”ç³»æ–¹å¼ contact_missing: 未设定 contact_unavailable: 未公开 @@ -15,19 +14,9 @@ zh-CN: extended_description_html: | <h3>这里å¯ä»¥å†™ä¸€äº›è§„定</h3> <p>本站尚未设置详细介ç»ã€‚</p> - features: - humane_approach_body: Mastodon 从其他网络的失败ç»éªŒä¸æ±²å–了教è®ï¼Œè‡´åŠ›äºŽåœ¨ä¸Žé”™è¯¯çš„ç¤¾äº¤åª’ä½“ä½¿ç”¨æ–¹å¼çš„æ–—争ä¸åšå‡ºç¬¦åˆä¼¦ç†åŒ–设计的选择。 - humane_approach_title: æ›´åŠ ä»¥äººä¸ºæœ¬ - not_a_product_body: Mastodon ç»éžä¸€ä¸ªå•†ä¸šç½‘ç»œã€‚è¿™é‡Œæ—¢æ²¡æœ‰å¹¿å‘Šï¼Œä¹Ÿæ²¡æœ‰æ•°æ®æŒ–掘,更没有围墙花å›ã€‚ä¸å¿ƒæœºæž„在这里ä¸å¤å˜åœ¨ã€‚ - not_a_product_title: ä½œä¸ºç”¨æˆ·ï¼Œä½ å¹¶éžä¸€ä»¶å•†å“ - real_conversation_body: Mastodon 有ç€é«˜è¾¾ 500 å—çš„å—æ•°é™åˆ¶ï¼Œä»¥åŠå¯¹å†…容的细化控制和媒体è¦å‘Šæç¤ºçš„æ”¯æŒï¼Œåªä¸ºè®©ä½ 能够畅所欲言。 - real_conversation_title: 为真æ£çš„交æµè€Œç”Ÿ - within_reach_body: 通过一个é¢å‘å¼€å‘者å‹å¥½çš„ API 生æ€ç³»ç»Ÿï¼ŒMastodon è®©ä½ å¯ä»¥éšæ—¶éšåœ°é€šè¿‡ä¼—多 iOSã€Android 以åŠå…¶ä»–å¹³å°çš„应用与朋å‹ä»¬ä¿æŒè”系。 - within_reach_title: 始终触手å¯åŠ generic_description: "%{domain} 是这个庞大网络ä¸çš„䏀尿œåС噍" hosted_on: 一个在 %{domain} 上è¿è¡Œçš„ Mastodon 实例 learn_more: 了解详情 - other_instances: 其他实例 privacy_policy: éšç§æ”¿ç– source_code: æºä»£ç status_count_after: æ¡å˜Ÿæ–‡ @@ -430,13 +419,11 @@ zh-CN: logout: 登出 migrate_account: è¿ç§»åˆ°å¦ä¸€ä¸ªå¸æˆ· migrate_account_html: å¦‚æžœä½ å¸Œæœ›å¼•å¯¼ä»–äººå…³æ³¨å¦ä¸€ä¸ªå¸æˆ·ï¼Œè¯·<a href="%{path}">点击这里进行设置</a>。 - or: 或者 or_log_in_with: 或通过其他方å¼ç™»å½• providers: cas: CAS saml: SAML register: 注册 - register_elsewhere: å‰å¾€å…¶ä»–实例注册 resend_confirmation: 釿–°å‘é€ç¡®è®¤é‚®ä»¶ reset_password: é‡ç½®å¯†ç security: 叿ˆ·å®‰å…¨ diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 737ca000cfbf32e042459d5f173c5762c1ea65af..043f2ca5fd368d411311e7bd3924f41e200a9f88 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -5,26 +5,15 @@ zh-HK: about_mastodon_html: Mastodon(è¬è±¡ï¼‰æ˜¯<em>自由ã€é–‹æº</em>的社交網絡。æœå‹™ç«™<em>å„自ç¨ç«‹è€Œäº’連</em>,é¿å…å–®ä¸€å•†æ¥æ©Ÿæ§‹å£Ÿæ–·ã€‚æ‰¾ä½ æ‰€ä¿¡ä»»çš„æœå‹™ç«™ï¼Œå»ºç«‹å¸³è™Ÿï¼Œä½ å³å¯èˆ‡ä»»ä½•æœå‹™ç«™ä¸Šçš„用戶æºé€šï¼Œäº«å—無縫的<em>網絡交æµ</em>。 about_this: 關於本æœå‹™ç«™ administered_by: 管ç†è€…: - closed_registrations: 本æœå‹™ç«™æš«æ™‚åœæ¢æŽ¥å—登記。 contact: è¯çµ¡ contact_missing: 未è¨å®š contact_unavailable: 未公開 extended_description_html: | <h3>這裡å¯ä»¥å¯«ä¸€äº›ç¶²ç«™è¦å‰‡</h3> <p>本站未有詳細介紹</p> - features: - humane_approach_body: Mastodon å¾žå…¶ä»–ç¶²çµ¡çš„å¤±æ•—ç¶“é©—ä¸æ±²å–教訓,以åˆä¹Žé“å¾·çš„è¨è¨ˆå°æŠ—社交媒體的濫用å•題。 - humane_approach_title: 以人為本 - not_a_product_body: Mastodon 䏿˜¯å•†æ¥ç¶²çµ¡ã€‚沒有廣告,沒有數據挖掘,也沒有ä¸å¤®æ©Ÿæ§‹æ“控。平å°å®Œå…¨é–‹æ”¾ã€‚ - not_a_product_title: ä½ æ˜¯ç”¨æˆ¶ï¼Œä¸æ˜¯å•†å“ - real_conversation_body: Mastodon çš„å—æ•¸é™åˆ¶é«˜é” 500 å—,並支æ´ä»”細的媒體è¦å‘Šé¸é …ï¼Œä»¤ä½ æš¢æ‰€æ¬²è¨€ã€‚ - real_conversation_title: 為真æ£çš„交æµè€Œç”Ÿ - within_reach_body: 簡易的 API 系統,令用戶å¯ä»¥é€éŽä¸åŒçš„ iOSã€Android åŠå…¶ä»–å¹³å°çš„æ‡‰ç”¨è»Ÿä»¶ï¼Œèˆ‡æœ‹å‹ä¿æŒè¯ç¹«ã€‚ - within_reach_title: 無處ä¸åœ¨ generic_description: "%{domain} 是 Mastodon 網絡ä¸å…¶ä¸ä¸€å€‹æœå‹™ç«™" hosted_on: 在 %{domain} é‹ä½œçš„ Mastodon æœå‹™ç«™ learn_more: 了解更多 - other_instances: å…¶ä»–æœå‹™ç«™ source_code: æºä»£ç¢¼ status_count_after: ç¯‡æ–‡ç« status_count_before: 他們共發佈了 @@ -378,13 +367,11 @@ zh-HK: logout: 登出 migrate_account: 轉移到å¦ä¸€å€‹å¸³è™Ÿ migrate_account_html: 想è¦å°‡é€™å€‹å¸³è™ŸæŒ‡å‘å¦ä¸€å€‹å¸³è™Ÿå¯<a href="%{path}">到這裡è¨å®š</a>。 - or: 或 or_log_in_with: 或登入於 providers: cas: CAS saml: SAML register: 登記 - register_elsewhere: 在其他æœå‹™ç«™ç™»è¨˜ resend_confirmation: é‡ç™¼ç¢ºèªæŒ‡ç¤ºé›»éƒµ reset_password: é‡è¨å¯†ç¢¼ security: 登入資訊 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index f4bda0f348fb12dbfef7333bc5222ee5967f6e62..76a0cbb64dae4c030c19d116608c951a32d5b4b4 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -7,7 +7,6 @@ zh-TW: administered_by: 管ç†è€…: api: API apps: Mobile apps - closed_registrations: æœ¬ç«™æš«æ™‚åœæ¢æŽ¥å—註冊。 contact: è¯çµ¡æˆ‘們 contact_missing: 未è¨å®š contact_unavailable: 未公開 @@ -15,19 +14,9 @@ zh-TW: extended_description_html: | <h3>這裡å¯ä»¥å¯«ä¸€äº›ç¶²ç«™è¦å‰‡</h3> <p>本站點未有詳細介紹</p> - features: - humane_approach_body: Mastodon å¾žå…¶ä»–ç¶²è·¯çš„å¤±æ•—ç¶“é©—ä¸æ±²å–教訓,以åˆä¹Žé“å¾·çš„è¨è¨ˆå°æŠ—社交媒體的濫用å•題。 - humane_approach_title: 以人為本 - not_a_product_body: Mastodon 䏿˜¯å•†æ¥ç¶²ç«™ã€‚沒有廣告,沒有數據挖掘,也沒有ä¸å¤®æ©Ÿæ§‹æ“控。平å°å®Œå…¨é–‹æ”¾ã€‚ - not_a_product_title: ä½ æ˜¯ç”¨æˆ¶ï¼Œä¸æ˜¯å•†å“ - real_conversation_body: Mastodon çš„å—æ•¸é™åˆ¶é«˜é” 500 å—,並支æ´ä»”細的媒體è¦å‘Šé¸é …ï¼Œä»¤ä½ æš¢æ‰€æ¬²è¨€ã€‚ - real_conversation_title: 為真æ£çš„交æµè€Œç”Ÿ - within_reach_body: 簡易的 API 系統,令用戶å¯ä»¥é€éŽä¸åŒçš„ iOSã€Android åŠå…¶ä»–å¹³å°çš„æ‡‰ç”¨è»Ÿé«”,與朋å‹ä¿æŒè¯ç¹«ã€‚ - within_reach_title: 始終觸手å¯åŠ generic_description: "%{domain} 是 Mastodon 網路ä¸å…¶ä¸ä¸€å€‹ç«™é»ž" hosted_on: 在 %{domain} é‹ä½œçš„ Mastodon 站點 learn_more: 了解詳細 - other_instances: 其他站點 source_code: 原始碼 status_count_after: 狀態 status_count_before: 他們共嘟出了 @@ -383,13 +372,11 @@ zh-TW: logout: 登出 migrate_account: 轉移到å¦ä¸€å€‹å¸³è™Ÿ migrate_account_html: å¦‚æžœä½ å¸Œæœ›å¼•å°Žä»–äººé—œæ³¨å¦ä¸€å€‹å¸³æˆ¶ï¼Œè«‹<a href="%{path}">到這裡è¨å®š</a>。 - or: 或 or_log_in_with: 或é€éŽå…¶ä»–æ–¹å¼ç™»å…¥ providers: cas: CAS saml: SAML register: 註冊 - register_elsewhere: 在其他站點註冊 resend_confirmation: 釿–°å¯„é€E-mail reset_password: é‡è¨å¯†ç¢¼ security: 登入資訊 diff --git a/config/routes.rb b/config/routes.rb index ac10f9fba8270d5741917b613d7c103505a100e4..227d86c7313e808350d1078a13cfdfa00b71f716 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -130,6 +130,7 @@ Rails.application.routes.draw do resources :invites, only: [:index, :create, :destroy] resources :filters, except: [:show] + get '/public', to: 'public_timelines#show', as: :public_timeline get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy # Remote follow diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb index f625a93a4fe302c084b96cf473ca15255671c03e..496a885e8d9126514f080c595c01b37cba0ea264 100644 --- a/spec/requests/localization_spec.rb +++ b/spec/requests/localization_spec.rb @@ -11,8 +11,9 @@ describe 'Localization' do headers = { 'Accept-Language' => 'zh-HK' } get "/about", headers: headers + expect(response.body).to include( - I18n.t('about.about_mastodon_html', locale: 'zh-HK') + I18n.t('about.tagline', locale: 'zh-HK') ) end @@ -20,16 +21,18 @@ describe 'Localization' do headers = { 'Accept-Language' => 'es-FAKE' } get "/about", headers: headers + expect(response.body).to include( - I18n.t('about.about_mastodon_html', locale: 'es') + I18n.t('about.tagline', locale: 'es') ) end it 'falls back to english when locale is missing' do headers = { 'Accept-Language' => '12-FAKE' } get "/about", headers: headers + expect(response.body).to include( - I18n.t('about.about_mastodon_html', locale: 'en') + I18n.t('about.tagline', locale: 'en') ) end end diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb index eb81090b5173b2452f89bfcafa1db9d9918eea95..c75c2875989fdded2dc2392815b4ab7e7b5bb542 100644 --- a/spec/views/about/show.html.haml_spec.rb +++ b/spec/views/about/show.html.haml_spec.rb @@ -6,23 +6,29 @@ describe 'about/show.html.haml', without_verify_partial_doubles: true do before do allow(view).to receive(:site_hostname).and_return('example.com') allow(view).to receive(:site_title).and_return('example site') + allow(view).to receive(:new_user).and_return(User.new) + allow(view).to receive(:use_seamless_external_login?).and_return(false) end it 'has valid open graph tags' do - instance_presenter = double(:instance_presenter, - site_title: 'something', - site_short_description: 'something', - site_description: 'something', - version_number: '1.0', - source_url: 'https://github.com/tootsuite/mastodon', - open_registrations: false, - thumbnail: nil, - hero: nil, - mascot: nil, - user_count: 0, - status_count: 0, - contact_account: nil, - closed_registrations_message: 'yes') + instance_presenter = double( + :instance_presenter, + site_title: 'something', + site_short_description: 'something', + site_description: 'something', + version_number: '1.0', + source_url: 'https://github.com/tootsuite/mastodon', + open_registrations: false, + thumbnail: nil, + hero: nil, + mascot: nil, + user_count: 420, + status_count: 69, + active_user_count: 420, + contact_account: nil, + sample_accounts: [] + ) + assign(:instance_presenter, instance_presenter) render