mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-03-03 14:58:53 -05:00
Merge pull request #2979 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to cfb473c204cee6be3c995b514dff4ac87ca31503
This commit is contained in:
commit
d431e119e4
35
CHANGELOG.md
35
CHANGELOG.md
@ -2,6 +2,41 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [4.3.4] - 2025-02-27
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- Update dependencies
|
||||||
|
- Change HTML sanitization to remove unusable and unused `embed` tag (#34021 by @ClearlyClaire, [GHSA-mq2m-hr29-8gqf](https://github.com/mastodon/mastodon/security/advisories/GHSA-mq2m-hr29-8gqf))
|
||||||
|
- Fix rate-limit on sign-up email verification ([GHSA-v39f-c9jj-8w7h](https://github.com/mastodon/mastodon/security/advisories/GHSA-v39f-c9jj-8w7h))
|
||||||
|
- Fix improper disclosure of domain blocks to unverified users ([GHSA-94h4-fj37-c825](https://github.com/mastodon/mastodon/security/advisories/GHSA-94h4-fj37-c825))
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Change preview cards to be shown when Content Warnings are expanded (#33827 by @ClearlyClaire)
|
||||||
|
- Change warnings against changing encryption secrets to be even more noticeable (#33631 by @ClearlyClaire)
|
||||||
|
- Change `mastodon:setup` to prevent overwriting already-configured servers (#33603, #33616, and #33684 by @ClearlyClaire and @mjankowski)
|
||||||
|
- Change notifications from moderators to not be filtered (#32974 and #33654 by @ClearlyClaire and @mjankowski)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix `GET /api/v2/notifications/:id` and `POST /api/v2/notifications/:id/dismiss` for ungrouped notifications (#33990 by @ClearlyClaire)
|
||||||
|
- Fix issue with some versions of libvips on some systems (#33853 by @kleisauke)
|
||||||
|
- Fix handling of duplicate mentions in incoming status `Update` (#33911 by @ClearlyClaire)
|
||||||
|
- Fix inefficiencies in timeline generation (#33839 and #33842 by @ClearlyClaire)
|
||||||
|
- Fix emoji rewrite adding unnecessary curft to the DOM for most emoji (#33818 by @ClearlyClaire)
|
||||||
|
- Fix `tootctl feeds build` not building list timelines (#33783 by @ClearlyClaire)
|
||||||
|
- Fix flaky test in `/api/v2/notifications` tests (#33773 by @ClearlyClaire)
|
||||||
|
- Fix incorrect signature after HTTP redirect (#33757 and #33769 by @ClearlyClaire)
|
||||||
|
- Fix polls not being validated on edition (#33755 by @ClearlyClaire)
|
||||||
|
- Fix media preview height in compose form when 3 or more images are attached (#33571 by @ClearlyClaire)
|
||||||
|
- Fix preview card sizing in “Author attribution” in profile settings (#33482 by @ClearlyClaire)
|
||||||
|
- Fix processing of incoming notifications for unfilterable types (#33429 by @ClearlyClaire)
|
||||||
|
- Fix featured tags for remote accounts not being kept up to date (#33372, #33406, and #33425 by @ClearlyClaire and @mjankowski)
|
||||||
|
- Fix notification polling showing a loading bar in web UI (#32960 by @Gargron)
|
||||||
|
- Fix accounts table long display name (#29316 by @WebCoder49)
|
||||||
|
- Fix exclusive lists interfering with notifications (#28162 by @ShadowJonathan)
|
||||||
|
|
||||||
## [4.3.3] - 2025-01-16
|
## [4.3.3] - 2025-01-16
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
@ -738,7 +738,7 @@ GEM
|
|||||||
lint_roller (~> 1.1)
|
lint_roller (~> 1.1)
|
||||||
rubocop (>= 1.72.1, < 2.0)
|
rubocop (>= 1.72.1, < 2.0)
|
||||||
rubocop-ast (>= 1.38.0, < 2.0)
|
rubocop-ast (>= 1.38.0, < 2.0)
|
||||||
rubocop-rails (2.30.1)
|
rubocop-rails (2.30.2)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
lint_roller (~> 1.1)
|
lint_roller (~> 1.1)
|
||||||
rack (>= 1.1)
|
rack (>= 1.1)
|
||||||
|
@ -31,7 +31,7 @@ class Api::V1::Instances::DomainBlocksController < Api::V1::Instances::BaseContr
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show_domain_blocks_to_user?
|
def show_domain_blocks_to_user?
|
||||||
Setting.show_domain_blocks == 'users' && user_signed_in?
|
Setting.show_domain_blocks == 'users' && user_signed_in? && current_user.functional_or_moved?
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_domain_blocks
|
def set_domain_blocks
|
||||||
@ -47,6 +47,6 @@ class Api::V1::Instances::DomainBlocksController < Api::V1::Instances::BaseContr
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show_rationale_for_user?
|
def show_rationale_for_user?
|
||||||
Setting.show_domain_blocks_rationale == 'users' && user_signed_in?
|
Setting.show_domain_blocks_rationale == 'users' && user_signed_in? && current_user.functional_or_moved?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -142,6 +142,13 @@ export function fetchAccountFail(id, error) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} id
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {boolean} [options.reblogs]
|
||||||
|
* @param {boolean} [options.notify]
|
||||||
|
* @returns {function(): void}
|
||||||
|
*/
|
||||||
export function followAccount(id, options = { reblogs: true }) {
|
export function followAccount(id, options = { reblogs: true }) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
const alreadyFollowing = getState().getIn(['relationships', id, 'following']);
|
const alreadyFollowing = getState().getIn(['relationships', id, 'following']);
|
||||||
|
@ -55,7 +55,7 @@ export const FollowButton: React.FC<{
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!relationship) return;
|
if (!relationship || !accountId) return;
|
||||||
|
|
||||||
if (accountId === me) {
|
if (accountId === me) {
|
||||||
return;
|
return;
|
||||||
|
@ -1,528 +0,0 @@
|
|||||||
import PropTypes from 'prop-types';
|
|
||||||
|
|
||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
|
||||||
import { Helmet } from 'react-helmet';
|
|
||||||
import { NavLink, withRouter } from 'react-router-dom';
|
|
||||||
|
|
||||||
import { isFulfilled, isRejected } from '@reduxjs/toolkit';
|
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
|
||||||
|
|
||||||
import CheckIcon from '@/material-icons/400-24px/check.svg?react';
|
|
||||||
import LockIcon from '@/material-icons/400-24px/lock.svg?react';
|
|
||||||
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
|
|
||||||
import NotificationsIcon from '@/material-icons/400-24px/notifications.svg?react';
|
|
||||||
import NotificationsActiveIcon from '@/material-icons/400-24px/notifications_active-fill.svg?react';
|
|
||||||
import ShareIcon from '@/material-icons/400-24px/share.svg?react';
|
|
||||||
import { Avatar } from 'mastodon/components/avatar';
|
|
||||||
import { Badge, AutomatedBadge, GroupBadge } from 'mastodon/components/badge';
|
|
||||||
import { Button } from 'mastodon/components/button';
|
|
||||||
import { CopyIconButton } from 'mastodon/components/copy_icon_button';
|
|
||||||
import { FollowersCounter, FollowingCounter, StatusesCounter } from 'mastodon/components/counters';
|
|
||||||
import { Icon } from 'mastodon/components/icon';
|
|
||||||
import { IconButton } from 'mastodon/components/icon_button';
|
|
||||||
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
|
|
||||||
import { ShortNumber } from 'mastodon/components/short_number';
|
|
||||||
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
|
|
||||||
import { identityContextPropShape, withIdentity } from 'mastodon/identity_context';
|
|
||||||
import { autoPlayGif, me, domain as localDomain } from 'mastodon/initial_state';
|
|
||||||
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';
|
|
||||||
import { WithRouterPropTypes } from 'mastodon/utils/react_router';
|
|
||||||
|
|
||||||
import AccountNoteContainer from '../containers/account_note_container';
|
|
||||||
import FollowRequestNoteContainer from '../containers/follow_request_note_container';
|
|
||||||
|
|
||||||
import { DomainPill } from './domain_pill';
|
|
||||||
|
|
||||||
const messages = defineMessages({
|
|
||||||
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
|
||||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
|
||||||
followBack: { id: 'account.follow_back', defaultMessage: 'Follow back' },
|
|
||||||
mutual: { id: 'account.mutual', defaultMessage: 'Mutual' },
|
|
||||||
cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' },
|
|
||||||
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' },
|
|
||||||
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
|
|
||||||
edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
|
|
||||||
linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' },
|
|
||||||
account_locked: { id: 'account.locked_info', defaultMessage: 'This account privacy status is set to locked. The owner manually reviews who can follow them.' },
|
|
||||||
mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' },
|
|
||||||
direct: { id: 'account.direct', defaultMessage: 'Privately mention @{name}' },
|
|
||||||
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
|
|
||||||
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
|
|
||||||
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
|
|
||||||
report: { id: 'account.report', defaultMessage: 'Report @{name}' },
|
|
||||||
share: { id: 'account.share', defaultMessage: 'Share @{name}\'s profile' },
|
|
||||||
copy: { id: 'account.copy', defaultMessage: 'Copy link to profile' },
|
|
||||||
media: { id: 'account.media', defaultMessage: 'Media' },
|
|
||||||
blockDomain: { id: 'account.block_domain', defaultMessage: 'Block domain {domain}' },
|
|
||||||
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' },
|
|
||||||
hideReblogs: { id: 'account.hide_reblogs', defaultMessage: 'Hide boosts from @{name}' },
|
|
||||||
showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
|
|
||||||
enableNotifications: { id: 'account.enable_notifications', defaultMessage: 'Notify me when @{name} posts' },
|
|
||||||
disableNotifications: { id: 'account.disable_notifications', defaultMessage: 'Stop notifying me when @{name} posts' },
|
|
||||||
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
|
|
||||||
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
|
|
||||||
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
|
|
||||||
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favorites' },
|
|
||||||
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
|
|
||||||
followed_tags: { id: 'navigation_bar.followed_tags', defaultMessage: 'Followed hashtags' },
|
|
||||||
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
|
|
||||||
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Blocked domains' },
|
|
||||||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
|
||||||
endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' },
|
|
||||||
unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
|
|
||||||
add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
|
|
||||||
admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
|
|
||||||
admin_domain: { id: 'status.admin_domain', defaultMessage: 'Open moderation interface for {domain}' },
|
|
||||||
languages: { id: 'account.languages', defaultMessage: 'Change subscribed languages' },
|
|
||||||
openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },
|
|
||||||
});
|
|
||||||
|
|
||||||
const titleFromAccount = account => {
|
|
||||||
const displayName = account.get('display_name');
|
|
||||||
const acct = account.get('acct') === account.get('username') ? `${account.get('username')}@${localDomain}` : account.get('acct');
|
|
||||||
const prefix = displayName.trim().length === 0 ? account.get('username') : displayName;
|
|
||||||
|
|
||||||
return `${prefix} (@${acct})`;
|
|
||||||
};
|
|
||||||
|
|
||||||
const messageForFollowButton = relationship => {
|
|
||||||
if(!relationship) return messages.follow;
|
|
||||||
|
|
||||||
if (relationship.get('following') && relationship.get('followed_by')) {
|
|
||||||
return messages.mutual;
|
|
||||||
} else if (relationship.get('following') || relationship.get('requested')) {
|
|
||||||
return messages.unfollow;
|
|
||||||
} else if (relationship.get('followed_by')) {
|
|
||||||
return messages.followBack;
|
|
||||||
} else {
|
|
||||||
return messages.follow;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const dateFormatOptions = {
|
|
||||||
month: 'short',
|
|
||||||
day: 'numeric',
|
|
||||||
year: 'numeric',
|
|
||||||
hour: '2-digit',
|
|
||||||
minute: '2-digit',
|
|
||||||
};
|
|
||||||
|
|
||||||
class Header extends ImmutablePureComponent {
|
|
||||||
|
|
||||||
static propTypes = {
|
|
||||||
identity: identityContextPropShape,
|
|
||||||
account: ImmutablePropTypes.record,
|
|
||||||
identity_props: ImmutablePropTypes.list,
|
|
||||||
onFollow: PropTypes.func.isRequired,
|
|
||||||
onBlock: PropTypes.func.isRequired,
|
|
||||||
onMention: PropTypes.func.isRequired,
|
|
||||||
onDirect: PropTypes.func.isRequired,
|
|
||||||
onReblogToggle: PropTypes.func.isRequired,
|
|
||||||
onNotifyToggle: PropTypes.func.isRequired,
|
|
||||||
onReport: PropTypes.func.isRequired,
|
|
||||||
onMute: PropTypes.func.isRequired,
|
|
||||||
onBlockDomain: PropTypes.func.isRequired,
|
|
||||||
onUnblockDomain: PropTypes.func.isRequired,
|
|
||||||
onEndorseToggle: PropTypes.func.isRequired,
|
|
||||||
onAddToList: PropTypes.func.isRequired,
|
|
||||||
onEditAccountNote: PropTypes.func.isRequired,
|
|
||||||
onChangeLanguages: PropTypes.func.isRequired,
|
|
||||||
onInteractionModal: PropTypes.func.isRequired,
|
|
||||||
onOpenAvatar: PropTypes.func.isRequired,
|
|
||||||
onOpenURL: PropTypes.func.isRequired,
|
|
||||||
intl: PropTypes.object.isRequired,
|
|
||||||
domain: PropTypes.string.isRequired,
|
|
||||||
hidden: PropTypes.bool,
|
|
||||||
...WithRouterPropTypes,
|
|
||||||
};
|
|
||||||
|
|
||||||
setRef = c => {
|
|
||||||
this.node = c;
|
|
||||||
};
|
|
||||||
|
|
||||||
openEditProfile = () => {
|
|
||||||
window.open('/settings/profile', '_blank');
|
|
||||||
};
|
|
||||||
|
|
||||||
isStatusesPageActive = (match, location) => {
|
|
||||||
if (!match) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return !location.pathname.match(/\/(followers|following)\/?$/);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMouseEnter = ({ currentTarget }) => {
|
|
||||||
if (autoPlayGif) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const emojis = currentTarget.querySelectorAll('.custom-emoji');
|
|
||||||
|
|
||||||
for (var i = 0; i < emojis.length; i++) {
|
|
||||||
let emoji = emojis[i];
|
|
||||||
emoji.src = emoji.getAttribute('data-original');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMouseLeave = ({ currentTarget }) => {
|
|
||||||
if (autoPlayGif) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const emojis = currentTarget.querySelectorAll('.custom-emoji');
|
|
||||||
|
|
||||||
for (var i = 0; i < emojis.length; i++) {
|
|
||||||
let emoji = emojis[i];
|
|
||||||
emoji.src = emoji.getAttribute('data-static');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleAvatarClick = e => {
|
|
||||||
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
|
|
||||||
e.preventDefault();
|
|
||||||
this.props.onOpenAvatar();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleShare = () => {
|
|
||||||
const { account } = this.props;
|
|
||||||
|
|
||||||
navigator.share({
|
|
||||||
url: account.get('url'),
|
|
||||||
}).catch((e) => {
|
|
||||||
if (e.name !== 'AbortError') console.error(e);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
handleHashtagClick = e => {
|
|
||||||
const { history } = this.props;
|
|
||||||
const value = e.currentTarget.textContent.replace(/^#/, '');
|
|
||||||
|
|
||||||
if (history && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
|
|
||||||
e.preventDefault();
|
|
||||||
history.push(`/tags/${value}`);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMentionClick = e => {
|
|
||||||
const { history, onOpenURL } = this.props;
|
|
||||||
|
|
||||||
if (history && e.button === 0 && !(e.ctrlKey || e.metaKey)) {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
const link = e.currentTarget;
|
|
||||||
|
|
||||||
onOpenURL(link.href).then((result) => {
|
|
||||||
if (isFulfilled(result)) {
|
|
||||||
if (result.payload.accounts[0]) {
|
|
||||||
history.push(`/@${result.payload.accounts[0].acct}`);
|
|
||||||
} else if (result.payload.statuses[0]) {
|
|
||||||
history.push(`/@${result.payload.statuses[0].account.acct}/${result.payload.statuses[0].id}`);
|
|
||||||
} else {
|
|
||||||
window.location = link.href;
|
|
||||||
}
|
|
||||||
} else if (isRejected(result)) {
|
|
||||||
window.location = link.href;
|
|
||||||
}
|
|
||||||
}).catch(() => {
|
|
||||||
// Nothing
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
_attachLinkEvents () {
|
|
||||||
const node = this.node;
|
|
||||||
|
|
||||||
if (!node) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const links = node.querySelectorAll('a');
|
|
||||||
|
|
||||||
let link;
|
|
||||||
|
|
||||||
for (var i = 0; i < links.length; ++i) {
|
|
||||||
link = links[i];
|
|
||||||
|
|
||||||
if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
|
||||||
link.addEventListener('click', this.handleHashtagClick, false);
|
|
||||||
} else if (link.classList.contains('mention')) {
|
|
||||||
link.addEventListener('click', this.handleMentionClick, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
componentDidMount () {
|
|
||||||
this._attachLinkEvents();
|
|
||||||
}
|
|
||||||
|
|
||||||
componentDidUpdate () {
|
|
||||||
this._attachLinkEvents();
|
|
||||||
}
|
|
||||||
|
|
||||||
render () {
|
|
||||||
const { account, hidden, intl } = this.props;
|
|
||||||
const { signedIn, permissions } = this.props.identity;
|
|
||||||
|
|
||||||
if (!account) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const suspended = account.get('suspended');
|
|
||||||
const isRemote = account.get('acct') !== account.get('username');
|
|
||||||
const remoteDomain = isRemote ? account.get('acct').split('@')[1] : null;
|
|
||||||
|
|
||||||
let actionBtn, bellBtn, lockedIcon, shareBtn;
|
|
||||||
|
|
||||||
let info = [];
|
|
||||||
let menu = [];
|
|
||||||
|
|
||||||
if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) {
|
|
||||||
info.push(<span key='blocked' className='relationship-tag'><FormattedMessage id='account.blocked' defaultMessage='Blocked' /></span>);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (me !== account.get('id') && account.getIn(['relationship', 'muting'])) {
|
|
||||||
info.push(<span key='muted' className='relationship-tag'><FormattedMessage id='account.muted' defaultMessage='Muted' /></span>);
|
|
||||||
} else if (me !== account.get('id') && account.getIn(['relationship', 'domain_blocking'])) {
|
|
||||||
info.push(<span key='domain_blocked' className='relationship-tag'><FormattedMessage id='account.domain_blocked' defaultMessage='Domain blocked' /></span>);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.getIn(['relationship', 'requested']) || account.getIn(['relationship', 'following'])) {
|
|
||||||
bellBtn = <IconButton icon={account.getIn(['relationship', 'notifying']) ? 'bell' : 'bell-o'} iconComponent={account.getIn(['relationship', 'notifying']) ? NotificationsActiveIcon : NotificationsIcon} active={account.getIn(['relationship', 'notifying'])} title={intl.formatMessage(account.getIn(['relationship', 'notifying']) ? messages.disableNotifications : messages.enableNotifications, { name: account.get('username') })} onClick={this.props.onNotifyToggle} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('share' in navigator) {
|
|
||||||
shareBtn = <IconButton className='optional' iconComponent={ShareIcon} title={intl.formatMessage(messages.share, { name: account.get('username') })} onClick={this.handleShare} />;
|
|
||||||
} else {
|
|
||||||
shareBtn = <CopyIconButton className='optional' title={intl.formatMessage(messages.copy)} value={account.get('url')} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (me !== account.get('id')) {
|
|
||||||
if (signedIn && !account.get('relationship')) { // Wait until the relationship is loaded
|
|
||||||
actionBtn = <Button disabled><LoadingIndicator /></Button>;
|
|
||||||
} else if (!account.getIn(['relationship', 'blocking'])) {
|
|
||||||
actionBtn = <Button disabled={account.getIn(['relationship', 'blocked_by'])} className={classNames({ 'button--destructive': (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) })} text={intl.formatMessage(messageForFollowButton(account.get('relationship')))} onClick={signedIn ? this.props.onFollow : this.props.onInteractionModal} />;
|
|
||||||
} else if (account.getIn(['relationship', 'blocking'])) {
|
|
||||||
actionBtn = <Button text={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.props.onBlock} />;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
actionBtn = <Button text={intl.formatMessage(messages.edit_profile)} onClick={this.openEditProfile} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.get('moved') && !account.getIn(['relationship', 'following'])) {
|
|
||||||
actionBtn = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.get('locked')) {
|
|
||||||
lockedIcon = <Icon id='lock' icon={LockIcon} title={intl.formatMessage(messages.account_locked)} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (signedIn && account.get('id') !== me && !account.get('suspended')) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.props.onMention });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.props.onDirect });
|
|
||||||
menu.push(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isRemote) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: account.get('url') });
|
|
||||||
menu.push(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.get('id') === me) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.edit_profile), href: '/settings/profile' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.pins), to: '/pinned' });
|
|
||||||
menu.push(null);
|
|
||||||
menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.favourites), to: '/favourites' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.followed_tags), to: '/followed_tags' });
|
|
||||||
menu.push(null);
|
|
||||||
menu.push({ text: intl.formatMessage(messages.mutes), to: '/mutes' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.blocks), to: '/blocks' });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.domain_blocks), to: '/domain_blocks' });
|
|
||||||
} else if (signedIn) {
|
|
||||||
if (account.getIn(['relationship', 'following'])) {
|
|
||||||
if (!account.getIn(['relationship', 'muting'])) {
|
|
||||||
if (account.getIn(['relationship', 'showing_reblogs'])) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
|
|
||||||
} else {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.push({ text: intl.formatMessage(messages.languages), action: this.props.onChangeLanguages });
|
|
||||||
menu.push(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
|
|
||||||
menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
|
|
||||||
menu.push(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.getIn(['relationship', 'muting'])) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.unmute, { name: account.get('username') }), action: this.props.onMute });
|
|
||||||
} else {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.mute, { name: account.get('username') }), action: this.props.onMute, dangerous: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (account.getIn(['relationship', 'blocking'])) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.unblock, { name: account.get('username') }), action: this.props.onBlock });
|
|
||||||
} else {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.block, { name: account.get('username') }), action: this.props.onBlock, dangerous: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!account.get('suspended')) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.report, { name: account.get('username') }), action: this.props.onReport, dangerous: true });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (signedIn && isRemote) {
|
|
||||||
menu.push(null);
|
|
||||||
|
|
||||||
if (account.getIn(['relationship', 'domain_blocking'])) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain: remoteDomain }), action: this.props.onUnblockDomain });
|
|
||||||
} else {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.blockDomain, { domain: remoteDomain }), action: this.props.onBlockDomain, dangerous: true });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((account.get('id') !== me && (permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) || (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION)) {
|
|
||||||
menu.push(null);
|
|
||||||
if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${account.get('id')}` });
|
|
||||||
}
|
|
||||||
if (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION) {
|
|
||||||
menu.push({ text: intl.formatMessage(messages.admin_domain, { domain: remoteDomain }), href: `/admin/instances/${remoteDomain}` });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const content = { __html: account.get('note_emojified') };
|
|
||||||
const displayNameHtml = { __html: account.get('display_name_html') };
|
|
||||||
const fields = account.get('fields');
|
|
||||||
const isLocal = account.get('acct').indexOf('@') === -1;
|
|
||||||
const username = account.get('acct').split('@')[0];
|
|
||||||
const domain = isLocal ? localDomain : account.get('acct').split('@')[1];
|
|
||||||
const isIndexable = !account.get('noindex');
|
|
||||||
|
|
||||||
const badges = [];
|
|
||||||
|
|
||||||
if (account.get('bot')) {
|
|
||||||
badges.push(<AutomatedBadge key='bot-badge' />);
|
|
||||||
} else if (account.get('group')) {
|
|
||||||
badges.push(<GroupBadge key='group-badge' />);
|
|
||||||
}
|
|
||||||
|
|
||||||
account.get('roles', []).forEach((role) => {
|
|
||||||
badges.push(<Badge key={`role-badge-${role.get('id')}`} label={<span>{role.get('name')}</span>} domain={domain} roleId={role.get('id')} />);
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className={classNames('account__header', { inactive: !!account.get('moved') })} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
|
|
||||||
{!(suspended || hidden || account.get('moved')) && account.getIn(['relationship', 'requested_by']) && <FollowRequestNoteContainer account={account} />}
|
|
||||||
|
|
||||||
<div className='account__header__image'>
|
|
||||||
<div className='account__header__info'>
|
|
||||||
{info}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{!(suspended || hidden) && <img src={autoPlayGif ? account.get('header') : account.get('header_static')} alt='' className='parallax' />}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='account__header__bar'>
|
|
||||||
<div className='account__header__tabs'>
|
|
||||||
<a className='avatar' href={account.get('avatar')} rel='noopener' target='_blank' onClick={this.handleAvatarClick}>
|
|
||||||
<Avatar account={suspended || hidden ? undefined : account} size={90} />
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<div className='account__header__tabs__buttons'>
|
|
||||||
{!hidden && bellBtn}
|
|
||||||
{!hidden && shareBtn}
|
|
||||||
<DropdownMenuContainer disabled={menu.length === 0} items={menu} icon='ellipsis-v' iconComponent={MoreHorizIcon} size={24} direction='right' />
|
|
||||||
{!hidden && actionBtn}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='account__header__tabs__name'>
|
|
||||||
<h1>
|
|
||||||
<span dangerouslySetInnerHTML={displayNameHtml} />
|
|
||||||
<small>
|
|
||||||
<span>@{username}<span className='invisible'>@{domain}</span></span>
|
|
||||||
<DomainPill username={username} domain={domain} isSelf={me === account.get('id')} />
|
|
||||||
{lockedIcon}
|
|
||||||
</small>
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{badges.length > 0 && (
|
|
||||||
<div className='account__header__badges'>
|
|
||||||
{badges}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{!(suspended || hidden) && (
|
|
||||||
<div className='account__header__extra'>
|
|
||||||
<div className='account__header__bio' ref={this.setRef}>
|
|
||||||
{(account.get('id') !== me && signedIn) && <AccountNoteContainer account={account} />}
|
|
||||||
|
|
||||||
{account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content translate' dangerouslySetInnerHTML={content} />}
|
|
||||||
|
|
||||||
<div className='account__header__fields'>
|
|
||||||
<dl>
|
|
||||||
<dt><FormattedMessage id='account.joined_short' defaultMessage='Joined' /></dt>
|
|
||||||
<dd>{intl.formatDate(account.get('created_at'), { year: 'numeric', month: 'short', day: '2-digit' })}</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
{fields.map((pair, i) => (
|
|
||||||
<dl key={i} className={classNames({ verified: pair.get('verified_at') })}>
|
|
||||||
<dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' />
|
|
||||||
|
|
||||||
<dd className='translate' title={pair.get('value_plain')}>
|
|
||||||
{pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' icon={CheckIcon} className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='account__header__extra__links'>
|
|
||||||
<NavLink isActive={this.isStatusesPageActive} activeClassName='active' to={`/@${account.get('acct')}`} title={intl.formatNumber(account.get('statuses_count'))}>
|
|
||||||
<ShortNumber
|
|
||||||
value={account.get('statuses_count')}
|
|
||||||
renderer={StatusesCounter}
|
|
||||||
/>
|
|
||||||
</NavLink>
|
|
||||||
|
|
||||||
<NavLink exact activeClassName='active' to={`/@${account.get('acct')}/following`} title={intl.formatNumber(account.get('following_count'))}>
|
|
||||||
<ShortNumber
|
|
||||||
value={account.get('following_count')}
|
|
||||||
renderer={FollowingCounter}
|
|
||||||
/>
|
|
||||||
</NavLink>
|
|
||||||
|
|
||||||
<NavLink exact activeClassName='active' to={`/@${account.get('acct')}/followers`} title={intl.formatNumber(account.get('followers_count'))}>
|
|
||||||
<ShortNumber
|
|
||||||
value={account.get('followers_count')}
|
|
||||||
renderer={FollowersCounter}
|
|
||||||
/>
|
|
||||||
</NavLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<Helmet>
|
|
||||||
<title>{titleFromAccount(account)}</title>
|
|
||||||
<meta name='robots' content={(isLocal && isIndexable) ? 'all' : 'noindex'} />
|
|
||||||
<link rel='canonical' href={account.get('url')} />
|
|
||||||
</Helmet>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export default withRouter(withIdentity(injectIntl(Header)));
|
|
@ -17,7 +17,7 @@ import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
|||||||
import { getAccountGallery } from 'mastodon/selectors';
|
import { getAccountGallery } from 'mastodon/selectors';
|
||||||
|
|
||||||
import { expandAccountMediaTimeline } from '../../actions/timelines';
|
import { expandAccountMediaTimeline } from '../../actions/timelines';
|
||||||
import HeaderContainer from '../account_timeline/containers/header_container';
|
import { AccountHeader } from '../account_timeline/components/account_header';
|
||||||
import Column from '../ui/components/column';
|
import Column from '../ui/components/column';
|
||||||
|
|
||||||
import { MediaItem } from './components/media_item';
|
import { MediaItem } from './components/media_item';
|
||||||
@ -207,7 +207,7 @@ class AccountGallery extends ImmutablePureComponent {
|
|||||||
|
|
||||||
<ScrollContainer scrollKey='account_gallery'>
|
<ScrollContainer scrollKey='account_gallery'>
|
||||||
<div className='scrollable scrollable--flex' onScroll={this.handleScroll}>
|
<div className='scrollable scrollable--flex' onScroll={this.handleScroll}>
|
||||||
<HeaderContainer accountId={this.props.accountId} />
|
<AccountHeader accountId={this.props.accountId} />
|
||||||
|
|
||||||
{(suspended || blockedBy) ? (
|
{(suspended || blockedBy) ? (
|
||||||
<div className='empty-column-indicator'>
|
<div className='empty-column-indicator'>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,155 +0,0 @@
|
|||||||
import PropTypes from 'prop-types';
|
|
||||||
|
|
||||||
import { FormattedMessage } from 'react-intl';
|
|
||||||
|
|
||||||
import { NavLink } from 'react-router-dom';
|
|
||||||
|
|
||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
|
||||||
|
|
||||||
import InnerHeader from '../../account/components/header';
|
|
||||||
|
|
||||||
import MemorialNote from './memorial_note';
|
|
||||||
import MovedNote from './moved_note';
|
|
||||||
|
|
||||||
class Header extends ImmutablePureComponent {
|
|
||||||
|
|
||||||
static propTypes = {
|
|
||||||
account: ImmutablePropTypes.record,
|
|
||||||
onFollow: PropTypes.func.isRequired,
|
|
||||||
onBlock: PropTypes.func.isRequired,
|
|
||||||
onMention: PropTypes.func.isRequired,
|
|
||||||
onDirect: PropTypes.func.isRequired,
|
|
||||||
onReblogToggle: PropTypes.func.isRequired,
|
|
||||||
onReport: PropTypes.func.isRequired,
|
|
||||||
onMute: PropTypes.func.isRequired,
|
|
||||||
onBlockDomain: PropTypes.func.isRequired,
|
|
||||||
onUnblockDomain: PropTypes.func.isRequired,
|
|
||||||
onEndorseToggle: PropTypes.func.isRequired,
|
|
||||||
onAddToList: PropTypes.func.isRequired,
|
|
||||||
onChangeLanguages: PropTypes.func.isRequired,
|
|
||||||
onInteractionModal: PropTypes.func.isRequired,
|
|
||||||
onOpenAvatar: PropTypes.func.isRequired,
|
|
||||||
onOpenURL: PropTypes.func.isRequired,
|
|
||||||
hideTabs: PropTypes.bool,
|
|
||||||
domain: PropTypes.string.isRequired,
|
|
||||||
hidden: PropTypes.bool,
|
|
||||||
};
|
|
||||||
|
|
||||||
handleFollow = () => {
|
|
||||||
this.props.onFollow(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleBlock = () => {
|
|
||||||
this.props.onBlock(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMention = () => {
|
|
||||||
this.props.onMention(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleDirect = () => {
|
|
||||||
this.props.onDirect(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleReport = () => {
|
|
||||||
this.props.onReport(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleReblogToggle = () => {
|
|
||||||
this.props.onReblogToggle(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleNotifyToggle = () => {
|
|
||||||
this.props.onNotifyToggle(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleMute = () => {
|
|
||||||
this.props.onMute(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleBlockDomain = () => {
|
|
||||||
this.props.onBlockDomain(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleUnblockDomain = () => {
|
|
||||||
const domain = this.props.account.get('acct').split('@')[1];
|
|
||||||
|
|
||||||
if (!domain) return;
|
|
||||||
|
|
||||||
this.props.onUnblockDomain(domain);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleEndorseToggle = () => {
|
|
||||||
this.props.onEndorseToggle(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleAddToList = () => {
|
|
||||||
this.props.onAddToList(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleEditAccountNote = () => {
|
|
||||||
this.props.onEditAccountNote(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleChangeLanguages = () => {
|
|
||||||
this.props.onChangeLanguages(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleInteractionModal = () => {
|
|
||||||
this.props.onInteractionModal(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
handleOpenAvatar = () => {
|
|
||||||
this.props.onOpenAvatar(this.props.account);
|
|
||||||
};
|
|
||||||
|
|
||||||
render () {
|
|
||||||
const { account, hidden, hideTabs } = this.props;
|
|
||||||
|
|
||||||
if (account === null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className='account-timeline__header'>
|
|
||||||
{(!hidden && account.get('memorial')) && <MemorialNote />}
|
|
||||||
{(!hidden && account.get('moved')) && <MovedNote from={account} to={account.get('moved')} />}
|
|
||||||
|
|
||||||
<InnerHeader
|
|
||||||
account={account}
|
|
||||||
onFollow={this.handleFollow}
|
|
||||||
onBlock={this.handleBlock}
|
|
||||||
onMention={this.handleMention}
|
|
||||||
onDirect={this.handleDirect}
|
|
||||||
onReblogToggle={this.handleReblogToggle}
|
|
||||||
onNotifyToggle={this.handleNotifyToggle}
|
|
||||||
onReport={this.handleReport}
|
|
||||||
onMute={this.handleMute}
|
|
||||||
onBlockDomain={this.handleBlockDomain}
|
|
||||||
onUnblockDomain={this.handleUnblockDomain}
|
|
||||||
onEndorseToggle={this.handleEndorseToggle}
|
|
||||||
onAddToList={this.handleAddToList}
|
|
||||||
onEditAccountNote={this.handleEditAccountNote}
|
|
||||||
onChangeLanguages={this.handleChangeLanguages}
|
|
||||||
onInteractionModal={this.handleInteractionModal}
|
|
||||||
onOpenAvatar={this.handleOpenAvatar}
|
|
||||||
onOpenURL={this.props.onOpenURL}
|
|
||||||
domain={this.props.domain}
|
|
||||||
hidden={hidden}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{!(hideTabs || hidden) && (
|
|
||||||
<div className='account__section-headline'>
|
|
||||||
<NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Posts' /></NavLink>
|
|
||||||
<NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Posts and replies' /></NavLink>
|
|
||||||
<NavLink exact to={`/@${account.get('acct')}/media`}><FormattedMessage id='account.media' defaultMessage='Media' /></NavLink>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Header;
|
|
@ -1,153 +0,0 @@
|
|||||||
import { injectIntl } from 'react-intl';
|
|
||||||
|
|
||||||
import { connect } from 'react-redux';
|
|
||||||
|
|
||||||
import { openURL } from 'mastodon/actions/search';
|
|
||||||
|
|
||||||
import {
|
|
||||||
followAccount,
|
|
||||||
unblockAccount,
|
|
||||||
unmuteAccount,
|
|
||||||
pinAccount,
|
|
||||||
unpinAccount,
|
|
||||||
} from '../../../actions/accounts';
|
|
||||||
import { initBlockModal } from '../../../actions/blocks';
|
|
||||||
import {
|
|
||||||
mentionCompose,
|
|
||||||
directCompose,
|
|
||||||
} from '../../../actions/compose';
|
|
||||||
import { initDomainBlockModal, unblockDomain } from '../../../actions/domain_blocks';
|
|
||||||
import { openModal } from '../../../actions/modal';
|
|
||||||
import { initMuteModal } from '../../../actions/mutes';
|
|
||||||
import { initReport } from '../../../actions/reports';
|
|
||||||
import { makeGetAccount, getAccountHidden } from '../../../selectors';
|
|
||||||
import Header from '../components/header';
|
|
||||||
|
|
||||||
const makeMapStateToProps = () => {
|
|
||||||
const getAccount = makeGetAccount();
|
|
||||||
|
|
||||||
const mapStateToProps = (state, { accountId }) => ({
|
|
||||||
account: getAccount(state, accountId),
|
|
||||||
domain: state.getIn(['meta', 'domain']),
|
|
||||||
hidden: getAccountHidden(state, accountId),
|
|
||||||
});
|
|
||||||
|
|
||||||
return mapStateToProps;
|
|
||||||
};
|
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
|
||||||
|
|
||||||
onFollow (account) {
|
|
||||||
if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) {
|
|
||||||
dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }));
|
|
||||||
} else {
|
|
||||||
dispatch(followAccount(account.get('id')));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onInteractionModal (account) {
|
|
||||||
dispatch(openModal({
|
|
||||||
modalType: 'INTERACTION',
|
|
||||||
modalProps: {
|
|
||||||
type: 'follow',
|
|
||||||
accountId: account.get('id'),
|
|
||||||
url: account.get('uri'),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
},
|
|
||||||
|
|
||||||
onBlock (account) {
|
|
||||||
if (account.getIn(['relationship', 'blocking'])) {
|
|
||||||
dispatch(unblockAccount(account.get('id')));
|
|
||||||
} else {
|
|
||||||
dispatch(initBlockModal(account));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onMention (account) {
|
|
||||||
dispatch(mentionCompose(account));
|
|
||||||
},
|
|
||||||
|
|
||||||
onDirect (account) {
|
|
||||||
dispatch(directCompose(account));
|
|
||||||
},
|
|
||||||
|
|
||||||
onReblogToggle (account) {
|
|
||||||
if (account.getIn(['relationship', 'showing_reblogs'])) {
|
|
||||||
dispatch(followAccount(account.get('id'), { reblogs: false }));
|
|
||||||
} else {
|
|
||||||
dispatch(followAccount(account.get('id'), { reblogs: true }));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onEndorseToggle (account) {
|
|
||||||
if (account.getIn(['relationship', 'endorsed'])) {
|
|
||||||
dispatch(unpinAccount(account.get('id')));
|
|
||||||
} else {
|
|
||||||
dispatch(pinAccount(account.get('id')));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onNotifyToggle (account) {
|
|
||||||
if (account.getIn(['relationship', 'notifying'])) {
|
|
||||||
dispatch(followAccount(account.get('id'), { notify: false }));
|
|
||||||
} else {
|
|
||||||
dispatch(followAccount(account.get('id'), { notify: true }));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onReport (account) {
|
|
||||||
dispatch(initReport(account));
|
|
||||||
},
|
|
||||||
|
|
||||||
onMute (account) {
|
|
||||||
if (account.getIn(['relationship', 'muting'])) {
|
|
||||||
dispatch(unmuteAccount(account.get('id')));
|
|
||||||
} else {
|
|
||||||
dispatch(initMuteModal(account));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onBlockDomain (account) {
|
|
||||||
dispatch(initDomainBlockModal(account));
|
|
||||||
},
|
|
||||||
|
|
||||||
onUnblockDomain (domain) {
|
|
||||||
dispatch(unblockDomain(domain));
|
|
||||||
},
|
|
||||||
|
|
||||||
onAddToList (account) {
|
|
||||||
dispatch(openModal({
|
|
||||||
modalType: 'LIST_ADDER',
|
|
||||||
modalProps: {
|
|
||||||
accountId: account.get('id'),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
},
|
|
||||||
|
|
||||||
onChangeLanguages (account) {
|
|
||||||
dispatch(openModal({
|
|
||||||
modalType: 'SUBSCRIBED_LANGUAGES',
|
|
||||||
modalProps: {
|
|
||||||
accountId: account.get('id'),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
},
|
|
||||||
|
|
||||||
onOpenAvatar (account) {
|
|
||||||
dispatch(openModal({
|
|
||||||
modalType: 'IMAGE',
|
|
||||||
modalProps: {
|
|
||||||
src: account.get('avatar'),
|
|
||||||
alt: '',
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
},
|
|
||||||
|
|
||||||
onOpenURL (url) {
|
|
||||||
return dispatch(openURL({ url }));
|
|
||||||
},
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));
|
|
@ -11,7 +11,7 @@ import { TimelineHint } from 'mastodon/components/timeline_hint';
|
|||||||
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
||||||
import { me } from 'mastodon/initial_state';
|
import { me } from 'mastodon/initial_state';
|
||||||
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
||||||
import { getAccountHidden } from 'mastodon/selectors';
|
import { getAccountHidden } from 'mastodon/selectors/accounts';
|
||||||
import { useAppSelector } from 'mastodon/store';
|
import { useAppSelector } from 'mastodon/store';
|
||||||
|
|
||||||
import { lookupAccount, fetchAccount } from '../../actions/accounts';
|
import { lookupAccount, fetchAccount } from '../../actions/accounts';
|
||||||
@ -22,8 +22,8 @@ import { LoadingIndicator } from '../../components/loading_indicator';
|
|||||||
import StatusList from '../../components/status_list';
|
import StatusList from '../../components/status_list';
|
||||||
import Column from '../ui/components/column';
|
import Column from '../ui/components/column';
|
||||||
|
|
||||||
|
import { AccountHeader } from './components/account_header';
|
||||||
import { LimitedAccountHint } from './components/limited_account_hint';
|
import { LimitedAccountHint } from './components/limited_account_hint';
|
||||||
import HeaderContainer from './containers/header_container';
|
|
||||||
|
|
||||||
const emptyList = ImmutableList();
|
const emptyList = ImmutableList();
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
|||||||
<ColumnBackButton />
|
<ColumnBackButton />
|
||||||
|
|
||||||
<StatusList
|
<StatusList
|
||||||
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs={forceEmptyState} tagged={this.props.params.tagged} />}
|
prepend={<AccountHeader accountId={this.props.accountId} hideTabs={forceEmptyState} tagged={this.props.params.tagged} />}
|
||||||
alwaysPrepend
|
alwaysPrepend
|
||||||
append={remoteMessage}
|
append={remoteMessage}
|
||||||
scrollKey='account_timeline'
|
scrollKey='account_timeline'
|
||||||
|
@ -10,9 +10,10 @@ import { debounce } from 'lodash';
|
|||||||
|
|
||||||
import { Account } from 'mastodon/components/account';
|
import { Account } from 'mastodon/components/account';
|
||||||
import { TimelineHint } from 'mastodon/components/timeline_hint';
|
import { TimelineHint } from 'mastodon/components/timeline_hint';
|
||||||
|
import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header';
|
||||||
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
||||||
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
||||||
import { getAccountHidden } from 'mastodon/selectors';
|
import { getAccountHidden } from 'mastodon/selectors/accounts';
|
||||||
import { useAppSelector } from 'mastodon/store';
|
import { useAppSelector } from 'mastodon/store';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -25,7 +26,6 @@ import { ColumnBackButton } from '../../components/column_back_button';
|
|||||||
import { LoadingIndicator } from '../../components/loading_indicator';
|
import { LoadingIndicator } from '../../components/loading_indicator';
|
||||||
import ScrollableList from '../../components/scrollable_list';
|
import ScrollableList from '../../components/scrollable_list';
|
||||||
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
|
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
|
||||||
import HeaderContainer from '../account_timeline/containers/header_container';
|
|
||||||
import Column from '../ui/components/column';
|
import Column from '../ui/components/column';
|
||||||
|
|
||||||
const mapStateToProps = (state, { params: { acct, id } }) => {
|
const mapStateToProps = (state, { params: { acct, id } }) => {
|
||||||
@ -168,7 +168,7 @@ class Followers extends ImmutablePureComponent {
|
|||||||
hasMore={!forceEmptyState && hasMore}
|
hasMore={!forceEmptyState && hasMore}
|
||||||
isLoading={isLoading}
|
isLoading={isLoading}
|
||||||
onLoadMore={this.handleLoadMore}
|
onLoadMore={this.handleLoadMore}
|
||||||
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs />}
|
prepend={<AccountHeader accountId={this.props.accountId} hideTabs />}
|
||||||
alwaysPrepend
|
alwaysPrepend
|
||||||
append={remoteMessage}
|
append={remoteMessage}
|
||||||
emptyMessage={emptyMessage}
|
emptyMessage={emptyMessage}
|
||||||
|
@ -10,9 +10,10 @@ import { debounce } from 'lodash';
|
|||||||
|
|
||||||
import { Account } from 'mastodon/components/account';
|
import { Account } from 'mastodon/components/account';
|
||||||
import { TimelineHint } from 'mastodon/components/timeline_hint';
|
import { TimelineHint } from 'mastodon/components/timeline_hint';
|
||||||
|
import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header';
|
||||||
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
|
||||||
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
|
||||||
import { getAccountHidden } from 'mastodon/selectors';
|
import { getAccountHidden } from 'mastodon/selectors/accounts';
|
||||||
import { useAppSelector } from 'mastodon/store';
|
import { useAppSelector } from 'mastodon/store';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -25,7 +26,6 @@ import { ColumnBackButton } from '../../components/column_back_button';
|
|||||||
import { LoadingIndicator } from '../../components/loading_indicator';
|
import { LoadingIndicator } from '../../components/loading_indicator';
|
||||||
import ScrollableList from '../../components/scrollable_list';
|
import ScrollableList from '../../components/scrollable_list';
|
||||||
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
|
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
|
||||||
import HeaderContainer from '../account_timeline/containers/header_container';
|
|
||||||
import Column from '../ui/components/column';
|
import Column from '../ui/components/column';
|
||||||
|
|
||||||
const mapStateToProps = (state, { params: { acct, id } }) => {
|
const mapStateToProps = (state, { params: { acct, id } }) => {
|
||||||
@ -168,7 +168,7 @@ class Following extends ImmutablePureComponent {
|
|||||||
hasMore={!forceEmptyState && hasMore}
|
hasMore={!forceEmptyState && hasMore}
|
||||||
isLoading={isLoading}
|
isLoading={isLoading}
|
||||||
onLoadMore={this.handleLoadMore}
|
onLoadMore={this.handleLoadMore}
|
||||||
prepend={<HeaderContainer accountId={this.props.accountId} hideTabs />}
|
prepend={<AccountHeader accountId={this.props.accountId} hideTabs />}
|
||||||
alwaysPrepend
|
alwaysPrepend
|
||||||
append={remoteMessage}
|
append={remoteMessage}
|
||||||
emptyMessage={emptyMessage}
|
emptyMessage={emptyMessage}
|
||||||
|
@ -696,6 +696,7 @@
|
|||||||
"poll_button.remove_poll": "Elimina l'enquesta",
|
"poll_button.remove_poll": "Elimina l'enquesta",
|
||||||
"privacy.change": "Canvia la privacitat del tut",
|
"privacy.change": "Canvia la privacitat del tut",
|
||||||
"privacy.direct.long": "Tothom mencionat a la publicació",
|
"privacy.direct.long": "Tothom mencionat a la publicació",
|
||||||
|
"privacy.direct.short": "Menció privada",
|
||||||
"privacy.private.long": "Només els vostres seguidors",
|
"privacy.private.long": "Només els vostres seguidors",
|
||||||
"privacy.private.short": "Seguidors",
|
"privacy.private.short": "Seguidors",
|
||||||
"privacy.public.long": "Tothom dins o fora Mastodon",
|
"privacy.public.long": "Tothom dins o fora Mastodon",
|
||||||
|
@ -192,7 +192,7 @@
|
|||||||
"compose_form.poll.switch_to_multiple": "Cambiar la encuesta para permitir múltiples opciones",
|
"compose_form.poll.switch_to_multiple": "Cambiar la encuesta para permitir múltiples opciones",
|
||||||
"compose_form.poll.switch_to_single": "Cambiar la encuesta para permitir una única opción",
|
"compose_form.poll.switch_to_single": "Cambiar la encuesta para permitir una única opción",
|
||||||
"compose_form.poll.type": "Estilo",
|
"compose_form.poll.type": "Estilo",
|
||||||
"compose_form.publish": "Publicación",
|
"compose_form.publish": "Publicar",
|
||||||
"compose_form.publish_form": "Nueva publicación",
|
"compose_form.publish_form": "Nueva publicación",
|
||||||
"compose_form.reply": "Respuesta",
|
"compose_form.reply": "Respuesta",
|
||||||
"compose_form.save_changes": "Actualización",
|
"compose_form.save_changes": "Actualización",
|
||||||
|
@ -697,6 +697,7 @@
|
|||||||
"poll_button.remove_poll": "Bain suirbhé",
|
"poll_button.remove_poll": "Bain suirbhé",
|
||||||
"privacy.change": "Athraigh príobháideacht postála",
|
"privacy.change": "Athraigh príobháideacht postála",
|
||||||
"privacy.direct.long": "Luaigh gach duine sa phost",
|
"privacy.direct.long": "Luaigh gach duine sa phost",
|
||||||
|
"privacy.direct.short": "Tagairt phríobháideach",
|
||||||
"privacy.private.long": "Do leanúna amháin",
|
"privacy.private.long": "Do leanúna amháin",
|
||||||
"privacy.private.short": "Leantóirí",
|
"privacy.private.short": "Leantóirí",
|
||||||
"privacy.public.long": "Duine ar bith ar agus amach Mastodon",
|
"privacy.public.long": "Duine ar bith ar agus amach Mastodon",
|
||||||
|
@ -702,7 +702,7 @@
|
|||||||
"privacy.private.short": "Follower",
|
"privacy.private.short": "Follower",
|
||||||
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
|
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
|
||||||
"privacy.public.short": "Pubblico",
|
"privacy.public.short": "Pubblico",
|
||||||
"privacy.unlisted.additional": "",
|
"privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.",
|
||||||
"privacy.unlisted.long": "Meno fanfare algoritmiche",
|
"privacy.unlisted.long": "Meno fanfare algoritmiche",
|
||||||
"privacy.unlisted.short": "Pubblico silenzioso",
|
"privacy.unlisted.short": "Pubblico silenzioso",
|
||||||
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
|
||||||
|
@ -86,6 +86,12 @@
|
|||||||
"alert.unexpected.message": "Radās negaidīta kļūda.",
|
"alert.unexpected.message": "Radās negaidīta kļūda.",
|
||||||
"alert.unexpected.title": "Ups!",
|
"alert.unexpected.title": "Ups!",
|
||||||
"alt_text_badge.title": "Alt teksts",
|
"alt_text_badge.title": "Alt teksts",
|
||||||
|
"alt_text_modal.add_text_from_image": "Pievienot tekstu no attēla",
|
||||||
|
"alt_text_modal.cancel": "Atcelt",
|
||||||
|
"alt_text_modal.change_thumbnail": "Nomainīt sīktēlu",
|
||||||
|
"alt_text_modal.describe_for_people_with_hearing_impairments": "Aprakstīt šo cilvēkiem ar dzirdes traucējumiem…",
|
||||||
|
"alt_text_modal.describe_for_people_with_visual_impairments": "Aprakstīt šo cilvēkiem ar redzes traucējumiem…",
|
||||||
|
"alt_text_modal.done": "Gatavs",
|
||||||
"announcement.announcement": "Paziņojums",
|
"announcement.announcement": "Paziņojums",
|
||||||
"annual_report.summary.archetype.oracle": "Orākuls",
|
"annual_report.summary.archetype.oracle": "Orākuls",
|
||||||
"annual_report.summary.archetype.replier": "Sabiedriskais tauriņš",
|
"annual_report.summary.archetype.replier": "Sabiedriskais tauriņš",
|
||||||
@ -205,6 +211,7 @@
|
|||||||
"confirmations.logout.confirm": "Iziet",
|
"confirmations.logout.confirm": "Iziet",
|
||||||
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
|
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
|
||||||
"confirmations.logout.title": "Atteikties?",
|
"confirmations.logout.title": "Atteikties?",
|
||||||
|
"confirmations.missing_alt_text.secondary": "Vienalga iesūtīt",
|
||||||
"confirmations.mute.confirm": "Apklusināt",
|
"confirmations.mute.confirm": "Apklusināt",
|
||||||
"confirmations.redraft.confirm": "Dzēst un pārrakstīt",
|
"confirmations.redraft.confirm": "Dzēst un pārrakstīt",
|
||||||
"confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.",
|
"confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.",
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"about.contact": "Hubungi:",
|
"about.contact": "Hubungi:",
|
||||||
"about.disclaimer": "Mastodon ialah perisian sumber terbuka percuma, dan merupakan tanda dagangan Mastodon gGmbH.",
|
"about.disclaimer": "Mastodon ialah perisian sumber terbuka percuma, dan merupakan tanda dagangan Mastodon gGmbH.",
|
||||||
"about.domain_blocks.no_reason_available": "Sebab tidak tersedia",
|
"about.domain_blocks.no_reason_available": "Sebab tidak tersedia",
|
||||||
"about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Berikut ialah pengecualian yang telah dibuat pada pelayan ini secara khususnya.",
|
"about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan pengguna daripada mana-mana pelayan dalam alam bersekutu dan berinteraksi dengan mereka. Berikut ialah pengecualian yang khusus pada pelayan ini.",
|
||||||
"about.domain_blocks.silenced.explanation": "Secara amnya, anda tidak akan melihat profil dan kandungan daripada pelayan ini, kecuali anda mencarinya secara khusus atau ikut serta dengan mengikutinya.",
|
"about.domain_blocks.silenced.explanation": "Secara amnya, anda tidak akan melihat profil dan kandungan daripada pelayan ini, kecuali anda mencarinya secara khusus atau ikut serta dengan mengikutinya.",
|
||||||
"about.domain_blocks.silenced.title": "Terhad",
|
"about.domain_blocks.silenced.title": "Terhad",
|
||||||
"about.domain_blocks.suspended.explanation": "Tiada data daripada pelayan ini yang akan diproses, disimpan atau ditukar, menjadikan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan ini adalah mustahil.",
|
"about.domain_blocks.suspended.explanation": "Tiada data daripada pelayan ini yang akan diproses, disimpan atau ditukar, menjadikan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan ini adalah mustahil.",
|
||||||
@ -19,7 +19,7 @@
|
|||||||
"account.block_domain": "Sekat domain {domain}",
|
"account.block_domain": "Sekat domain {domain}",
|
||||||
"account.block_short": "Malay",
|
"account.block_short": "Malay",
|
||||||
"account.blocked": "Disekat",
|
"account.blocked": "Disekat",
|
||||||
"account.cancel_follow_request": "Menarik balik permintaan mengikut",
|
"account.cancel_follow_request": "Batalkan permintaan ikut",
|
||||||
"account.copy": "Salin pautan ke profil",
|
"account.copy": "Salin pautan ke profil",
|
||||||
"account.direct": "Sebut secara persendirian @{name}",
|
"account.direct": "Sebut secara persendirian @{name}",
|
||||||
"account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
|
"account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
|
||||||
@ -85,10 +85,45 @@
|
|||||||
"alert.rate_limited.title": "Kadar terhad",
|
"alert.rate_limited.title": "Kadar terhad",
|
||||||
"alert.unexpected.message": "Berlaku ralat di luar jangkaan.",
|
"alert.unexpected.message": "Berlaku ralat di luar jangkaan.",
|
||||||
"alert.unexpected.title": "Alamak!",
|
"alert.unexpected.title": "Alamak!",
|
||||||
|
"alt_text_badge.title": "Teks alternatif",
|
||||||
|
"alt_text_modal.add_alt_text": "Tambah teks alternatif",
|
||||||
|
"alt_text_modal.add_text_from_image": "Tambah teks dari imej",
|
||||||
|
"alt_text_modal.cancel": "Batal",
|
||||||
|
"alt_text_modal.change_thumbnail": "Ubah imej kecil",
|
||||||
|
"alt_text_modal.describe_for_people_with_hearing_impairments": "Terangkan untuk OKU pendengaran…vorite\n",
|
||||||
|
"alt_text_modal.describe_for_people_with_visual_impairments": "Terangkan untuk OKU penglihatan…",
|
||||||
|
"alt_text_modal.done": "Selesai",
|
||||||
"announcement.announcement": "Pengumuman",
|
"announcement.announcement": "Pengumuman",
|
||||||
|
"annual_report.summary.archetype.booster": "Si pencapap",
|
||||||
|
"annual_report.summary.archetype.lurker": "Si penghendap",
|
||||||
|
"annual_report.summary.archetype.oracle": "Si penilik",
|
||||||
|
"annual_report.summary.archetype.pollster": "Si peninjau",
|
||||||
|
"annual_report.summary.archetype.replier": "Si peramah",
|
||||||
|
"annual_report.summary.followers.followers": "pengikut",
|
||||||
|
"annual_report.summary.followers.total": "sebanyak {count}",
|
||||||
|
"annual_report.summary.here_it_is": "Ini ulasan {year} anda:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "hantaran paling disukai ramai",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "hantaran paling digalak ramai",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "hantaran paling dibalas ramai",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "oleh",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "aplikasi paling banyak digunakan",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "tanda pagar paling banyak digunakan",
|
||||||
|
"annual_report.summary.most_used_hashtag.none": "Tiada",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "hantaran baharu",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Anda berkedudukan</topLabel><percentage></percentage><bottomLabel> pengguna {domain}.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Rahsia anda selamat bersama kami. ;)",
|
||||||
|
"annual_report.summary.thanks": "Terima kasih kerana setia bersama Mastodon!",
|
||||||
"attachments_list.unprocessed": "(belum diproses)",
|
"attachments_list.unprocessed": "(belum diproses)",
|
||||||
"audio.hide": "Sembunyikan audio",
|
"audio.hide": "Sembunyikan audio",
|
||||||
|
"block_modal.remote_users_caveat": "Kami akan meminta pelayan {domain} untuk menghormati keputusan anda. Bagaimanapun, pematuhan tidak dijamin kerana ada pelayan yang mungkin menangani sekatan dengan cara berbeza. Hantaran awam mungkin masih tampak kepada pengguna yang tidak log masuk.",
|
||||||
|
"block_modal.they_cant_mention": "Dia tidak boleh menyebut tentang anda atau mengikut anda.",
|
||||||
|
"block_modal.they_cant_see_posts": "Dia tidak boleh melihat hantaran anda dan sebaliknya.",
|
||||||
|
"block_modal.they_will_know": "Dia boleh lihat bahawa dia disekat.",
|
||||||
|
"block_modal.title": "Sekat pengguna?",
|
||||||
|
"block_modal.you_wont_see_mentions": "Anda tidak akan melihat hantaran yang menyebut tentangnya.",
|
||||||
"boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain",
|
"boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain",
|
||||||
|
"boost_modal.reblog": "Galakkan hantaran?",
|
||||||
|
"boost_modal.undo_reblog": "Nyahgalakkan hantaran?",
|
||||||
"bundle_column_error.copy_stacktrace": "Salin laporan ralat",
|
"bundle_column_error.copy_stacktrace": "Salin laporan ralat",
|
||||||
"bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
|
"bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
|
||||||
"bundle_column_error.error.title": "Alamak!",
|
"bundle_column_error.error.title": "Alamak!",
|
||||||
@ -99,6 +134,7 @@
|
|||||||
"bundle_column_error.routing.body": "Halaman tersebut tidak dapat ditemui. Adakah anda pasti URL dalam bar alamat adalah betul?",
|
"bundle_column_error.routing.body": "Halaman tersebut tidak dapat ditemui. Adakah anda pasti URL dalam bar alamat adalah betul?",
|
||||||
"bundle_column_error.routing.title": "404",
|
"bundle_column_error.routing.title": "404",
|
||||||
"bundle_modal_error.close": "Tutup",
|
"bundle_modal_error.close": "Tutup",
|
||||||
|
"bundle_modal_error.message": "Terdapat masalah yang dihadapi ketika memuat layar ini.",
|
||||||
"bundle_modal_error.retry": "Cuba lagi",
|
"bundle_modal_error.retry": "Cuba lagi",
|
||||||
"closed_registrations.other_server_instructions": "Oleh sebab Mastodon terpencar, anda boleh mencipta akaun pada pelayan lain dan masih berinteraksi dengan pelayan ini.",
|
"closed_registrations.other_server_instructions": "Oleh sebab Mastodon terpencar, anda boleh mencipta akaun pada pelayan lain dan masih berinteraksi dengan pelayan ini.",
|
||||||
"closed_registrations_modal.description": "Mencipta akaun pada {domain} tidak dapat dibuat sekarang, tetapi sila ingat bahawa anda tidak memerlukan akaun khususnya pada {domain} untuk menggunakan Mastodon.",
|
"closed_registrations_modal.description": "Mencipta akaun pada {domain} tidak dapat dibuat sekarang, tetapi sila ingat bahawa anda tidak memerlukan akaun khususnya pada {domain} untuk menggunakan Mastodon.",
|
||||||
@ -109,13 +145,16 @@
|
|||||||
"column.blocks": "Pengguna yang disekat",
|
"column.blocks": "Pengguna yang disekat",
|
||||||
"column.bookmarks": "Tanda buku",
|
"column.bookmarks": "Tanda buku",
|
||||||
"column.community": "Garis masa tempatan",
|
"column.community": "Garis masa tempatan",
|
||||||
|
"column.create_list": "Cipta senarai",
|
||||||
"column.direct": "Sebutan peribadi",
|
"column.direct": "Sebutan peribadi",
|
||||||
"column.directory": "Layari profil",
|
"column.directory": "Layari profil",
|
||||||
"column.domain_blocks": "Domain disekat",
|
"column.domain_blocks": "Domain disekat",
|
||||||
"column.favourites": "Kegemaran",
|
"column.edit_list": "Sunting senarai",
|
||||||
|
"column.favourites": "Sukaan",
|
||||||
"column.firehose": "Suapan langsung",
|
"column.firehose": "Suapan langsung",
|
||||||
"column.follow_requests": "Permintaan ikutan",
|
"column.follow_requests": "Permintaan ikutan",
|
||||||
"column.home": "Laman Utama",
|
"column.home": "Laman Utama",
|
||||||
|
"column.list_members": "Urus ahli senarai",
|
||||||
"column.lists": "Senarai",
|
"column.lists": "Senarai",
|
||||||
"column.mutes": "Pengguna yang dibisukan",
|
"column.mutes": "Pengguna yang dibisukan",
|
||||||
"column.notifications": "Pemberitahuan",
|
"column.notifications": "Pemberitahuan",
|
||||||
@ -128,6 +167,7 @@
|
|||||||
"column_header.pin": "Sematkan",
|
"column_header.pin": "Sematkan",
|
||||||
"column_header.show_settings": "Tunjukkan tetapan",
|
"column_header.show_settings": "Tunjukkan tetapan",
|
||||||
"column_header.unpin": "Nyahsemat",
|
"column_header.unpin": "Nyahsemat",
|
||||||
|
"column_search.cancel": "Batal",
|
||||||
"column_subheading.settings": "Tetapan",
|
"column_subheading.settings": "Tetapan",
|
||||||
"community.column_settings.local_only": "Tempatan sahaja",
|
"community.column_settings.local_only": "Tempatan sahaja",
|
||||||
"community.column_settings.media_only": "Media sahaja",
|
"community.column_settings.media_only": "Media sahaja",
|
||||||
@ -146,6 +186,7 @@
|
|||||||
"compose_form.poll.duration": "Tempoh undian",
|
"compose_form.poll.duration": "Tempoh undian",
|
||||||
"compose_form.poll.multiple": "Pelbagai pilihan",
|
"compose_form.poll.multiple": "Pelbagai pilihan",
|
||||||
"compose_form.poll.option_placeholder": "Pilihan {number}",
|
"compose_form.poll.option_placeholder": "Pilihan {number}",
|
||||||
|
"compose_form.poll.single": "Satu pilihan",
|
||||||
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
|
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
|
||||||
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
|
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
|
||||||
"compose_form.poll.type": "Gaya",
|
"compose_form.poll.type": "Gaya",
|
||||||
@ -160,17 +201,26 @@
|
|||||||
"confirmations.block.confirm": "Sekat",
|
"confirmations.block.confirm": "Sekat",
|
||||||
"confirmations.delete.confirm": "Padam",
|
"confirmations.delete.confirm": "Padam",
|
||||||
"confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?",
|
"confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?",
|
||||||
|
"confirmations.delete.title": "Padam hantaran?",
|
||||||
"confirmations.delete_list.confirm": "Padam",
|
"confirmations.delete_list.confirm": "Padam",
|
||||||
"confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
|
"confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
|
||||||
|
"confirmations.delete_list.title": "Padam senarai?",
|
||||||
"confirmations.discard_edit_media.confirm": "Singkir",
|
"confirmations.discard_edit_media.confirm": "Singkir",
|
||||||
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
|
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
|
||||||
"confirmations.edit.confirm": "Sunting",
|
"confirmations.edit.confirm": "Sunting",
|
||||||
"confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?",
|
"confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?",
|
||||||
|
"confirmations.edit.title": "Tulis ganti hantaran?",
|
||||||
|
"confirmations.follow_to_list.confirm": "Ikut dan tambah ke senarai",
|
||||||
|
"confirmations.follow_to_list.message": "Anda mesti mengikuti {name} untuk tambahkannya ke senarai.",
|
||||||
|
"confirmations.follow_to_list.title": "Ikut pengguna?",
|
||||||
"confirmations.logout.confirm": "Log keluar",
|
"confirmations.logout.confirm": "Log keluar",
|
||||||
"confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?",
|
"confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?",
|
||||||
|
"confirmations.logout.title": "Log keluar?",
|
||||||
|
"confirmations.missing_alt_text.confirm": "Tambah teks alternatif",
|
||||||
|
"confirmations.missing_alt_text.message": "Hantaran anda mempunyai media tanpa teks alternatif. Kandungan anda akan lebih mudah tercapai jika anda menambah keterangan.",
|
||||||
"confirmations.mute.confirm": "Bisukan",
|
"confirmations.mute.confirm": "Bisukan",
|
||||||
"confirmations.redraft.confirm": "Padam & rangka semula",
|
"confirmations.redraft.confirm": "Padam & rangka semula",
|
||||||
"confirmations.redraft.message": "Adakah anda pasti anda ingin memadam pos ini dan merangkanya semula? Kegemaran dan galakan akan hilang, dan balasan ke pos asal akan menjadi yatim.",
|
"confirmations.redraft.message": "Adakah anda pasti anda ingin memadam hantaran ini dan gubal semula? Sukaan dan galakan akan hilang, dan balasan ke hantaran asal akan menjadi yatim.",
|
||||||
"confirmations.reply.confirm": "Balas",
|
"confirmations.reply.confirm": "Balas",
|
||||||
"confirmations.reply.message": "Membalas sekarang akan menulis ganti mesej yang anda sedang karang. Adakah anda pasti anda ingin teruskan?",
|
"confirmations.reply.message": "Membalas sekarang akan menulis ganti mesej yang anda sedang karang. Adakah anda pasti anda ingin teruskan?",
|
||||||
"confirmations.unfollow.confirm": "Nyahikut",
|
"confirmations.unfollow.confirm": "Nyahikut",
|
||||||
@ -182,7 +232,7 @@
|
|||||||
"copy_icon_button.copied": "Disalin ke papan klip",
|
"copy_icon_button.copied": "Disalin ke papan klip",
|
||||||
"copypaste.copied": "Disalin",
|
"copypaste.copied": "Disalin",
|
||||||
"copypaste.copy_to_clipboard": "Salin ke papan klip",
|
"copypaste.copy_to_clipboard": "Salin ke papan klip",
|
||||||
"directory.federated": "Dari fediverse yang diketahui",
|
"directory.federated": "Dari alam bersekutu yang diketahui",
|
||||||
"directory.local": "Dari {domain} sahaja",
|
"directory.local": "Dari {domain} sahaja",
|
||||||
"directory.new_arrivals": "Ketibaan baharu",
|
"directory.new_arrivals": "Ketibaan baharu",
|
||||||
"directory.recently_active": "Aktif baru-baru ini",
|
"directory.recently_active": "Aktif baru-baru ini",
|
||||||
@ -190,6 +240,7 @@
|
|||||||
"disabled_account_banner.text": "Akaun anda {disabledAccount} telah dinyahaktif.",
|
"disabled_account_banner.text": "Akaun anda {disabledAccount} telah dinyahaktif.",
|
||||||
"dismissable_banner.community_timeline": "Inilah hantaran awam terkini daripada orang yang akaun dihos oleh {domain}.",
|
"dismissable_banner.community_timeline": "Inilah hantaran awam terkini daripada orang yang akaun dihos oleh {domain}.",
|
||||||
"dismissable_banner.dismiss": "Ketepikan",
|
"dismissable_banner.dismiss": "Ketepikan",
|
||||||
|
"dismissable_banner.explore_statuses": "Hantaran-hantaran dari seluruh alam bersekutu ini sedang sohor. Hantaran terbaharu dengan lebih banyak galakan dan sukaan diberi kedudukan lebih tinggi.",
|
||||||
"embed.instructions": "Benam hantaran ini di laman sesawang anda dengan menyalin kod berikut.",
|
"embed.instructions": "Benam hantaran ini di laman sesawang anda dengan menyalin kod berikut.",
|
||||||
"embed.preview": "Begini rupanya nanti:",
|
"embed.preview": "Begini rupanya nanti:",
|
||||||
"emoji_button.activity": "Aktiviti",
|
"emoji_button.activity": "Aktiviti",
|
||||||
@ -217,8 +268,8 @@
|
|||||||
"empty_column.direct": "Anda belum mempunyai sebarang sebutan peribadi lagi. Apabila anda menghantar atau menerima satu, ia akan dipaparkan di sini.",
|
"empty_column.direct": "Anda belum mempunyai sebarang sebutan peribadi lagi. Apabila anda menghantar atau menerima satu, ia akan dipaparkan di sini.",
|
||||||
"empty_column.domain_blocks": "Belum ada domain yang disekat.",
|
"empty_column.domain_blocks": "Belum ada domain yang disekat.",
|
||||||
"empty_column.explore_statuses": "Tiada apa-apa yang sohor kini sekarang. Semaklah kemudian!",
|
"empty_column.explore_statuses": "Tiada apa-apa yang sohor kini sekarang. Semaklah kemudian!",
|
||||||
"empty_column.favourited_statuses": "Anda belum mempunyai sebarang pos kegemaran. Apabila anda kegemaran, ia akan dipaparkan di sini.",
|
"empty_column.favourited_statuses": "Anda belum mempunyai sebarang hantaran sukaan lagi. Hantaran akan muncul di sini apabila disukai oleh anda.",
|
||||||
"empty_column.favourites": "Tiada siapa yang menggemari pos ini lagi. Apabila seseorang melakukannya, mereka akan muncul di sini.",
|
"empty_column.favourites": "Hantaran ini belum disukai mana-mana pengguna lagi. Pengguna yang menyukai akan muncul di sini.",
|
||||||
"empty_column.follow_requests": "Anda belum mempunyai permintaan ikutan. Ia akan terpapar di sini apabila ada nanti.",
|
"empty_column.follow_requests": "Anda belum mempunyai permintaan ikutan. Ia akan terpapar di sini apabila ada nanti.",
|
||||||
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
|
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
|
||||||
"empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.",
|
"empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.",
|
||||||
@ -300,9 +351,10 @@
|
|||||||
"home.pending_critical_update.link": "Lihat pengemaskinian",
|
"home.pending_critical_update.link": "Lihat pengemaskinian",
|
||||||
"home.pending_critical_update.title": "Kemas kini keselamatan kritikal tersedia!",
|
"home.pending_critical_update.title": "Kemas kini keselamatan kritikal tersedia!",
|
||||||
"home.show_announcements": "Tunjukkan pengumuman",
|
"home.show_announcements": "Tunjukkan pengumuman",
|
||||||
|
"interaction_modal.action.favourite": "Untuk sambung, anda perlu suka dari akaun anda.",
|
||||||
"interaction_modal.on_another_server": "Di pelayan lain",
|
"interaction_modal.on_another_server": "Di pelayan lain",
|
||||||
"interaction_modal.on_this_server": "Pada pelayan ini",
|
"interaction_modal.on_this_server": "Pada pelayan ini",
|
||||||
"interaction_modal.title.favourite": "Pos {name} kegemaran",
|
"interaction_modal.title.favourite": "Suka hantaran {name}",
|
||||||
"interaction_modal.title.follow": "Ikuti {name}",
|
"interaction_modal.title.follow": "Ikuti {name}",
|
||||||
"interaction_modal.title.reblog": "Galak hantaran {name}",
|
"interaction_modal.title.reblog": "Galak hantaran {name}",
|
||||||
"interaction_modal.title.reply": "Balas siaran {name}",
|
"interaction_modal.title.reply": "Balas siaran {name}",
|
||||||
@ -318,8 +370,8 @@
|
|||||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||||
"keyboard_shortcuts.down": "to move down in the list",
|
"keyboard_shortcuts.down": "to move down in the list",
|
||||||
"keyboard_shortcuts.enter": "Buka hantaran",
|
"keyboard_shortcuts.enter": "Buka hantaran",
|
||||||
"keyboard_shortcuts.favourite": "Pos kegemaran",
|
"keyboard_shortcuts.favourite": "Suka hantaran",
|
||||||
"keyboard_shortcuts.favourites": "Buka senarai kegemaran",
|
"keyboard_shortcuts.favourites": "Buka senarai sukaan",
|
||||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||||
"keyboard_shortcuts.heading": "Pintasan papan kekunci",
|
"keyboard_shortcuts.heading": "Pintasan papan kekunci",
|
||||||
"keyboard_shortcuts.home": "to open home timeline",
|
"keyboard_shortcuts.home": "to open home timeline",
|
||||||
@ -367,7 +419,7 @@
|
|||||||
"navigation_bar.discover": "Teroka",
|
"navigation_bar.discover": "Teroka",
|
||||||
"navigation_bar.domain_blocks": "Domain disekat",
|
"navigation_bar.domain_blocks": "Domain disekat",
|
||||||
"navigation_bar.explore": "Teroka",
|
"navigation_bar.explore": "Teroka",
|
||||||
"navigation_bar.favourites": "Kegemaran",
|
"navigation_bar.favourites": "Sukaan",
|
||||||
"navigation_bar.filters": "Perkataan yang dibisukan",
|
"navigation_bar.filters": "Perkataan yang dibisukan",
|
||||||
"navigation_bar.follow_requests": "Permintaan ikutan",
|
"navigation_bar.follow_requests": "Permintaan ikutan",
|
||||||
"navigation_bar.followed_tags": "Ikuti hashtag",
|
"navigation_bar.followed_tags": "Ikuti hashtag",
|
||||||
@ -385,11 +437,15 @@
|
|||||||
"not_signed_in_indicator.not_signed_in": "Anda perlu daftar masuk untuk mencapai sumber ini.",
|
"not_signed_in_indicator.not_signed_in": "Anda perlu daftar masuk untuk mencapai sumber ini.",
|
||||||
"notification.admin.report": "{name} melaporkan {target}",
|
"notification.admin.report": "{name} melaporkan {target}",
|
||||||
"notification.admin.sign_up": "{name} mendaftar",
|
"notification.admin.sign_up": "{name} mendaftar",
|
||||||
"notification.favourite": "{name} menggemari pos anda",
|
"notification.favourite": "{name} menyukai hantaran anda",
|
||||||
|
"notification.favourite.name_and_others_with_link": "{name} dan <a>{count, plural, other {# orang lain}}</a> telah suka hantaran anda",
|
||||||
|
"notification.favourite_pm": "{name} menyukai sebutan persendirian anda",
|
||||||
|
"notification.favourite_pm.name_and_others_with_link": "{name} dan <a>{count, plural, other {# orang lain}}</a> telah suka sebutan persendirian anda",
|
||||||
"notification.follow": "{name} mengikuti anda",
|
"notification.follow": "{name} mengikuti anda",
|
||||||
"notification.follow_request": "{name} meminta untuk mengikuti anda",
|
"notification.follow_request": "{name} meminta untuk mengikuti anda",
|
||||||
"notification.own_poll": "Undian anda telah tamat",
|
"notification.own_poll": "Undian anda telah tamat",
|
||||||
"notification.reblog": "{name} menggalak hantaran anda",
|
"notification.reblog": "{name} menggalak hantaran anda",
|
||||||
|
"notification.reblog.name_and_others_with_link": "{name} dan <a>{count, plural, other {# orang lain}}</a> telah galakkan hantaran anda",
|
||||||
"notification.status": "{name} baru sahaja mengirim hantaran",
|
"notification.status": "{name} baru sahaja mengirim hantaran",
|
||||||
"notification.update": "{name} menyunting hantaran",
|
"notification.update": "{name} menyunting hantaran",
|
||||||
"notifications.clear": "Buang pemberitahuan",
|
"notifications.clear": "Buang pemberitahuan",
|
||||||
@ -397,7 +453,7 @@
|
|||||||
"notifications.column_settings.admin.report": "Laporan baru:",
|
"notifications.column_settings.admin.report": "Laporan baru:",
|
||||||
"notifications.column_settings.admin.sign_up": "Pendaftaran baru:",
|
"notifications.column_settings.admin.sign_up": "Pendaftaran baru:",
|
||||||
"notifications.column_settings.alert": "Pemberitahuan atas meja",
|
"notifications.column_settings.alert": "Pemberitahuan atas meja",
|
||||||
"notifications.column_settings.favourite": "Kegemaran:",
|
"notifications.column_settings.favourite": "Sukaan:",
|
||||||
"notifications.column_settings.follow": "Pengikut baharu:",
|
"notifications.column_settings.follow": "Pengikut baharu:",
|
||||||
"notifications.column_settings.follow_request": "Permintaan ikutan baharu:",
|
"notifications.column_settings.follow_request": "Permintaan ikutan baharu:",
|
||||||
"notifications.column_settings.mention": "Sebutan:",
|
"notifications.column_settings.mention": "Sebutan:",
|
||||||
@ -412,7 +468,7 @@
|
|||||||
"notifications.column_settings.update": "Suntingan:",
|
"notifications.column_settings.update": "Suntingan:",
|
||||||
"notifications.filter.all": "Semua",
|
"notifications.filter.all": "Semua",
|
||||||
"notifications.filter.boosts": "Galakan",
|
"notifications.filter.boosts": "Galakan",
|
||||||
"notifications.filter.favourites": "Kegemaran",
|
"notifications.filter.favourites": "Sukaan",
|
||||||
"notifications.filter.follows": "Ikutan",
|
"notifications.filter.follows": "Ikutan",
|
||||||
"notifications.filter.mentions": "Sebutan",
|
"notifications.filter.mentions": "Sebutan",
|
||||||
"notifications.filter.polls": "Keputusan undian",
|
"notifications.filter.polls": "Keputusan undian",
|
||||||
@ -546,7 +602,7 @@
|
|||||||
"status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan",
|
"status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan",
|
||||||
"status.block": "Sekat @{name}",
|
"status.block": "Sekat @{name}",
|
||||||
"status.bookmark": "Tanda buku",
|
"status.bookmark": "Tanda buku",
|
||||||
"status.cancel_reblog_private": "Nyahgalak",
|
"status.cancel_reblog_private": "Nyahgalakkan",
|
||||||
"status.cannot_reblog": "Hantaran ini tidak boleh digalakkan",
|
"status.cannot_reblog": "Hantaran ini tidak boleh digalakkan",
|
||||||
"status.copy": "Salin pautan ke hantaran",
|
"status.copy": "Salin pautan ke hantaran",
|
||||||
"status.delete": "Padam",
|
"status.delete": "Padam",
|
||||||
@ -555,7 +611,8 @@
|
|||||||
"status.direct_indicator": "Sebutan peribadi",
|
"status.direct_indicator": "Sebutan peribadi",
|
||||||
"status.edit": "Sunting",
|
"status.edit": "Sunting",
|
||||||
"status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
|
"status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
|
||||||
"status.favourite": "Kegemaran",
|
"status.favourite": "Suka",
|
||||||
|
"status.favourites": "{count, plural, other {sukaan}}",
|
||||||
"status.filter": "Tapiskan hantaran ini",
|
"status.filter": "Tapiskan hantaran ini",
|
||||||
"status.history.created": "{name} mencipta pada {date}",
|
"status.history.created": "{name} mencipta pada {date}",
|
||||||
"status.history.edited": "{name} menyunting pada {date}",
|
"status.history.edited": "{name} menyunting pada {date}",
|
||||||
@ -572,11 +629,13 @@
|
|||||||
"status.pinned": "Hantaran disemat",
|
"status.pinned": "Hantaran disemat",
|
||||||
"status.read_more": "Baca lagi",
|
"status.read_more": "Baca lagi",
|
||||||
"status.reblog": "Galakkan",
|
"status.reblog": "Galakkan",
|
||||||
"status.reblog_private": "Galakkan dengan kebolehlihatan asal",
|
"status.reblog_private": "Galakkan dengan ketampakan asal",
|
||||||
"status.reblogged_by": "{name} telah menggalakkan",
|
"status.reblogged_by": "{name} galakkan",
|
||||||
"status.reblogs.empty": "Tiada sesiapa yang menggalak hantaran ini. Apabila ada yang menggalak, ia akan muncul di sini.",
|
"status.reblogs": "{count, plural, other {galakan}}",
|
||||||
|
"status.reblogs.empty": "Tiada sesiapa yang galakkan hantaran ini. Apabila ada yang galakkan, hantaran akan muncul di sini.",
|
||||||
"status.redraft": "Padam & rangka semula",
|
"status.redraft": "Padam & rangka semula",
|
||||||
"status.remove_bookmark": "Buang tanda buku",
|
"status.remove_bookmark": "Buang tanda buku",
|
||||||
|
"status.remove_favourite": "Padam dari sukaan",
|
||||||
"status.replied_to": "Menjawab kepada {name}",
|
"status.replied_to": "Menjawab kepada {name}",
|
||||||
"status.reply": "Balas",
|
"status.reply": "Balas",
|
||||||
"status.replyAll": "Balas ke bebenang",
|
"status.replyAll": "Balas ke bebenang",
|
||||||
@ -612,6 +671,8 @@
|
|||||||
"upload_button.label": "Tambah fail imej, video atau audio",
|
"upload_button.label": "Tambah fail imej, video atau audio",
|
||||||
"upload_error.limit": "Sudah melebihi had muat naik.",
|
"upload_error.limit": "Sudah melebihi had muat naik.",
|
||||||
"upload_error.poll": "Tidak boleh memuat naik fail bersama undian.",
|
"upload_error.poll": "Tidak boleh memuat naik fail bersama undian.",
|
||||||
|
"upload_form.drag_and_drop.instructions": "Untuk mengangkat lampiran media, tekan jarak atau enter. Ketika menarik, gunakan kekunci anak panah untuk menggerakkan lampiran media pada mana-mana arah. Tekan jarak atau enter untuk melepaskan lampiran media pada kedudukan baharunya, atau tekan keluar untuk batalkan.",
|
||||||
|
"upload_form.drag_and_drop.on_drag_cancel": "Seretan dibatalkan. Lampiran media {item} dilepaskan.",
|
||||||
"upload_form.edit": "Sunting",
|
"upload_form.edit": "Sunting",
|
||||||
"upload_progress.label": "Memuat naik...",
|
"upload_progress.label": "Memuat naik...",
|
||||||
"upload_progress.processing": "Memproses…",
|
"upload_progress.processing": "Memproses…",
|
||||||
|
@ -697,6 +697,7 @@
|
|||||||
"poll_button.remove_poll": "Usuń ankietę",
|
"poll_button.remove_poll": "Usuń ankietę",
|
||||||
"privacy.change": "Dostosuj widoczność wpisów",
|
"privacy.change": "Dostosuj widoczność wpisów",
|
||||||
"privacy.direct.long": "Wszyscy wzmiankowani w tym wpisie",
|
"privacy.direct.long": "Wszyscy wzmiankowani w tym wpisie",
|
||||||
|
"privacy.direct.short": "Wzmianka bezpośrednia",
|
||||||
"privacy.private.long": "Tylko obserwujący",
|
"privacy.private.long": "Tylko obserwujący",
|
||||||
"privacy.private.short": "Obserwujący",
|
"privacy.private.short": "Obserwujący",
|
||||||
"privacy.public.long": "Każdy na i poza Mastodon",
|
"privacy.public.long": "Każdy na i poza Mastodon",
|
||||||
|
@ -697,6 +697,7 @@
|
|||||||
"poll_button.remove_poll": "Remover sondagem",
|
"poll_button.remove_poll": "Remover sondagem",
|
||||||
"privacy.change": "Alterar a privacidade da publicação",
|
"privacy.change": "Alterar a privacidade da publicação",
|
||||||
"privacy.direct.long": "Todos os mencionados na publicação",
|
"privacy.direct.long": "Todos os mencionados na publicação",
|
||||||
|
"privacy.direct.short": "Menção privada",
|
||||||
"privacy.private.long": "Apenas os teus seguidores",
|
"privacy.private.long": "Apenas os teus seguidores",
|
||||||
"privacy.private.short": "Seguidores",
|
"privacy.private.short": "Seguidores",
|
||||||
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
|
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
|
||||||
|
@ -697,6 +697,7 @@
|
|||||||
"poll_button.remove_poll": "Удалить опрос",
|
"poll_button.remove_poll": "Удалить опрос",
|
||||||
"privacy.change": "Изменить видимость поста",
|
"privacy.change": "Изменить видимость поста",
|
||||||
"privacy.direct.long": "Все упомянутые в посте",
|
"privacy.direct.long": "Все упомянутые в посте",
|
||||||
|
"privacy.direct.short": "Личное упоминание",
|
||||||
"privacy.private.long": "Только ваши подписчики",
|
"privacy.private.long": "Только ваши подписчики",
|
||||||
"privacy.private.short": "Подписчики",
|
"privacy.private.short": "Подписчики",
|
||||||
"privacy.public.long": "Любой, находящийся на Mastodon и вне его",
|
"privacy.public.long": "Любой, находящийся на Mastodon и вне его",
|
||||||
|
@ -700,7 +700,7 @@
|
|||||||
"privacy.direct.short": "私下提及",
|
"privacy.direct.short": "私下提及",
|
||||||
"privacy.private.long": "仅限你的关注者",
|
"privacy.private.long": "仅限你的关注者",
|
||||||
"privacy.private.short": "关注者",
|
"privacy.private.short": "关注者",
|
||||||
"privacy.public.long": "",
|
"privacy.public.long": "所有 Mastodon 内外的人",
|
||||||
"privacy.public.short": "公开",
|
"privacy.public.short": "公开",
|
||||||
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
|
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
|
||||||
"privacy.unlisted.long": "减少算法影响",
|
"privacy.unlisted.long": "减少算法影响",
|
||||||
|
24
app/javascript/mastodon/models/dropdown_menu.ts
Normal file
24
app/javascript/mastodon/models/dropdown_menu.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
interface BaseMenuItem {
|
||||||
|
text: string;
|
||||||
|
dangerous?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ActionMenuItem extends BaseMenuItem {
|
||||||
|
action: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface LinkMenuItem extends BaseMenuItem {
|
||||||
|
to: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ExternalLinkMenuItem extends BaseMenuItem {
|
||||||
|
href: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MenuItem =
|
||||||
|
| ActionMenuItem
|
||||||
|
| LinkMenuItem
|
||||||
|
| ExternalLinkMenuItem
|
||||||
|
| null;
|
||||||
|
|
||||||
|
export type DropdownMenu = MenuItem[];
|
@ -1,6 +1,7 @@
|
|||||||
import { createSelector } from '@reduxjs/toolkit';
|
import { createSelector } from '@reduxjs/toolkit';
|
||||||
import { Record as ImmutableRecord } from 'immutable';
|
import { Record as ImmutableRecord } from 'immutable';
|
||||||
|
|
||||||
|
import { me } from 'mastodon/initial_state';
|
||||||
import { accountDefaultValues } from 'mastodon/models/account';
|
import { accountDefaultValues } from 'mastodon/models/account';
|
||||||
import type { Account, AccountShape } from 'mastodon/models/account';
|
import type { Account, AccountShape } from 'mastodon/models/account';
|
||||||
import type { Relationship } from 'mastodon/models/relationship';
|
import type { Relationship } from 'mastodon/models/relationship';
|
||||||
@ -45,3 +46,16 @@ export function makeGetAccount() {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getAccountHidden = createSelector(
|
||||||
|
[
|
||||||
|
(state: RootState, id: string) => state.accounts.get(id)?.hidden,
|
||||||
|
(state: RootState, id: string) =>
|
||||||
|
state.relationships.get(id)?.following ||
|
||||||
|
state.relationships.get(id)?.requested,
|
||||||
|
(state: RootState, id: string) => id === me,
|
||||||
|
],
|
||||||
|
(hidden, followingOrRequested, isSelf) => {
|
||||||
|
return hidden && !(isSelf || followingOrRequested);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
@ -99,21 +99,17 @@ export const getAccountGallery = createSelector([
|
|||||||
let medias = ImmutableList();
|
let medias = ImmutableList();
|
||||||
|
|
||||||
statusIds.forEach(statusId => {
|
statusIds.forEach(statusId => {
|
||||||
const status = statuses.get(statusId).set('account', account);
|
let status = statuses.get(statusId);
|
||||||
|
|
||||||
|
if (status) {
|
||||||
|
status = status.set('account', account);
|
||||||
medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status)));
|
medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status)));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return medias;
|
return medias;
|
||||||
});
|
});
|
||||||
|
|
||||||
export const getAccountHidden = createSelector([
|
|
||||||
(state, id) => state.getIn(['accounts', id, 'hidden']),
|
|
||||||
(state, id) => state.getIn(['relationships', id, 'following']) || state.getIn(['relationships', id, 'requested']),
|
|
||||||
(state, id) => id === me,
|
|
||||||
], (hidden, followingOrRequested, isSelf) => {
|
|
||||||
return hidden && !(isSelf || followingOrRequested);
|
|
||||||
});
|
|
||||||
|
|
||||||
export const getStatusList = createSelector([
|
export const getStatusList = createSelector([
|
||||||
(state, type) => state.getIn(['status_lists', type, 'items']),
|
(state, type) => state.getIn(['status_lists', type, 'items']),
|
||||||
], (items) => items.toList());
|
], (items) => items.toList());
|
||||||
|
@ -122,7 +122,7 @@ class Rack::Attack
|
|||||||
end
|
end
|
||||||
|
|
||||||
throttle('throttle_email_confirmations/ip', limit: 25, period: 5.minutes) do |req|
|
throttle('throttle_email_confirmations/ip', limit: 25, period: 5.minutes) do |req|
|
||||||
req.throttleable_remote_ip if req.post? && (req.path_matches?('/auth/confirmation') || req.path == '/api/v1/emails/confirmations')
|
req.throttleable_remote_ip if (req.post? && (req.path_matches?('/auth/confirmation') || req.path == '/api/v1/emails/confirmations')) || ((req.put? || req.patch?) && req.path_matches?('/auth/setup'))
|
||||||
end
|
end
|
||||||
|
|
||||||
throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req|
|
throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req|
|
||||||
@ -133,6 +133,14 @@ class Rack::Attack
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
throttle('throttle_auth_setup/email', limit: 5, period: 10.minutes) do |req|
|
||||||
|
req.params.dig('user', 'email').presence if (req.put? || req.patch?) && req.path_matches?('/auth/setup')
|
||||||
|
end
|
||||||
|
|
||||||
|
throttle('throttle_auth_setup/account', limit: 5, period: 10.minutes) do |req|
|
||||||
|
req.warden_user_id if (req.put? || req.patch?) && req.path_matches?('/auth/setup')
|
||||||
|
end
|
||||||
|
|
||||||
throttle('throttle_login_attempts/ip', limit: 25, period: 5.minutes) do |req|
|
throttle('throttle_login_attempts/ip', limit: 25, period: 5.minutes) do |req|
|
||||||
req.throttleable_remote_ip if req.post? && req.path_matches?('/auth/sign_in')
|
req.throttleable_remote_ip if req.post? && req.path_matches?('/auth/sign_in')
|
||||||
end
|
end
|
||||||
|
@ -126,7 +126,7 @@ ms:
|
|||||||
bookmarks: Penanda buku
|
bookmarks: Penanda buku
|
||||||
conversations: Perbualan
|
conversations: Perbualan
|
||||||
crypto: Penyulitan hujung ke hujung
|
crypto: Penyulitan hujung ke hujung
|
||||||
favourites: Kegemaran
|
favourites: Sukaan
|
||||||
filters: Penapis
|
filters: Penapis
|
||||||
follow: Ikut, Senyap dan Blok
|
follow: Ikut, Senyap dan Blok
|
||||||
follows: Ikutan
|
follows: Ikutan
|
||||||
@ -169,7 +169,7 @@ ms:
|
|||||||
read:accounts: lihat maklumat akaun
|
read:accounts: lihat maklumat akaun
|
||||||
read:blocks: lihat blok anda
|
read:blocks: lihat blok anda
|
||||||
read:bookmarks: lihat penanda halaman anda
|
read:bookmarks: lihat penanda halaman anda
|
||||||
read:favourites: lihat kegemaran anda
|
read:favourites: lihat sukaan anda
|
||||||
read:filters: lihat penapis anda
|
read:filters: lihat penapis anda
|
||||||
read:follows: lihat senarai yang anda ikuti
|
read:follows: lihat senarai yang anda ikuti
|
||||||
read:lists: lihat senarai anda
|
read:lists: lihat senarai anda
|
||||||
@ -183,7 +183,7 @@ ms:
|
|||||||
write:blocks: domain dan akaun blok
|
write:blocks: domain dan akaun blok
|
||||||
write:bookmarks: menandabuku hantaran
|
write:bookmarks: menandabuku hantaran
|
||||||
write:conversations: senyapkan dan padamkan perbualan
|
write:conversations: senyapkan dan padamkan perbualan
|
||||||
write:favourites: pos kesukaan
|
write:favourites: hantaran disukai
|
||||||
write:filters: cipta penapis
|
write:filters: cipta penapis
|
||||||
write:follows: ikut orang
|
write:follows: ikut orang
|
||||||
write:lists: cipta senarai
|
write:lists: cipta senarai
|
||||||
|
@ -353,7 +353,7 @@ lt:
|
|||||||
opened_reports: atidaryti ataskaitos
|
opened_reports: atidaryti ataskaitos
|
||||||
pending_appeals_html:
|
pending_appeals_html:
|
||||||
few: "<strong>%{count}</strong> laukiantys apeliacijos"
|
few: "<strong>%{count}</strong> laukiantys apeliacijos"
|
||||||
many: "<strong>%{count}</strong> laukiama apeliacija"
|
many: "<strong>%{count}</strong> laukiamos apeliacijos"
|
||||||
one: "<strong>%{count}</strong> laukiama apeliacija"
|
one: "<strong>%{count}</strong> laukiama apeliacija"
|
||||||
other: "<strong>%{count}</strong> laukiančių apeliacijų"
|
other: "<strong>%{count}</strong> laukiančių apeliacijų"
|
||||||
pending_reports_html:
|
pending_reports_html:
|
||||||
|
@ -445,6 +445,7 @@ lv:
|
|||||||
one: "%{count} mēģinājums pagājušajā nedēļā"
|
one: "%{count} mēģinājums pagājušajā nedēļā"
|
||||||
other: "%{count} reģistrēšanās mēģinājumi pagājušajā nedēļā"
|
other: "%{count} reģistrēšanās mēģinājumi pagājušajā nedēļā"
|
||||||
zero: "%{count} mēģinājumu pagājušajā nedēļā"
|
zero: "%{count} mēģinājumu pagājušajā nedēļā"
|
||||||
|
created_msg: Sekmīgi liegts e-pasta domēns
|
||||||
delete: Dzēst
|
delete: Dzēst
|
||||||
dns:
|
dns:
|
||||||
types:
|
types:
|
||||||
@ -453,6 +454,7 @@ lv:
|
|||||||
new:
|
new:
|
||||||
create: Pievienot domēnu
|
create: Pievienot domēnu
|
||||||
resolve: Atrisināt domēnu
|
resolve: Atrisināt domēnu
|
||||||
|
title: Liegt jaunu e-pasta domēnu
|
||||||
not_permitted: Nav atļauta
|
not_permitted: Nav atļauta
|
||||||
resolved_through_html: Atrisināts, izmantojot %{domain}
|
resolved_through_html: Atrisināts, izmantojot %{domain}
|
||||||
title: Bloķētie e-pasta domēni
|
title: Bloķētie e-pasta domēni
|
||||||
|
@ -756,7 +756,7 @@ ms:
|
|||||||
remove_from_report: Alih keluar daripada laporan
|
remove_from_report: Alih keluar daripada laporan
|
||||||
report: Laporan
|
report: Laporan
|
||||||
deleted: Dipadamkan
|
deleted: Dipadamkan
|
||||||
favourites: Gemaran
|
favourites: Sukaan
|
||||||
history: Sejarah versi
|
history: Sejarah versi
|
||||||
in_reply_to: Membalas kepada
|
in_reply_to: Membalas kepada
|
||||||
language: Bahasa
|
language: Bahasa
|
||||||
@ -861,7 +861,7 @@ ms:
|
|||||||
no_status_selected: Tiada pos sohor kini ditukar kerana tiada yang dipilih
|
no_status_selected: Tiada pos sohor kini ditukar kerana tiada yang dipilih
|
||||||
not_discoverable: Pengarang tidak mengikut serta untuk dapat ditemui
|
not_discoverable: Pengarang tidak mengikut serta untuk dapat ditemui
|
||||||
shared_by:
|
shared_by:
|
||||||
other: Dikongsi dan digemari %{friendly_count} kali
|
other: Dikongsi atau disukai %{friendly_count} kali
|
||||||
title: Hantaran hangat
|
title: Hantaran hangat
|
||||||
tags:
|
tags:
|
||||||
current_score: Markah semasa %{score}
|
current_score: Markah semasa %{score}
|
||||||
@ -1283,6 +1283,9 @@ ms:
|
|||||||
unsubscribe:
|
unsubscribe:
|
||||||
action: Ya, nyahlanggan
|
action: Ya, nyahlanggan
|
||||||
complete: Menyahlanggan
|
complete: Menyahlanggan
|
||||||
|
emails:
|
||||||
|
notification_emails:
|
||||||
|
favourite: emel pemberitahuan sukaan
|
||||||
title: Hentikan langganan
|
title: Hentikan langganan
|
||||||
media_attachments:
|
media_attachments:
|
||||||
validations:
|
validations:
|
||||||
@ -1334,9 +1337,9 @@ ms:
|
|||||||
sign_up:
|
sign_up:
|
||||||
subject: "%{name} telah mendaftar"
|
subject: "%{name} telah mendaftar"
|
||||||
favourite:
|
favourite:
|
||||||
body: 'Pos anda telah digemari oleh %{name}:'
|
body: 'Hantaran anda disukai oleh %{name}:'
|
||||||
subject: "%{name} menggemari siaran anda"
|
subject: "%{name} menyukai hantaran anda"
|
||||||
title: Kegemaran baru
|
title: Sukaan baharu
|
||||||
follow:
|
follow:
|
||||||
body: "%{name} kini mengikuti anda!"
|
body: "%{name} kini mengikuti anda!"
|
||||||
subject: "%{name} kini mengikuti anda"
|
subject: "%{name} kini mengikuti anda"
|
||||||
@ -1558,7 +1561,7 @@ ms:
|
|||||||
enabled_hint: Memadamkan pos anda secara automatik setelah mereka mencapai ambang umur yang ditentukan, melainkan ia sepadan dengan salah satu pengecualian di bawah
|
enabled_hint: Memadamkan pos anda secara automatik setelah mereka mencapai ambang umur yang ditentukan, melainkan ia sepadan dengan salah satu pengecualian di bawah
|
||||||
exceptions: Pengecualian
|
exceptions: Pengecualian
|
||||||
explanation: Oleh kerana pemadaman pos adalah operasi yang mahal, ini dilakukan perlahan-lahan dari semasa ke semasa apabila server tidak sibuk. Atas sebab ini, pos anda mungkin dipadamkan seketika selepas ia mencapai ambang umur.
|
explanation: Oleh kerana pemadaman pos adalah operasi yang mahal, ini dilakukan perlahan-lahan dari semasa ke semasa apabila server tidak sibuk. Atas sebab ini, pos anda mungkin dipadamkan seketika selepas ia mencapai ambang umur.
|
||||||
ignore_favs: Abaikan kegemaran
|
ignore_favs: Abaikan sukaan
|
||||||
ignore_reblogs: Abaikan rangsangan
|
ignore_reblogs: Abaikan rangsangan
|
||||||
interaction_exceptions: Pengecualian berdasarkan interaksi
|
interaction_exceptions: Pengecualian berdasarkan interaksi
|
||||||
interaction_exceptions_explanation: Sila ambil perhatian bahawa tiada jaminan untuk pos dipadamkan jika ia berada di bawah ambang kegemaran atau tingkatkan selepas sekali melepasinya.
|
interaction_exceptions_explanation: Sila ambil perhatian bahawa tiada jaminan untuk pos dipadamkan jika ia berada di bawah ambang kegemaran atau tingkatkan selepas sekali melepasinya.
|
||||||
|
@ -131,6 +131,7 @@ ca:
|
|||||||
tag:
|
tag:
|
||||||
name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible
|
name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible
|
||||||
terms_of_service_generator:
|
terms_of_service_generator:
|
||||||
|
choice_of_law: Ciutat, regió, territori o estat els jutjats del qual hauran de dirimir qualsevol disputa legal.
|
||||||
domain: Identificació única del servei en línia que oferiu.
|
domain: Identificació única del servei en línia que oferiu.
|
||||||
jurisdiction: Indiqueu el país on resideix qui paga les factures. Si és una empresa o una altra entitat, indiqueu el país en què està registrada, així com la ciutat, regió, territori o estat, segons calqui.
|
jurisdiction: Indiqueu el país on resideix qui paga les factures. Si és una empresa o una altra entitat, indiqueu el país en què està registrada, així com la ciutat, regió, territori o estat, segons calqui.
|
||||||
user:
|
user:
|
||||||
@ -330,6 +331,7 @@ ca:
|
|||||||
admin_email: Adreça-e per a les notificacions legals
|
admin_email: Adreça-e per a les notificacions legals
|
||||||
arbitration_address: Adreça física per a les notificacions d'arbitratge
|
arbitration_address: Adreça física per a les notificacions d'arbitratge
|
||||||
arbitration_website: Lloc web per a enviar les notificacions d'arbitratge
|
arbitration_website: Lloc web per a enviar les notificacions d'arbitratge
|
||||||
|
choice_of_law: Legislació aplicable
|
||||||
dmca_address: Adreça física per a les notificacions de copyright/DMCA
|
dmca_address: Adreça física per a les notificacions de copyright/DMCA
|
||||||
dmca_email: Adreça-e per a les notificacions de copyright/DMCA
|
dmca_email: Adreça-e per a les notificacions de copyright/DMCA
|
||||||
domain: Domini
|
domain: Domini
|
||||||
|
@ -137,6 +137,7 @@ cs:
|
|||||||
admin_email: Právní oznámení zahrnují protioznámení, soudní příkazy, žádosti o stáhnutí příspěvků a žádosti od právních vymahačů.
|
admin_email: Právní oznámení zahrnují protioznámení, soudní příkazy, žádosti o stáhnutí příspěvků a žádosti od právních vymahačů.
|
||||||
arbitration_address: Může být stejné jako výše uvedená fyzická adresa, nebo „N/A“, pokud používáte e-mail
|
arbitration_address: Může být stejné jako výše uvedená fyzická adresa, nebo „N/A“, pokud používáte e-mail
|
||||||
arbitration_website: Může být webový formulář nebo „N/A“, pokud používáte e-mail
|
arbitration_website: Může být webový formulář nebo „N/A“, pokud používáte e-mail
|
||||||
|
choice_of_law: Město, region, území nebo stát, jehož vnitřní hmotné právo se řídí všemi nároky.
|
||||||
dmca_address: V případě provozovatelů v USA použijte adresu zapsanou v DMCA Designated Agent Directory. Na přímou žádost je možné použít namísto domovské adresy PO box, použijte DMCA Designated Agent Post Office Box Waiver Request k e-mailovaní Copyright Office a řekněte jim, že jste malým moderátorem obsahu, který se obavá pomsty nabo odplaty za Vaši práci a potřebujete použít PO box, abyste schovali Vaši domovskou adresu před širokou veřejností.
|
dmca_address: V případě provozovatelů v USA použijte adresu zapsanou v DMCA Designated Agent Directory. Na přímou žádost je možné použít namísto domovské adresy PO box, použijte DMCA Designated Agent Post Office Box Waiver Request k e-mailovaní Copyright Office a řekněte jim, že jste malým moderátorem obsahu, který se obavá pomsty nabo odplaty za Vaši práci a potřebujete použít PO box, abyste schovali Vaši domovskou adresu před širokou veřejností.
|
||||||
dmca_email: Může být stejný e-mail použitý pro „E-mail adresy pro právní upozornění“
|
dmca_email: Může být stejný e-mail použitý pro „E-mail adresy pro právní upozornění“
|
||||||
domain: Jedinečná identifikace online služby, kterou poskytujete.
|
domain: Jedinečná identifikace online služby, kterou poskytujete.
|
||||||
@ -338,6 +339,7 @@ cs:
|
|||||||
admin_email: E-mailová adresa pro právní upozornění
|
admin_email: E-mailová adresa pro právní upozornění
|
||||||
arbitration_address: Fyzická adresa pro upozornění na arbitrační řízení
|
arbitration_address: Fyzická adresa pro upozornění na arbitrační řízení
|
||||||
arbitration_website: Webová stránka pro zasílání arbitračních upozornění
|
arbitration_website: Webová stránka pro zasílání arbitračních upozornění
|
||||||
|
choice_of_law: Volba zákona
|
||||||
dmca_address: Fyzická adresa pro oznámení DMCA/porušení autorských práv
|
dmca_address: Fyzická adresa pro oznámení DMCA/porušení autorských práv
|
||||||
dmca_email: E-mailová adresa pro oznámení DMCA/porušení autorských práv
|
dmca_email: E-mailová adresa pro oznámení DMCA/porušení autorských práv
|
||||||
domain: Doména
|
domain: Doména
|
||||||
|
@ -137,6 +137,7 @@ da:
|
|||||||
admin_email: Juridiske bekendtgørelser omfatter imødegåelsesbekendtgørelser, retskendelser, nedtagelses- og retshåndhævelsesanmodninger.
|
admin_email: Juridiske bekendtgørelser omfatter imødegåelsesbekendtgørelser, retskendelser, nedtagelses- og retshåndhævelsesanmodninger.
|
||||||
arbitration_address: Kan være den samme som Fysisk adresse ovenfor, eller “N/A” ved brug af e-mail
|
arbitration_address: Kan være den samme som Fysisk adresse ovenfor, eller “N/A” ved brug af e-mail
|
||||||
arbitration_website: Kan være en webformular, eller “N/A” ved brug af e-mail
|
arbitration_website: Kan være en webformular, eller “N/A” ved brug af e-mail
|
||||||
|
choice_of_law: By, region, område eller angiv de interne materielle love, som vil være gældende for samtlige krav.
|
||||||
dmca_address: For amerikanske operatører, brug den adresse, der er registreret i DMCA Designated Agent Directory. En Postboksliste er tilgængelig på direkte anmodning, brug den DMCA Designated Agent Post Office Box Waiver Request til at e-maile Ophavsretskontoret og beskrive, at man er en hjemmebaseret indholdsmoderator, der frygter hævn eller gengældelse for sine handlinger og behøver en Postboks for at fjerne hjemmeadressen fra den offentlige visning.
|
dmca_address: For amerikanske operatører, brug den adresse, der er registreret i DMCA Designated Agent Directory. En Postboksliste er tilgængelig på direkte anmodning, brug den DMCA Designated Agent Post Office Box Waiver Request til at e-maile Ophavsretskontoret og beskrive, at man er en hjemmebaseret indholdsmoderator, der frygter hævn eller gengældelse for sine handlinger og behøver en Postboks for at fjerne hjemmeadressen fra den offentlige visning.
|
||||||
dmca_email: Kan være samme e-mail, som brugt til “E-mailadresse til juridiske meddelelser” ovenfor
|
dmca_email: Kan være samme e-mail, som brugt til “E-mailadresse til juridiske meddelelser” ovenfor
|
||||||
domain: Unik identifikation af den onlinetjeneste, man leverer.
|
domain: Unik identifikation af den onlinetjeneste, man leverer.
|
||||||
@ -338,6 +339,7 @@ da:
|
|||||||
admin_email: E-mailadresse til juridiske meddelelser
|
admin_email: E-mailadresse til juridiske meddelelser
|
||||||
arbitration_address: Fysisk adresse til voldgiftsmeddelelser
|
arbitration_address: Fysisk adresse til voldgiftsmeddelelser
|
||||||
arbitration_website: Websted til indsendelse af voldgiftsmeddelelser
|
arbitration_website: Websted til indsendelse af voldgiftsmeddelelser
|
||||||
|
choice_of_law: Lovvalg
|
||||||
dmca_address: Fysisk adresse til DMCA-/ophavsretsmeddelelser
|
dmca_address: Fysisk adresse til DMCA-/ophavsretsmeddelelser
|
||||||
dmca_email: E-mailadresse til DMCA-/ophavsretsmeddelelser
|
dmca_email: E-mailadresse til DMCA-/ophavsretsmeddelelser
|
||||||
domain: Domæne
|
domain: Domæne
|
||||||
|
@ -137,6 +137,7 @@ de:
|
|||||||
admin_email: Rechtliche Hinweise umfassen Gegendarstellungen, Gerichtsbeschlüsse, Anfragen zum Herunternehmen von Inhalten und Anfragen von Strafverfolgungsbehörden.
|
admin_email: Rechtliche Hinweise umfassen Gegendarstellungen, Gerichtsbeschlüsse, Anfragen zum Herunternehmen von Inhalten und Anfragen von Strafverfolgungsbehörden.
|
||||||
arbitration_address: Kann wie die Anschrift hierüber sein oder „N/A“, falls eine E-Mail verwendet wird
|
arbitration_address: Kann wie die Anschrift hierüber sein oder „N/A“, falls eine E-Mail verwendet wird
|
||||||
arbitration_website: Kann ein Webformular sein oder „N/A“, falls eine E-Mail verwendet wird
|
arbitration_website: Kann ein Webformular sein oder „N/A“, falls eine E-Mail verwendet wird
|
||||||
|
choice_of_law: Stadt, Region, Gebiet oder Staat, dessen innerstaatliches materielles Recht für alle Ansprüche maßgebend ist.
|
||||||
dmca_address: US-Betreiber sollten die im „DMCA Designated Agent Directory“ eingetragene Adresse verwenden. Eine Postfachadresse ist auf direkte Anfrage verfügbar. Verwenden Sie die „DMCA Designated Agent Post Box Waiver“-Anfrage, um per E-Mail die Urheberrechtsbehörde darüber zu unterrichten, dass Sie Inhalte per Heimarbeit moderieren, eventuelle Rache oder Vergeltung für Ihre Handlungen befürchten und deshalb eine Postfachadresse benötigen, um Ihre Privatadresse nicht preiszugeben.
|
dmca_address: US-Betreiber sollten die im „DMCA Designated Agent Directory“ eingetragene Adresse verwenden. Eine Postfachadresse ist auf direkte Anfrage verfügbar. Verwenden Sie die „DMCA Designated Agent Post Box Waiver“-Anfrage, um per E-Mail die Urheberrechtsbehörde darüber zu unterrichten, dass Sie Inhalte per Heimarbeit moderieren, eventuelle Rache oder Vergeltung für Ihre Handlungen befürchten und deshalb eine Postfachadresse benötigen, um Ihre Privatadresse nicht preiszugeben.
|
||||||
dmca_email: Kann dieselbe E-Mail wie bei „E-Mail-Adresse für rechtliche Hinweise“ sein
|
dmca_email: Kann dieselbe E-Mail wie bei „E-Mail-Adresse für rechtliche Hinweise“ sein
|
||||||
domain: Einzigartige Identifizierung des angebotenen Online-Services.
|
domain: Einzigartige Identifizierung des angebotenen Online-Services.
|
||||||
@ -338,6 +339,7 @@ de:
|
|||||||
admin_email: E-Mail-Adresse für rechtliche Hinweise
|
admin_email: E-Mail-Adresse für rechtliche Hinweise
|
||||||
arbitration_address: Anschrift für Schiedsverfahren
|
arbitration_address: Anschrift für Schiedsverfahren
|
||||||
arbitration_website: Website zum Einreichen von Schiedsverfahren
|
arbitration_website: Website zum Einreichen von Schiedsverfahren
|
||||||
|
choice_of_law: Wahl der Rechtsordnung
|
||||||
dmca_address: Anschrift für Urheberrechtsverletzungen
|
dmca_address: Anschrift für Urheberrechtsverletzungen
|
||||||
dmca_email: E-Mail-Adresse für Urheberrechtsverletzungen
|
dmca_email: E-Mail-Adresse für Urheberrechtsverletzungen
|
||||||
domain: Domain
|
domain: Domain
|
||||||
|
@ -137,6 +137,7 @@ eo:
|
|||||||
admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro.
|
admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro.
|
||||||
arbitration_address: Povas esti la sama kiel Fizika adreso supre, aŭ "N/A" se oni uzas retpoŝton
|
arbitration_address: Povas esti la sama kiel Fizika adreso supre, aŭ "N/A" se oni uzas retpoŝton
|
||||||
arbitration_website: Povas esti retformo, aŭ "N/A" se oni uzas retpoŝton
|
arbitration_website: Povas esti retformo, aŭ "N/A" se oni uzas retpoŝton
|
||||||
|
choice_of_law: Urbo, regiono, teritorio aŭ ŝtato, kies internaj substantivaj leĝoj regos iujn kaj ĉiujn asertojn.
|
||||||
dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido.
|
dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido.
|
||||||
dmca_email: Povas esti la sama retpoŝtadreso uzita por "Retpoŝtadreso por legalaj sciigoj" supre
|
dmca_email: Povas esti la sama retpoŝtadreso uzita por "Retpoŝtadreso por legalaj sciigoj" supre
|
||||||
domain: Unika identigilo de la retaj servicoj, ke vi provizas.
|
domain: Unika identigilo de la retaj servicoj, ke vi provizas.
|
||||||
@ -338,6 +339,7 @@ eo:
|
|||||||
admin_email: Retpoŝtadreso por laŭleĝaj avizoj
|
admin_email: Retpoŝtadreso por laŭleĝaj avizoj
|
||||||
arbitration_address: Fizika adreso por arbitraciaj avizoj
|
arbitration_address: Fizika adreso por arbitraciaj avizoj
|
||||||
arbitration_website: Retejo por sendi arbitraciajn avizojn
|
arbitration_website: Retejo por sendi arbitraciajn avizojn
|
||||||
|
choice_of_law: Elekto de leĝo
|
||||||
dmca_address: Fizika adreso por DMCA/kopirajto-avizoj
|
dmca_address: Fizika adreso por DMCA/kopirajto-avizoj
|
||||||
dmca_email: Retpoŝtadreso por DMCA/kopirajto-avizoj
|
dmca_email: Retpoŝtadreso por DMCA/kopirajto-avizoj
|
||||||
domain: Domajno
|
domain: Domajno
|
||||||
|
@ -137,6 +137,7 @@ es-AR:
|
|||||||
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
|
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
|
||||||
arbitration_address: Puede ser la misma que la dirección física anterior, o «N.D.» si utiliza correo electrónico
|
arbitration_address: Puede ser la misma que la dirección física anterior, o «N.D.» si utiliza correo electrónico
|
||||||
arbitration_website: Puede ser un formulario web, o «N.D.» si utiliza correo electrónico
|
arbitration_website: Puede ser un formulario web, o «N.D.» si utiliza correo electrónico
|
||||||
|
choice_of_law: Ciudad, región, territorio o declaración de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
|
||||||
dmca_address: Para operadores estadounidenses, usen la dirección registrada en el Directorio de Agente Designado del DMCA. Una lista de casillas de correo está disponible bajo petición directa, usen la solicitud de exención del apartado postal del agente designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que ustedes son moderadores de contenido basado en el hogar que temen venganza o represalia por sus acciones y que necesitan usar una casilla de correo para eliminar su dirección postal de la vista pública.
|
dmca_address: Para operadores estadounidenses, usen la dirección registrada en el Directorio de Agente Designado del DMCA. Una lista de casillas de correo está disponible bajo petición directa, usen la solicitud de exención del apartado postal del agente designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que ustedes son moderadores de contenido basado en el hogar que temen venganza o represalia por sus acciones y que necesitan usar una casilla de correo para eliminar su dirección postal de la vista pública.
|
||||||
dmca_email: Puede ser el mismo correo electrónico utilizado para «Dirección de correo electrónico para avisos legales» de arriba
|
dmca_email: Puede ser el mismo correo electrónico utilizado para «Dirección de correo electrónico para avisos legales» de arriba
|
||||||
domain: Identificación única del servicio en línea que estás proporcionando.
|
domain: Identificación única del servicio en línea que estás proporcionando.
|
||||||
@ -338,6 +339,7 @@ es-AR:
|
|||||||
admin_email: Dirección de correo electrónico para avisos legales
|
admin_email: Dirección de correo electrónico para avisos legales
|
||||||
arbitration_address: Dirección física para avisos de arbitraje
|
arbitration_address: Dirección física para avisos de arbitraje
|
||||||
arbitration_website: Sitio web para enviar avisos de arbitraje
|
arbitration_website: Sitio web para enviar avisos de arbitraje
|
||||||
|
choice_of_law: Elección de ley
|
||||||
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
||||||
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
||||||
domain: Dominio
|
domain: Dominio
|
||||||
|
@ -137,6 +137,7 @@ es-MX:
|
|||||||
admin_email: Las notificaciones legales incluyen contraavisos, órdenes judiciales, solicitudes de retirada y solicitudes de aplicación de la ley.
|
admin_email: Las notificaciones legales incluyen contraavisos, órdenes judiciales, solicitudes de retirada y solicitudes de aplicación de la ley.
|
||||||
arbitration_address: Puede ser la misma que la dirección física anterior, o “N/A” si se utiliza el correo electrónico
|
arbitration_address: Puede ser la misma que la dirección física anterior, o “N/A” si se utiliza el correo electrónico
|
||||||
arbitration_website: Puede ser un formulario web, o “N/A” si se utiliza el correo electrónico
|
arbitration_website: Puede ser un formulario web, o “N/A” si se utiliza el correo electrónico
|
||||||
|
choice_of_law: Ciudad, región, territorio o estado de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
|
||||||
dmca_address: Para los operadores de EE. UU., utilice la dirección registrada en el Directorio de Agentes Designados de la DMCA. Un listado de apartados de correos está disponible bajo petición directa, utilice la Solicitud de Renuncia de Apartado de Correos de Agente Designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describa que usted es un moderador de contenidos desde su casa que teme venganza o represalias por sus acciones y necesita utilizar un apartado de correos para eliminar su dirección particular de la vista del público.
|
dmca_address: Para los operadores de EE. UU., utilice la dirección registrada en el Directorio de Agentes Designados de la DMCA. Un listado de apartados de correos está disponible bajo petición directa, utilice la Solicitud de Renuncia de Apartado de Correos de Agente Designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describa que usted es un moderador de contenidos desde su casa que teme venganza o represalias por sus acciones y necesita utilizar un apartado de correos para eliminar su dirección particular de la vista del público.
|
||||||
dmca_email: Puede ser la misma dirección de correo electrónico usada en “Dirección de correo electrónico para notificaciones legales”
|
dmca_email: Puede ser la misma dirección de correo electrónico usada en “Dirección de correo electrónico para notificaciones legales”
|
||||||
domain: Identificación única del servicio en línea que presta.
|
domain: Identificación única del servicio en línea que presta.
|
||||||
@ -338,6 +339,7 @@ es-MX:
|
|||||||
admin_email: Dirección de correo electrónico para notificaciones legales
|
admin_email: Dirección de correo electrónico para notificaciones legales
|
||||||
arbitration_address: Dirección física para notificaciones de arbitraje
|
arbitration_address: Dirección física para notificaciones de arbitraje
|
||||||
arbitration_website: Sitio web para presentar notificaciones de arbitraje
|
arbitration_website: Sitio web para presentar notificaciones de arbitraje
|
||||||
|
choice_of_law: Elección de la ley
|
||||||
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
||||||
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
||||||
domain: Dominio
|
domain: Dominio
|
||||||
|
@ -137,6 +137,7 @@ es:
|
|||||||
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
|
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
|
||||||
arbitration_address: Puede ser la misma que la dirección física anterior, o "N/A" si utiliza correo electrónico
|
arbitration_address: Puede ser la misma que la dirección física anterior, o "N/A" si utiliza correo electrónico
|
||||||
arbitration_website: Puede ser un formulario web, o “N/A” si utiliza correo electrónico
|
arbitration_website: Puede ser un formulario web, o “N/A” si utiliza correo electrónico
|
||||||
|
choice_of_law: Ciudad, región, territorio o declaración de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
|
||||||
dmca_address: Para operadores estadounidenses, utilice la dirección registrada en el DMCA Designated Agent Directory. Un listado P.O. Box está disponible bajo petición directa, use la DMCA Designated Agent Post Office Box Waiver Request para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que usted es un moderador de contenido basado en el hogar que teme venganza o represalia por sus acciones y que necesita usar un P.O. Box para eliminar su dirección postal de la vista pública.
|
dmca_address: Para operadores estadounidenses, utilice la dirección registrada en el DMCA Designated Agent Directory. Un listado P.O. Box está disponible bajo petición directa, use la DMCA Designated Agent Post Office Box Waiver Request para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que usted es un moderador de contenido basado en el hogar que teme venganza o represalia por sus acciones y que necesita usar un P.O. Box para eliminar su dirección postal de la vista pública.
|
||||||
dmca_email: Puede ser el mismo correo electrónico utilizado para "Dirección de correo electrónico para avisos legales" de arriba
|
dmca_email: Puede ser el mismo correo electrónico utilizado para "Dirección de correo electrónico para avisos legales" de arriba
|
||||||
domain: Identificación única del servicio en línea que estás proporcionando.
|
domain: Identificación única del servicio en línea que estás proporcionando.
|
||||||
@ -338,6 +339,7 @@ es:
|
|||||||
admin_email: Dirección de correo electrónico para avisos legales
|
admin_email: Dirección de correo electrónico para avisos legales
|
||||||
arbitration_address: Dirección física para avisos de arbitraje
|
arbitration_address: Dirección física para avisos de arbitraje
|
||||||
arbitration_website: Sitio web para enviar avisos de arbitraje
|
arbitration_website: Sitio web para enviar avisos de arbitraje
|
||||||
|
choice_of_law: Elección de la ley
|
||||||
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
dmca_address: Dirección física para avisos de DMCA/derechos de autor
|
||||||
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
|
||||||
domain: Dominio
|
domain: Dominio
|
||||||
|
@ -137,6 +137,7 @@ fo:
|
|||||||
admin_email: Løgfrøðisligar fráboðanir fata um rættarligar mótfráboðanir, úrskurðir, áheitanir um at taka niður og løgfrøðisligar áheitanir.
|
admin_email: Løgfrøðisligar fráboðanir fata um rættarligar mótfráboðanir, úrskurðir, áheitanir um at taka niður og løgfrøðisligar áheitanir.
|
||||||
arbitration_address: Kann vera tann sami sum fysiski bústaðurin omanfyri ella "N/A", um teldupostur verður brúktur
|
arbitration_address: Kann vera tann sami sum fysiski bústaðurin omanfyri ella "N/A", um teldupostur verður brúktur
|
||||||
arbitration_website: Kann vera ein vevformularur ella "N/A", um teldupostur verður brúktur
|
arbitration_website: Kann vera ein vevformularur ella "N/A", um teldupostur verður brúktur
|
||||||
|
choice_of_law: Býur, øki, landspartur ella statur, hvørs innanhýsis lógir skulu stýra øllum krøvum.
|
||||||
dmca_address: Fyristøðufólk og -feløg í USA brúka bústaðin, ið er skrásettur í DMCA Designated Agent Directory. Ein postsmoguskráseting er tøk, um biðið verður um hana beinleiðis. Brúka DMCA Designated Agent Post Office Box Waiver Request fyri at senda teldubræv til Copyright Office og greið frá, at tú er ein kjakleiðari, sum virkar heimanifrá, og at tú er bangin fyri hevnd ella afturløning fyri tí, tú ger, og at tú hevur tørv á at brúka eina postsmogu fyri at fjala heimabústaðin fyri almenninginum.
|
dmca_address: Fyristøðufólk og -feløg í USA brúka bústaðin, ið er skrásettur í DMCA Designated Agent Directory. Ein postsmoguskráseting er tøk, um biðið verður um hana beinleiðis. Brúka DMCA Designated Agent Post Office Box Waiver Request fyri at senda teldubræv til Copyright Office og greið frá, at tú er ein kjakleiðari, sum virkar heimanifrá, og at tú er bangin fyri hevnd ella afturløning fyri tí, tú ger, og at tú hevur tørv á at brúka eina postsmogu fyri at fjala heimabústaðin fyri almenninginum.
|
||||||
dmca_email: Kann vera sami teldupoststaður, sum er brúktur til "Teldupoststaður fyri løgfrøðisligar fráboðanir" omanfyri
|
dmca_email: Kann vera sami teldupoststaður, sum er brúktur til "Teldupoststaður fyri løgfrøðisligar fráboðanir" omanfyri
|
||||||
domain: Makaleys eyðmerking av nettænastuni, sum tú veitir.
|
domain: Makaleys eyðmerking av nettænastuni, sum tú veitir.
|
||||||
@ -338,6 +339,7 @@ fo:
|
|||||||
admin_email: Teldupoststaður fyri løgfrøðisligar fráboðanir
|
admin_email: Teldupoststaður fyri løgfrøðisligar fráboðanir
|
||||||
arbitration_address: Fysisk adressa fyri gerðarrættarfráboðanir
|
arbitration_address: Fysisk adressa fyri gerðarrættarfráboðanir
|
||||||
arbitration_website: Heimasíða har gerðarrættarfráboðanir kunnu innlatast
|
arbitration_website: Heimasíða har gerðarrættarfráboðanir kunnu innlatast
|
||||||
|
choice_of_law: Val av lóg
|
||||||
dmca_address: Fysiskur bústaður fyri DMCA/copyright fráboðanir
|
dmca_address: Fysiskur bústaður fyri DMCA/copyright fráboðanir
|
||||||
dmca_email: Teldubústaður fyri DMCA/copyright fráboðanir
|
dmca_email: Teldubústaður fyri DMCA/copyright fráboðanir
|
||||||
domain: Navnaøki
|
domain: Navnaøki
|
||||||
|
@ -137,6 +137,7 @@ ga:
|
|||||||
admin_email: Áirítear le fógraí dlí frithfhógraí, orduithe cúirte, iarratais éirí anuas, agus iarratais forghníomhaithe dlí.
|
admin_email: Áirítear le fógraí dlí frithfhógraí, orduithe cúirte, iarratais éirí anuas, agus iarratais forghníomhaithe dlí.
|
||||||
arbitration_address: D’fhéadfadh sé a bheith mar an gcéanna leis an seoladh fisiceach thuas, nó “N/B” má tá ríomhphost in úsáid agat
|
arbitration_address: D’fhéadfadh sé a bheith mar an gcéanna leis an seoladh fisiceach thuas, nó “N/B” má tá ríomhphost in úsáid agat
|
||||||
arbitration_website: D’fhéadfadh gur foirm ghréasáin í, nó “N/A” má tá ríomhphost in úsáid agat
|
arbitration_website: D’fhéadfadh gur foirm ghréasáin í, nó “N/A” má tá ríomhphost in úsáid agat
|
||||||
|
choice_of_law: Cathair, réigiún, críoch nó stát a rialóidh a dhlíthe inmheánacha substaintiúla aon éileamh agus gach éileamh.
|
||||||
dmca_address: Maidir le hoibreoirí SAM, bain úsáid as an seoladh atá cláraithe in Eolaire Gníomhairí Ainmnithe DMCA. A P.O. Tá liostú boscaí ar fáil ach é a iarraidh go díreach, bain úsáid as Iarratas Tarscaoilte Bosca Gníomhaire Ainmnithe DMCA chun ríomhphost a chur chuig an Oifig Cóipchirt agus déan cur síos gur modhnóir ábhar baile thú a bhfuil eagla ort díoltas nó aisíocaíocht a fháil mar gheall ar do ghníomhartha agus a dteastaíonn uait úsáid a bhaint as P.O. Bosca chun do sheoladh baile a bhaint den radharc poiblí.
|
dmca_address: Maidir le hoibreoirí SAM, bain úsáid as an seoladh atá cláraithe in Eolaire Gníomhairí Ainmnithe DMCA. A P.O. Tá liostú boscaí ar fáil ach é a iarraidh go díreach, bain úsáid as Iarratas Tarscaoilte Bosca Gníomhaire Ainmnithe DMCA chun ríomhphost a chur chuig an Oifig Cóipchirt agus déan cur síos gur modhnóir ábhar baile thú a bhfuil eagla ort díoltas nó aisíocaíocht a fháil mar gheall ar do ghníomhartha agus a dteastaíonn uait úsáid a bhaint as P.O. Bosca chun do sheoladh baile a bhaint den radharc poiblí.
|
||||||
dmca_email: Is féidir gurb é an ríomhphost céanna é a úsáidtear le haghaidh “Seoladh ríomhphoist le haghaidh fógraí dlí” thuas
|
dmca_email: Is féidir gurb é an ríomhphost céanna é a úsáidtear le haghaidh “Seoladh ríomhphoist le haghaidh fógraí dlí” thuas
|
||||||
domain: Aitheantas uathúil na seirbhíse ar líne atá á cur ar fáil agat.
|
domain: Aitheantas uathúil na seirbhíse ar líne atá á cur ar fáil agat.
|
||||||
@ -338,6 +339,7 @@ ga:
|
|||||||
admin_email: Seoladh ríomhphoist le haghaidh fógraí dlí
|
admin_email: Seoladh ríomhphoist le haghaidh fógraí dlí
|
||||||
arbitration_address: Seoladh fisiciúil le haghaidh fógraí eadrána
|
arbitration_address: Seoladh fisiciúil le haghaidh fógraí eadrána
|
||||||
arbitration_website: An láithreán gréasáin chun fógraí eadrána a chur isteach
|
arbitration_website: An láithreán gréasáin chun fógraí eadrána a chur isteach
|
||||||
|
choice_of_law: Rogha an Dlí
|
||||||
dmca_address: Seoladh fisiciúil le haghaidh fógraí DMCA/cóipchirt
|
dmca_address: Seoladh fisiciúil le haghaidh fógraí DMCA/cóipchirt
|
||||||
dmca_email: Seoladh ríomhphoist le haghaidh fógraí DMCA/cóipchirt
|
dmca_email: Seoladh ríomhphoist le haghaidh fógraí DMCA/cóipchirt
|
||||||
domain: Fearann
|
domain: Fearann
|
||||||
|
@ -137,6 +137,7 @@ gl:
|
|||||||
admin_email: Os avisos legais inclúen ordes xudiciais, solicitudes de retirada de contido e requerimentos do cumprimento da lei.
|
admin_email: Os avisos legais inclúen ordes xudiciais, solicitudes de retirada de contido e requerimentos do cumprimento da lei.
|
||||||
arbitration_address: Pode ser o mesmo enderezo Físico de máis arriba, ou "N/A" se usas o correo electrónico
|
arbitration_address: Pode ser o mesmo enderezo Físico de máis arriba, ou "N/A" se usas o correo electrónico
|
||||||
arbitration_website: Pode ser un formulario web ou "N/A" se usas o correo electrónico
|
arbitration_website: Pode ser un formulario web ou "N/A" se usas o correo electrónico
|
||||||
|
choice_of_law: Cidade, rexión, territorio ou estado cuxas leis rexirán sobre as reclamacións e disputas.
|
||||||
dmca_address: Para operadores de USA, utiliza o mesmo enderezo rexistrado no DMCA Designated Agent Directory. Está dispoñible a opción de usar P.O. Box facendo a solicitude baixo a DMCA Designated Agent Post Office Box Waiver Request pedíndoa á Copyright Office e indicando que es un moderador de contidos na túa casa e temes ameazas ou violencia polas medidas que tomas e precisas usar un P.O. Box para que non sexa público o enderezo da túa casa.
|
dmca_address: Para operadores de USA, utiliza o mesmo enderezo rexistrado no DMCA Designated Agent Directory. Está dispoñible a opción de usar P.O. Box facendo a solicitude baixo a DMCA Designated Agent Post Office Box Waiver Request pedíndoa á Copyright Office e indicando que es un moderador de contidos na túa casa e temes ameazas ou violencia polas medidas que tomas e precisas usar un P.O. Box para que non sexa público o enderezo da túa casa.
|
||||||
dmca_email: Pode ser o mesmo enderezo de correo usado para "Enderezo para avisos legais"
|
dmca_email: Pode ser o mesmo enderezo de correo usado para "Enderezo para avisos legais"
|
||||||
domain: Identificador único do servizo en liña que proporcionas.
|
domain: Identificador único do servizo en liña que proporcionas.
|
||||||
@ -338,6 +339,7 @@ gl:
|
|||||||
admin_email: Enderezo de correo para avisos legais
|
admin_email: Enderezo de correo para avisos legais
|
||||||
arbitration_address: Enderezo físico para avisos de arbitraxe
|
arbitration_address: Enderezo físico para avisos de arbitraxe
|
||||||
arbitration_website: Páxina web para enviar avisos de arbitraxe
|
arbitration_website: Páxina web para enviar avisos de arbitraxe
|
||||||
|
choice_of_law: Xurisdición
|
||||||
dmca_address: Enderezo físico para avisos sobre DMCA/copyright
|
dmca_address: Enderezo físico para avisos sobre DMCA/copyright
|
||||||
dmca_email: Enderezo de correo electrónico para avisos sobre DMCA/copyright
|
dmca_email: Enderezo de correo electrónico para avisos sobre DMCA/copyright
|
||||||
domain: Dominio
|
domain: Dominio
|
||||||
|
@ -137,6 +137,7 @@ he:
|
|||||||
admin_email: מזכרים חוקיים כוללים הוראות בימ"ש, בקשות הסרה, תשובות להתראות ובקשות ציות לאכיפה.
|
admin_email: מזכרים חוקיים כוללים הוראות בימ"ש, בקשות הסרה, תשובות להתראות ובקשות ציות לאכיפה.
|
||||||
arbitration_address: יכול להיות כתובת פיזית זהה לעיל, או “N/A” אם משתמשים בדואל
|
arbitration_address: יכול להיות כתובת פיזית זהה לעיל, או “N/A” אם משתמשים בדואל
|
||||||
arbitration_website: יכול להיות טופס בדפדפן או “N/A” אם משתמשים בדואל
|
arbitration_website: יכול להיות טופס בדפדפן או “N/A” אם משתמשים בדואל
|
||||||
|
choice_of_law: עיר, מחוז, טריטוריה או מדינה שחוקיה חלים על כל התביעות והתלונות.
|
||||||
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
|
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
|
||||||
dmca_email: ניתן להשתמש באותה כתובת הדואל שעבור "כתובת דואל להודעות משפטיות" לעיל
|
dmca_email: ניתן להשתמש באותה כתובת הדואל שעבור "כתובת דואל להודעות משפטיות" לעיל
|
||||||
domain: זיהוי ייחודי של השירות המקוון שאתה מספק.
|
domain: זיהוי ייחודי של השירות המקוון שאתה מספק.
|
||||||
@ -338,6 +339,7 @@ he:
|
|||||||
admin_email: כתובת דוא"ל להודעות משפטיות
|
admin_email: כתובת דוא"ל להודעות משפטיות
|
||||||
arbitration_address: כתובת פיזית להודעות גישור
|
arbitration_address: כתובת פיזית להודעות גישור
|
||||||
arbitration_website: אתר רשת להגשת הודעות גישור
|
arbitration_website: אתר רשת להגשת הודעות גישור
|
||||||
|
choice_of_law: בחירת אזור שיפוט
|
||||||
dmca_address: כתובת פיזית לשליחת התראות זכויות יוצרים/DMCA
|
dmca_address: כתובת פיזית לשליחת התראות זכויות יוצרים/DMCA
|
||||||
dmca_email: כתובת דואל לשליחת התראות זכויות יוצרים/DMCA
|
dmca_email: כתובת דואל לשליחת התראות זכויות יוצרים/DMCA
|
||||||
domain: מתחם (דומיין)
|
domain: מתחם (דומיין)
|
||||||
|
@ -137,6 +137,7 @@ hu:
|
|||||||
admin_email: A jogi közlemények közé tartoznak az ellenkeresetek, a bírósági végzések, az eltávolítási kérelmek és a bűnüldöző szervek kérelmei is.
|
admin_email: A jogi közlemények közé tartoznak az ellenkeresetek, a bírósági végzések, az eltávolítási kérelmek és a bűnüldöző szervek kérelmei is.
|
||||||
arbitration_address: Lehet a fent használt valós cím, vagy e-mail használata esetén „N/A”
|
arbitration_address: Lehet a fent használt valós cím, vagy e-mail használata esetén „N/A”
|
||||||
arbitration_website: Lehet webes űrlap, vagy e-mail használata esetén „N/A”
|
arbitration_website: Lehet webes űrlap, vagy e-mail használata esetén „N/A”
|
||||||
|
choice_of_law: Város, régió, terület vagy állam, amely jogszabályai irányadóak az összes követelés esetén.
|
||||||
dmca_address: Amerikai üzemeltető esetén használja a DMCA Designated Agent Directory jegyzékében regisztrált címet. Közvetlen kérésre postafiók-jegyzék is rendelkezésre áll, használja a DMCA Designated Agent Directory postafiókról való lemondás iránti kérelmét a Copyright Office-nak küldött e-mailben, és írja le, hogy Ön egy otthoni tartalommoderátor, aki bosszútól vagy megtorlástól tart a tevékenységi miatt, és ezért egy postafiókra van szüksége, hogy ne legyen nyilvános az otthoni címe.
|
dmca_address: Amerikai üzemeltető esetén használja a DMCA Designated Agent Directory jegyzékében regisztrált címet. Közvetlen kérésre postafiók-jegyzék is rendelkezésre áll, használja a DMCA Designated Agent Directory postafiókról való lemondás iránti kérelmét a Copyright Office-nak küldött e-mailben, és írja le, hogy Ön egy otthoni tartalommoderátor, aki bosszútól vagy megtorlástól tart a tevékenységi miatt, és ezért egy postafiókra van szüksége, hogy ne legyen nyilvános az otthoni címe.
|
||||||
dmca_email: Megegyezhet a fenti „E-mail-cím a jogi nyilatkozatok benyújtásához” mezővel
|
dmca_email: Megegyezhet a fenti „E-mail-cím a jogi nyilatkozatok benyújtásához” mezővel
|
||||||
domain: A nyújtott online szolgáltatás egyedi azonosítója.
|
domain: A nyújtott online szolgáltatás egyedi azonosítója.
|
||||||
@ -338,6 +339,7 @@ hu:
|
|||||||
admin_email: E-mail-cím a jogi nyilatkozatok benyújtásához
|
admin_email: E-mail-cím a jogi nyilatkozatok benyújtásához
|
||||||
arbitration_address: Fizikai cím a békéltető testületi nyilatkozatok benyújtásához
|
arbitration_address: Fizikai cím a békéltető testületi nyilatkozatok benyújtásához
|
||||||
arbitration_website: Weboldal a békéltető testületi nyilatkozatok benyújtásához
|
arbitration_website: Weboldal a békéltető testületi nyilatkozatok benyújtásához
|
||||||
|
choice_of_law: Joghatóság
|
||||||
dmca_address: Fizikai cím a szerzői jogi nyilatkozatokhoz
|
dmca_address: Fizikai cím a szerzői jogi nyilatkozatokhoz
|
||||||
dmca_email: E-mail-cím a szerzői jogi nyilatkozatokhoz
|
dmca_email: E-mail-cím a szerzői jogi nyilatkozatokhoz
|
||||||
domain: Domain
|
domain: Domain
|
||||||
|
@ -137,6 +137,7 @@ is:
|
|||||||
admin_email: Löglegar tilkynningar ná yfir andsvör, dómsúrskurði, lokunarbeiðnir og beiðnir frá lögregluembættum.
|
admin_email: Löglegar tilkynningar ná yfir andsvör, dómsúrskurði, lokunarbeiðnir og beiðnir frá lögregluembættum.
|
||||||
arbitration_address: Má vera það sama og raunverulegt heimilisfang eða “N/A” ef tölvupóstur er notaður
|
arbitration_address: Má vera það sama og raunverulegt heimilisfang eða “N/A” ef tölvupóstur er notaður
|
||||||
arbitration_website: Má vera innfyllingarform á vefsíðu eða “N/A” ef tölvupóstur er notaður
|
arbitration_website: Má vera innfyllingarform á vefsíðu eða “N/A” ef tölvupóstur er notaður
|
||||||
|
choice_of_law: Sveitarfélög, héruð eða ríki þar sem ríkjandi lög og reglugerðir skulu stýra meðhöndlun á öllum kröfum.
|
||||||
dmca_address: Fyrir rekstraraðila í BNA ætti að nota heimilisfang sem skráð er í DMCA Designated Agent Directory. Hægt er að verða sér úti um A P.O. pósthólfsskráningu með beinni beiðni; notaðu DMCA Designated Agent Post Office Box Waiver Request til að senda tölvupóst á Copyright Office og lýstu því yfir að þú sért heimavinnandi efnismiðlari (home-based content moderator) sem átt á hættu refsingar eða hefndir vegna þess sem þú miðlar og þurfir því á slíku pósthólfi að halda svo þitt eigið heimilisfang sé ekki gert opinbert.
|
dmca_address: Fyrir rekstraraðila í BNA ætti að nota heimilisfang sem skráð er í DMCA Designated Agent Directory. Hægt er að verða sér úti um A P.O. pósthólfsskráningu með beinni beiðni; notaðu DMCA Designated Agent Post Office Box Waiver Request til að senda tölvupóst á Copyright Office og lýstu því yfir að þú sért heimavinnandi efnismiðlari (home-based content moderator) sem átt á hættu refsingar eða hefndir vegna þess sem þú miðlar og þurfir því á slíku pósthólfi að halda svo þitt eigið heimilisfang sé ekki gert opinbert.
|
||||||
dmca_email: Má vera sama tölvupóstfang og það sem notað er í “Tölvupóstfang vegna löglegra tilkynninga” hér að ofan
|
dmca_email: Má vera sama tölvupóstfang og það sem notað er í “Tölvupóstfang vegna löglegra tilkynninga” hér að ofan
|
||||||
domain: Einstakt auðkenni á netþjónustunni sem þú býður.
|
domain: Einstakt auðkenni á netþjónustunni sem þú býður.
|
||||||
@ -338,6 +339,7 @@ is:
|
|||||||
admin_email: Tölvupóstfang vegna löglegra tilkynninga
|
admin_email: Tölvupóstfang vegna löglegra tilkynninga
|
||||||
arbitration_address: Raunverulegt heimilisfang fyrir tilkynningar um úrskurði
|
arbitration_address: Raunverulegt heimilisfang fyrir tilkynningar um úrskurði
|
||||||
arbitration_website: Vefsvæði til að senda inn tilkynningar um úrskurði
|
arbitration_website: Vefsvæði til að senda inn tilkynningar um úrskurði
|
||||||
|
choice_of_law: Val á lagaumgjörð
|
||||||
dmca_address: Raunverulegt heimilisfang fyrir kröfur vegna DMCA/höfundarréttar
|
dmca_address: Raunverulegt heimilisfang fyrir kröfur vegna DMCA/höfundarréttar
|
||||||
dmca_email: Tölvupóstfang tilkynninga vegna DMCA/höfundaréttar
|
dmca_email: Tölvupóstfang tilkynninga vegna DMCA/höfundaréttar
|
||||||
domain: Lén
|
domain: Lén
|
||||||
|
@ -137,6 +137,7 @@ it:
|
|||||||
admin_email: Gli avvisi legali includono controavvisi, ordinanze del tribunale, richieste di rimozione e richieste delle forze dell'ordine.
|
admin_email: Gli avvisi legali includono controavvisi, ordinanze del tribunale, richieste di rimozione e richieste delle forze dell'ordine.
|
||||||
arbitration_address: Può essere lo stesso dell'indirizzo fisico sopra o "N/A" se si utilizza l'email
|
arbitration_address: Può essere lo stesso dell'indirizzo fisico sopra o "N/A" se si utilizza l'email
|
||||||
arbitration_website: Può essere un modulo web o "N/A" se si utilizza l'email
|
arbitration_website: Può essere un modulo web o "N/A" se si utilizza l'email
|
||||||
|
choice_of_law: Città, regione, territorio o Stato le cui leggi sostanziali interne regoleranno tutti i reclami.
|
||||||
dmca_address: Per gli operatori statunitensi, utilizzare l'indirizzo registrato nella DMCA Designated Agent Directory. L'elenco delle caselle postali è disponibile su richiesta diretta, utilizzando il DMCA Designated Agent Post Office Box Waiver Request per inviare un'email al Copyright Office e descrivendo di essere un moderatore di contenuti che lavora da casa e che teme vendette o punizioni per le proprie azioni e che hai bisogno di usare una casella postale per rimuovere il tuo indirizzo di casa dalla vista pubblica.
|
dmca_address: Per gli operatori statunitensi, utilizzare l'indirizzo registrato nella DMCA Designated Agent Directory. L'elenco delle caselle postali è disponibile su richiesta diretta, utilizzando il DMCA Designated Agent Post Office Box Waiver Request per inviare un'email al Copyright Office e descrivendo di essere un moderatore di contenuti che lavora da casa e che teme vendette o punizioni per le proprie azioni e che hai bisogno di usare una casella postale per rimuovere il tuo indirizzo di casa dalla vista pubblica.
|
||||||
dmca_email: Può essere lo stesso indirizzo email utilizzato per "Indirizzo email per avvisi legali" sopra
|
dmca_email: Può essere lo stesso indirizzo email utilizzato per "Indirizzo email per avvisi legali" sopra
|
||||||
domain: Identificazione univoca del servizio online che stai fornendo.
|
domain: Identificazione univoca del servizio online che stai fornendo.
|
||||||
@ -338,6 +339,7 @@ it:
|
|||||||
admin_email: Indirizzo email per avvisi legali
|
admin_email: Indirizzo email per avvisi legali
|
||||||
arbitration_address: Indirizzo fisico per avvisi di arbitrato
|
arbitration_address: Indirizzo fisico per avvisi di arbitrato
|
||||||
arbitration_website: Sito web per l'invio di avvisi di arbitrato
|
arbitration_website: Sito web per l'invio di avvisi di arbitrato
|
||||||
|
choice_of_law: Scelta della legge
|
||||||
dmca_address: Indirizzo fisico per gli avvisi DMCA/copyright
|
dmca_address: Indirizzo fisico per gli avvisi DMCA/copyright
|
||||||
dmca_email: Indirizzo email per gli avvisi DMCA/copyright
|
dmca_email: Indirizzo email per gli avvisi DMCA/copyright
|
||||||
domain: Dominio
|
domain: Dominio
|
||||||
|
@ -110,6 +110,7 @@ lt:
|
|||||||
admin_email: Teisiniai pranešimai įtraukia priešpriešinius pranešimus, teismo įsakymus, pašalinimo prašymus ir teisėsaugos institucijų prašymus.
|
admin_email: Teisiniai pranešimai įtraukia priešpriešinius pranešimus, teismo įsakymus, pašalinimo prašymus ir teisėsaugos institucijų prašymus.
|
||||||
arbitration_address: Gali būti toks pat kaip aukščiau nurodytas fizinis adresas arba „N/A“ (netaikoma), jei naudojamas el. paštas.
|
arbitration_address: Gali būti toks pat kaip aukščiau nurodytas fizinis adresas arba „N/A“ (netaikoma), jei naudojamas el. paštas.
|
||||||
arbitration_website: Gali būti interneto forma arba „N/A“ (netaikoma), jei naudojamas el. paštas.
|
arbitration_website: Gali būti interneto forma arba „N/A“ (netaikoma), jei naudojamas el. paštas.
|
||||||
|
choice_of_law: Miestas, regionas, teritorija ar valstija, kurių vidaus materialinė teisė reglamentuoja visus reikalavimus.
|
||||||
dmca_address: JAV operatoriams naudokite DMCA paskirtojo agento kataloge užregistruotą adresą. Pašto dėžutės sąrašą galima sudaryti pateikus tiesioginį prašymą, naudokite DMCA paskirtojo agento pašto dėžutės atsisakymo prašymą, kad parašytumėte el. laišką Autorinių teisių tarnybai ir aprašytumėte, kad esate namuose įsikūręs turinio moderatorius, kuris baiminasi keršto ar bausmės už savo veiksmus ir kuriam reikia naudoti pašto dėžutę, kad jo namų adresas nebūtų viešai matomas.
|
dmca_address: JAV operatoriams naudokite DMCA paskirtojo agento kataloge užregistruotą adresą. Pašto dėžutės sąrašą galima sudaryti pateikus tiesioginį prašymą, naudokite DMCA paskirtojo agento pašto dėžutės atsisakymo prašymą, kad parašytumėte el. laišką Autorinių teisių tarnybai ir aprašytumėte, kad esate namuose įsikūręs turinio moderatorius, kuris baiminasi keršto ar bausmės už savo veiksmus ir kuriam reikia naudoti pašto dėžutę, kad jo namų adresas nebūtų viešai matomas.
|
||||||
dmca_email: Gali būti tas pats aukščiau nurodytas el. pašto adresas, naudojamas „El. pašto adresas, skirtas teisiniams pranešimams“.
|
dmca_email: Gali būti tas pats aukščiau nurodytas el. pašto adresas, naudojamas „El. pašto adresas, skirtas teisiniams pranešimams“.
|
||||||
domain: Unikalus jūsų teikiamos internetinės paslaugos identifikavimas.
|
domain: Unikalus jūsų teikiamos internetinės paslaugos identifikavimas.
|
||||||
@ -234,6 +235,7 @@ lt:
|
|||||||
admin_email: El. pašto adresas, skirtas teisiniams pranešimams
|
admin_email: El. pašto adresas, skirtas teisiniams pranešimams
|
||||||
arbitration_address: Fizinis adresas pranešimams apie arbitražą
|
arbitration_address: Fizinis adresas pranešimams apie arbitražą
|
||||||
arbitration_website: Svetainė pranešimams apie arbitražą
|
arbitration_website: Svetainė pranešimams apie arbitražą
|
||||||
|
choice_of_law: Teisės pasirinkimas
|
||||||
dmca_address: Fizinis adresas, skirtas DMCA / autorinių teisių pranešimams
|
dmca_address: Fizinis adresas, skirtas DMCA / autorinių teisių pranešimams
|
||||||
dmca_email: El. pašto adresas, skirtas DMCA / autorinių teisių pranešimams
|
dmca_email: El. pašto adresas, skirtas DMCA / autorinių teisių pranešimams
|
||||||
domain: Domenas
|
domain: Domenas
|
||||||
|
@ -3,6 +3,7 @@ lv:
|
|||||||
simple_form:
|
simple_form:
|
||||||
hints:
|
hints:
|
||||||
account:
|
account:
|
||||||
|
attribution_domains: Viens katrā līnijā. Aizsargā no nepatiesa attiecinājuma.
|
||||||
discoverable: Tavas publiskās ziņas un profils var tikt piedāvāti vai ieteikti dažādās Mastodon vietās, un tavs profils var tikt ieteikts citiem lietotājiem.
|
discoverable: Tavas publiskās ziņas un profils var tikt piedāvāti vai ieteikti dažādās Mastodon vietās, un tavs profils var tikt ieteikts citiem lietotājiem.
|
||||||
display_name: Tavs pilnais vārds vai tavs joku vārds.
|
display_name: Tavs pilnais vārds vai tavs joku vārds.
|
||||||
fields: Tava mājas lapa, vietniekvārdi, vecums, viss, ko vēlies.
|
fields: Tava mājas lapa, vietniekvārdi, vecums, viss, ko vēlies.
|
||||||
@ -59,6 +60,7 @@ lv:
|
|||||||
setting_display_media_default: Paslēpt multividi, kas atzīmēta kā sensitīva
|
setting_display_media_default: Paslēpt multividi, kas atzīmēta kā sensitīva
|
||||||
setting_display_media_hide_all: Vienmēr slēpt multividi
|
setting_display_media_hide_all: Vienmēr slēpt multividi
|
||||||
setting_display_media_show_all: Vienmēr rādīt multividi
|
setting_display_media_show_all: Vienmēr rādīt multividi
|
||||||
|
setting_system_scrollbars_ui: Attiecas tikai uz darbvirsmas pārlūkiem, kuru pamatā ir Safari vai Chrome
|
||||||
setting_use_blurhash: Pāreju pamatā ir paslēpto uzskatāmo līdzekļu krāsas, bet saturs tiek padarīts neskaidrs
|
setting_use_blurhash: Pāreju pamatā ir paslēpto uzskatāmo līdzekļu krāsas, bet saturs tiek padarīts neskaidrs
|
||||||
setting_use_pending_items: Paslēpt laika skalas atjauninājumus aiz klikšķa, nevis ar automātisku plūsmas ritināšanu
|
setting_use_pending_items: Paslēpt laika skalas atjauninājumus aiz klikšķa, nevis ar automātisku plūsmas ritināšanu
|
||||||
username: Tu vari lietot burtus, ciparus un zemsvītras
|
username: Tu vari lietot burtus, ciparus un zemsvītras
|
||||||
@ -128,6 +130,9 @@ lv:
|
|||||||
show_application: Tu vienmēr varēsi redzēt, kura lietotne publicēja tavu ziņu.
|
show_application: Tu vienmēr varēsi redzēt, kura lietotne publicēja tavu ziņu.
|
||||||
tag:
|
tag:
|
||||||
name: Tu vari mainīt tikai burtu lielumu, piemēram, lai tie būtu vieglāk lasāmi
|
name: Tu vari mainīt tikai burtu lielumu, piemēram, lai tie būtu vieglāk lasāmi
|
||||||
|
terms_of_service:
|
||||||
|
changelog: Var veidot ar Markdown pierakstu.
|
||||||
|
text: Var veidot ar Markdown pierakstu.
|
||||||
user:
|
user:
|
||||||
chosen_languages: Ja ieķeksēts, publiskos laika grafikos tiks parādītas tikai ziņas noteiktajās valodās
|
chosen_languages: Ja ieķeksēts, publiskos laika grafikos tiks parādītas tikai ziņas noteiktajās valodās
|
||||||
role: Loma nosaka, kādas lietotājam ir atļaujas.
|
role: Loma nosaka, kādas lietotājam ir atļaujas.
|
||||||
|
@ -77,6 +77,7 @@ ms:
|
|||||||
bootstrap_timeline_accounts: Akaun ini akan disematkan pada bahagian atas cadangan ikutan pengguna baharu.
|
bootstrap_timeline_accounts: Akaun ini akan disematkan pada bahagian atas cadangan ikutan pengguna baharu.
|
||||||
closed_registrations_message: Dipaparkan semasa pendaftaran ditutup
|
closed_registrations_message: Dipaparkan semasa pendaftaran ditutup
|
||||||
custom_css: Anda boleh menggunakan gaya tersuai pada versi web Mastodon.
|
custom_css: Anda boleh menggunakan gaya tersuai pada versi web Mastodon.
|
||||||
|
favicon: WEBP, PNG, GIF, atau JPG. Arca tersuai diutamakan dari arca kegemaran Mastodon lalai.
|
||||||
mascot: Mengatasi ilustrasi dalam antara muka web lanjutan.
|
mascot: Mengatasi ilustrasi dalam antara muka web lanjutan.
|
||||||
peers_api_enabled: Senarai nama domain yang pernah ditemui oleh server ini dalam fediverse. Tiada data disertakan di sini tentang sama ada anda bersekutu dengan server tertentu, cuma server anda mengetahuinya. Ini digunakan oleh perkhidmatan yang mengumpul statistik mengenai persekutuan dalam pengertian umum.
|
peers_api_enabled: Senarai nama domain yang pernah ditemui oleh server ini dalam fediverse. Tiada data disertakan di sini tentang sama ada anda bersekutu dengan server tertentu, cuma server anda mengetahuinya. Ini digunakan oleh perkhidmatan yang mengumpul statistik mengenai persekutuan dalam pengertian umum.
|
||||||
profile_directory: Direktori profil menyenaraikan semua pengguna yang telah mengikut serta untuk ditemui.
|
profile_directory: Direktori profil menyenaraikan semua pengguna yang telah mengikut serta untuk ditemui.
|
||||||
@ -236,6 +237,7 @@ ms:
|
|||||||
bootstrap_timeline_accounts: Sentiasa mengesyorkan akaun ini kepada pengguna baharu
|
bootstrap_timeline_accounts: Sentiasa mengesyorkan akaun ini kepada pengguna baharu
|
||||||
closed_registrations_message: Mesej tersuai apabila pendaftaran tidak tersedia
|
closed_registrations_message: Mesej tersuai apabila pendaftaran tidak tersedia
|
||||||
custom_css: CSS tersuai
|
custom_css: CSS tersuai
|
||||||
|
favicon: Arca kegemaran
|
||||||
mascot: Maskot tersuai (warisan)
|
mascot: Maskot tersuai (warisan)
|
||||||
media_cache_retention_period: Tempoh pengekalan cache media
|
media_cache_retention_period: Tempoh pengekalan cache media
|
||||||
peers_api_enabled: Terbitkan senarai pelayan yang ditemui dalam API
|
peers_api_enabled: Terbitkan senarai pelayan yang ditemui dalam API
|
||||||
@ -276,7 +278,7 @@ ms:
|
|||||||
notification_emails:
|
notification_emails:
|
||||||
appeal: Seseorang merayu keputusan moderator
|
appeal: Seseorang merayu keputusan moderator
|
||||||
digest: Hantar e-mel ringkasan
|
digest: Hantar e-mel ringkasan
|
||||||
favourite: Seorang menggemarkan hantaran anda
|
favourite: Seseorang menyukai hantaran anda
|
||||||
follow: Seorang mengikuti anda
|
follow: Seorang mengikuti anda
|
||||||
follow_request: Seorang meminta untuk mengikuti anda
|
follow_request: Seorang meminta untuk mengikuti anda
|
||||||
mention: Seorang menyebut anda
|
mention: Seorang menyebut anda
|
||||||
|
@ -137,6 +137,7 @@ nl:
|
|||||||
admin_email: Juridische mededelingen zijn o. a. counter-notices, gerechterlijke bevelen, takedown-requests en handhavingsverzoeken.
|
admin_email: Juridische mededelingen zijn o. a. counter-notices, gerechterlijke bevelen, takedown-requests en handhavingsverzoeken.
|
||||||
arbitration_address: Kan hetzelfde zijn als bovenstaand vestigingsadres of "N/A" bij gebruik van e-mail
|
arbitration_address: Kan hetzelfde zijn als bovenstaand vestigingsadres of "N/A" bij gebruik van e-mail
|
||||||
arbitration_website: Kan een webformulier zijn, of "N/A" als e-mail wordt gebruikt
|
arbitration_website: Kan een webformulier zijn, of "N/A" als e-mail wordt gebruikt
|
||||||
|
choice_of_law: Stad, regio, grondgebied of staat waar de interne grondwetten van toepassing zijn op alle claims.
|
||||||
dmca_address: 'Gebruik voor beheerders in de VS: het adres dat is geregistreerd in de DMCA Designated Agent Directory. Op verzoek is er een postbuslijst beschikbaar. Gebruik het DMCA Designated Agent Post Office Box Waiver Request om het Copyright Office te e-mailen en te beschrijven dat je een vanaf huis opererende inhoudsmoderator bent, die wraak of vergelding vreest voor je moderator-acties en daarom een postbus moet gebruiken om jouw huisadres uit het publieke domein te houden.'
|
dmca_address: 'Gebruik voor beheerders in de VS: het adres dat is geregistreerd in de DMCA Designated Agent Directory. Op verzoek is er een postbuslijst beschikbaar. Gebruik het DMCA Designated Agent Post Office Box Waiver Request om het Copyright Office te e-mailen en te beschrijven dat je een vanaf huis opererende inhoudsmoderator bent, die wraak of vergelding vreest voor je moderator-acties en daarom een postbus moet gebruiken om jouw huisadres uit het publieke domein te houden.'
|
||||||
dmca_email: Kan hetzelfde e-mailadres zijn dat gebruikt wordt voor "E-mailadres voor juridische berichten" hierboven
|
dmca_email: Kan hetzelfde e-mailadres zijn dat gebruikt wordt voor "E-mailadres voor juridische berichten" hierboven
|
||||||
domain: Een unieke identificatie van de online dienst die je levert.
|
domain: Een unieke identificatie van de online dienst die je levert.
|
||||||
@ -338,6 +339,7 @@ nl:
|
|||||||
admin_email: E-mailadres voor juridische meldingen
|
admin_email: E-mailadres voor juridische meldingen
|
||||||
arbitration_address: Vestigingsadres voor arbitrage-mededelingen
|
arbitration_address: Vestigingsadres voor arbitrage-mededelingen
|
||||||
arbitration_website: Website voor het indienen van arbitrage-mededelingen
|
arbitration_website: Website voor het indienen van arbitrage-mededelingen
|
||||||
|
choice_of_law: Keuze van recht
|
||||||
dmca_address: Vestigingsadres voor DMCA/auteursrecht-mededelingen
|
dmca_address: Vestigingsadres voor DMCA/auteursrecht-mededelingen
|
||||||
dmca_email: E-mailadres voor DMCA/auteursrecht-mededelingen
|
dmca_email: E-mailadres voor DMCA/auteursrecht-mededelingen
|
||||||
domain: Domein
|
domain: Domein
|
||||||
|
@ -137,6 +137,7 @@ pt-PT:
|
|||||||
admin_email: Os avisos legais incluem contra-avisos, ordens judiciais, pedidos de remoção e pedidos de aplicação da lei.
|
admin_email: Os avisos legais incluem contra-avisos, ordens judiciais, pedidos de remoção e pedidos de aplicação da lei.
|
||||||
arbitration_address: Pode ser o mesmo que o endereço físico acima ou “N/A” se utilizar e-mail
|
arbitration_address: Pode ser o mesmo que o endereço físico acima ou “N/A” se utilizar e-mail
|
||||||
arbitration_website: Pode ser um formulário web ou “N/A” se for utilizado o e-mail
|
arbitration_website: Pode ser um formulário web ou “N/A” se for utilizado o e-mail
|
||||||
|
choice_of_law: A legislação interna do estado, território, região ou cidade que deve regular qualquer conflito.
|
||||||
dmca_address: Para operadores dos EUA, utilize o endereço registado no Diretório de Agentes Designados DMCA. A listagem de uma caixa postal está disponível mediante pedido direto. Utilize o DMCA Designated Agent Post Office Box Waiver Request para enviar uma mensagem de correio eletrónico ao Copyright Office e descreva que é um moderador de conteúdos baseado em casa que receia vingança ou represálias pelas suas ações e que necessita de utilizar uma caixa postal para retirar o seu endereço de casa da vista do público.
|
dmca_address: Para operadores dos EUA, utilize o endereço registado no Diretório de Agentes Designados DMCA. A listagem de uma caixa postal está disponível mediante pedido direto. Utilize o DMCA Designated Agent Post Office Box Waiver Request para enviar uma mensagem de correio eletrónico ao Copyright Office e descreva que é um moderador de conteúdos baseado em casa que receia vingança ou represálias pelas suas ações e que necessita de utilizar uma caixa postal para retirar o seu endereço de casa da vista do público.
|
||||||
dmca_email: Pode ser o mesmo e-mail utilizado para “Endereço de e-mail para avisos legais” acima
|
dmca_email: Pode ser o mesmo e-mail utilizado para “Endereço de e-mail para avisos legais” acima
|
||||||
domain: Identificação única do serviço online que está a prestar.
|
domain: Identificação única do serviço online que está a prestar.
|
||||||
@ -338,6 +339,7 @@ pt-PT:
|
|||||||
admin_email: Endereço de e-mail para avisos legais
|
admin_email: Endereço de e-mail para avisos legais
|
||||||
arbitration_address: Endereço físico para avisos de arbitragem
|
arbitration_address: Endereço físico para avisos de arbitragem
|
||||||
arbitration_website: Website para enviar avisos de arbitragem
|
arbitration_website: Website para enviar avisos de arbitragem
|
||||||
|
choice_of_law: Escolha da legislação
|
||||||
dmca_address: Endereço físico para avisos DMCA / direitos autorais
|
dmca_address: Endereço físico para avisos DMCA / direitos autorais
|
||||||
dmca_email: Endereço de e-mail para avisos DMCA/direitos autorais
|
dmca_email: Endereço de e-mail para avisos DMCA/direitos autorais
|
||||||
domain: Domínio
|
domain: Domínio
|
||||||
|
@ -137,6 +137,7 @@ ru:
|
|||||||
admin_email: Юридические уведомления включают в себя встречные уведомления, постановления суда, запросы на удаление и запросы правоохранительных органов.
|
admin_email: Юридические уведомления включают в себя встречные уведомления, постановления суда, запросы на удаление и запросы правоохранительных органов.
|
||||||
arbitration_address: Может совпадать с почтовым адресом, указанным выше, либо «N/A» в случае электронной почты
|
arbitration_address: Может совпадать с почтовым адресом, указанным выше, либо «N/A» в случае электронной почты
|
||||||
arbitration_website: Веб-форма или «N/A» в случае электронной почты
|
arbitration_website: Веб-форма или «N/A» в случае электронной почты
|
||||||
|
choice_of_law: Город, регион, территория или государственное материальное право, которое регулирует любые претензии и все их требования.
|
||||||
dmca_address: Находящиеся в США операторы должны использовать адрес, зарегистрированный в DMCA Designated Agent Directory. Использовать абонентский ящик возможно при обращении в соответствующей просьбой, для чего нужно с помощью DMCA Designated Agent Post Office Box Waiver Request написать сообщение в Copyright Office и объяснить, что вы занимаетесь модерацией контента из дома и опасаетесь мести за свои действия, поэтому должны использовать абонентский ящик, чтобы убрать ваш домашний адрес из общего доступа.
|
dmca_address: Находящиеся в США операторы должны использовать адрес, зарегистрированный в DMCA Designated Agent Directory. Использовать абонентский ящик возможно при обращении в соответствующей просьбой, для чего нужно с помощью DMCA Designated Agent Post Office Box Waiver Request написать сообщение в Copyright Office и объяснить, что вы занимаетесь модерацией контента из дома и опасаетесь мести за свои действия, поэтому должны использовать абонентский ящик, чтобы убрать ваш домашний адрес из общего доступа.
|
||||||
dmca_email: Может совпадать с адресом электронной почты для юридических уведомлений, указанным выше
|
dmca_email: Может совпадать с адресом электронной почты для юридических уведомлений, указанным выше
|
||||||
domain: Имя, позволяющее уникально идентифицировать ваш онлайн-ресурс.
|
domain: Имя, позволяющее уникально идентифицировать ваш онлайн-ресурс.
|
||||||
@ -338,6 +339,7 @@ ru:
|
|||||||
admin_email: Адрес электронной почты для юридических уведомлений
|
admin_email: Адрес электронной почты для юридических уведомлений
|
||||||
arbitration_address: Почтовый адрес для уведомлений об арбитраже
|
arbitration_address: Почтовый адрес для уведомлений об арбитраже
|
||||||
arbitration_website: Вебсайт для подачи уведомления об арбитраже
|
arbitration_website: Вебсайт для подачи уведомления об арбитраже
|
||||||
|
choice_of_law: Выбор закана.
|
||||||
dmca_address: Почтовый адрес для обращений правообладателей
|
dmca_address: Почтовый адрес для обращений правообладателей
|
||||||
dmca_email: Адрес электронной почты для обращений правообладателей
|
dmca_email: Адрес электронной почты для обращений правообладателей
|
||||||
domain: Доменное имя
|
domain: Доменное имя
|
||||||
|
@ -137,6 +137,7 @@ sq:
|
|||||||
admin_email: Njoftimet ligjore përfshijnë kundërnjoftime, vendime gjyqi, kërkesa për për nxjerrje sajti jashtë shërbimit dhe kërkesa nga organe ligjore.
|
admin_email: Njoftimet ligjore përfshijnë kundërnjoftime, vendime gjyqi, kërkesa për për nxjerrje sajti jashtë shërbimit dhe kërkesa nga organe ligjore.
|
||||||
arbitration_address: Mund të jetë e njëjtë me adresën Fizike më sipër, ose “N/A”, nëse përdoret email
|
arbitration_address: Mund të jetë e njëjtë me adresën Fizike më sipër, ose “N/A”, nëse përdoret email
|
||||||
arbitration_website: Mund të jetë një formular web, ose “N/A”, nëse përdoret email
|
arbitration_website: Mund të jetë një formular web, ose “N/A”, nëse përdoret email
|
||||||
|
choice_of_law: Qytet, rajon, territor ose shtet, ligjet e brendshme të të cilit do të administrojnë çfarëdo dhe tërë pretendimet.
|
||||||
dmca_email: Mund të jetë i njëjti email i përdorur për “Adresë email për njoftime ligjore” më sipëer
|
dmca_email: Mund të jetë i njëjti email i përdorur për “Adresë email për njoftime ligjore” më sipëer
|
||||||
domain: Identifikues unik për shërbimin internetor që po ofroni.
|
domain: Identifikues unik për shërbimin internetor që po ofroni.
|
||||||
jurisdiction: Vendosni vendin ku jeton cilido që paguan faturat. Nëse është një shoqëri apo tjetër njësi, vendosni vendin ku është regjistruar, si dhe qytetin, rajonin, territorin apo shtetin përkatës.
|
jurisdiction: Vendosni vendin ku jeton cilido që paguan faturat. Nëse është një shoqëri apo tjetër njësi, vendosni vendin ku është regjistruar, si dhe qytetin, rajonin, territorin apo shtetin përkatës.
|
||||||
@ -337,6 +338,7 @@ sq:
|
|||||||
admin_email: Adresë email për njoftime ligjore
|
admin_email: Adresë email për njoftime ligjore
|
||||||
arbitration_address: Adresë fizike për njoftime arbitrazhi
|
arbitration_address: Adresë fizike për njoftime arbitrazhi
|
||||||
arbitration_website: Sajtin për parashtrim njoftime arbitrazhi
|
arbitration_website: Sajtin për parashtrim njoftime arbitrazhi
|
||||||
|
choice_of_law: Zgjedhje Ligji
|
||||||
dmca_address: Adresë fizike për njoftime DMCA/të drejtash kopjimi
|
dmca_address: Adresë fizike për njoftime DMCA/të drejtash kopjimi
|
||||||
dmca_email: Adresë email për njoftime DMCA/të drejtash kopjimi
|
dmca_email: Adresë email për njoftime DMCA/të drejtash kopjimi
|
||||||
domain: Përkatësi
|
domain: Përkatësi
|
||||||
|
@ -137,6 +137,7 @@ tr:
|
|||||||
admin_email: Yasal bildirimler arasında karşı bildirimler, mahkeme kararları, yayından kaldırma talepleri ve kolluk kuvvetleri talepleri yer alır.
|
admin_email: Yasal bildirimler arasında karşı bildirimler, mahkeme kararları, yayından kaldırma talepleri ve kolluk kuvvetleri talepleri yer alır.
|
||||||
arbitration_address: Yukarıdaki fiziksel adresle aynı olabilir, veya e-posta kullanıyorsanız "N/A"
|
arbitration_address: Yukarıdaki fiziksel adresle aynı olabilir, veya e-posta kullanıyorsanız "N/A"
|
||||||
arbitration_website: Web formu olabilir, veya e-posta kullanıyorsanız "N/A"
|
arbitration_website: Web formu olabilir, veya e-posta kullanıyorsanız "N/A"
|
||||||
|
choice_of_law: Her türlü iddiayı yönetecek olan iç maddi yasalara ilişkin şehir, bölge, eyalet veya ülke.
|
||||||
dmca_address: ABD operatörleri için DMCA Atanmış Temsilci Dizininde kayıtlı adresi kullanın. Doğrudan taleple Posta Kutusu kullanımı mümkündür, Telif Hakkı Ofisine e-posta göndermek için DMCA Atanmış Temsilci Posta Kutusu Feragat Talebini kullanın ve eylemleriniz nedeniyle intikam veya cezalandırılmaktan çekinen ve herkese açık ev adresini kullanmamak için Posta Kutusu kullanması gereken ev tabanlı bir içerik moderatörü olduğunuzu açıklayın.
|
dmca_address: ABD operatörleri için DMCA Atanmış Temsilci Dizininde kayıtlı adresi kullanın. Doğrudan taleple Posta Kutusu kullanımı mümkündür, Telif Hakkı Ofisine e-posta göndermek için DMCA Atanmış Temsilci Posta Kutusu Feragat Talebini kullanın ve eylemleriniz nedeniyle intikam veya cezalandırılmaktan çekinen ve herkese açık ev adresini kullanmamak için Posta Kutusu kullanması gereken ev tabanlı bir içerik moderatörü olduğunuzu açıklayın.
|
||||||
dmca_email: Yukarıdaki "Yasal bildirimler için e-posta adresi" için kullanılan e-posta ile aynı olabilir
|
dmca_email: Yukarıdaki "Yasal bildirimler için e-posta adresi" için kullanılan e-posta ile aynı olabilir
|
||||||
domain: Sağladığınız çevrimiçi hizmetin benzersiz tanımlaması.
|
domain: Sağladığınız çevrimiçi hizmetin benzersiz tanımlaması.
|
||||||
@ -338,6 +339,7 @@ tr:
|
|||||||
admin_email: Yasal bildirimler için e-posta adresi
|
admin_email: Yasal bildirimler için e-posta adresi
|
||||||
arbitration_address: Tahkim bildirimleri için fiziksel adres
|
arbitration_address: Tahkim bildirimleri için fiziksel adres
|
||||||
arbitration_website: Tahkim bildirimlerini göndermek için website
|
arbitration_website: Tahkim bildirimlerini göndermek için website
|
||||||
|
choice_of_law: Yasa Tercihi
|
||||||
dmca_address: DMCA/telif hakkı bildirimleri için fiziksel adres
|
dmca_address: DMCA/telif hakkı bildirimleri için fiziksel adres
|
||||||
dmca_email: DMCA/telif hakkı bildirimleri için e-posta adresi
|
dmca_email: DMCA/telif hakkı bildirimleri için e-posta adresi
|
||||||
domain: Alan adı
|
domain: Alan adı
|
||||||
|
@ -137,6 +137,7 @@ uk:
|
|||||||
admin_email: Юридичні повідомлення містять зустрічні повідомлення, ухвали суду, запити на видалення та запити правоохоронних органів.
|
admin_email: Юридичні повідомлення містять зустрічні повідомлення, ухвали суду, запити на видалення та запити правоохоронних органів.
|
||||||
arbitration_address: Може бути таким самим, як і фізична адреса вище, або "N/A", якщо використано електронну пошту
|
arbitration_address: Може бути таким самим, як і фізична адреса вище, або "N/A", якщо використано електронну пошту
|
||||||
arbitration_website: Може бути вебформою або "N/A", якщо використано електронну пошту
|
arbitration_website: Може бути вебформою або "N/A", якщо використано електронну пошту
|
||||||
|
choice_of_law: Місто, регіон, територія або держава внутрішні змістовні закони яких повинні керувати будь-якими та всіма твердженнями.
|
||||||
dmca_address: Для американських операторів використовуйте адресу, зареєстровану в довіднику призначених агентів DMCA. П.О. Перелік скриньок доступний за прямим запитом. Скористайтеся запитом на відмову від поштової скриньки призначеного агента Закону про захист авторських прав у цифрову епоху, щоб надіслати електронний лист до Бюро авторських прав, і опишіть, що ви домашній модератор вмісту, який боїться помсти чи відплати за свої дії та потребує використання P.O. Box, щоб видалити вашу домашню адресу з публічного перегляду.
|
dmca_address: Для американських операторів використовуйте адресу, зареєстровану в довіднику призначених агентів DMCA. П.О. Перелік скриньок доступний за прямим запитом. Скористайтеся запитом на відмову від поштової скриньки призначеного агента Закону про захист авторських прав у цифрову епоху, щоб надіслати електронний лист до Бюро авторських прав, і опишіть, що ви домашній модератор вмісту, який боїться помсти чи відплати за свої дії та потребує використання P.O. Box, щоб видалити вашу домашню адресу з публічного перегляду.
|
||||||
dmca_email: Це може бути та сама адреса електронної пошти, яку використано в розділі «Електронна адреса для юридичних повідомлень» вище
|
dmca_email: Це може бути та сама адреса електронної пошти, яку використано в розділі «Електронна адреса для юридичних повідомлень» вище
|
||||||
domain: Унікальна ідентифікація онлайн-сервісу, який ви надаєте.
|
domain: Унікальна ідентифікація онлайн-сервісу, який ви надаєте.
|
||||||
@ -337,6 +338,7 @@ uk:
|
|||||||
admin_email: Адреса електронної пошти для юридичних повідомлень
|
admin_email: Адреса електронної пошти для юридичних повідомлень
|
||||||
arbitration_address: Фізична адреса для арбітражних повідомлень
|
arbitration_address: Фізична адреса для арбітражних повідомлень
|
||||||
arbitration_website: Сайт для надсилання арбітражних повідомлень
|
arbitration_website: Сайт для надсилання арбітражних повідомлень
|
||||||
|
choice_of_law: Вибір права
|
||||||
dmca_address: Фізична адреса для сповіщень про DMCA/авторські права
|
dmca_address: Фізична адреса для сповіщень про DMCA/авторські права
|
||||||
dmca_email: Фізична адреса для сповіщень про DMCA/авторські права
|
dmca_email: Фізична адреса для сповіщень про DMCA/авторські права
|
||||||
domain: Домен
|
domain: Домен
|
||||||
|
@ -137,6 +137,7 @@ vi:
|
|||||||
admin_email: Thông báo pháp lý bao gồm thông báo phản đối, lệnh của tòa án, yêu cầu gỡ bỏ và yêu cầu của cơ quan thực thi pháp luật.
|
admin_email: Thông báo pháp lý bao gồm thông báo phản đối, lệnh của tòa án, yêu cầu gỡ bỏ và yêu cầu của cơ quan thực thi pháp luật.
|
||||||
arbitration_address: Có thể giống với Địa chỉ liên hệ ở trên hoặc “N/A” nếu sử dụng email
|
arbitration_address: Có thể giống với Địa chỉ liên hệ ở trên hoặc “N/A” nếu sử dụng email
|
||||||
arbitration_website: Có thể dùng biểu mẫu online, hoặc “N/A” nếu dùng email
|
arbitration_website: Có thể dùng biểu mẫu online, hoặc “N/A” nếu dùng email
|
||||||
|
choice_of_law: Thành phố, khu vực, lãnh thổ hoặc tiểu bang có luật riêng sẽ chi phối mọi khiếu nại.
|
||||||
dmca_address: Đối với các quản trị viên tại Hoa Kỳ, hãy sử dụng địa chỉ đã đăng ký trong Danh bạ đại lý được chỉ định của DMCA. Danh sách hộp thư bưu điện có sẵn khi yêu cầu trực tiếp, hãy sử dụng Yêu cầu miễn trừ hộp thư bưu điện của đại lý được chỉ định của DMCA để gửi email đến Văn phòng bản quyền và mô tả rằng bạn là người kiểm duyệt nội dung tại nhà, người sợ bị trả thù hoặc trừng phạt vì hành động của mình và cần sử dụng hộp thư bưu điện để xóa địa chỉ nhà của bạn khỏi chế độ xem công khai.
|
dmca_address: Đối với các quản trị viên tại Hoa Kỳ, hãy sử dụng địa chỉ đã đăng ký trong Danh bạ đại lý được chỉ định của DMCA. Danh sách hộp thư bưu điện có sẵn khi yêu cầu trực tiếp, hãy sử dụng Yêu cầu miễn trừ hộp thư bưu điện của đại lý được chỉ định của DMCA để gửi email đến Văn phòng bản quyền và mô tả rằng bạn là người kiểm duyệt nội dung tại nhà, người sợ bị trả thù hoặc trừng phạt vì hành động của mình và cần sử dụng hộp thư bưu điện để xóa địa chỉ nhà của bạn khỏi chế độ xem công khai.
|
||||||
dmca_email: Có thể là cùng một email được sử dụng cho “Địa chỉ email để nhận thông báo pháp lý” ở trên
|
dmca_email: Có thể là cùng một email được sử dụng cho “Địa chỉ email để nhận thông báo pháp lý” ở trên
|
||||||
domain: Mã nhận dạng duy nhất của dịch vụ trực tuyến mà bạn đang cung cấp.
|
domain: Mã nhận dạng duy nhất của dịch vụ trực tuyến mà bạn đang cung cấp.
|
||||||
@ -338,6 +339,7 @@ vi:
|
|||||||
admin_email: Địa chỉ email để nhận thông báo pháp lý
|
admin_email: Địa chỉ email để nhận thông báo pháp lý
|
||||||
arbitration_address: Địa chỉ thực tế để nhận thông báo trọng tài
|
arbitration_address: Địa chỉ thực tế để nhận thông báo trọng tài
|
||||||
arbitration_website: Trang web để nộp thông báo trọng tài
|
arbitration_website: Trang web để nộp thông báo trọng tài
|
||||||
|
choice_of_law: Lựa chọn Luật pháp
|
||||||
dmca_address: Địa chỉ liên lạc để nhận thông báo DMCA/bản quyền
|
dmca_address: Địa chỉ liên lạc để nhận thông báo DMCA/bản quyền
|
||||||
dmca_email: Địa chỉ email để nhận thông báo DMCA/bản quyền
|
dmca_email: Địa chỉ email để nhận thông báo DMCA/bản quyền
|
||||||
domain: Tên miền
|
domain: Tên miền
|
||||||
|
@ -137,6 +137,7 @@ zh-CN:
|
|||||||
admin_email: 法务通知包括反通知、法院命令、内容下架要求与执法机关的要求。
|
admin_email: 法务通知包括反通知、法院命令、内容下架要求与执法机关的要求。
|
||||||
arbitration_address: 可以与上面的实际地址相同,若使用邮箱,则填写“N/A”
|
arbitration_address: 可以与上面的实际地址相同,若使用邮箱,则填写“N/A”
|
||||||
arbitration_website: 可以为网页表单,若使用邮箱,则填写“N/A”
|
arbitration_website: 可以为网页表单,若使用邮箱,则填写“N/A”
|
||||||
|
choice_of_law: 适用内部实质法律以管辖任何及所有索赔的城市、地区、领土或州。
|
||||||
dmca_address: 如果你是位于美国的运营者,请使用在 DMCA 指定代表名录中注册的地址。如果你需要使用邮政信箱,可以直接申请。请使用 DMCA 指定代表邮政信箱豁免申请表,通过电子邮件联系版权办公室,并声明你是居家内容审核员,因担心审核操作会招致报复或打击报复,需要使用邮政信箱以避免公开家庭住址。
|
dmca_address: 如果你是位于美国的运营者,请使用在 DMCA 指定代表名录中注册的地址。如果你需要使用邮政信箱,可以直接申请。请使用 DMCA 指定代表邮政信箱豁免申请表,通过电子邮件联系版权办公室,并声明你是居家内容审核员,因担心审核操作会招致报复或打击报复,需要使用邮政信箱以避免公开家庭住址。
|
||||||
dmca_email: 可使用与上方“法务通知接收邮箱地址”相同的邮箱地址。
|
dmca_email: 可使用与上方“法务通知接收邮箱地址”相同的邮箱地址。
|
||||||
domain: 你所提供的在线服务的唯一标识。
|
domain: 你所提供的在线服务的唯一标识。
|
||||||
@ -338,6 +339,7 @@ zh-CN:
|
|||||||
admin_email: 接收法务通知的邮箱地址
|
admin_email: 接收法务通知的邮箱地址
|
||||||
arbitration_address: 仲裁通知的实际送达地址
|
arbitration_address: 仲裁通知的实际送达地址
|
||||||
arbitration_website: 仲裁通知的在线提交入口
|
arbitration_website: 仲裁通知的在线提交入口
|
||||||
|
choice_of_law: 法律适用选择
|
||||||
dmca_address: 接收DMCA/版权通知的实际地址
|
dmca_address: 接收DMCA/版权通知的实际地址
|
||||||
dmca_email: 接收DMCA/版权通知的邮箱地址
|
dmca_email: 接收DMCA/版权通知的邮箱地址
|
||||||
domain: 域名
|
domain: 域名
|
||||||
|
@ -137,6 +137,7 @@ zh-TW:
|
|||||||
admin_email: 法律通知包含反駁通知、法院命令、刪除請求和執法單位請求。
|
admin_email: 法律通知包含反駁通知、法院命令、刪除請求和執法單位請求。
|
||||||
arbitration_address: 能與上述相同之實體地址,或「N/A」如使用 email
|
arbitration_address: 能與上述相同之實體地址,或「N/A」如使用 email
|
||||||
arbitration_website: 能為網路表單,或「N/A」如使用 email
|
arbitration_website: 能為網路表單,或「N/A」如使用 email
|
||||||
|
choice_of_law: 城市、區域、領土或州的內部實體法律應規範任何及所有權利。
|
||||||
dmca_address: 位於美國的運營團隊,請使用於 DMCA 指定代理目錄中註冊之地址。可直接請求 PO Box 清單,使用 DMCA 指定代理郵局信箱豁免請求向版權局發送電子郵件,並描述您是一名在家工作之內容管理員,擔心您的行為將遭報復,需要使用 PO Box 保護您的私人住址。
|
dmca_address: 位於美國的運營團隊,請使用於 DMCA 指定代理目錄中註冊之地址。可直接請求 PO Box 清單,使用 DMCA 指定代理郵局信箱豁免請求向版權局發送電子郵件,並描述您是一名在家工作之內容管理員,擔心您的行為將遭報復,需要使用 PO Box 保護您的私人住址。
|
||||||
dmca_email: 能使用上述用於「法律通知用途電子郵件」之相同電子郵件
|
dmca_email: 能使用上述用於「法律通知用途電子郵件」之相同電子郵件
|
||||||
domain: 您所提供線上服務之唯一識別。
|
domain: 您所提供線上服務之唯一識別。
|
||||||
@ -338,6 +339,7 @@ zh-TW:
|
|||||||
admin_email: 法律通知用途電子郵件
|
admin_email: 法律通知用途電子郵件
|
||||||
arbitration_address: 仲裁通知之實體地址
|
arbitration_address: 仲裁通知之實體地址
|
||||||
arbitration_website: 提交仲裁通知之網站
|
arbitration_website: 提交仲裁通知之網站
|
||||||
|
choice_of_law: 法律選擇
|
||||||
dmca_address: DMCA 或版權通知之實體地址
|
dmca_address: DMCA 或版權通知之實體地址
|
||||||
dmca_email: DMCA 或版權通知之電子郵件地址
|
dmca_email: DMCA 或版權通知之電子郵件地址
|
||||||
domain: 網域
|
domain: 網域
|
||||||
|
@ -59,7 +59,7 @@ services:
|
|||||||
web:
|
web:
|
||||||
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
||||||
# build: .
|
# build: .
|
||||||
image: ghcr.io/mastodon/mastodon:v4.3.3
|
image: ghcr.io/mastodon/mastodon:v4.3.4
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bundle exec puma -C config/puma.rb
|
command: bundle exec puma -C config/puma.rb
|
||||||
@ -83,7 +83,7 @@ services:
|
|||||||
# build:
|
# build:
|
||||||
# dockerfile: ./streaming/Dockerfile
|
# dockerfile: ./streaming/Dockerfile
|
||||||
# context: .
|
# context: .
|
||||||
image: ghcr.io/mastodon/mastodon-streaming:v4.3.3
|
image: ghcr.io/mastodon/mastodon-streaming:v4.3.4
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: node ./streaming/index.js
|
command: node ./streaming/index.js
|
||||||
@ -102,7 +102,7 @@ services:
|
|||||||
sidekiq:
|
sidekiq:
|
||||||
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
||||||
# build: .
|
# build: .
|
||||||
image: ghcr.io/mastodon/mastodon:v4.3.3
|
image: ghcr.io/mastodon/mastodon:v4.3.4
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bundle exec sidekiq
|
command: bundle exec sidekiq
|
||||||
|
@ -17,7 +17,7 @@ module Mastodon
|
|||||||
end
|
end
|
||||||
|
|
||||||
def default_prerelease
|
def default_prerelease
|
||||||
'alpha.2'
|
'alpha.3'
|
||||||
end
|
end
|
||||||
|
|
||||||
def prerelease
|
def prerelease
|
||||||
|
@ -146,18 +146,16 @@ class Sanitize
|
|||||||
)
|
)
|
||||||
|
|
||||||
MASTODON_OEMBED = freeze_config(
|
MASTODON_OEMBED = freeze_config(
|
||||||
elements: %w(audio embed iframe source video),
|
elements: %w(audio iframe source video),
|
||||||
|
|
||||||
attributes: {
|
attributes: {
|
||||||
'audio' => %w(controls),
|
'audio' => %w(controls),
|
||||||
'embed' => %w(height src type width),
|
|
||||||
'iframe' => %w(allowfullscreen frameborder height scrolling src width),
|
'iframe' => %w(allowfullscreen frameborder height scrolling src width),
|
||||||
'source' => %w(src type),
|
'source' => %w(src type),
|
||||||
'video' => %w(controls height loop width),
|
'video' => %w(controls height loop width),
|
||||||
},
|
},
|
||||||
|
|
||||||
protocols: {
|
protocols: {
|
||||||
'embed' => { 'src' => HTTP_PROTOCOLS },
|
|
||||||
'iframe' => { 'src' => HTTP_PROTOCOLS },
|
'iframe' => { 'src' => HTTP_PROTOCOLS },
|
||||||
'source' => { 'src' => HTTP_PROTOCOLS },
|
'source' => { 'src' => HTTP_PROTOCOLS },
|
||||||
},
|
},
|
||||||
|
@ -4,9 +4,10 @@ require 'rails_helper'
|
|||||||
|
|
||||||
RSpec.describe 'Domain Blocks' do
|
RSpec.describe 'Domain Blocks' do
|
||||||
describe 'GET /api/v1/instance/domain_blocks' do
|
describe 'GET /api/v1/instance/domain_blocks' do
|
||||||
before do
|
let(:user) { Fabricate(:user) }
|
||||||
Fabricate(:domain_block)
|
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id).token }
|
||||||
end
|
|
||||||
|
before { Fabricate(:domain_block) }
|
||||||
|
|
||||||
context 'with domain blocks set to all' do
|
context 'with domain blocks set to all' do
|
||||||
before { Setting.show_domain_blocks = 'all' }
|
before { Setting.show_domain_blocks = 'all' }
|
||||||
@ -30,6 +31,7 @@ RSpec.describe 'Domain Blocks' do
|
|||||||
context 'with domain blocks set to users' do
|
context 'with domain blocks set to users' do
|
||||||
before { Setting.show_domain_blocks = 'users' }
|
before { Setting.show_domain_blocks = 'users' }
|
||||||
|
|
||||||
|
context 'without authentication token' do
|
||||||
it 'returns http not found' do
|
it 'returns http not found' do
|
||||||
get api_v1_instance_domain_blocks_path
|
get api_v1_instance_domain_blocks_path
|
||||||
|
|
||||||
@ -38,6 +40,89 @@ RSpec.describe 'Domain Blocks' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with authentication token' do
|
||||||
|
context 'with unapproved user' do
|
||||||
|
before { user.update(approved: false) }
|
||||||
|
|
||||||
|
it 'returns http not found' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with unconfirmed user' do
|
||||||
|
before { user.update(confirmed_at: nil) }
|
||||||
|
|
||||||
|
it 'returns http not found' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disabled user' do
|
||||||
|
before { user.update(disabled: true) }
|
||||||
|
|
||||||
|
it 'returns http not found' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with suspended user' do
|
||||||
|
before { user.account.update(suspended_at: Time.zone.now) }
|
||||||
|
|
||||||
|
it 'returns http not found' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(403)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with moved user' do
|
||||||
|
before { user.account.update(moved_to_account_id: Fabricate(:account).id) }
|
||||||
|
|
||||||
|
it 'returns http success' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(200)
|
||||||
|
|
||||||
|
expect(response.content_type)
|
||||||
|
.to start_with('application/json')
|
||||||
|
|
||||||
|
expect(response.parsed_body)
|
||||||
|
.to be_present
|
||||||
|
.and(be_an(Array))
|
||||||
|
.and(have_attributes(size: 1))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with normal user' do
|
||||||
|
it 'returns http success' do
|
||||||
|
get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(200)
|
||||||
|
|
||||||
|
expect(response.content_type)
|
||||||
|
.to start_with('application/json')
|
||||||
|
|
||||||
|
expect(response.parsed_body)
|
||||||
|
.to be_present
|
||||||
|
.and(be_an(Array))
|
||||||
|
.and(have_attributes(size: 1))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'with domain blocks set to disabled' do
|
context 'with domain blocks set to disabled' do
|
||||||
before { Setting.show_domain_blocks = 'disabled' }
|
before { Setting.show_domain_blocks = 'disabled' }
|
||||||
|
|
||||||
|
@ -24,15 +24,4 @@ RSpec.describe 'Auth Setup' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'PUT /auth/setup' do
|
|
||||||
before { sign_in Fabricate(:user, confirmed_at: nil) }
|
|
||||||
|
|
||||||
it 'gracefully handles invalid nested params' do
|
|
||||||
put '/auth/setup?user=invalid'
|
|
||||||
|
|
||||||
expect(response)
|
|
||||||
.to have_http_status(400)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user