Merge remote-tracking branch 'parent/main' into upstream-20240124
This commit is contained in:
commit
54f5113b46
106 changed files with 1396 additions and 1071 deletions
|
@ -5,7 +5,7 @@
|
||||||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
||||||
|
|
||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/sshd:1": {}
|
"ghcr.io/devcontainers/features/sshd:1": {},
|
||||||
},
|
},
|
||||||
|
|
||||||
"runServices": ["app", "db", "redis"],
|
"runServices": ["app", "db", "redis"],
|
||||||
|
@ -15,16 +15,16 @@
|
||||||
"portsAttributes": {
|
"portsAttributes": {
|
||||||
"3000": {
|
"3000": {
|
||||||
"label": "web",
|
"label": "web",
|
||||||
"onAutoForward": "notify"
|
"onAutoForward": "notify",
|
||||||
},
|
},
|
||||||
"4000": {
|
"4000": {
|
||||||
"label": "stream",
|
"label": "stream",
|
||||||
"onAutoForward": "silent"
|
"onAutoForward": "silent",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
"otherPortsAttributes": {
|
"otherPortsAttributes": {
|
||||||
"onAutoForward": "silent"
|
"onAutoForward": "silent",
|
||||||
},
|
},
|
||||||
|
|
||||||
"remoteEnv": {
|
"remoteEnv": {
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
|
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
|
||||||
"DISABLE_FORGERY_REQUEST_PROTECTION": "true",
|
"DISABLE_FORGERY_REQUEST_PROTECTION": "true",
|
||||||
"ES_ENABLED": "",
|
"ES_ENABLED": "",
|
||||||
"LIBRE_TRANSLATE_ENDPOINT": ""
|
"LIBRE_TRANSLATE_ENDPOINT": "",
|
||||||
},
|
},
|
||||||
|
|
||||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"settings": {},
|
"settings": {},
|
||||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
|
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
||||||
|
|
||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/sshd:1": {}
|
"ghcr.io/devcontainers/features/sshd:1": {},
|
||||||
},
|
},
|
||||||
|
|
||||||
"forwardPorts": [3000, 4000],
|
"forwardPorts": [3000, 4000],
|
||||||
|
@ -14,17 +14,17 @@
|
||||||
"3000": {
|
"3000": {
|
||||||
"label": "web",
|
"label": "web",
|
||||||
"onAutoForward": "notify",
|
"onAutoForward": "notify",
|
||||||
"requireLocalPort": true
|
"requireLocalPort": true,
|
||||||
},
|
},
|
||||||
"4000": {
|
"4000": {
|
||||||
"label": "stream",
|
"label": "stream",
|
||||||
"onAutoForward": "silent",
|
"onAutoForward": "silent",
|
||||||
"requireLocalPort": true
|
"requireLocalPort": true,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
"otherPortsAttributes": {
|
"otherPortsAttributes": {
|
||||||
"onAutoForward": "silent"
|
"onAutoForward": "silent",
|
||||||
},
|
},
|
||||||
|
|
||||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"settings": {},
|
"settings": {},
|
||||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
|
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,12 +89,7 @@ Rails/WhereExists:
|
||||||
- 'app/models/status.rb'
|
- 'app/models/status.rb'
|
||||||
- 'app/policies/status_policy.rb'
|
- 'app/policies/status_policy.rb'
|
||||||
- 'app/serializers/rest/announcement_serializer.rb'
|
- 'app/serializers/rest/announcement_serializer.rb'
|
||||||
- 'app/services/activitypub/fetch_remote_status_service.rb'
|
|
||||||
- 'app/services/vote_service.rb'
|
|
||||||
- 'app/validators/reaction_validator.rb'
|
|
||||||
- 'app/validators/vote_validator.rb'
|
|
||||||
- 'app/workers/move_worker.rb'
|
- 'app/workers/move_worker.rb'
|
||||||
- 'lib/tasks/tests.rake'
|
|
||||||
- 'spec/models/account_spec.rb'
|
- 'spec/models/account_spec.rb'
|
||||||
- 'spec/services/activitypub/process_collection_service_spec.rb'
|
- 'spec/services/activitypub/process_collection_service_spec.rb'
|
||||||
- 'spec/services/purge_domain_service_spec.rb'
|
- 'spec/services/purge_domain_service_spec.rb'
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.2.2
|
3.2.3
|
||||||
|
|
|
@ -7,15 +7,15 @@
|
||||||
ARG TARGETPLATFORM=${TARGETPLATFORM}
|
ARG TARGETPLATFORM=${TARGETPLATFORM}
|
||||||
ARG BUILDPLATFORM=${BUILDPLATFORM}
|
ARG BUILDPLATFORM=${BUILDPLATFORM}
|
||||||
|
|
||||||
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.2.2"]
|
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.2.3"]
|
||||||
ARG RUBY_VERSION="3.2.2"
|
ARG RUBY_VERSION="3.2.3"
|
||||||
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
||||||
ARG NODE_MAJOR_VERSION="20"
|
ARG NODE_MAJOR_VERSION="20"
|
||||||
# Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"]
|
# Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"]
|
||||||
ARG DEBIAN_VERSION="bookworm"
|
ARG DEBIAN_VERSION="bookworm"
|
||||||
# Node image to use for base image based on combined variables (ex: 20-bookworm-slim)
|
# Node image to use for base image based on combined variables (ex: 20-bookworm-slim)
|
||||||
FROM docker.io/node:${NODE_MAJOR_VERSION}-${DEBIAN_VERSION}-slim as node
|
FROM docker.io/node:${NODE_MAJOR_VERSION}-${DEBIAN_VERSION}-slim as node
|
||||||
# Ruby image to use for base image based on combined variables (ex: 3.2.2-slim-bookworm)
|
# Ruby image to use for base image based on combined variables (ex: 3.2.3-slim-bookworm)
|
||||||
FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby
|
FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby
|
||||||
|
|
||||||
# Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA
|
# Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA
|
||||||
|
|
|
@ -1,19 +1,35 @@
|
||||||
## ActivityPub federation in Mastodon
|
# Federation
|
||||||
|
|
||||||
|
## Supported federation protocols and standards
|
||||||
|
|
||||||
|
- [ActivityPub](https://www.w3.org/TR/activitypub/) (Server-to-Server)
|
||||||
|
- [WebFinger](https://webfinger.net/)
|
||||||
|
- [Http Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures)
|
||||||
|
- [NodeInfo](https://nodeinfo.diaspora.software/)
|
||||||
|
|
||||||
|
## Supported FEPs
|
||||||
|
|
||||||
|
- [FEP-67ff: FEDERATION.md](https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md)
|
||||||
|
- [FEP-f1d5: NodeInfo in Fediverse Software](https://codeberg.org/fediverse/fep/src/branch/main/fep/f1d5/fep-f1d5.md)
|
||||||
|
- [FEP-8fcf: Followers collection synchronization across servers](https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md)
|
||||||
|
- [FEP-5feb: Search indexing consent for actors](https://codeberg.org/fediverse/fep/src/branch/main/fep/5feb/fep-5feb.md)
|
||||||
|
|
||||||
|
## ActivityPub in Mastodon
|
||||||
|
|
||||||
Mastodon largely follows the ActivityPub server-to-server specification but it makes uses of some non-standard extensions, some of which are required for interacting with Mastodon at all.
|
Mastodon largely follows the ActivityPub server-to-server specification but it makes uses of some non-standard extensions, some of which are required for interacting with Mastodon at all.
|
||||||
|
|
||||||
Supported vocabulary: https://docs.joinmastodon.org/spec/activitypub/
|
- [Supported ActivityPub vocabulary](https://docs.joinmastodon.org/spec/activitypub/)
|
||||||
|
|
||||||
### Required extensions
|
### Required extensions
|
||||||
|
|
||||||
#### Webfinger
|
#### WebFinger
|
||||||
|
|
||||||
In Mastodon, users are identified by a `username` and `domain` pair (e.g., `Gargron@mastodon.social`).
|
In Mastodon, users are identified by a `username` and `domain` pair (e.g., `Gargron@mastodon.social`).
|
||||||
This is used both for discovery and for unambiguously mentioning users across the fediverse. Furthermore, this is part of Mastodon's database design from its very beginnings.
|
This is used both for discovery and for unambiguously mentioning users across the fediverse. Furthermore, this is part of Mastodon's database design from its very beginnings.
|
||||||
|
|
||||||
As a result, Mastodon requires that each ActivityPub actor uniquely maps back to an `acct:` URI that can be resolved via WebFinger.
|
As a result, Mastodon requires that each ActivityPub actor uniquely maps back to an `acct:` URI that can be resolved via WebFinger.
|
||||||
|
|
||||||
More information and examples are available at: https://docs.joinmastodon.org/spec/webfinger/
|
- [WebFinger information and examples](https://docs.joinmastodon.org/spec/webfinger/)
|
||||||
|
|
||||||
#### HTTP Signatures
|
#### HTTP Signatures
|
||||||
|
|
||||||
|
@ -21,11 +37,13 @@ In order to authenticate activities, Mastodon relies on HTTP Signatures, signing
|
||||||
|
|
||||||
Mastodon requires all `POST` requests to be signed, and MAY require `GET` requests to be signed, depending on the configuration of the Mastodon server.
|
Mastodon requires all `POST` requests to be signed, and MAY require `GET` requests to be signed, depending on the configuration of the Mastodon server.
|
||||||
|
|
||||||
More information on HTTP Signatures, as well as examples, can be found here: https://docs.joinmastodon.org/spec/security/#http
|
- [HTTP Signatures information and examples](https://docs.joinmastodon.org/spec/security/#http)
|
||||||
|
|
||||||
### Optional extensions
|
### Optional extensions
|
||||||
|
|
||||||
- Linked-Data Signatures: https://docs.joinmastodon.org/spec/security/#ld
|
- [Linked-Data Signatures](https://docs.joinmastodon.org/spec/security/#ld)
|
||||||
- Bearcaps: https://docs.joinmastodon.org/spec/bearcaps/
|
- [Bearcaps](https://docs.joinmastodon.org/spec/bearcaps/)
|
||||||
- Followers collection synchronization: https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md
|
|
||||||
- Search indexing consent for actors: https://codeberg.org/fediverse/fep/src/branch/main/fep/5feb/fep-5feb.md
|
### Additional documentation
|
||||||
|
|
||||||
|
- [Mastodon documentation](https://docs.joinmastodon.org/)
|
||||||
|
|
|
@ -24,7 +24,7 @@ class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseContro
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_items
|
def set_items
|
||||||
@items = @account.followers.where(Account.arel_table[:uri].matches("#{Account.sanitize_sql_like(uri_prefix)}/%", false, true)).or(@account.followers.where(uri: uri_prefix)).pluck(:uri)
|
@items = @account.followers.matches_uri_prefix(uri_prefix).pluck(:uri)
|
||||||
end
|
end
|
||||||
|
|
||||||
def collection_presenter
|
def collection_presenter
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_accounts
|
def default_accounts
|
||||||
Account.includes(:active_relationships, :account_stat).references(:active_relationships)
|
Account.includes(:active_relationships, :account_stat, :user).references(:active_relationships)
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_follows
|
def paginated_follows
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_accounts
|
def default_accounts
|
||||||
Account.includes(:passive_relationships, :account_stat).references(:passive_relationships)
|
Account.includes(:passive_relationships, :account_stat, :user).references(:passive_relationships)
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_follows
|
def paginated_follows
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Api::V1::BlocksController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_blocks
|
def paginated_blocks
|
||||||
@paginated_blocks ||= Block.eager_load(target_account: :account_stat)
|
@paginated_blocks ||= Block.eager_load(target_account: [:account_stat, :user])
|
||||||
.joins(:target_account)
|
.joins(:target_account)
|
||||||
.merge(Account.without_suspended)
|
.merge(Account.without_suspended)
|
||||||
.where(account: current_account)
|
.where(account: current_account)
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Api::V1::DirectoriesController < Api::BaseController
|
||||||
scope.merge!(local_account_scope) if local_accounts?
|
scope.merge!(local_account_scope) if local_accounts?
|
||||||
scope.merge!(account_exclusion_scope) if current_account
|
scope.merge!(account_exclusion_scope) if current_account
|
||||||
scope.merge!(account_domain_block_scope) if current_account && !local_accounts?
|
scope.merge!(account_domain_block_scope) if current_account && !local_accounts?
|
||||||
end
|
end.includes(:account_stat, user: :role)
|
||||||
end
|
end
|
||||||
|
|
||||||
def local_accounts?
|
def local_accounts?
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Api::V1::EndorsementsController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def endorsed_accounts
|
def endorsed_accounts
|
||||||
current_account.endorsed_accounts.includes(:account_stat).without_suspended
|
current_account.endorsed_accounts.includes(:account_stat, :user).without_suspended
|
||||||
end
|
end
|
||||||
|
|
||||||
def insert_pagination_headers
|
def insert_pagination_headers
|
||||||
|
|
|
@ -37,7 +37,7 @@ class Api::V1::FollowRequestsController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_accounts
|
def default_accounts
|
||||||
Account.without_suspended.includes(:follow_requests, :account_stat).references(:follow_requests)
|
Account.without_suspended.includes(:follow_requests, :account_stat, :user).references(:follow_requests)
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_follow_requests
|
def paginated_follow_requests
|
||||||
|
|
|
@ -37,9 +37,9 @@ class Api::V1::Lists::AccountsController < Api::BaseController
|
||||||
|
|
||||||
def load_accounts
|
def load_accounts
|
||||||
if unlimited?
|
if unlimited?
|
||||||
@list.accounts.without_suspended.includes(:account_stat).all
|
@list.accounts.without_suspended.includes(:account_stat, :user).all
|
||||||
else
|
else
|
||||||
@list.accounts.without_suspended.includes(:account_stat).paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
|
@list.accounts.without_suspended.includes(:account_stat, :user).paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Api::V1::MutesController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_mutes
|
def paginated_mutes
|
||||||
@paginated_mutes ||= Mute.eager_load(:target_account)
|
@paginated_mutes ||= Mute.eager_load(target_account: [:account_stat, :user])
|
||||||
.joins(:target_account)
|
.joins(:target_account)
|
||||||
.merge(Account.without_suspended)
|
.merge(Account.without_suspended)
|
||||||
.where(account: current_account)
|
.where(account: current_account)
|
||||||
|
|
|
@ -14,14 +14,14 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::V1::Statuses::Bas
|
||||||
|
|
||||||
def load_accounts
|
def load_accounts
|
||||||
scope = default_accounts
|
scope = default_accounts
|
||||||
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil?
|
scope = scope.not_excluded_by_account(current_account) unless current_account.nil?
|
||||||
scope.merge(paginated_favourites).to_a
|
scope.merge(paginated_favourites).to_a
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_accounts
|
def default_accounts
|
||||||
Account
|
Account
|
||||||
.without_suspended
|
.without_suspended
|
||||||
.includes(:favourites, :account_stat)
|
.includes(:favourites, :account_stat, :user)
|
||||||
.references(:favourites)
|
.references(:favourites)
|
||||||
.where(favourites: { status_id: @status.id })
|
.where(favourites: { status_id: @status.id })
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,12 +14,12 @@ class Api::V1::Statuses::RebloggedByAccountsController < Api::V1::Statuses::Base
|
||||||
|
|
||||||
def load_accounts
|
def load_accounts
|
||||||
scope = default_accounts
|
scope = default_accounts
|
||||||
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil?
|
scope = scope.not_excluded_by_account(current_account) unless current_account.nil?
|
||||||
scope.merge(paginated_statuses).to_a
|
scope.merge(paginated_statuses).to_a
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_accounts
|
def default_accounts
|
||||||
Account.without_suspended.includes(:statuses, :account_stat).references(:statuses)
|
Account.without_suspended.includes(:statuses, :account_stat, :user).references(:statuses)
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginated_statuses
|
def paginated_statuses
|
||||||
|
|
|
@ -35,7 +35,7 @@ class Api::V2::FiltersController < Api::BaseController
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_filters
|
def set_filters
|
||||||
@filters = current_account.custom_filters.includes(:keywords)
|
@filters = current_account.custom_filters.includes(:keywords, :statuses)
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_filter
|
def set_filter
|
||||||
|
|
|
@ -181,6 +181,11 @@ class Auth::SessionsController < Devise::SessionsController
|
||||||
ip: request.remote_ip,
|
ip: request.remote_ip,
|
||||||
user_agent: request.user_agent
|
user_agent: request.user_agent
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Only send a notification email every hour at most
|
||||||
|
return if redis.set("2fa_failure_notification:#{user.id}", '1', ex: 1.hour, get: true).present?
|
||||||
|
|
||||||
|
UserMailer.failed_2fa(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later!
|
||||||
end
|
end
|
||||||
|
|
||||||
def second_factor_attempts_key(user)
|
def second_factor_attempts_key(user)
|
||||||
|
|
|
@ -116,7 +116,6 @@
|
||||||
"compose_form.publish_form": "Artículu nuevu",
|
"compose_form.publish_form": "Artículu nuevu",
|
||||||
"compose_form.publish_loud": "¡{publish}!",
|
"compose_form.publish_loud": "¡{publish}!",
|
||||||
"compose_form.save_changes": "Guardar los cambeos",
|
"compose_form.save_changes": "Guardar los cambeos",
|
||||||
"compose_form.spoiler.unmarked": "Text is not hidden",
|
|
||||||
"confirmation_modal.cancel": "Encaboxar",
|
"confirmation_modal.cancel": "Encaboxar",
|
||||||
"confirmations.block.block_and_report": "Bloquiar ya informar",
|
"confirmations.block.block_and_report": "Bloquiar ya informar",
|
||||||
"confirmations.block.confirm": "Bloquiar",
|
"confirmations.block.confirm": "Bloquiar",
|
||||||
|
@ -146,6 +145,7 @@
|
||||||
"dismissable_banner.community_timeline": "Esta seición contién los artículos públicos más actuales de los perfiles agospiaos nel dominiu {domain}.",
|
"dismissable_banner.community_timeline": "Esta seición contién los artículos públicos más actuales de los perfiles agospiaos nel dominiu {domain}.",
|
||||||
"dismissable_banner.dismiss": "Escartar",
|
"dismissable_banner.dismiss": "Escartar",
|
||||||
"dismissable_banner.explore_tags": "Esta seición contién les etiquetes del fediversu que tán ganando popularidá güei. Les etiquetes más usaes polos perfiles apaecen no cimero.",
|
"dismissable_banner.explore_tags": "Esta seición contién les etiquetes del fediversu que tán ganando popularidá güei. Les etiquetes más usaes polos perfiles apaecen no cimero.",
|
||||||
|
"dismissable_banner.public_timeline": "Esta seición contién los artículos más nuevos de les persones na web social que les persones de {domain} siguen.",
|
||||||
"embed.instructions": "Empotra esti artículu nel to sitiu web pente la copia del códigu d'abaxo.",
|
"embed.instructions": "Empotra esti artículu nel to sitiu web pente la copia del códigu d'abaxo.",
|
||||||
"embed.preview": "Va apaecer asina:",
|
"embed.preview": "Va apaecer asina:",
|
||||||
"emoji_button.activity": "Actividá",
|
"emoji_button.activity": "Actividá",
|
||||||
|
@ -155,6 +155,7 @@
|
||||||
"emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
|
"emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
|
||||||
"emoji_button.objects": "Oxetos",
|
"emoji_button.objects": "Oxetos",
|
||||||
"emoji_button.people": "Persones",
|
"emoji_button.people": "Persones",
|
||||||
|
"emoji_button.recent": "D'usu frecuente",
|
||||||
"emoji_button.search": "Buscar…",
|
"emoji_button.search": "Buscar…",
|
||||||
"emoji_button.search_results": "Resultaos de la busca",
|
"emoji_button.search_results": "Resultaos de la busca",
|
||||||
"emoji_button.symbols": "Símbolos",
|
"emoji_button.symbols": "Símbolos",
|
||||||
|
@ -217,7 +218,6 @@
|
||||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||||
"hashtag.column_header.tag_mode.none": "ensin {additional}",
|
"hashtag.column_header.tag_mode.none": "ensin {additional}",
|
||||||
"hashtag.column_settings.select.no_options_message": "Nun s'atopó nenguna suxerencia",
|
"hashtag.column_settings.select.no_options_message": "Nun s'atopó nenguna suxerencia",
|
||||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
|
||||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}",
|
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}",
|
||||||
"hashtag.follow": "Siguir a la etiqueta",
|
"hashtag.follow": "Siguir a la etiqueta",
|
||||||
"hashtag.unfollow": "Dexar de siguir a la etiqueta",
|
"hashtag.unfollow": "Dexar de siguir a la etiqueta",
|
||||||
|
@ -259,7 +259,6 @@
|
||||||
"keyboard_shortcuts.reply": "Responder a un artículu",
|
"keyboard_shortcuts.reply": "Responder a un artículu",
|
||||||
"keyboard_shortcuts.requests": "Abrir la llista de solicitúes de siguimientu",
|
"keyboard_shortcuts.requests": "Abrir la llista de solicitúes de siguimientu",
|
||||||
"keyboard_shortcuts.search": "Enfocar la barra de busca",
|
"keyboard_shortcuts.search": "Enfocar la barra de busca",
|
||||||
"keyboard_shortcuts.spoilers": "to show/hide CW field",
|
|
||||||
"keyboard_shortcuts.start": "Abrir la columna «Entamar»",
|
"keyboard_shortcuts.start": "Abrir la columna «Entamar»",
|
||||||
"keyboard_shortcuts.toggle_sensitivity": "Amosar/anubrir el conteníu multimedia",
|
"keyboard_shortcuts.toggle_sensitivity": "Amosar/anubrir el conteníu multimedia",
|
||||||
"keyboard_shortcuts.toot": "Comenzar un artículu nuevu",
|
"keyboard_shortcuts.toot": "Comenzar un artículu nuevu",
|
||||||
|
@ -412,12 +411,16 @@
|
||||||
"search.quick_action.go_to_hashtag": "Dir a la etiqueta {x}",
|
"search.quick_action.go_to_hashtag": "Dir a la etiqueta {x}",
|
||||||
"search.quick_action.status_search": "Artículos que concasen con {x}",
|
"search.quick_action.status_search": "Artículos que concasen con {x}",
|
||||||
"search.search_or_paste": "Busca o apiega una URL",
|
"search.search_or_paste": "Busca o apiega una URL",
|
||||||
|
"search_popout.language_code": "códigu de llingua ISO",
|
||||||
"search_popout.quick_actions": "Aiciones rápides",
|
"search_popout.quick_actions": "Aiciones rápides",
|
||||||
"search_popout.recent": "Busques de recién",
|
"search_popout.recent": "Busques de recién",
|
||||||
|
"search_popout.specific_date": "data específica",
|
||||||
|
"search_popout.user": "perfil",
|
||||||
"search_results.accounts": "Perfiles",
|
"search_results.accounts": "Perfiles",
|
||||||
"search_results.all": "Too",
|
"search_results.all": "Too",
|
||||||
"search_results.hashtags": "Etiquetes",
|
"search_results.hashtags": "Etiquetes",
|
||||||
"search_results.nothing_found": "Nun se pudo atopar nada con esos términos de busca",
|
"search_results.nothing_found": "Nun se pudo atopar nada con esos términos de busca",
|
||||||
|
"search_results.see_all": "Ver too",
|
||||||
"search_results.statuses": "Artículos",
|
"search_results.statuses": "Artículos",
|
||||||
"search_results.title": "Busca de: {q}",
|
"search_results.title": "Busca de: {q}",
|
||||||
"server_banner.introduction": "{domain} ye parte de la rede social descentralizada que tien la teunoloxía de {mastodon}.",
|
"server_banner.introduction": "{domain} ye parte de la rede social descentralizada que tien la teunoloxía de {mastodon}.",
|
||||||
|
@ -460,6 +463,7 @@
|
||||||
"status.replied_to": "En rempuesta a {name}",
|
"status.replied_to": "En rempuesta a {name}",
|
||||||
"status.reply": "Responder",
|
"status.reply": "Responder",
|
||||||
"status.replyAll": "Responder al filu",
|
"status.replyAll": "Responder al filu",
|
||||||
|
"status.report": "Informar de @{name}",
|
||||||
"status.sensitive_warning": "Conteníu sensible",
|
"status.sensitive_warning": "Conteníu sensible",
|
||||||
"status.show_filter_reason": "Amosar de toes toes",
|
"status.show_filter_reason": "Amosar de toes toes",
|
||||||
"status.show_less": "Amosar menos",
|
"status.show_less": "Amosar menos",
|
||||||
|
|
|
@ -150,7 +150,7 @@
|
||||||
"compose_form.poll.duration": "Durada de l'enquesta",
|
"compose_form.poll.duration": "Durada de l'enquesta",
|
||||||
"compose_form.poll.option_placeholder": "Opció {number}",
|
"compose_form.poll.option_placeholder": "Opció {number}",
|
||||||
"compose_form.poll.remove_option": "Elimina aquesta opció",
|
"compose_form.poll.remove_option": "Elimina aquesta opció",
|
||||||
"compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions",
|
"compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre múltiples opcions",
|
||||||
"compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció",
|
"compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció",
|
||||||
"compose_form.publish": "Tut",
|
"compose_form.publish": "Tut",
|
||||||
"compose_form.publish_form": "Nou tut",
|
"compose_form.publish_form": "Nou tut",
|
||||||
|
@ -607,7 +607,7 @@
|
||||||
"search.quick_action.status_search": "Tuts coincidint amb {x}",
|
"search.quick_action.status_search": "Tuts coincidint amb {x}",
|
||||||
"search.search_or_paste": "Cerca o escriu l'URL",
|
"search.search_or_paste": "Cerca o escriu l'URL",
|
||||||
"search_popout.full_text_search_disabled_message": "No disponible a {domain}.",
|
"search_popout.full_text_search_disabled_message": "No disponible a {domain}.",
|
||||||
"search_popout.full_text_search_logged_out_message": "Només disponible en iniciar la sessió.",
|
"search_popout.full_text_search_logged_out_message": "Només disponible amb la sessió iniciada.",
|
||||||
"search_popout.language_code": "Codi de llengua ISO",
|
"search_popout.language_code": "Codi de llengua ISO",
|
||||||
"search_popout.options": "Opcions de cerca",
|
"search_popout.options": "Opcions de cerca",
|
||||||
"search_popout.quick_actions": "Accions ràpides",
|
"search_popout.quick_actions": "Accions ràpides",
|
||||||
|
|
|
@ -683,7 +683,7 @@
|
||||||
"status.show_more": "펼치기",
|
"status.show_more": "펼치기",
|
||||||
"status.show_more_all": "모두 펼치기",
|
"status.show_more_all": "모두 펼치기",
|
||||||
"status.show_original": "원본 보기",
|
"status.show_original": "원본 보기",
|
||||||
"status.title.with_attachments": "{user} 님이 {attachmentCount, plural, one {첨부} other {{attachmentCount}개 첨부}}하여 게시",
|
"status.title.with_attachments": "{user} 님이 {attachmentCount, plural, one {첨부파일} other {{attachmentCount}개의 첨부파일}}과 함께 게시함",
|
||||||
"status.translate": "번역",
|
"status.translate": "번역",
|
||||||
"status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨",
|
"status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨",
|
||||||
"status.uncached_media_warning": "마리보기 허용되지 않음",
|
"status.uncached_media_warning": "마리보기 허용되지 않음",
|
||||||
|
|
|
@ -328,6 +328,7 @@
|
||||||
"interaction_modal.on_another_server": "En otro sirvidor",
|
"interaction_modal.on_another_server": "En otro sirvidor",
|
||||||
"interaction_modal.on_this_server": "En este sirvidor",
|
"interaction_modal.on_this_server": "En este sirvidor",
|
||||||
"interaction_modal.sign_in": "No estas konektado kon este sirvidor. Ande tyenes tu kuento?",
|
"interaction_modal.sign_in": "No estas konektado kon este sirvidor. Ande tyenes tu kuento?",
|
||||||
|
"interaction_modal.sign_in_hint": "Konsejo: Akel es el sitio adonde te enrejistrates. Si no lo akodras, bushka el mesaj de posta elektronika de bienvenida en tu kuti de arivo. Tambien puedes eskrivir tu nombre de utilizador kompleto (por enshemplo @Mastodon@mastodon.social)",
|
||||||
"interaction_modal.title.favourite": "Endika ke te plaze publikasyon de {name}",
|
"interaction_modal.title.favourite": "Endika ke te plaze publikasyon de {name}",
|
||||||
"interaction_modal.title.follow": "Sige a {name}",
|
"interaction_modal.title.follow": "Sige a {name}",
|
||||||
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
|
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
|
||||||
|
@ -478,6 +479,7 @@
|
||||||
"onboarding.actions.go_to_explore": "Va a los trendes",
|
"onboarding.actions.go_to_explore": "Va a los trendes",
|
||||||
"onboarding.actions.go_to_home": "Va a tu linya prinsipala",
|
"onboarding.actions.go_to_home": "Va a tu linya prinsipala",
|
||||||
"onboarding.compose.template": "Ke haber, #Mastodon?",
|
"onboarding.compose.template": "Ke haber, #Mastodon?",
|
||||||
|
"onboarding.follows.empty": "Malorozamente, no se pueden amostrar rezultados en este momento. Puedes aprovar uzar la bushkeda o navigar por la pajina de eksplorasyon para topar personas a las que segir, o aprovarlo de muevo mas tadre.",
|
||||||
"onboarding.follows.title": "Personaliza tu linya prinsipala",
|
"onboarding.follows.title": "Personaliza tu linya prinsipala",
|
||||||
"onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
|
"onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
|
||||||
"onboarding.profile.display_name": "Nombre amostrado",
|
"onboarding.profile.display_name": "Nombre amostrado",
|
||||||
|
@ -497,7 +499,9 @@
|
||||||
"onboarding.start.title": "Lo logrates!",
|
"onboarding.start.title": "Lo logrates!",
|
||||||
"onboarding.steps.follow_people.body": "El buto de Mastodon es segir a djente interesante.",
|
"onboarding.steps.follow_people.body": "El buto de Mastodon es segir a djente interesante.",
|
||||||
"onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala",
|
"onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala",
|
||||||
|
"onboarding.steps.publish_status.body": "Puedes introdusirte al mundo con teksto, fotos, videos o anketas {emoji}",
|
||||||
"onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon",
|
"onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon",
|
||||||
|
"onboarding.steps.setup_profile.body": "Kompleta tu profil para aumentar tus enteraksyones.",
|
||||||
"onboarding.steps.setup_profile.title": "Personaliza tu profil",
|
"onboarding.steps.setup_profile.title": "Personaliza tu profil",
|
||||||
"onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon",
|
"onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon",
|
||||||
"onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
|
"onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
"account.featured_tags.last_status_never": "Sem publicações",
|
"account.featured_tags.last_status_never": "Sem publicações",
|
||||||
"account.featured_tags.title": "Hashtags em destaque de {name}",
|
"account.featured_tags.title": "Hashtags em destaque de {name}",
|
||||||
"account.follow": "Seguir",
|
"account.follow": "Seguir",
|
||||||
|
"account.follow_back": "Seguir de volta",
|
||||||
"account.followers": "Seguidores",
|
"account.followers": "Seguidores",
|
||||||
"account.followers.empty": "Nada aqui.",
|
"account.followers.empty": "Nada aqui.",
|
||||||
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
|
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
"account.mute_notifications_short": "Silenciar notificações",
|
"account.mute_notifications_short": "Silenciar notificações",
|
||||||
"account.mute_short": "Silenciar",
|
"account.mute_short": "Silenciar",
|
||||||
"account.muted": "Silenciado",
|
"account.muted": "Silenciado",
|
||||||
|
"account.mutual": "Mútuo",
|
||||||
"account.no_bio": "Nenhuma descrição fornecida.",
|
"account.no_bio": "Nenhuma descrição fornecida.",
|
||||||
"account.open_original_page": "Abrir a página original",
|
"account.open_original_page": "Abrir a página original",
|
||||||
"account.posts": "Toots",
|
"account.posts": "Toots",
|
||||||
|
|
|
@ -314,7 +314,7 @@
|
||||||
"home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:",
|
"home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:",
|
||||||
"home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon",
|
"home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon",
|
||||||
"home.hide_announcements": "ซ่อนประกาศ",
|
"home.hide_announcements": "ซ่อนประกาศ",
|
||||||
"home.pending_critical_update.body": "โปรดอัปเดตเซิร์ฟเวอร์ Mastodon ของคุณโดยเร็วที่สุดเท่าที่จะทำได้!",
|
"home.pending_critical_update.body": "โปรดอัปเดตเซิร์ฟเวอร์ Mastodon ของคุณโดยเร็วที่สุดเท่าที่จะเป็นไปได้!",
|
||||||
"home.pending_critical_update.link": "ดูการอัปเดต",
|
"home.pending_critical_update.link": "ดูการอัปเดต",
|
||||||
"home.pending_critical_update.title": "มีการอัปเดตความปลอดภัยสำคัญพร้อมใช้งาน!",
|
"home.pending_critical_update.title": "มีการอัปเดตความปลอดภัยสำคัญพร้อมใช้งาน!",
|
||||||
"home.show_announcements": "แสดงประกาศ",
|
"home.show_announcements": "แสดงประกาศ",
|
||||||
|
|
|
@ -191,6 +191,18 @@ class UserMailer < Devise::Mailer
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def failed_2fa(user, remote_ip, user_agent, timestamp)
|
||||||
|
@resource = user
|
||||||
|
@remote_ip = remote_ip
|
||||||
|
@user_agent = user_agent
|
||||||
|
@detection = Browser.new(user_agent)
|
||||||
|
@timestamp = timestamp.to_time.utc
|
||||||
|
|
||||||
|
I18n.with_locale(locale) do
|
||||||
|
mail subject: default_i18n_subject
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def default_devise_subject
|
def default_devise_subject
|
||||||
|
|
|
@ -130,6 +130,7 @@ class Account < ApplicationRecord
|
||||||
scope :bots, -> { where(actor_type: %w(Application Service)) }
|
scope :bots, -> { where(actor_type: %w(Application Service)) }
|
||||||
scope :groups, -> { where(actor_type: 'Group') }
|
scope :groups, -> { where(actor_type: 'Group') }
|
||||||
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
|
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
|
||||||
|
scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) }
|
||||||
scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
|
scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
|
||||||
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
|
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
|
||||||
scope :without_unapproved, -> { left_outer_joins(:user).merge(User.approved.confirmed).or(remote) }
|
scope :without_unapproved, -> { left_outer_joins(:user).merge(User.approved.confirmed).or(remote) }
|
||||||
|
|
|
@ -29,7 +29,7 @@ class AccountSuggestions
|
||||||
# a complicated query on this end.
|
# a complicated query on this end.
|
||||||
|
|
||||||
account_ids = account_ids_with_sources[offset, limit]
|
account_ids = account_ids_with_sources[offset, limit]
|
||||||
accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat).index_by(&:id)
|
accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat, :user).index_by(&:id)
|
||||||
|
|
||||||
account_ids.filter_map do |(account_id, source)|
|
account_ids.filter_map do |(account_id, source)|
|
||||||
next unless accounts_map.key?(account_id)
|
next unless accounts_map.key?(account_id)
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Report < ApplicationRecord
|
||||||
|
|
||||||
scope :unresolved, -> { where(action_taken_at: nil) }
|
scope :unresolved, -> { where(action_taken_at: nil) }
|
||||||
scope :resolved, -> { where.not(action_taken_at: nil) }
|
scope :resolved, -> { where.not(action_taken_at: nil) }
|
||||||
scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with({ user: [:invite_request, :invite] })) }
|
scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with([:account_stat, { user: [:invite_request, :invite, :ips] }])) }
|
||||||
|
|
||||||
# A report is considered local if the reporter is local
|
# A report is considered local if the reporter is local
|
||||||
delegate :local?, to: :account
|
delegate :local?, to: :account
|
||||||
|
|
|
@ -41,6 +41,8 @@ class Tag < ApplicationRecord
|
||||||
HASHTAG_NAME_RE = /\A(#{HASHTAG_NAME_PAT})\z/i
|
HASHTAG_NAME_RE = /\A(#{HASHTAG_NAME_PAT})\z/i
|
||||||
HASHTAG_INVALID_CHARS_RE = /[^[:alnum:]\u0E47-\u0E4E#{HASHTAG_SEPARATORS}]/
|
HASHTAG_INVALID_CHARS_RE = /[^[:alnum:]\u0E47-\u0E4E#{HASHTAG_SEPARATORS}]/
|
||||||
|
|
||||||
|
RECENT_STATUS_LIMIT = 1000
|
||||||
|
|
||||||
validates :name, presence: true, format: { with: HASHTAG_NAME_RE }
|
validates :name, presence: true, format: { with: HASHTAG_NAME_RE }
|
||||||
validates :display_name, format: { with: HASHTAG_NAME_RE }
|
validates :display_name, format: { with: HASHTAG_NAME_RE }
|
||||||
validate :validate_name_change, if: -> { !new_record? && name_changed? }
|
validate :validate_name_change, if: -> { !new_record? && name_changed? }
|
||||||
|
@ -55,7 +57,7 @@ class Tag < ApplicationRecord
|
||||||
scope :not_trendable, -> { where(trendable: false) }
|
scope :not_trendable, -> { where(trendable: false) }
|
||||||
scope :recently_used, lambda { |account|
|
scope :recently_used, lambda { |account|
|
||||||
joins(:statuses)
|
joins(:statuses)
|
||||||
.where(statuses: { id: account.statuses.select(:id).limit(1000) })
|
.where(statuses: { id: account.statuses.select(:id).limit(RECENT_STATUS_LIMIT) })
|
||||||
.group(:id).order(Arel.sql('count(*) desc'))
|
.group(:id).order(Arel.sql('count(*) desc'))
|
||||||
}
|
}
|
||||||
scope :matches_name, ->(term) { where(arel_table[:name].lower.matches(arel_table.lower("#{sanitize_sql_like(Tag.normalize(term))}%"), nil, true)) } # Search with case-sensitive to use B-tree index
|
scope :matches_name, ->(term) { where(arel_table[:name].lower.matches(arel_table.lower("#{sanitize_sql_like(Tag.normalize(term))}%"), nil, true)) } # Search with case-sensitive to use B-tree index
|
||||||
|
|
|
@ -44,7 +44,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
|
||||||
|
|
||||||
# If we fetched a status that already exists, then we need to treat the
|
# If we fetched a status that already exists, then we need to treat the
|
||||||
# activity as an update rather than create
|
# activity as an update rather than create
|
||||||
activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.where(uri: object_uri, account_id: actor.id).exists?
|
activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.exists?(uri: object_uri, account_id: actor.id)
|
||||||
|
|
||||||
with_redis do |redis|
|
with_redis do |redis|
|
||||||
discoveries = redis.incr("status_discovery_per_request:#{@request_id}")
|
discoveries = redis.incr("status_discovery_per_request:#{@request_id}")
|
||||||
|
|
|
@ -19,7 +19,7 @@ class VoteService < BaseService
|
||||||
already_voted = true
|
already_voted = true
|
||||||
|
|
||||||
with_redis_lock("vote:#{@poll.id}:#{@account.id}") do
|
with_redis_lock("vote:#{@poll.id}:#{@account.id}") do
|
||||||
already_voted = @poll.votes.where(account: @account).exists?
|
already_voted = @poll.votes.exists?(account: @account)
|
||||||
|
|
||||||
ApplicationRecord.transaction do
|
ApplicationRecord.transaction do
|
||||||
@choices.each do |choice|
|
@choices.each do |choice|
|
||||||
|
|
|
@ -19,7 +19,7 @@ class ReactionValidator < ActiveModel::Validator
|
||||||
end
|
end
|
||||||
|
|
||||||
def new_reaction?(reaction)
|
def new_reaction?(reaction)
|
||||||
!reaction.announcement.announcement_reactions.where(name: reaction.name).exists?
|
!reaction.announcement.announcement_reactions.exists?(name: reaction.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
def limit_reached?(reaction)
|
def limit_reached?(reaction)
|
||||||
|
|
|
@ -35,7 +35,7 @@ class VoteValidator < ActiveModel::Validator
|
||||||
if vote.persisted?
|
if vote.persisted?
|
||||||
account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists?
|
account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists?
|
||||||
else
|
else
|
||||||
account_votes_on_same_poll(vote).where(choice: vote.choice).exists?
|
account_votes_on_same_poll(vote).exists?(choice: vote.choice)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
24
app/views/user_mailer/failed_2fa.html.haml
Normal file
24
app/views/user_mailer/failed_2fa.html.haml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
= content_for :heading do
|
||||||
|
= render 'application/mailer/heading', heading_title: t('user_mailer.failed_2fa.title'), heading_subtitle: t('user_mailer.failed_2fa.explanation'), heading_image_url: frontend_asset_url('images/mailer-new/heading/login.png')
|
||||||
|
%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||||
|
%tr
|
||||||
|
%td.email-body-padding-td
|
||||||
|
%table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
|
||||||
|
%tr
|
||||||
|
%td.email-inner-card-td.email-prose
|
||||||
|
%p= t 'user_mailer.failed_2fa.details'
|
||||||
|
%p
|
||||||
|
%strong #{t('sessions.ip')}:
|
||||||
|
= @remote_ip
|
||||||
|
%br/
|
||||||
|
%strong #{t('sessions.browser')}:
|
||||||
|
%span{ title: @user_agent }
|
||||||
|
= t 'sessions.description',
|
||||||
|
browser: t("sessions.browsers.#{@detection.id}", default: @detection.id.to_s),
|
||||||
|
platform: t("sessions.platforms.#{@detection.platform.id}", default: @detection.platform.id.to_s)
|
||||||
|
%br/
|
||||||
|
%strong #{t('sessions.date')}:
|
||||||
|
= l(@timestamp.in_time_zone(@resource.time_zone.presence), format: :with_time_zone)
|
||||||
|
= render 'application/mailer/button', text: t('settings.account_settings'), url: edit_user_registration_url
|
||||||
|
%p= t 'user_mailer.failed_2fa.further_actions_html',
|
||||||
|
action: link_to(t('user_mailer.suspicious_sign_in.change_password'), edit_user_registration_url)
|
15
app/views/user_mailer/failed_2fa.text.erb
Normal file
15
app/views/user_mailer/failed_2fa.text.erb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<%= t 'user_mailer.failed_2fa.title' %>
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
<%= t 'user_mailer.failed_2fa.explanation' %>
|
||||||
|
|
||||||
|
<%= t 'user_mailer.failed_2fa.details' %>
|
||||||
|
|
||||||
|
<%= t('sessions.ip') %>: <%= @remote_ip %>
|
||||||
|
<%= t('sessions.browser') %>: <%= t('sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: "#{@detection.id}"), platform: t("sessions.platforms.#{@detection.platform.id}", default: "#{@detection.platform.id}")) %>
|
||||||
|
<%= l(@timestamp.in_time_zone(@resource.time_zone.presence), format: :with_time_zone) %>
|
||||||
|
|
||||||
|
<%= t 'user_mailer.failed_2fa.further_actions_html', action: t('user_mailer.suspicious_sign_in.change_password') %>
|
||||||
|
|
||||||
|
=> <%= edit_user_registration_url %>
|
|
@ -909,6 +909,7 @@ ast:
|
||||||
users:
|
users:
|
||||||
follow_limit_reached: Nun pues siguir a más de %{limit} persones
|
follow_limit_reached: Nun pues siguir a más de %{limit} persones
|
||||||
invalid_otp_token: El códigu de l'autenticación en dos pasos nun ye válidu
|
invalid_otp_token: El códigu de l'autenticación en dos pasos nun ye válidu
|
||||||
|
rate_limited: Fixéronse milenta intentos d'autenticación. Volvi tentalo dempués.
|
||||||
seamless_external_login: Aniciesti la sesión pente un serviciu esternu, polo que la configuración de la contraseña ya de la direición de corréu electrónicu nun tán disponibles.
|
seamless_external_login: Aniciesti la sesión pente un serviciu esternu, polo que la configuración de la contraseña ya de la direición de corréu electrónicu nun tán disponibles.
|
||||||
signed_in_as: 'Aniciesti la sesión como:'
|
signed_in_as: 'Aniciesti la sesión como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,11 @@ bg:
|
||||||
extra: Вече е готово за теглене!
|
extra: Вече е готово за теглене!
|
||||||
subject: Вашият архив е готов за изтегляне
|
subject: Вашият архив е готов за изтегляне
|
||||||
title: Сваляне на архива
|
title: Сваляне на архива
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Ето подробности на опита за влизане:'
|
||||||
|
explanation: Някой се опита да влезе в акаунта ви, но предостави невалиден втори фактор за удостоверяване.
|
||||||
|
subject: Неуспешен втори фактор за удостоверяване
|
||||||
|
title: Провал на втория фактор за удостоверяване
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: промяна на паролата ви
|
change_password: промяна на паролата ви
|
||||||
details: 'Ето подробности при вход:'
|
details: 'Ето подробности при вход:'
|
||||||
|
@ -1843,6 +1848,7 @@ bg:
|
||||||
go_to_sso_account_settings: Отидете при настройките на акаунта на своя доставчик на идентичност
|
go_to_sso_account_settings: Отидете при настройките на акаунта на своя доставчик на идентичност
|
||||||
invalid_otp_token: Невалиден код
|
invalid_otp_token: Невалиден код
|
||||||
otp_lost_help_html: Ако загубите достъп до двете, то може да се свържете с %{email}
|
otp_lost_help_html: Ако загубите достъп до двете, то може да се свържете с %{email}
|
||||||
|
rate_limited: Премного опити за удостоверяване. Опитайте пак по-късно.
|
||||||
seamless_external_login: Влезли сте чрез външна услуга, така че настройките за парола и имейл не са налични.
|
seamless_external_login: Влезли сте чрез външна услуга, така че настройките за парола и имейл не са налични.
|
||||||
signed_in_as: 'Влезли като:'
|
signed_in_as: 'Влезли като:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -425,7 +425,7 @@ ca:
|
||||||
view: Veure el bloqueig del domini
|
view: Veure el bloqueig del domini
|
||||||
email_domain_blocks:
|
email_domain_blocks:
|
||||||
add_new: Afegir nou
|
add_new: Afegir nou
|
||||||
allow_registrations_with_approval: Registre permès amb validació
|
allow_registrations_with_approval: Permet els registres amb validació
|
||||||
attempts_over_week:
|
attempts_over_week:
|
||||||
one: "%{count} intent en la darrera setmana"
|
one: "%{count} intent en la darrera setmana"
|
||||||
other: "%{count} intents de registre en la darrera setmana"
|
other: "%{count} intents de registre en la darrera setmana"
|
||||||
|
@ -1046,6 +1046,7 @@ ca:
|
||||||
clicking_this_link: en clicar aquest enllaç
|
clicking_this_link: en clicar aquest enllaç
|
||||||
login_link: inici de sessió
|
login_link: inici de sessió
|
||||||
proceed_to_login_html: Ara pots passar a %{login_link}.
|
proceed_to_login_html: Ara pots passar a %{login_link}.
|
||||||
|
redirect_to_app_html: Se us hauria d'haver redirigit a l'app <strong>%{app_name}</strong>. Si això no ha passat, intenteu %{clicking_this_link} o torneu manualment a l'app.
|
||||||
registration_complete: La teva inscripció a %{domain} ja és completa.
|
registration_complete: La teva inscripció a %{domain} ja és completa.
|
||||||
welcome_title: Hola, %{name}!
|
welcome_title: Hola, %{name}!
|
||||||
wrong_email_hint: Si aquesta adreça de correu electrònic no és correcte, pots canviar-la en els ajustos del compte.
|
wrong_email_hint: Si aquesta adreça de correu electrònic no és correcte, pots canviar-la en els ajustos del compte.
|
||||||
|
@ -1109,6 +1110,7 @@ ca:
|
||||||
functional: El teu compte està completament operatiu.
|
functional: El teu compte està completament operatiu.
|
||||||
pending: La vostra sol·licitud està pendent de revisió pel nostre personal. Això pot trigar una mica. Rebreu un correu electrònic quan sigui aprovada.
|
pending: La vostra sol·licitud està pendent de revisió pel nostre personal. Això pot trigar una mica. Rebreu un correu electrònic quan sigui aprovada.
|
||||||
redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}.
|
redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}.
|
||||||
|
self_destruct: Com que %{domain} tanca, només tindreu accés limitat al vostre compte.
|
||||||
view_strikes: Veure accions del passat contra el teu compte
|
view_strikes: Veure accions del passat contra el teu compte
|
||||||
too_fast: Formulari enviat massa ràpid, torna a provar-ho.
|
too_fast: Formulari enviat massa ràpid, torna a provar-ho.
|
||||||
use_security_key: Usa clau de seguretat
|
use_security_key: Usa clau de seguretat
|
||||||
|
@ -1580,6 +1582,7 @@ ca:
|
||||||
over_total_limit: Has superat el límit de %{limit} tuts programats
|
over_total_limit: Has superat el límit de %{limit} tuts programats
|
||||||
too_soon: La data programada ha de ser futura
|
too_soon: La data programada ha de ser futura
|
||||||
self_destruct:
|
self_destruct:
|
||||||
|
lead_html: Lamentablement, <strong>%{domain}</strong> tanca de forma definitiva. Si hi teníeu un compte, no el podreu continuar utilitzant, però podeu demanar una còpia de les vostres dades.
|
||||||
title: Aquest servidor tancarà
|
title: Aquest servidor tancarà
|
||||||
sessions:
|
sessions:
|
||||||
activity: Última activitat
|
activity: Última activitat
|
||||||
|
@ -1784,9 +1787,15 @@ ca:
|
||||||
title: Apel·lació rebutjada
|
title: Apel·lació rebutjada
|
||||||
backup_ready:
|
backup_ready:
|
||||||
explanation: Heu demanat una còpia completa de les dades del vostre compte de Mastodon.
|
explanation: Heu demanat una còpia completa de les dades del vostre compte de Mastodon.
|
||||||
extra: Ja us ho podeu baixar
|
extra: Ja la podeu baixar
|
||||||
subject: L'arxiu està preparat per a descàrrega
|
subject: L'arxiu està preparat per a descàrrega
|
||||||
title: Recollida de l'arxiu
|
title: Recollida de l'arxiu
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Aquests són els detalls de l''intent d''accés:'
|
||||||
|
explanation: Algú ha intentat accedir al vostre compte però no ha proporcionat un factor de doble autenticació correcte.
|
||||||
|
further_actions_html: Si no heu estat vosaltres, us recomanem que %{action} immediatament perquè pot estar compromès.
|
||||||
|
subject: Ha fallat el factor de doble autenticació
|
||||||
|
title: Ha fallat l'autenticació de doble factor
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: canvia la teva contrasenya
|
change_password: canvia la teva contrasenya
|
||||||
details: 'Aquest són els detalls de l''inici de sessió:'
|
details: 'Aquest són els detalls de l''inici de sessió:'
|
||||||
|
@ -1840,6 +1849,7 @@ ca:
|
||||||
go_to_sso_account_settings: Ves a la configuració del compte del teu proveïdor d'identitat
|
go_to_sso_account_settings: Ves a la configuració del compte del teu proveïdor d'identitat
|
||||||
invalid_otp_token: El codi de dos factors no és correcte
|
invalid_otp_token: El codi de dos factors no és correcte
|
||||||
otp_lost_help_html: Si has perdut l'accés a tots dos pots contactar per %{email}
|
otp_lost_help_html: Si has perdut l'accés a tots dos pots contactar per %{email}
|
||||||
|
rate_limited: Excessius intents d'autenticació, torneu-hi més tard.
|
||||||
seamless_external_login: Has iniciat sessió via un servei extern per tant els ajustos de contrasenya i correu electrònic no estan disponibles.
|
seamless_external_login: Has iniciat sessió via un servei extern per tant els ajustos de contrasenya i correu electrònic no estan disponibles.
|
||||||
signed_in_as: 'Sessió iniciada com a:'
|
signed_in_as: 'Sessió iniciada com a:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1843,6 +1843,7 @@ da:
|
||||||
go_to_sso_account_settings: Gå til identitetsudbyderens kontoindstillinger
|
go_to_sso_account_settings: Gå til identitetsudbyderens kontoindstillinger
|
||||||
invalid_otp_token: Ugyldig tofaktorkode
|
invalid_otp_token: Ugyldig tofaktorkode
|
||||||
otp_lost_help_html: Har du mistet adgang til begge, kan du kontakte %{email}
|
otp_lost_help_html: Har du mistet adgang til begge, kan du kontakte %{email}
|
||||||
|
rate_limited: For mange godkendelsesforsøg. Prøv igen senere.
|
||||||
seamless_external_login: Du er logget ind via en ekstern tjeneste, så adgangskode- og e-mailindstillinger er utilgængelige.
|
seamless_external_login: Du er logget ind via en ekstern tjeneste, så adgangskode- og e-mailindstillinger er utilgængelige.
|
||||||
signed_in_as: 'Logget ind som:'
|
signed_in_as: 'Logget ind som:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,8 +1790,14 @@ de:
|
||||||
extra: Sie ist jetzt zum Herunterladen bereit!
|
extra: Sie ist jetzt zum Herunterladen bereit!
|
||||||
subject: Dein persönliches Archiv kann heruntergeladen werden
|
subject: Dein persönliches Archiv kann heruntergeladen werden
|
||||||
title: Archiv-Download
|
title: Archiv-Download
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Details zum Anmeldeversuch:'
|
||||||
|
explanation: Jemand hat versucht, sich bei deinem Konto anzumelden, aber die Zwei-Faktor-Authentisierung schlug fehl.
|
||||||
|
further_actions_html: Solltest du das nicht gewesen sein, empfehlen wir dir, sofort %{action}, da dein Konto möglicherweise kompromittiert ist.
|
||||||
|
subject: Zwei-Faktor-Authentisierung fehlgeschlagen
|
||||||
|
title: Zwei-Faktor-Authentisierung fehlgeschlagen
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: dein Passwort ändern
|
change_password: dein Passwort zu ändern
|
||||||
details: 'Hier sind die Details zu den Anmeldeversuchen:'
|
details: 'Hier sind die Details zu den Anmeldeversuchen:'
|
||||||
explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt.
|
explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt.
|
||||||
further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern.
|
further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern.
|
||||||
|
@ -1843,6 +1849,7 @@ de:
|
||||||
go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen
|
go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen
|
||||||
invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA)
|
invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA)
|
||||||
otp_lost_help_html: Wenn du beides nicht mehr weißt, melde dich bitte bei uns unter der E-Mail-Adresse %{email}
|
otp_lost_help_html: Wenn du beides nicht mehr weißt, melde dich bitte bei uns unter der E-Mail-Adresse %{email}
|
||||||
|
rate_limited: Zu viele Authentisierungsversuche. Bitte versuche es später noch einmal.
|
||||||
seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar.
|
seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar.
|
||||||
signed_in_as: 'Angemeldet als:'
|
signed_in_as: 'Angemeldet als:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -49,19 +49,19 @@ ca:
|
||||||
subject: 'Mastodon: Instruccions per a reiniciar contrasenya'
|
subject: 'Mastodon: Instruccions per a reiniciar contrasenya'
|
||||||
title: Contrasenya restablerta
|
title: Contrasenya restablerta
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
explanation: Només es pot accedir amb compte de correu i contrasenya.
|
explanation: Ara es pot accedir amb només compte de correu i contrasenya.
|
||||||
subject: 'Mastodon: Autenticació de doble factor desactivada'
|
subject: 'Mastodon: Autenticació de doble factor desactivada'
|
||||||
subtitle: S'ha deshabilitat l'autenticació de doble factor al vostre compte.
|
subtitle: S'ha deshabilitat l'autenticació de doble factor al vostre compte.
|
||||||
title: A2F desactivada
|
title: A2F desactivada
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
explanation: Per accedir fa falta un token generat per l'aplicació TOTP aparellada.
|
explanation: Per accedir cal un token generat per l'aplicació TOTP aparellada.
|
||||||
subject: 'Mastodon: Autenticació de doble factor activada'
|
subject: 'Mastodon: Autenticació de doble factor activada'
|
||||||
subtitle: S'ha habilitat l'autenticació de doble factor al vostre compte.
|
subtitle: S'ha habilitat l'autenticació de doble factor al vostre compte.
|
||||||
title: A2F activada
|
title: A2F activada
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: Els codis de recuperació anteriors ja no són vàlids i se n'han generat de nous.
|
explanation: Els codis de recuperació anteriors ja no són vàlids i se n'han generat de nous.
|
||||||
subject: 'Mastodon: codis de recuperació de doble factor regenerats'
|
subject: 'Mastodon: codis de recuperació de doble factor regenerats'
|
||||||
subtitle: S'han invalidat els codis de recuperació anteriors i se n'ha generat de nous.
|
subtitle: S'han invalidat els codis de recuperació anteriors i se n'han generat de nous.
|
||||||
title: Codis de recuperació A2F canviats
|
title: Codis de recuperació A2F canviats
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: Instruccions per a desblocar'
|
subject: 'Mastodon: Instruccions per a desblocar'
|
||||||
|
@ -76,7 +76,7 @@ ca:
|
||||||
title: Una de les teves claus de seguretat ha estat esborrada
|
title: Una de les teves claus de seguretat ha estat esborrada
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
explanation: S'ha deshabilitat l'autenticació amb claus de seguretat al vostre compte.
|
explanation: S'ha deshabilitat l'autenticació amb claus de seguretat al vostre compte.
|
||||||
extra: Ara només podeu accedir amb el token generat amb l'aplicació TOTP aparellada.
|
extra: Ara es pot accedir amb només el token generat amb l'aplicació TOTP aparellada.
|
||||||
subject: 'Mastodon: S''ha desactivat l''autenticació amb claus de seguretat'
|
subject: 'Mastodon: S''ha desactivat l''autenticació amb claus de seguretat'
|
||||||
title: Claus de seguretat desactivades
|
title: Claus de seguretat desactivades
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
|
|
@ -47,19 +47,19 @@ fi:
|
||||||
subject: 'Mastodon: ohjeet salasanan vaihtoon'
|
subject: 'Mastodon: ohjeet salasanan vaihtoon'
|
||||||
title: Salasanan vaihto
|
title: Salasanan vaihto
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
explanation: Olet nyt mahdollistanut sisäänkirjautumisen pelkästään sähköpostiosoitteella ja salasanalla.
|
explanation: Sisäänkirjautuminen on nyt mahdollista pelkällä sähköpostiosoitteella ja salasanalla.
|
||||||
subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä'
|
subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä'
|
||||||
subtitle: Kaksivaiheinen tunnistautuminen käyttäjätilillesi on poistettu käytöstä.
|
subtitle: Kaksivaiheinen todennus on poistettu käytöstä tililtäsi.
|
||||||
title: 2-vaiheinen todennus pois käytöstä
|
title: 2-vaiheinen todennus pois käytöstä
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
explanation: Sisäänkirjautuminen edellyttää liitetyn TOTP-sovelluksen luomaa aikarajattua kertatunnuslukua.
|
explanation: Sisäänkirjautuminen edellyttää liitetyn TOTP-sovelluksen luomaa aikarajattua kertatunnuslukua.
|
||||||
subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön'
|
subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön'
|
||||||
subtitle: Kaksivaiheinen kirjautuminen tilillesi on määritetty käyttöön.
|
subtitle: Kaksivaiheinen todennus on otettu käyttöön tilillesi.
|
||||||
title: 2-vaiheinen todennus käytössä
|
title: 2-vaiheinen todennus käytössä
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: Uudet palautuskoodit on nyt luotu ja vanhat on mitätöity.
|
explanation: Uudet palautuskoodit on nyt luotu ja vanhat on mitätöity.
|
||||||
subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen'
|
subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen'
|
||||||
subtitle: Aiemmat palautuskoodit on mitätöity, ja korvaavat uudet koodit on luotu.
|
subtitle: Aiemmat palautuskoodit on mitätöity ja tilalle on luotu uudet.
|
||||||
title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin
|
title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: lukituksen poistamisen ohjeet'
|
subject: 'Mastodon: lukituksen poistamisen ohjeet'
|
||||||
|
@ -73,13 +73,13 @@ fi:
|
||||||
subject: 'Mastodon: suojausavain poistettu'
|
subject: 'Mastodon: suojausavain poistettu'
|
||||||
title: Yksi suojausavaimistasi on poistettu
|
title: Yksi suojausavaimistasi on poistettu
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
explanation: Turva-avaimin kirjautuminen tilillesi on kytketty pois käytöstä.
|
explanation: Turva-avaimin kirjautuminen on poistettu käytöstä tililtäsi.
|
||||||
extra: Olet nyt mahdollistanut sisäänkirjautumisen käyttäjätilillesi pelkästään palveluun liitetyn TOTP-sovelluksen luomalla aikarajoitteisella kertatunnusluvulla.
|
extra: Sisäänkirjautuminen on nyt mahdollista pelkällä palveluun liitetyn TOTP-sovelluksen luomalla aikarajoitteisella kertatunnusluvulla.
|
||||||
subject: 'Mastodon: Todennus suojausavaimilla poistettu käytöstä'
|
subject: 'Mastodon: Todennus suojausavaimilla poistettu käytöstä'
|
||||||
title: Suojausavaimet poistettu käytöstä
|
title: Suojausavaimet poistettu käytöstä
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
explanation: Turva-avainkirjautuminen käyttäjätilillesi on otettu käyttöön.
|
explanation: Turva-avaimella kirjautuminen on otettu käyttöön tilillesi.
|
||||||
extra: Voit nyt kirjautua sisään käyttäen turva-avaintasi.
|
extra: Voit nyt kirjautua sisään turva-avaimellasi.
|
||||||
subject: 'Mastodon: Todennus suojausavaimella on otettu käyttöön'
|
subject: 'Mastodon: Todennus suojausavaimella on otettu käyttöön'
|
||||||
title: Suojausavaimet käytössä
|
title: Suojausavaimet käytössä
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -52,6 +52,7 @@ ie:
|
||||||
subtitle: 2-factor autentication por tui conto ha esset desactivisat.
|
subtitle: 2-factor autentication por tui conto ha esset desactivisat.
|
||||||
title: 2FA desvalidat
|
title: 2FA desvalidat
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: Un clave generat del acuplat TOTP-aplication nu va esser besonat por aperter session.
|
||||||
subject: 'Mastodon: 2-factor autentication activat'
|
subject: 'Mastodon: 2-factor autentication activat'
|
||||||
subtitle: 2-factor autentication ha esset activisat por tui conto.
|
subtitle: 2-factor autentication ha esset activisat por tui conto.
|
||||||
title: 2FA permisset
|
title: 2FA permisset
|
||||||
|
@ -73,6 +74,7 @@ ie:
|
||||||
title: Un ex tui claves de securitá ha esset deletet
|
title: Un ex tui claves de securitá ha esset deletet
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
explanation: Autentication per clave de securitá ha esset desactivisat por tui conto.
|
explanation: Autentication per clave de securitá ha esset desactivisat por tui conto.
|
||||||
|
extra: Aperter session es nu possibil solmen per li clave generat del acuplat TOTP-aplication.
|
||||||
subject: 'Mastodon: Autentication con claves de securitá desactivisat'
|
subject: 'Mastodon: Autentication con claves de securitá desactivisat'
|
||||||
title: Claves de securitá desactivisat
|
title: Claves de securitá desactivisat
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
|
|
@ -49,12 +49,12 @@ ja:
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
explanation: メールアドレスとパスワードのみでログイン可能になりました。
|
explanation: メールアドレスとパスワードのみでログイン可能になりました。
|
||||||
subject: 'Mastodon: 二要素認証が無効になりました'
|
subject: 'Mastodon: 二要素認証が無効になりました'
|
||||||
subtitle: 二要素認証が無効になっています。
|
subtitle: 今後、アカウントへのログインに二要素認証を要求しません。
|
||||||
title: 二要素認証が無効化されました
|
title: 二要素認証が無効化されました
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
explanation: ログインには設定済みのTOTPアプリが生成したトークンが必要です。
|
explanation: ログインには設定済みのTOTPアプリが生成したトークンが必要です。
|
||||||
subject: 'Mastodon: 二要素認証が有効になりました'
|
subject: 'Mastodon: 二要素認証が有効になりました'
|
||||||
subtitle: 二要素認証が有効になりました。
|
subtitle: 今後、アカウントへのログインに二要素認証が必要になります。
|
||||||
title: 二要素認証が有効化されました
|
title: 二要素認証が有効化されました
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: 以前のリカバリーコードが無効化され、新しいコードが生成されました。
|
explanation: 以前のリカバリーコードが無効化され、新しいコードが生成されました。
|
||||||
|
@ -73,7 +73,7 @@ ja:
|
||||||
subject: 'Mastodon: セキュリティキーが削除されました'
|
subject: 'Mastodon: セキュリティキーが削除されました'
|
||||||
title: セキュリティキーが削除されました
|
title: セキュリティキーが削除されました
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
explanation: セキュリティキー認証が無効になっています。
|
explanation: セキュリティキー認証が無効になりました。
|
||||||
extra: 設定済みのTOTPアプリが生成したトークンのみでログインできるようになりました。
|
extra: 設定済みのTOTPアプリが生成したトークンのみでログインできるようになりました。
|
||||||
subject: 'Mastodon: セキュリティキー認証が無効になりました'
|
subject: 'Mastodon: セキュリティキー認証が無効になりました'
|
||||||
title: セキュリティキーは無効になっています
|
title: セキュリティキーは無効になっています
|
||||||
|
|
|
@ -47,10 +47,14 @@ lad:
|
||||||
subject: 'Mastodon: Instruksyones para reinisyar kod'
|
subject: 'Mastodon: Instruksyones para reinisyar kod'
|
||||||
title: Reinisyar kod
|
title: Reinisyar kod
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
|
explanation: Agora puedes konektarte kon tu kuento uzando solo tu adreso de posta i kod.
|
||||||
subject: 'Mastodon: La autentifikasyon de dos pasos esta inkapasitada'
|
subject: 'Mastodon: La autentifikasyon de dos pasos esta inkapasitada'
|
||||||
|
subtitle: La autentifikasyon en dos pasos para tu kuento tiene sido inkapasitada.
|
||||||
title: Autentifikasyon 2FA inkapasitada
|
title: Autentifikasyon 2FA inkapasitada
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: Se rekierira un token djenerado por la aplikasyon TOTP konektada para entrar.
|
||||||
subject: 'Mastodon: La autentifikasyon de dos pasos esta kapasitada'
|
subject: 'Mastodon: La autentifikasyon de dos pasos esta kapasitada'
|
||||||
|
subtitle: La autentifikasyon de dos pasos para tu kuento tiene sido kapasitada.
|
||||||
title: Autentifikasyon 2FA aktivada
|
title: Autentifikasyon 2FA aktivada
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: Los kodiches de rekuperasyon previos tienen sido invalidados i se djeneraron kodiches muevos.
|
explanation: Los kodiches de rekuperasyon previos tienen sido invalidados i se djeneraron kodiches muevos.
|
||||||
|
@ -69,9 +73,13 @@ lad:
|
||||||
subject: 'Mastodon: Yave de sigurita supremida'
|
subject: 'Mastodon: Yave de sigurita supremida'
|
||||||
title: Una de tus yaves de sigurita tiene sido supremida
|
title: Una de tus yaves de sigurita tiene sido supremida
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
|
explanation: La autentifikasyon kon yaves de sigurita tiene sido inkapasitada para tu kuento.
|
||||||
|
extra: Agora el inisyo de sesyon solo es posivle utilizando el token djeenerado por la aplikasyon TOTP konektada.
|
||||||
subject: 'Mastodon: autentifikasyon kon yaves de sigurita inkapasitada'
|
subject: 'Mastodon: autentifikasyon kon yaves de sigurita inkapasitada'
|
||||||
title: Yaves de sigurita inkapasitadas
|
title: Yaves de sigurita inkapasitadas
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
explanation: La autentifikasyon kon yave de sigurita tiene sido kapasitada para tu kuento.
|
||||||
|
extra: Agora tu yave de sigurita puede ser utilizada para konektarte kon tu kuento.
|
||||||
subject: 'Mastodon: Autentifikasyon de yave de sigurita aktivada'
|
subject: 'Mastodon: Autentifikasyon de yave de sigurita aktivada'
|
||||||
title: Yaves de sigurita kapasitadas
|
title: Yaves de sigurita kapasitadas
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -47,14 +47,19 @@ nn:
|
||||||
subject: 'Mastodon: Instuksjonar for å endra passord'
|
subject: 'Mastodon: Instuksjonar for å endra passord'
|
||||||
title: Attstilling av passord
|
title: Attstilling av passord
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
|
explanation: Innlogging er nå mulig med kun e-postadresse og passord.
|
||||||
subject: 'Mastodon: To-faktor-autentisering deaktivert'
|
subject: 'Mastodon: To-faktor-autentisering deaktivert'
|
||||||
|
subtitle: To-faktor autentisering for din konto har blitt deaktivert.
|
||||||
title: 2FA deaktivert
|
title: 2FA deaktivert
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: En token generert av den sammenkoblede TOTP-appen vil være påkrevd for innlogging.
|
||||||
subject: 'Mastodon: To-faktor-autentisering aktivert'
|
subject: 'Mastodon: To-faktor-autentisering aktivert'
|
||||||
|
subtitle: Tofaktorautentisering er aktivert for din konto.
|
||||||
title: 2FA aktivert
|
title: 2FA aktivert
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: Dei førre gjenopprettingskodane er ugyldige og nye er genererte.
|
explanation: Dei førre gjenopprettingskodane er ugyldige og nye er genererte.
|
||||||
subject: 'Mastodon: To-faktor-gjenopprettingskodar har vorte genererte på nytt'
|
subject: 'Mastodon: To-faktor-gjenopprettingskodar har vorte genererte på nytt'
|
||||||
|
subtitle: De forrige gjenopprettingskodene er gjort ugyldige og nye er generert.
|
||||||
title: 2FA-gjenopprettingskodane er endra
|
title: 2FA-gjenopprettingskodane er endra
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: Instruksjonar for å opne kontoen igjen'
|
subject: 'Mastodon: Instruksjonar for å opne kontoen igjen'
|
||||||
|
@ -68,9 +73,13 @@ nn:
|
||||||
subject: 'Mastodon: Sikkerheitsnøkkel sletta'
|
subject: 'Mastodon: Sikkerheitsnøkkel sletta'
|
||||||
title: Ein av sikkerheitsnøklane dine har blitt sletta
|
title: Ein av sikkerheitsnøklane dine har blitt sletta
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
|
explanation: Autentisering med sikkerhetsnøkler er deaktivert for kontoen din.
|
||||||
|
extra: Innlogging er nå mulig med kun tilgangstoken generert av den sammenkoblede TOTP-appen.
|
||||||
subject: 'Mastodon: Autentisering med sikkerheitsnøklar vart skrudd av'
|
subject: 'Mastodon: Autentisering med sikkerheitsnøklar vart skrudd av'
|
||||||
title: Sikkerheitsnøklar deaktivert
|
title: Sikkerheitsnøklar deaktivert
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
explanation: Sikkerhetsnøkkelautentisering har blitt aktivert for kontoen din.
|
||||||
|
extra: Sikkerhetsnøkkelen din kan nå bli brukt for innlogging.
|
||||||
subject: 'Mastodon: Sikkerheitsnøkkelsautentisering vart skrudd på'
|
subject: 'Mastodon: Sikkerheitsnøkkelsautentisering vart skrudd på'
|
||||||
title: Sikkerheitsnøklar aktivert
|
title: Sikkerheitsnøklar aktivert
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -47,14 +47,19 @@
|
||||||
subject: 'Mastodon: Hvordan nullstille passord'
|
subject: 'Mastodon: Hvordan nullstille passord'
|
||||||
title: Nullstill passord
|
title: Nullstill passord
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
|
explanation: Innlogging er nå mulig med kun e-postadresse og passord.
|
||||||
subject: 'Mastodon: Tofaktorautentisering deaktivert'
|
subject: 'Mastodon: Tofaktorautentisering deaktivert'
|
||||||
|
subtitle: To-faktor autentisering for din konto har blitt deaktivert.
|
||||||
title: 2FA deaktivert
|
title: 2FA deaktivert
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: En token generert av den sammenkoblede TOTP-appen vil være påkrevd for innlogging.
|
||||||
subject: 'Mastodon: Tofaktorautentisering aktivert'
|
subject: 'Mastodon: Tofaktorautentisering aktivert'
|
||||||
|
subtitle: Tofaktorautentisering er aktivert for din konto.
|
||||||
title: 2FA aktivert
|
title: 2FA aktivert
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: De forrige gjenopprettingskodene er gjort ugyldige og nye er generert.
|
explanation: De forrige gjenopprettingskodene er gjort ugyldige og nye er generert.
|
||||||
subject: 'Mastodon: Tofaktor-gjenopprettingskoder har blitt generert på nytt'
|
subject: 'Mastodon: Tofaktor-gjenopprettingskoder har blitt generert på nytt'
|
||||||
|
subtitle: De forrige gjenopprettingskodene er gjort ugyldige og nye er generert.
|
||||||
title: 2FA-gjenopprettingskodene ble endret
|
title: 2FA-gjenopprettingskodene ble endret
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: Instruksjoner for å gjenåpne konto'
|
subject: 'Mastodon: Instruksjoner for å gjenåpne konto'
|
||||||
|
@ -68,9 +73,13 @@
|
||||||
subject: 'Mastodon: Sikkerhetsnøkkel slettet'
|
subject: 'Mastodon: Sikkerhetsnøkkel slettet'
|
||||||
title: En av sikkerhetsnøklene dine har blitt slettet
|
title: En av sikkerhetsnøklene dine har blitt slettet
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
|
explanation: Autentisering med sikkerhetsnøkler er deaktivert for kontoen din.
|
||||||
|
extra: Innlogging er nå mulig med kun tilgangstoken generert av den sammenkoblede TOTP-appen.
|
||||||
subject: 'Mastodon: Autentisering med sikkerhetsnøkler ble skrudd av'
|
subject: 'Mastodon: Autentisering med sikkerhetsnøkler ble skrudd av'
|
||||||
title: Sikkerhetsnøkler deaktivert
|
title: Sikkerhetsnøkler deaktivert
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
explanation: Sikkerhetsnøkkelautentisering har blitt aktivert for kontoen din.
|
||||||
|
extra: Sikkerhetsnøkkelen din kan nå bli brukt for innlogging.
|
||||||
subject: 'Mastodon: Sikkerhetsnøkkelsautentisering ble skrudd på'
|
subject: 'Mastodon: Sikkerhetsnøkkelsautentisering ble skrudd på'
|
||||||
title: Sikkerhetsnøkler aktivert
|
title: Sikkerhetsnøkler aktivert
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -47,14 +47,19 @@ sl:
|
||||||
subject: 'Mastodon: navodila za ponastavitev gesla'
|
subject: 'Mastodon: navodila za ponastavitev gesla'
|
||||||
title: Ponastavitev gesla
|
title: Ponastavitev gesla
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
|
explanation: Prijava je sedaj mogoče le z uporabo e-poštnega naslova in gesla.
|
||||||
subject: 'Mastodon: dvojno preverjanje pristnosti je onemogočeno'
|
subject: 'Mastodon: dvojno preverjanje pristnosti je onemogočeno'
|
||||||
|
subtitle: Dvo-faktorsko preverjanje pristnosti za vaš račun je bilo onemogočeno.
|
||||||
title: 2FA onemogočeno
|
title: 2FA onemogočeno
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: Za prijavo bo zahtevan žeton, ustvarjen s povezano aplikacijo TOTP.
|
||||||
subject: 'Mastodon: dvojno preverjanje pristnosti je omogočeno'
|
subject: 'Mastodon: dvojno preverjanje pristnosti je omogočeno'
|
||||||
|
subtitle: Dvo-faktorsko preverjanje pristnosti za vaš račun je bilo omogočeno.
|
||||||
title: 2FA omogočeno
|
title: 2FA omogočeno
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: Prejšnje obnovitvene kode so postale neveljavne in ustvarjene so bile nove.
|
explanation: Prejšnje obnovitvene kode so postale neveljavne in ustvarjene so bile nove.
|
||||||
subject: 'Mastodon: varnostne obnovitvene kode za dvojno preverjanje pristnosti so ponovno izdelane'
|
subject: 'Mastodon: varnostne obnovitvene kode za dvojno preverjanje pristnosti so ponovno izdelane'
|
||||||
|
subtitle: Prejšnje kode za obnovitev so bile razveljavljene, ustvarjene pa so bile nove.
|
||||||
title: obnovitvene kode 2FA spremenjene
|
title: obnovitvene kode 2FA spremenjene
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: navodila za odklepanje'
|
subject: 'Mastodon: navodila za odklepanje'
|
||||||
|
@ -68,9 +73,13 @@ sl:
|
||||||
subject: 'Mastodon: varnostna koda izbrisana'
|
subject: 'Mastodon: varnostna koda izbrisana'
|
||||||
title: Ena od vaših varnostnih kod je bila izbrisana
|
title: Ena od vaših varnostnih kod je bila izbrisana
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
|
explanation: Preverjanje pristnosti z varnostnimi ključi za vaš račun je bilo onemogočeno.
|
||||||
|
extra: Prijava je sedaj mogoče le z uporabo žetona, ustvarjenega s povezano aplikacijo TOTP.
|
||||||
subject: 'Mastodon: overjanje pristnosti z varnosnimi kodami je onemogočeno'
|
subject: 'Mastodon: overjanje pristnosti z varnosnimi kodami je onemogočeno'
|
||||||
title: Varnostne kode onemogočene
|
title: Varnostne kode onemogočene
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
explanation: Preverjanje pristnosti z varnostnimi ključi za vaš račun je bilo omogočeno.
|
||||||
|
extra: Za prijavo sedaj lahko uporabite svoj varnostni ključ.
|
||||||
subject: 'Mastodon: preverjanje pristnosti z varnostno kodo je omogočeno'
|
subject: 'Mastodon: preverjanje pristnosti z varnostno kodo je omogočeno'
|
||||||
title: Varnostne kode omogočene
|
title: Varnostne kode omogočene
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -47,14 +47,19 @@ th:
|
||||||
subject: 'Mastodon: คำแนะนำการตั้งรหัสผ่านใหม่'
|
subject: 'Mastodon: คำแนะนำการตั้งรหัสผ่านใหม่'
|
||||||
title: การตั้งรหัสผ่านใหม่
|
title: การตั้งรหัสผ่านใหม่
|
||||||
two_factor_disabled:
|
two_factor_disabled:
|
||||||
|
explanation: ตอนนี้สามารถเข้าสู่ระบบได้โดยใช้เพียงที่อยู่อีเมลและรหัสผ่านเท่านั้น
|
||||||
subject: 'Mastodon: ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว'
|
subject: 'Mastodon: ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว'
|
||||||
|
subtitle: ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำหรับบัญชีของคุณแล้ว
|
||||||
title: ปิดใช้งาน 2FA แล้ว
|
title: ปิดใช้งาน 2FA แล้ว
|
||||||
two_factor_enabled:
|
two_factor_enabled:
|
||||||
|
explanation: จะต้องใช้โทเคนที่สร้างโดยแอป TOTP ที่จับคู่สำหรับการเข้าสู่ระบบ
|
||||||
subject: 'Mastodon: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว'
|
subject: 'Mastodon: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว'
|
||||||
|
subtitle: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำหรับบัญชีของคุณแล้ว
|
||||||
title: เปิดใช้งาน 2FA แล้ว
|
title: เปิดใช้งาน 2FA แล้ว
|
||||||
two_factor_recovery_codes_changed:
|
two_factor_recovery_codes_changed:
|
||||||
explanation: ยกเลิกรหัสกู้คืนก่อนหน้านี้และสร้างรหัสใหม่แล้ว
|
explanation: ยกเลิกรหัสกู้คืนก่อนหน้านี้และสร้างรหัสกู้คืนใหม่แล้ว
|
||||||
subject: 'Mastodon: สร้างรหัสกู้คืนสองปัจจัยใหม่แล้ว'
|
subject: 'Mastodon: สร้างรหัสกู้คืนสองปัจจัยใหม่แล้ว'
|
||||||
|
subtitle: ยกเลิกรหัสกู้คืนก่อนหน้านี้และสร้างรหัสกู้คืนใหม่แล้ว
|
||||||
title: เปลี่ยนรหัสกู้คืน 2FA แล้ว
|
title: เปลี่ยนรหัสกู้คืน 2FA แล้ว
|
||||||
unlock_instructions:
|
unlock_instructions:
|
||||||
subject: 'Mastodon: คำแนะนำการปลดล็อค'
|
subject: 'Mastodon: คำแนะนำการปลดล็อค'
|
||||||
|
@ -68,9 +73,13 @@ th:
|
||||||
subject: 'Mastodon: ลบกุญแจความปลอดภัยแล้ว'
|
subject: 'Mastodon: ลบกุญแจความปลอดภัยแล้ว'
|
||||||
title: ลบหนึ่งในกุญแจความปลอดภัยของคุณแล้ว
|
title: ลบหนึ่งในกุญแจความปลอดภัยของคุณแล้ว
|
||||||
webauthn_disabled:
|
webauthn_disabled:
|
||||||
|
explanation: ปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยสำหรับบัญชีของคุณแล้ว
|
||||||
|
extra: ตอนนี้สามารถเข้าสู่ระบบได้โดยใช้เพียงโทเคนที่สร้างโดยแอป TOTP ที่จับคู่เท่านั้น
|
||||||
subject: 'Mastodon: ปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยแล้ว'
|
subject: 'Mastodon: ปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยแล้ว'
|
||||||
title: ปิดใช้งานกุญแจความปลอดภัยแล้ว
|
title: ปิดใช้งานกุญแจความปลอดภัยแล้ว
|
||||||
webauthn_enabled:
|
webauthn_enabled:
|
||||||
|
explanation: เปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยสำหรับบัญชีของคุณแล้ว
|
||||||
|
extra: ตอนนี้สามารถใช้กุญแจความปลอดภัยของคุณสำหรับการเข้าสู่ระบบ
|
||||||
subject: 'Mastodon: เปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยแล้ว'
|
subject: 'Mastodon: เปิดใช้งานการรับรองความถูกต้องด้วยกุญแจความปลอดภัยแล้ว'
|
||||||
title: เปิดใช้งานกุญแจความปลอดภัยแล้ว
|
title: เปิดใช้งานกุญแจความปลอดภัยแล้ว
|
||||||
omniauth_callbacks:
|
omniauth_callbacks:
|
||||||
|
|
|
@ -17,6 +17,7 @@ ia:
|
||||||
index:
|
index:
|
||||||
application: Application
|
application: Application
|
||||||
delete: Deler
|
delete: Deler
|
||||||
|
empty: Tu non ha applicationes.
|
||||||
name: Nomine
|
name: Nomine
|
||||||
new: Nove application
|
new: Nove application
|
||||||
show: Monstrar
|
show: Monstrar
|
||||||
|
@ -47,6 +48,7 @@ ia:
|
||||||
title:
|
title:
|
||||||
accounts: Contos
|
accounts: Contos
|
||||||
admin/accounts: Gestion de contos
|
admin/accounts: Gestion de contos
|
||||||
|
all: Accesso plen a tu conto de Mastodon
|
||||||
bookmarks: Marcapaginas
|
bookmarks: Marcapaginas
|
||||||
conversations: Conversationes
|
conversations: Conversationes
|
||||||
favourites: Favoritos
|
favourites: Favoritos
|
||||||
|
@ -61,8 +63,15 @@ ia:
|
||||||
applications: Applicationes
|
applications: Applicationes
|
||||||
oauth2_provider: Fornitor OAuth2
|
oauth2_provider: Fornitor OAuth2
|
||||||
scopes:
|
scopes:
|
||||||
|
read:favourites: vider tu favoritos
|
||||||
|
read:lists: vider tu listas
|
||||||
|
read:notifications: vider tu notificationes
|
||||||
|
read:statuses: vider tote le messages
|
||||||
write:accounts: modificar tu profilo
|
write:accounts: modificar tu profilo
|
||||||
|
write:blocks: blocar contos e dominios
|
||||||
write:favourites: messages favorite
|
write:favourites: messages favorite
|
||||||
|
write:filters: crear filtros
|
||||||
write:lists: crear listas
|
write:lists: crear listas
|
||||||
|
write:media: incargar files de medios
|
||||||
write:notifications: rader tu notificationes
|
write:notifications: rader tu notificationes
|
||||||
write:statuses: publicar messages
|
write:statuses: publicar messages
|
||||||
|
|
|
@ -2025,6 +2025,12 @@ en:
|
||||||
extra: It's now ready for download!
|
extra: It's now ready for download!
|
||||||
subject: Your archive is ready for download
|
subject: Your archive is ready for download
|
||||||
title: Archive takeout
|
title: Archive takeout
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Here are details of the sign-in attempt:'
|
||||||
|
explanation: Someone has tried to sign in to your account but provided an invalid second authentication factor.
|
||||||
|
further_actions_html: If this wasn't you, we recommend that you %{action} immediately as it may be compromised.
|
||||||
|
subject: Second factor authentication failure
|
||||||
|
title: Failed second factor authentication
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: change your password
|
change_password: change your password
|
||||||
details: 'Here are details of the sign-in:'
|
details: 'Here are details of the sign-in:'
|
||||||
|
|
|
@ -309,6 +309,7 @@ eo:
|
||||||
unpublish: Malpublikigi
|
unpublish: Malpublikigi
|
||||||
unpublished_msg: Anonco sukcese malpublikigita!
|
unpublished_msg: Anonco sukcese malpublikigita!
|
||||||
updated_msg: Anonco sukcese ĝisdatigis!
|
updated_msg: Anonco sukcese ĝisdatigis!
|
||||||
|
critical_update_pending: Kritika ĝisdatigo pritraktotas
|
||||||
custom_emojis:
|
custom_emojis:
|
||||||
assign_category: Atribui kategorion
|
assign_category: Atribui kategorion
|
||||||
by_domain: Domajno
|
by_domain: Domajno
|
||||||
|
@ -424,6 +425,7 @@ eo:
|
||||||
view: Vidi domajna blokado
|
view: Vidi domajna blokado
|
||||||
email_domain_blocks:
|
email_domain_blocks:
|
||||||
add_new: Aldoni novan
|
add_new: Aldoni novan
|
||||||
|
allow_registrations_with_approval: Permesi aliĝojn kun aprobo
|
||||||
attempts_over_week:
|
attempts_over_week:
|
||||||
one: "%{count} provo ekde lasta semajno"
|
one: "%{count} provo ekde lasta semajno"
|
||||||
other: "%{count} registroprovoj ekde lasta semajno"
|
other: "%{count} registroprovoj ekde lasta semajno"
|
||||||
|
@ -770,11 +772,21 @@ eo:
|
||||||
approved: Bezonas aprobi por aliĝi
|
approved: Bezonas aprobi por aliĝi
|
||||||
none: Neniu povas aliĝi
|
none: Neniu povas aliĝi
|
||||||
open: Iu povas aliĝi
|
open: Iu povas aliĝi
|
||||||
|
security:
|
||||||
|
authorized_fetch: Devigi aŭtentigon de frataraj serviloj
|
||||||
|
title: Agordoj de la servilo
|
||||||
site_uploads:
|
site_uploads:
|
||||||
delete: Forigi elŝutitan dosieron
|
delete: Forigi elŝutitan dosieron
|
||||||
destroyed_msg: Reteja alŝuto sukcese forigita!
|
destroyed_msg: Reteja alŝuto sukcese forigita!
|
||||||
software_updates:
|
software_updates:
|
||||||
|
critical_update: Kritika — bonvolu ĝisdatiĝi rapide
|
||||||
documentation_link: Lerni pli
|
documentation_link: Lerni pli
|
||||||
|
release_notes: Eldono-notoj
|
||||||
|
title: Disponeblaj ĝisdatigoj
|
||||||
|
type: Tipo
|
||||||
|
types:
|
||||||
|
major: Ĉefa eldono
|
||||||
|
minor: Neĉefa eldono
|
||||||
statuses:
|
statuses:
|
||||||
account: Skribanto
|
account: Skribanto
|
||||||
application: Aplikaĵo
|
application: Aplikaĵo
|
||||||
|
@ -1259,6 +1271,9 @@ eo:
|
||||||
overwrite: Anstataŭigi
|
overwrite: Anstataŭigi
|
||||||
overwrite_long: Anstataŭigi la nunajn registrojn per la novaj
|
overwrite_long: Anstataŭigi la nunajn registrojn per la novaj
|
||||||
preface: Vi povas importi datumojn, kiujn vi eksportis el alia servilo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
|
preface: Vi povas importi datumojn, kiujn vi eksportis el alia servilo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
|
||||||
|
states:
|
||||||
|
finished: Finita
|
||||||
|
unconfirmed: Nekonfirmita
|
||||||
success: Viaj datumoj estis sukcese alŝutitaj kaj estos traktitaj kiel planite
|
success: Viaj datumoj estis sukcese alŝutitaj kaj estos traktitaj kiel planite
|
||||||
titles:
|
titles:
|
||||||
following: Importado de sekvaj kontoj
|
following: Importado de sekvaj kontoj
|
||||||
|
@ -1528,6 +1543,7 @@ eo:
|
||||||
unknown_browser: Nekonata retumilo
|
unknown_browser: Nekonata retumilo
|
||||||
weibo: Weibo
|
weibo: Weibo
|
||||||
current_session: Nuna seanco
|
current_session: Nuna seanco
|
||||||
|
date: Dato
|
||||||
description: "%{browser} en %{platform}"
|
description: "%{browser} en %{platform}"
|
||||||
explanation: Ĉi tiuj estas la retumiloj nun ensalutintaj al via Mastodon-konto.
|
explanation: Ĉi tiuj estas la retumiloj nun ensalutintaj al via Mastodon-konto.
|
||||||
ip: IP
|
ip: IP
|
||||||
|
@ -1693,6 +1709,7 @@ eo:
|
||||||
webauthn: Sekurecaj ŝlosiloj
|
webauthn: Sekurecaj ŝlosiloj
|
||||||
user_mailer:
|
user_mailer:
|
||||||
appeal_approved:
|
appeal_approved:
|
||||||
|
action: Konto-agordoj
|
||||||
explanation: La apelacio de la admono kontra via konto je %{strike_date} pri sendodato %{appeal_date} aprobitas.
|
explanation: La apelacio de la admono kontra via konto je %{strike_date} pri sendodato %{appeal_date} aprobitas.
|
||||||
subject: Via apelacio de %{date} aprobitas
|
subject: Via apelacio de %{date} aprobitas
|
||||||
title: Apelacio estis aprobita
|
title: Apelacio estis aprobita
|
||||||
|
@ -1701,6 +1718,7 @@ eo:
|
||||||
subject: Via apelacio de %{date} estis malaprobita
|
subject: Via apelacio de %{date} estis malaprobita
|
||||||
title: Apelacio estis malaprobita
|
title: Apelacio estis malaprobita
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
extra: Estas nun preta por elŝuto!
|
||||||
subject: Via arkivo estas preta por elŝutado
|
subject: Via arkivo estas preta por elŝutado
|
||||||
title: Arkiva elŝuto
|
title: Arkiva elŝuto
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
|
@ -1756,6 +1774,7 @@ eo:
|
||||||
go_to_sso_account_settings: Iru al la agordoj de la konto de via identeca provizanto
|
go_to_sso_account_settings: Iru al la agordoj de la konto de via identeca provizanto
|
||||||
invalid_otp_token: Nevalida kodo de dufaktora aŭtentigo
|
invalid_otp_token: Nevalida kodo de dufaktora aŭtentigo
|
||||||
otp_lost_help_html: Se vi perdas aliron al ambaŭ, vi povas kontakti %{email}
|
otp_lost_help_html: Se vi perdas aliron al ambaŭ, vi povas kontakti %{email}
|
||||||
|
rate_limited: Estas tro multaj aŭtentigaj provoj, reprovu poste.
|
||||||
seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj.
|
seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj.
|
||||||
signed_in_as: 'Salutinta kiel:'
|
signed_in_as: 'Salutinta kiel:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,12 @@ es-AR:
|
||||||
extra: "¡Ya está lista para descargar!"
|
extra: "¡Ya está lista para descargar!"
|
||||||
subject: Tu archivo historial está listo para descargar
|
subject: Tu archivo historial está listo para descargar
|
||||||
title: Descargar archivo historial
|
title: Descargar archivo historial
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Estos son los detalles del intento de inicio de sesión:'
|
||||||
|
explanation: Alguien intentó iniciar sesión en tu cuenta pero proporcionó un segundo factor de autenticación no válido.
|
||||||
|
further_actions_html: Si vos no fuiste, te recomendamos que %{action} inmediatamente, ya que la seguridad de tu cuenta podría estar comprometida.
|
||||||
|
subject: Fallo de autenticación del segundo factor
|
||||||
|
title: Fallo en la autenticación del segundo factor
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: cambiés tu contraseña
|
change_password: cambiés tu contraseña
|
||||||
details: 'Acá están los detalles del inicio de sesión:'
|
details: 'Acá están los detalles del inicio de sesión:'
|
||||||
|
@ -1843,6 +1849,7 @@ es-AR:
|
||||||
go_to_sso_account_settings: Andá a la configuración de cuenta de tu proveedor de identidad
|
go_to_sso_account_settings: Andá a la configuración de cuenta de tu proveedor de identidad
|
||||||
invalid_otp_token: Código de dos factores no válido
|
invalid_otp_token: Código de dos factores no válido
|
||||||
otp_lost_help_html: Si perdiste al acceso a ambos, podés ponerte en contacto con %{email}
|
otp_lost_help_html: Si perdiste al acceso a ambos, podés ponerte en contacto con %{email}
|
||||||
|
rate_limited: Demasiados intentos de autenticación; intentá de nuevo más tarde.
|
||||||
seamless_external_login: Iniciaste sesión desde un servicio externo, así que la configuración de contraseña y correo electrónico no están disponibles.
|
seamless_external_login: Iniciaste sesión desde un servicio externo, así que la configuración de contraseña y correo electrónico no están disponibles.
|
||||||
signed_in_as: 'Iniciaste sesión como:'
|
signed_in_as: 'Iniciaste sesión como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,8 @@ es-MX:
|
||||||
extra: "¡Ya está listo para descargar!"
|
extra: "¡Ya está listo para descargar!"
|
||||||
subject: Tu archivo está preparado para descargar
|
subject: Tu archivo está preparado para descargar
|
||||||
title: Descargar archivo
|
title: Descargar archivo
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Estos son los detalles del intento de inicio de sesión:'
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: cambies tu contraseña
|
change_password: cambies tu contraseña
|
||||||
details: 'Aquí están los detalles del inicio de sesión:'
|
details: 'Aquí están los detalles del inicio de sesión:'
|
||||||
|
@ -1843,6 +1845,7 @@ es-MX:
|
||||||
go_to_sso_account_settings: Diríjete a la configuración de la cuenta de su proveedor de identidad
|
go_to_sso_account_settings: Diríjete a la configuración de la cuenta de su proveedor de identidad
|
||||||
invalid_otp_token: Código de dos factores incorrecto
|
invalid_otp_token: Código de dos factores incorrecto
|
||||||
otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email}
|
otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email}
|
||||||
|
rate_limited: Demasiados intentos de autenticación, inténtalo de nuevo más tarde.
|
||||||
seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles.
|
seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles.
|
||||||
signed_in_as: 'Sesión iniciada como:'
|
signed_in_as: 'Sesión iniciada como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,8 @@ es:
|
||||||
extra: "¡Ya está listo para descargar!"
|
extra: "¡Ya está listo para descargar!"
|
||||||
subject: Tu archivo está preparado para descargar
|
subject: Tu archivo está preparado para descargar
|
||||||
title: Descargar archivo
|
title: Descargar archivo
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Estos son los detalles del intento de inicio de sesión:'
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: cambies tu contraseña
|
change_password: cambies tu contraseña
|
||||||
details: 'Aquí están los detalles del inicio de sesión:'
|
details: 'Aquí están los detalles del inicio de sesión:'
|
||||||
|
@ -1843,6 +1845,7 @@ es:
|
||||||
go_to_sso_account_settings: Diríjase a la configuración de la cuenta de su proveedor de identidad
|
go_to_sso_account_settings: Diríjase a la configuración de la cuenta de su proveedor de identidad
|
||||||
invalid_otp_token: Código de dos factores incorrecto
|
invalid_otp_token: Código de dos factores incorrecto
|
||||||
otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email}
|
otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email}
|
||||||
|
rate_limited: Demasiados intentos de autenticación, inténtalo de nuevo más tarde.
|
||||||
seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles.
|
seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles.
|
||||||
signed_in_as: 'Sesión iniciada como:'
|
signed_in_as: 'Sesión iniciada como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1792,6 +1792,12 @@ et:
|
||||||
extra: See on nüüd allalaadimiseks valmis!
|
extra: See on nüüd allalaadimiseks valmis!
|
||||||
subject: Arhiiv on allalaadimiseks valmis
|
subject: Arhiiv on allalaadimiseks valmis
|
||||||
title: Arhiivi väljavõte
|
title: Arhiivi väljavõte
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Sisenemise üksikasjad:'
|
||||||
|
explanation: Keegi püüdis Su kontole siseneda, ent sisestas vale teisese autentimisfaktori.
|
||||||
|
further_actions_html: Kui see polnud Sina, siis soovitame viivitamata %{action}, kuna see võib olla lekkinud.
|
||||||
|
subject: Kaheastmelise autentimise nurjumine
|
||||||
|
title: Kaheastmeline autentimine nurjus
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: muuta oma salasõna
|
change_password: muuta oma salasõna
|
||||||
details: 'Sisenemise üksikasjad:'
|
details: 'Sisenemise üksikasjad:'
|
||||||
|
@ -1848,6 +1854,7 @@ et:
|
||||||
go_to_sso_account_settings: Mine oma idenditeedipakkuja kontosätetesse
|
go_to_sso_account_settings: Mine oma idenditeedipakkuja kontosätetesse
|
||||||
invalid_otp_token: Vale kaheastmeline võti
|
invalid_otp_token: Vale kaheastmeline võti
|
||||||
otp_lost_help_html: Kui kaotasid ligipääsu mõlemale, saad võtta ühendust %{email}-iga
|
otp_lost_help_html: Kui kaotasid ligipääsu mõlemale, saad võtta ühendust %{email}-iga
|
||||||
|
rate_limited: Liiga palju autentimise katseid, proovi hiljem uuesti.
|
||||||
seamless_external_login: Välise teenuse kaudu sisse logides pole salasõna ja e-posti sätted saadaval.
|
seamless_external_login: Välise teenuse kaudu sisse logides pole salasõna ja e-posti sätted saadaval.
|
||||||
signed_in_as: 'Sisse logitud kasutajana:'
|
signed_in_as: 'Sisse logitud kasutajana:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1794,6 +1794,12 @@ eu:
|
||||||
extra: Deskargatzeko prest!
|
extra: Deskargatzeko prest!
|
||||||
subject: Zure artxiboa deskargatzeko prest dago
|
subject: Zure artxiboa deskargatzeko prest dago
|
||||||
title: Artxiboa jasotzea
|
title: Artxiboa jasotzea
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Hemen dituzu saio-hasieraren saiakeraren xehetasunak:'
|
||||||
|
explanation: Norbait zure kontuan saioa hasten saiatu da, baina bigarren autentifikazioaren faktore baliogabea eman du.
|
||||||
|
further_actions_html: Ez bazara zu izan, "%{action}" ekintza berehala egitea gomendatzen dugu, kontua arriskarazi daiteke eta.
|
||||||
|
subject: Autentifikazioaren bigarren faktoreak huts egin du
|
||||||
|
title: Huts egin duen autentifikazioaren bigarren faktorea
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: aldatu pasahitza
|
change_password: aldatu pasahitza
|
||||||
details: 'Hemen daude saio hasieraren xehetasunak:'
|
details: 'Hemen daude saio hasieraren xehetasunak:'
|
||||||
|
@ -1847,6 +1853,7 @@ eu:
|
||||||
go_to_sso_account_settings: Jo zure identitate-hornitzaileko kontuaren ezarpenetara
|
go_to_sso_account_settings: Jo zure identitate-hornitzaileko kontuaren ezarpenetara
|
||||||
invalid_otp_token: Bi faktoreetako kode baliogabea
|
invalid_otp_token: Bi faktoreetako kode baliogabea
|
||||||
otp_lost_help_html: 'Bietara sarbidea galdu baduzu, jarri kontaktuan hemen: %{email}'
|
otp_lost_help_html: 'Bietara sarbidea galdu baduzu, jarri kontaktuan hemen: %{email}'
|
||||||
|
rate_limited: Autentifikazio saiakera gehiegi, saiatu berriro geroago.
|
||||||
seamless_external_login: Kanpo zerbitzu baten bidez hasi duzu saioa, beraz pasahitza eta e-mail ezarpenak ez daude eskuragarri.
|
seamless_external_login: Kanpo zerbitzu baten bidez hasi duzu saioa, beraz pasahitza eta e-mail ezarpenak ez daude eskuragarri.
|
||||||
signed_in_as: 'Saioa honela hasita:'
|
signed_in_as: 'Saioa honela hasita:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1786,10 +1786,16 @@ fi:
|
||||||
subtitle: Vetoomuksesi on hylätty.
|
subtitle: Vetoomuksesi on hylätty.
|
||||||
title: Valitus hylätty
|
title: Valitus hylätty
|
||||||
backup_ready:
|
backup_ready:
|
||||||
explanation: Olet pyytänyt täysvarmuuskopion Mastodon-tilistäsi.
|
explanation: Olet pyytänyt täyden varmuuskopion Mastodon-tilistäsi.
|
||||||
extra: Se on nyt valmis ladattavaksi!
|
extra: Se on nyt valmis ladattavaksi!
|
||||||
subject: Arkisto on valmiina ladattavaksi
|
subject: Arkisto on valmiina ladattavaksi
|
||||||
title: Arkiston tallennus
|
title: Arkiston tallennus
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Tässä on tiedot kirjautumisyrityksestä:'
|
||||||
|
explanation: Joku on yrittänyt kirjautua tilillesi, mutta antanut virheellisen kaksivaiheisen todennuksen.
|
||||||
|
further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} välittömästi, sillä se on saattanut vaarantua.
|
||||||
|
subject: Kaksivaiheisen todennuksen virhe
|
||||||
|
title: Epäonnistunut kaksivaiheinen todennus
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: vaihda salasanasi
|
change_password: vaihda salasanasi
|
||||||
details: 'Tässä on tiedot kirjautumisesta:'
|
details: 'Tässä on tiedot kirjautumisesta:'
|
||||||
|
@ -1843,6 +1849,7 @@ fi:
|
||||||
go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset
|
go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset
|
||||||
invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi
|
invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi
|
||||||
otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email}
|
otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email}
|
||||||
|
rate_limited: Liian monta todennusyritystä. Yritä myöhemmin uudelleen.
|
||||||
seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä.
|
seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä.
|
||||||
signed_in_as: 'Kirjautunut tilillä:'
|
signed_in_as: 'Kirjautunut tilillä:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,12 @@ fo:
|
||||||
extra: Tað er nú klárt at taka niður!
|
extra: Tað er nú klárt at taka niður!
|
||||||
subject: Savnið hjá tær er tøkt at taka niður
|
subject: Savnið hjá tær er tøkt at taka niður
|
||||||
title: Tak savn niður
|
title: Tak savn niður
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Her eru smálutirnir í innritanarroyndini:'
|
||||||
|
explanation: Onkur hevur roynt at rita inn á tína kontu, men gav eitt ógildugt seinna samgildi.
|
||||||
|
further_actions_html: Um hetta ikki var tú, so skjóta vit upp, at tú %{action} beinan vegin, tí tað kann vera sett í vanda.
|
||||||
|
subject: Seinna samgildi miseydnaðist
|
||||||
|
title: Miseydnað seinna samgildi
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: broyt loyniorðið hjá tær
|
change_password: broyt loyniorðið hjá tær
|
||||||
details: 'Her eru smálutirnir í innritanini:'
|
details: 'Her eru smálutirnir í innritanini:'
|
||||||
|
@ -1843,6 +1849,7 @@ fo:
|
||||||
go_to_sso_account_settings: Far til kontustillingarnar hjá samleikaveitaranum hjá tær
|
go_to_sso_account_settings: Far til kontustillingarnar hjá samleikaveitaranum hjá tær
|
||||||
invalid_otp_token: Ógyldug tvey-stigs koda
|
invalid_otp_token: Ógyldug tvey-stigs koda
|
||||||
otp_lost_help_html: Hevur tú mist atgongd til bæði, so kanst tú koma í samband við %{email}
|
otp_lost_help_html: Hevur tú mist atgongd til bæði, so kanst tú koma í samband við %{email}
|
||||||
|
rate_limited: Ov nógvar samgildisroyndir, royn aftur seinni.
|
||||||
seamless_external_login: Tú er ritað/ur inn umvegis eina uttanhýsis tænastu, so loyniorð og teldupoststillingar eru ikki tøkar.
|
seamless_external_login: Tú er ritað/ur inn umvegis eina uttanhýsis tænastu, so loyniorð og teldupoststillingar eru ikki tøkar.
|
||||||
signed_in_as: 'Ritað/ur inn sum:'
|
signed_in_as: 'Ritað/ur inn sum:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1843,6 +1843,7 @@ fy:
|
||||||
go_to_sso_account_settings: Gean nei de accountynstellingen fan jo identiteitsprovider
|
go_to_sso_account_settings: Gean nei de accountynstellingen fan jo identiteitsprovider
|
||||||
invalid_otp_token: Unjildige twa-stapstagongskoade
|
invalid_otp_token: Unjildige twa-stapstagongskoade
|
||||||
otp_lost_help_html: As jo tagong ta beide kwytrekke binne, nim dan kontakt op fia %{email}
|
otp_lost_help_html: As jo tagong ta beide kwytrekke binne, nim dan kontakt op fia %{email}
|
||||||
|
rate_limited: Te folle autentikaasjebesykjen, probearje it letter opnij.
|
||||||
seamless_external_login: Jo binne oanmeld fia in eksterne tsjinst, dêrom binne wachtwurden en e-mailynstellingen net beskikber.
|
seamless_external_login: Jo binne oanmeld fia in eksterne tsjinst, dêrom binne wachtwurden en e-mailynstellingen net beskikber.
|
||||||
signed_in_as: 'Oanmeld as:'
|
signed_in_as: 'Oanmeld as:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1843,6 +1843,7 @@ gl:
|
||||||
go_to_sso_account_settings: Ir aos axustes da conta no teu provedor de identidade
|
go_to_sso_account_settings: Ir aos axustes da conta no teu provedor de identidade
|
||||||
invalid_otp_token: O código do segundo factor non é válido
|
invalid_otp_token: O código do segundo factor non é válido
|
||||||
otp_lost_help_html: Se perdes o acceso a ambos, podes contactar con %{email}
|
otp_lost_help_html: Se perdes o acceso a ambos, podes contactar con %{email}
|
||||||
|
rate_limited: Demasiados intentos de autenticación, inténtao máis tarde.
|
||||||
seamless_external_login: Accedeches a través dun servizo externo, polo que os axustes de contrasinal e email non están dispoñibles.
|
seamless_external_login: Accedeches a través dun servizo externo, polo que os axustes de contrasinal e email non están dispoñibles.
|
||||||
signed_in_as: 'Rexistrada como:'
|
signed_in_as: 'Rexistrada como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1854,6 +1854,12 @@ he:
|
||||||
extra: הגיבוי מוכן להורדה!
|
extra: הגיבוי מוכן להורדה!
|
||||||
subject: הארכיון שלך מוכן להורדה
|
subject: הארכיון שלך מוכן להורדה
|
||||||
title: הוצאת ארכיון
|
title: הוצאת ארכיון
|
||||||
|
failed_2fa:
|
||||||
|
details: 'הנה פרטי נסיון ההתחברות:'
|
||||||
|
explanation: פולני אלמוני ניסה להתחבר לחשבונך אך האימות המשני נכשל.
|
||||||
|
further_actions_html: אם הנסיון לא היה שלך, אנו ממליצים על %{action} באופן מיידי כדי שהחשבון לא יפול קורבן.
|
||||||
|
subject: נכשל אימות בגורם שני
|
||||||
|
title: אימות בגורם שני נכשל
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: שינוי הסיסמא שלך
|
change_password: שינוי הסיסמא שלך
|
||||||
details: 'הנה פרטי ההתחברות:'
|
details: 'הנה פרטי ההתחברות:'
|
||||||
|
@ -1907,6 +1913,7 @@ he:
|
||||||
go_to_sso_account_settings: מעבר לאפיוני החשבון שלך בשרת הזהות
|
go_to_sso_account_settings: מעבר לאפיוני החשבון שלך בשרת הזהות
|
||||||
invalid_otp_token: קוד דו-שלבי שגוי
|
invalid_otp_token: קוד דו-שלבי שגוי
|
||||||
otp_lost_help_html: אם איבדת גישה לשניהם, ניתן ליצור קשר ב-%{email}
|
otp_lost_help_html: אם איבדת גישה לשניהם, ניתן ליצור קשר ב-%{email}
|
||||||
|
rate_limited: יותר מדי ניסיונות אימות, נסו שוב מאוחר יותר.
|
||||||
seamless_external_login: את.ה מחובר דרך שירות חיצוני, לכן אפשרויות הסיסמא והדוא"ל לא מאופשרות.
|
seamless_external_login: את.ה מחובר דרך שירות חיצוני, לכן אפשרויות הסיסמא והדוא"ל לא מאופשרות.
|
||||||
signed_in_as: 'מחובר בתור:'
|
signed_in_as: 'מחובר בתור:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,12 @@ hu:
|
||||||
extra: Már letöltésre kész!
|
extra: Már letöltésre kész!
|
||||||
subject: Az adataidról készült archív letöltésre kész
|
subject: Az adataidról készült archív letöltésre kész
|
||||||
title: Archiválás
|
title: Archiválás
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Itt vannak a bejelentkezési kísérlet részletei:'
|
||||||
|
explanation: Valaki megpróbált bejelentkezni a fiókodba, de a második hitelesítési lépése érvénytelen volt.
|
||||||
|
further_actions_html: Ha ez nem te voltál, azt javasoljuk, hogy azonnal %{action}, mivel lehetséges, hogy az rossz kezekbe került.
|
||||||
|
subject: Második körös hitelesítés sikertelen
|
||||||
|
title: Sikertelen a második körös hitelesítés
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: módosítsd a jelszavad
|
change_password: módosítsd a jelszavad
|
||||||
details: 'Itt vannak a bejelentkezés részletei:'
|
details: 'Itt vannak a bejelentkezés részletei:'
|
||||||
|
@ -1843,6 +1849,7 @@ hu:
|
||||||
go_to_sso_account_settings: Ugrás az azonosítási szolgáltatód fiókbeállításaihoz
|
go_to_sso_account_settings: Ugrás az azonosítási szolgáltatód fiókbeállításaihoz
|
||||||
invalid_otp_token: Érvénytelen ellenőrző kód
|
invalid_otp_token: Érvénytelen ellenőrző kód
|
||||||
otp_lost_help_html: Ha mindkettőt elvesztetted, kérhetsz segítséget itt %{email}
|
otp_lost_help_html: Ha mindkettőt elvesztetted, kérhetsz segítséget itt %{email}
|
||||||
|
rate_limited: Túl sok hiteleítési kísérlet történt. Próbáld újra később.
|
||||||
seamless_external_login: Külső szolgáltatáson keresztül jelentkeztél be, így a jelszó és e-mail beállítások nem elérhetőek.
|
seamless_external_login: Külső szolgáltatáson keresztül jelentkeztél be, így a jelszó és e-mail beállítások nem elérhetőek.
|
||||||
signed_in_as: Bejelentkezve mint
|
signed_in_as: Bejelentkezve mint
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1786,6 +1786,7 @@ ie:
|
||||||
subtitle: Tui apelle ha esset rejectet.
|
subtitle: Tui apelle ha esset rejectet.
|
||||||
title: Apelle rejectet
|
title: Apelle rejectet
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
explanation: Tu petit un complet archive de tui conto de Mastodon.
|
||||||
extra: It es ja pret a descargar!
|
extra: It es ja pret a descargar!
|
||||||
subject: Tui archive es pret por descargar
|
subject: Tui archive es pret por descargar
|
||||||
title: Descargar archive
|
title: Descargar archive
|
||||||
|
@ -1842,6 +1843,7 @@ ie:
|
||||||
go_to_sso_account_settings: Ear al parametres de conto de tui provisor de identification
|
go_to_sso_account_settings: Ear al parametres de conto de tui provisor de identification
|
||||||
invalid_otp_token: Ínvalid 2-factor code
|
invalid_otp_token: Ínvalid 2-factor code
|
||||||
otp_lost_help_html: Si tu perdit accesse a ambis, tu posse contacter %{email}
|
otp_lost_help_html: Si tu perdit accesse a ambis, tu posse contacter %{email}
|
||||||
|
rate_limited: Tro mult de provas de autentication, ples provar denov plu tard.
|
||||||
seamless_external_login: Tu ha intrat per un servicie external, dunc parametres pri tui passa-parol e email-adresse ne es disponibil.
|
seamless_external_login: Tu ha intrat per un servicie external, dunc parametres pri tui passa-parol e email-adresse ne es disponibil.
|
||||||
signed_in_as: 'Session apertet quam:'
|
signed_in_as: 'Session apertet quam:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1794,6 +1794,12 @@ is:
|
||||||
extra: Það er núna tilbúið til niðurhals!
|
extra: Það er núna tilbúið til niðurhals!
|
||||||
subject: Safnskráin þín er tilbúin til niðurhals
|
subject: Safnskráin þín er tilbúin til niðurhals
|
||||||
title: Taka út í safnskrá
|
title: Taka út í safnskrá
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Hér eru nánari upplýsingar um innskráningartilraunina:'
|
||||||
|
explanation: Einhver reyndi að skrá sig inn á aðganginn þinn en gaf upp ógild gögn seinna þrepi auðkenningar.
|
||||||
|
further_actions_html: Ef þetta varst ekki þú, þá mælum við eindregið með því að þú %{action} samstundis, þar sem það gæti verið berskjaldað.
|
||||||
|
subject: Bilun í seinna þrepi auðkenningar
|
||||||
|
title: Seinna þrep auðkenningar brást
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: breytir lykilorðinu þínu
|
change_password: breytir lykilorðinu þínu
|
||||||
details: 'Hér eru nánari upplýsingar um innskráninguna:'
|
details: 'Hér eru nánari upplýsingar um innskráninguna:'
|
||||||
|
@ -1847,6 +1853,7 @@ is:
|
||||||
go_to_sso_account_settings: Fara í stillingar aðgangsins hjá auðkennisveitunni þinni
|
go_to_sso_account_settings: Fara í stillingar aðgangsins hjá auðkennisveitunni þinni
|
||||||
invalid_otp_token: Ógildur tveggja-þátta kóði
|
invalid_otp_token: Ógildur tveggja-þátta kóði
|
||||||
otp_lost_help_html: Ef þú hefur misst aðganginn að hvoru tveggja, geturðu sett þig í samband við %{email}
|
otp_lost_help_html: Ef þú hefur misst aðganginn að hvoru tveggja, geturðu sett þig í samband við %{email}
|
||||||
|
rate_limited: Of margar tilraunir til auðkenningar, prófaðu aftur síðar.
|
||||||
seamless_external_login: Innskráning þín er í gegnum utanaðkomandi þjónustu, þannig að stillingar fyrir lykilorð og tölvupóst eru ekki aðgengilegar.
|
seamless_external_login: Innskráning þín er í gegnum utanaðkomandi þjónustu, þannig að stillingar fyrir lykilorð og tölvupóst eru ekki aðgengilegar.
|
||||||
signed_in_as: 'Skráð inn sem:'
|
signed_in_as: 'Skráð inn sem:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1792,6 +1792,12 @@ it:
|
||||||
extra: Ora è pronto per il download!
|
extra: Ora è pronto per il download!
|
||||||
subject: Il tuo archivio è pronto per essere scaricato
|
subject: Il tuo archivio è pronto per essere scaricato
|
||||||
title: Esportazione archivio
|
title: Esportazione archivio
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Questi sono i dettagli del tentativo di accesso:'
|
||||||
|
explanation: Qualcuno ha tentato di accedere al tuo account ma ha fornito un secondo fattore di autenticazione non valido.
|
||||||
|
further_actions_html: Se non eri tu, ti consigliamo di %{action} immediatamente poiché potrebbe essere compromesso.
|
||||||
|
subject: Errore di autenticazione del secondo fattore
|
||||||
|
title: Autenticazione del secondo fattore non riuscita
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: cambiare la tua password
|
change_password: cambiare la tua password
|
||||||
details: 'Questi sono i dettagli del tentativo di accesso:'
|
details: 'Questi sono i dettagli del tentativo di accesso:'
|
||||||
|
@ -1845,6 +1851,7 @@ it:
|
||||||
go_to_sso_account_settings: Vai alle impostazioni dell'account del tuo provider di identità
|
go_to_sso_account_settings: Vai alle impostazioni dell'account del tuo provider di identità
|
||||||
invalid_otp_token: Codice d'accesso non valido
|
invalid_otp_token: Codice d'accesso non valido
|
||||||
otp_lost_help_html: Se perdessi l'accesso ad entrambi, puoi entrare in contatto con %{email}
|
otp_lost_help_html: Se perdessi l'accesso ad entrambi, puoi entrare in contatto con %{email}
|
||||||
|
rate_limited: Troppi tentativi di autenticazione, per favore riprova più tardi.
|
||||||
seamless_external_login: Hai effettuato l'accesso tramite un servizio esterno, quindi le impostazioni di password e e-mail non sono disponibili.
|
seamless_external_login: Hai effettuato l'accesso tramite un servizio esterno, quindi le impostazioni di password e e-mail non sono disponibili.
|
||||||
signed_in_as: 'Hai effettuato l''accesso come:'
|
signed_in_as: 'Hai effettuato l''accesso come:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -2061,6 +2061,7 @@ ja:
|
||||||
go_to_sso_account_settings: 外部サービスアカウントの設定はこちらで行ってください
|
go_to_sso_account_settings: 外部サービスアカウントの設定はこちらで行ってください
|
||||||
invalid_otp_token: 二要素認証コードが間違っています
|
invalid_otp_token: 二要素認証コードが間違っています
|
||||||
otp_lost_help_html: どちらも使用できない場合、%{email}に連絡を取ると解決できるかもしれません
|
otp_lost_help_html: どちらも使用できない場合、%{email}に連絡を取ると解決できるかもしれません
|
||||||
|
rate_limited: 認証に失敗した回数が多すぎます。時間をおいてからログインしてください。
|
||||||
seamless_external_login: あなたは外部サービスを介してログインしているため、パスワードとメールアドレスの設定は利用できません。
|
seamless_external_login: あなたは外部サービスを介してログインしているため、パスワードとメールアドレスの設定は利用できません。
|
||||||
signed_in_as: '下記でログイン中:'
|
signed_in_as: '下記でログイン中:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1760,6 +1760,8 @@ ko:
|
||||||
extra: 다운로드 할 준비가 되었습니다!
|
extra: 다운로드 할 준비가 되었습니다!
|
||||||
subject: 아카이브를 다운로드할 수 있습니다
|
subject: 아카이브를 다운로드할 수 있습니다
|
||||||
title: 아카이브 테이크아웃
|
title: 아카이브 테이크아웃
|
||||||
|
failed_2fa:
|
||||||
|
details: '로그인 시도에 대한 상세 정보입니다:'
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: 암호 변경
|
change_password: 암호 변경
|
||||||
details: '로그인에 대한 상세 정보입니다:'
|
details: '로그인에 대한 상세 정보입니다:'
|
||||||
|
@ -1813,6 +1815,7 @@ ko:
|
||||||
go_to_sso_account_settings: ID 공급자의 계정 설정으로 이동
|
go_to_sso_account_settings: ID 공급자의 계정 설정으로 이동
|
||||||
invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다
|
invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다
|
||||||
otp_lost_help_html: 만약 양쪽 모두를 잃어버렸다면 %{email}을 통해 복구할 수 있습니다
|
otp_lost_help_html: 만약 양쪽 모두를 잃어버렸다면 %{email}을 통해 복구할 수 있습니다
|
||||||
|
rate_limited: 너무 많은 인증 시도가 있었습니다, 잠시 후에 시도하세요.
|
||||||
seamless_external_login: 외부 서비스를 이용해 로그인했으므로 이메일과 암호는 설정할 수 없습니다.
|
seamless_external_login: 외부 서비스를 이용해 로그인했으므로 이메일과 암호는 설정할 수 없습니다.
|
||||||
signed_in_as: '다음과 같이 로그인 중:'
|
signed_in_as: '다음과 같이 로그인 중:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -384,6 +384,7 @@ lad:
|
||||||
cancel: Anula
|
cancel: Anula
|
||||||
confirm: Suspende
|
confirm: Suspende
|
||||||
permanent_action: Si kites la suspensyon no restoraras dingunos datos ni relasyones.
|
permanent_action: Si kites la suspensyon no restoraras dingunos datos ni relasyones.
|
||||||
|
preamble_html: Estas a punto de suspender <strong>%{domain}</strong> i sus subdomenos.
|
||||||
remove_all_data: Esto efasara todo el kontenido, multimedia i datos de profiles de los kuentos en este domeno de tu sirvidor.
|
remove_all_data: Esto efasara todo el kontenido, multimedia i datos de profiles de los kuentos en este domeno de tu sirvidor.
|
||||||
stop_communication: Tu sirvidor deshara de komunikarse kon estos sirvidores.
|
stop_communication: Tu sirvidor deshara de komunikarse kon estos sirvidores.
|
||||||
title: Konfirma bloko de domeno para %{domain}
|
title: Konfirma bloko de domeno para %{domain}
|
||||||
|
@ -608,6 +609,7 @@ lad:
|
||||||
created_at: Raportado
|
created_at: Raportado
|
||||||
delete_and_resolve: Efasa publikasyones
|
delete_and_resolve: Efasa publikasyones
|
||||||
forwarded: Reembiado
|
forwarded: Reembiado
|
||||||
|
forwarded_replies_explanation: Este raporto vyene de un utilizador remoto i es sovre kontenido remoto. Tiene sido reembiado a ti porke el kontenido raportado esta en una repuesta a uno de tus utilizadores.
|
||||||
forwarded_to: Reembiado a %{domain}
|
forwarded_to: Reembiado a %{domain}
|
||||||
mark_as_resolved: Marka komo rezolvido
|
mark_as_resolved: Marka komo rezolvido
|
||||||
mark_as_sensitive: Marka komo sensivle
|
mark_as_sensitive: Marka komo sensivle
|
||||||
|
@ -712,6 +714,7 @@ lad:
|
||||||
manage_users: Administra utilizadores
|
manage_users: Administra utilizadores
|
||||||
manage_users_description: Permete a los utilizadores ver los peratim de otros utilizadores i realizar aksyones de moderasyon kontra eyos
|
manage_users_description: Permete a los utilizadores ver los peratim de otros utilizadores i realizar aksyones de moderasyon kontra eyos
|
||||||
manage_webhooks: Administrar webhooks
|
manage_webhooks: Administrar webhooks
|
||||||
|
manage_webhooks_description: Permite a los utilizadores konfigurar webhooks para evenimientos administrativos
|
||||||
view_audit_log: Mostra defter de revisyon
|
view_audit_log: Mostra defter de revisyon
|
||||||
view_audit_log_description: Permete a los utilizadores ver una estoria de aksyones administrativas en el sirvidor
|
view_audit_log_description: Permete a los utilizadores ver una estoria de aksyones administrativas en el sirvidor
|
||||||
view_dashboard: Ve pano
|
view_dashboard: Ve pano
|
||||||
|
@ -738,6 +741,8 @@ lad:
|
||||||
branding:
|
branding:
|
||||||
preamble: La marka de tu sirvidor lo desferensia de otros sirvidores de la red. Esta enformasyon puede amostrarse por una varieta de entornos, komo en la enterfaz web de Mastodon, en aplikasyones nativas, en previsualizasiones de atadijos en otros sitios internetikos i en aplikasyones de mesajes, etc. Por esta razon, es mijor mantener esta enformasyon klara, breve i konsiza.
|
preamble: La marka de tu sirvidor lo desferensia de otros sirvidores de la red. Esta enformasyon puede amostrarse por una varieta de entornos, komo en la enterfaz web de Mastodon, en aplikasyones nativas, en previsualizasiones de atadijos en otros sitios internetikos i en aplikasyones de mesajes, etc. Por esta razon, es mijor mantener esta enformasyon klara, breve i konsiza.
|
||||||
title: Marka
|
title: Marka
|
||||||
|
captcha_enabled:
|
||||||
|
title: Solisita ke los muevos utilizadores rezolven un CAPTCHA para konfirmar su konto
|
||||||
content_retention:
|
content_retention:
|
||||||
preamble: Kontrola komo el kontenido jenerado por el utilizador se magazina en Mastodon.
|
preamble: Kontrola komo el kontenido jenerado por el utilizador se magazina en Mastodon.
|
||||||
title: Retensyon de kontenido
|
title: Retensyon de kontenido
|
||||||
|
@ -765,6 +770,9 @@ lad:
|
||||||
approved: Se rekiere achetasion para enrejistrarse
|
approved: Se rekiere achetasion para enrejistrarse
|
||||||
none: Permete a los utilizadores trokar la konfigurasyon del sitio
|
none: Permete a los utilizadores trokar la konfigurasyon del sitio
|
||||||
open: Kualkiera puede enrejistrarse
|
open: Kualkiera puede enrejistrarse
|
||||||
|
security:
|
||||||
|
authorized_fetch_overridden_hint: Agora no puedes trokar esta konfigurasyon dkee esta sovreeskrita por una variable de entorno.
|
||||||
|
federation_authentication: Forzamyento de autentifikasyon para la federasyon
|
||||||
title: Konfigurasyon del sirvidor
|
title: Konfigurasyon del sirvidor
|
||||||
site_uploads:
|
site_uploads:
|
||||||
delete: Efasa dosya kargada
|
delete: Efasa dosya kargada
|
||||||
|
@ -820,8 +828,13 @@ lad:
|
||||||
system_checks:
|
system_checks:
|
||||||
database_schema_check:
|
database_schema_check:
|
||||||
message_html: Ay migrasyones asperando de la baza de datos. Por favor, egzekutalas para asigurarte de ke la aplikasyon fonksiona komo deveria
|
message_html: Ay migrasyones asperando de la baza de datos. Por favor, egzekutalas para asigurarte de ke la aplikasyon fonksiona komo deveria
|
||||||
|
elasticsearch_health_red:
|
||||||
|
message_html: El klaster de Elasticsearch no es sano (estado kolorado), funksyones de bushkeda no estan disponivles
|
||||||
|
elasticsearch_health_yellow:
|
||||||
|
message_html: El klaster de Elasticsearch no es sano (estado amariyo), es posivle ke keras investigar la razon
|
||||||
elasticsearch_preset:
|
elasticsearch_preset:
|
||||||
action: Ve dokumentasyon
|
action: Ve dokumentasyon
|
||||||
|
message_html: Tu klaster de Elasticsearch tiene mas ke un nodo, ama Mastodon no esta konfigurado para uzarlos.
|
||||||
elasticsearch_preset_single_node:
|
elasticsearch_preset_single_node:
|
||||||
action: Ve dokumentasyon
|
action: Ve dokumentasyon
|
||||||
elasticsearch_running_check:
|
elasticsearch_running_check:
|
||||||
|
@ -1012,12 +1025,17 @@ lad:
|
||||||
auth:
|
auth:
|
||||||
apply_for_account: Solisita un kuento
|
apply_for_account: Solisita un kuento
|
||||||
captcha_confirmation:
|
captcha_confirmation:
|
||||||
|
help_html: Si tyenes problemas kon rezolver el CAPTCHA, puedes kontaktarnos en %{email} i podremos ayudarte.
|
||||||
|
hint_html: Una koza mas! Tenemos ke konfirmar ke eres umano (para evitar spam!). Rezolve el CAPTCHA abasho i klika "Kontinua".
|
||||||
title: Kontrolo de sigurita
|
title: Kontrolo de sigurita
|
||||||
confirmations:
|
confirmations:
|
||||||
|
awaiting_review: Tu adreso de posta tiene sido konfirmado! La taifa de %{domain} esta revizando tu enrejistrasyon. Risiviras un meil si acheten tu kuento!
|
||||||
awaiting_review_title: Estamos revizando tu enrejistramiento
|
awaiting_review_title: Estamos revizando tu enrejistramiento
|
||||||
clicking_this_link: klikando en este atadijo
|
clicking_this_link: klikando en este atadijo
|
||||||
login_link: konektate kon kuento
|
login_link: konektate kon kuento
|
||||||
proceed_to_login_html: Agora puedes ir a %{login_link}.
|
proceed_to_login_html: Agora puedes ir a %{login_link}.
|
||||||
|
redirect_to_app_html: Seras readresado a la aplikasyon <strong>%{app_name}</strong>. Si esto no afita, aprova %{clicking_this_link} o regresa manualmente a la aplikasyon.
|
||||||
|
registration_complete: Tu enrejistrasyon en %{domain} ya esta kompletada!
|
||||||
welcome_title: Bienvenido, %{name}!
|
welcome_title: Bienvenido, %{name}!
|
||||||
wrong_email_hint: Si este adreso de posta es inkorekto, puedes trokarlo en las preferensyas del kuento.
|
wrong_email_hint: Si este adreso de posta es inkorekto, puedes trokarlo en las preferensyas del kuento.
|
||||||
delete_account: Efasa kuento
|
delete_account: Efasa kuento
|
||||||
|
@ -1054,6 +1072,7 @@ lad:
|
||||||
rules:
|
rules:
|
||||||
accept: Acheta
|
accept: Acheta
|
||||||
back: Atras
|
back: Atras
|
||||||
|
invited_by: 'Puedes adjuntarte a %{domain} grasyas a la envitasyon de:'
|
||||||
preamble: Estas son establesidas i aplikadas por los moderadores de %{domain}.
|
preamble: Estas son establesidas i aplikadas por los moderadores de %{domain}.
|
||||||
preamble_invited: Antes de kontinuar, por favor reviza las reglas del sirvidor establesidas por los moderatores de %{domain}.
|
preamble_invited: Antes de kontinuar, por favor reviza las reglas del sirvidor establesidas por los moderatores de %{domain}.
|
||||||
title: Algunas reglas bazikas.
|
title: Algunas reglas bazikas.
|
||||||
|
@ -1078,6 +1097,7 @@ lad:
|
||||||
functional: Tu kuento esta kompletamente funksyonal.
|
functional: Tu kuento esta kompletamente funksyonal.
|
||||||
pending: Tu solisitasyon esta asperando la revizion por muestros administradores. Esto puede tadrar algun tiempo. Arisiviras una posta elektronika si la solisitasyon sea achetada.
|
pending: Tu solisitasyon esta asperando la revizion por muestros administradores. Esto puede tadrar algun tiempo. Arisiviras una posta elektronika si la solisitasyon sea achetada.
|
||||||
redirecting_to: Tu kuento se topa inaktivo porke esta siendo readresado a %{acct}.
|
redirecting_to: Tu kuento se topa inaktivo porke esta siendo readresado a %{acct}.
|
||||||
|
self_destruct: Deke %{domain} va a serrarse, solo tendras akseso limitado a tu kuento.
|
||||||
view_strikes: Ve amonestamientos pasados kontra tu kuento
|
view_strikes: Ve amonestamientos pasados kontra tu kuento
|
||||||
too_fast: Formulario enviado demaziado rapido, aprovalo de muevo.
|
too_fast: Formulario enviado demaziado rapido, aprovalo de muevo.
|
||||||
use_security_key: Uza la yave de sigurita
|
use_security_key: Uza la yave de sigurita
|
||||||
|
@ -1271,6 +1291,19 @@ lad:
|
||||||
merge_long: Manten rejistros egzistentes i adjusta muevos
|
merge_long: Manten rejistros egzistentes i adjusta muevos
|
||||||
overwrite: Sobreskrive
|
overwrite: Sobreskrive
|
||||||
overwrite_long: Mete muevos rejistros en vez de los aktuales
|
overwrite_long: Mete muevos rejistros en vez de los aktuales
|
||||||
|
overwrite_preambles:
|
||||||
|
blocking_html: Estas a punto de <strong>substituyir tu lista de blokos</strong> por asta <strong>%{total_items} kuentos </strong> de <strong>%{filename}</strong>.
|
||||||
|
bookmarks_html: Estas a punto de <strong>substituyir tus markadores</strong> por asta <strong>%{total_items} publikasyones</strong> ke vinyeron de <strong>%{filename}</strong>.
|
||||||
|
domain_blocking_html: Estas a punto de <strong>substituyir tu lista de blokos de domeno</strong> por asta <strong>%{total_items} domenos </strong> de <strong>%{filename}</strong>.
|
||||||
|
following_html: Estas a punto de <strong>segir</strong> asta <strong>%{total_items} kuentos</strong> de <strong>%{filename}</strong> i <strong>deshar de segir todos los otros kuentos</strong>.
|
||||||
|
lists_html: Estas a punto de <strong>sustituyir tus listas</strong> con el kontenido de <strong>%{filename}</strong>. Asta <strong>%{total_items} kuentos</strong> seran adjustados a muevas listas.
|
||||||
|
muting_html: Estas a punto de <strong>substituyir tu lista de kuentos silensyados</strong> por asta <strong>%{total_items} kuentos </strong> de <strong>%{filename}</strong>.
|
||||||
|
preambles:
|
||||||
|
blocking_html: Estas a punto de <strong>blokar</strong> asta <strong>%{total_items} kuentos </strong> de <strong>%{filename}</strong>.
|
||||||
|
bookmarks_html: Estas a punto de adjustar asta <strong>%{total_items} publikasyones</strong> de <strong>%{filename}</strong> a tus <strong>markadores</strong>.
|
||||||
|
domain_blocking_html: Estas a punto de <strong>blokar</strong> asta <strong>%{total_items} domenos </strong> de <strong>%{filename}</strong>.
|
||||||
|
following_html: Estas a punto de <strong>segir</strong> asta <strong>%{total_items} kuentos </strong> de <strong>%{filename}</strong>.
|
||||||
|
muting_html: Estas a punto de <strong>silensyar</strong> asta <strong>%{total_items} kuentos </strong> de <strong>%{filename}</strong>.
|
||||||
preface: Puedes importar siertos datos, komo todas las personas a las kualas estas sigiendo o blokando en tu kuento en esta instansya, dizde dosyas eksportadas de otra instansya.
|
preface: Puedes importar siertos datos, komo todas las personas a las kualas estas sigiendo o blokando en tu kuento en esta instansya, dizde dosyas eksportadas de otra instansya.
|
||||||
recent_imports: Importasyones resyentes
|
recent_imports: Importasyones resyentes
|
||||||
states:
|
states:
|
||||||
|
@ -1474,7 +1507,9 @@ lad:
|
||||||
public_timelines: Linyas de tiempo publikas
|
public_timelines: Linyas de tiempo publikas
|
||||||
privacy:
|
privacy:
|
||||||
privacy: Privasita
|
privacy: Privasita
|
||||||
|
reach: Alkanse
|
||||||
search: Bushkeda
|
search: Bushkeda
|
||||||
|
title: Privasita i alkanse
|
||||||
privacy_policy:
|
privacy_policy:
|
||||||
title: Politika de privasita
|
title: Politika de privasita
|
||||||
reactions:
|
reactions:
|
||||||
|
@ -1711,6 +1746,7 @@ lad:
|
||||||
action: Preferensyas de kuento
|
action: Preferensyas de kuento
|
||||||
explanation: La apelasyon del amonestamiento kontra tu kuento del %{strike_date} ke mandates el %{appeal_date} fue achetada. Tu kuento se topa de muevo en dobro estado.
|
explanation: La apelasyon del amonestamiento kontra tu kuento del %{strike_date} ke mandates el %{appeal_date} fue achetada. Tu kuento se topa de muevo en dobro estado.
|
||||||
subject: Tu apelasyon del %{date} fue achetada
|
subject: Tu apelasyon del %{date} fue achetada
|
||||||
|
subtitle: Tu konto de muevo tiene una reputasyon buena.
|
||||||
title: Apelasyon achetada
|
title: Apelasyon achetada
|
||||||
appeal_rejected:
|
appeal_rejected:
|
||||||
explanation: La apelasyon del amonestamiento kontra tu kuento del %{strike_date} ke mandates el %{appeal_date} fue refuzada.
|
explanation: La apelasyon del amonestamiento kontra tu kuento del %{strike_date} ke mandates el %{appeal_date} fue refuzada.
|
||||||
|
@ -1718,8 +1754,11 @@ lad:
|
||||||
subtitle: Tu apelasyon fue refuzada.
|
subtitle: Tu apelasyon fue refuzada.
|
||||||
title: Apelasyon refuzada
|
title: Apelasyon refuzada
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
extra: Agora esta pronto para abashar!
|
||||||
subject: Tu dosya esta pronta para abashar
|
subject: Tu dosya esta pronta para abashar
|
||||||
title: Abasha dosya
|
title: Abasha dosya
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Aki estan los peratim de las provas de koneksyon kon tu kuento:'
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: troka tu kod
|
change_password: troka tu kod
|
||||||
details: 'Aki estan los peratim de la koneksyon kon tu kuento:'
|
details: 'Aki estan los peratim de la koneksyon kon tu kuento:'
|
||||||
|
@ -1773,6 +1812,8 @@ lad:
|
||||||
go_to_sso_account_settings: Va a la konfigurasyon de kuento de tu prokurador de identita
|
go_to_sso_account_settings: Va a la konfigurasyon de kuento de tu prokurador de identita
|
||||||
invalid_otp_token: Kodiche de dos pasos no valido
|
invalid_otp_token: Kodiche de dos pasos no valido
|
||||||
otp_lost_help_html: Si pedriste akseso a los dos, puedes kontaktarte kon %{email}
|
otp_lost_help_html: Si pedriste akseso a los dos, puedes kontaktarte kon %{email}
|
||||||
|
rate_limited: Demaziadas provas de autentifikasyon, aprova de muevo dempues.
|
||||||
|
seamless_external_login: Estas konektado por un servisyo eksterno i estonses la konfigurasyon de kod i konto de posta no estan disponivles.
|
||||||
signed_in_as: 'Konektado komo:'
|
signed_in_as: 'Konektado komo:'
|
||||||
verification:
|
verification:
|
||||||
here_is_how: Ansina es komo
|
here_is_how: Ansina es komo
|
||||||
|
@ -1785,6 +1826,7 @@ lad:
|
||||||
success: Tu yave de sigurita fue adjustada kon sukseso.
|
success: Tu yave de sigurita fue adjustada kon sukseso.
|
||||||
delete: Efasa
|
delete: Efasa
|
||||||
delete_confirmation: Estas siguro ke keres efasar esta yave de sigurita?
|
delete_confirmation: Estas siguro ke keres efasar esta yave de sigurita?
|
||||||
|
description_html: Si kapasites <strong>autentifikasyon kon yave de sigurita</strong>, nesesitaras uno de tus yaves de sigurita para konektarte kon tu kuento.
|
||||||
destroy:
|
destroy:
|
||||||
error: Uvo un problem al efasar tu yave de sigurita. Por favor aprova de muevo.
|
error: Uvo un problem al efasar tu yave de sigurita. Por favor aprova de muevo.
|
||||||
success: Tu yave de sigurita fue efasada kon sukseso.
|
success: Tu yave de sigurita fue efasada kon sukseso.
|
||||||
|
|
|
@ -559,6 +559,12 @@ lt:
|
||||||
extra: Jį jau galima atsisiųsti!
|
extra: Jį jau galima atsisiųsti!
|
||||||
subject: Jūsų archyvas paruoštas parsisiuntimui
|
subject: Jūsų archyvas paruoštas parsisiuntimui
|
||||||
title: Archyvas išimtas
|
title: Archyvas išimtas
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Štai išsami informacija apie bandymą prisijungti:'
|
||||||
|
explanation: Kažkas bandė prisijungti prie tavo paskyros, bet nurodė netinkamą antrąjį tapatybės nustatymo veiksnį.
|
||||||
|
further_actions_html: Jei tai buvo ne tu, rekomenduojame nedelsiant imtis %{action}, nes jis gali būti pažeistas.
|
||||||
|
subject: Antrojo veiksnio tapatybės nustatymas nesėkmingai
|
||||||
|
title: Nepavyko atlikti antrojo veiksnio tapatybės nustatymo
|
||||||
warning:
|
warning:
|
||||||
subject:
|
subject:
|
||||||
disable: Jūsų paskyra %{acct} buvo užšaldyta
|
disable: Jūsų paskyra %{acct} buvo užšaldyta
|
||||||
|
@ -584,6 +590,7 @@ lt:
|
||||||
go_to_sso_account_settings: Eik į savo tapatybės teikėjo paskyros nustatymus
|
go_to_sso_account_settings: Eik į savo tapatybės teikėjo paskyros nustatymus
|
||||||
invalid_otp_token: Netinkamas dviejų veiksnių kodas
|
invalid_otp_token: Netinkamas dviejų veiksnių kodas
|
||||||
otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email}
|
otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email}
|
||||||
|
rate_limited: Per daug tapatybės nustatymo bandymų. Bandyk dar kartą vėliau.
|
||||||
seamless_external_login: Esi prisijungęs (-usi) per išorinę paslaugą, todėl slaptažodžio ir el. pašto nustatymai nepasiekiami.
|
seamless_external_login: Esi prisijungęs (-usi) per išorinę paslaugą, todėl slaptažodžio ir el. pašto nustatymai nepasiekiami.
|
||||||
signed_in_as: 'Prisijungta kaip:'
|
signed_in_as: 'Prisijungta kaip:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,11 @@ nl:
|
||||||
extra: Het staat nu klaar om te worden gedownload!
|
extra: Het staat nu klaar om te worden gedownload!
|
||||||
subject: Jouw archief staat klaar om te worden gedownload
|
subject: Jouw archief staat klaar om te worden gedownload
|
||||||
title: Archief ophalen
|
title: Archief ophalen
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Hier zijn details van de aanmeldpoging:'
|
||||||
|
explanation: Iemand heeft geprobeerd om in te loggen op uw account maar heeft een ongeldige tweede verificatiefactor opgegeven.
|
||||||
|
subject: Tweede factor authenticatiefout
|
||||||
|
title: Tweestapsverificatie mislukt
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: je wachtwoord te wijzigen
|
change_password: je wachtwoord te wijzigen
|
||||||
details: 'Hier zijn de details van inlogpoging:'
|
details: 'Hier zijn de details van inlogpoging:'
|
||||||
|
@ -1843,6 +1848,7 @@ nl:
|
||||||
go_to_sso_account_settings: Ga naar de accountinstellingen van je identiteitsprovider
|
go_to_sso_account_settings: Ga naar de accountinstellingen van je identiteitsprovider
|
||||||
invalid_otp_token: Ongeldige tweestaps-toegangscode
|
invalid_otp_token: Ongeldige tweestaps-toegangscode
|
||||||
otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email}
|
otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email}
|
||||||
|
rate_limited: Te veel authenticatiepogingen, probeer het later opnieuw.
|
||||||
seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar.
|
seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar.
|
||||||
signed_in_as: 'Ingelogd als:'
|
signed_in_as: 'Ingelogd als:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1608,6 +1608,7 @@ nn:
|
||||||
unknown_browser: Ukjend nettlesar
|
unknown_browser: Ukjend nettlesar
|
||||||
weibo: Weibo
|
weibo: Weibo
|
||||||
current_session: Noverande økt
|
current_session: Noverande økt
|
||||||
|
date: Dato
|
||||||
description: "%{browser} på %{platform}"
|
description: "%{browser} på %{platform}"
|
||||||
explanation: Desse nettlesarane er logga inn på Mastodon-kontoen din.
|
explanation: Desse nettlesarane er logga inn på Mastodon-kontoen din.
|
||||||
ip: IP-adresse
|
ip: IP-adresse
|
||||||
|
@ -1774,16 +1775,27 @@ nn:
|
||||||
webauthn: Sikkerhetsnøkler
|
webauthn: Sikkerhetsnøkler
|
||||||
user_mailer:
|
user_mailer:
|
||||||
appeal_approved:
|
appeal_approved:
|
||||||
|
action: Kontoinnstillinger
|
||||||
explanation: Apellen på prikken mot din kontor på %{strike_date} som du la inn på %{appeal_date} har blitt godkjend. Din konto er nok ein gong i god stand.
|
explanation: Apellen på prikken mot din kontor på %{strike_date} som du la inn på %{appeal_date} har blitt godkjend. Din konto er nok ein gong i god stand.
|
||||||
subject: Din klage fra %{date} er godkjent
|
subject: Din klage fra %{date} er godkjent
|
||||||
|
subtitle: Kontoen din er tilbake i god stand.
|
||||||
title: Anke godkjend
|
title: Anke godkjend
|
||||||
appeal_rejected:
|
appeal_rejected:
|
||||||
explanation: Klagen på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt avvist.
|
explanation: Klagen på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt avvist.
|
||||||
subject: Din klage fra %{date} er avvist
|
subject: Din klage fra %{date} er avvist
|
||||||
|
subtitle: Anken din har blitt avvist.
|
||||||
title: Anke avvist
|
title: Anke avvist
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
explanation: Du etterspurte en fullstendig sikkerhetskopi av din Mastodon-konto.
|
||||||
|
extra: Den er nå klar for nedlasting!
|
||||||
subject: Arkivet ditt er klart til å lastes ned
|
subject: Arkivet ditt er klart til å lastes ned
|
||||||
title: Nedlasting av arkiv
|
title: Nedlasting av arkiv
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Her er detaljane om innloggingsforsøket:'
|
||||||
|
explanation: Nokon har prøvd å logge inn på kontoen din, men brukte ein ugyldig andre-autentiseringsfaktor.
|
||||||
|
further_actions_html: Om dette ikkje var deg, rår me deg til å %{action} med éin gong, då det kan vere kompomittert.
|
||||||
|
subject: To-faktor-autentiseringsfeil
|
||||||
|
title: Mislukka to-faktor-autentisering
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: endre passord
|
change_password: endre passord
|
||||||
details: 'Her er påloggingsdetaljane:'
|
details: 'Her er påloggingsdetaljane:'
|
||||||
|
@ -1837,6 +1849,7 @@ nn:
|
||||||
go_to_sso_account_settings: Gå til kontoinnstillingane hjå identitetsleverandøren din
|
go_to_sso_account_settings: Gå til kontoinnstillingane hjå identitetsleverandøren din
|
||||||
invalid_otp_token: Ugyldig tostegskode
|
invalid_otp_token: Ugyldig tostegskode
|
||||||
otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email}
|
otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email}
|
||||||
|
rate_limited: For mange autentiseringsforsøk, prøv igjen seinare.
|
||||||
seamless_external_login: Du er logga inn gjennom eit eksternt reiskap, so passord og e-postinstillingar er ikkje tilgjengelege.
|
seamless_external_login: Du er logga inn gjennom eit eksternt reiskap, so passord og e-postinstillingar er ikkje tilgjengelege.
|
||||||
signed_in_as: 'Logga inn som:'
|
signed_in_as: 'Logga inn som:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -229,7 +229,7 @@
|
||||||
update_status: Oppdater statusen
|
update_status: Oppdater statusen
|
||||||
update_user_role: Oppdater rolle
|
update_user_role: Oppdater rolle
|
||||||
actions:
|
actions:
|
||||||
approve_appeal_html: "%{name} godkjente klagen på modereringa fra %{target}"
|
approve_appeal_html: "%{name} godkjente anken på moderering fra %{target}"
|
||||||
approve_user_html: "%{name} godkjente registrering fra %{target}"
|
approve_user_html: "%{name} godkjente registrering fra %{target}"
|
||||||
assigned_to_self_report_html: "%{name} tildelte rapport %{target} til seg selv"
|
assigned_to_self_report_html: "%{name} tildelte rapport %{target} til seg selv"
|
||||||
change_email_user_html: "%{name} endret e-postadressen til brukeren %{target}"
|
change_email_user_html: "%{name} endret e-postadressen til brukeren %{target}"
|
||||||
|
@ -266,7 +266,7 @@
|
||||||
enable_user_html: "%{name} aktiverte innlogging for bruker %{target}"
|
enable_user_html: "%{name} aktiverte innlogging for bruker %{target}"
|
||||||
memorialize_account_html: "%{name} endret %{target}s konto til en minneside"
|
memorialize_account_html: "%{name} endret %{target}s konto til en minneside"
|
||||||
promote_user_html: "%{name} forfremmet bruker %{target}"
|
promote_user_html: "%{name} forfremmet bruker %{target}"
|
||||||
reject_appeal_html: "%{name} avviste moderasjonsavgjørelsesklagen fra %{target}"
|
reject_appeal_html: "%{name} avviste anken på moderering fra %{target}"
|
||||||
reject_user_html: "%{name} avslo registrering fra %{target}"
|
reject_user_html: "%{name} avslo registrering fra %{target}"
|
||||||
remove_avatar_user_html: "%{name} fjernet %{target} sitt profilbilde"
|
remove_avatar_user_html: "%{name} fjernet %{target} sitt profilbilde"
|
||||||
reopen_report_html: "%{name} gjenåpnet rapporten %{target}"
|
reopen_report_html: "%{name} gjenåpnet rapporten %{target}"
|
||||||
|
@ -372,8 +372,8 @@
|
||||||
website: Nettside
|
website: Nettside
|
||||||
disputes:
|
disputes:
|
||||||
appeals:
|
appeals:
|
||||||
empty: Ingen klager funnet.
|
empty: Ingen anker funnet.
|
||||||
title: Klager
|
title: Anker
|
||||||
domain_allows:
|
domain_allows:
|
||||||
add_new: Hvitelist domene
|
add_new: Hvitelist domene
|
||||||
created_msg: Domenet har blitt hvitelistet
|
created_msg: Domenet har blitt hvitelistet
|
||||||
|
@ -692,8 +692,8 @@
|
||||||
invite_users_description: Lar brukere invitere nye personer til serveren
|
invite_users_description: Lar brukere invitere nye personer til serveren
|
||||||
manage_announcements: Behandle Kunngjøringer
|
manage_announcements: Behandle Kunngjøringer
|
||||||
manage_announcements_description: Lar brukere endre kunngjøringer på serveren
|
manage_announcements_description: Lar brukere endre kunngjøringer på serveren
|
||||||
manage_appeals: Behandle klager
|
manage_appeals: Behandle anker
|
||||||
manage_appeals_description: Lar brukere gjennomgå klager mot modereringsaktiviteter
|
manage_appeals_description: Lar brukere gjennomgå anker mot modereringsaktiviteter
|
||||||
manage_blocks: Behandle Blokker
|
manage_blocks: Behandle Blokker
|
||||||
manage_blocks_description: Lar brukere blokkere e-postleverandører og IP-adresser
|
manage_blocks_description: Lar brukere blokkere e-postleverandører og IP-adresser
|
||||||
manage_custom_emojis: Administrer egendefinerte Emojier
|
manage_custom_emojis: Administrer egendefinerte Emojier
|
||||||
|
@ -829,8 +829,8 @@
|
||||||
sensitive: "%{name} merket %{target}s konto som følsom"
|
sensitive: "%{name} merket %{target}s konto som følsom"
|
||||||
silence: "%{name} begrenset %{target}s konto"
|
silence: "%{name} begrenset %{target}s konto"
|
||||||
suspend: "%{name} suspenderte %{target}s konto"
|
suspend: "%{name} suspenderte %{target}s konto"
|
||||||
appeal_approved: Klage tatt til følge
|
appeal_approved: Anket
|
||||||
appeal_pending: Klage behandles
|
appeal_pending: Anke behandles
|
||||||
appeal_rejected: Anke avvist
|
appeal_rejected: Anke avvist
|
||||||
system_checks:
|
system_checks:
|
||||||
database_schema_check:
|
database_schema_check:
|
||||||
|
@ -975,9 +975,9 @@
|
||||||
sensitive: å merke kontoen sin som følsom
|
sensitive: å merke kontoen sin som følsom
|
||||||
silence: for å begrense deres konto
|
silence: for å begrense deres konto
|
||||||
suspend: for å avslutte kontoen
|
suspend: for å avslutte kontoen
|
||||||
body: "%{target} klager på en moderasjonsbeslutning av %{action_taken_by} fra %{date}, noe som var %{type}. De skrev:"
|
body: "%{target} anker en moderasjonsbeslutning av %{action_taken_by} fra %{date}, noe som var %{type}. De skrev:"
|
||||||
next_steps: Du kan godkjenne klagen for å angre på moderasjonsvedtaket eller ignorere det.
|
next_steps: Du kan godkjenne anken for å angre på moderasjonsvedtaket eller ignorere det.
|
||||||
subject: "%{username} klager på en moderasjonsbeslutning for %{instance}"
|
subject: "%{username} anker en moderasjonsbeslutning for %{instance}"
|
||||||
new_critical_software_updates:
|
new_critical_software_updates:
|
||||||
body: Nye kritiske versjoner av Mastodon har blitt utgitt, det kan være fordelaktig å oppdatere så snart som mulig!
|
body: Nye kritiske versjoner av Mastodon har blitt utgitt, det kan være fordelaktig å oppdatere så snart som mulig!
|
||||||
subject: Kritiske Mastodon-oppdateringer er tilgjengelige for %{instance}!
|
subject: Kritiske Mastodon-oppdateringer er tilgjengelige for %{instance}!
|
||||||
|
@ -1161,19 +1161,19 @@
|
||||||
disputes:
|
disputes:
|
||||||
strikes:
|
strikes:
|
||||||
action_taken: Handling utført
|
action_taken: Handling utført
|
||||||
appeal: Klage
|
appeal: Anke
|
||||||
appeal_approved: Denne advarselens klage ble tatt til følge og er ikke lenger gyldig
|
appeal_approved: Denne advarselens anke ble tatt til følge og er ikke lenger gyldig
|
||||||
appeal_rejected: Klagen ble avvist
|
appeal_rejected: Anken ble avvist
|
||||||
appeal_submitted_at: Klage levert
|
appeal_submitted_at: Anke levert
|
||||||
appealed_msg: Din klage har blitt levert. Du får beskjed om den blir godkjent.
|
appealed_msg: Anken din har blitt levert. Du får beskjed om den blir godkjent.
|
||||||
appeals:
|
appeals:
|
||||||
submit: Lever klage
|
submit: Lever anke
|
||||||
approve_appeal: Godkjenn klage
|
approve_appeal: Godkjenn anke
|
||||||
associated_report: Tilhørende rapport
|
associated_report: Tilhørende rapport
|
||||||
created_at: Datert
|
created_at: Datert
|
||||||
description_html: Dette er tiltakene mot din konto og advarsler som har blitt sent til deg av %{instance}-personalet.
|
description_html: Dette er tiltakene mot din konto og advarsler som har blitt sent til deg av %{instance}-personalet.
|
||||||
recipient: Adressert til
|
recipient: Adressert til
|
||||||
reject_appeal: Avvis klage
|
reject_appeal: Avvis anke
|
||||||
status: 'Innlegg #%{id}'
|
status: 'Innlegg #%{id}'
|
||||||
status_removed: Innlegg allerede fjernet fra systemet
|
status_removed: Innlegg allerede fjernet fra systemet
|
||||||
title: "%{action} fra %{date}"
|
title: "%{action} fra %{date}"
|
||||||
|
@ -1185,9 +1185,9 @@
|
||||||
sensitive: Merking av konto som sensitiv
|
sensitive: Merking av konto som sensitiv
|
||||||
silence: Begrensning av konto
|
silence: Begrensning av konto
|
||||||
suspend: Suspensjon av konto
|
suspend: Suspensjon av konto
|
||||||
your_appeal_approved: Din klage har blitt godkjent
|
your_appeal_approved: Anken din har blitt godkjent
|
||||||
your_appeal_pending: Du har levert en klage
|
your_appeal_pending: Du har levert en anke
|
||||||
your_appeal_rejected: Din klage har blitt avvist
|
your_appeal_rejected: Anken din har blitt avvist
|
||||||
domain_validator:
|
domain_validator:
|
||||||
invalid_domain: er ikke et gyldig domenenavn
|
invalid_domain: er ikke et gyldig domenenavn
|
||||||
edit_profile:
|
edit_profile:
|
||||||
|
@ -1608,6 +1608,7 @@
|
||||||
unknown_browser: Ukjent Nettleser
|
unknown_browser: Ukjent Nettleser
|
||||||
weibo: Weibo
|
weibo: Weibo
|
||||||
current_session: Nåværende økt
|
current_session: Nåværende økt
|
||||||
|
date: Dato
|
||||||
description: "%{browser} på %{platform}"
|
description: "%{browser} på %{platform}"
|
||||||
explanation: Dette er nettlesere som er pålogget på din Mastodon-konto akkurat nå.
|
explanation: Dette er nettlesere som er pålogget på din Mastodon-konto akkurat nå.
|
||||||
ip: IP-adresse
|
ip: IP-adresse
|
||||||
|
@ -1740,7 +1741,7 @@
|
||||||
sensitive_content: Følsomt innhold
|
sensitive_content: Følsomt innhold
|
||||||
strikes:
|
strikes:
|
||||||
errors:
|
errors:
|
||||||
too_late: Det er for sent å klage på denne advarselen
|
too_late: Det er for sent å anke denne advarselen
|
||||||
tags:
|
tags:
|
||||||
does_not_match_previous_name: samsvarer ikke med det forrige navnet
|
does_not_match_previous_name: samsvarer ikke med det forrige navnet
|
||||||
themes:
|
themes:
|
||||||
|
@ -1774,16 +1775,27 @@
|
||||||
webauthn: Sikkerhetsnøkler
|
webauthn: Sikkerhetsnøkler
|
||||||
user_mailer:
|
user_mailer:
|
||||||
appeal_approved:
|
appeal_approved:
|
||||||
explanation: Klagen på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt godkjent. Din konto er nok en gang i god stand.
|
action: Kontoinnstillinger
|
||||||
subject: Din klage fra %{date} er godkjent
|
explanation: Anken på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt godkjent. Din konto er nok en gang i god stand.
|
||||||
title: Klage godkjent
|
subject: Anken din fra %{date} er godkjent
|
||||||
|
subtitle: Kontoen din er tilbake i god stand.
|
||||||
|
title: Anke godkjent
|
||||||
appeal_rejected:
|
appeal_rejected:
|
||||||
explanation: Klagen på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt avvist.
|
explanation: Anken på advarselen mot din konto den %{strike_date} som du sendte inn den %{appeal_date} har blitt avvist.
|
||||||
subject: Din klage fra %{date} er avvist
|
subject: Anken din fra %{date} er avvist
|
||||||
title: Klage avvist
|
subtitle: Anken din har blitt avvist.
|
||||||
|
title: Anke avvist
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
explanation: Du etterspurte en fullstendig sikkerhetskopi av din Mastodon-konto.
|
||||||
|
extra: Den er nå klar for nedlasting!
|
||||||
subject: Arkivet ditt er klart til å lastes ned
|
subject: Arkivet ditt er klart til å lastes ned
|
||||||
title: Nedlasting av arkiv
|
title: Nedlasting av arkiv
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Her er detaljer om påloggingsforsøket:'
|
||||||
|
explanation: Noen har prøvd å logge på kontoen din, men ga en ugyldig andre-autentiseringsfaktor.
|
||||||
|
further_actions_html: Hvis dette ikke var deg, anbefaler vi at du %{action} umiddelbart fordi det kan ha blitt kompromittert.
|
||||||
|
subject: Andre-autentiseringsfaktorfeil
|
||||||
|
title: Mislykket andre-autentiseringsfaktor
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: endre passord
|
change_password: endre passord
|
||||||
details: 'Her er detaljer om påloggingen:'
|
details: 'Her er detaljer om påloggingen:'
|
||||||
|
@ -1792,8 +1804,8 @@
|
||||||
subject: Din konto ble tatt i bruk fra en ny IP-adresse
|
subject: Din konto ble tatt i bruk fra en ny IP-adresse
|
||||||
title: En ny pålogging
|
title: En ny pålogging
|
||||||
warning:
|
warning:
|
||||||
appeal: Lever en klage
|
appeal: Lever en anke
|
||||||
appeal_description: Hvis du mener dette er feil, kan du sende inn en klage til personalet i %{instance}.
|
appeal_description: Hvis du mener dette er feil, kan du sende inn en anke til personalet i %{instance}.
|
||||||
categories:
|
categories:
|
||||||
spam: Søppelpost
|
spam: Søppelpost
|
||||||
violation: Innholdet bryter følgende retningslinjer for fellesskapet
|
violation: Innholdet bryter følgende retningslinjer for fellesskapet
|
||||||
|
@ -1837,6 +1849,7 @@
|
||||||
go_to_sso_account_settings: Gå til din identitetsleverandørs kontoinnstillinger
|
go_to_sso_account_settings: Gå til din identitetsleverandørs kontoinnstillinger
|
||||||
invalid_otp_token: Ugyldig to-faktorkode
|
invalid_otp_token: Ugyldig to-faktorkode
|
||||||
otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email}
|
otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email}
|
||||||
|
rate_limited: For mange autentiseringsforsøk, prøv igjen senere.
|
||||||
seamless_external_login: Du er logget inn via en ekstern tjeneste, så passord og e-post innstillinger er ikke tilgjengelige.
|
seamless_external_login: Du er logget inn via en ekstern tjeneste, så passord og e-post innstillinger er ikke tilgjengelige.
|
||||||
signed_in_as: 'Innlogget som:'
|
signed_in_as: 'Innlogget som:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1854,6 +1854,12 @@ pl:
|
||||||
extra: Gotowe do pobrania!
|
extra: Gotowe do pobrania!
|
||||||
subject: Twoje archiwum jest gotowe do pobrania
|
subject: Twoje archiwum jest gotowe do pobrania
|
||||||
title: Odbiór archiwum
|
title: Odbiór archiwum
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Oto szczegóły próby logowania:'
|
||||||
|
explanation: Ktoś próbował zalogować się na twoje konto, ale nie przeszedł drugiego etapu autoryzacji.
|
||||||
|
further_actions_html: Jeśli to nie ty, polecamy natychmiastowo %{action}, bo może ono być narażone.
|
||||||
|
subject: Błąd drugiego etapu uwierzytelniania
|
||||||
|
title: Nieudane uwierzytelnienie w drugim etapie
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: zmień hasło
|
change_password: zmień hasło
|
||||||
details: 'Oto szczegóły logowania:'
|
details: 'Oto szczegóły logowania:'
|
||||||
|
@ -1907,6 +1913,7 @@ pl:
|
||||||
go_to_sso_account_settings: Przejdź do ustawień konta dostawcy tożsamości
|
go_to_sso_account_settings: Przejdź do ustawień konta dostawcy tożsamości
|
||||||
invalid_otp_token: Kod uwierzytelniający jest niepoprawny
|
invalid_otp_token: Kod uwierzytelniający jest niepoprawny
|
||||||
otp_lost_help_html: Jeżeli utracisz dostęp do obu, możesz skontaktować się z %{email}
|
otp_lost_help_html: Jeżeli utracisz dostęp do obu, możesz skontaktować się z %{email}
|
||||||
|
rate_limited: Zbyt wiele prób uwierzytelnienia. Spróbuj ponownie później.
|
||||||
seamless_external_login: Zalogowano z użyciem zewnętrznej usługi, więc ustawienia hasła i adresu e-mail nie są dostępne.
|
seamless_external_login: Zalogowano z użyciem zewnętrznej usługi, więc ustawienia hasła i adresu e-mail nie są dostępne.
|
||||||
signed_in_as: 'Zalogowano jako:'
|
signed_in_as: 'Zalogowano jako:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1789,6 +1789,12 @@ pt-BR:
|
||||||
extra: Agora está pronto para baixar!
|
extra: Agora está pronto para baixar!
|
||||||
subject: Seu arquivo está pronto para ser baixado
|
subject: Seu arquivo está pronto para ser baixado
|
||||||
title: Baixar arquivo
|
title: Baixar arquivo
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Aqui estão os detalhes da tentativa de acesso:'
|
||||||
|
explanation: Alguém tentou entrar em sua conta, mas forneceu um segundo fator de autenticação inválido.
|
||||||
|
further_actions_html: Se não foi você, recomendamos que %{action} imediatamente, pois ela pode ser comprometida.
|
||||||
|
subject: Falha na autenticação do segundo fator
|
||||||
|
title: Falha na autenticação do segundo fator
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: Altere sua senha
|
change_password: Altere sua senha
|
||||||
details: 'Aqui estão os detalhes do acesso:'
|
details: 'Aqui estão os detalhes do acesso:'
|
||||||
|
@ -1842,6 +1848,7 @@ pt-BR:
|
||||||
go_to_sso_account_settings: Vá para as configurações de conta do seu provedor de identidade
|
go_to_sso_account_settings: Vá para as configurações de conta do seu provedor de identidade
|
||||||
invalid_otp_token: Código de dois fatores inválido
|
invalid_otp_token: Código de dois fatores inválido
|
||||||
otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email}
|
otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email}
|
||||||
|
rate_limited: Muitas tentativas de autenticação; tente novamente mais tarde.
|
||||||
seamless_external_login: Você entrou usando um serviço externo, então configurações de e-mail e senha não estão disponíveis.
|
seamless_external_login: Você entrou usando um serviço externo, então configurações de e-mail e senha não estão disponíveis.
|
||||||
signed_in_as: 'Entrou como:'
|
signed_in_as: 'Entrou como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,12 @@ pt-PT:
|
||||||
extra: Está pronta para transferir!
|
extra: Está pronta para transferir!
|
||||||
subject: O seu arquivo está pronto para descarregar
|
subject: O seu arquivo está pronto para descarregar
|
||||||
title: Arquivo de ficheiros
|
title: Arquivo de ficheiros
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Aqui estão os detalhes da tentativa de entrada:'
|
||||||
|
explanation: Alguém tentou entrar em sua conta mas forneceu um segundo fator de autenticação inválido.
|
||||||
|
further_actions_html: Se não foi você, recomendamos que %{action} imediatamente, pois pode ter sido comprometido.
|
||||||
|
subject: Falha na autenticação do segundo fator
|
||||||
|
title: Falha na autenticação do segundo fator
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: alterar a sua palavra-passe
|
change_password: alterar a sua palavra-passe
|
||||||
details: 'Eis os pormenores do início de sessão:'
|
details: 'Eis os pormenores do início de sessão:'
|
||||||
|
@ -1843,6 +1849,7 @@ pt-PT:
|
||||||
go_to_sso_account_settings: Ir para as definições de conta do seu fornecedor de identidade
|
go_to_sso_account_settings: Ir para as definições de conta do seu fornecedor de identidade
|
||||||
invalid_otp_token: Código de autenticação inválido
|
invalid_otp_token: Código de autenticação inválido
|
||||||
otp_lost_help_html: Se perdeu o acesso a ambos, pode entrar em contacto com %{email}
|
otp_lost_help_html: Se perdeu o acesso a ambos, pode entrar em contacto com %{email}
|
||||||
|
rate_limited: Demasiadas tentativas de autenticação, tente novamente mais tarde.
|
||||||
seamless_external_login: Tu estás ligado via um serviço externo. Por isso, as configurações da palavra-passe e do e-mail não estão disponíveis.
|
seamless_external_login: Tu estás ligado via um serviço externo. Por isso, as configurações da palavra-passe e do e-mail não estão disponíveis.
|
||||||
signed_in_as: 'Registado como:'
|
signed_in_as: 'Registado como:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme
|
starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme
|
||||||
text: Du kan bruke innlegg-syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm
|
text: Du kan bruke innlegg-syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm
|
||||||
appeal:
|
appeal:
|
||||||
text: Du kan kun klage på en advarsel en gang
|
text: Du kan kun anke en advarsel en gang
|
||||||
defaults:
|
defaults:
|
||||||
autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg
|
autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg
|
||||||
avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
|
avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px
|
||||||
|
@ -282,7 +282,7 @@
|
||||||
sign_up_requires_approval: Begrens påmeldinger
|
sign_up_requires_approval: Begrens påmeldinger
|
||||||
severity: Oppføring
|
severity: Oppføring
|
||||||
notification_emails:
|
notification_emails:
|
||||||
appeal: Noen klager på en moderator sin avgjørelse
|
appeal: Noen anker en moderator sin avgjørelse
|
||||||
digest: Send sammendrag på e-post
|
digest: Send sammendrag på e-post
|
||||||
favourite: Send e-post når noen setter din status som favoritt
|
favourite: Send e-post når noen setter din status som favoritt
|
||||||
follow: Send e-post når noen følger deg
|
follow: Send e-post når noen følger deg
|
||||||
|
|
|
@ -732,6 +732,7 @@ sk:
|
||||||
new_appeal:
|
new_appeal:
|
||||||
actions:
|
actions:
|
||||||
none: varovanie
|
none: varovanie
|
||||||
|
silence: obmedziť ich účet
|
||||||
new_pending_account:
|
new_pending_account:
|
||||||
body: Podrobnosti o novom účte sú uvedené nižšie. Môžeš túto registračnú požiadavku buď prijať, alebo zamietnúť.
|
body: Podrobnosti o novom účte sú uvedené nižšie. Môžeš túto registračnú požiadavku buď prijať, alebo zamietnúť.
|
||||||
subject: Nový účet očakáva preverenie na %{instance} (%{username})
|
subject: Nový účet očakáva preverenie na %{instance} (%{username})
|
||||||
|
@ -1279,6 +1280,7 @@ sk:
|
||||||
follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí
|
follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí
|
||||||
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
|
||||||
otp_lost_help_html: Pokiaľ si stratil/a prístup k obom, môžeš dať vedieť %{email}
|
otp_lost_help_html: Pokiaľ si stratil/a prístup k obom, môžeš dať vedieť %{email}
|
||||||
|
rate_limited: Príliš veľa pokusov o overenie, skús to znova neskôr.
|
||||||
seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné.
|
seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné.
|
||||||
signed_in_as: 'Prihlásená/ý ako:'
|
signed_in_as: 'Prihlásená/ý ako:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1907,6 +1907,7 @@ sl:
|
||||||
go_to_sso_account_settings: Pojdite na nastavitve svojega računa ponudnika identitete
|
go_to_sso_account_settings: Pojdite na nastavitve svojega računa ponudnika identitete
|
||||||
invalid_otp_token: Neveljavna dvofaktorska koda
|
invalid_otp_token: Neveljavna dvofaktorska koda
|
||||||
otp_lost_help_html: Če ste izgubili dostop do obeh, stopite v stik z %{email}
|
otp_lost_help_html: Če ste izgubili dostop do obeh, stopite v stik z %{email}
|
||||||
|
rate_limited: Preveč poskusov preverjanja pristnosti, poskusite kasneje.
|
||||||
seamless_external_login: Prijavljeni ste prek zunanje storitve, tako da nastavitve gesla in e-pošte niso na voljo.
|
seamless_external_login: Prijavljeni ste prek zunanje storitve, tako da nastavitve gesla in e-pošte niso na voljo.
|
||||||
signed_in_as: 'Vpisani kot:'
|
signed_in_as: 'Vpisani kot:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1822,6 +1822,12 @@ sr-Latn:
|
||||||
extra: Sada je spremno za preuzimanje!
|
extra: Sada je spremno za preuzimanje!
|
||||||
subject: Vaša arhiva je spremna za preuzimanje
|
subject: Vaša arhiva je spremna za preuzimanje
|
||||||
title: Izvoz arhive
|
title: Izvoz arhive
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Evo detalja o pokušaju prijavljivanja:'
|
||||||
|
explanation: Neko je pokušao da se prijavi na vaš nalog ali je dao nevažeći drugi faktor autentifikacije.
|
||||||
|
further_actions_html: Ako to niste bili vi, preporučujemo vam da odmah %{action} jer može biti ugrožena.
|
||||||
|
subject: Neuspeh drugog faktora autentifikacije
|
||||||
|
title: Nije uspeo drugi faktor autentifikacije
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: promenite svoju lozinku
|
change_password: promenite svoju lozinku
|
||||||
details: 'Evo detalja o prijavi:'
|
details: 'Evo detalja o prijavi:'
|
||||||
|
@ -1875,6 +1881,7 @@ sr-Latn:
|
||||||
go_to_sso_account_settings: Idite na podešavanja naloga svog dobavljača identiteta
|
go_to_sso_account_settings: Idite na podešavanja naloga svog dobavljača identiteta
|
||||||
invalid_otp_token: Neispravni dvofaktorski kod
|
invalid_otp_token: Neispravni dvofaktorski kod
|
||||||
otp_lost_help_html: Ako izgubite pristup za oba, možete stupiti u kontakt sa %{email}
|
otp_lost_help_html: Ako izgubite pristup za oba, možete stupiti u kontakt sa %{email}
|
||||||
|
rate_limited: Previše pokušaja autentifikacije, pokušajte ponovo kasnije.
|
||||||
seamless_external_login: Prijavljeni ste putem spoljašnje usluge, tako da lozinka i podešavanja E-pošte nisu dostupni.
|
seamless_external_login: Prijavljeni ste putem spoljašnje usluge, tako da lozinka i podešavanja E-pošte nisu dostupni.
|
||||||
signed_in_as: 'Prijavljen/a kao:'
|
signed_in_as: 'Prijavljen/a kao:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1822,6 +1822,12 @@ sr:
|
||||||
extra: Сада је спремно за преузимање!
|
extra: Сада је спремно за преузимање!
|
||||||
subject: Ваша архива је спремна за преузимање
|
subject: Ваша архива је спремна за преузимање
|
||||||
title: Извоз архиве
|
title: Извоз архиве
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Ево детаља о покушају пријављивања:'
|
||||||
|
explanation: Неко је покушао да се пријави на ваш налог али је дао неважећи други фактор аутентификације.
|
||||||
|
further_actions_html: Ако то нисте били ви, препоручујемо вам да одмах %{action} јер може бити угрожена.
|
||||||
|
subject: Неуспех другог фактора аутентификације
|
||||||
|
title: Није успео други фактор аутентификације
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: промените своју лозинку
|
change_password: промените своју лозинку
|
||||||
details: 'Ево детаља о пријави:'
|
details: 'Ево детаља о пријави:'
|
||||||
|
@ -1875,6 +1881,7 @@ sr:
|
||||||
go_to_sso_account_settings: Идите на подешавања налога свог добављача идентитета
|
go_to_sso_account_settings: Идите на подешавања налога свог добављача идентитета
|
||||||
invalid_otp_token: Неисправни двофакторски код
|
invalid_otp_token: Неисправни двофакторски код
|
||||||
otp_lost_help_html: Ако изгубите приступ за оба, можете ступити у контакт са %{email}
|
otp_lost_help_html: Ако изгубите приступ за оба, можете ступити у контакт са %{email}
|
||||||
|
rate_limited: Превише покушаја аутентификације, покушајте поново касније.
|
||||||
seamless_external_login: Пријављени сте путем спољашње услуге, тако да лозинка и подешавања Е-поште нису доступни.
|
seamless_external_login: Пријављени сте путем спољашње услуге, тако да лозинка и подешавања Е-поште нису доступни.
|
||||||
signed_in_as: 'Пријављен/а као:'
|
signed_in_as: 'Пријављен/а као:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1789,6 +1789,9 @@ sv:
|
||||||
extra: Nu redo för nedladdning!
|
extra: Nu redo för nedladdning!
|
||||||
subject: Ditt arkiv är klart för nedladdning
|
subject: Ditt arkiv är klart för nedladdning
|
||||||
title: Arkivuttagning
|
title: Arkivuttagning
|
||||||
|
failed_2fa:
|
||||||
|
further_actions_html: Om detta inte var du, rekommenderar vi att du %{action} omedelbart eftersom ditt konto kan ha äventyrats.
|
||||||
|
title: Misslyckad tvåfaktorsautentisering
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: Ändra ditt lösenord
|
change_password: Ändra ditt lösenord
|
||||||
details: 'Här är inloggningsdetaljerna:'
|
details: 'Här är inloggningsdetaljerna:'
|
||||||
|
@ -1842,6 +1845,7 @@ sv:
|
||||||
go_to_sso_account_settings: Gå till din identitetsleverantörs kontoinställningar
|
go_to_sso_account_settings: Gå till din identitetsleverantörs kontoinställningar
|
||||||
invalid_otp_token: Ogiltig tvåfaktorskod
|
invalid_otp_token: Ogiltig tvåfaktorskod
|
||||||
otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email}
|
otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email}
|
||||||
|
rate_limited: För många autentiseringsförsök, försök igen senare.
|
||||||
seamless_external_login: Du är inloggad via en extern tjänst, inställningar för lösenord och e-post är därför inte tillgängliga.
|
seamless_external_login: Du är inloggad via en extern tjänst, inställningar för lösenord och e-post är därför inte tillgängliga.
|
||||||
signed_in_as: 'Inloggad som:'
|
signed_in_as: 'Inloggad som:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -847,7 +847,7 @@ th:
|
||||||
message_html: ไม่มีกระบวนการ Sidekiq ที่กำลังทำงานสำหรับคิว %{value} โปรดตรวจทานการกำหนดค่า Sidekiq ของคุณ
|
message_html: ไม่มีกระบวนการ Sidekiq ที่กำลังทำงานสำหรับคิว %{value} โปรดตรวจทานการกำหนดค่า Sidekiq ของคุณ
|
||||||
software_version_critical_check:
|
software_version_critical_check:
|
||||||
action: ดูการอัปเดตที่พร้อมใช้งาน
|
action: ดูการอัปเดตที่พร้อมใช้งาน
|
||||||
message_html: มีการอัปเดต Mastodon สำคัญพร้อมใช้งาน โปรดอัปเดตโดยเร็วที่สุดเท่าที่จะทำได้
|
message_html: มีการอัปเดต Mastodon สำคัญพร้อมใช้งาน โปรดอัปเดตโดยเร็วที่สุดเท่าที่จะเป็นไปได้
|
||||||
software_version_patch_check:
|
software_version_patch_check:
|
||||||
action: ดูการอัปเดตที่พร้อมใช้งาน
|
action: ดูการอัปเดตที่พร้อมใช้งาน
|
||||||
message_html: มีการอัปเดต Mastodon ที่แก้ไขข้อบกพร่องพร้อมใช้งาน
|
message_html: มีการอัปเดต Mastodon ที่แก้ไขข้อบกพร่องพร้อมใช้งาน
|
||||||
|
@ -961,7 +961,7 @@ th:
|
||||||
next_steps: คุณสามารถอนุมัติการอุทธรณ์เพื่อเลิกทำการตัดสินใจในการควบคุม หรือเพิกเฉยต่อการอุทธรณ์
|
next_steps: คุณสามารถอนุมัติการอุทธรณ์เพื่อเลิกทำการตัดสินใจในการควบคุม หรือเพิกเฉยต่อการอุทธรณ์
|
||||||
subject: "%{username} กำลังอุทธรณ์การตัดสินใจในการควบคุมใน %{instance}"
|
subject: "%{username} กำลังอุทธรณ์การตัดสินใจในการควบคุมใน %{instance}"
|
||||||
new_critical_software_updates:
|
new_critical_software_updates:
|
||||||
body: มีการปล่อยรุ่น Mastodon สำคัญใหม่ คุณอาจต้องการอัปเดตโดยเร็วที่สุดเท่าที่จะทำได้!
|
body: มีการปล่อยรุ่น Mastodon สำคัญใหม่ คุณอาจต้องการอัปเดตโดยเร็วที่สุดเท่าที่จะเป็นไปได้!
|
||||||
subject: การอัปเดต Mastodon สำคัญพร้อมใช้งานสำหรับ %{instance}!
|
subject: การอัปเดต Mastodon สำคัญพร้อมใช้งานสำหรับ %{instance}!
|
||||||
new_pending_account:
|
new_pending_account:
|
||||||
body: รายละเอียดของบัญชีใหม่อยู่ด้านล่าง คุณสามารถอนุมัติหรือปฏิเสธใบสมัครนี้
|
body: รายละเอียดของบัญชีใหม่อยู่ด้านล่าง คุณสามารถอนุมัติหรือปฏิเสธใบสมัครนี้
|
||||||
|
@ -1582,6 +1582,7 @@ th:
|
||||||
unknown_browser: เบราว์เซอร์ที่ไม่รู้จัก
|
unknown_browser: เบราว์เซอร์ที่ไม่รู้จัก
|
||||||
weibo: Weibo
|
weibo: Weibo
|
||||||
current_session: เซสชันปัจจุบัน
|
current_session: เซสชันปัจจุบัน
|
||||||
|
date: วันที่
|
||||||
description: "%{browser} ใน %{platform}"
|
description: "%{browser} ใน %{platform}"
|
||||||
explanation: นี่คือเว็บเบราว์เซอร์ที่เข้าสู่ระบบบัญชี Mastodon ของคุณในปัจจุบัน
|
explanation: นี่คือเว็บเบราว์เซอร์ที่เข้าสู่ระบบบัญชี Mastodon ของคุณในปัจจุบัน
|
||||||
ip: IP
|
ip: IP
|
||||||
|
@ -1742,14 +1743,19 @@ th:
|
||||||
webauthn: กุญแจความปลอดภัย
|
webauthn: กุญแจความปลอดภัย
|
||||||
user_mailer:
|
user_mailer:
|
||||||
appeal_approved:
|
appeal_approved:
|
||||||
|
action: การตั้งค่าบัญชี
|
||||||
explanation: อนุมัติการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว บัญชีของคุณอยู่ในสถานะที่ดีอีกครั้งหนึ่ง
|
explanation: อนุมัติการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว บัญชีของคุณอยู่ในสถานะที่ดีอีกครั้งหนึ่ง
|
||||||
subject: อนุมัติการอุทธรณ์ของคุณจาก %{date} แล้ว
|
subject: อนุมัติการอุทธรณ์ของคุณจาก %{date} แล้ว
|
||||||
|
subtitle: บัญชีของคุณอยู่ในสถานะที่ดีอีกครั้งหนึ่ง
|
||||||
title: อนุมัติการอุทธรณ์แล้ว
|
title: อนุมัติการอุทธรณ์แล้ว
|
||||||
appeal_rejected:
|
appeal_rejected:
|
||||||
explanation: ปฏิเสธการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว
|
explanation: ปฏิเสธการอุทธรณ์การดำเนินการต่อบัญชีของคุณเมื่อ %{strike_date} ที่คุณได้ส่งเมื่อ %{appeal_date} แล้ว
|
||||||
subject: ปฏิเสธการอุทธรณ์ของคุณจาก %{date} แล้ว
|
subject: ปฏิเสธการอุทธรณ์ของคุณจาก %{date} แล้ว
|
||||||
|
subtitle: ปฏิเสธการอุทธรณ์ของคุณแล้ว
|
||||||
title: ปฏิเสธการอุทธรณ์แล้ว
|
title: ปฏิเสธการอุทธรณ์แล้ว
|
||||||
backup_ready:
|
backup_ready:
|
||||||
|
explanation: คุณได้ขอข้อมูลสำรองแบบเต็มของบัญชี Mastodon ของคุณ
|
||||||
|
extra: ตอนนี้ข้อมูลสำรองพร้อมสำหรับการดาวน์โหลดแล้ว!
|
||||||
subject: การเก็บถาวรของคุณพร้อมสำหรับการดาวน์โหลดแล้ว
|
subject: การเก็บถาวรของคุณพร้อมสำหรับการดาวน์โหลดแล้ว
|
||||||
title: การส่งออกการเก็บถาวร
|
title: การส่งออกการเก็บถาวร
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
|
@ -1805,6 +1811,7 @@ th:
|
||||||
go_to_sso_account_settings: ไปยังการตั้งค่าบัญชีของผู้ให้บริการข้อมูลประจำตัวของคุณ
|
go_to_sso_account_settings: ไปยังการตั้งค่าบัญชีของผู้ให้บริการข้อมูลประจำตัวของคุณ
|
||||||
invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
|
invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
|
||||||
otp_lost_help_html: หากคุณสูญเสียการเข้าถึงทั้งสองอย่าง คุณสามารถติดต่อ %{email}
|
otp_lost_help_html: หากคุณสูญเสียการเข้าถึงทั้งสองอย่าง คุณสามารถติดต่อ %{email}
|
||||||
|
rate_limited: มีความพยายามในการรับรองความถูกต้องมากเกินไป ลองอีกครั้งในภายหลัง
|
||||||
seamless_external_login: คุณได้เข้าสู่ระบบผ่านบริการภายนอก ดังนั้นจึงไม่มีการตั้งค่ารหัสผ่านและอีเมล
|
seamless_external_login: คุณได้เข้าสู่ระบบผ่านบริการภายนอก ดังนั้นจึงไม่มีการตั้งค่ารหัสผ่านและอีเมล
|
||||||
signed_in_as: 'ลงชื่อเข้าเป็น:'
|
signed_in_as: 'ลงชื่อเข้าเป็น:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1790,6 +1790,12 @@ tr:
|
||||||
extra: Şimdi indirebilirsiniz!
|
extra: Şimdi indirebilirsiniz!
|
||||||
subject: Arşiviniz indirilmeye hazır
|
subject: Arşiviniz indirilmeye hazır
|
||||||
title: Arşiv paketlemesi
|
title: Arşiv paketlemesi
|
||||||
|
failed_2fa:
|
||||||
|
details: 'Oturum açma denemesinin ayrıntıları şöyledir:'
|
||||||
|
explanation: Birisi hesabınızda oturum açmaya çalıştı ancak hatalı bir iki aşamalı doğrulama kodu kullandı.
|
||||||
|
further_actions_html: Eğer bu kişi siz değilseniz, hemen %{action} yapmanızı öneriyoruz çünkü hesabınız ifşa olmuş olabilir.
|
||||||
|
subject: İki aşamalı doğrulama başarısızlığı
|
||||||
|
title: Başarısız iki aşamalı kimlik doğrulama
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: parolanızı değiştirin
|
change_password: parolanızı değiştirin
|
||||||
details: 'Oturum açma ayrıntıları şöyledir:'
|
details: 'Oturum açma ayrıntıları şöyledir:'
|
||||||
|
@ -1843,6 +1849,7 @@ tr:
|
||||||
go_to_sso_account_settings: Kimlik sağlayıcı hesap ayarlarına gidin
|
go_to_sso_account_settings: Kimlik sağlayıcı hesap ayarlarına gidin
|
||||||
invalid_otp_token: Geçersiz iki adımlı doğrulama kodu
|
invalid_otp_token: Geçersiz iki adımlı doğrulama kodu
|
||||||
otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz
|
otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz
|
||||||
|
rate_limited: Çok fazla kimlik doğrulama denemesi. Daha sonra tekrar deneyin.
|
||||||
seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir.
|
seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir.
|
||||||
signed_in_as: 'Oturum açtı:'
|
signed_in_as: 'Oturum açtı:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1903,6 +1903,7 @@ uk:
|
||||||
go_to_sso_account_settings: Перейдіть до налаштувань облікового запису постачальника ідентифікації
|
go_to_sso_account_settings: Перейдіть до налаштувань облікового запису постачальника ідентифікації
|
||||||
invalid_otp_token: Введено неправильний код
|
invalid_otp_token: Введено неправильний код
|
||||||
otp_lost_help_html: Якщо ви втратили доступ до обох, ви можете отримати доступ з %{email}
|
otp_lost_help_html: Якщо ви втратили доступ до обох, ви можете отримати доступ з %{email}
|
||||||
|
rate_limited: Занадто багато спроб з'єднання. Спробуйте ще раз пізніше.
|
||||||
seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні.
|
seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні.
|
||||||
signed_in_as: 'Ви увійшли як:'
|
signed_in_as: 'Ви увійшли як:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1811,6 +1811,7 @@ vi:
|
||||||
go_to_sso_account_settings: Thiết lập tài khoản nhà cung cấp danh tính
|
go_to_sso_account_settings: Thiết lập tài khoản nhà cung cấp danh tính
|
||||||
invalid_otp_token: Mã xác minh 2 bước không hợp lệ
|
invalid_otp_token: Mã xác minh 2 bước không hợp lệ
|
||||||
otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể đăng nhập bằng %{email}
|
otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể đăng nhập bằng %{email}
|
||||||
|
rate_limited: Quá nhiều lần thử, vui lòng thử lại sau.
|
||||||
seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy mật khẩu và email không khả dụng.
|
seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy mật khẩu và email không khả dụng.
|
||||||
signed_in_as: 'Đăng nhập bằng:'
|
signed_in_as: 'Đăng nhập bằng:'
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1758,6 +1758,12 @@ zh-CN:
|
||||||
extra: 现在它可以下载了!
|
extra: 现在它可以下载了!
|
||||||
subject: 你的存档已经准备完毕
|
subject: 你的存档已经准备完毕
|
||||||
title: 存档导出
|
title: 存档导出
|
||||||
|
failed_2fa:
|
||||||
|
details: 以下是该次登录尝试的详情:
|
||||||
|
explanation: 有人试图登录到您的账户,但提供了无效的辅助认证因子。
|
||||||
|
further_actions_html: 如果这不是您所为,您的密码可能已经泄露,建议您立即 %{action} 。
|
||||||
|
subject: 辅助认证失败
|
||||||
|
title: 辅助认证失败
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: 更改密码
|
change_password: 更改密码
|
||||||
details: 以下是该次登录的详细信息:
|
details: 以下是该次登录的详细信息:
|
||||||
|
@ -1811,6 +1817,7 @@ zh-CN:
|
||||||
go_to_sso_account_settings: 转到您的身份提供商进行账户设置
|
go_to_sso_account_settings: 转到您的身份提供商进行账户设置
|
||||||
invalid_otp_token: 输入的双因素认证代码无效
|
invalid_otp_token: 输入的双因素认证代码无效
|
||||||
otp_lost_help_html: 如果你不慎丢失了所有的代码,请联系 %{email} 寻求帮助
|
otp_lost_help_html: 如果你不慎丢失了所有的代码,请联系 %{email} 寻求帮助
|
||||||
|
rate_limited: 验证尝试次数过多,请稍后再试。
|
||||||
seamless_external_login: 因为你是通过外部服务登录的,所以密码和电子邮件地址设置都不可用。
|
seamless_external_login: 因为你是通过外部服务登录的,所以密码和电子邮件地址设置都不可用。
|
||||||
signed_in_as: 当前登录的账户:
|
signed_in_as: 当前登录的账户:
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1758,6 +1758,12 @@ zh-HK:
|
||||||
extra: 現在可以下載了!
|
extra: 現在可以下載了!
|
||||||
subject: 你的備份檔已可供下載
|
subject: 你的備份檔已可供下載
|
||||||
title: 檔案匯出
|
title: 檔案匯出
|
||||||
|
failed_2fa:
|
||||||
|
details: 以下是嘗試登入的細節:
|
||||||
|
explanation: 有人嘗試登入你的帳號,但沒有通過雙重認證。
|
||||||
|
further_actions_html: 如果這不是你,我們建議你立刻%{action},因為你的帳號或已遭到侵害。
|
||||||
|
subject: 雙重認證失敗
|
||||||
|
title: 雙重認證失敗
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: 更改你的密碼
|
change_password: 更改你的密碼
|
||||||
details: 以下是登入的細節:
|
details: 以下是登入的細節:
|
||||||
|
@ -1811,6 +1817,7 @@ zh-HK:
|
||||||
go_to_sso_account_settings: 前往你身份提供者的帳號設定
|
go_to_sso_account_settings: 前往你身份提供者的帳號設定
|
||||||
invalid_otp_token: 雙重認證碼不正確
|
invalid_otp_token: 雙重認證碼不正確
|
||||||
otp_lost_help_html: 如果這兩者你均無法登入,你可以聯繫 %{email}
|
otp_lost_help_html: 如果這兩者你均無法登入,你可以聯繫 %{email}
|
||||||
|
rate_limited: 嘗試認證次數太多,請稍後再試。
|
||||||
seamless_external_login: 因為你正在使用第三方服務登入,所以不能設定密碼和電郵。
|
seamless_external_login: 因為你正在使用第三方服務登入,所以不能設定密碼和電郵。
|
||||||
signed_in_as: 目前登入的帳戶:
|
signed_in_as: 目前登入的帳戶:
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -1760,6 +1760,12 @@ zh-TW:
|
||||||
extra: 準備好下載了!
|
extra: 準備好下載了!
|
||||||
subject: 您的備份檔已可供下載
|
subject: 您的備份檔已可供下載
|
||||||
title: 檔案匯出
|
title: 檔案匯出
|
||||||
|
failed_2fa:
|
||||||
|
details: 以下是該登入嘗試之詳細資訊:
|
||||||
|
explanation: 有人嘗試登入您的帳號,但提供了無效的第二個驗證因子。
|
||||||
|
further_actions_html: 若這並非您所為,我們建議您立刻 %{action},因為其可能已被入侵。
|
||||||
|
subject: 第二因子驗證失敗
|
||||||
|
title: 第二因子身份驗證失敗
|
||||||
suspicious_sign_in:
|
suspicious_sign_in:
|
||||||
change_password: 變更密碼
|
change_password: 變更密碼
|
||||||
details: 以下是該登入之詳細資訊:
|
details: 以下是該登入之詳細資訊:
|
||||||
|
@ -1813,6 +1819,7 @@ zh-TW:
|
||||||
go_to_sso_account_settings: 前往您的身分提供商 (identity provider) 之帳號設定
|
go_to_sso_account_settings: 前往您的身分提供商 (identity provider) 之帳號設定
|
||||||
invalid_otp_token: 兩階段認證碼不正確
|
invalid_otp_token: 兩階段認證碼不正確
|
||||||
otp_lost_help_html: 如果您無法存取這兩者,您可以透過 %{email} 與我們聯繫
|
otp_lost_help_html: 如果您無法存取這兩者,您可以透過 %{email} 與我們聯繫
|
||||||
|
rate_limited: 身份驗證嘗試太多次,請稍後再試。
|
||||||
seamless_external_login: 由於您是由外部系統登入,所以不能設定密碼與電子郵件。
|
seamless_external_login: 由於您是由外部系統登入,所以不能設定密碼與電子郵件。
|
||||||
signed_in_as: 目前登入的帳號:
|
signed_in_as: 目前登入的帳號:
|
||||||
verification:
|
verification:
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"strict": false,
|
"strict": false,
|
||||||
"target": "ES2022"
|
"target": "ES2022",
|
||||||
},
|
},
|
||||||
"exclude": ["**/build/*", "**/node_modules/*", "**/public/*", "**/vendor/*"]
|
"exclude": ["**/build/*", "**/node_modules/*", "**/public/*", "**/vendor/*"],
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,7 +275,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
def deduplicate_users_process_email
|
def deduplicate_users_process_email
|
||||||
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users GROUP BY email HAVING count(*) > 1").each do |row|
|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users GROUP BY email HAVING count(*) > 1").each do |row|
|
||||||
users = User.where(id: row['ids'].split(',')).order(updated_at: :desc).to_a
|
users = User.where(id: row['ids'].split(',')).order(updated_at: :desc).includes(:account).to_a
|
||||||
ref_user = users.shift
|
ref_user = users.shift
|
||||||
say "Multiple users registered with e-mail address #{ref_user.email}.", :yellow
|
say "Multiple users registered with e-mail address #{ref_user.email}.", :yellow
|
||||||
say "e-mail will be disabled for the following accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
say "e-mail will be disabled for the following accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
||||||
|
@ -289,7 +289,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
def deduplicate_users_process_confirmation_token
|
def deduplicate_users_process_confirmation_token
|
||||||
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE confirmation_token IS NOT NULL GROUP BY confirmation_token HAVING count(*) > 1").each do |row|
|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE confirmation_token IS NOT NULL GROUP BY confirmation_token HAVING count(*) > 1").each do |row|
|
||||||
users = User.where(id: row['ids'].split(',')).order(created_at: :desc).to_a.drop(1)
|
users = User.where(id: row['ids'].split(',')).order(created_at: :desc).includes(:account).to_a.drop(1)
|
||||||
say "Unsetting confirmation token for those accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
say "Unsetting confirmation token for those accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
||||||
|
|
||||||
users.each do |user|
|
users.each do |user|
|
||||||
|
@ -313,7 +313,7 @@ module Mastodon::CLI
|
||||||
|
|
||||||
def deduplicate_users_process_password_token
|
def deduplicate_users_process_password_token
|
||||||
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE reset_password_token IS NOT NULL GROUP BY reset_password_token HAVING count(*) > 1").each do |row|
|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE reset_password_token IS NOT NULL GROUP BY reset_password_token HAVING count(*) > 1").each do |row|
|
||||||
users = User.where(id: row['ids'].split(',')).order(updated_at: :desc).to_a.drop(1)
|
users = User.where(id: row['ids'].split(',')).order(updated_at: :desc).includes(:account).to_a.drop(1)
|
||||||
say "Unsetting password reset token for those accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
say "Unsetting password reset token for those accounts: #{users.map { |user| user.account.acct }.join(', ')}", :yellow
|
||||||
|
|
||||||
users.each do |user|
|
users.each do |user|
|
||||||
|
@ -591,7 +591,7 @@ module Mastodon::CLI
|
||||||
end
|
end
|
||||||
|
|
||||||
def deduplicate_local_accounts!(scope)
|
def deduplicate_local_accounts!(scope)
|
||||||
accounts = scope.order(id: :desc).to_a
|
accounts = scope.order(id: :desc).includes(:account_stat, :user).to_a
|
||||||
|
|
||||||
say "Multiple local accounts were found for username '#{accounts.first.username}'.", :yellow
|
say "Multiple local accounts were found for username '#{accounts.first.username}'.", :yellow
|
||||||
say 'All those accounts are distinct accounts but only the most recently-created one is fully-functional.', :yellow
|
say 'All those accounts are distinct accounts but only the most recently-created one is fully-functional.', :yellow
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace :tests do
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if Account.where(domain: Rails.configuration.x.local_domain).exists?
|
if Account.exists?(domain: Rails.configuration.x.local_domain)
|
||||||
puts 'Faux remote accounts not properly cleaned up'
|
puts 'Faux remote accounts not properly cleaned up'
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
|
@ -265,21 +265,35 @@ RSpec.describe Auth::SessionsController do
|
||||||
context 'when repeatedly using an invalid TOTP code before using a valid code' do
|
context 'when repeatedly using an invalid TOTP code before using a valid code' do
|
||||||
before do
|
before do
|
||||||
stub_const('Auth::SessionsController::MAX_2FA_ATTEMPTS_PER_HOUR', 2)
|
stub_const('Auth::SessionsController::MAX_2FA_ATTEMPTS_PER_HOUR', 2)
|
||||||
|
|
||||||
|
# Travel to the beginning of an hour to avoid crossing rate-limit buckets
|
||||||
|
travel_to '2023-12-20T10:00:00Z'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not log the user in' do
|
it 'does not log the user in' do
|
||||||
# Travel to the beginning of an hour to avoid crossing rate-limit buckets
|
|
||||||
travel_to '2023-12-20T10:00:00Z'
|
|
||||||
|
|
||||||
Auth::SessionsController::MAX_2FA_ATTEMPTS_PER_HOUR.times do
|
Auth::SessionsController::MAX_2FA_ATTEMPTS_PER_HOUR.times do
|
||||||
post :create, params: { user: { otp_attempt: '1234' } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
post :create, params: { user: { otp_attempt: '1234' } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
||||||
expect(controller.current_user).to be_nil
|
expect(controller.current_user).to be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
post :create, params: { user: { otp_attempt: user.current_otp } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
post :create, params: { user: { otp_attempt: user.current_otp } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
||||||
|
|
||||||
expect(controller.current_user).to be_nil
|
expect(controller.current_user).to be_nil
|
||||||
expect(flash[:alert]).to match I18n.t('users.rate_limited')
|
expect(flash[:alert]).to match I18n.t('users.rate_limited')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'sends a suspicious sign-in mail', :sidekiq_inline do
|
||||||
|
Auth::SessionsController::MAX_2FA_ATTEMPTS_PER_HOUR.times do
|
||||||
|
post :create, params: { user: { otp_attempt: '1234' } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
||||||
|
expect(controller.current_user).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
post :create, params: { user: { otp_attempt: user.current_otp } }, session: { attempt_user_id: user.id, attempt_user_updated_at: user.updated_at.to_s }
|
||||||
|
|
||||||
|
expect(UserMailer.deliveries.size).to eq(1)
|
||||||
|
expect(UserMailer.deliveries.first.to.first).to eq(user.email)
|
||||||
|
expect(UserMailer.deliveries.first.subject).to eq(I18n.t('user_mailer.failed_2fa.subject'))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when using a valid OTP' do
|
context 'when using a valid OTP' do
|
||||||
|
|
|
@ -93,4 +93,9 @@ class UserMailerPreview < ActionMailer::Preview
|
||||||
def suspicious_sign_in
|
def suspicious_sign_in
|
||||||
UserMailer.suspicious_sign_in(User.first, '127.0.0.1', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0', Time.now.utc)
|
UserMailer.suspicious_sign_in(User.first, '127.0.0.1', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0', Time.now.utc)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Preview this email at http://localhost:3000/rails/mailers/user_mailer/failed_2fa
|
||||||
|
def failed_2fa
|
||||||
|
UserMailer.failed_2fa(User.first, '127.0.0.1', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0', Time.now.utc)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -135,6 +135,24 @@ describe UserMailer do
|
||||||
'user_mailer.suspicious_sign_in.subject'
|
'user_mailer.suspicious_sign_in.subject'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#failed_2fa' do
|
||||||
|
let(:ip) { '192.168.0.1' }
|
||||||
|
let(:agent) { 'NCSA_Mosaic/2.0 (Windows 3.1)' }
|
||||||
|
let(:timestamp) { Time.now.utc }
|
||||||
|
let(:mail) { described_class.failed_2fa(receiver, ip, agent, timestamp) }
|
||||||
|
|
||||||
|
it 'renders failed 2FA notification' do
|
||||||
|
receiver.update!(locale: nil)
|
||||||
|
|
||||||
|
expect(mail)
|
||||||
|
.to be_present
|
||||||
|
.and(have_body_text(I18n.t('user_mailer.failed_2fa.explanation')))
|
||||||
|
end
|
||||||
|
|
||||||
|
include_examples 'localized subject',
|
||||||
|
'user_mailer.failed_2fa.subject'
|
||||||
|
end
|
||||||
|
|
||||||
describe '#appeal_approved' do
|
describe '#appeal_approved' do
|
||||||
let(:appeal) { Fabricate(:appeal, account: receiver.account, approved_at: Time.now.utc) }
|
let(:appeal) { Fabricate(:appeal, account: receiver.account, approved_at: Time.now.utc) }
|
||||||
let(:mail) { described_class.appeal_approved(receiver, appeal) }
|
let(:mail) { described_class.appeal_approved(receiver, appeal) }
|
||||||
|
|
|
@ -1046,6 +1046,31 @@ RSpec.describe Account do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'scopes' do
|
describe 'scopes' do
|
||||||
|
describe 'matches_uri_prefix' do
|
||||||
|
let!(:alice) { Fabricate :account, domain: 'host.example', uri: 'https://host.example/user/a' }
|
||||||
|
let!(:bob) { Fabricate :account, domain: 'top-level.example', uri: 'https://top-level.example' }
|
||||||
|
|
||||||
|
it 'returns accounts which start with the value' do
|
||||||
|
results = described_class.matches_uri_prefix('https://host.example')
|
||||||
|
|
||||||
|
expect(results.size)
|
||||||
|
.to eq(1)
|
||||||
|
expect(results)
|
||||||
|
.to include(alice)
|
||||||
|
.and not_include(bob)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns accounts which equal the value' do
|
||||||
|
results = described_class.matches_uri_prefix('https://top-level.example')
|
||||||
|
|
||||||
|
expect(results.size)
|
||||||
|
.to eq(1)
|
||||||
|
expect(results)
|
||||||
|
.to include(bob)
|
||||||
|
.and not_include(alice)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'auditable' do
|
describe 'auditable' do
|
||||||
let!(:alice) { Fabricate :account }
|
let!(:alice) { Fabricate :account }
|
||||||
let!(:bob) { Fabricate :account }
|
let!(:bob) { Fabricate :account }
|
||||||
|
|
|
@ -100,6 +100,38 @@ RSpec.describe Tag do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '.recently_used' do
|
||||||
|
let(:account) { Fabricate(:account) }
|
||||||
|
let(:other_person_status) { Fabricate(:status) }
|
||||||
|
let(:out_of_range) { Fabricate(:status, account: account) }
|
||||||
|
let(:older_in_range) { Fabricate(:status, account: account) }
|
||||||
|
let(:newer_in_range) { Fabricate(:status, account: account) }
|
||||||
|
let(:unused_tag) { Fabricate(:tag) }
|
||||||
|
let(:used_tag_one) { Fabricate(:tag) }
|
||||||
|
let(:used_tag_two) { Fabricate(:tag) }
|
||||||
|
let(:used_tag_on_out_of_range) { Fabricate(:tag) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
stub_const 'Tag::RECENT_STATUS_LIMIT', 2
|
||||||
|
|
||||||
|
other_person_status.tags << used_tag_one
|
||||||
|
|
||||||
|
out_of_range.tags << used_tag_on_out_of_range
|
||||||
|
|
||||||
|
older_in_range.tags << used_tag_one
|
||||||
|
older_in_range.tags << used_tag_two
|
||||||
|
|
||||||
|
newer_in_range.tags << used_tag_one
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns tags used by account within last X statuses ordered most used first' do
|
||||||
|
results = described_class.recently_used(account)
|
||||||
|
|
||||||
|
expect(results)
|
||||||
|
.to eq([used_tag_one, used_tag_two])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '.find_normalized' do
|
describe '.find_normalized' do
|
||||||
it 'returns tag for a multibyte case-insensitive name' do
|
it 'returns tag for a multibyte case-insensitive name' do
|
||||||
upcase_string = 'abcABCabcABCやゆよ'
|
upcase_string = 'abcABCabcABCやゆよ'
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Api::V1::Statuses::FavouritedByAccountsController do
|
RSpec.describe 'API V1 Statuses Favourited by Accounts' do
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:user) { Fabricate(:user) }
|
let(:user) { Fabricate(:user) }
|
||||||
let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') }
|
let(:scopes) { 'read:accounts' }
|
||||||
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: app, scopes: 'read:accounts') }
|
# let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') }
|
||||||
|
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
|
||||||
|
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
|
||||||
let(:alice) { Fabricate(:account) }
|
let(:alice) { Fabricate(:account) }
|
||||||
let(:bob) { Fabricate(:account) }
|
let(:bob) { Fabricate(:account) }
|
||||||
|
|
||||||
context 'with an oauth token' do
|
context 'with an oauth token' do
|
||||||
before do
|
subject do
|
||||||
allow(controller).to receive(:doorkeeper_token) { token }
|
get "/api/v1/statuses/#{status.id}/favourited_by", headers: headers, params: { limit: 2 }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'GET #index' do
|
describe 'GET /api/v1/statuses/:status_id/favourited_by' do
|
||||||
let(:status) { Fabricate(:status, account: user.account) }
|
let(:status) { Fabricate(:status, account: user.account) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
@ -24,30 +24,38 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController do
|
||||||
Favourite.create!(account: bob, status: status)
|
Favourite.create!(account: bob, status: status)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns http success' do
|
it 'returns http success and accounts who favourited the status' do
|
||||||
get :index, params: { status_id: status.id, limit: 2 }
|
subject
|
||||||
expect(response).to have_http_status(200)
|
|
||||||
expect(response.headers['Link'].links.size).to eq(2)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns accounts who favorited the status' do
|
expect(response)
|
||||||
get :index, params: { status_id: status.id, limit: 2 }
|
.to have_http_status(200)
|
||||||
expect(body_as_json.size).to eq 2
|
expect(response.headers['Link'].links.size)
|
||||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
|
.to eq(2)
|
||||||
|
|
||||||
|
expect(body_as_json.size)
|
||||||
|
.to eq(2)
|
||||||
|
expect(body_as_json)
|
||||||
|
.to contain_exactly(
|
||||||
|
include(id: alice.id.to_s),
|
||||||
|
include(id: bob.id.to_s)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not return blocked users' do
|
it 'does not return blocked users' do
|
||||||
user.account.block!(bob)
|
user.account.block!(bob)
|
||||||
get :index, params: { status_id: status.id, limit: 2 }
|
|
||||||
expect(body_as_json.size).to eq 1
|
subject
|
||||||
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
|
||||||
|
expect(body_as_json.size)
|
||||||
|
.to eq 1
|
||||||
|
expect(body_as_json.first[:id]).to eq(alice.id.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'without an oauth token' do
|
context 'without an oauth token' do
|
||||||
before do
|
subject do
|
||||||
allow(controller).to receive(:doorkeeper_token).and_return(nil)
|
get "/api/v1/statuses/#{status.id}/favourited_by", params: { limit: 2 }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a private status' do
|
context 'with a private status' do
|
||||||
|
@ -59,7 +67,8 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns http unauthorized' do
|
it 'returns http unauthorized' do
|
||||||
get :index, params: { status_id: status.id }
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(404)
|
expect(response).to have_http_status(404)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -74,7 +83,8 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns http success' do
|
it 'returns http success' do
|
||||||
get :index, params: { status_id: status.id }
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(200)
|
expect(response).to have_http_status(200)
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -2,21 +2,20 @@
|
||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Api::V1::Statuses::RebloggedByAccountsController do
|
RSpec.describe 'API V1 Statuses Reblogged by Accounts' do
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:user) { Fabricate(:user) }
|
let(:user) { Fabricate(:user) }
|
||||||
let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') }
|
let(:scopes) { 'read:accounts' }
|
||||||
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: app, scopes: 'read:accounts') }
|
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
|
||||||
|
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
|
||||||
let(:alice) { Fabricate(:account) }
|
let(:alice) { Fabricate(:account) }
|
||||||
let(:bob) { Fabricate(:account) }
|
let(:bob) { Fabricate(:account) }
|
||||||
|
|
||||||
context 'with an oauth token' do
|
context 'with an oauth token' do
|
||||||
before do
|
subject do
|
||||||
allow(controller).to receive(:doorkeeper_token) { token }
|
get "/api/v1/statuses/#{status.id}/reblogged_by", headers: headers, params: { limit: 2 }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'GET #index' do
|
describe 'GET /api/v1/statuses/:status_id/reblogged_by' do
|
||||||
let(:status) { Fabricate(:status, account: user.account) }
|
let(:status) { Fabricate(:status, account: user.account) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
@ -25,27 +24,37 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns accounts who reblogged the status', :aggregate_failures do
|
it 'returns accounts who reblogged the status', :aggregate_failures do
|
||||||
get :index, params: { status_id: status.id, limit: 2 }
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(200)
|
expect(response)
|
||||||
expect(response.headers['Link'].links.size).to eq(2)
|
.to have_http_status(200)
|
||||||
|
expect(response.headers['Link'].links.size)
|
||||||
|
.to eq(2)
|
||||||
|
|
||||||
expect(body_as_json.size).to eq 2
|
expect(body_as_json.size)
|
||||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to contain_exactly(alice.id.to_s, bob.id.to_s)
|
.to eq(2)
|
||||||
|
expect(body_as_json)
|
||||||
|
.to contain_exactly(
|
||||||
|
include(id: alice.id.to_s),
|
||||||
|
include(id: bob.id.to_s)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not return blocked users' do
|
it 'does not return blocked users' do
|
||||||
user.account.block!(bob)
|
user.account.block!(bob)
|
||||||
get :index, params: { status_id: status.id, limit: 2 }
|
|
||||||
expect(body_as_json.size).to eq 1
|
subject
|
||||||
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
|
||||||
|
expect(body_as_json.size)
|
||||||
|
.to eq 1
|
||||||
|
expect(body_as_json.first[:id]).to eq(alice.id.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'without an oauth token' do
|
context 'without an oauth token' do
|
||||||
before do
|
subject do
|
||||||
allow(controller).to receive(:doorkeeper_token).and_return(nil)
|
get "/api/v1/statuses/#{status.id}/reblogged_by", params: { limit: 2 }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a private status' do
|
context 'with a private status' do
|
||||||
|
@ -57,7 +66,8 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns http unauthorized' do
|
it 'returns http unauthorized' do
|
||||||
get :index, params: { status_id: status.id }
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(404)
|
expect(response).to have_http_status(404)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -72,7 +82,8 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns http success' do
|
it 'returns http success' do
|
||||||
get :index, params: { status_id: status.id }
|
subject
|
||||||
|
|
||||||
expect(response).to have_http_status(200)
|
expect(response).to have_http_status(200)
|
||||||
end
|
end
|
||||||
end
|
end
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue