mirror of
https://github.com/glitch-soc/mastodon
synced 2025-04-25 01:54:50 +00:00
Merge commit 'a324edabdfc19b6978ed31800b92e36022006cd5' into glitch-soc/merge-upstream
This commit is contained in:
commit
8cbd99e645
78 changed files with 726 additions and 163 deletions
|
@ -1 +1 @@
|
||||||
3.4.2
|
3.4.3
|
||||||
|
|
20
Gemfile.lock
20
Gemfile.lock
|
@ -94,7 +94,7 @@ GEM
|
||||||
ast (2.4.3)
|
ast (2.4.3)
|
||||||
attr_required (1.0.2)
|
attr_required (1.0.2)
|
||||||
aws-eventstream (1.3.2)
|
aws-eventstream (1.3.2)
|
||||||
aws-partitions (1.1080.0)
|
aws-partitions (1.1087.0)
|
||||||
aws-sdk-core (3.215.1)
|
aws-sdk-core (3.215.1)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.992.0)
|
aws-partitions (~> 1, >= 1.992.0)
|
||||||
|
@ -120,7 +120,7 @@ GEM
|
||||||
rack (>= 0.9.0)
|
rack (>= 0.9.0)
|
||||||
rouge (>= 1.0.0)
|
rouge (>= 1.0.0)
|
||||||
bigdecimal (3.1.9)
|
bigdecimal (3.1.9)
|
||||||
bindata (2.5.0)
|
bindata (2.5.1)
|
||||||
binding_of_caller (1.0.1)
|
binding_of_caller (1.0.1)
|
||||||
debug_inspector (>= 1.2.0)
|
debug_inspector (>= 1.2.0)
|
||||||
blurhash (0.1.8)
|
blurhash (0.1.8)
|
||||||
|
@ -170,7 +170,7 @@ GEM
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
css_parser (1.21.1)
|
css_parser (1.21.1)
|
||||||
addressable
|
addressable
|
||||||
csv (3.3.3)
|
csv (3.3.4)
|
||||||
database_cleaner-active_record (2.2.0)
|
database_cleaner-active_record (2.2.0)
|
||||||
activerecord (>= 5.a)
|
activerecord (>= 5.a)
|
||||||
database_cleaner-core (~> 2.0.0)
|
database_cleaner-core (~> 2.0.0)
|
||||||
|
@ -227,7 +227,7 @@ GEM
|
||||||
fabrication (2.31.0)
|
fabrication (2.31.0)
|
||||||
faker (3.5.1)
|
faker (3.5.1)
|
||||||
i18n (>= 1.8.11, < 2)
|
i18n (>= 1.8.11, < 2)
|
||||||
faraday (2.12.2)
|
faraday (2.13.0)
|
||||||
faraday-net_http (>= 2.0, < 3.5)
|
faraday-net_http (>= 2.0, < 3.5)
|
||||||
json
|
json
|
||||||
logger
|
logger
|
||||||
|
@ -239,7 +239,7 @@ GEM
|
||||||
net-http (>= 0.5.0)
|
net-http (>= 0.5.0)
|
||||||
fast_blank (1.0.1)
|
fast_blank (1.0.1)
|
||||||
fastimage (2.4.0)
|
fastimage (2.4.0)
|
||||||
ffi (1.17.1)
|
ffi (1.17.2)
|
||||||
ffi-compiler (1.3.2)
|
ffi-compiler (1.3.2)
|
||||||
ffi (>= 1.15.5)
|
ffi (>= 1.15.5)
|
||||||
rake
|
rake
|
||||||
|
@ -426,7 +426,7 @@ GEM
|
||||||
mime-types (3.6.2)
|
mime-types (3.6.2)
|
||||||
logger
|
logger
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2025.0402)
|
mime-types-data (3.2025.0408)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
mini_portile2 (2.8.8)
|
mini_portile2 (2.8.8)
|
||||||
minitest (5.25.5)
|
minitest (5.25.5)
|
||||||
|
@ -585,8 +585,8 @@ GEM
|
||||||
ostruct (0.6.1)
|
ostruct (0.6.1)
|
||||||
ox (2.14.22)
|
ox (2.14.22)
|
||||||
bigdecimal (>= 3.0)
|
bigdecimal (>= 3.0)
|
||||||
parallel (1.26.3)
|
parallel (1.27.0)
|
||||||
parser (3.3.7.4)
|
parser (3.3.8.0)
|
||||||
ast (~> 2.4.1)
|
ast (~> 2.4.1)
|
||||||
racc
|
racc
|
||||||
parslet (2.0.0)
|
parslet (2.0.0)
|
||||||
|
@ -751,7 +751,7 @@ GEM
|
||||||
rubocop-ast (>= 1.44.0, < 2.0)
|
rubocop-ast (>= 1.44.0, < 2.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (>= 2.4.0, < 4.0)
|
unicode-display_width (>= 2.4.0, < 4.0)
|
||||||
rubocop-ast (1.44.0)
|
rubocop-ast (1.44.1)
|
||||||
parser (>= 3.3.7.2)
|
parser (>= 3.3.7.2)
|
||||||
prism (~> 1.4)
|
prism (~> 1.4)
|
||||||
rubocop-capybara (2.22.1)
|
rubocop-capybara (2.22.1)
|
||||||
|
@ -1085,4 +1085,4 @@ RUBY VERSION
|
||||||
ruby 3.4.1p0
|
ruby 3.4.1p0
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.6.7
|
2.6.8
|
||||||
|
|
66
app/controllers/api/v1/accounts/endorsements_controller.rb
Normal file
66
app/controllers/api/v1/accounts/endorsements_controller.rb
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Api::V1::Accounts::EndorsementsController < Api::BaseController
|
||||||
|
include Authorization
|
||||||
|
|
||||||
|
before_action -> { authorize_if_got_token! :read, :'read:accounts' }, only: :index
|
||||||
|
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, except: :index
|
||||||
|
before_action :require_user!, except: :index
|
||||||
|
before_action :set_account
|
||||||
|
before_action :set_endorsed_accounts, only: :index
|
||||||
|
after_action :insert_pagination_headers, only: :index
|
||||||
|
|
||||||
|
def index
|
||||||
|
cache_if_unauthenticated!
|
||||||
|
render json: @endorsed_accounts, each_serializer: REST::AccountSerializer
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
AccountPin.find_or_create_by!(account: current_account, target_account: @account)
|
||||||
|
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
pin = AccountPin.find_by(account: current_account, target_account: @account)
|
||||||
|
pin&.destroy!
|
||||||
|
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_account
|
||||||
|
@account = Account.find(params[:account_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_endorsed_accounts
|
||||||
|
@endorsed_accounts = @account.unavailable? ? [] : paginated_endorsed_accounts
|
||||||
|
end
|
||||||
|
|
||||||
|
def paginated_endorsed_accounts
|
||||||
|
@account.endorsed_accounts.without_suspended.includes(:account_stat, :user).paginate_by_max_id(
|
||||||
|
limit_param(DEFAULT_ACCOUNTS_LIMIT),
|
||||||
|
params[:max_id],
|
||||||
|
params[:since_id]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def relationships_presenter
|
||||||
|
AccountRelationshipsPresenter.new([@account], current_user.account_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def next_path
|
||||||
|
api_v1_account_endorsements_url pagination_params(max_id: pagination_max_id) if records_continue?
|
||||||
|
end
|
||||||
|
|
||||||
|
def prev_path
|
||||||
|
api_v1_account_endorsements_url pagination_params(since_id: pagination_since_id) unless @endorsed_accounts.empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
def pagination_collection
|
||||||
|
@endorsed_accounts
|
||||||
|
end
|
||||||
|
|
||||||
|
def records_continue?
|
||||||
|
@endorsed_accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
|
||||||
|
end
|
||||||
|
end
|
|
@ -17,6 +17,6 @@ class Api::V1::Accounts::FeaturedTagsController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_featured_tags
|
def set_featured_tags
|
||||||
@featured_tags = @account.suspended? ? [] : @account.featured_tags
|
@featured_tags = @account.unavailable? ? [] : @account.featured_tags
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class Api::V1::Accounts::PinsController < Api::BaseController
|
|
||||||
include Authorization
|
|
||||||
|
|
||||||
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }
|
|
||||||
before_action :require_user!
|
|
||||||
before_action :set_account
|
|
||||||
|
|
||||||
def create
|
|
||||||
AccountPin.find_or_create_by!(account: current_account, target_account: @account)
|
|
||||||
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
|
||||||
pin = AccountPin.find_by(account: current_account, target_account: @account)
|
|
||||||
pin&.destroy!
|
|
||||||
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_account
|
|
||||||
@account = Account.find(params[:account_id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def relationships_presenter
|
|
||||||
AccountRelationshipsPresenter.new([@account], current_user.account_id)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -7,10 +7,6 @@ class Api::V1::ListsController < Api::BaseController
|
||||||
before_action :require_user!
|
before_action :require_user!
|
||||||
before_action :set_list, except: [:index, :create]
|
before_action :set_list, except: [:index, :create]
|
||||||
|
|
||||||
rescue_from ArgumentError do |e|
|
|
||||||
render json: { error: e.to_s }, status: 422
|
|
||||||
end
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@lists = List.where(account: current_account).all
|
@lists = List.where(account: current_account).all
|
||||||
render json: @lists, each_serializer: REST::ListSerializer
|
render json: @lists, each_serializer: REST::ListSerializer
|
||||||
|
|
|
@ -71,6 +71,8 @@ type RenderItemFn<Item = MenuItem> = (
|
||||||
},
|
},
|
||||||
) => React.ReactNode;
|
) => React.ReactNode;
|
||||||
|
|
||||||
|
type ItemClickFn<Item = MenuItem> = (item: Item, index: number) => void;
|
||||||
|
|
||||||
type RenderHeaderFn<Item = MenuItem> = (items: Item[]) => React.ReactNode;
|
type RenderHeaderFn<Item = MenuItem> = (items: Item[]) => React.ReactNode;
|
||||||
|
|
||||||
interface DropdownMenuProps<Item = MenuItem> {
|
interface DropdownMenuProps<Item = MenuItem> {
|
||||||
|
@ -81,10 +83,10 @@ interface DropdownMenuProps<Item = MenuItem> {
|
||||||
openedViaKeyboard: boolean;
|
openedViaKeyboard: boolean;
|
||||||
renderItem?: RenderItemFn<Item>;
|
renderItem?: RenderItemFn<Item>;
|
||||||
renderHeader?: RenderHeaderFn<Item>;
|
renderHeader?: RenderHeaderFn<Item>;
|
||||||
onItemClick: (e: React.MouseEvent | React.KeyboardEvent) => void;
|
onItemClick?: ItemClickFn<Item>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DropdownMenu = <Item = MenuItem,>({
|
export const DropdownMenu = <Item = MenuItem,>({
|
||||||
items,
|
items,
|
||||||
loading,
|
loading,
|
||||||
scrollable,
|
scrollable,
|
||||||
|
@ -176,20 +178,35 @@ const DropdownMenu = <Item = MenuItem,>({
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleItemClick = useCallback(
|
||||||
|
(e: React.MouseEvent | React.KeyboardEvent) => {
|
||||||
|
const i = Number(e.currentTarget.getAttribute('data-index'));
|
||||||
|
const item = items?.[i];
|
||||||
|
|
||||||
|
onClose();
|
||||||
|
|
||||||
|
if (!item) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof onItemClick === 'function') {
|
||||||
|
e.preventDefault();
|
||||||
|
onItemClick(item, i);
|
||||||
|
} else if (isActionItem(item)) {
|
||||||
|
e.preventDefault();
|
||||||
|
item.action();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[onClose, onItemClick, items],
|
||||||
|
);
|
||||||
|
|
||||||
const handleItemKeyUp = useCallback(
|
const handleItemKeyUp = useCallback(
|
||||||
(e: React.KeyboardEvent) => {
|
(e: React.KeyboardEvent) => {
|
||||||
if (e.key === 'Enter' || e.key === ' ') {
|
if (e.key === 'Enter' || e.key === ' ') {
|
||||||
onItemClick(e);
|
handleItemClick(e);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[onItemClick],
|
[handleItemClick],
|
||||||
);
|
|
||||||
|
|
||||||
const handleClick = useCallback(
|
|
||||||
(e: React.MouseEvent | React.KeyboardEvent) => {
|
|
||||||
onItemClick(e);
|
|
||||||
},
|
|
||||||
[onItemClick],
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const nativeRenderItem = (option: Item, i: number) => {
|
const nativeRenderItem = (option: Item, i: number) => {
|
||||||
|
@ -209,7 +226,7 @@ const DropdownMenu = <Item = MenuItem,>({
|
||||||
element = (
|
element = (
|
||||||
<button
|
<button
|
||||||
ref={i === 0 ? handleFocusedItemRef : undefined}
|
ref={i === 0 ? handleFocusedItemRef : undefined}
|
||||||
onClick={handleClick}
|
onClick={handleItemClick}
|
||||||
onKeyUp={handleItemKeyUp}
|
onKeyUp={handleItemKeyUp}
|
||||||
data-index={i}
|
data-index={i}
|
||||||
>
|
>
|
||||||
|
@ -224,7 +241,7 @@ const DropdownMenu = <Item = MenuItem,>({
|
||||||
data-method={option.method}
|
data-method={option.method}
|
||||||
rel='noopener'
|
rel='noopener'
|
||||||
ref={i === 0 ? handleFocusedItemRef : undefined}
|
ref={i === 0 ? handleFocusedItemRef : undefined}
|
||||||
onClick={handleClick}
|
onClick={handleItemClick}
|
||||||
onKeyUp={handleItemKeyUp}
|
onKeyUp={handleItemKeyUp}
|
||||||
data-index={i}
|
data-index={i}
|
||||||
>
|
>
|
||||||
|
@ -236,7 +253,7 @@ const DropdownMenu = <Item = MenuItem,>({
|
||||||
<Link
|
<Link
|
||||||
to={option.to}
|
to={option.to}
|
||||||
ref={i === 0 ? handleFocusedItemRef : undefined}
|
ref={i === 0 ? handleFocusedItemRef : undefined}
|
||||||
onClick={handleClick}
|
onClick={handleItemClick}
|
||||||
onKeyUp={handleItemKeyUp}
|
onKeyUp={handleItemKeyUp}
|
||||||
data-index={i}
|
data-index={i}
|
||||||
>
|
>
|
||||||
|
@ -282,7 +299,7 @@ const DropdownMenu = <Item = MenuItem,>({
|
||||||
>
|
>
|
||||||
{items.map((option, i) =>
|
{items.map((option, i) =>
|
||||||
renderItemMethod(option, i, {
|
renderItemMethod(option, i, {
|
||||||
onClick: handleClick,
|
onClick: handleItemClick,
|
||||||
onKeyUp: handleItemKeyUp,
|
onKeyUp: handleItemKeyUp,
|
||||||
}),
|
}),
|
||||||
)}
|
)}
|
||||||
|
@ -306,7 +323,7 @@ interface DropdownProps<Item = MenuItem> {
|
||||||
renderItem?: RenderItemFn<Item>;
|
renderItem?: RenderItemFn<Item>;
|
||||||
renderHeader?: RenderHeaderFn<Item>;
|
renderHeader?: RenderHeaderFn<Item>;
|
||||||
onOpen?: () => void;
|
onOpen?: () => void;
|
||||||
onItemClick?: (arg0: Item, arg1: number) => void;
|
onItemClick?: ItemClickFn<Item>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const offset = [5, 5] as OffsetValue;
|
const offset = [5, 5] as OffsetValue;
|
||||||
|
@ -521,7 +538,7 @@ export const Dropdown = <Item = MenuItem,>({
|
||||||
openedViaKeyboard={openedViaKeyboard}
|
openedViaKeyboard={openedViaKeyboard}
|
||||||
renderItem={renderItem}
|
renderItem={renderItem}
|
||||||
renderHeader={renderHeader}
|
renderHeader={renderHeader}
|
||||||
onItemClick={handleItemClick}
|
onItemClick={onItemClick}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -36,11 +36,11 @@ export const EditedTimestamp: React.FC<{
|
||||||
}, [dispatch, statusId]);
|
}, [dispatch, statusId]);
|
||||||
|
|
||||||
const handleItemClick = useCallback(
|
const handleItemClick = useCallback(
|
||||||
(_item: HistoryItem, i: number) => {
|
(_item: HistoryItem, index: number) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
openModal({
|
openModal({
|
||||||
modalType: 'COMPARE_HISTORY',
|
modalType: 'COMPARE_HISTORY',
|
||||||
modalProps: { index: i, statusId },
|
modalProps: { index, statusId },
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,6 +20,7 @@ export type StatusLike = Record<{
|
||||||
contentHTML: string;
|
contentHTML: string;
|
||||||
media_attachments: List<unknown>;
|
media_attachments: List<unknown>;
|
||||||
spoiler_text?: string;
|
spoiler_text?: string;
|
||||||
|
account: Record<{ id: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
function normalizeHashtag(hashtag: string) {
|
function normalizeHashtag(hashtag: string) {
|
||||||
|
@ -195,13 +196,19 @@ export function getHashtagBarForStatus(status: StatusLike) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusContentProps,
|
statusContentProps,
|
||||||
hashtagBar: <HashtagBar hashtags={hashtagsInBar} />,
|
hashtagBar: (
|
||||||
|
<HashtagBar
|
||||||
|
hashtags={hashtagsInBar}
|
||||||
|
accountId={status.getIn(['account', 'id']) as string}
|
||||||
|
/>
|
||||||
|
),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const HashtagBar: React.FC<{
|
const HashtagBar: React.FC<{
|
||||||
hashtags: string[];
|
hashtags: string[];
|
||||||
}> = ({ hashtags }) => {
|
accountId: string;
|
||||||
|
}> = ({ hashtags, accountId }) => {
|
||||||
const [expanded, setExpanded] = useState(false);
|
const [expanded, setExpanded] = useState(false);
|
||||||
const handleClick = useCallback(() => {
|
const handleClick = useCallback(() => {
|
||||||
setExpanded(true);
|
setExpanded(true);
|
||||||
|
@ -218,7 +225,11 @@ const HashtagBar: React.FC<{
|
||||||
return (
|
return (
|
||||||
<div className='hashtag-bar'>
|
<div className='hashtag-bar'>
|
||||||
{revealedHashtags.map((hashtag) => (
|
{revealedHashtags.map((hashtag) => (
|
||||||
<Link key={hashtag} to={`/tags/${hashtag}`}>
|
<Link
|
||||||
|
key={hashtag}
|
||||||
|
to={`/tags/${hashtag}`}
|
||||||
|
data-menu-hashtag={accountId}
|
||||||
|
>
|
||||||
#<span>{hashtag}</span>
|
#<span>{hashtag}</span>
|
||||||
</Link>
|
</Link>
|
||||||
))}
|
))}
|
||||||
|
|
|
@ -115,6 +115,7 @@ class StatusContent extends PureComponent {
|
||||||
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
} else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {
|
||||||
link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);
|
link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);
|
||||||
link.setAttribute('href', `/tags/${link.text.replace(/^#/, '')}`);
|
link.setAttribute('href', `/tags/${link.text.replace(/^#/, '')}`);
|
||||||
|
link.setAttribute('data-menu-hashtag', this.props.status.getIn(['account', 'id']));
|
||||||
} else {
|
} else {
|
||||||
link.setAttribute('title', link.href);
|
link.setAttribute('title', link.href);
|
||||||
link.classList.add('unhandled-link');
|
link.classList.add('unhandled-link');
|
||||||
|
|
|
@ -495,9 +495,7 @@ export const AccountHeader: React.FC<{
|
||||||
|
|
||||||
arr.push({
|
arr.push({
|
||||||
text: intl.formatMessage(
|
text: intl.formatMessage(
|
||||||
account.getIn(['relationship', 'endorsed'])
|
relationship.endorsed ? messages.unendorse : messages.endorse,
|
||||||
? messages.unendorse
|
|
||||||
: messages.endorse,
|
|
||||||
),
|
),
|
||||||
action: handleEndorseToggle,
|
action: handleEndorseToggle,
|
||||||
});
|
});
|
||||||
|
@ -746,7 +744,7 @@ export const AccountHeader: React.FC<{
|
||||||
badges.push(<GroupBadge key='group-badge' />);
|
badges.push(<GroupBadge key='group-badge' />);
|
||||||
}
|
}
|
||||||
|
|
||||||
account.get('roles', []).forEach((role) => {
|
account.roles.forEach((role) => {
|
||||||
badges.push(
|
badges.push(
|
||||||
<Badge
|
<Badge
|
||||||
key={`role-badge-${role.get('id')}`}
|
key={`role-badge-${role.get('id')}`}
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
|
import { useIntl, defineMessages } from 'react-intl';
|
||||||
|
|
||||||
|
import { useLocation } from 'react-router-dom';
|
||||||
|
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
import type {
|
||||||
|
OffsetValue,
|
||||||
|
UsePopperOptions,
|
||||||
|
} from 'react-overlays/esm/usePopper';
|
||||||
|
|
||||||
|
import { DropdownMenu } from 'mastodon/components/dropdown_menu';
|
||||||
|
import { useAppSelector } from 'mastodon/store';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
browseHashtag: {
|
||||||
|
id: 'hashtag.browse',
|
||||||
|
defaultMessage: 'Browse posts in #{hashtag}',
|
||||||
|
},
|
||||||
|
browseHashtagFromAccount: {
|
||||||
|
id: 'hashtag.browse_from_account',
|
||||||
|
defaultMessage: 'Browse posts from @{name} in #{hashtag}',
|
||||||
|
},
|
||||||
|
muteHashtag: { id: 'hashtag.mute', defaultMessage: 'Mute #{hashtag}' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const offset = [5, 5] as OffsetValue;
|
||||||
|
const popperConfig = { strategy: 'fixed' } as UsePopperOptions;
|
||||||
|
|
||||||
|
const isHashtagLink = (
|
||||||
|
element: HTMLAnchorElement | null,
|
||||||
|
): element is HTMLAnchorElement => {
|
||||||
|
if (!element) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return element.matches('[data-menu-hashtag]');
|
||||||
|
};
|
||||||
|
|
||||||
|
interface TargetParams {
|
||||||
|
hashtag?: string;
|
||||||
|
accountId?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HashtagMenuController: React.FC = () => {
|
||||||
|
const intl = useIntl();
|
||||||
|
const [open, setOpen] = useState(false);
|
||||||
|
const [{ accountId, hashtag }, setTargetParams] = useState<TargetParams>({});
|
||||||
|
const targetRef = useRef<HTMLAnchorElement | null>(null);
|
||||||
|
const location = useLocation();
|
||||||
|
const account = useAppSelector((state) =>
|
||||||
|
accountId ? state.accounts.get(accountId) : undefined,
|
||||||
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setOpen(false);
|
||||||
|
targetRef.current = null;
|
||||||
|
}, [setOpen, location]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleClick = (e: MouseEvent) => {
|
||||||
|
const target = (e.target as HTMLElement).closest('a');
|
||||||
|
|
||||||
|
if (e.button !== 0 || e.ctrlKey || e.metaKey) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isHashtagLink(target)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const hashtag = target.text.replace(/^#/, '');
|
||||||
|
const accountId = target.getAttribute('data-menu-hashtag');
|
||||||
|
|
||||||
|
if (!hashtag || !accountId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
targetRef.current = target;
|
||||||
|
setOpen(true);
|
||||||
|
setTargetParams({ hashtag, accountId });
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('click', handleClick, { capture: true });
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
document.removeEventListener('click', handleClick);
|
||||||
|
};
|
||||||
|
}, [setTargetParams, setOpen]);
|
||||||
|
|
||||||
|
const handleClose = useCallback(() => {
|
||||||
|
setOpen(false);
|
||||||
|
targetRef.current = null;
|
||||||
|
}, [setOpen]);
|
||||||
|
|
||||||
|
const menu = useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
text: intl.formatMessage(messages.browseHashtag, {
|
||||||
|
hashtag,
|
||||||
|
}),
|
||||||
|
to: `/tags/${hashtag}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: intl.formatMessage(messages.browseHashtagFromAccount, {
|
||||||
|
hashtag,
|
||||||
|
name: account?.username,
|
||||||
|
}),
|
||||||
|
to: `/@${account?.acct}/tagged/${hashtag}`,
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
text: intl.formatMessage(messages.muteHashtag, {
|
||||||
|
hashtag,
|
||||||
|
}),
|
||||||
|
href: '/filters',
|
||||||
|
dangerous: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[intl, hashtag, account],
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!open) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Overlay
|
||||||
|
show={open}
|
||||||
|
offset={offset}
|
||||||
|
placement='bottom'
|
||||||
|
flip
|
||||||
|
target={targetRef}
|
||||||
|
popperConfig={popperConfig}
|
||||||
|
>
|
||||||
|
{({ props, arrowProps, placement }) => (
|
||||||
|
<div {...props}>
|
||||||
|
<div className={`dropdown-animation dropdown-menu ${placement}`}>
|
||||||
|
<div
|
||||||
|
className={`dropdown-menu__arrow ${placement}`}
|
||||||
|
{...arrowProps}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<DropdownMenu
|
||||||
|
items={menu}
|
||||||
|
onClose={handleClose}
|
||||||
|
openedViaKeyboard={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Overlay>
|
||||||
|
);
|
||||||
|
};
|
|
@ -31,6 +31,7 @@ import initialState, { me, owner, singleUserMode, trendsEnabled, trendsAsLanding
|
||||||
import BundleColumnError from './components/bundle_column_error';
|
import BundleColumnError from './components/bundle_column_error';
|
||||||
import Header from './components/header';
|
import Header from './components/header';
|
||||||
import { UploadArea } from './components/upload_area';
|
import { UploadArea } from './components/upload_area';
|
||||||
|
import { HashtagMenuController } from './components/hashtag_menu_controller';
|
||||||
import ColumnsAreaContainer from './containers/columns_area_container';
|
import ColumnsAreaContainer from './containers/columns_area_container';
|
||||||
import LoadingBarContainer from './containers/loading_bar_container';
|
import LoadingBarContainer from './containers/loading_bar_container';
|
||||||
import ModalContainer from './containers/modal_container';
|
import ModalContainer from './containers/modal_container';
|
||||||
|
@ -611,6 +612,7 @@ class UI extends PureComponent {
|
||||||
{layout !== 'mobile' && <PictureInPicture />}
|
{layout !== 'mobile' && <PictureInPicture />}
|
||||||
<AlertsController />
|
<AlertsController />
|
||||||
{!disableHoverCards && <HoverCardController />}
|
{!disableHoverCards && <HoverCardController />}
|
||||||
|
<HashtagMenuController />
|
||||||
<LoadingBarContainer className='loading-bar' />
|
<LoadingBarContainer className='loading-bar' />
|
||||||
<ModalContainer />
|
<ModalContainer />
|
||||||
<UploadArea active={draggingOver} onClose={this.closeUploadModal} />
|
<UploadArea active={draggingOver} onClose={this.closeUploadModal} />
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "Редактиране на профила",
|
"account.edit_profile": "Редактиране на профила",
|
||||||
"account.enable_notifications": "Известяване при публикуване от @{name}",
|
"account.enable_notifications": "Известяване при публикуване от @{name}",
|
||||||
"account.endorse": "Представи в профила",
|
"account.endorse": "Представи в профила",
|
||||||
|
"account.featured": "Препоръчано",
|
||||||
|
"account.featured.hashtags": "Хаштагове",
|
||||||
|
"account.featured.posts": "Публикации",
|
||||||
"account.featured_tags.last_status_at": "Последна публикация на {date}",
|
"account.featured_tags.last_status_at": "Последна публикация на {date}",
|
||||||
"account.featured_tags.last_status_never": "Няма публикации",
|
"account.featured_tags.last_status_never": "Няма публикации",
|
||||||
"account.follow": "Последване",
|
"account.follow": "Последване",
|
||||||
|
@ -293,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Резултати от търсене",
|
"emoji_button.search_results": "Резултати от търсене",
|
||||||
"emoji_button.symbols": "Символи",
|
"emoji_button.symbols": "Символи",
|
||||||
"emoji_button.travel": "Пътуване и места",
|
"emoji_button.travel": "Пътуване и места",
|
||||||
|
"empty_column.account_featured": "Списъкът е празен",
|
||||||
"empty_column.account_hides_collections": "Този потребител е избрал да не дава тази информация",
|
"empty_column.account_hides_collections": "Този потребител е избрал да не дава тази информация",
|
||||||
"empty_column.account_suspended": "Спрян акаунт",
|
"empty_column.account_suspended": "Спрян акаунт",
|
||||||
"empty_column.account_timeline": "Тук няма публикации!",
|
"empty_column.account_timeline": "Тук няма публикации!",
|
||||||
|
@ -377,6 +381,8 @@
|
||||||
"generic.saved": "Запазено",
|
"generic.saved": "Запазено",
|
||||||
"getting_started.heading": "Първи стъпки",
|
"getting_started.heading": "Първи стъпки",
|
||||||
"hashtag.admin_moderation": "Отваряне на модериращия интерфейс за #{name}",
|
"hashtag.admin_moderation": "Отваряне на модериращия интерфейс за #{name}",
|
||||||
|
"hashtag.browse": "Разглеждане на публикации в #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Разглеждане на публикации от @{name} из #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "и {additional}",
|
"hashtag.column_header.tag_mode.all": "и {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "или {additional}",
|
"hashtag.column_header.tag_mode.any": "или {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "без {additional}",
|
"hashtag.column_header.tag_mode.none": "без {additional}",
|
||||||
|
@ -390,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} публикация} other {{counter} публикации}} днес",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} публикация} other {{counter} публикации}} днес",
|
||||||
"hashtag.follow": "Следване на хаштаг",
|
"hashtag.follow": "Следване на хаштаг",
|
||||||
|
"hashtag.mute": "Заглушаване на #{hashtag}",
|
||||||
"hashtag.unfollow": "Спиране на следване на хаштаг",
|
"hashtag.unfollow": "Спиране на следване на хаштаг",
|
||||||
"hashtags.and_other": "…и {count, plural, other {# още}}",
|
"hashtags.and_other": "…и {count, plural, other {# още}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Последователи за този профил може да липсват.",
|
"hints.profiles.followers_may_be_missing": "Последователи за този профил може да липсват.",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "Edita el perfil",
|
"account.edit_profile": "Edita el perfil",
|
||||||
"account.enable_notifications": "Notifica'm els tuts de @{name}",
|
"account.enable_notifications": "Notifica'm els tuts de @{name}",
|
||||||
"account.endorse": "Recomana en el perfil",
|
"account.endorse": "Recomana en el perfil",
|
||||||
|
"account.featured": "Destacat",
|
||||||
|
"account.featured.hashtags": "Etiquetes",
|
||||||
|
"account.featured.posts": "Publicacions",
|
||||||
"account.featured_tags.last_status_at": "Darrer tut el {date}",
|
"account.featured_tags.last_status_at": "Darrer tut el {date}",
|
||||||
"account.featured_tags.last_status_never": "No hi ha tuts",
|
"account.featured_tags.last_status_never": "No hi ha tuts",
|
||||||
"account.follow": "Segueix",
|
"account.follow": "Segueix",
|
||||||
|
@ -293,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Resultats de la cerca",
|
"emoji_button.search_results": "Resultats de la cerca",
|
||||||
"emoji_button.symbols": "Símbols",
|
"emoji_button.symbols": "Símbols",
|
||||||
"emoji_button.travel": "Viatges i llocs",
|
"emoji_button.travel": "Viatges i llocs",
|
||||||
|
"empty_column.account_featured": "Aquesta llista està buida",
|
||||||
"empty_column.account_hides_collections": "Aquest usuari ha decidit no mostrar aquesta informació",
|
"empty_column.account_hides_collections": "Aquest usuari ha decidit no mostrar aquesta informació",
|
||||||
"empty_column.account_suspended": "Compte suspès",
|
"empty_column.account_suspended": "Compte suspès",
|
||||||
"empty_column.account_timeline": "No hi ha tuts aquí!",
|
"empty_column.account_timeline": "No hi ha tuts aquí!",
|
||||||
|
@ -390,6 +394,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} tut} other {{counter} tuts}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} tut} other {{counter} tuts}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} tut} other {{counter} tuts}} avui",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} tut} other {{counter} tuts}} avui",
|
||||||
"hashtag.follow": "Segueix l'etiqueta",
|
"hashtag.follow": "Segueix l'etiqueta",
|
||||||
|
"hashtag.mute": "Silencia #{hashtag}",
|
||||||
"hashtag.unfollow": "Deixa de seguir l'etiqueta",
|
"hashtag.unfollow": "Deixa de seguir l'etiqueta",
|
||||||
"hashtags.and_other": "…i {count, plural, other {# més}}",
|
"hashtags.and_other": "…i {count, plural, other {# més}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Es poden haver perdut seguidors d'aquest perfil.",
|
"hints.profiles.followers_may_be_missing": "Es poden haver perdut seguidors d'aquest perfil.",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "Upravit profil",
|
"account.edit_profile": "Upravit profil",
|
||||||
"account.enable_notifications": "Oznamovat mi příspěvky @{name}",
|
"account.enable_notifications": "Oznamovat mi příspěvky @{name}",
|
||||||
"account.endorse": "Zvýraznit na profilu",
|
"account.endorse": "Zvýraznit na profilu",
|
||||||
|
"account.featured": "Doporučené",
|
||||||
|
"account.featured.hashtags": "Hashtagy",
|
||||||
|
"account.featured.posts": "Příspěvky",
|
||||||
"account.featured_tags.last_status_at": "Poslední příspěvek {date}",
|
"account.featured_tags.last_status_at": "Poslední příspěvek {date}",
|
||||||
"account.featured_tags.last_status_never": "Žádné příspěvky",
|
"account.featured_tags.last_status_never": "Žádné příspěvky",
|
||||||
"account.follow": "Sledovat",
|
"account.follow": "Sledovat",
|
||||||
|
@ -293,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Výsledky hledání",
|
"emoji_button.search_results": "Výsledky hledání",
|
||||||
"emoji_button.symbols": "Symboly",
|
"emoji_button.symbols": "Symboly",
|
||||||
"emoji_button.travel": "Cestování a místa",
|
"emoji_button.travel": "Cestování a místa",
|
||||||
|
"empty_column.account_featured": "Tento seznam je prázdný",
|
||||||
"empty_column.account_hides_collections": "Tento uživatel se rozhodl tuto informaci nezveřejňovat",
|
"empty_column.account_hides_collections": "Tento uživatel se rozhodl tuto informaci nezveřejňovat",
|
||||||
"empty_column.account_suspended": "Účet je pozastaven",
|
"empty_column.account_suspended": "Účet je pozastaven",
|
||||||
"empty_column.account_timeline": "Nejsou tu žádné příspěvky!",
|
"empty_column.account_timeline": "Nejsou tu žádné příspěvky!",
|
||||||
|
@ -377,6 +381,8 @@
|
||||||
"generic.saved": "Uloženo",
|
"generic.saved": "Uloženo",
|
||||||
"getting_started.heading": "Začínáme",
|
"getting_started.heading": "Začínáme",
|
||||||
"hashtag.admin_moderation": "Otevřít moderátorské rozhraní pro #{name}",
|
"hashtag.admin_moderation": "Otevřít moderátorské rozhraní pro #{name}",
|
||||||
|
"hashtag.browse": "Procházet příspěvky na #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Procházet příspěvky od @{name} v #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "a {additional}",
|
"hashtag.column_header.tag_mode.all": "a {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "nebo {additional}",
|
"hashtag.column_header.tag_mode.any": "nebo {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "bez {additional}",
|
"hashtag.column_header.tag_mode.none": "bez {additional}",
|
||||||
|
@ -390,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
"hashtag.follow": "Sledovat hashtag",
|
"hashtag.follow": "Sledovat hashtag",
|
||||||
|
"hashtag.mute": "Skrýt #{hashtag}",
|
||||||
"hashtag.unfollow": "Přestat sledovat hashtag",
|
"hashtag.unfollow": "Přestat sledovat hashtag",
|
||||||
"hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
|
"hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Sledující mohou pro tento profil chybět.",
|
"hints.profiles.followers_may_be_missing": "Sledující mohou pro tento profil chybět.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Gemt",
|
"generic.saved": "Gemt",
|
||||||
"getting_started.heading": "Startmenu",
|
"getting_started.heading": "Startmenu",
|
||||||
"hashtag.admin_moderation": "Åbn modereringsbrugerflade for #{name}",
|
"hashtag.admin_moderation": "Åbn modereringsbrugerflade for #{name}",
|
||||||
|
"hashtag.browse": "Gennemse indlæg i #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Gennemse indlæg fra @{name} i #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "og {additional}",
|
"hashtag.column_header.tag_mode.all": "og {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "eller {additional}",
|
"hashtag.column_header.tag_mode.any": "eller {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "uden {additional}",
|
"hashtag.column_header.tag_mode.none": "uden {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
|
||||||
"hashtag.follow": "Følg etiket",
|
"hashtag.follow": "Følg etiket",
|
||||||
|
"hashtag.mute": "Tavsgør #{hashtag}",
|
||||||
"hashtag.unfollow": "Stop med at følge etiket",
|
"hashtag.unfollow": "Stop med at følge etiket",
|
||||||
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
|
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.",
|
"hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Gespeichert",
|
"generic.saved": "Gespeichert",
|
||||||
"getting_started.heading": "Auf gehts!",
|
"getting_started.heading": "Auf gehts!",
|
||||||
"hashtag.admin_moderation": "#{name} moderieren",
|
"hashtag.admin_moderation": "#{name} moderieren",
|
||||||
|
"hashtag.browse": "Beiträge mit #{hashtag} suchen",
|
||||||
|
"hashtag.browse_from_account": "Beiträge von @{name} mit #{hashtag} suchen",
|
||||||
"hashtag.column_header.tag_mode.all": "und {additional}",
|
"hashtag.column_header.tag_mode.all": "und {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "oder {additional}",
|
"hashtag.column_header.tag_mode.any": "oder {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "ohne {additional}",
|
"hashtag.column_header.tag_mode.none": "ohne {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}} heute",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}} heute",
|
||||||
"hashtag.follow": "Hashtag folgen",
|
"hashtag.follow": "Hashtag folgen",
|
||||||
|
"hashtag.mute": "#{hashtag} stummschalten",
|
||||||
"hashtag.unfollow": "Hashtag entfolgen",
|
"hashtag.unfollow": "Hashtag entfolgen",
|
||||||
"hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}",
|
"hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Follower angezeigt.",
|
"hints.profiles.followers_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Follower angezeigt.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Saved",
|
"generic.saved": "Saved",
|
||||||
"getting_started.heading": "Getting started",
|
"getting_started.heading": "Getting started",
|
||||||
"hashtag.admin_moderation": "Open moderation interface for #{name}",
|
"hashtag.admin_moderation": "Open moderation interface for #{name}",
|
||||||
|
"hashtag.browse": "Browse posts in #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Browse posts from @{name} in #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "or {additional}",
|
"hashtag.column_header.tag_mode.any": "or {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} posts}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} posts}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
|
||||||
"hashtag.follow": "Follow hashtag",
|
"hashtag.follow": "Follow hashtag",
|
||||||
|
"hashtag.mute": "Mute #{hashtag}",
|
||||||
"hashtag.unfollow": "Unfollow hashtag",
|
"hashtag.unfollow": "Unfollow hashtag",
|
||||||
"hashtags.and_other": "…and {count, plural, other {# more}}",
|
"hashtags.and_other": "…and {count, plural, other {# more}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Followers for this profile may be missing.",
|
"hints.profiles.followers_may_be_missing": "Followers for this profile may be missing.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Guardado",
|
"generic.saved": "Guardado",
|
||||||
"getting_started.heading": "Inicio de Mastodon",
|
"getting_started.heading": "Inicio de Mastodon",
|
||||||
"hashtag.admin_moderation": "Abrir interface de moderación para #{name}",
|
"hashtag.admin_moderation": "Abrir interface de moderación para #{name}",
|
||||||
|
"hashtag.browse": "Ver publicaciones con #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Ver publicaciones de @{name} con #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "y {additional}",
|
"hashtag.column_header.tag_mode.all": "y {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}} hoy",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}} hoy",
|
||||||
"hashtag.follow": "Seguir etiqueta",
|
"hashtag.follow": "Seguir etiqueta",
|
||||||
|
"hashtag.mute": "Silenciar #{hashtag}",
|
||||||
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
||||||
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Es posible que falten seguidores de este perfil.",
|
"hints.profiles.followers_may_be_missing": "Es posible que falten seguidores de este perfil.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Guardado",
|
"generic.saved": "Guardado",
|
||||||
"getting_started.heading": "Primeros pasos",
|
"getting_started.heading": "Primeros pasos",
|
||||||
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
|
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
|
||||||
|
"hashtag.browse": "Explorar publicaciones en #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Explorar publicaciones desde @{name} en #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "y {additional}",
|
"hashtag.column_header.tag_mode.all": "y {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy",
|
||||||
"hashtag.follow": "Seguir etiqueta",
|
"hashtag.follow": "Seguir etiqueta",
|
||||||
|
"hashtag.mute": "Silenciar #{hashtag}",
|
||||||
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
||||||
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
|
"hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Guardado",
|
"generic.saved": "Guardado",
|
||||||
"getting_started.heading": "Primeros pasos",
|
"getting_started.heading": "Primeros pasos",
|
||||||
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
|
"hashtag.admin_moderation": "Abrir interfaz de moderación para #{name}",
|
||||||
|
"hashtag.browse": "Explorar publicaciones en #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Explorar publicaciones desde @{name} en #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "y {additional}",
|
"hashtag.column_header.tag_mode.all": "y {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy",
|
||||||
"hashtag.follow": "Seguir etiqueta",
|
"hashtag.follow": "Seguir etiqueta",
|
||||||
|
"hashtag.mute": "Silenciar #{hashtag}",
|
||||||
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
||||||
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
|
"hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.",
|
||||||
|
|
|
@ -380,6 +380,8 @@
|
||||||
"generic.saved": "Tallennettu",
|
"generic.saved": "Tallennettu",
|
||||||
"getting_started.heading": "Näin pääset alkuun",
|
"getting_started.heading": "Näin pääset alkuun",
|
||||||
"hashtag.admin_moderation": "Avaa tunnisteen #{name} moderointinäkymä",
|
"hashtag.admin_moderation": "Avaa tunnisteen #{name} moderointinäkymä",
|
||||||
|
"hashtag.browse": "Selaa julkaisuja tunnisteella #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Selaa julkaisuja käyttäjältä @{name} tunnisteella #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "ja {additional}",
|
"hashtag.column_header.tag_mode.all": "ja {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "tai {additional}",
|
"hashtag.column_header.tag_mode.any": "tai {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "ilman {additional}",
|
"hashtag.column_header.tag_mode.none": "ilman {additional}",
|
||||||
|
@ -393,6 +395,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one{{counter} julkaisu} other {{counter} julkaisua}}",
|
"hashtag.counter_by_uses": "{count, plural, one{{counter} julkaisu} other {{counter} julkaisua}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}} tänään",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}} tänään",
|
||||||
"hashtag.follow": "Seuraa aihetunnistetta",
|
"hashtag.follow": "Seuraa aihetunnistetta",
|
||||||
|
"hashtag.mute": "Mykistä #{hashtag}",
|
||||||
"hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen",
|
"hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen",
|
||||||
"hashtags.and_other": "…ja {count, plural, other {# lisää}}",
|
"hashtags.and_other": "…ja {count, plural, other {# lisää}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Tämän profiilin seuraajia saattaa puuttua.",
|
"hints.profiles.followers_may_be_missing": "Tämän profiilin seuraajia saattaa puuttua.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Goymt",
|
"generic.saved": "Goymt",
|
||||||
"getting_started.heading": "At byrja",
|
"getting_started.heading": "At byrja",
|
||||||
"hashtag.admin_moderation": "Lat umsjónarmarkamót upp fyri #{name}",
|
"hashtag.admin_moderation": "Lat umsjónarmarkamót upp fyri #{name}",
|
||||||
|
"hashtag.browse": "Blaða gjøgnum postar í #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Blaða gjøgnum postar frá @{name} í #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "og {additional}",
|
"hashtag.column_header.tag_mode.all": "og {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "ella {additional}",
|
"hashtag.column_header.tag_mode.any": "ella {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "uttan {additional}",
|
"hashtag.column_header.tag_mode.none": "uttan {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} postur} other {{counter} postar}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} postur} other {{counter} postar}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postur} other {{counter} postar}} í dag",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postur} other {{counter} postar}} í dag",
|
||||||
"hashtag.follow": "Fylg frámerki",
|
"hashtag.follow": "Fylg frámerki",
|
||||||
|
"hashtag.mute": "Doyv @#{hashtag}",
|
||||||
"hashtag.unfollow": "Gevst at fylgja frámerki",
|
"hashtag.unfollow": "Gevst at fylgja frámerki",
|
||||||
"hashtags.and_other": "…og {count, plural, other {# afturat}}",
|
"hashtags.and_other": "…og {count, plural, other {# afturat}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Fylgjarar hjá hesum vanganum kunnu mangla.",
|
"hints.profiles.followers_may_be_missing": "Fylgjarar hjá hesum vanganum kunnu mangla.",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "Modifier le profil",
|
"account.edit_profile": "Modifier le profil",
|
||||||
"account.enable_notifications": "Me notifier quand @{name} publie",
|
"account.enable_notifications": "Me notifier quand @{name} publie",
|
||||||
"account.endorse": "Inclure sur profil",
|
"account.endorse": "Inclure sur profil",
|
||||||
|
"account.featured": "En vedette",
|
||||||
|
"account.featured.hashtags": "Hashtags",
|
||||||
|
"account.featured.posts": "Messages",
|
||||||
"account.featured_tags.last_status_at": "Dernière publication {date}",
|
"account.featured_tags.last_status_at": "Dernière publication {date}",
|
||||||
"account.featured_tags.last_status_never": "Aucune publication",
|
"account.featured_tags.last_status_never": "Aucune publication",
|
||||||
"account.follow": "Suivre",
|
"account.follow": "Suivre",
|
||||||
|
@ -64,6 +67,7 @@
|
||||||
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
||||||
"account.unblock": "Débloquer @{name}",
|
"account.unblock": "Débloquer @{name}",
|
||||||
"account.unblock_domain": "Débloquer le domaine {domain}",
|
"account.unblock_domain": "Débloquer le domaine {domain}",
|
||||||
|
"account.unblock_domain_short": "Débloquer",
|
||||||
"account.unblock_short": "Débloquer",
|
"account.unblock_short": "Débloquer",
|
||||||
"account.unendorse": "Ne pas inclure sur profil",
|
"account.unendorse": "Ne pas inclure sur profil",
|
||||||
"account.unfollow": "Ne plus suivre",
|
"account.unfollow": "Ne plus suivre",
|
||||||
|
@ -292,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Résultats",
|
"emoji_button.search_results": "Résultats",
|
||||||
"emoji_button.symbols": "Symboles",
|
"emoji_button.symbols": "Symboles",
|
||||||
"emoji_button.travel": "Voyage et lieux",
|
"emoji_button.travel": "Voyage et lieux",
|
||||||
|
"empty_column.account_featured": "Cette liste est vide",
|
||||||
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
|
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
|
||||||
"empty_column.account_suspended": "Compte suspendu",
|
"empty_column.account_suspended": "Compte suspendu",
|
||||||
"empty_column.account_timeline": "Aucune publication ici!",
|
"empty_column.account_timeline": "Aucune publication ici!",
|
||||||
|
@ -904,6 +909,10 @@
|
||||||
"video.expand": "Agrandir la vidéo",
|
"video.expand": "Agrandir la vidéo",
|
||||||
"video.fullscreen": "Plein écran",
|
"video.fullscreen": "Plein écran",
|
||||||
"video.hide": "Masquer la vidéo",
|
"video.hide": "Masquer la vidéo",
|
||||||
|
"video.mute": "Couper le son",
|
||||||
"video.pause": "Pause",
|
"video.pause": "Pause",
|
||||||
"video.play": "Lecture"
|
"video.play": "Lecture",
|
||||||
|
"video.unmute": "Rétablir le son",
|
||||||
|
"video.volume_down": "Baisser le volume",
|
||||||
|
"video.volume_up": "Augmenter le volume"
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "Modifier le profil",
|
"account.edit_profile": "Modifier le profil",
|
||||||
"account.enable_notifications": "Me notifier quand @{name} publie quelque chose",
|
"account.enable_notifications": "Me notifier quand @{name} publie quelque chose",
|
||||||
"account.endorse": "Recommander sur votre profil",
|
"account.endorse": "Recommander sur votre profil",
|
||||||
|
"account.featured": "En vedette",
|
||||||
|
"account.featured.hashtags": "Hashtags",
|
||||||
|
"account.featured.posts": "Messages",
|
||||||
"account.featured_tags.last_status_at": "Dernier message le {date}",
|
"account.featured_tags.last_status_at": "Dernier message le {date}",
|
||||||
"account.featured_tags.last_status_never": "Aucun message",
|
"account.featured_tags.last_status_never": "Aucun message",
|
||||||
"account.follow": "Suivre",
|
"account.follow": "Suivre",
|
||||||
|
@ -64,6 +67,7 @@
|
||||||
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
"account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}",
|
||||||
"account.unblock": "Débloquer @{name}",
|
"account.unblock": "Débloquer @{name}",
|
||||||
"account.unblock_domain": "Débloquer le domaine {domain}",
|
"account.unblock_domain": "Débloquer le domaine {domain}",
|
||||||
|
"account.unblock_domain_short": "Débloquer",
|
||||||
"account.unblock_short": "Débloquer",
|
"account.unblock_short": "Débloquer",
|
||||||
"account.unendorse": "Ne plus recommander sur le profil",
|
"account.unendorse": "Ne plus recommander sur le profil",
|
||||||
"account.unfollow": "Ne plus suivre",
|
"account.unfollow": "Ne plus suivre",
|
||||||
|
@ -292,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Résultats de la recherche",
|
"emoji_button.search_results": "Résultats de la recherche",
|
||||||
"emoji_button.symbols": "Symboles",
|
"emoji_button.symbols": "Symboles",
|
||||||
"emoji_button.travel": "Voyage et lieux",
|
"emoji_button.travel": "Voyage et lieux",
|
||||||
|
"empty_column.account_featured": "Cette liste est vide",
|
||||||
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
|
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
|
||||||
"empty_column.account_suspended": "Compte suspendu",
|
"empty_column.account_suspended": "Compte suspendu",
|
||||||
"empty_column.account_timeline": "Aucun message ici !",
|
"empty_column.account_timeline": "Aucun message ici !",
|
||||||
|
@ -904,6 +909,10 @@
|
||||||
"video.expand": "Agrandir la vidéo",
|
"video.expand": "Agrandir la vidéo",
|
||||||
"video.fullscreen": "Plein écran",
|
"video.fullscreen": "Plein écran",
|
||||||
"video.hide": "Masquer la vidéo",
|
"video.hide": "Masquer la vidéo",
|
||||||
|
"video.mute": "Couper le son",
|
||||||
"video.pause": "Pause",
|
"video.pause": "Pause",
|
||||||
"video.play": "Lecture"
|
"video.play": "Lecture",
|
||||||
|
"video.unmute": "Rétablir le son",
|
||||||
|
"video.volume_down": "Baisser le volume",
|
||||||
|
"video.volume_up": "Augmenter le volume"
|
||||||
}
|
}
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Gardado",
|
"generic.saved": "Gardado",
|
||||||
"getting_started.heading": "Primeiros pasos",
|
"getting_started.heading": "Primeiros pasos",
|
||||||
"hashtag.admin_moderation": "Abrir interface de moderación para ##{name}",
|
"hashtag.admin_moderation": "Abrir interface de moderación para ##{name}",
|
||||||
|
"hashtag.browse": "Ver publicacións con #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Ver as publicacións de @{name} con #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "e {additional}",
|
"hashtag.column_header.tag_mode.all": "e {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "ou {additional}",
|
"hashtag.column_header.tag_mode.any": "ou {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "sen {additional}",
|
"hashtag.column_header.tag_mode.none": "sen {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicacións}} hoxe",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicacións}} hoxe",
|
||||||
"hashtag.follow": "Seguir cancelo",
|
"hashtag.follow": "Seguir cancelo",
|
||||||
|
"hashtag.mute": "Acalar a #{hashtag}",
|
||||||
"hashtag.unfollow": "Deixar de seguir cancelo",
|
"hashtag.unfollow": "Deixar de seguir cancelo",
|
||||||
"hashtags.and_other": "…e {count, plural, one {}other {# máis}}",
|
"hashtags.and_other": "…e {count, plural, one {}other {# máis}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Poderían faltar seguidoras deste perfil.",
|
"hints.profiles.followers_may_be_missing": "Poderían faltar seguidoras deste perfil.",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "עריכת פרופיל",
|
"account.edit_profile": "עריכת פרופיל",
|
||||||
"account.enable_notifications": "שלח לי התראות כש@{name} מפרסם",
|
"account.enable_notifications": "שלח לי התראות כש@{name} מפרסם",
|
||||||
"account.endorse": "קדם את החשבון בפרופיל",
|
"account.endorse": "קדם את החשבון בפרופיל",
|
||||||
|
"account.featured": "מומלץ",
|
||||||
|
"account.featured.hashtags": "תגיות",
|
||||||
|
"account.featured.posts": "הודעות",
|
||||||
"account.featured_tags.last_status_at": "חצרוץ אחרון בתאריך {date}",
|
"account.featured_tags.last_status_at": "חצרוץ אחרון בתאריך {date}",
|
||||||
"account.featured_tags.last_status_never": "אין חצרוצים",
|
"account.featured_tags.last_status_never": "אין חצרוצים",
|
||||||
"account.follow": "לעקוב",
|
"account.follow": "לעקוב",
|
||||||
|
@ -293,6 +296,7 @@
|
||||||
"emoji_button.search_results": "תוצאות חיפוש",
|
"emoji_button.search_results": "תוצאות חיפוש",
|
||||||
"emoji_button.symbols": "סמלים",
|
"emoji_button.symbols": "סמלים",
|
||||||
"emoji_button.travel": "טיולים ואתרים",
|
"emoji_button.travel": "טיולים ואתרים",
|
||||||
|
"empty_column.account_featured": "הרשימה ריקה",
|
||||||
"empty_column.account_hides_collections": "המשתמש.ת בחר.ה להסתיר מידע זה",
|
"empty_column.account_hides_collections": "המשתמש.ת בחר.ה להסתיר מידע זה",
|
||||||
"empty_column.account_suspended": "חשבון מושעה",
|
"empty_column.account_suspended": "חשבון מושעה",
|
||||||
"empty_column.account_timeline": "אין עדיין אף הודעה!",
|
"empty_column.account_timeline": "אין עדיין אף הודעה!",
|
||||||
|
@ -377,6 +381,8 @@
|
||||||
"generic.saved": "נשמר",
|
"generic.saved": "נשמר",
|
||||||
"getting_started.heading": "בואו נתחיל",
|
"getting_started.heading": "בואו נתחיל",
|
||||||
"hashtag.admin_moderation": "פתיחת ממשק פיקוח דיון עבור #{name}",
|
"hashtag.admin_moderation": "פתיחת ממשק פיקוח דיון עבור #{name}",
|
||||||
|
"hashtag.browse": "קריאת הודעות תחת #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "קריאת הודעות מאת @{name} תחת #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "ו- {additional}",
|
"hashtag.column_header.tag_mode.all": "ו- {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "או {additional}",
|
"hashtag.column_header.tag_mode.any": "או {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "ללא {additional}",
|
"hashtag.column_header.tag_mode.none": "ללא {additional}",
|
||||||
|
@ -390,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}",
|
"hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}} היום",
|
"hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}} היום",
|
||||||
"hashtag.follow": "לעקוב אחרי תגית",
|
"hashtag.follow": "לעקוב אחרי תגית",
|
||||||
|
"hashtag.mute": "להשתיק את #{hashtag}",
|
||||||
"hashtag.unfollow": "להפסיק לעקוב אחרי תגית",
|
"hashtag.unfollow": "להפסיק לעקוב אחרי תגית",
|
||||||
"hashtags.and_other": "…{count, plural,other {ועוד #}}",
|
"hashtags.and_other": "…{count, plural,other {ועוד #}}",
|
||||||
"hints.profiles.followers_may_be_missing": "יתכן כי עוקבים של פרופיל זה חסרים.",
|
"hints.profiles.followers_may_be_missing": "יתכן כי עוקבים של פרופיל זה חסרים.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Elmentve",
|
"generic.saved": "Elmentve",
|
||||||
"getting_started.heading": "Első lépések",
|
"getting_started.heading": "Első lépések",
|
||||||
"hashtag.admin_moderation": "Moderációs felület megnyitása a következőhöz: #{name}",
|
"hashtag.admin_moderation": "Moderációs felület megnyitása a következőhöz: #{name}",
|
||||||
|
"hashtag.browse": "Bejegyzések ebben: #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "@{name} bejegyzéseinek tallózása ebben: #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "és {additional}",
|
"hashtag.column_header.tag_mode.all": "és {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "vagy {additional}",
|
"hashtag.column_header.tag_mode.any": "vagy {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "{additional} nélkül",
|
"hashtag.column_header.tag_mode.none": "{additional} nélkül",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}} ma",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}} ma",
|
||||||
"hashtag.follow": "Hashtag követése",
|
"hashtag.follow": "Hashtag követése",
|
||||||
|
"hashtag.mute": "#{hashtag} némítása",
|
||||||
"hashtag.unfollow": "Hashtag követésének megszüntetése",
|
"hashtag.unfollow": "Hashtag követésének megszüntetése",
|
||||||
"hashtags.and_other": "…és {count, plural, other {# további}}",
|
"hashtags.and_other": "…és {count, plural, other {# további}}",
|
||||||
"hints.profiles.followers_may_be_missing": "A profil követői lehet, hogy hiányoznak.",
|
"hints.profiles.followers_may_be_missing": "A profil követői lehet, hogy hiányoznak.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Vistað",
|
"generic.saved": "Vistað",
|
||||||
"getting_started.heading": "Komast í gang",
|
"getting_started.heading": "Komast í gang",
|
||||||
"hashtag.admin_moderation": "Opna umsjónarviðmót fyrir #{name}",
|
"hashtag.admin_moderation": "Opna umsjónarviðmót fyrir #{name}",
|
||||||
|
"hashtag.browse": "Skoða færslur með #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Skoða færslur frá @{name} í #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "og {additional}",
|
"hashtag.column_header.tag_mode.all": "og {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "eða {additional}",
|
"hashtag.column_header.tag_mode.any": "eða {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "án {additional}",
|
"hashtag.column_header.tag_mode.none": "án {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} færsla} other {{counter} færslur}} í dag",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} færsla} other {{counter} færslur}} í dag",
|
||||||
"hashtag.follow": "Fylgjast með myllumerki",
|
"hashtag.follow": "Fylgjast með myllumerki",
|
||||||
|
"hashtag.mute": "Þagga #{hashtag}",
|
||||||
"hashtag.unfollow": "Hætta að fylgjast með myllumerki",
|
"hashtag.unfollow": "Hætta að fylgjast með myllumerki",
|
||||||
"hashtags.and_other": "…og {count, plural, other {# til viðbótar}}",
|
"hashtags.and_other": "…og {count, plural, other {# til viðbótar}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Fylgjendur frá þessum notanda gæti vantað.",
|
"hints.profiles.followers_may_be_missing": "Fylgjendur frá þessum notanda gæti vantað.",
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
"alert.rate_limited.title": "Aktum s talast",
|
"alert.rate_limited.title": "Aktum s talast",
|
||||||
"alert.unexpected.message": "Yeḍra-d unezri ur netturaǧu ara.",
|
"alert.unexpected.message": "Yeḍra-d unezri ur netturaǧu ara.",
|
||||||
"alert.unexpected.title": "Ayhuh!",
|
"alert.unexpected.title": "Ayhuh!",
|
||||||
"alt_text_badge.title": "Aḍris asegzan",
|
"alt_text_badge.title": "Aḍris amlellay",
|
||||||
"alt_text_modal.add_alt_text": "Rnu aḍris amlellay",
|
"alt_text_modal.add_alt_text": "Rnu aḍris amlellay",
|
||||||
"alt_text_modal.add_text_from_image": "Rnu aḍris amlellay seg tugna",
|
"alt_text_modal.add_text_from_image": "Rnu aḍris amlellay seg tugna",
|
||||||
"alt_text_modal.cancel": "Semmet",
|
"alt_text_modal.cancel": "Semmet",
|
||||||
|
@ -172,6 +172,7 @@
|
||||||
"confirmations.logout.title": "Tebɣiḍ ad teffɣeḍ ssya?",
|
"confirmations.logout.title": "Tebɣiḍ ad teffɣeḍ ssya?",
|
||||||
"confirmations.missing_alt_text.confirm": "Rnu aḍris amlellay",
|
"confirmations.missing_alt_text.confirm": "Rnu aḍris amlellay",
|
||||||
"confirmations.missing_alt_text.secondary": "Suffeɣ akken yebɣu yili",
|
"confirmations.missing_alt_text.secondary": "Suffeɣ akken yebɣu yili",
|
||||||
|
"confirmations.missing_alt_text.title": "Rnu aḍris amlellay?",
|
||||||
"confirmations.mute.confirm": "Sgugem",
|
"confirmations.mute.confirm": "Sgugem",
|
||||||
"confirmations.redraft.confirm": "Kkes sakin ɛiwed tira",
|
"confirmations.redraft.confirm": "Kkes sakin ɛiwed tira",
|
||||||
"confirmations.reply.confirm": "Err",
|
"confirmations.reply.confirm": "Err",
|
||||||
|
@ -259,8 +260,11 @@
|
||||||
"follow_request.reject": "Agi",
|
"follow_request.reject": "Agi",
|
||||||
"follow_suggestions.dismiss": "Dayen ur t-id-skan ara",
|
"follow_suggestions.dismiss": "Dayen ur t-id-skan ara",
|
||||||
"follow_suggestions.featured_longer": "Yettwafraned s ufus sɣur agraw n {domain}",
|
"follow_suggestions.featured_longer": "Yettwafraned s ufus sɣur agraw n {domain}",
|
||||||
|
"follow_suggestions.friends_of_friends_longer": "D aɣeṛfan ar wid i teṭṭafareḍ",
|
||||||
"follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.",
|
"follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.",
|
||||||
"follow_suggestions.popular_suggestion_longer": "Yettwassen deg {domain}",
|
"follow_suggestions.hints.friends_of_friends": "Amaɣnu-a d aɣeṛfan ɣer wid i teṭṭafaṛeḍ.",
|
||||||
|
"follow_suggestions.popular_suggestion": "Asumer aɣeṛfan",
|
||||||
|
"follow_suggestions.popular_suggestion_longer": "D aɣeṛfan deg {domain}",
|
||||||
"follow_suggestions.view_all": "Wali-ten akk",
|
"follow_suggestions.view_all": "Wali-ten akk",
|
||||||
"follow_suggestions.who_to_follow": "Ad tḍefreḍ?",
|
"follow_suggestions.who_to_follow": "Ad tḍefreḍ?",
|
||||||
"followed_tags": "Ihacṭagen yettwaḍfaren",
|
"followed_tags": "Ihacṭagen yettwaḍfaren",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "프로필 편집",
|
"account.edit_profile": "프로필 편집",
|
||||||
"account.enable_notifications": "@{name} 의 게시물 알림 켜기",
|
"account.enable_notifications": "@{name} 의 게시물 알림 켜기",
|
||||||
"account.endorse": "프로필에 추천하기",
|
"account.endorse": "프로필에 추천하기",
|
||||||
|
"account.featured": "추천",
|
||||||
|
"account.featured.hashtags": "해시태그",
|
||||||
|
"account.featured.posts": "게시물",
|
||||||
"account.featured_tags.last_status_at": "{date}에 마지막으로 게시",
|
"account.featured_tags.last_status_at": "{date}에 마지막으로 게시",
|
||||||
"account.featured_tags.last_status_never": "게시물 없음",
|
"account.featured_tags.last_status_never": "게시물 없음",
|
||||||
"account.follow": "팔로우",
|
"account.follow": "팔로우",
|
||||||
|
@ -64,6 +67,7 @@
|
||||||
"account.statuses_counter": "{count, plural, other {게시물 {counter}개}}",
|
"account.statuses_counter": "{count, plural, other {게시물 {counter}개}}",
|
||||||
"account.unblock": "차단 해제",
|
"account.unblock": "차단 해제",
|
||||||
"account.unblock_domain": "도메인 {domain} 차단 해제",
|
"account.unblock_domain": "도메인 {domain} 차단 해제",
|
||||||
|
"account.unblock_domain_short": "차단 해제",
|
||||||
"account.unblock_short": "차단 해제",
|
"account.unblock_short": "차단 해제",
|
||||||
"account.unendorse": "프로필에 추천하지 않기",
|
"account.unendorse": "프로필에 추천하지 않기",
|
||||||
"account.unfollow": "언팔로우",
|
"account.unfollow": "언팔로우",
|
||||||
|
@ -292,6 +296,7 @@
|
||||||
"emoji_button.search_results": "검색 결과",
|
"emoji_button.search_results": "검색 결과",
|
||||||
"emoji_button.symbols": "기호",
|
"emoji_button.symbols": "기호",
|
||||||
"emoji_button.travel": "여행과 장소",
|
"emoji_button.travel": "여행과 장소",
|
||||||
|
"empty_column.account_featured": "목록이 비어있습니다",
|
||||||
"empty_column.account_hides_collections": "이 사용자는 이 정보를 사용할 수 없도록 설정했습니다",
|
"empty_column.account_hides_collections": "이 사용자는 이 정보를 사용할 수 없도록 설정했습니다",
|
||||||
"empty_column.account_suspended": "계정 정지됨",
|
"empty_column.account_suspended": "계정 정지됨",
|
||||||
"empty_column.account_timeline": "이곳에는 게시물이 없습니다!",
|
"empty_column.account_timeline": "이곳에는 게시물이 없습니다!",
|
||||||
|
@ -376,6 +381,8 @@
|
||||||
"generic.saved": "저장됨",
|
"generic.saved": "저장됨",
|
||||||
"getting_started.heading": "시작하기",
|
"getting_started.heading": "시작하기",
|
||||||
"hashtag.admin_moderation": "#{name}에 대한 중재화면 열기",
|
"hashtag.admin_moderation": "#{name}에 대한 중재화면 열기",
|
||||||
|
"hashtag.browse": "#{hashtag}의 게시물 둘러보기",
|
||||||
|
"hashtag.browse_from_account": "@{name}의 #{hashtag} 게시물 둘러보기",
|
||||||
"hashtag.column_header.tag_mode.all": "및 {additional}",
|
"hashtag.column_header.tag_mode.all": "및 {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "또는 {additional}",
|
"hashtag.column_header.tag_mode.any": "또는 {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "{additional}를 제외하고",
|
"hashtag.column_header.tag_mode.none": "{additional}를 제외하고",
|
||||||
|
@ -389,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, other {게시물 {counter}개}}",
|
"hashtag.counter_by_uses": "{count, plural, other {게시물 {counter}개}}",
|
||||||
"hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}",
|
"hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}",
|
||||||
"hashtag.follow": "해시태그 팔로우",
|
"hashtag.follow": "해시태그 팔로우",
|
||||||
|
"hashtag.mute": "#{hashtag} 뮤트",
|
||||||
"hashtag.unfollow": "해시태그 팔로우 해제",
|
"hashtag.unfollow": "해시태그 팔로우 해제",
|
||||||
"hashtags.and_other": "…및 {count, plural,other {#개}}",
|
"hashtags.and_other": "…및 {count, plural,other {#개}}",
|
||||||
"hints.profiles.followers_may_be_missing": "이 프로필의 팔로워 목록은 일부 누락되었을 수 있습니다.",
|
"hints.profiles.followers_may_be_missing": "이 프로필의 팔로워 목록은 일부 누락되었을 수 있습니다.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"about.blocks": "Pelayan yang disederhanakan",
|
"about.blocks": "Pelayan yang diselaraskan",
|
||||||
"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",
|
||||||
|
@ -11,13 +11,13 @@
|
||||||
"about.not_available": "Maklumat ini belum tersedia pada pelayan ini.",
|
"about.not_available": "Maklumat ini belum tersedia pada pelayan ini.",
|
||||||
"about.powered_by": "Media sosial terpencar yang dikuasakan oleh {mastodon}",
|
"about.powered_by": "Media sosial terpencar yang dikuasakan oleh {mastodon}",
|
||||||
"about.rules": "Peraturan pelayan",
|
"about.rules": "Peraturan pelayan",
|
||||||
"account.account_note_header": "Personal note",
|
"account.account_note_header": "Catatan peribadi",
|
||||||
"account.add_or_remove_from_list": "Tambah atau Buang dari senarai",
|
"account.add_or_remove_from_list": "Tambah atau Buang dari senarai",
|
||||||
"account.badges.bot": "Bot",
|
"account.badges.bot": "Automatik",
|
||||||
"account.badges.group": "Kumpulan",
|
"account.badges.group": "Kumpulan",
|
||||||
"account.block": "Sekat @{name}",
|
"account.block": "Sekat @{name}",
|
||||||
"account.block_domain": "Sekat domain {domain}",
|
"account.block_domain": "Sekat domain {domain}",
|
||||||
"account.block_short": "Malay",
|
"account.block_short": "Sekat",
|
||||||
"account.blocked": "Disekat",
|
"account.blocked": "Disekat",
|
||||||
"account.cancel_follow_request": "Batalkan permintaan ikut",
|
"account.cancel_follow_request": "Batalkan permintaan ikut",
|
||||||
"account.copy": "Salin pautan ke profil",
|
"account.copy": "Salin pautan ke profil",
|
||||||
|
@ -33,24 +33,24 @@
|
||||||
"account.follow_back": "Ikut balik",
|
"account.follow_back": "Ikut balik",
|
||||||
"account.followers": "Pengikut",
|
"account.followers": "Pengikut",
|
||||||
"account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
|
"account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
|
"account.followers_counter": "{count, plural, one {{counter} pengikut} other {{counter} pengikut}}",
|
||||||
"account.following": "Mengikuti",
|
"account.following": "Ikutan",
|
||||||
"account.following_counter": "{count, plural, other {{counter} following}}",
|
"account.following_counter": "{count, plural, other {{counter} ikutan}}",
|
||||||
"account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
|
"account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
|
||||||
"account.go_to_profile": "Pergi ke profil",
|
"account.go_to_profile": "Pergi ke profil",
|
||||||
"account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
|
"account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
|
||||||
"account.in_memoriam": "Dalam Memoriam.",
|
"account.in_memoriam": "Dalam kenangan.",
|
||||||
"account.joined_short": "Menyertai",
|
"account.joined_short": "Tarikh penyertaan",
|
||||||
"account.languages": "Tukar bahasa yang dilanggan",
|
"account.languages": "Tukar bahasa langganan",
|
||||||
"account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}",
|
"account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}",
|
||||||
"account.locked_info": "Status privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.",
|
"account.locked_info": "Taraf privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.",
|
||||||
"account.media": "Media",
|
"account.media": "Media",
|
||||||
"account.mention": "Sebut @{name}",
|
"account.mention": "Sebut @{name}",
|
||||||
"account.moved_to": "{name} telah menandakan bahawa akaun baru mereka sekarang ialah:",
|
"account.moved_to": "{name} telah menandakan bahawa akaun baru mereka sekarang ialah:",
|
||||||
"account.mute": "Bisukan @{name}",
|
"account.mute": "Redamkan @{name}",
|
||||||
"account.mute_notifications_short": "Redam pemberitahuan",
|
"account.mute_notifications_short": "Redamkan pemberitahuan",
|
||||||
"account.mute_short": "Redam",
|
"account.mute_short": "Redam",
|
||||||
"account.muted": "Dibisukan",
|
"account.muted": "Diredamkan",
|
||||||
"account.mutual": "Rakan kongsi",
|
"account.mutual": "Rakan kongsi",
|
||||||
"account.no_bio": "Tiada penerangan diberikan.",
|
"account.no_bio": "Tiada penerangan diberikan.",
|
||||||
"account.open_original_page": "Buka halaman asal",
|
"account.open_original_page": "Buka halaman asal",
|
||||||
|
@ -64,12 +64,13 @@
|
||||||
"account.statuses_counter": "{count, plural, other {{counter} siaran}}",
|
"account.statuses_counter": "{count, plural, other {{counter} siaran}}",
|
||||||
"account.unblock": "Nyahsekat @{name}",
|
"account.unblock": "Nyahsekat @{name}",
|
||||||
"account.unblock_domain": "Nyahsekat domain {domain}",
|
"account.unblock_domain": "Nyahsekat domain {domain}",
|
||||||
|
"account.unblock_domain_short": "Nyahsekat",
|
||||||
"account.unblock_short": "Nyahsekat",
|
"account.unblock_short": "Nyahsekat",
|
||||||
"account.unendorse": "Jangan tampilkan di profil",
|
"account.unendorse": "Jangan tampilkan di profil",
|
||||||
"account.unfollow": "Nyahikut",
|
"account.unfollow": "Nyahikut",
|
||||||
"account.unmute": "Nyahbisukan @{name}",
|
"account.unmute": "Nyahbisukan @{name}",
|
||||||
"account.unmute_notifications_short": "Nyahredam notifikasi",
|
"account.unmute_notifications_short": "Nyahredamkan pemberitahuan",
|
||||||
"account.unmute_short": "Nyahbisu",
|
"account.unmute_short": "Nyahredam",
|
||||||
"account_note.placeholder": "Klik untuk menambah catatan",
|
"account_note.placeholder": "Klik untuk menambah catatan",
|
||||||
"admin.dashboard.daily_retention": "Kadar pengekalan pengguna mengikut hari selepas mendaftar",
|
"admin.dashboard.daily_retention": "Kadar pengekalan pengguna mengikut hari selepas mendaftar",
|
||||||
"admin.dashboard.monthly_retention": "Kadar pengekalan pengguna mengikut bulan selepas mendaftar",
|
"admin.dashboard.monthly_retention": "Kadar pengekalan pengguna mengikut bulan selepas mendaftar",
|
||||||
|
@ -115,6 +116,8 @@
|
||||||
"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.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.show_less": "Tunjuk kurang",
|
||||||
|
"block_modal.show_more": "Tunjuk lebih",
|
||||||
"block_modal.they_cant_mention": "Dia tidak boleh menyebut tentang anda atau mengikut anda.",
|
"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_cant_see_posts": "Dia tidak boleh melihat hantaran anda dan sebaliknya.",
|
||||||
"block_modal.they_will_know": "Dia boleh lihat bahawa dia disekat.",
|
"block_modal.they_will_know": "Dia boleh lihat bahawa dia disekat.",
|
||||||
|
@ -141,13 +144,13 @@
|
||||||
"closed_registrations_modal.preamble": "Mastodon adalah terpencar, oleh itu di mana-mana anda mencipta akaun anda, anda boleh mengikut dan berinteraksi dengan sesiapa pada pelayan ini. Anda juga boleh hos sendiri!",
|
"closed_registrations_modal.preamble": "Mastodon adalah terpencar, oleh itu di mana-mana anda mencipta akaun anda, anda boleh mengikut dan berinteraksi dengan sesiapa pada pelayan ini. Anda juga boleh hos sendiri!",
|
||||||
"closed_registrations_modal.title": "Mendaftar pada Mastodon",
|
"closed_registrations_modal.title": "Mendaftar pada Mastodon",
|
||||||
"column.about": "Perihal",
|
"column.about": "Perihal",
|
||||||
"column.blocks": "Pengguna yang disekat",
|
"column.blocks": "Pengguna tersekat",
|
||||||
"column.bookmarks": "Tanda buku",
|
"column.bookmarks": "Tanda buku",
|
||||||
"column.community": "Garis masa tempatan",
|
"column.community": "Garis masa tempatan",
|
||||||
"column.create_list": "Cipta senarai",
|
"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 tersekat",
|
||||||
"column.edit_list": "Sunting senarai",
|
"column.edit_list": "Sunting senarai",
|
||||||
"column.favourites": "Sukaan",
|
"column.favourites": "Sukaan",
|
||||||
"column.firehose": "Suapan langsung",
|
"column.firehose": "Suapan langsung",
|
||||||
|
@ -155,7 +158,7 @@
|
||||||
"column.home": "Laman Utama",
|
"column.home": "Laman Utama",
|
||||||
"column.list_members": "Urus ahli senarai",
|
"column.list_members": "Urus ahli senarai",
|
||||||
"column.lists": "Senarai",
|
"column.lists": "Senarai",
|
||||||
"column.mutes": "Pengguna yang dibisukan",
|
"column.mutes": "Pengguna teredam",
|
||||||
"column.notifications": "Pemberitahuan",
|
"column.notifications": "Pemberitahuan",
|
||||||
"column.pins": "Hantaran disemat",
|
"column.pins": "Hantaran disemat",
|
||||||
"column.public": "Garis masa bersekutu",
|
"column.public": "Garis masa bersekutu",
|
||||||
|
@ -217,13 +220,21 @@
|
||||||
"confirmations.logout.title": "Log keluar?",
|
"confirmations.logout.title": "Log keluar?",
|
||||||
"confirmations.missing_alt_text.confirm": "Tambah teks alternatif",
|
"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.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.missing_alt_text.secondary": "Hantar saja",
|
||||||
|
"confirmations.missing_alt_text.title": "Tambah teks alternatif?",
|
||||||
|
"confirmations.mute.confirm": "Redamkan",
|
||||||
"confirmations.redraft.confirm": "Padam & rangka semula",
|
"confirmations.redraft.confirm": "Padam & rangka semula",
|
||||||
"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.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.redraft.title": "Padam & gubah semula hantaran?",
|
||||||
"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.reply.title": "Tulis ganti hantaran?",
|
||||||
"confirmations.unfollow.confirm": "Nyahikut",
|
"confirmations.unfollow.confirm": "Nyahikut",
|
||||||
"confirmations.unfollow.message": "Adakah anda pasti anda ingin nyahikuti {name}?",
|
"confirmations.unfollow.message": "Adakah anda pasti anda ingin nyahikuti {name}?",
|
||||||
|
"confirmations.unfollow.title": "Berhenti mengikut pengguna?",
|
||||||
|
"content_warning.hide": "Sorok hantaran",
|
||||||
|
"content_warning.show": "Tunjuk saja",
|
||||||
|
"content_warning.show_more": "Tunjuk lebih",
|
||||||
"conversation.delete": "Padam perbualan",
|
"conversation.delete": "Padam perbualan",
|
||||||
"conversation.mark_as_read": "Tanda sudah dibaca",
|
"conversation.mark_as_read": "Tanda sudah dibaca",
|
||||||
"conversation.open": "Lihat perbualan",
|
"conversation.open": "Lihat perbualan",
|
||||||
|
@ -240,6 +251,22 @@
|
||||||
"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.",
|
"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.",
|
||||||
|
"dismissable_banner.public_timeline": "Hantaran-hantaran awam terkini ini dari pengguna alam bersekutu yang diikuti oleh pengguna dari {domain}.",
|
||||||
|
"domain_block_modal.block": "Sekat pelayan",
|
||||||
|
"domain_block_modal.block_account_instead": "Sekat @{name} sahaja",
|
||||||
|
"domain_block_modal.they_can_interact_with_old_posts": "Pengguna dari pelayan ini boleh berinteraksi dengan hantaran lama anda.",
|
||||||
|
"domain_block_modal.they_cant_follow": "Pengguna dari pelayan ini tidak boleh mengikuti anda.",
|
||||||
|
"domain_block_modal.they_wont_know": "Dia tidak akan tahu bahawa dia telah disekat.",
|
||||||
|
"domain_block_modal.title": "Sekat domain?",
|
||||||
|
"domain_block_modal.you_will_lose_num_followers": "Anda akan kehilangan {followersCount, plural, other {{followersCountDisplay} pengikut}} dan {followingCount, plural, other {{followingCountDisplay} ikutan}}.",
|
||||||
|
"domain_block_modal.you_will_lose_relationships": "Anda akan kehilangan semua pengikut dan ikutan anda dari pelayan ini.",
|
||||||
|
"domain_block_modal.you_wont_see_posts": "Anda tidak akan melihat hantaran atau pemberitahuan dari pengguna pada pelayan ini.",
|
||||||
|
"domain_pill.activitypub_lets_connect": "Hal ini membolehkan anda berhubung dan berinteraksi bukan sahaja dengan pengguna Mastodon tetapi melintasi pelbagai aplikasi sosial juga.",
|
||||||
|
"domain_pill.activitypub_like_language": "ActivityPub adalah seperti bahasa yang digunakan oleh Mastodon untuk berhubung dengan jaringan sosial lain.",
|
||||||
|
"domain_pill.server": "Pelayan",
|
||||||
|
"domain_pill.your_handle": "Pemegang anda:",
|
||||||
|
"domain_pill.your_server": "Rumah maya anda, tempatnya hantaran anda disimpan. Tidak berkenan dengan yang ini? Pindah antara pelayan pada bila-bila masa dan bawa pengikut anda sekali.",
|
||||||
|
"domain_pill.your_username": "Pengenal unik anda pada pelayan ini. Anda mungkin akan berkongsi nama pengguna dengan pengguna daripada pelayan lain.",
|
||||||
"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",
|
||||||
|
@ -257,6 +284,7 @@
|
||||||
"emoji_button.search_results": "Hasil carian",
|
"emoji_button.search_results": "Hasil carian",
|
||||||
"emoji_button.symbols": "Simbol",
|
"emoji_button.symbols": "Simbol",
|
||||||
"emoji_button.travel": "Kembara & Tempat",
|
"emoji_button.travel": "Kembara & Tempat",
|
||||||
|
"empty_column.account_featured": "Senarai ini kosong",
|
||||||
"empty_column.account_hides_collections": "Pengguna ini telah memilih untuk tidak menyediakan informasi tersebut",
|
"empty_column.account_hides_collections": "Pengguna ini telah memilih untuk tidak menyediakan informasi tersebut",
|
||||||
"empty_column.account_suspended": "Akaun digantung",
|
"empty_column.account_suspended": "Akaun digantung",
|
||||||
"empty_column.account_timeline": "Tiada hantaran di sini!",
|
"empty_column.account_timeline": "Tiada hantaran di sini!",
|
||||||
|
@ -274,7 +302,7 @@
|
||||||
"empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.",
|
"empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.",
|
||||||
"empty_column.home": "Garis masa laman utama anda kosong! Ikuti lebih ramai orang untuk mengisinya. {suggestions}",
|
"empty_column.home": "Garis masa laman utama anda kosong! Ikuti lebih ramai orang untuk mengisinya. {suggestions}",
|
||||||
"empty_column.list": "Tiada apa-apa di senarai ini lagi. Apabila ahli senarai ini menerbitkan hantaran baharu, ia akan dipaparkan di sini.",
|
"empty_column.list": "Tiada apa-apa di senarai ini lagi. Apabila ahli senarai ini menerbitkan hantaran baharu, ia akan dipaparkan di sini.",
|
||||||
"empty_column.mutes": "Anda belum membisukan sesiapa.",
|
"empty_column.mutes": "Anda belum meredamkan sesiapa.",
|
||||||
"empty_column.notifications": "Anda belum ada sebarang pemberitahuan. Apabila orang lain berinteraksi dengan anda, ia akan muncul di sini.",
|
"empty_column.notifications": "Anda belum ada sebarang pemberitahuan. Apabila orang lain berinteraksi dengan anda, ia akan muncul di sini.",
|
||||||
"empty_column.public": "Tiada apa-apa di sini! Tulis sesuatu secara awam, atau ikuti pengguna daripada pelayan lain secara manual untuk mengisinya",
|
"empty_column.public": "Tiada apa-apa di sini! Tulis sesuatu secara awam, atau ikuti pengguna daripada pelayan lain secara manual untuk mengisinya",
|
||||||
"error.unexpected_crash.explanation": "Disebabkan pepijat dalam kod kami atau masalah keserasian pelayar, halaman ini tidak dapat dipaparkan dengan betulnya.",
|
"error.unexpected_crash.explanation": "Disebabkan pepijat dalam kod kami atau masalah keserasian pelayar, halaman ini tidak dapat dipaparkan dengan betulnya.",
|
||||||
|
@ -341,6 +369,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, other {{counter} siaran}}",
|
"hashtag.counter_by_uses": "{count, plural, other {{counter} siaran}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} siaran}} hari ini",
|
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} siaran}} hari ini",
|
||||||
"hashtag.follow": "Ikuti hashtag",
|
"hashtag.follow": "Ikuti hashtag",
|
||||||
|
"hashtag.mute": "Redamkan #{hashtag}",
|
||||||
"hashtag.unfollow": "Nyahikut tanda pagar",
|
"hashtag.unfollow": "Nyahikut tanda pagar",
|
||||||
"hashtags.and_other": "…dan {count, plural, other {# more}}",
|
"hashtags.and_other": "…dan {count, plural, other {# more}}",
|
||||||
"home.column_settings.show_reblogs": "Tunjukkan galakan",
|
"home.column_settings.show_reblogs": "Tunjukkan galakan",
|
||||||
|
@ -361,7 +390,7 @@
|
||||||
"intervals.full.hours": "{number, plural, other {# jam}}",
|
"intervals.full.hours": "{number, plural, other {# jam}}",
|
||||||
"intervals.full.minutes": "{number, plural, other {# minit}}",
|
"intervals.full.minutes": "{number, plural, other {# minit}}",
|
||||||
"keyboard_shortcuts.back": "to navigate back",
|
"keyboard_shortcuts.back": "to navigate back",
|
||||||
"keyboard_shortcuts.blocked": "to open blocked users list",
|
"keyboard_shortcuts.blocked": "Buka senarai pengguna tersekat",
|
||||||
"keyboard_shortcuts.boost": "to boost",
|
"keyboard_shortcuts.boost": "to boost",
|
||||||
"keyboard_shortcuts.column": "Tumpu pada lajur",
|
"keyboard_shortcuts.column": "Tumpu pada lajur",
|
||||||
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
||||||
|
@ -378,7 +407,7 @@
|
||||||
"keyboard_shortcuts.legend": "to display this legend",
|
"keyboard_shortcuts.legend": "to display this legend",
|
||||||
"keyboard_shortcuts.local": "to open local timeline",
|
"keyboard_shortcuts.local": "to open local timeline",
|
||||||
"keyboard_shortcuts.mention": "to mention author",
|
"keyboard_shortcuts.mention": "to mention author",
|
||||||
"keyboard_shortcuts.muted": "to open muted users list",
|
"keyboard_shortcuts.muted": "Buka senarai pengguna teredam",
|
||||||
"keyboard_shortcuts.my_profile": "to open your profile",
|
"keyboard_shortcuts.my_profile": "to open your profile",
|
||||||
"keyboard_shortcuts.notifications": "to open notifications column",
|
"keyboard_shortcuts.notifications": "to open notifications column",
|
||||||
"keyboard_shortcuts.open_media": "to open media",
|
"keyboard_shortcuts.open_media": "to open media",
|
||||||
|
@ -408,24 +437,27 @@
|
||||||
"load_pending": "{count, plural, one {# item baharu} other {# item baharu}}",
|
"load_pending": "{count, plural, one {# item baharu} other {# item baharu}}",
|
||||||
"loading_indicator.label": "Memuatkan…",
|
"loading_indicator.label": "Memuatkan…",
|
||||||
"moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.",
|
"moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.",
|
||||||
|
"mute_modal.indefinite": "Sehingga dinyahredamkan",
|
||||||
|
"mute_modal.they_wont_know": "Dia tidak akan tahu bahawa dia telah diredam.",
|
||||||
|
"mute_modal.title": "Redamkan pengguna?",
|
||||||
"navigation_bar.about": "Perihal",
|
"navigation_bar.about": "Perihal",
|
||||||
"navigation_bar.advanced_interface": "Buka dalam antara muka web lanjutan",
|
"navigation_bar.advanced_interface": "Buka dalam antara muka web lanjutan",
|
||||||
"navigation_bar.blocks": "Pengguna yang disekat",
|
"navigation_bar.blocks": "Pengguna tersekat",
|
||||||
"navigation_bar.bookmarks": "Tanda buku",
|
"navigation_bar.bookmarks": "Tanda buku",
|
||||||
"navigation_bar.community_timeline": "Garis masa tempatan",
|
"navigation_bar.community_timeline": "Garis masa tempatan",
|
||||||
"navigation_bar.compose": "Karang hantaran baharu",
|
"navigation_bar.compose": "Karang hantaran baharu",
|
||||||
"navigation_bar.direct": "Sebutan peribadi",
|
"navigation_bar.direct": "Sebutan peribadi",
|
||||||
"navigation_bar.discover": "Teroka",
|
"navigation_bar.discover": "Teroka",
|
||||||
"navigation_bar.domain_blocks": "Domain disekat",
|
"navigation_bar.domain_blocks": "Domain tersekat",
|
||||||
"navigation_bar.explore": "Teroka",
|
"navigation_bar.explore": "Teroka",
|
||||||
"navigation_bar.favourites": "Sukaan",
|
"navigation_bar.favourites": "Sukaan",
|
||||||
"navigation_bar.filters": "Perkataan yang dibisukan",
|
"navigation_bar.filters": "Perkataan teredam",
|
||||||
"navigation_bar.follow_requests": "Permintaan ikutan",
|
"navigation_bar.follow_requests": "Permintaan ikutan",
|
||||||
"navigation_bar.followed_tags": "Ikuti hashtag",
|
"navigation_bar.followed_tags": "Ikuti hashtag",
|
||||||
"navigation_bar.follows_and_followers": "Ikutan dan pengikut",
|
"navigation_bar.follows_and_followers": "Ikutan dan pengikut",
|
||||||
"navigation_bar.lists": "Senarai",
|
"navigation_bar.lists": "Senarai",
|
||||||
"navigation_bar.logout": "Log keluar",
|
"navigation_bar.logout": "Log keluar",
|
||||||
"navigation_bar.mutes": "Pengguna yang dibisukan",
|
"navigation_bar.mutes": "Pengguna teredam",
|
||||||
"navigation_bar.opened_in_classic_interface": "Kiriman, akaun dan halaman tertentu yang lain dibuka secara lalai di antara muka web klasik.",
|
"navigation_bar.opened_in_classic_interface": "Kiriman, akaun dan halaman tertentu yang lain dibuka secara lalai di antara muka web klasik.",
|
||||||
"navigation_bar.personal": "Peribadi",
|
"navigation_bar.personal": "Peribadi",
|
||||||
"navigation_bar.pins": "Hantaran disemat",
|
"navigation_bar.pins": "Hantaran disemat",
|
||||||
|
@ -445,6 +477,8 @@
|
||||||
"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.reblog.name_and_others_with_link": "{name} dan <a>{count, plural, other {# orang lain}}</a> telah galakkan hantaran anda",
|
||||||
|
"notification.relationships_severance_event.domain_block": "Pentadbir dari {from} telah menyekat {target} termasuk {followersCount} pengikut anda dan {followingCount, plural, other {# akaun}} ikutan anda.",
|
||||||
|
"notification.relationships_severance_event.user_domain_block": "Anda telah menyekat {target} termasuk {followersCount} pengikut anda dan {followingCount, plural, other {# akaun}} ikutan 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",
|
||||||
|
@ -524,7 +558,7 @@
|
||||||
"reply_indicator.cancel": "Batal",
|
"reply_indicator.cancel": "Batal",
|
||||||
"reply_indicator.poll": "Undian",
|
"reply_indicator.poll": "Undian",
|
||||||
"report.block": "Sekat",
|
"report.block": "Sekat",
|
||||||
"report.block_explanation": "Anda tidak akan melihat hantaran mereka. Mereka tidak dapat melihat hantaran anda atau mengikuti anda. Mereka akan sedar bahawa mereka disekat.",
|
"report.block_explanation": "Anda tidak akan melihat hantarannya. Dia tidak akan dapat melihat hantaran anda atau mengikuti anda. Dia akan sedar bahawa dia disekat.",
|
||||||
"report.categories.legal": "Sah",
|
"report.categories.legal": "Sah",
|
||||||
"report.categories.other": "Lain-lain",
|
"report.categories.other": "Lain-lain",
|
||||||
"report.categories.spam": "Spam",
|
"report.categories.spam": "Spam",
|
||||||
|
@ -537,7 +571,7 @@
|
||||||
"report.comment.title": "Adakah ada hal-hal lain yang perlu kita ketahui?",
|
"report.comment.title": "Adakah ada hal-hal lain yang perlu kita ketahui?",
|
||||||
"report.forward": "Panjangkan ke {target}",
|
"report.forward": "Panjangkan ke {target}",
|
||||||
"report.forward_hint": "Akaun ini daripada pelayan lain. Hantar salinan laporan yang ditanpanamakan ke sana juga?",
|
"report.forward_hint": "Akaun ini daripada pelayan lain. Hantar salinan laporan yang ditanpanamakan ke sana juga?",
|
||||||
"report.mute": "Bisukan",
|
"report.mute": "Redam",
|
||||||
"report.mute_explanation": "Anda tidak akan melihat siaran mereka. Mereka masih boleh mengikuti dan melihat siaran anda dan tidak akan mengetahui bahawa mereka telah dibisukan.",
|
"report.mute_explanation": "Anda tidak akan melihat siaran mereka. Mereka masih boleh mengikuti dan melihat siaran anda dan tidak akan mengetahui bahawa mereka telah dibisukan.",
|
||||||
"report.next": "Seterusnya",
|
"report.next": "Seterusnya",
|
||||||
"report.placeholder": "Ulasan tambahan",
|
"report.placeholder": "Ulasan tambahan",
|
||||||
|
@ -621,8 +655,8 @@
|
||||||
"status.media_hidden": "Media disembunyikan",
|
"status.media_hidden": "Media disembunyikan",
|
||||||
"status.mention": "Sebut @{name}",
|
"status.mention": "Sebut @{name}",
|
||||||
"status.more": "Lagi",
|
"status.more": "Lagi",
|
||||||
"status.mute": "Bisukan @{name}",
|
"status.mute": "Redamkan @{name}",
|
||||||
"status.mute_conversation": "Bisukan perbualan",
|
"status.mute_conversation": "Redamkan perbualan",
|
||||||
"status.open": "Kembangkan hantaran ini",
|
"status.open": "Kembangkan hantaran ini",
|
||||||
"status.pin": "Semat di profil",
|
"status.pin": "Semat di profil",
|
||||||
"status.pinned": "Hantaran disemat",
|
"status.pinned": "Hantaran disemat",
|
||||||
|
@ -648,7 +682,7 @@
|
||||||
"status.translate": "Menterjemah",
|
"status.translate": "Menterjemah",
|
||||||
"status.translated_from_with": "Diterjemah daripada {lang} dengan {provider}",
|
"status.translated_from_with": "Diterjemah daripada {lang} dengan {provider}",
|
||||||
"status.uncached_media_warning": "Pratonton tidak tersedia",
|
"status.uncached_media_warning": "Pratonton tidak tersedia",
|
||||||
"status.unmute_conversation": "Nyahbisukan perbualan",
|
"status.unmute_conversation": "Nyahredamkan perbualan",
|
||||||
"status.unpin": "Nyahsemat daripada profil",
|
"status.unpin": "Nyahsemat daripada profil",
|
||||||
"subscribed_languages.lead": "Hanya hantaran dalam bahasa-bahasa terpilih akan dipaparkan pada garis masa rumah dan senarai selepas perubahan. Pilih tiada untuk menerima hantaran dalam semua bahasa.",
|
"subscribed_languages.lead": "Hanya hantaran dalam bahasa-bahasa terpilih akan dipaparkan pada garis masa rumah dan senarai selepas perubahan. Pilih tiada untuk menerima hantaran dalam semua bahasa.",
|
||||||
"subscribed_languages.save": "Simpan perubahan",
|
"subscribed_languages.save": "Simpan perubahan",
|
||||||
|
@ -682,6 +716,8 @@
|
||||||
"video.expand": "Besarkan video",
|
"video.expand": "Besarkan video",
|
||||||
"video.fullscreen": "Skrin penuh",
|
"video.fullscreen": "Skrin penuh",
|
||||||
"video.hide": "Sembunyikan video",
|
"video.hide": "Sembunyikan video",
|
||||||
|
"video.mute": "Redam",
|
||||||
"video.pause": "Jeda",
|
"video.pause": "Jeda",
|
||||||
"video.play": "Main"
|
"video.play": "Main",
|
||||||
|
"video.unmute": "Nyahredam"
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "編輯個人資料",
|
"account.edit_profile": "編輯個人資料",
|
||||||
"account.enable_notifications": "佇 {name} PO文ê時通知我",
|
"account.enable_notifications": "佇 {name} PO文ê時通知我",
|
||||||
"account.endorse": "用個人資料推薦對方",
|
"account.endorse": "用個人資料推薦對方",
|
||||||
|
"account.featured": "精選ê",
|
||||||
|
"account.featured.hashtags": "Hashtag",
|
||||||
|
"account.featured.posts": "PO文",
|
||||||
"account.featured_tags.last_status_at": "頂kái tī {date} Po文",
|
"account.featured_tags.last_status_at": "頂kái tī {date} Po文",
|
||||||
"account.featured_tags.last_status_never": "無PO文",
|
"account.featured_tags.last_status_never": "無PO文",
|
||||||
"account.follow": "跟tuè",
|
"account.follow": "跟tuè",
|
||||||
|
@ -293,6 +296,7 @@
|
||||||
"emoji_button.search_results": "Tshiau-tshuē ê結果",
|
"emoji_button.search_results": "Tshiau-tshuē ê結果",
|
||||||
"emoji_button.symbols": "符號",
|
"emoji_button.symbols": "符號",
|
||||||
"emoji_button.travel": "旅行kap地點",
|
"emoji_button.travel": "旅行kap地點",
|
||||||
|
"empty_column.account_featured": "Tsit ê列單是空ê",
|
||||||
"empty_column.account_hides_collections": "Tsit位用者選擇無愛公開tsit ê資訊",
|
"empty_column.account_hides_collections": "Tsit位用者選擇無愛公開tsit ê資訊",
|
||||||
"empty_column.account_suspended": "口座已經受停止",
|
"empty_column.account_suspended": "口座已經受停止",
|
||||||
"empty_column.account_timeline": "Tsia無PO文!",
|
"empty_column.account_timeline": "Tsia無PO文!",
|
||||||
|
@ -377,6 +381,8 @@
|
||||||
"generic.saved": "儲存ah",
|
"generic.saved": "儲存ah",
|
||||||
"getting_started.heading": "開始用",
|
"getting_started.heading": "開始用",
|
||||||
"hashtag.admin_moderation": "Phah開 #{name} ê管理界面",
|
"hashtag.admin_moderation": "Phah開 #{name} ê管理界面",
|
||||||
|
"hashtag.browse": "瀏覽佇 #{hashtag} ê PO文",
|
||||||
|
"hashtag.browse_from_account": "瀏覽 @{name} 佇 #{hashtag} 所寫ê PO文",
|
||||||
"hashtag.column_header.tag_mode.all": "kap {additional}",
|
"hashtag.column_header.tag_mode.all": "kap {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "á是 {additional}",
|
"hashtag.column_header.tag_mode.any": "á是 {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "無需要 {additional}",
|
"hashtag.column_header.tag_mode.none": "無需要 {additional}",
|
||||||
|
@ -390,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
|
||||||
"hashtag.counter_by_uses_today": "Kin-á日有 {count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
|
"hashtag.counter_by_uses_today": "Kin-á日有 {count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
|
||||||
"hashtag.follow": "跟tuè hashtag",
|
"hashtag.follow": "跟tuè hashtag",
|
||||||
|
"hashtag.mute": "消音 #{hashtag}",
|
||||||
"hashtag.unfollow": "取消跟tuè hashtag",
|
"hashtag.unfollow": "取消跟tuè hashtag",
|
||||||
"hashtags.and_other": "……kap 其他 {count, plural, other {# ê}}",
|
"hashtags.and_other": "……kap 其他 {count, plural, other {# ê}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Tsit ê個人資料ê跟tuè者資訊可能有落勾ê。",
|
"hints.profiles.followers_may_be_missing": "Tsit ê個人資料ê跟tuè者資訊可能有落勾ê。",
|
||||||
|
@ -517,8 +524,70 @@
|
||||||
"mute_modal.hide_options": "Khàm掉選項",
|
"mute_modal.hide_options": "Khàm掉選項",
|
||||||
"mute_modal.indefinite": "直到我取消消音",
|
"mute_modal.indefinite": "直到我取消消音",
|
||||||
"mute_modal.show_options": "顯示選項",
|
"mute_modal.show_options": "顯示選項",
|
||||||
|
"mute_modal.they_can_mention_and_follow": "In iáu ē當提起á是跟tuè lí,毋過lí看buē著in。",
|
||||||
|
"mute_modal.they_wont_know": "In buē知影in受消音。",
|
||||||
|
"mute_modal.title": "Kā用者消音?",
|
||||||
|
"mute_modal.you_wont_see_mentions": "Lí buē看見提起in ê PO文。",
|
||||||
|
"mute_modal.you_wont_see_posts": "In iáu ē當看著lí ê PO文,毋過lí看bē tio̍h in ê。",
|
||||||
|
"navigation_bar.about": "概要",
|
||||||
|
"navigation_bar.administration": "管理",
|
||||||
|
"navigation_bar.advanced_interface": "用進階ê網頁界面開",
|
||||||
|
"navigation_bar.blocks": "封鎖ê用者",
|
||||||
|
"navigation_bar.bookmarks": "冊籤",
|
||||||
|
"navigation_bar.community_timeline": "本地ê時間線",
|
||||||
|
"navigation_bar.compose": "寫新ê PO文",
|
||||||
|
"navigation_bar.direct": "私人ê提起",
|
||||||
|
"navigation_bar.discover": "發現",
|
||||||
|
"navigation_bar.domain_blocks": "封鎖ê域名",
|
||||||
|
"navigation_bar.explore": "探查",
|
||||||
|
"navigation_bar.favourites": "Siōng kah意",
|
||||||
|
"navigation_bar.filters": "消音ê詞",
|
||||||
|
"navigation_bar.follow_requests": "跟tuè請求",
|
||||||
|
"navigation_bar.followed_tags": "跟tuè ê hashtag",
|
||||||
|
"navigation_bar.follows_and_followers": "Leh跟tuè ê kap跟tuè lí ê",
|
||||||
|
"navigation_bar.lists": "列單",
|
||||||
|
"navigation_bar.logout": "登出",
|
||||||
|
"navigation_bar.moderation": "審核",
|
||||||
|
"navigation_bar.mutes": "消音ê用者",
|
||||||
|
"navigation_bar.opened_in_classic_interface": "PO文、口座kap其他指定ê頁面,預設ē佇經典ê網頁界面內phah開。",
|
||||||
|
"navigation_bar.personal": "個人",
|
||||||
|
"navigation_bar.pins": "釘起來ê PO文",
|
||||||
|
"navigation_bar.preferences": "偏愛ê設定",
|
||||||
|
"navigation_bar.public_timeline": "聯邦ê時間線",
|
||||||
|
"navigation_bar.search": "Tshiau-tshuē",
|
||||||
|
"navigation_bar.security": "安全",
|
||||||
|
"not_signed_in_indicator.not_signed_in": "Lí著登入來接近使用tsit ê資源。",
|
||||||
|
"notification.admin.report": "{name} kā {target} 檢舉ah",
|
||||||
|
"notification.admin.report_account": "{name} kā {target} 所寫ê {count, plural, other {# 篇PO文}}檢舉ah,原因是:{category}",
|
||||||
|
"notification.admin.report_account_other": "{name} kā {target} 所寫ê {count, plural, other {# 篇PO文}}檢舉ah",
|
||||||
|
"notification.admin.report_statuses": "{name} kā {target} 檢舉ah,原因是:{category}",
|
||||||
|
"notification.admin.report_statuses_other": "{name} kā {target} 檢舉ah",
|
||||||
|
"notification.admin.sign_up": "口座 {name} 有開ah。",
|
||||||
|
"notification.admin.sign_up.name_and_others": "{name} kap {count, plural, other {其他 # ê lâng}} ê口座有開ah",
|
||||||
|
"notification.annual_report.message": "Lí ê {year} #Wrapstodon teh等lí!緊來看tsit年lí佇Mastodon頂ê上精彩ê內容,kap難忘ê時刻!",
|
||||||
|
"notification.annual_report.view": "Kā #Wrapstodon 看māi。",
|
||||||
|
"notification.favourite": "{name} kah意lí ê PO文",
|
||||||
|
"notification.favourite.name_and_others_with_link": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>kah意lí ê PO文",
|
||||||
"notification.favourite_pm": "{name} kah意lí ê私人提起",
|
"notification.favourite_pm": "{name} kah意lí ê私人提起",
|
||||||
"notification.favourite_pm.name_and_others_with_link": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>kah意lí ê私人提起",
|
"notification.favourite_pm.name_and_others_with_link": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>kah意lí ê私人提起",
|
||||||
|
"notification.follow": "{name}跟tuè lí",
|
||||||
|
"notification.follow.name_and_others": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>跟tuè lí",
|
||||||
|
"notification.follow_request": "{name} 請求跟tuè lí",
|
||||||
|
"notification.follow_request.name_and_others": "{name} kap{count, plural, other {另外 # ê lâng}}請求跟tuè lí",
|
||||||
|
"notification.label.mention": "提起",
|
||||||
|
"notification.label.private_mention": "私人ê提起",
|
||||||
|
"notification.label.private_reply": "私人ê回應",
|
||||||
|
"notification.label.reply": "回應",
|
||||||
|
"notification.mention": "提起",
|
||||||
|
"notification.mentioned_you": "{name}kā lí提起",
|
||||||
|
"notification.moderation-warning.learn_more": "看詳細",
|
||||||
|
"notification.moderation_warning": "Lí有收著審核ê警告",
|
||||||
|
"notification.moderation_warning.action_delete_statuses": "Lí ê一寡PO文hōo lâng thâi掉ah。",
|
||||||
|
"notification.moderation_warning.action_disable": "Lí ê口座hōo lâng停止使用ah。",
|
||||||
|
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Lí ê一寡PO文,hōo lâng標做敏感ê內容。",
|
||||||
|
"notification.moderation_warning.action_none": "Lí ê口座有收著審核ê警告。",
|
||||||
|
"notification_requests.edit_selection": "編輯",
|
||||||
|
"notification_requests.exit_selection": "做好ah",
|
||||||
"search_popout.language_code": "ISO語言代碼",
|
"search_popout.language_code": "ISO語言代碼",
|
||||||
"status.translated_from_with": "用 {provider} 翻譯 {lang}"
|
"status.translated_from_with": "用 {provider} 翻譯 {lang}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Opgeslagen",
|
"generic.saved": "Opgeslagen",
|
||||||
"getting_started.heading": "Aan de slag",
|
"getting_started.heading": "Aan de slag",
|
||||||
"hashtag.admin_moderation": "Moderatie-omgeving van #{name} openen",
|
"hashtag.admin_moderation": "Moderatie-omgeving van #{name} openen",
|
||||||
|
"hashtag.browse": "Berichten met #{hashtag} bekijken",
|
||||||
|
"hashtag.browse_from_account": "Berichten van @{name} met #{hashtag} bekijken",
|
||||||
"hashtag.column_header.tag_mode.all": "en {additional}",
|
"hashtag.column_header.tag_mode.all": "en {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "of {additional}",
|
"hashtag.column_header.tag_mode.any": "of {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "zonder {additional}",
|
"hashtag.column_header.tag_mode.none": "zonder {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} bericht} other {{counter} berichten}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} bericht} other {{counter} berichten}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} bericht} other {{counter} berichten}} vandaag",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} bericht} other {{counter} berichten}} vandaag",
|
||||||
"hashtag.follow": "Hashtag volgen",
|
"hashtag.follow": "Hashtag volgen",
|
||||||
|
"hashtag.mute": "#{hashtag} negeren",
|
||||||
"hashtag.unfollow": "Hashtag ontvolgen",
|
"hashtag.unfollow": "Hashtag ontvolgen",
|
||||||
"hashtags.and_other": "…en {count, plural, one {}other {# meer}}",
|
"hashtags.and_other": "…en {count, plural, one {}other {# meer}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Volgers voor dit profiel kunnen ontbreken.",
|
"hints.profiles.followers_may_be_missing": "Volgers voor dit profiel kunnen ontbreken.",
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
"account.enable_notifications": "Уведомлять о постах от @{name}",
|
"account.enable_notifications": "Уведомлять о постах от @{name}",
|
||||||
"account.endorse": "Рекомендовать в профиле",
|
"account.endorse": "Рекомендовать в профиле",
|
||||||
"account.featured": "Избранное",
|
"account.featured": "Избранное",
|
||||||
|
"account.featured.hashtags": "Хэштеги",
|
||||||
|
"account.featured.posts": "Посты",
|
||||||
"account.featured_tags.last_status_at": "Последний пост {date}",
|
"account.featured_tags.last_status_at": "Последний пост {date}",
|
||||||
"account.featured_tags.last_status_never": "Нет постов",
|
"account.featured_tags.last_status_never": "Нет постов",
|
||||||
"account.follow": "Подписаться",
|
"account.follow": "Подписаться",
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
"account.edit_profile": "Upraviť profil",
|
"account.edit_profile": "Upraviť profil",
|
||||||
"account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}",
|
"account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}",
|
||||||
"account.endorse": "Zobraziť na vlastnom profile",
|
"account.endorse": "Zobraziť na vlastnom profile",
|
||||||
|
"account.featured.posts": "Príspevky",
|
||||||
"account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",
|
"account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",
|
||||||
"account.featured_tags.last_status_never": "Žiadne príspevky",
|
"account.featured_tags.last_status_never": "Žiadne príspevky",
|
||||||
"account.follow": "Sledovať",
|
"account.follow": "Sledovať",
|
||||||
|
@ -263,6 +264,7 @@
|
||||||
"emoji_button.search_results": "Výsledky hľadania",
|
"emoji_button.search_results": "Výsledky hľadania",
|
||||||
"emoji_button.symbols": "Symboly",
|
"emoji_button.symbols": "Symboly",
|
||||||
"emoji_button.travel": "Cestovanie a miesta",
|
"emoji_button.travel": "Cestovanie a miesta",
|
||||||
|
"empty_column.account_featured": "Tento zoznam je prázdny",
|
||||||
"empty_column.account_hides_collections": "Tento účet sa rozhodol túto informáciu nesprístupniť",
|
"empty_column.account_hides_collections": "Tento účet sa rozhodol túto informáciu nesprístupniť",
|
||||||
"empty_column.account_suspended": "Účet bol pozastavený",
|
"empty_column.account_suspended": "Účet bol pozastavený",
|
||||||
"empty_column.account_timeline": "Nie sú tu žiadne príspevky.",
|
"empty_column.account_timeline": "Nie sú tu žiadne príspevky.",
|
||||||
|
@ -345,6 +347,7 @@
|
||||||
"generic.saved": "Uložené",
|
"generic.saved": "Uložené",
|
||||||
"getting_started.heading": "Začíname",
|
"getting_started.heading": "Začíname",
|
||||||
"hashtag.admin_moderation": "Otvor moderovacie rozhranie pre #{name}",
|
"hashtag.admin_moderation": "Otvor moderovacie rozhranie pre #{name}",
|
||||||
|
"hashtag.browse": "Prehľadávať príspevky pod #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "a {additional}",
|
"hashtag.column_header.tag_mode.all": "a {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "alebo {additional}",
|
"hashtag.column_header.tag_mode.any": "alebo {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "bez {additional}",
|
"hashtag.column_header.tag_mode.none": "bez {additional}",
|
||||||
|
@ -358,6 +361,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}} dnes",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}} dnes",
|
||||||
"hashtag.follow": "Sledovať hashtag",
|
"hashtag.follow": "Sledovať hashtag",
|
||||||
|
"hashtag.mute": "Utlmiť #{hashtag}",
|
||||||
"hashtag.unfollow": "Prestať sledovať hashtag",
|
"hashtag.unfollow": "Prestať sledovať hashtag",
|
||||||
"hashtags.and_other": "…a {count, plural, other {# ďalších}}",
|
"hashtags.and_other": "…a {count, plural, other {# ďalších}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Nasledovatelia tohto profilu môžu chýbať.",
|
"hints.profiles.followers_may_be_missing": "Nasledovatelia tohto profilu môžu chýbať.",
|
||||||
|
|
|
@ -376,6 +376,8 @@
|
||||||
"generic.saved": "U ruajt",
|
"generic.saved": "U ruajt",
|
||||||
"getting_started.heading": "Si t’ia fillohet",
|
"getting_started.heading": "Si t’ia fillohet",
|
||||||
"hashtag.admin_moderation": "Hap ndërfaqe moderimi për #{name}",
|
"hashtag.admin_moderation": "Hap ndërfaqe moderimi për #{name}",
|
||||||
|
"hashtag.browse": "Shfletoni postime me #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Shfletoni postime nga @{name} me #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "dhe {additional}",
|
"hashtag.column_header.tag_mode.all": "dhe {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "ose {additional}",
|
"hashtag.column_header.tag_mode.any": "ose {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "pa {additional}",
|
"hashtag.column_header.tag_mode.none": "pa {additional}",
|
||||||
|
@ -389,6 +391,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} postim} other {{counter} postime}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} postim} other {{counter} postime}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postim} other {{counter} postime}} sot",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postim} other {{counter} postime}} sot",
|
||||||
"hashtag.follow": "Ndiqe hashtag-un",
|
"hashtag.follow": "Ndiqe hashtag-un",
|
||||||
|
"hashtag.mute": "Heshtoje #{hashtag}",
|
||||||
"hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut",
|
"hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut",
|
||||||
"hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}",
|
"hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Mund të mungojnë ndjekës për këtë profil.",
|
"hints.profiles.followers_may_be_missing": "Mund të mungojnë ndjekës për këtë profil.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Kaydet",
|
"generic.saved": "Kaydet",
|
||||||
"getting_started.heading": "Başlarken",
|
"getting_started.heading": "Başlarken",
|
||||||
"hashtag.admin_moderation": "#{name} için denetim arayüzünü açın",
|
"hashtag.admin_moderation": "#{name} için denetim arayüzünü açın",
|
||||||
|
"hashtag.browse": "#{hashtag} gönderilerine gözat",
|
||||||
|
"hashtag.browse_from_account": "@{name} kişisinin #{hashtag} gönderilerine gözat",
|
||||||
"hashtag.column_header.tag_mode.all": "ve {additional}",
|
"hashtag.column_header.tag_mode.all": "ve {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "ya da {additional}",
|
"hashtag.column_header.tag_mode.any": "ya da {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "{additional} olmadan",
|
"hashtag.column_header.tag_mode.none": "{additional} olmadan",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}",
|
||||||
"hashtag.counter_by_uses_today": "bugün {count, plural, one {{counter} gönderi} other {{counter} gönderi}}",
|
"hashtag.counter_by_uses_today": "bugün {count, plural, one {{counter} gönderi} other {{counter} gönderi}}",
|
||||||
"hashtag.follow": "Etiketi takip et",
|
"hashtag.follow": "Etiketi takip et",
|
||||||
|
"hashtag.mute": "#{hashtag} gönderilerini sessize al",
|
||||||
"hashtag.unfollow": "Etiketi takibi bırak",
|
"hashtag.unfollow": "Etiketi takibi bırak",
|
||||||
"hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}",
|
"hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Bu profilin takipçileri eksik olabilir.",
|
"hints.profiles.followers_may_be_missing": "Bu profilin takipçileri eksik olabilir.",
|
||||||
|
|
|
@ -394,6 +394,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}} сьогодні",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}} сьогодні",
|
||||||
"hashtag.follow": "Стежити за хештегом",
|
"hashtag.follow": "Стежити за хештегом",
|
||||||
|
"hashtag.mute": "Ігнорувати #{hashtag}",
|
||||||
"hashtag.unfollow": "Не стежити за хештегом",
|
"hashtag.unfollow": "Не стежити за хештегом",
|
||||||
"hashtags.and_other": "…і {count, plural, other {ще #}}",
|
"hashtags.and_other": "…і {count, plural, other {ще #}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Підписники цього профілю можуть бути не показані.",
|
"hints.profiles.followers_may_be_missing": "Підписники цього профілю можуть бути не показані.",
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "Đã lưu",
|
"generic.saved": "Đã lưu",
|
||||||
"getting_started.heading": "Quản lý",
|
"getting_started.heading": "Quản lý",
|
||||||
"hashtag.admin_moderation": "Mở giao diện quản trị #{name}",
|
"hashtag.admin_moderation": "Mở giao diện quản trị #{name}",
|
||||||
|
"hashtag.browse": "Tìm tút #{hashtag}",
|
||||||
|
"hashtag.browse_from_account": "Tìm tút của @{name} có chứa #{hashtag}",
|
||||||
"hashtag.column_header.tag_mode.all": "và {additional}",
|
"hashtag.column_header.tag_mode.all": "và {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "hoặc {additional}",
|
"hashtag.column_header.tag_mode.any": "hoặc {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "mà không {additional}",
|
"hashtag.column_header.tag_mode.none": "mà không {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, other {{counter} tút}}",
|
"hashtag.counter_by_uses": "{count, plural, other {{counter} tút}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} tút}} hôm nay",
|
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} tút}} hôm nay",
|
||||||
"hashtag.follow": "Theo dõi hashtag",
|
"hashtag.follow": "Theo dõi hashtag",
|
||||||
|
"hashtag.mute": "Ẩn #{hashtag}",
|
||||||
"hashtag.unfollow": "Bỏ theo dõi hashtag",
|
"hashtag.unfollow": "Bỏ theo dõi hashtag",
|
||||||
"hashtags.and_other": "…và {count, plural, other {# nữa}}",
|
"hashtags.and_other": "…và {count, plural, other {# nữa}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Số người theo dõi có thể không đầy đủ.",
|
"hints.profiles.followers_may_be_missing": "Số người theo dõi có thể không đầy đủ.",
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
"account.edit_profile": "修改个人资料",
|
"account.edit_profile": "修改个人资料",
|
||||||
"account.enable_notifications": "当 @{name} 发布嘟文时通知我",
|
"account.enable_notifications": "当 @{name} 发布嘟文时通知我",
|
||||||
"account.endorse": "在个人资料中推荐此用户",
|
"account.endorse": "在个人资料中推荐此用户",
|
||||||
|
"account.featured": "精选",
|
||||||
|
"account.featured.hashtags": "话题",
|
||||||
|
"account.featured.posts": "嘟文",
|
||||||
"account.featured_tags.last_status_at": "上次发言于 {date}",
|
"account.featured_tags.last_status_at": "上次发言于 {date}",
|
||||||
"account.featured_tags.last_status_never": "暂无嘟文",
|
"account.featured_tags.last_status_never": "暂无嘟文",
|
||||||
"account.follow": "关注",
|
"account.follow": "关注",
|
||||||
|
@ -64,6 +67,7 @@
|
||||||
"account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}",
|
"account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}",
|
||||||
"account.unblock": "取消屏蔽 @{name}",
|
"account.unblock": "取消屏蔽 @{name}",
|
||||||
"account.unblock_domain": "取消屏蔽 {domain} 域名",
|
"account.unblock_domain": "取消屏蔽 {domain} 域名",
|
||||||
|
"account.unblock_domain_short": "取消屏蔽",
|
||||||
"account.unblock_short": "取消屏蔽",
|
"account.unblock_short": "取消屏蔽",
|
||||||
"account.unendorse": "不在个人资料中推荐此用户",
|
"account.unendorse": "不在个人资料中推荐此用户",
|
||||||
"account.unfollow": "取消关注",
|
"account.unfollow": "取消关注",
|
||||||
|
@ -292,6 +296,7 @@
|
||||||
"emoji_button.search_results": "搜索结果",
|
"emoji_button.search_results": "搜索结果",
|
||||||
"emoji_button.symbols": "符号",
|
"emoji_button.symbols": "符号",
|
||||||
"emoji_button.travel": "旅行与地点",
|
"emoji_button.travel": "旅行与地点",
|
||||||
|
"empty_column.account_featured": "这个列表为空",
|
||||||
"empty_column.account_hides_collections": "该用户选择不公开此信息",
|
"empty_column.account_hides_collections": "该用户选择不公开此信息",
|
||||||
"empty_column.account_suspended": "账号已被停用",
|
"empty_column.account_suspended": "账号已被停用",
|
||||||
"empty_column.account_timeline": "这里没有嘟文!",
|
"empty_column.account_timeline": "这里没有嘟文!",
|
||||||
|
@ -389,6 +394,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, other {{counter} 条嘟文}}",
|
"hashtag.counter_by_uses": "{count, plural, other {{counter} 条嘟文}}",
|
||||||
"hashtag.counter_by_uses_today": "今日 {count, plural, other {{counter} 条嘟文}}",
|
"hashtag.counter_by_uses_today": "今日 {count, plural, other {{counter} 条嘟文}}",
|
||||||
"hashtag.follow": "关注话题",
|
"hashtag.follow": "关注话题",
|
||||||
|
"hashtag.mute": "停止提醒 #{hashtag}",
|
||||||
"hashtag.unfollow": "取消关注话题",
|
"hashtag.unfollow": "取消关注话题",
|
||||||
"hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}",
|
"hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}",
|
||||||
"hints.profiles.followers_may_be_missing": "该账号的关注者列表可能没有完全显示。",
|
"hints.profiles.followers_may_be_missing": "该账号的关注者列表可能没有完全显示。",
|
||||||
|
@ -904,6 +910,12 @@
|
||||||
"video.expand": "展开视频",
|
"video.expand": "展开视频",
|
||||||
"video.fullscreen": "全屏",
|
"video.fullscreen": "全屏",
|
||||||
"video.hide": "隐藏视频",
|
"video.hide": "隐藏视频",
|
||||||
|
"video.mute": "停止提醒",
|
||||||
"video.pause": "暂停",
|
"video.pause": "暂停",
|
||||||
"video.play": "播放"
|
"video.play": "播放",
|
||||||
|
"video.skip_backward": "后退",
|
||||||
|
"video.skip_forward": "前进",
|
||||||
|
"video.unmute": "恢复提醒",
|
||||||
|
"video.volume_down": "音量减小",
|
||||||
|
"video.volume_up": "提高音量"
|
||||||
}
|
}
|
||||||
|
|
|
@ -381,6 +381,8 @@
|
||||||
"generic.saved": "已儲存",
|
"generic.saved": "已儲存",
|
||||||
"getting_started.heading": "開始使用",
|
"getting_started.heading": "開始使用",
|
||||||
"hashtag.admin_moderation": "開啟 #{name} 的管理介面",
|
"hashtag.admin_moderation": "開啟 #{name} 的管理介面",
|
||||||
|
"hashtag.browse": "瀏覽於 #{hashtag} 之嘟文",
|
||||||
|
"hashtag.browse_from_account": "瀏覽來自 @{name} 於 #{hashtag} 之嘟文",
|
||||||
"hashtag.column_header.tag_mode.all": "以及 {additional}",
|
"hashtag.column_header.tag_mode.all": "以及 {additional}",
|
||||||
"hashtag.column_header.tag_mode.any": "或是 {additional}",
|
"hashtag.column_header.tag_mode.any": "或是 {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "而無需 {additional}",
|
"hashtag.column_header.tag_mode.none": "而無需 {additional}",
|
||||||
|
@ -394,6 +396,7 @@
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} 則} other {{counter} 則}}嘟文",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} 則} other {{counter} 則}}嘟文",
|
||||||
"hashtag.counter_by_uses_today": "本日有 {count, plural, one {{counter} 則} other {{counter} 則}}嘟文",
|
"hashtag.counter_by_uses_today": "本日有 {count, plural, one {{counter} 則} other {{counter} 則}}嘟文",
|
||||||
"hashtag.follow": "跟隨主題標籤",
|
"hashtag.follow": "跟隨主題標籤",
|
||||||
|
"hashtag.mute": "靜音 #{hashtag}",
|
||||||
"hashtag.unfollow": "取消跟隨主題標籤",
|
"hashtag.unfollow": "取消跟隨主題標籤",
|
||||||
"hashtags.and_other": "…及其他 {count, plural, other {# 個}}",
|
"hashtags.and_other": "…及其他 {count, plural, other {# 個}}",
|
||||||
"hints.profiles.followers_may_be_missing": "此個人檔案之跟隨者或有缺失。",
|
"hints.profiles.followers_may_be_missing": "此個人檔案之跟隨者或有缺失。",
|
||||||
|
|
|
@ -17,7 +17,12 @@ body {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: $primary-text-color;
|
color: $primary-text-color;
|
||||||
text-rendering: optimizelegibility;
|
text-rendering: optimizelegibility;
|
||||||
|
|
||||||
|
// Disable kerning for Japanese text to preserve monospaced alignment for readability
|
||||||
|
&:not(:lang(ja)) {
|
||||||
font-feature-settings: 'kern';
|
font-feature-settings: 'kern';
|
||||||
|
}
|
||||||
|
|
||||||
text-size-adjust: none;
|
text-size-adjust: none;
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0%);
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0%);
|
||||||
-webkit-tap-highlight-color: transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
|
|
@ -33,7 +33,7 @@ class CustomFilter < ApplicationRecord
|
||||||
include Expireable
|
include Expireable
|
||||||
include Redisable
|
include Redisable
|
||||||
|
|
||||||
enum :action, { warn: 0, hide: 1, blur: 2 }, suffix: :action
|
enum :action, { warn: 0, hide: 1, blur: 2 }, suffix: :action, validate: true
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
|
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
|
||||||
|
|
|
@ -18,7 +18,7 @@ class List < ApplicationRecord
|
||||||
|
|
||||||
PER_ACCOUNT_LIMIT = 50
|
PER_ACCOUNT_LIMIT = 50
|
||||||
|
|
||||||
enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show
|
enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show, validate: true
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
|
|
||||||
|
|
|
@ -325,6 +325,7 @@ cs:
|
||||||
create: Vytvořit oznámení
|
create: Vytvořit oznámení
|
||||||
title: Nové oznámení
|
title: Nové oznámení
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Vzhledem k tomu, že se od nich uživatelé nemohou odhlásit, měla by být e-mailová upozornění omezena na důležitá oznámení, jako je narušení osobních údajů nebo oznámení o uzavření serveru.
|
||||||
explanation_html: 'E-mail bude odeslán <strong>%{display_count} uživatelům</strong>. Následující text bude zahrnut do onoho e-mailu:'
|
explanation_html: 'E-mail bude odeslán <strong>%{display_count} uživatelům</strong>. Následující text bude zahrnut do onoho e-mailu:'
|
||||||
title: Náhled oznámení
|
title: Náhled oznámení
|
||||||
publish: Zveřejnit
|
publish: Zveřejnit
|
||||||
|
|
|
@ -319,6 +319,7 @@ da:
|
||||||
create: Opret bekendtgørelse
|
create: Opret bekendtgørelse
|
||||||
title: Ny bekendtgørelse
|
title: Ny bekendtgørelse
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Da brugere ikke kan fravælge e-mailnotifikationer, bør disse begrænses til vigtige emner som f.eks. personlige databrud eller serverlukninger.
|
||||||
explanation_html: 'E-mailen sendes til <strong>%{display_count} brugere</strong>. Flg. tekst medtages i e-mailen:'
|
explanation_html: 'E-mailen sendes til <strong>%{display_count} brugere</strong>. Flg. tekst medtages i e-mailen:'
|
||||||
title: Forhåndsvis annonceringsnotifikation
|
title: Forhåndsvis annonceringsnotifikation
|
||||||
publish: Publicér
|
publish: Publicér
|
||||||
|
|
|
@ -319,6 +319,7 @@ de:
|
||||||
create: Ankündigung erstellen
|
create: Ankündigung erstellen
|
||||||
title: Neue Ankündigung
|
title: Neue Ankündigung
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Da sich Profile nicht davon abmelden können, sollten Benachrichtigungen per E-Mail auf wichtige Ankündigungen wie z. B. zu Datenpannen oder Serverabschaltung beschränkt sein.
|
||||||
explanation_html: 'Die E-Mail wird an <strong>%{display_count} Nutzer*innen</strong> gesendet. Folgendes wird in der E-Mail enthalten sein:'
|
explanation_html: 'Die E-Mail wird an <strong>%{display_count} Nutzer*innen</strong> gesendet. Folgendes wird in der E-Mail enthalten sein:'
|
||||||
title: Vorschau der Ankündigung
|
title: Vorschau der Ankündigung
|
||||||
publish: Veröffentlichen
|
publish: Veröffentlichen
|
||||||
|
@ -497,6 +498,7 @@ de:
|
||||||
registration_requested: Registrierung angefordert
|
registration_requested: Registrierung angefordert
|
||||||
registrations:
|
registrations:
|
||||||
confirm: Bestätigen
|
confirm: Bestätigen
|
||||||
|
description: Sie haben eine Registrierung von einer FASP erhalten. Lehnen Sie ab, wenn Sie dies nicht initiiert haben. Wenn Sie dies initiiert haben, vergleichen Sie Namen und Fingerabdruck vor der Bestätigung der Registrierung.
|
||||||
reject: Ablehnen
|
reject: Ablehnen
|
||||||
title: FASP-Registrierung bestätigen
|
title: FASP-Registrierung bestätigen
|
||||||
save: Speichern
|
save: Speichern
|
||||||
|
|
|
@ -128,11 +128,11 @@ ms:
|
||||||
crypto: Penyulitan hujung ke hujung
|
crypto: Penyulitan hujung ke hujung
|
||||||
favourites: Sukaan
|
favourites: Sukaan
|
||||||
filters: Penapis
|
filters: Penapis
|
||||||
follow: Ikut, Senyap dan Blok
|
follow: Ikutan, Redaman dan Sekatan
|
||||||
follows: Ikutan
|
follows: Ikutan
|
||||||
lists: Senarai
|
lists: Senarai
|
||||||
media: Lampiran media
|
media: Lampiran media
|
||||||
mutes: Senyapkan
|
mutes: Redaman
|
||||||
notifications: Pemberitahuan
|
notifications: Pemberitahuan
|
||||||
push: Pemberitahuan segera
|
push: Pemberitahuan segera
|
||||||
reports: Laporan
|
reports: Laporan
|
||||||
|
@ -173,7 +173,7 @@ ms:
|
||||||
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
|
||||||
read:mutes: lihat senarai yang anda senyapkan
|
read:mutes: lihat redamanku
|
||||||
read:notifications: lihat notifikasi anda
|
read:notifications: lihat notifikasi anda
|
||||||
read:reports: lihat laporan anda
|
read:reports: lihat laporan anda
|
||||||
read:search: cari bagi pihak anda
|
read:search: cari bagi pihak anda
|
||||||
|
@ -182,13 +182,13 @@ ms:
|
||||||
write:accounts: ubaisuai profail anda
|
write:accounts: ubaisuai profail anda
|
||||||
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: redamkan dan padamkan perbualan
|
||||||
write:favourites: hantaran disukai
|
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
|
||||||
write:media: memuat naik fail media
|
write:media: memuat naik fail media
|
||||||
write:mutes: membisukan orang dan perbualan
|
write:mutes: redamkan orang dan perbualan
|
||||||
write:notifications: kosongkan pemberitahuan anda
|
write:notifications: kosongkan pemberitahuan anda
|
||||||
write:reports: melaporkan orang lain
|
write:reports: melaporkan orang lain
|
||||||
write:statuses: terbitkan hantaran
|
write:statuses: terbitkan hantaran
|
||||||
|
|
|
@ -319,6 +319,7 @@ es-AR:
|
||||||
create: Crear anuncio
|
create: Crear anuncio
|
||||||
title: Nuevo anuncio
|
title: Nuevo anuncio
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Como los usuarios no pueden excluirse de ellas, las notificaciones por correo electrónico deberían limitarse a anuncios importantes como la violación de datos personales o las notificaciones de cierre del servidor.
|
||||||
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
||||||
title: Previsualizar la notificación del anuncio
|
title: Previsualizar la notificación del anuncio
|
||||||
publish: Publicar
|
publish: Publicar
|
||||||
|
|
|
@ -319,6 +319,7 @@ es-MX:
|
||||||
create: Crear anuncio
|
create: Crear anuncio
|
||||||
title: Nuevo anuncio
|
title: Nuevo anuncio
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Como los usuarios no pueden optar por no recibirlas, las notificaciones por correo electrónico deben limitarse a anuncios importantes, como la violación de datos personales o las notificaciones de cierre de servidores.
|
||||||
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
||||||
title: Vista previa de la notificación del anuncio
|
title: Vista previa de la notificación del anuncio
|
||||||
publish: Publicar
|
publish: Publicar
|
||||||
|
|
|
@ -3,7 +3,7 @@ es:
|
||||||
about:
|
about:
|
||||||
about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!'
|
about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!'
|
||||||
contact_missing: No establecido
|
contact_missing: No establecido
|
||||||
contact_unavailable: No disponible
|
contact_unavailable: N/D
|
||||||
hosted_on: Mastodon alojado en %{domain}
|
hosted_on: Mastodon alojado en %{domain}
|
||||||
title: Acerca de
|
title: Acerca de
|
||||||
accounts:
|
accounts:
|
||||||
|
@ -319,6 +319,7 @@ es:
|
||||||
create: Crear anuncio
|
create: Crear anuncio
|
||||||
title: Nuevo anuncio
|
title: Nuevo anuncio
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Como los usuarios no pueden optar por no recibirlas, las notificaciones por correo electrónico deben limitarse a anuncios importantes, como la violación de datos personales o las notificaciones de cierre de servidores.
|
||||||
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
explanation_html: 'El correo electrónico se enviará a <strong>%{display_count} usuarios</strong>. En el correo electrónico se incluirá el siguiente texto:'
|
||||||
title: Vista previa de la notificación del anuncio
|
title: Vista previa de la notificación del anuncio
|
||||||
publish: Publicar
|
publish: Publicar
|
||||||
|
|
|
@ -319,6 +319,7 @@ fi:
|
||||||
create: Luo tiedote
|
create: Luo tiedote
|
||||||
title: Uusi tiedote
|
title: Uusi tiedote
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Koska käyttäjät eivät voi kieltäytyä niistä, sähköposti-ilmoitukset tulee rajata tärkeisiin tiedotteisiin, kuten ilmoituksiin henkilötietojen tietoturvaloukkauksista tai palvelimen sulkeutumisesta.
|
||||||
explanation_html: "<strong>%{display_count} käyttäjälle</strong> lähetetään sähköpostia. Sähköpostiviestiin sisällytetään seuraava teksti:"
|
explanation_html: "<strong>%{display_count} käyttäjälle</strong> lähetetään sähköpostia. Sähköpostiviestiin sisällytetään seuraava teksti:"
|
||||||
title: Esikatsele tiedoteilmoitus
|
title: Esikatsele tiedoteilmoitus
|
||||||
publish: Julkaise
|
publish: Julkaise
|
||||||
|
|
|
@ -319,6 +319,7 @@ fo:
|
||||||
create: Stovna kunngerð
|
create: Stovna kunngerð
|
||||||
title: Nýggj kunngerð
|
title: Nýggj kunngerð
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Av tí at brúkarar ikki kunnu velja tær frá, eiga teldupostfráboðanir at vera avmarkaðar til týdningarmiklar kunngerðir, sosum trygdarbrot og boð um at ambætarin verður tikin niður.
|
||||||
explanation_html: 'Teldubrævið verður sent til <strong>%{display_count} brúkarar</strong>. Fylgjandi tekstur kemur við í teldubrævið:'
|
explanation_html: 'Teldubrævið verður sent til <strong>%{display_count} brúkarar</strong>. Fylgjandi tekstur kemur við í teldubrævið:'
|
||||||
title: Undanvís fráboðan um kunngerð
|
title: Undanvís fráboðan um kunngerð
|
||||||
publish: Legg út
|
publish: Legg út
|
||||||
|
|
|
@ -482,6 +482,15 @@ fr-CA:
|
||||||
new:
|
new:
|
||||||
title: Importer des blocages de domaine
|
title: Importer des blocages de domaine
|
||||||
no_file: Aucun fichier sélectionné
|
no_file: Aucun fichier sélectionné
|
||||||
|
fasp:
|
||||||
|
providers:
|
||||||
|
registrations:
|
||||||
|
confirm: Confirmer
|
||||||
|
reject: Rejeter
|
||||||
|
save: Enregistrer
|
||||||
|
select_capabilities: Sélectionnez les Capacités
|
||||||
|
sign_in: Se connecter
|
||||||
|
status: État
|
||||||
follow_recommendations:
|
follow_recommendations:
|
||||||
description_html: "<strong>Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant</strong>. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
|
description_html: "<strong>Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant</strong>. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
|
||||||
language: Pour la langue
|
language: Pour la langue
|
||||||
|
|
|
@ -482,6 +482,15 @@ fr:
|
||||||
new:
|
new:
|
||||||
title: Importer des blocages de domaine
|
title: Importer des blocages de domaine
|
||||||
no_file: Aucun fichier sélectionné
|
no_file: Aucun fichier sélectionné
|
||||||
|
fasp:
|
||||||
|
providers:
|
||||||
|
registrations:
|
||||||
|
confirm: Confirmer
|
||||||
|
reject: Rejeter
|
||||||
|
save: Enregistrer
|
||||||
|
select_capabilities: Sélectionnez les Capacités
|
||||||
|
sign_in: Se connecter
|
||||||
|
status: État
|
||||||
follow_recommendations:
|
follow_recommendations:
|
||||||
description_html: "<strong>Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant</strong>. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
|
description_html: "<strong>Les recommandations d'abonnement aident les nouvelles personnes à trouver rapidement du contenu intéressant</strong>. Si un·e utilisateur·rice n'a pas assez interagi avec les autres pour avoir des recommandations personnalisées, ces comptes sont alors recommandés. La sélection est mise à jour quotidiennement depuis un mélange de comptes ayant le plus d'interactions récentes et le plus grand nombre d'abonné·e·s locaux pour une langue donnée."
|
||||||
language: Pour la langue
|
language: Pour la langue
|
||||||
|
|
|
@ -319,6 +319,7 @@ gl:
|
||||||
create: Crear anuncio
|
create: Crear anuncio
|
||||||
title: Novo anuncio
|
title: Novo anuncio
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: As usuarias non poden omitilas, as notificiacións por correo deberían limitarse a anuncios importantes como fugas de datos personais ou notificación do cese do servizo.
|
||||||
explanation_html: 'Vaise enviar o correo a <strong>%{display_count} usuarias</strong>. Incluirase o seguinte texto no correo:'
|
explanation_html: 'Vaise enviar o correo a <strong>%{display_count} usuarias</strong>. Incluirase o seguinte texto no correo:'
|
||||||
title: Previsualización da notificación do anuncio
|
title: Previsualización da notificación do anuncio
|
||||||
publish: Publicar
|
publish: Publicar
|
||||||
|
|
|
@ -325,6 +325,7 @@ he:
|
||||||
create: יצירת הכרזה
|
create: יצירת הכרזה
|
||||||
title: הכרזה חדשה
|
title: הכרזה חדשה
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: כיוון שהמשתמשים לא יכולים לבטל אותם, הודעות דוא"ל צריכות להיות מוגבלות בשימוש להודעות חשובות כגון הודעות על גניבת מידע אישי או הודעות על סגירת השרת.
|
||||||
explanation_html: 'הדואל ישלח אל <strong>%{display_count} משתמשיםות</strong>. להלן המלל שישלח בדואל:'
|
explanation_html: 'הדואל ישלח אל <strong>%{display_count} משתמשיםות</strong>. להלן המלל שישלח בדואל:'
|
||||||
title: צפיה מקדימה בהודעה
|
title: צפיה מקדימה בהודעה
|
||||||
publish: פרסום
|
publish: פרסום
|
||||||
|
|
|
@ -319,6 +319,7 @@ hu:
|
||||||
create: Közlemény létrehozása
|
create: Közlemény létrehozása
|
||||||
title: Új közlemény
|
title: Új közlemény
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Mivel a felhasználók nem iratkozhatnak le róluk, az e-mailes értesítéseket érdemes a fontos bejelentésekre korlátozni, mint a személyes adatokat érintő adatvédelmi incidensek vagy a kiszolgáló bezárására vonatkozó értesítések.
|
||||||
explanation_html: 'Az e-mail <strong>%{display_count} felhasználónak</strong> lesz elküldve. A következő szöveg fog szerepelni a levélben:'
|
explanation_html: 'Az e-mail <strong>%{display_count} felhasználónak</strong> lesz elküldve. A következő szöveg fog szerepelni a levélben:'
|
||||||
title: Közleményértesítés előnézete
|
title: Közleményértesítés előnézete
|
||||||
publish: Közzététel
|
publish: Közzététel
|
||||||
|
|
|
@ -319,6 +319,7 @@ is:
|
||||||
create: Búa til auglýsingu
|
create: Búa til auglýsingu
|
||||||
title: Ný auglýsing
|
title: Ný auglýsing
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Þar sem notendur geta ekki afþakkað þær ætti aðeins að nota tilkynningar í tölvupósti fyrir mikilvægar upplýsingar á borð við persónuleg gagnabrot eða lokanir á netþjónum.
|
||||||
explanation_html: 'Tölvupósturinn verður sendur til <strong>%{display_count} notenda</strong>. Eftirfarandi texti verður í meginmáli póstsins:'
|
explanation_html: 'Tölvupósturinn verður sendur til <strong>%{display_count} notenda</strong>. Eftirfarandi texti verður í meginmáli póstsins:'
|
||||||
title: Forskoða tilkynninguna
|
title: Forskoða tilkynninguna
|
||||||
publish: Birta
|
publish: Birta
|
||||||
|
|
|
@ -316,6 +316,7 @@ ko:
|
||||||
create: 공지사항 생성
|
create: 공지사항 생성
|
||||||
title: 새 공지사항
|
title: 새 공지사항
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: 사용자들은 수신설정을 끌 수 없기 때문에 이메일 알림은 개인정보 유출이나 서버 종료와 같은 중요한 공지사항에만 사용해야 합니다.
|
||||||
explanation_html: "<strong>%{display_count} 명의 사용자</strong>에게 이메일이 발송됩니다. 다음 내용이 이메일에 포함됩니다:"
|
explanation_html: "<strong>%{display_count} 명의 사용자</strong>에게 이메일이 발송됩니다. 다음 내용이 이메일에 포함됩니다:"
|
||||||
title: 공지사항 알림 미리보기
|
title: 공지사항 알림 미리보기
|
||||||
publish: 게시
|
publish: 게시
|
||||||
|
|
|
@ -28,6 +28,7 @@ ms:
|
||||||
created_msg: Catatan penyederhanaan telah berjaya dicipta!
|
created_msg: Catatan penyederhanaan telah berjaya dicipta!
|
||||||
destroyed_msg: Catatan penyederhanaan telah berjaya dipadam!
|
destroyed_msg: Catatan penyederhanaan telah berjaya dipadam!
|
||||||
accounts:
|
accounts:
|
||||||
|
add_email_domain_block: Sekat domain e-mel
|
||||||
approve: Luluskan
|
approve: Luluskan
|
||||||
approved_msg: Berjaya meluluskan permohonan pendaftaran %{username}
|
approved_msg: Berjaya meluluskan permohonan pendaftaran %{username}
|
||||||
are_you_sure: Adakah anda pasti?
|
are_you_sure: Adakah anda pasti?
|
||||||
|
@ -146,7 +147,7 @@ ms:
|
||||||
suspension_irreversible: Data akaun ini telah dipadam secara kekal. Anda boleh nyahgantungkannya untuk membuatkan akaun ini boleh digunakan semula tetapi data lama tidak akan diperolehi.
|
suspension_irreversible: Data akaun ini telah dipadam secara kekal. Anda boleh nyahgantungkannya untuk membuatkan akaun ini boleh digunakan semula tetapi data lama tidak akan diperolehi.
|
||||||
suspension_reversible_hint_html: Akaun ini telah digantung, dan datanya akan dibuang pada %{date}. Sebelum tarikh itu, akaun ini boleh diperoleh semula tanpa kesan buruk. Jika anda mahu memadamkan kesemua data akaun ini serta-merta, anda boleh melakukannya di bawah.
|
suspension_reversible_hint_html: Akaun ini telah digantung, dan datanya akan dibuang pada %{date}. Sebelum tarikh itu, akaun ini boleh diperoleh semula tanpa kesan buruk. Jika anda mahu memadamkan kesemua data akaun ini serta-merta, anda boleh melakukannya di bawah.
|
||||||
title: Akaun
|
title: Akaun
|
||||||
unblock_email: Menyahsekat alamat e-mel
|
unblock_email: Nyahsekat alamat e-mel
|
||||||
unblocked_email_msg: Alamat e-mel %{username} berjaya dinyahsekat
|
unblocked_email_msg: Alamat e-mel %{username} berjaya dinyahsekat
|
||||||
unconfirmed_email: E-mel belum disahkan
|
unconfirmed_email: E-mel belum disahkan
|
||||||
undo_sensitized: Nyahtanda sensitif
|
undo_sensitized: Nyahtanda sensitif
|
||||||
|
@ -169,17 +170,21 @@ ms:
|
||||||
confirm_user: Sahkan Pengguna
|
confirm_user: Sahkan Pengguna
|
||||||
create_account_warning: Cipta Amaran
|
create_account_warning: Cipta Amaran
|
||||||
create_announcement: Cipta Pengumuman
|
create_announcement: Cipta Pengumuman
|
||||||
|
create_canonical_email_block: Cipta Penyekatan E-mel
|
||||||
create_custom_emoji: Cipta Emoji Tersendiri
|
create_custom_emoji: Cipta Emoji Tersendiri
|
||||||
create_domain_allow: Cipta Pelepasan Domain
|
create_domain_allow: Cipta Pelepasan Domain
|
||||||
create_domain_block: Cipta Penyekatan Domain
|
create_domain_block: Cipta Penyekatan Domain
|
||||||
|
create_email_domain_block: Cipta Penyekatan Domain E-mel
|
||||||
create_ip_block: Cipta peraturan alamat IP
|
create_ip_block: Cipta peraturan alamat IP
|
||||||
create_unavailable_domain: Cipta Domain Tidak Tersedia
|
create_unavailable_domain: Cipta Domain Tidak Tersedia
|
||||||
create_user_role: Cipta Peranan
|
create_user_role: Cipta Peranan
|
||||||
demote_user: Turunkan Taraf Pengguna
|
demote_user: Turunkan Taraf Pengguna
|
||||||
destroy_announcement: Padam Pengumuman
|
destroy_announcement: Padam Pengumuman
|
||||||
|
destroy_canonical_email_block: Padam Penyekatan E-mel
|
||||||
destroy_custom_emoji: Padam Emoji Tersendiri
|
destroy_custom_emoji: Padam Emoji Tersendiri
|
||||||
destroy_domain_allow: Padam Pelepasan Domain
|
destroy_domain_allow: Padam Pelepasan Domain
|
||||||
destroy_domain_block: Padam Penyekatan Domain
|
destroy_domain_block: Padam Penyekatan Domain
|
||||||
|
destroy_email_domain_block: Padam Penyekatan Domain E-mel
|
||||||
destroy_instance: Padamkan Domain
|
destroy_instance: Padamkan Domain
|
||||||
destroy_ip_block: Padam peraturan alamat IP
|
destroy_ip_block: Padam peraturan alamat IP
|
||||||
destroy_status: Padam Hantaran
|
destroy_status: Padam Hantaran
|
||||||
|
@ -203,7 +208,7 @@ ms:
|
||||||
silence_account: Diamkan Akaun
|
silence_account: Diamkan Akaun
|
||||||
suspend_account: Gantungkan Akaun
|
suspend_account: Gantungkan Akaun
|
||||||
unassigned_report: Menyahtugaskan Laporan
|
unassigned_report: Menyahtugaskan Laporan
|
||||||
unblock_email_account: Menyahsekat alamat e-mel
|
unblock_email_account: Nyahsekat alamat e-mel
|
||||||
unsensitive_account: Nyahtanda media di akaun anda sebagai sensitif
|
unsensitive_account: Nyahtanda media di akaun anda sebagai sensitif
|
||||||
unsilence_account: Nyahdiamkan Akaun
|
unsilence_account: Nyahdiamkan Akaun
|
||||||
unsuspend_account: Nyahgantungkan Akaun
|
unsuspend_account: Nyahgantungkan Akaun
|
||||||
|
@ -1144,7 +1149,7 @@ ms:
|
||||||
csv: CSV
|
csv: CSV
|
||||||
domain_blocks: Domain disekat
|
domain_blocks: Domain disekat
|
||||||
lists: Senarai
|
lists: Senarai
|
||||||
mutes: Awak bisu
|
mutes: Redaman anda
|
||||||
storage: Storan Media
|
storage: Storan Media
|
||||||
featured_tags:
|
featured_tags:
|
||||||
add_new: Tambah baharu
|
add_new: Tambah baharu
|
||||||
|
@ -1235,10 +1240,11 @@ ms:
|
||||||
domain_blocking: Mengimport domain yang disekat
|
domain_blocking: Mengimport domain yang disekat
|
||||||
following: Mengimport akaun diikuti
|
following: Mengimport akaun diikuti
|
||||||
lists: Mengimport senarai
|
lists: Mengimport senarai
|
||||||
muting: Mengimport akaun diredam
|
muting: Mengimport akaun teredam
|
||||||
type: Jenis import
|
type: Jenis import
|
||||||
type_groups:
|
type_groups:
|
||||||
constructive: Ikutan & Penanda Halaman
|
constructive: Ikutan & Penanda Halaman
|
||||||
|
destructive: Sekatan dan redaman
|
||||||
types:
|
types:
|
||||||
blocking: Senarai menyekat
|
blocking: Senarai menyekat
|
||||||
bookmarks: Penanda buku
|
bookmarks: Penanda buku
|
||||||
|
|
|
@ -319,6 +319,7 @@ nl:
|
||||||
create: Mededeling aanmaken
|
create: Mededeling aanmaken
|
||||||
title: Nieuwe mededeling
|
title: Nieuwe mededeling
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Omdat gebruikers zich niet voor deze e-mails kunnen afmelden, moeten e-mailmeldingen worden beperkt tot belangrijke aankondigingen, zoals het lekken van gebruikersgegevens of meldingen over het sluiten van deze server.
|
||||||
explanation_html: 'De e-mail wordt verzonden naar <strong>%{display_count} gebruikers</strong>. De volgende tekst wordt in het bericht opgenomen:'
|
explanation_html: 'De e-mail wordt verzonden naar <strong>%{display_count} gebruikers</strong>. De volgende tekst wordt in het bericht opgenomen:'
|
||||||
title: Voorbeeld van mededeling
|
title: Voorbeeld van mededeling
|
||||||
publish: Inschakelen
|
publish: Inschakelen
|
||||||
|
|
|
@ -146,6 +146,7 @@ ko:
|
||||||
min_age: 관할지역의 법률에서 요구하는 최저 연령보다 작으면 안 됩니다.
|
min_age: 관할지역의 법률에서 요구하는 최저 연령보다 작으면 안 됩니다.
|
||||||
user:
|
user:
|
||||||
chosen_languages: 체크하면, 선택 된 언어로 작성된 게시물들만 공개 타임라인에 보여집니다
|
chosen_languages: 체크하면, 선택 된 언어로 작성된 게시물들만 공개 타임라인에 보여집니다
|
||||||
|
date_of_birth: 마스토돈을 사용하려면 %{age}세 이상임을 확인해야 합니다. 이 정보는 저장되지 않습니다.
|
||||||
role: 역할은 사용자가 어떤 권한을 가지게 될 지 결정합니다.
|
role: 역할은 사용자가 어떤 권한을 가지게 될 지 결정합니다.
|
||||||
user_role:
|
user_role:
|
||||||
color: 색상은 사용자 인터페이스에서 역할을 나타내기 위해 사용되며, RGB 16진수 형식입니다
|
color: 색상은 사용자 인터페이스에서 역할을 나타내기 위해 사용되며, RGB 16진수 형식입니다
|
||||||
|
|
|
@ -319,6 +319,7 @@ sq:
|
||||||
create: Krijoni lajmërim
|
create: Krijoni lajmërim
|
||||||
title: Lajmërim i ri
|
title: Lajmërim i ri
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Ngaqë përdoruesit s’mund të zgjedhin lënien jashtë tyre, njoftimet me email do të kufizohen te njoftime të rëndësishme, të tilla si cenim të dhënash personale, ose njoftime mbylljesh shërbyesish.
|
||||||
explanation_html: 'Email-i do të dërgohet te <strong>%{display_count} përdorues</strong>. Te email-i do të përfshihet teksti vijues:'
|
explanation_html: 'Email-i do të dërgohet te <strong>%{display_count} përdorues</strong>. Te email-i do të përfshihet teksti vijues:'
|
||||||
title: Bëni paraparje të shënimit për njoftimin
|
title: Bëni paraparje të shënimit për njoftimin
|
||||||
publish: Publikoje
|
publish: Publikoje
|
||||||
|
|
|
@ -319,6 +319,7 @@ tr:
|
||||||
create: Duyuru oluştur
|
create: Duyuru oluştur
|
||||||
title: Yeni duyuru
|
title: Yeni duyuru
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Kullanıcılar bu bildirimleri almayı iptal edemediği için, e-posta bildirimleri kişisel veri ihlali veya sunucu kapatma bildirimleri gibi önemli duyurularla sınırlandırılmalıdır.
|
||||||
explanation_html: 'E-posta, <strong>%{display_count} kullanıcıya</strong> gönderilecektir. E-posta içerisinde aşağıdaki metin yer alacaktır:'
|
explanation_html: 'E-posta, <strong>%{display_count} kullanıcıya</strong> gönderilecektir. E-posta içerisinde aşağıdaki metin yer alacaktır:'
|
||||||
title: Duyuru bildiriminin önizlemesine bak
|
title: Duyuru bildiriminin önizlemesine bak
|
||||||
publish: Yayınla
|
publish: Yayınla
|
||||||
|
|
|
@ -325,6 +325,7 @@ uk:
|
||||||
create: Створити оголошення
|
create: Створити оголошення
|
||||||
title: Нове оголошення
|
title: Нове оголошення
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Оскільки користувачі не можуть відмовитися від них, сповіщення по електронній пошті повинні обмежуватися важливими оголошеннями, такими як порушення особистих даних або повідомлення про закриття серверу.
|
||||||
explanation_html: 'Електронний лист буде надіслано <strong>%{display_count} користувачам</strong>. До електронного листа буде включено такий текст:'
|
explanation_html: 'Електронний лист буде надіслано <strong>%{display_count} користувачам</strong>. До електронного листа буде включено такий текст:'
|
||||||
title: Попередній перегляд сповіщення
|
title: Попередній перегляд сповіщення
|
||||||
publish: Опублікувати
|
publish: Опублікувати
|
||||||
|
|
|
@ -316,6 +316,7 @@ vi:
|
||||||
create: Tạo thông báo
|
create: Tạo thông báo
|
||||||
title: Tạo thông báo mới
|
title: Tạo thông báo mới
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: Vì người dùng không thể chọn không nhận thông báo qua email nên thông báo qua email chỉ nên giới hạn ở những thông báo quan trọng như thông báo vi phạm dữ liệu cá nhân hoặc thông báo đóng máy chủ.
|
||||||
explanation_html: 'Gửi email tới <strong>%{display_count} thành viên</strong>. Nội dung sau đây sẽ được đưa vào email:'
|
explanation_html: 'Gửi email tới <strong>%{display_count} thành viên</strong>. Nội dung sau đây sẽ được đưa vào email:'
|
||||||
title: Xem trước thông báo sẽ gửi
|
title: Xem trước thông báo sẽ gửi
|
||||||
publish: Đăng
|
publish: Đăng
|
||||||
|
|
|
@ -316,6 +316,7 @@ zh-CN:
|
||||||
create: 创建公告
|
create: 创建公告
|
||||||
title: 新公告
|
title: 新公告
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: 由于用户无法选择退出,电子邮件通知应仅限于重要公告,例如个人数据泄露或服务器关闭通知。
|
||||||
explanation_html: 此电子邮件将发送给 <strong>%{display_count} 用户</strong>。电子邮件将包含以下文本:
|
explanation_html: 此电子邮件将发送给 <strong>%{display_count} 用户</strong>。电子邮件将包含以下文本:
|
||||||
title: 预览公告通知
|
title: 预览公告通知
|
||||||
publish: 发布
|
publish: 发布
|
||||||
|
@ -471,6 +472,30 @@ zh-CN:
|
||||||
new:
|
new:
|
||||||
title: 导入域名列表
|
title: 导入域名列表
|
||||||
no_file: 没有选择文件
|
no_file: 没有选择文件
|
||||||
|
fasp:
|
||||||
|
debug:
|
||||||
|
callbacks:
|
||||||
|
created_at: 创建于
|
||||||
|
delete: 刪除
|
||||||
|
ip: IP 地址
|
||||||
|
request_body: 请求正文
|
||||||
|
title: 调试回调
|
||||||
|
providers:
|
||||||
|
active: 有效
|
||||||
|
base_url: 基础 URL
|
||||||
|
callback: 回调
|
||||||
|
delete: 刪除
|
||||||
|
edit: 编辑提供商
|
||||||
|
finish_registration: 完成注册
|
||||||
|
name: 名称
|
||||||
|
providers: 提供商
|
||||||
|
public_key_fingerprint: 公钥指纹
|
||||||
|
registrations:
|
||||||
|
confirm: 确认
|
||||||
|
reject: 拒绝
|
||||||
|
save: 保存
|
||||||
|
sign_in: 登录
|
||||||
|
status: 状态
|
||||||
follow_recommendations:
|
follow_recommendations:
|
||||||
description_html: "<strong>“关注推荐”可帮助新用户快速找到有趣的内容</strong>。 当用户与他人的互动不足以形成个性化的建议时,就会推荐关注这些账号。推荐会每日更新,基于选定语言的近期最高互动数和最多本站关注者数综合评估得出。"
|
description_html: "<strong>“关注推荐”可帮助新用户快速找到有趣的内容</strong>。 当用户与他人的互动不足以形成个性化的建议时,就会推荐关注这些账号。推荐会每日更新,基于选定语言的近期最高互动数和最多本站关注者数综合评估得出。"
|
||||||
language: 选择语言
|
language: 选择语言
|
||||||
|
|
|
@ -316,6 +316,7 @@ zh-TW:
|
||||||
create: 新增公告
|
create: 新增公告
|
||||||
title: 新增公告
|
title: 新增公告
|
||||||
preview:
|
preview:
|
||||||
|
disclaimer: 由於使用者無法選擇退出,電子郵件通知應僅限於重要公告,例如個人資料洩露或伺服器關閉通知。
|
||||||
explanation_html: 此 email 將寄至 <strong>%{display_count} 名使用者</strong>。以下文字將被包含於 e-mail 中:
|
explanation_html: 此 email 將寄至 <strong>%{display_count} 名使用者</strong>。以下文字將被包含於 e-mail 中:
|
||||||
title: 預覽公告通知
|
title: 預覽公告通知
|
||||||
publish: 發布
|
publish: 發布
|
||||||
|
|
|
@ -192,6 +192,7 @@ namespace :api, format: false do
|
||||||
resources :lists, only: :index
|
resources :lists, only: :index
|
||||||
resources :identity_proofs, only: :index
|
resources :identity_proofs, only: :index
|
||||||
resources :featured_tags, only: :index
|
resources :featured_tags, only: :index
|
||||||
|
resources :endorsements, only: :index
|
||||||
end
|
end
|
||||||
|
|
||||||
member do
|
member do
|
||||||
|
@ -205,8 +206,10 @@ namespace :api, format: false do
|
||||||
end
|
end
|
||||||
|
|
||||||
scope module: :accounts do
|
scope module: :accounts do
|
||||||
resource :pin, only: :create
|
post :pin, to: 'endorsements#create'
|
||||||
post :unpin, to: 'pins#destroy'
|
post :endorse, to: 'endorsements#create'
|
||||||
|
post :unpin, to: 'endorsements#destroy'
|
||||||
|
post :unendorse, to: 'endorsements#destroy'
|
||||||
resource :note, only: :create
|
resource :note, only: :create
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@mastodon/mastodon",
|
"name": "@mastodon/mastodon",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"packageManager": "yarn@4.8.1",
|
"packageManager": "yarn@4.9.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
|
|
|
@ -13,8 +13,30 @@ RSpec.describe 'Accounts Pins API' do
|
||||||
kevin.account.followers << user.account
|
kevin.account.followers << user.account
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST /api/v1/accounts/:account_id/pin' do
|
describe 'GET /api/v1/accounts/:account_id/endorsements' do
|
||||||
subject { post "/api/v1/accounts/#{kevin.account.id}/pin", headers: headers }
|
subject { get "/api/v1/accounts/#{user.account.id}/endorsements", headers: headers }
|
||||||
|
|
||||||
|
let(:scopes) { 'read:accounts' }
|
||||||
|
|
||||||
|
before do
|
||||||
|
user.account.endorsed_accounts << kevin.account
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns the expected accounts', :aggregate_failures do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(response).to have_http_status(200)
|
||||||
|
expect(response.content_type)
|
||||||
|
.to start_with('application/json')
|
||||||
|
expect(response.parsed_body)
|
||||||
|
.to contain_exactly(
|
||||||
|
hash_including(id: kevin.account_id.to_s)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'POST /api/v1/accounts/:account_id/endorse' do
|
||||||
|
subject { post "/api/v1/accounts/#{kevin.account.id}/endorse", headers: headers }
|
||||||
|
|
||||||
it 'creates account_pin', :aggregate_failures do
|
it 'creates account_pin', :aggregate_failures do
|
||||||
expect do
|
expect do
|
||||||
|
@ -26,8 +48,8 @@ RSpec.describe 'Accounts Pins API' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST /api/v1/accounts/:account_id/unpin' do
|
describe 'POST /api/v1/accounts/:account_id/unendorse' do
|
||||||
subject { post "/api/v1/accounts/#{kevin.account.id}/unpin", headers: headers }
|
subject { post "/api/v1/accounts/#{kevin.account.id}/unendorse", headers: headers }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
Fabricate(:account_pin, account: user.account, target_account: kevin.account)
|
Fabricate(:account_pin, account: user.account, target_account: kevin.account)
|
|
@ -132,9 +132,12 @@ RSpec.describe 'Lists' do
|
||||||
it 'returns http unprocessable entity' do
|
it 'returns http unprocessable entity' do
|
||||||
subject
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(422)
|
expect(response)
|
||||||
|
.to have_http_status(422)
|
||||||
expect(response.content_type)
|
expect(response.content_type)
|
||||||
.to start_with('application/json')
|
.to start_with('application/json')
|
||||||
|
expect(response.parsed_body)
|
||||||
|
.to include(error: /Replies policy is not included/)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -115,6 +115,21 @@ RSpec.describe 'Filters' do
|
||||||
.to start_with('application/json')
|
.to start_with('application/json')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when the given filter_action value is invalid' do
|
||||||
|
let(:params) { { title: 'magic', filter_action: 'imaginary_value', keywords_attributes: [keyword: 'magic'] } }
|
||||||
|
|
||||||
|
it 'returns http unprocessable entity' do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(response)
|
||||||
|
.to have_http_status(422)
|
||||||
|
expect(response.content_type)
|
||||||
|
.to start_with('application/json')
|
||||||
|
expect(response.parsed_body)
|
||||||
|
.to include(error: /Action is not included/)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'GET /api/v2/filters/:id' do
|
describe 'GET /api/v2/filters/:id' do
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@mastodon/streaming",
|
"name": "@mastodon/streaming",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"packageManager": "yarn@4.8.1",
|
"packageManager": "yarn@4.9.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
|
|
61
yarn.lock
61
yarn.lock
|
@ -7284,10 +7284,10 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"decimal.js@npm:^10.4.2, decimal.js@npm:^10.4.3":
|
"decimal.js@npm:^10.4.2, decimal.js@npm:^10.4.3, decimal.js@npm:^10.5.0":
|
||||||
version: 10.4.3
|
version: 10.5.0
|
||||||
resolution: "decimal.js@npm:10.4.3"
|
resolution: "decimal.js@npm:10.5.0"
|
||||||
checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee
|
checksum: 10c0/785c35279df32762143914668df35948920b6c1c259b933e0519a69b7003fc0a5ed2a766b1e1dda02574450c566b21738a45f15e274b47c2ac02072c0d1f3ac3
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -9020,7 +9020,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"form-data@npm:^4.0.0, form-data@npm:^4.0.1":
|
"form-data@npm:^4.0.0":
|
||||||
version: 4.0.1
|
version: 4.0.1
|
||||||
resolution: "form-data@npm:4.0.1"
|
resolution: "form-data@npm:4.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -10116,8 +10116,8 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"ioredis@npm:^5.3.2":
|
"ioredis@npm:^5.3.2":
|
||||||
version: 5.6.0
|
version: 5.6.1
|
||||||
resolution: "ioredis@npm:5.6.0"
|
resolution: "ioredis@npm:5.6.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ioredis/commands": "npm:^1.1.1"
|
"@ioredis/commands": "npm:^1.1.1"
|
||||||
cluster-key-slot: "npm:^1.1.0"
|
cluster-key-slot: "npm:^1.1.0"
|
||||||
|
@ -10128,7 +10128,7 @@ __metadata:
|
||||||
redis-errors: "npm:^1.2.0"
|
redis-errors: "npm:^1.2.0"
|
||||||
redis-parser: "npm:^3.0.0"
|
redis-parser: "npm:^3.0.0"
|
||||||
standard-as-callback: "npm:^2.1.0"
|
standard-as-callback: "npm:^2.1.0"
|
||||||
checksum: 10c0/a885e5146640fc448706871290ef424ffa39af561f7ee3cf1590085209a509f85e99082bdaaf3cd32fa66758aea3fc2055d1109648ddca96fac4944bf2092c30
|
checksum: 10c0/26ae49cf448e807e454a9bdea5a9dfdcf669e2fdbf2df341900a0fb693c5662fea7e39db3227ce8972d1bda0ba7da9b7410e5163b12d8878a579548d847220ac
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -11397,13 +11397,12 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"jsdom@npm:^26.0.0":
|
"jsdom@npm:^26.0.0":
|
||||||
version: 26.0.0
|
version: 26.1.0
|
||||||
resolution: "jsdom@npm:26.0.0"
|
resolution: "jsdom@npm:26.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
cssstyle: "npm:^4.2.1"
|
cssstyle: "npm:^4.2.1"
|
||||||
data-urls: "npm:^5.0.0"
|
data-urls: "npm:^5.0.0"
|
||||||
decimal.js: "npm:^10.4.3"
|
decimal.js: "npm:^10.5.0"
|
||||||
form-data: "npm:^4.0.1"
|
|
||||||
html-encoding-sniffer: "npm:^4.0.0"
|
html-encoding-sniffer: "npm:^4.0.0"
|
||||||
http-proxy-agent: "npm:^7.0.2"
|
http-proxy-agent: "npm:^7.0.2"
|
||||||
https-proxy-agent: "npm:^7.0.6"
|
https-proxy-agent: "npm:^7.0.6"
|
||||||
|
@ -11413,12 +11412,12 @@ __metadata:
|
||||||
rrweb-cssom: "npm:^0.8.0"
|
rrweb-cssom: "npm:^0.8.0"
|
||||||
saxes: "npm:^6.0.0"
|
saxes: "npm:^6.0.0"
|
||||||
symbol-tree: "npm:^3.2.4"
|
symbol-tree: "npm:^3.2.4"
|
||||||
tough-cookie: "npm:^5.0.0"
|
tough-cookie: "npm:^5.1.1"
|
||||||
w3c-xmlserializer: "npm:^5.0.0"
|
w3c-xmlserializer: "npm:^5.0.0"
|
||||||
webidl-conversions: "npm:^7.0.0"
|
webidl-conversions: "npm:^7.0.0"
|
||||||
whatwg-encoding: "npm:^3.1.1"
|
whatwg-encoding: "npm:^3.1.1"
|
||||||
whatwg-mimetype: "npm:^4.0.0"
|
whatwg-mimetype: "npm:^4.0.0"
|
||||||
whatwg-url: "npm:^14.1.0"
|
whatwg-url: "npm:^14.1.1"
|
||||||
ws: "npm:^8.18.0"
|
ws: "npm:^8.18.0"
|
||||||
xml-name-validator: "npm:^5.0.0"
|
xml-name-validator: "npm:^5.0.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -11426,7 +11425,7 @@ __metadata:
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
canvas:
|
canvas:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/e48725ba4027edcfc9bca5799eaec72c6561ecffe3675a8ff87fe9c3541ca4ff9f82b4eff5b3d9c527302da0d859b2f60e9364347a5d42b77f5c76c436c569dc
|
checksum: 10c0/5b14a5bc32ce077a06fb42d1ab95b1191afa5cbbce8859e3b96831c5143becbbcbf0511d4d4934e922d2901443ced2cdc3b734c1cf30b5f73b3e067ce457d0f4
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -12025,9 +12024,9 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"marky@npm:^1.2.5":
|
"marky@npm:^1.2.5":
|
||||||
version: 1.2.5
|
version: 1.3.0
|
||||||
resolution: "marky@npm:1.2.5"
|
resolution: "marky@npm:1.3.0"
|
||||||
checksum: 10c0/ca8a011f287dab1ac3291df720fc32b366c4cd767347b63722966650405ce71ec6566f71d1e22e1768bf6461a7fd689b9038e7df0fcfb62eacf3a5a6dcac249e
|
checksum: 10c0/6619cdb132fdc4f7cd3e2bed6eebf81a38e50ff4b426bbfb354db68731e4adfebf35ebfd7c8e5a6e846cbf9b872588c4f76db25782caee8c1529ec9d483bf98b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -17470,12 +17469,12 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"tough-cookie@npm:^5.0.0":
|
"tough-cookie@npm:^5.1.1":
|
||||||
version: 5.0.0
|
version: 5.1.2
|
||||||
resolution: "tough-cookie@npm:5.0.0"
|
resolution: "tough-cookie@npm:5.1.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
tldts: "npm:^6.1.32"
|
tldts: "npm:^6.1.32"
|
||||||
checksum: 10c0/4a69c885bf6f45c5a64e60262af99e8c0d58a33bd3d0ce5da62121eeb9c00996d0128a72df8fc4614cbde59cc8b70aa3e21e4c3c98c2bbde137d7aba7fa00124
|
checksum: 10c0/5f95023a47de0f30a902bba951664b359725597d8adeabc66a0b93a931c3af801e1e697dae4b8c21a012056c0ea88bd2bf4dfe66b2adcf8e2f42cd9796fe0626
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -17504,12 +17503,12 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"tr46@npm:^5.0.0":
|
"tr46@npm:^5.1.0":
|
||||||
version: 5.0.0
|
version: 5.1.0
|
||||||
resolution: "tr46@npm:5.0.0"
|
resolution: "tr46@npm:5.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
punycode: "npm:^2.3.1"
|
punycode: "npm:^2.3.1"
|
||||||
checksum: 10c0/1521b6e7bbc8adc825c4561480f9fe48eb2276c81335eed9fa610aa4c44a48a3221f78b10e5f18b875769eb3413e30efbf209ed556a17a42aa8d690df44b7bee
|
checksum: 10c0/d761f7144e0cb296187674ef245c74f761e334d7cf25ca73ef60e4c72c097c75051031c093fa1a2fee04b904977b316716a7915854bcae8fb1a371746513cbe8
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -18544,13 +18543,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.0":
|
"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.1":
|
||||||
version: 14.1.0
|
version: 14.2.0
|
||||||
resolution: "whatwg-url@npm:14.1.0"
|
resolution: "whatwg-url@npm:14.2.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
tr46: "npm:^5.0.0"
|
tr46: "npm:^5.1.0"
|
||||||
webidl-conversions: "npm:^7.0.0"
|
webidl-conversions: "npm:^7.0.0"
|
||||||
checksum: 10c0/f00104f1c67ce086ba8ffedab529cbbd9aefd8c0a6555320026de7aeff31f91c38680f95818b140a7c9cc657cde3781e567835dda552ddb1e2b8faaba0ac3cb6
|
checksum: 10c0/f746fc2f4c906607d09537de1227b13f9494c171141e5427ed7d2c0dd0b6a48b43d8e71abaae57d368d0c06b673fd8ec63550b32ad5ed64990c7b0266c2b4272
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue