- );
- }
-
-}
-
-export default Header;
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
deleted file mode 100644
index 14050c25d..000000000
--- a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
+++ /dev/null
@@ -1,153 +0,0 @@
-import { injectIntl } from 'react-intl';
-
-import { connect } from 'react-redux';
-
-import { openURL } from 'mastodon/actions/search';
-
-import {
- followAccount,
- unblockAccount,
- unmuteAccount,
- pinAccount,
- unpinAccount,
-} from '../../../actions/accounts';
-import { initBlockModal } from '../../../actions/blocks';
-import {
- mentionCompose,
- directCompose,
-} from '../../../actions/compose';
-import { initDomainBlockModal, unblockDomain } from '../../../actions/domain_blocks';
-import { openModal } from '../../../actions/modal';
-import { initMuteModal } from '../../../actions/mutes';
-import { initReport } from '../../../actions/reports';
-import { makeGetAccount, getAccountHidden } from '../../../selectors';
-import Header from '../components/header';
-
-const makeMapStateToProps = () => {
- const getAccount = makeGetAccount();
-
- const mapStateToProps = (state, { accountId }) => ({
- account: getAccount(state, accountId),
- domain: state.getIn(['meta', 'domain']),
- hidden: getAccountHidden(state, accountId),
- });
-
- return mapStateToProps;
-};
-
-const mapDispatchToProps = (dispatch) => ({
-
- onFollow (account) {
- if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) {
- dispatch(openModal({ modalType: 'CONFIRM_UNFOLLOW', modalProps: { account } }));
- } else {
- dispatch(followAccount(account.get('id')));
- }
- },
-
- onInteractionModal (account) {
- dispatch(openModal({
- modalType: 'INTERACTION',
- modalProps: {
- type: 'follow',
- accountId: account.get('id'),
- url: account.get('uri'),
- },
- }));
- },
-
- onBlock (account) {
- if (account.getIn(['relationship', 'blocking'])) {
- dispatch(unblockAccount(account.get('id')));
- } else {
- dispatch(initBlockModal(account));
- }
- },
-
- onMention (account) {
- dispatch(mentionCompose(account));
- },
-
- onDirect (account) {
- dispatch(directCompose(account));
- },
-
- onReblogToggle (account) {
- if (account.getIn(['relationship', 'showing_reblogs'])) {
- dispatch(followAccount(account.get('id'), { reblogs: false }));
- } else {
- dispatch(followAccount(account.get('id'), { reblogs: true }));
- }
- },
-
- onEndorseToggle (account) {
- if (account.getIn(['relationship', 'endorsed'])) {
- dispatch(unpinAccount(account.get('id')));
- } else {
- dispatch(pinAccount(account.get('id')));
- }
- },
-
- onNotifyToggle (account) {
- if (account.getIn(['relationship', 'notifying'])) {
- dispatch(followAccount(account.get('id'), { notify: false }));
- } else {
- dispatch(followAccount(account.get('id'), { notify: true }));
- }
- },
-
- onReport (account) {
- dispatch(initReport(account));
- },
-
- onMute (account) {
- if (account.getIn(['relationship', 'muting'])) {
- dispatch(unmuteAccount(account.get('id')));
- } else {
- dispatch(initMuteModal(account));
- }
- },
-
- onBlockDomain (account) {
- dispatch(initDomainBlockModal(account));
- },
-
- onUnblockDomain (domain) {
- dispatch(unblockDomain(domain));
- },
-
- onAddToList (account) {
- dispatch(openModal({
- modalType: 'LIST_ADDER',
- modalProps: {
- accountId: account.get('id'),
- },
- }));
- },
-
- onChangeLanguages (account) {
- dispatch(openModal({
- modalType: 'SUBSCRIBED_LANGUAGES',
- modalProps: {
- accountId: account.get('id'),
- },
- }));
- },
-
- onOpenAvatar (account) {
- dispatch(openModal({
- modalType: 'IMAGE',
- modalProps: {
- src: account.get('avatar'),
- alt: '',
- },
- }));
- },
-
- onOpenURL (url) {
- return dispatch(openURL({ url }));
- },
-
-});
-
-export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));
diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx
index 105c2e4e5..886191e66 100644
--- a/app/javascript/mastodon/features/account_timeline/index.jsx
+++ b/app/javascript/mastodon/features/account_timeline/index.jsx
@@ -11,7 +11,7 @@ import { TimelineHint } from 'mastodon/components/timeline_hint';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { me } from 'mastodon/initial_state';
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
-import { getAccountHidden } from 'mastodon/selectors';
+import { getAccountHidden } from 'mastodon/selectors/accounts';
import { useAppSelector } from 'mastodon/store';
import { lookupAccount, fetchAccount } from '../../actions/accounts';
@@ -22,8 +22,8 @@ import { LoadingIndicator } from '../../components/loading_indicator';
import StatusList from '../../components/status_list';
import Column from '../ui/components/column';
+import { AccountHeader } from './components/account_header';
import { LimitedAccountHint } from './components/limited_account_hint';
-import HeaderContainer from './containers/header_container';
const emptyList = ImmutableList();
@@ -198,7 +198,7 @@ class AccountTimeline extends ImmutablePureComponent {
}
+ prepend={}
alwaysPrepend
append={remoteMessage}
scrollKey='account_timeline'
diff --git a/app/javascript/mastodon/features/followers/index.jsx b/app/javascript/mastodon/features/followers/index.jsx
index c13033b28..eaafb3d19 100644
--- a/app/javascript/mastodon/features/followers/index.jsx
+++ b/app/javascript/mastodon/features/followers/index.jsx
@@ -10,9 +10,10 @@ import { debounce } from 'lodash';
import { Account } from 'mastodon/components/account';
import { TimelineHint } from 'mastodon/components/timeline_hint';
+import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
-import { getAccountHidden } from 'mastodon/selectors';
+import { getAccountHidden } from 'mastodon/selectors/accounts';
import { useAppSelector } from 'mastodon/store';
import {
@@ -25,7 +26,6 @@ import { ColumnBackButton } from '../../components/column_back_button';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
-import HeaderContainer from '../account_timeline/containers/header_container';
import Column from '../ui/components/column';
const mapStateToProps = (state, { params: { acct, id } }) => {
@@ -168,7 +168,7 @@ class Followers extends ImmutablePureComponent {
hasMore={!forceEmptyState && hasMore}
isLoading={isLoading}
onLoadMore={this.handleLoadMore}
- prepend={}
+ prepend={}
alwaysPrepend
append={remoteMessage}
emptyMessage={emptyMessage}
diff --git a/app/javascript/mastodon/features/following/index.jsx b/app/javascript/mastodon/features/following/index.jsx
index d37c0c30e..3200f1543 100644
--- a/app/javascript/mastodon/features/following/index.jsx
+++ b/app/javascript/mastodon/features/following/index.jsx
@@ -10,9 +10,10 @@ import { debounce } from 'lodash';
import { Account } from 'mastodon/components/account';
import { TimelineHint } from 'mastodon/components/timeline_hint';
+import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { normalizeForLookup } from 'mastodon/reducers/accounts_map';
-import { getAccountHidden } from 'mastodon/selectors';
+import { getAccountHidden } from 'mastodon/selectors/accounts';
import { useAppSelector } from 'mastodon/store';
import {
@@ -25,7 +26,6 @@ import { ColumnBackButton } from '../../components/column_back_button';
import { LoadingIndicator } from '../../components/loading_indicator';
import ScrollableList from '../../components/scrollable_list';
import { LimitedAccountHint } from '../account_timeline/components/limited_account_hint';
-import HeaderContainer from '../account_timeline/containers/header_container';
import Column from '../ui/components/column';
const mapStateToProps = (state, { params: { acct, id } }) => {
@@ -168,7 +168,7 @@ class Following extends ImmutablePureComponent {
hasMore={!forceEmptyState && hasMore}
isLoading={isLoading}
onLoadMore={this.handleLoadMore}
- prepend={}
+ prepend={}
alwaysPrepend
append={remoteMessage}
emptyMessage={emptyMessage}
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 440ae8889..2d639fb1e 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -4,15 +4,16 @@
"about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "El motivu nun ta disponible",
"about.domain_blocks.preamble": "Polo xeneral, Mastodon permítete ver el conteníu ya interactuar colos perfiles d'otros sirvidores nel fediversu. Estes son les esceiciones que se ficieron nesti sirvidor.",
- "about.domain_blocks.silenced.explanation": "Polo xeneral, nun ves los perfiles ya'l conteníu d'esti sirvidor sacante que los busques o decidas siguilos.",
+ "about.domain_blocks.silenced.explanation": "Polo xeneral, nun ves los perfiles y el conteníu d'esti sirvidor sacante que los busques o decidas siguilos.",
"about.domain_blocks.silenced.title": "Llendóse",
- "about.domain_blocks.suspended.explanation": "Nun se procesa, atroxa nin intercambia nengún datu d'esti sirvidor, lo que fai que cualesquier interaición o comunicación colos sos perfiles seya imposible.",
+ "about.domain_blocks.suspended.explanation": "Nun se procesa, atroxa nin intercambia nengún datu d'esti sirvidor, lo que fai imposible cualesquier interaición o comunicación colos sos perfiles.",
"about.domain_blocks.suspended.title": "Suspendióse",
"about.not_available": "Esta información nun ta disponible nesti sirvidor.",
"about.powered_by": "Una rede social descentralizada que tien la teunoloxía de {mastodon}",
"about.rules": "Normes del sirvidor",
"account.account_note_header": "Nota personal",
"account.add_or_remove_from_list": "Amestar o quitar de les llistes",
+ "account.badges.bot": "Automatizóse",
"account.badges.group": "Grupu",
"account.block": "Bloquiar a @{name}",
"account.block_domain": "Bloquiar el dominiu {domain}",
@@ -25,7 +26,7 @@
"account.edit_profile": "Editar el perfil",
"account.enable_notifications": "Avisame cuando @{name} espublice artículos",
"account.endorse": "Destacar nel perfil",
- "account.featured_tags.last_status_never": "Nun hai nengún artículu",
+ "account.featured_tags.last_status_never": "Nun hai nenguna publicación",
"account.featured_tags.title": "Etiquetes destacaes de: {name}",
"account.follow": "Siguir",
"account.follow_back": "Siguir tamién",
@@ -107,6 +108,7 @@
"column.domain_blocks": "Dominios bloquiaos",
"column.edit_list": "Editar la llista",
"column.favourites": "Favoritos",
+ "column.firehose": "Feed en direuto",
"column.follow_requests": "Solicitúes de siguimientu",
"column.home": "Aniciu",
"column.lists": "Llistes",
@@ -126,9 +128,9 @@
"community.column_settings.remote_only": "Namás lo remoto",
"compose.language.change": "Camudar la llingua",
"compose.language.search": "Buscar llingües…",
- "compose.published.body": "Espublizóse l'artículu.",
+ "compose.published.body": "Publicóse la publicación.",
"compose.published.open": "Abrir",
- "compose.saved.body": "Post guardáu.",
+ "compose.saved.body": "Guardóse la publicación.",
"compose_form.direct_message_warning_learn_more": "Saber más",
"compose_form.encryption_warning": "Los artículos de Mastodon nun tán cifraos de puntu a puntu. Nun compartas nengún tipu d'información sensible per Mastodon.",
"compose_form.lock_disclaimer": "La to cuenta nun ye {locked}. Cualesquier perfil pue siguite pa ver los artículos que son namás pa siguidores.",
@@ -137,34 +139,33 @@
"compose_form.poll.option_placeholder": "Opción {number}",
"compose_form.poll.type": "Tipu",
"compose_form.publish": "Espublizar",
- "compose_form.publish_form": "Artículu nuevu",
+ "compose_form.publish_form": "Publicación nueva",
"compose_form.reply": "Responder",
"confirmation_modal.cancel": "Encaboxar",
"confirmations.block.confirm": "Bloquiar",
"confirmations.delete.confirm": "Desaniciar",
- "confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?",
- "confirmations.delete.title": "¿Desaniciar l'artículu?",
+ "confirmations.delete.message": "¿De xuru que quies desaniciar esta publicación?",
+ "confirmations.delete.title": "¿Quies desaniciar esta publicación?",
"confirmations.delete_list.confirm": "Desaniciar",
"confirmations.delete_list.message": "¿De xuru que quies desaniciar permanentemente esta llista?",
- "confirmations.delete_list.title": "¿Desaniciar la llista?",
+ "confirmations.delete_list.title": "¿Quies desaniciar la llista?",
"confirmations.discard_edit_media.confirm": "Escartar",
"confirmations.edit.confirm": "Editar",
"confirmations.edit.message": "La edición va sobrescribir el mensaxe que tas escribiendo. ¿De xuru que quies siguir?",
"confirmations.follow_to_list.title": "¿Siguir al usuariu?",
"confirmations.logout.confirm": "Zarrar la sesión",
"confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
- "confirmations.logout.title": "¿Zarrar la sesión?",
+ "confirmations.logout.title": "¿Quies zarrar la sesión?",
"confirmations.missing_alt_text.confirm": "Amestar testu alternativu",
"confirmations.missing_alt_text.title": "¿Quies amestar testu alternativu?",
"confirmations.redraft.confirm": "Desaniciar y reeditar",
- "confirmations.redraft.message": "¿De xuru que quies desaniciar esti artículu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al artículu orixinal van quedar güérfanes.",
- "confirmations.redraft.title": "¿Desaniciar ya reeditar l'artículu?",
+ "confirmations.redraft.title": "¿Desaniciar y reeditar la publicación?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
"confirmations.unfollow.confirm": "Dexar de siguir",
"confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
"confirmations.unfollow.title": "¿Dexar de siguir al usuariu?",
- "content_warning.hide": "Anubrir l'artículu",
+ "content_warning.hide": "Esconder la publicación",
"content_warning.show": "Amosar de toes toes",
"content_warning.show_more": "Amosar más",
"conversation.delete": "Desaniciar la conversación",
@@ -186,7 +187,7 @@
"domain_block_modal.title": "Bloquiar el dominiu?",
"domain_pill.server": "Sirvidor",
"domain_pill.username": "Nome d'usuariu",
- "embed.instructions": "Empotra esti artículu nel to sitiu web copiando'l códigu d'abaxo.",
+ "embed.instructions": "Empotra esta publicación nel to sitiu web copiando'l códigu d'abaxo.",
"embed.preview": "Va apaecer asina:",
"emoji_button.activity": "Actividá",
"emoji_button.flags": "Banderes",
@@ -201,9 +202,9 @@
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes y llugares",
"empty_column.account_suspended": "Cuenta suspendida",
- "empty_column.account_timeline": "¡Equí nun hai nengún artículu!",
+ "empty_column.account_timeline": "¡Equí nun hai nenguna publicación!",
"empty_column.blocks": "Nun bloquiesti a nengún perfil.",
- "empty_column.bookmarked_statuses": "Nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.",
+ "empty_column.bookmarked_statuses": "Nun tienes nenguna publicación en Marcadores. Cuando amiestes dalguna, va apaecer equí.",
"empty_column.direct": "Nun tienes nenguna mención privada. Cuando unvies o recibas dalguna, apaez equí.",
"empty_column.domain_blocks": "Nun hai nengún dominiu bloquiáu.",
"empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!",
@@ -223,21 +224,21 @@
"explore.trending_links": "Noticies",
"explore.trending_statuses": "Artículos",
"explore.trending_tags": "Etiquetes",
- "filter_modal.added.context_mismatch_explanation": "Esta categoría de peñera nun s'aplica al contestu nel qu'accediesti a esti artículu. Si tamién quies que se peñere l'artículu nesti contestu, tienes d'editar la peñera.",
+ "filter_modal.added.context_mismatch_explanation": "Esta categoría de peñera nun s'aplica al contestu nel qu'accediesti a esta publicación. Si tamién quies que se peñere la publicación nesti contestu, tienes d'editar la peñera.",
"filter_modal.added.context_mismatch_title": "¡El contestu nun coincide!",
"filter_modal.added.expired_explanation": "Esta categoría de peñera caducó, tienes de camudar la so data de caducidá p'aplicala.",
"filter_modal.added.expired_title": "¡La peñera caducó!",
"filter_modal.added.review_and_configure": "Pa revisar y configurar a fondu esta categoría de peñera, vete a la {settings_link}.",
"filter_modal.added.review_and_configure_title": "Configuración de la peñera",
"filter_modal.added.settings_link": "páxina de configuración",
- "filter_modal.added.short_explanation": "Esti artículu amestóse a la categoría de peñera siguiente: {title}.",
+ "filter_modal.added.short_explanation": "Esta publicación amestóse a la categoría de peñera siguiente: {title}.",
"filter_modal.added.title": "¡Amestóse la peñera!",
"filter_modal.select_filter.expired": "caducó",
"filter_modal.select_filter.prompt_new": "Categoría nueva: {name}",
"filter_modal.select_filter.search": "Buscar o crear",
"filter_modal.select_filter.subtitle": "Usa una categoría esistente o créala",
- "filter_modal.select_filter.title": "Peñerar esti artículu",
- "filter_modal.title.status": "Peñera d'un artículu",
+ "filter_modal.select_filter.title": "Peñerar esta publicación",
+ "filter_modal.title.status": "Peñera d'una publicación",
"firehose.all": "Tolos sirvidores",
"firehose.local": "Esti sirvidor",
"firehose.remote": "Otros sirvidores",
@@ -285,20 +286,20 @@
"interaction_modal.on_another_server": "N'otru sirvidor",
"interaction_modal.on_this_server": "Nesti sirvidor",
"interaction_modal.title.follow": "Siguir a {name}",
- "interaction_modal.title.reply": "Rempuesta al artículu de: {name}",
+ "interaction_modal.title.reply": "Rempuesta a la publicación de: {name}",
"interaction_modal.title.vote": "Vota na encuesta de {name}",
"intervals.full.days": "{number, plural, one {# día} other {# díes}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
"intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
"keyboard_shortcuts.back": "Dir p'atrás",
"keyboard_shortcuts.blocked": "Abrir la llista de perfiles bloquiaos",
- "keyboard_shortcuts.boost": "Compartir un artículu",
+ "keyboard_shortcuts.boost": "Compartir una publicación",
"keyboard_shortcuts.column": "Enfocar una columna",
"keyboard_shortcuts.compose": "Enfocar l'área de composición",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "p'abrir la columna de les menciones privaes",
"keyboard_shortcuts.down": "Baxar na llista",
- "keyboard_shortcuts.enter": "Abrir un artículu",
+ "keyboard_shortcuts.enter": "Abrir una publicación",
"keyboard_shortcuts.federated": "Abrir la llinia de tiempu federada",
"keyboard_shortcuts.heading": "Atayos del tecláu",
"keyboard_shortcuts.home": "Abrir la llinia de tiempu del aniciu",
@@ -312,12 +313,12 @@
"keyboard_shortcuts.open_media": "Abrir el conteníu mutimedia",
"keyboard_shortcuts.pinned": "Abrir la llista d'artículos fixaos",
"keyboard_shortcuts.profile": "Abrir el perfil del autor/a",
- "keyboard_shortcuts.reply": "Responder a un artículu",
+ "keyboard_shortcuts.reply": "Responder a una publicación",
"keyboard_shortcuts.requests": "Abrir la llista de solicitúes de siguimientu",
"keyboard_shortcuts.search": "Enfocar la barra de busca",
"keyboard_shortcuts.start": "Abrir la columna «Entamar»",
"keyboard_shortcuts.toggle_sensitivity": "Amosar/esconder el conteníu multimedia",
- "keyboard_shortcuts.toot": "Comenzar un artículu nuevu",
+ "keyboard_shortcuts.toot": "Escribir una publicación nueva",
"keyboard_shortcuts.unfocus": "Desenfocar l'área de composición/busca",
"keyboard_shortcuts.up": "Xubir na llista",
"lightbox.close": "Zarrar",
@@ -377,9 +378,9 @@
"notification.mentioned_you": "{name} mentóte",
"notification.moderation-warning.learn_more": "Deprender más",
"notification.poll": "Finó una encuesta na que votesti",
- "notification.reblog": "{name} compartió'l to artículu",
+ "notification.reblog": "{name} compartió la to publicación",
"notification.status": "{name} ta acabante d'espublizar",
- "notification.update": "{name} editó un artículu",
+ "notification.update": "{name} editó una publicación",
"notification_requests.edit_selection": "Editar",
"notification_requests.exit_selection": "Fecho",
"notifications.clear": "Borrar los avisos",
@@ -421,9 +422,10 @@
"poll.votes": "{votes, plural, one {# votu} other {# votos}}",
"poll_button.add_poll": "Amestar una encuesta",
"poll_button.remove_poll": "Quitar la encuesta",
- "privacy.change": "Configurar la privacidá del artículu",
+ "privacy.change": "Configurar la privacidá de la publicación",
+ "privacy.direct.short": "Mención privada",
"privacy.private.short": "Siguidores",
- "privacy.public.short": "Artículu públicu",
+ "privacy.public.short": "Publicación pública",
"privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
"privacy_policy.title": "Política de privacidá",
"refresh": "Anovar",
@@ -447,7 +449,7 @@
"report.category.subtitle": "Escueyi la meyor opción",
"report.category.title": "Dinos qué pasa con esti {type}",
"report.category.title_account": "perfil",
- "report.category.title_status": "artículu",
+ "report.category.title_status": "publicación",
"report.close": "Fecho",
"report.comment.title": "¿Hai daqué más qu'habríemos saber?",
"report.forward": "Reunviar a {target}",
@@ -467,7 +469,7 @@
"report.rules.subtitle": "Seleiciona tolo que s'axuste",
"report.rules.title": "¿Qué normes s'incumplen?",
"report.statuses.subtitle": "Seleiciona tolo que s'axuste",
- "report.statuses.title": "¿Hai dalgún artículu qu'apoye esti informe?",
+ "report.statuses.title": "¿Hai dalguna publicación qu'apoye esti informe?",
"report.submit": "Unviar",
"report.target": "Informe de: {target}",
"report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:",
@@ -476,7 +478,7 @@
"report.thanks.title_actionable": "Gracies pol informe, el casu yá ta n'investigación.",
"report.unfollow": "Dexar de siguir a @{name}",
"report.unfollow_explanation": "Sigues a esta cuenta. Pa dexar de ver los sos artículos nel to feed d'aniciu, dexa de siguila.",
- "report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} artículu} other {Axuntáronse {count} artículos}}",
+ "report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} publicación} other {Axuntáronse {count} publicaciones}}",
"report_notification.categories.legal": "Llegal",
"report_notification.categories.legal_sentence": "conteníu illegal",
"report_notification.categories.spam": "Spam",
@@ -489,6 +491,7 @@
"search.quick_action.go_to_hashtag": "Dir a la etiqueta {x}",
"search.quick_action.status_search": "Artículos que concasen con {x}",
"search.search_or_paste": "Busca o apiega una URL",
+ "search_popout.full_text_search_disabled_message": "Nun ta disponible nel dominiu {domain}.",
"search_popout.language_code": "códigu de llingua ISO",
"search_popout.options": "Opciones de busca",
"search_popout.quick_actions": "Aiciones rápides",
@@ -500,22 +503,25 @@
"search_results.hashtags": "Etiquetes",
"search_results.see_all": "Ver too",
"search_results.statuses": "Artículos",
+ "server_banner.is_one_of_many": "{domain} ye unu de los munchos sirvidores independientes de Mastodon que pues usar pa participar nel fediversu.",
"server_banner.server_stats": "Estadístiques del sirvidor:",
"sign_in_banner.create_account": "Crear una cuenta",
+ "sign_in_banner.mastodon_is": "Mastodon ye la meyor manera de siguir al momentu qué pasa.",
+ "sign_in_banner.sign_in": "Aniciar la sesión",
"sign_in_banner.sso_redirect": "Aniciar la sesión o rexistrase",
"status.admin_account": "Abrir la interfaz de moderación pa @{name}",
"status.admin_domain": "Abrir la interfaz de moderación pa «{domain}»",
- "status.admin_status": "Abrir esti artículu na interfaz de moderación",
+ "status.admin_status": "Abrir esta publicación na interfaz de moderación",
"status.block": "Bloquiar a @{name}",
"status.bookmark": "Meter en Marcadores",
- "status.cannot_reblog": "Esti artículu nun se pue compartir",
- "status.copy": "Copiar l'enllaz al artículu",
+ "status.cannot_reblog": "Esta publicación nun se pue compartir",
+ "status.copy": "Copiar l'enllaz a la publicación",
"status.delete": "Desaniciar",
"status.direct": "Mentar a @{name} per privao",
"status.direct_indicator": "Mención privada",
"status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
"status.embed": "Consiguir el códigu pa empotrar",
- "status.filter": "Peñerar esti artículu",
+ "status.filter": "Peñerar esta publicación",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar más",
@@ -524,13 +530,13 @@
"status.more": "Más",
"status.mute": "Desactivar los avisos de @{name}",
"status.mute_conversation": "Desactivar los avisos de la conversación",
- "status.open": "Espander esti artículu",
+ "status.open": "Espander esta publicación",
"status.pin": "Fixar nel perfil",
- "status.pinned": "Artículu fixáu",
+ "status.pinned": "Publicación fixada",
"status.read_more": "Lleer más",
"status.reblog": "Compartir",
"status.reblogged_by": "{name} compartió",
- "status.reblogs.empty": "Naide nun compartió esti artículu. Cuando daquién lo faiga, apaez equí.",
+ "status.reblogs.empty": "Naide nun compartió esta publicación. Cuando daquién lo faiga, va apaecer equí.",
"status.redraft": "Desaniciar y reeditar",
"status.remove_bookmark": "Desaniciar el marcador",
"status.replied_to": "En rempuesta a {name}",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 2e29b4e91..117ce2e71 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -696,6 +696,7 @@
"poll_button.remove_poll": "Elimina l'enquesta",
"privacy.change": "Canvia la privacitat del tut",
"privacy.direct.long": "Tothom mencionat a la publicació",
+ "privacy.direct.short": "Menció privada",
"privacy.private.long": "Només els vostres seguidors",
"privacy.private.short": "Seguidors",
"privacy.public.long": "Tothom dins o fora Mastodon",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 54dda38db..2af100a56 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Change post privacy",
"privacy.direct.long": "Everyone mentioned in the post",
+ "privacy.direct.short": "Private mention",
"privacy.private.long": "Only your followers",
"privacy.private.short": "Followers",
"privacy.public.long": "Anyone on and off Mastodon",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 43e4df5a3..36609f6ec 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -192,7 +192,7 @@
"compose_form.poll.switch_to_multiple": "Cambiar la encuesta para permitir múltiples opciones",
"compose_form.poll.switch_to_single": "Cambiar la encuesta para permitir una única opción",
"compose_form.poll.type": "Estilo",
- "compose_form.publish": "Publicación",
+ "compose_form.publish": "Publicar",
"compose_form.publish_form": "Nueva publicación",
"compose_form.reply": "Respuesta",
"compose_form.save_changes": "Actualización",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 1a5b1c499..0e6c1b95d 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Bain suirbhé",
"privacy.change": "Athraigh príobháideacht postála",
"privacy.direct.long": "Luaigh gach duine sa phost",
+ "privacy.direct.short": "Tagairt phríobháideach",
"privacy.private.long": "Do leanúna amháin",
"privacy.private.short": "Leantóirí",
"privacy.public.long": "Duine ar bith ar agus amach Mastodon",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index cb7c3bfea..239628fdc 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -702,7 +702,7 @@
"privacy.private.short": "Follower",
"privacy.public.long": "Chiunque dentro e fuori Mastodon",
"privacy.public.short": "Pubblico",
- "privacy.unlisted.additional": "",
+ "privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.",
"privacy.unlisted.long": "Meno fanfare algoritmiche",
"privacy.unlisted.short": "Pubblico silenzioso",
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 726d9541a..040da6824 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -86,6 +86,12 @@
"alert.unexpected.message": "Radās negaidīta kļūda.",
"alert.unexpected.title": "Ups!",
"alt_text_badge.title": "Alt teksts",
+ "alt_text_modal.add_text_from_image": "Pievienot tekstu no attēla",
+ "alt_text_modal.cancel": "Atcelt",
+ "alt_text_modal.change_thumbnail": "Nomainīt sīktēlu",
+ "alt_text_modal.describe_for_people_with_hearing_impairments": "Aprakstīt šo cilvēkiem ar dzirdes traucējumiem…",
+ "alt_text_modal.describe_for_people_with_visual_impairments": "Aprakstīt šo cilvēkiem ar redzes traucējumiem…",
+ "alt_text_modal.done": "Gatavs",
"announcement.announcement": "Paziņojums",
"annual_report.summary.archetype.oracle": "Orākuls",
"annual_report.summary.archetype.replier": "Sabiedriskais tauriņš",
@@ -205,6 +211,7 @@
"confirmations.logout.confirm": "Iziet",
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
"confirmations.logout.title": "Atteikties?",
+ "confirmations.missing_alt_text.secondary": "Vienalga iesūtīt",
"confirmations.mute.confirm": "Apklusināt",
"confirmations.redraft.confirm": "Dzēst un pārrakstīt",
"confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 5fded1ac4..66f74281a 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -3,7 +3,7 @@
"about.contact": "Hubungi:",
"about.disclaimer": "Mastodon ialah perisian sumber terbuka percuma, dan merupakan tanda dagangan Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Sebab tidak tersedia",
- "about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Berikut ialah pengecualian yang telah dibuat pada pelayan ini secara khususnya.",
+ "about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan pengguna daripada mana-mana pelayan dalam alam bersekutu dan berinteraksi dengan mereka. Berikut ialah pengecualian yang khusus pada pelayan ini.",
"about.domain_blocks.silenced.explanation": "Secara amnya, anda tidak akan melihat profil dan kandungan daripada pelayan ini, kecuali anda mencarinya secara khusus atau ikut serta dengan mengikutinya.",
"about.domain_blocks.silenced.title": "Terhad",
"about.domain_blocks.suspended.explanation": "Tiada data daripada pelayan ini yang akan diproses, disimpan atau ditukar, menjadikan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan ini adalah mustahil.",
@@ -19,7 +19,7 @@
"account.block_domain": "Sekat domain {domain}",
"account.block_short": "Malay",
"account.blocked": "Disekat",
- "account.cancel_follow_request": "Menarik balik permintaan mengikut",
+ "account.cancel_follow_request": "Batalkan permintaan ikut",
"account.copy": "Salin pautan ke profil",
"account.direct": "Sebut secara persendirian @{name}",
"account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
@@ -85,10 +85,45 @@
"alert.rate_limited.title": "Kadar terhad",
"alert.unexpected.message": "Berlaku ralat di luar jangkaan.",
"alert.unexpected.title": "Alamak!",
+ "alt_text_badge.title": "Teks alternatif",
+ "alt_text_modal.add_alt_text": "Tambah teks alternatif",
+ "alt_text_modal.add_text_from_image": "Tambah teks dari imej",
+ "alt_text_modal.cancel": "Batal",
+ "alt_text_modal.change_thumbnail": "Ubah imej kecil",
+ "alt_text_modal.describe_for_people_with_hearing_impairments": "Terangkan untuk OKU pendengaran…vorite\n",
+ "alt_text_modal.describe_for_people_with_visual_impairments": "Terangkan untuk OKU penglihatan…",
+ "alt_text_modal.done": "Selesai",
"announcement.announcement": "Pengumuman",
+ "annual_report.summary.archetype.booster": "Si pencapap",
+ "annual_report.summary.archetype.lurker": "Si penghendap",
+ "annual_report.summary.archetype.oracle": "Si penilik",
+ "annual_report.summary.archetype.pollster": "Si peninjau",
+ "annual_report.summary.archetype.replier": "Si peramah",
+ "annual_report.summary.followers.followers": "pengikut",
+ "annual_report.summary.followers.total": "sebanyak {count}",
+ "annual_report.summary.here_it_is": "Ini ulasan {year} anda:",
+ "annual_report.summary.highlighted_post.by_favourites": "hantaran paling disukai ramai",
+ "annual_report.summary.highlighted_post.by_reblogs": "hantaran paling digalak ramai",
+ "annual_report.summary.highlighted_post.by_replies": "hantaran paling dibalas ramai",
+ "annual_report.summary.highlighted_post.possessive": "oleh",
+ "annual_report.summary.most_used_app.most_used_app": "aplikasi paling banyak digunakan",
+ "annual_report.summary.most_used_hashtag.most_used_hashtag": "tanda pagar paling banyak digunakan",
+ "annual_report.summary.most_used_hashtag.none": "Tiada",
+ "annual_report.summary.new_posts.new_posts": "hantaran baharu",
+ "annual_report.summary.percentile.text": "Anda berkedudukan pengguna {domain}.",
+ "annual_report.summary.percentile.we_wont_tell_bernie": "Rahsia anda selamat bersama kami. ;)",
+ "annual_report.summary.thanks": "Terima kasih kerana setia bersama Mastodon!",
"attachments_list.unprocessed": "(belum diproses)",
"audio.hide": "Sembunyikan audio",
+ "block_modal.remote_users_caveat": "Kami akan meminta pelayan {domain} untuk menghormati keputusan anda. Bagaimanapun, pematuhan tidak dijamin kerana ada pelayan yang mungkin menangani sekatan dengan cara berbeza. Hantaran awam mungkin masih tampak kepada pengguna yang tidak log masuk.",
+ "block_modal.they_cant_mention": "Dia tidak boleh menyebut tentang anda atau mengikut anda.",
+ "block_modal.they_cant_see_posts": "Dia tidak boleh melihat hantaran anda dan sebaliknya.",
+ "block_modal.they_will_know": "Dia boleh lihat bahawa dia disekat.",
+ "block_modal.title": "Sekat pengguna?",
+ "block_modal.you_wont_see_mentions": "Anda tidak akan melihat hantaran yang menyebut tentangnya.",
"boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain",
+ "boost_modal.reblog": "Galakkan hantaran?",
+ "boost_modal.undo_reblog": "Nyahgalakkan hantaran?",
"bundle_column_error.copy_stacktrace": "Salin laporan ralat",
"bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
"bundle_column_error.error.title": "Alamak!",
@@ -99,6 +134,7 @@
"bundle_column_error.routing.body": "Halaman tersebut tidak dapat ditemui. Adakah anda pasti URL dalam bar alamat adalah betul?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Tutup",
+ "bundle_modal_error.message": "Terdapat masalah yang dihadapi ketika memuat layar ini.",
"bundle_modal_error.retry": "Cuba lagi",
"closed_registrations.other_server_instructions": "Oleh sebab Mastodon terpencar, anda boleh mencipta akaun pada pelayan lain dan masih berinteraksi dengan pelayan ini.",
"closed_registrations_modal.description": "Mencipta akaun pada {domain} tidak dapat dibuat sekarang, tetapi sila ingat bahawa anda tidak memerlukan akaun khususnya pada {domain} untuk menggunakan Mastodon.",
@@ -109,13 +145,16 @@
"column.blocks": "Pengguna yang disekat",
"column.bookmarks": "Tanda buku",
"column.community": "Garis masa tempatan",
+ "column.create_list": "Cipta senarai",
"column.direct": "Sebutan peribadi",
"column.directory": "Layari profil",
"column.domain_blocks": "Domain disekat",
- "column.favourites": "Kegemaran",
+ "column.edit_list": "Sunting senarai",
+ "column.favourites": "Sukaan",
"column.firehose": "Suapan langsung",
"column.follow_requests": "Permintaan ikutan",
"column.home": "Laman Utama",
+ "column.list_members": "Urus ahli senarai",
"column.lists": "Senarai",
"column.mutes": "Pengguna yang dibisukan",
"column.notifications": "Pemberitahuan",
@@ -128,6 +167,7 @@
"column_header.pin": "Sematkan",
"column_header.show_settings": "Tunjukkan tetapan",
"column_header.unpin": "Nyahsemat",
+ "column_search.cancel": "Batal",
"column_subheading.settings": "Tetapan",
"community.column_settings.local_only": "Tempatan sahaja",
"community.column_settings.media_only": "Media sahaja",
@@ -146,6 +186,7 @@
"compose_form.poll.duration": "Tempoh undian",
"compose_form.poll.multiple": "Pelbagai pilihan",
"compose_form.poll.option_placeholder": "Pilihan {number}",
+ "compose_form.poll.single": "Satu pilihan",
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
"compose_form.poll.type": "Gaya",
@@ -160,17 +201,26 @@
"confirmations.block.confirm": "Sekat",
"confirmations.delete.confirm": "Padam",
"confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?",
+ "confirmations.delete.title": "Padam hantaran?",
"confirmations.delete_list.confirm": "Padam",
"confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
+ "confirmations.delete_list.title": "Padam senarai?",
"confirmations.discard_edit_media.confirm": "Singkir",
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
"confirmations.edit.confirm": "Sunting",
"confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?",
+ "confirmations.edit.title": "Tulis ganti hantaran?",
+ "confirmations.follow_to_list.confirm": "Ikut dan tambah ke senarai",
+ "confirmations.follow_to_list.message": "Anda mesti mengikuti {name} untuk tambahkannya ke senarai.",
+ "confirmations.follow_to_list.title": "Ikut pengguna?",
"confirmations.logout.confirm": "Log keluar",
"confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?",
+ "confirmations.logout.title": "Log keluar?",
+ "confirmations.missing_alt_text.confirm": "Tambah teks alternatif",
+ "confirmations.missing_alt_text.message": "Hantaran anda mempunyai media tanpa teks alternatif. Kandungan anda akan lebih mudah tercapai jika anda menambah keterangan.",
"confirmations.mute.confirm": "Bisukan",
"confirmations.redraft.confirm": "Padam & rangka semula",
- "confirmations.redraft.message": "Adakah anda pasti anda ingin memadam pos ini dan merangkanya semula? Kegemaran dan galakan akan hilang, dan balasan ke pos asal akan menjadi yatim.",
+ "confirmations.redraft.message": "Adakah anda pasti anda ingin memadam hantaran ini dan gubal semula? Sukaan dan galakan akan hilang, dan balasan ke hantaran asal akan menjadi yatim.",
"confirmations.reply.confirm": "Balas",
"confirmations.reply.message": "Membalas sekarang akan menulis ganti mesej yang anda sedang karang. Adakah anda pasti anda ingin teruskan?",
"confirmations.unfollow.confirm": "Nyahikut",
@@ -182,7 +232,7 @@
"copy_icon_button.copied": "Disalin ke papan klip",
"copypaste.copied": "Disalin",
"copypaste.copy_to_clipboard": "Salin ke papan klip",
- "directory.federated": "Dari fediverse yang diketahui",
+ "directory.federated": "Dari alam bersekutu yang diketahui",
"directory.local": "Dari {domain} sahaja",
"directory.new_arrivals": "Ketibaan baharu",
"directory.recently_active": "Aktif baru-baru ini",
@@ -190,6 +240,7 @@
"disabled_account_banner.text": "Akaun anda {disabledAccount} telah dinyahaktif.",
"dismissable_banner.community_timeline": "Inilah hantaran awam terkini daripada orang yang akaun dihos oleh {domain}.",
"dismissable_banner.dismiss": "Ketepikan",
+ "dismissable_banner.explore_statuses": "Hantaran-hantaran dari seluruh alam bersekutu ini sedang sohor. Hantaran terbaharu dengan lebih banyak galakan dan sukaan diberi kedudukan lebih tinggi.",
"embed.instructions": "Benam hantaran ini di laman sesawang anda dengan menyalin kod berikut.",
"embed.preview": "Begini rupanya nanti:",
"emoji_button.activity": "Aktiviti",
@@ -217,8 +268,8 @@
"empty_column.direct": "Anda belum mempunyai sebarang sebutan peribadi lagi. Apabila anda menghantar atau menerima satu, ia akan dipaparkan di sini.",
"empty_column.domain_blocks": "Belum ada domain yang disekat.",
"empty_column.explore_statuses": "Tiada apa-apa yang sohor kini sekarang. Semaklah kemudian!",
- "empty_column.favourited_statuses": "Anda belum mempunyai sebarang pos kegemaran. Apabila anda kegemaran, ia akan dipaparkan di sini.",
- "empty_column.favourites": "Tiada siapa yang menggemari pos ini lagi. Apabila seseorang melakukannya, mereka akan muncul di sini.",
+ "empty_column.favourited_statuses": "Anda belum mempunyai sebarang hantaran sukaan lagi. Hantaran akan muncul di sini apabila disukai oleh anda.",
+ "empty_column.favourites": "Hantaran ini belum disukai mana-mana pengguna lagi. Pengguna yang menyukai akan muncul di sini.",
"empty_column.follow_requests": "Anda belum mempunyai permintaan ikutan. Ia akan terpapar di sini apabila ada nanti.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.",
@@ -300,9 +351,10 @@
"home.pending_critical_update.link": "Lihat pengemaskinian",
"home.pending_critical_update.title": "Kemas kini keselamatan kritikal tersedia!",
"home.show_announcements": "Tunjukkan pengumuman",
+ "interaction_modal.action.favourite": "Untuk sambung, anda perlu suka dari akaun anda.",
"interaction_modal.on_another_server": "Di pelayan lain",
"interaction_modal.on_this_server": "Pada pelayan ini",
- "interaction_modal.title.favourite": "Pos {name} kegemaran",
+ "interaction_modal.title.favourite": "Suka hantaran {name}",
"interaction_modal.title.follow": "Ikuti {name}",
"interaction_modal.title.reblog": "Galak hantaran {name}",
"interaction_modal.title.reply": "Balas siaran {name}",
@@ -318,8 +370,8 @@
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "Buka hantaran",
- "keyboard_shortcuts.favourite": "Pos kegemaran",
- "keyboard_shortcuts.favourites": "Buka senarai kegemaran",
+ "keyboard_shortcuts.favourite": "Suka hantaran",
+ "keyboard_shortcuts.favourites": "Buka senarai sukaan",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.heading": "Pintasan papan kekunci",
"keyboard_shortcuts.home": "to open home timeline",
@@ -367,7 +419,7 @@
"navigation_bar.discover": "Teroka",
"navigation_bar.domain_blocks": "Domain disekat",
"navigation_bar.explore": "Teroka",
- "navigation_bar.favourites": "Kegemaran",
+ "navigation_bar.favourites": "Sukaan",
"navigation_bar.filters": "Perkataan yang dibisukan",
"navigation_bar.follow_requests": "Permintaan ikutan",
"navigation_bar.followed_tags": "Ikuti hashtag",
@@ -385,11 +437,15 @@
"not_signed_in_indicator.not_signed_in": "Anda perlu daftar masuk untuk mencapai sumber ini.",
"notification.admin.report": "{name} melaporkan {target}",
"notification.admin.sign_up": "{name} mendaftar",
- "notification.favourite": "{name} menggemari pos anda",
+ "notification.favourite": "{name} menyukai hantaran anda",
+ "notification.favourite.name_and_others_with_link": "{name} dan {count, plural, other {# orang lain}} telah suka hantaran anda",
+ "notification.favourite_pm": "{name} menyukai sebutan persendirian anda",
+ "notification.favourite_pm.name_and_others_with_link": "{name} dan {count, plural, other {# orang lain}} telah suka sebutan persendirian anda",
"notification.follow": "{name} mengikuti anda",
"notification.follow_request": "{name} meminta untuk mengikuti anda",
"notification.own_poll": "Undian anda telah tamat",
"notification.reblog": "{name} menggalak hantaran anda",
+ "notification.reblog.name_and_others_with_link": "{name} dan {count, plural, other {# orang lain}} telah galakkan hantaran anda",
"notification.status": "{name} baru sahaja mengirim hantaran",
"notification.update": "{name} menyunting hantaran",
"notifications.clear": "Buang pemberitahuan",
@@ -397,7 +453,7 @@
"notifications.column_settings.admin.report": "Laporan baru:",
"notifications.column_settings.admin.sign_up": "Pendaftaran baru:",
"notifications.column_settings.alert": "Pemberitahuan atas meja",
- "notifications.column_settings.favourite": "Kegemaran:",
+ "notifications.column_settings.favourite": "Sukaan:",
"notifications.column_settings.follow": "Pengikut baharu:",
"notifications.column_settings.follow_request": "Permintaan ikutan baharu:",
"notifications.column_settings.mention": "Sebutan:",
@@ -412,7 +468,7 @@
"notifications.column_settings.update": "Suntingan:",
"notifications.filter.all": "Semua",
"notifications.filter.boosts": "Galakan",
- "notifications.filter.favourites": "Kegemaran",
+ "notifications.filter.favourites": "Sukaan",
"notifications.filter.follows": "Ikutan",
"notifications.filter.mentions": "Sebutan",
"notifications.filter.polls": "Keputusan undian",
@@ -546,7 +602,7 @@
"status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan",
"status.block": "Sekat @{name}",
"status.bookmark": "Tanda buku",
- "status.cancel_reblog_private": "Nyahgalak",
+ "status.cancel_reblog_private": "Nyahgalakkan",
"status.cannot_reblog": "Hantaran ini tidak boleh digalakkan",
"status.copy": "Salin pautan ke hantaran",
"status.delete": "Padam",
@@ -555,7 +611,8 @@
"status.direct_indicator": "Sebutan peribadi",
"status.edit": "Sunting",
"status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
- "status.favourite": "Kegemaran",
+ "status.favourite": "Suka",
+ "status.favourites": "{count, plural, other {sukaan}}",
"status.filter": "Tapiskan hantaran ini",
"status.history.created": "{name} mencipta pada {date}",
"status.history.edited": "{name} menyunting pada {date}",
@@ -572,11 +629,13 @@
"status.pinned": "Hantaran disemat",
"status.read_more": "Baca lagi",
"status.reblog": "Galakkan",
- "status.reblog_private": "Galakkan dengan kebolehlihatan asal",
- "status.reblogged_by": "{name} telah menggalakkan",
- "status.reblogs.empty": "Tiada sesiapa yang menggalak hantaran ini. Apabila ada yang menggalak, ia akan muncul di sini.",
+ "status.reblog_private": "Galakkan dengan ketampakan asal",
+ "status.reblogged_by": "{name} galakkan",
+ "status.reblogs": "{count, plural, other {galakan}}",
+ "status.reblogs.empty": "Tiada sesiapa yang galakkan hantaran ini. Apabila ada yang galakkan, hantaran akan muncul di sini.",
"status.redraft": "Padam & rangka semula",
"status.remove_bookmark": "Buang tanda buku",
+ "status.remove_favourite": "Padam dari sukaan",
"status.replied_to": "Menjawab kepada {name}",
"status.reply": "Balas",
"status.replyAll": "Balas ke bebenang",
@@ -612,6 +671,8 @@
"upload_button.label": "Tambah fail imej, video atau audio",
"upload_error.limit": "Sudah melebihi had muat naik.",
"upload_error.poll": "Tidak boleh memuat naik fail bersama undian.",
+ "upload_form.drag_and_drop.instructions": "Untuk mengangkat lampiran media, tekan jarak atau enter. Ketika menarik, gunakan kekunci anak panah untuk menggerakkan lampiran media pada mana-mana arah. Tekan jarak atau enter untuk melepaskan lampiran media pada kedudukan baharunya, atau tekan keluar untuk batalkan.",
+ "upload_form.drag_and_drop.on_drag_cancel": "Seretan dibatalkan. Lampiran media {item} dilepaskan.",
"upload_form.edit": "Sunting",
"upload_progress.label": "Memuat naik...",
"upload_progress.processing": "Memproses…",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 60481f8cc..c0a3ec183 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Fjern rundspørjing",
"privacy.change": "Endre personvernet på innlegg",
"privacy.direct.long": "Alle nemnde i innlegget",
+ "privacy.direct.short": "Privat omtale",
"privacy.private.long": "Berre dei som fylgjer deg",
"privacy.private.short": "Fylgjarar",
"privacy.public.long": "Kven som helst på og av Mastodon",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 8ae276711..502bb5295 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Usuń ankietę",
"privacy.change": "Dostosuj widoczność wpisów",
"privacy.direct.long": "Wszyscy wzmiankowani w tym wpisie",
+ "privacy.direct.short": "Wzmianka bezpośrednia",
"privacy.private.long": "Tylko obserwujący",
"privacy.private.short": "Obserwujący",
"privacy.public.long": "Każdy na i poza Mastodon",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index d3279d1f4..18d728e1d 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Remover sondagem",
"privacy.change": "Alterar a privacidade da publicação",
"privacy.direct.long": "Todos os mencionados na publicação",
+ "privacy.direct.short": "Menção privada",
"privacy.private.long": "Apenas os teus seguidores",
"privacy.private.short": "Seguidores",
"privacy.public.long": "Qualquer pessoa no Mastodon ou não",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 0e5f7c735..7d4369642 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -697,6 +697,7 @@
"poll_button.remove_poll": "Удалить опрос",
"privacy.change": "Изменить видимость поста",
"privacy.direct.long": "Все упомянутые в посте",
+ "privacy.direct.short": "Личное упоминание",
"privacy.private.long": "Только ваши подписчики",
"privacy.private.short": "Подписчики",
"privacy.public.long": "Любой, находящийся на Mastodon и вне его",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 5c470cf2c..bb7ee3c08 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -700,7 +700,7 @@
"privacy.direct.short": "私下提及",
"privacy.private.long": "仅限你的关注者",
"privacy.private.short": "关注者",
- "privacy.public.long": "",
+ "privacy.public.long": "所有 Mastodon 内外的人",
"privacy.public.short": "公开",
"privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。",
"privacy.unlisted.long": "减少算法影响",
diff --git a/app/javascript/mastodon/models/dropdown_menu.ts b/app/javascript/mastodon/models/dropdown_menu.ts
new file mode 100644
index 000000000..35a29ab62
--- /dev/null
+++ b/app/javascript/mastodon/models/dropdown_menu.ts
@@ -0,0 +1,24 @@
+interface BaseMenuItem {
+ text: string;
+ dangerous?: boolean;
+}
+
+interface ActionMenuItem extends BaseMenuItem {
+ action: () => void;
+}
+
+interface LinkMenuItem extends BaseMenuItem {
+ to: string;
+}
+
+interface ExternalLinkMenuItem extends BaseMenuItem {
+ href: string;
+}
+
+export type MenuItem =
+ | ActionMenuItem
+ | LinkMenuItem
+ | ExternalLinkMenuItem
+ | null;
+
+export type DropdownMenu = MenuItem[];
diff --git a/app/javascript/mastodon/selectors/accounts.ts b/app/javascript/mastodon/selectors/accounts.ts
index cee3a87bc..a33daee86 100644
--- a/app/javascript/mastodon/selectors/accounts.ts
+++ b/app/javascript/mastodon/selectors/accounts.ts
@@ -1,6 +1,7 @@
import { createSelector } from '@reduxjs/toolkit';
import { Record as ImmutableRecord } from 'immutable';
+import { me } from 'mastodon/initial_state';
import { accountDefaultValues } from 'mastodon/models/account';
import type { Account, AccountShape } from 'mastodon/models/account';
import type { Relationship } from 'mastodon/models/relationship';
@@ -45,3 +46,16 @@ export function makeGetAccount() {
},
);
}
+
+export const getAccountHidden = createSelector(
+ [
+ (state: RootState, id: string) => state.accounts.get(id)?.hidden,
+ (state: RootState, id: string) =>
+ state.relationships.get(id)?.following ||
+ state.relationships.get(id)?.requested,
+ (state: RootState, id: string) => id === me,
+ ],
+ (hidden, followingOrRequested, isSelf) => {
+ return hidden && !(isSelf || followingOrRequested);
+ },
+);
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index 345ceac49..6d787272e 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -93,27 +93,23 @@ export const makeGetReport = () => createSelector([
export const getAccountGallery = createSelector([
(state, id) => state.getIn(['timelines', `account:${id}:media`, 'items'], ImmutableList()),
- state => state.get('statuses'),
+ state => state.get('statuses'),
(state, id) => state.getIn(['accounts', id]),
], (statusIds, statuses, account) => {
let medias = ImmutableList();
statusIds.forEach(statusId => {
- const status = statuses.get(statusId).set('account', account);
- medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status)));
+ let status = statuses.get(statusId);
+
+ if (status) {
+ status = status.set('account', account);
+ medias = medias.concat(status.get('media_attachments').map(media => media.set('status', status)));
+ }
});
return medias;
});
-export const getAccountHidden = createSelector([
- (state, id) => state.getIn(['accounts', id, 'hidden']),
- (state, id) => state.getIn(['relationships', id, 'following']) || state.getIn(['relationships', id, 'requested']),
- (state, id) => id === me,
-], (hidden, followingOrRequested, isSelf) => {
- return hidden && !(isSelf || followingOrRequested);
-});
-
export const getStatusList = createSelector([
(state, type) => state.getIn(['status_lists', type, 'items']),
], (items) => items.toList());
diff --git a/app/models/concerns/notification/groups.rb b/app/models/concerns/notification/groups.rb
index 2f29bd9ce..914910e8f 100644
--- a/app/models/concerns/notification/groups.rb
+++ b/app/models/concerns/notification/groups.rb
@@ -7,6 +7,10 @@ module Notification::Groups
GROUPABLE_NOTIFICATION_TYPES = %i(favourite reblog follow).freeze
MAXIMUM_GROUP_SPAN_HOURS = 12
+ included do
+ scope :by_group_key, ->(group_key) { group_key&.start_with?('ungrouped-') ? where(id: group_key.delete_prefix('ungrouped-')) : where(group_key: group_key) }
+ end
+
def set_group_key!
return if filtered? || GROUPABLE_NOTIFICATION_TYPES.exclude?(type)
diff --git a/app/models/terms_of_service/generator.rb b/app/models/terms_of_service/generator.rb
index 83c229720..6fcfb0115 100644
--- a/app/models/terms_of_service/generator.rb
+++ b/app/models/terms_of_service/generator.rb
@@ -13,6 +13,7 @@ class TermsOfService::Generator
dmca_email
domain
jurisdiction
+ choice_of_law
).freeze
attr_accessor(*VARIABLES)
diff --git a/app/views/admin/terms_of_service/generates/show.html.haml b/app/views/admin/terms_of_service/generates/show.html.haml
index 46737e835..0a67aba29 100644
--- a/app/views/admin/terms_of_service/generates/show.html.haml
+++ b/app/views/admin/terms_of_service/generates/show.html.haml
@@ -22,6 +22,9 @@
.fields-group
= form.input :jurisdiction, wrapper: :with_label
+ .fields-group
+ = form.input :choice_of_law, wrapper: :with_label
+
.fields-group
= form.input :admin_email, wrapper: :with_label
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index b4eaab1da..f558ee5fe 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -122,7 +122,7 @@ class Rack::Attack
end
throttle('throttle_email_confirmations/ip', limit: 25, period: 5.minutes) do |req|
- req.throttleable_remote_ip if req.post? && (req.path_matches?('/auth/confirmation') || req.path == '/api/v1/emails/confirmations')
+ req.throttleable_remote_ip if (req.post? && (req.path_matches?('/auth/confirmation') || req.path == '/api/v1/emails/confirmations')) || ((req.put? || req.patch?) && req.path_matches?('/auth/setup'))
end
throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req|
@@ -133,6 +133,14 @@ class Rack::Attack
end
end
+ throttle('throttle_auth_setup/email', limit: 5, period: 10.minutes) do |req|
+ req.params.dig('user', 'email').presence if (req.put? || req.patch?) && req.path_matches?('/auth/setup')
+ end
+
+ throttle('throttle_auth_setup/account', limit: 5, period: 10.minutes) do |req|
+ req.warden_user_id if (req.put? || req.patch?) && req.path_matches?('/auth/setup')
+ end
+
throttle('throttle_login_attempts/ip', limit: 25, period: 5.minutes) do |req|
req.throttleable_remote_ip if req.post? && req.path_matches?('/auth/sign_in')
end
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 6c2ebbfd7..83d158766 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -9,8 +9,8 @@ ast:
last_active: última actividá
nothing_here: "¡Equí nun hai nada!"
posts:
- one: Artículu
- other: Artículos
+ one: Publicación
+ other: Publicaciones
posts_tab_heading: Artículos
admin:
account_actions:
@@ -76,7 +76,7 @@ ast:
destroy_announcement_html: "%{name} desanició l'anunciu «%{target}»"
destroy_custom_emoji_html: "%{name} desanició'l fustaxe %{target}"
destroy_domain_block_html: "%{name} desbloquió'l dominiu %{target}"
- destroy_status_html: "%{name} quitó l'artículu de: %{target}"
+ destroy_status_html: "%{name} quitó la publicación de: %{target}"
destroy_user_role_html: "%{name} desanició'l rol %{target}"
disable_custom_emoji_html: "%{name} desactivó'l fustaxe «%{target}»"
enable_custom_emoji_html: "%{name} activó'l fustaxe «%{target}»"
@@ -87,7 +87,7 @@ ast:
unblock_email_account_html: "%{name} desbloquió la direición de corréu electrónicu de: %{target}"
update_announcement_html: "%{name} anovó l'anunciu «%{target}»"
update_custom_emoji_html: "%{name} anovó'l fustaxe «%{target}»"
- update_status_html: "%{name} anovó l'artículu de: %{target}"
+ update_status_html: "%{name} anovó la publicación de: %{target}"
update_user_role_html: "%{name} camudó'l rol %{target}"
empty: Nun s'atopó nengún rexistru.
announcements:
@@ -100,7 +100,7 @@ ast:
create: Crear l'anunciu
title: Anunciu nuevu
publish: Espublizar
- published_msg: "¡L'anunciu espublizóse correutamente!"
+ published_msg: "¡L'anunciu publicóse correutamente!"
scheduled_msg: "¡Programóse l'espublizamientu del anunciu!"
title: Anuncios
unpublish: Dexar d'espublizar
@@ -347,14 +347,14 @@ ast:
back_to_account: Volver a la páxina de la cuenta
language: Llingua
metadata: Metadatos
- original_status: Artículu orixinal
+ original_status: Publicación orixinal
visibility: Visibilidá
with_media: Con elementos multimedia
strikes:
actions:
- delete_statuses: "%{name} desanició l'artículu de: %{target}"
+ delete_statuses: "%{name} desanició la publicación de: %{target}"
disable: "%{name} conxeló la cuenta de: %{target}"
- mark_statuses_as_sensitive: "%{name} marcó l'artículu de %{target} como sensible"
+ mark_statuses_as_sensitive: "%{name} marcó la publicación de %{target} como sensible"
none: "%{name} unvió una alvertencia a %{target}"
sensitive: "%{name} marcó la cuenta de %{target} como sensible"
suspend: "%{name} suspendió la cuenta de: %{target}"
@@ -375,8 +375,8 @@ ast:
preview_card_providers:
title: Espublizadores
statuses:
- allow: Permitir l'artículu
- disallow: Refugar l'artículu
+ allow: Permitir la publicación
+ disallow: Refugar la publicación
title: Artículos en tendencia
tags:
current_score: 'Puntuación total: %{score}'
@@ -459,6 +459,10 @@ ast:
logout: Zarrar la sesión
migrate_account: Cambéu de cuenta
migrate_account_html: Si quies redirixir esta cuenta a otra diferente, pues configurar esta opción equí.
+ progress:
+ confirm: Confirmación del corréu electrónicu
+ details: Los tos detalles
+ rules: Aceptación de normes
providers:
cas: CAS
saml: SAML
@@ -470,6 +474,8 @@ ast:
security: Seguranza
setup:
link_not_received: "¿Nun consiguiesti l'enllaz?"
+ sign_in:
+ preamble_html: Anicia la sesión coles credenciales del dominiu %{domain}. Si la to cuenta ta agospiada n'otru sirvidor, nun vas ser a aniciar la sesión equí.
sign_up:
title: 'Creación d''una cuenta en: %{domain}.'
status:
@@ -515,8 +521,8 @@ ast:
created_at: Data
recipient: Dirixóse a
reject_appeal: Refugar l'apellación
- status: 'Artículu #%{id}'
- status_removed: L'artículu yá se quitó del sistema
+ status: 'Publicación #%{id}'
+ status_removed: La publicación yá se quitó del sistema
your_appeal_approved: Aprobóse la to apellación
your_appeal_pending: Unviesti una apellación
your_appeal_rejected: Refugóse la to apellación
@@ -572,8 +578,8 @@ ast:
one: "%{count} pallabra clave"
other: "%{count} pallabres claves"
statuses:
- one: "%{count} artículu"
- other: "%{count} artículos"
+ one: "%{count} publicación"
+ other: "%{count} publicaciones"
title: Peñeres
new:
title: Amestar una peñera
@@ -637,7 +643,7 @@ ast:
successful_sign_in_html: Anicióse correutamente la sesión col métodu «%{method}» dende %{ip} (%{browser})
media_attachments:
validations:
- images_and_video: Nun se pue axuntar nengún videu a un artículu que yá contién imáxenes
+ images_and_video: Nun se pue axuntar nengún videu a una publicación que yá contién imáxenes
too_many: Nun se puen axuntar más de 4 ficheros
migrations:
errors:
@@ -654,7 +660,7 @@ ast:
sign_up:
subject: "%{name} rexistróse"
favourite:
- subject: "%{name} marcó'l to artículu como favoritu"
+ subject: "%{name} marcó la to publicación como favorita"
follow:
body: "¡Agora %{name} siguete!"
subject: "%{name} ta siguiéndote"
@@ -666,10 +672,10 @@ ast:
subject: "%{name} mentóte"
title: Mención nueva
reblog:
- body: "%{name} compartió'l to artículu:"
- subject: "%{name} compartió'l to artículu"
+ body: "%{name} compartió la to publicación:"
+ subject: "%{name} compartió la to publicación"
update:
- subject: "%{name} editó un artículu"
+ subject: "%{name} editó una publicación"
notifications:
email_events_hint: 'Seleiciona los eventos de los que quies recibir avisos:'
number:
@@ -798,12 +804,12 @@ ast:
other: "%{count} vídeos"
default_language: La mesma que la de la interfaz
errors:
- in_reply_not_found: L'artículu al que tentes de responder paez que nun esiste.
+ in_reply_not_found: La publicación a la que tentes de responder paez que nun esiste.
pin_errors:
direct: Nun se puen fixar los artículos que son visibles namás pa los usuarios mentaos
limit: Yá fixesti'l númberu máximu d'artículos
- ownership: Nun se pue fixar l'artículu d'otru perfil
- reblog: Nun se pue fixar un artículu compartíu
+ ownership: Nun se pue fixar la publicación d'otru perfil
+ reblog: Nun se pue fixar una publicación compartida
title: "%{name}: «%{quote}»"
visibilities:
direct: Mensaxe direutu
@@ -817,12 +823,12 @@ ast:
keep_direct: Caltener los mensaxes direutos
keep_direct_hint: Nun desanicia nengún mensaxe direutu
keep_media: Caltener los artículos con elementos multimedia
- keep_media_hint: Nun desanicia nengún artículu de to que contenta elementos multimedia
+ keep_media_hint: Nun desanicia nenguna publicación de to que contenta elementos multimedia
keep_pinned: Caltener los artículos fixaos
keep_polls: Caltener les encuestes
keep_polls_hint: Nun desanicia nenguna encuesta de to
keep_self_bookmark: Caltener los artículos que metieres en Marcadores
- keep_self_bookmark_hint: Nun desanicia nengún artículu que metieres en Marcadores
+ keep_self_bookmark_hint: Nun desanicia nenguna publicación que metieres en Marcadores
min_age:
'1209600': 2 selmanes
'15778476': 6 meses
diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml
index 71c9605d8..d956225db 100644
--- a/config/locales/doorkeeper.fr.yml
+++ b/config/locales/doorkeeper.fr.yml
@@ -25,7 +25,7 @@ fr:
edit: Modifier
submit: Envoyer
confirmations:
- destroy: En êtes-vous sûr ?
+ destroy: En êtes-vous certain ?
edit:
title: Modifier l’application
form:
diff --git a/config/locales/doorkeeper.ms.yml b/config/locales/doorkeeper.ms.yml
index b52824e8c..f89def7b8 100644
--- a/config/locales/doorkeeper.ms.yml
+++ b/config/locales/doorkeeper.ms.yml
@@ -126,7 +126,7 @@ ms:
bookmarks: Penanda buku
conversations: Perbualan
crypto: Penyulitan hujung ke hujung
- favourites: Kegemaran
+ favourites: Sukaan
filters: Penapis
follow: Ikut, Senyap dan Blok
follows: Ikutan
@@ -169,7 +169,7 @@ ms:
read:accounts: lihat maklumat akaun
read:blocks: lihat blok anda
read:bookmarks: lihat penanda halaman anda
- read:favourites: lihat kegemaran anda
+ read:favourites: lihat sukaan anda
read:filters: lihat penapis anda
read:follows: lihat senarai yang anda ikuti
read:lists: lihat senarai anda
@@ -183,7 +183,7 @@ ms:
write:blocks: domain dan akaun blok
write:bookmarks: menandabuku hantaran
write:conversations: senyapkan dan padamkan perbualan
- write:favourites: pos kesukaan
+ write:favourites: hantaran disukai
write:filters: cipta penapis
write:follows: ikut orang
write:lists: cipta senarai
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 7659cfcbf..5f3b21072 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -353,7 +353,7 @@ lt:
opened_reports: atidaryti ataskaitos
pending_appeals_html:
few: "%{count} laukiantys apeliacijos"
- many: "%{count} laukiama apeliacija"
+ many: "%{count} laukiamos apeliacijos"
one: "%{count} laukiama apeliacija"
other: "%{count} laukiančių apeliacijų"
pending_reports_html:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 2d256b475..6e4c64527 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -445,6 +445,7 @@ lv:
one: "%{count} mēģinājums pagājušajā nedēļā"
other: "%{count} reģistrēšanās mēģinājumi pagājušajā nedēļā"
zero: "%{count} mēģinājumu pagājušajā nedēļā"
+ created_msg: Sekmīgi liegts e-pasta domēns
delete: Dzēst
dns:
types:
@@ -453,6 +454,7 @@ lv:
new:
create: Pievienot domēnu
resolve: Atrisināt domēnu
+ title: Liegt jaunu e-pasta domēnu
not_permitted: Nav atļauta
resolved_through_html: Atrisināts, izmantojot %{domain}
title: Bloķētie e-pasta domēni
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 94cbca57f..7fc8adcf4 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -756,7 +756,7 @@ ms:
remove_from_report: Alih keluar daripada laporan
report: Laporan
deleted: Dipadamkan
- favourites: Gemaran
+ favourites: Sukaan
history: Sejarah versi
in_reply_to: Membalas kepada
language: Bahasa
@@ -861,7 +861,7 @@ ms:
no_status_selected: Tiada pos sohor kini ditukar kerana tiada yang dipilih
not_discoverable: Pengarang tidak mengikut serta untuk dapat ditemui
shared_by:
- other: Dikongsi dan digemari %{friendly_count} kali
+ other: Dikongsi atau disukai %{friendly_count} kali
title: Hantaran hangat
tags:
current_score: Markah semasa %{score}
@@ -1283,6 +1283,9 @@ ms:
unsubscribe:
action: Ya, nyahlanggan
complete: Menyahlanggan
+ emails:
+ notification_emails:
+ favourite: emel pemberitahuan sukaan
title: Hentikan langganan
media_attachments:
validations:
@@ -1334,9 +1337,9 @@ ms:
sign_up:
subject: "%{name} telah mendaftar"
favourite:
- body: 'Pos anda telah digemari oleh %{name}:'
- subject: "%{name} menggemari siaran anda"
- title: Kegemaran baru
+ body: 'Hantaran anda disukai oleh %{name}:'
+ subject: "%{name} menyukai hantaran anda"
+ title: Sukaan baharu
follow:
body: "%{name} kini mengikuti anda!"
subject: "%{name} kini mengikuti anda"
@@ -1558,7 +1561,7 @@ ms:
enabled_hint: Memadamkan pos anda secara automatik setelah mereka mencapai ambang umur yang ditentukan, melainkan ia sepadan dengan salah satu pengecualian di bawah
exceptions: Pengecualian
explanation: Oleh kerana pemadaman pos adalah operasi yang mahal, ini dilakukan perlahan-lahan dari semasa ke semasa apabila server tidak sibuk. Atas sebab ini, pos anda mungkin dipadamkan seketika selepas ia mencapai ambang umur.
- ignore_favs: Abaikan kegemaran
+ ignore_favs: Abaikan sukaan
ignore_reblogs: Abaikan rangsangan
interaction_exceptions: Pengecualian berdasarkan interaksi
interaction_exceptions_explanation: Sila ambil perhatian bahawa tiada jaminan untuk pos dipadamkan jika ia berada di bawah ambang kegemaran atau tingkatkan selepas sekali melepasinya.
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index 997423449..9e5db2ba3 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -104,11 +104,11 @@ ast:
setting_aggregate_reblogs: Agrupar los artículos compartíos nes llinies de tiempu
setting_always_send_emails: Unviar siempre los avisos per corréu electrónicu
setting_auto_play_gif: Reproducir automáticamente los GIFs
- setting_boost_modal: Amosar el diálogu de confirmación enantes de compartir un artículu
+ setting_boost_modal: Amosar el diálogu de confirmación enantes de compartir una publicación
setting_default_language: Llingua de los artículos
setting_default_privacy: Privacidá de los artículos
setting_default_sensitive: Marcar siempre tol conteníu como sensible
- setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un artículu
+ setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar una publicación
setting_disable_hover_cards: Desactivar la previsualización de perfiles al pasar el mur penriba
setting_disable_swiping: Desactivar el movimientu de desplazamientu
setting_display_media: Conteníu multimedia
@@ -160,12 +160,12 @@ ast:
sign_up_block: Bloquiar el rexistru de cuentes nueves
sign_up_requires_approval: Llendar les cuentes rexistraes nueves
notification_emails:
- favourite: Daquién marcó como favoritu'l to artículu
+ favourite: Daquién marcó como favorita la to publicación
follow: Daquién te sigue
follow_request: Daquién solicitó siguite
mention: Daquién te mentó
pending_account: Una cuenta nueva precisa una revisión
- reblog: Daquién compartió'l to artículu
+ reblog: Daquién compartió la to publicación
report: Unvióse un informe nuevu
software_updates:
label: Hai disponible un anovamientu de Mastodon
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 0abf5b133..2d2bc9e20 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -131,6 +131,7 @@ ca:
tag:
name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible
terms_of_service_generator:
+ choice_of_law: Ciutat, regió, territori o estat els jutjats del qual hauran de dirimir qualsevol disputa legal.
domain: Identificació única del servei en línia que oferiu.
jurisdiction: Indiqueu el país on resideix qui paga les factures. Si és una empresa o una altra entitat, indiqueu el país en què està registrada, així com la ciutat, regió, territori o estat, segons calqui.
user:
@@ -330,6 +331,7 @@ ca:
admin_email: Adreça-e per a les notificacions legals
arbitration_address: Adreça física per a les notificacions d'arbitratge
arbitration_website: Lloc web per a enviar les notificacions d'arbitratge
+ choice_of_law: Legislació aplicable
dmca_address: Adreça física per a les notificacions de copyright/DMCA
dmca_email: Adreça-e per a les notificacions de copyright/DMCA
domain: Domini
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index ee0a3ae56..bc0e6f5b2 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -137,6 +137,7 @@ cs:
admin_email: Právní oznámení zahrnují protioznámení, soudní příkazy, žádosti o stáhnutí příspěvků a žádosti od právních vymahačů.
arbitration_address: Může být stejné jako výše uvedená fyzická adresa, nebo „N/A“, pokud používáte e-mail
arbitration_website: Může být webový formulář nebo „N/A“, pokud používáte e-mail
+ choice_of_law: Město, region, území nebo stát, jehož vnitřní hmotné právo se řídí všemi nároky.
dmca_address: V případě provozovatelů v USA použijte adresu zapsanou v DMCA Designated Agent Directory. Na přímou žádost je možné použít namísto domovské adresy PO box, použijte DMCA Designated Agent Post Office Box Waiver Request k e-mailovaní Copyright Office a řekněte jim, že jste malým moderátorem obsahu, který se obavá pomsty nabo odplaty za Vaši práci a potřebujete použít PO box, abyste schovali Vaši domovskou adresu před širokou veřejností.
dmca_email: Může být stejný e-mail použitý pro „E-mail adresy pro právní upozornění“
domain: Jedinečná identifikace online služby, kterou poskytujete.
@@ -338,6 +339,7 @@ cs:
admin_email: E-mailová adresa pro právní upozornění
arbitration_address: Fyzická adresa pro upozornění na arbitrační řízení
arbitration_website: Webová stránka pro zasílání arbitračních upozornění
+ choice_of_law: Volba zákona
dmca_address: Fyzická adresa pro oznámení DMCA/porušení autorských práv
dmca_email: E-mailová adresa pro oznámení DMCA/porušení autorských práv
domain: Doména
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 1548e3e24..fe6b894ce 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -137,6 +137,7 @@ da:
admin_email: Juridiske bekendtgørelser omfatter imødegåelsesbekendtgørelser, retskendelser, nedtagelses- og retshåndhævelsesanmodninger.
arbitration_address: Kan være den samme som Fysisk adresse ovenfor, eller “N/A” ved brug af e-mail
arbitration_website: Kan være en webformular, eller “N/A” ved brug af e-mail
+ choice_of_law: By, region, område eller angiv de interne materielle love, som vil være gældende for samtlige krav.
dmca_address: For amerikanske operatører, brug den adresse, der er registreret i DMCA Designated Agent Directory. En Postboksliste er tilgængelig på direkte anmodning, brug den DMCA Designated Agent Post Office Box Waiver Request til at e-maile Ophavsretskontoret og beskrive, at man er en hjemmebaseret indholdsmoderator, der frygter hævn eller gengældelse for sine handlinger og behøver en Postboks for at fjerne hjemmeadressen fra den offentlige visning.
dmca_email: Kan være samme e-mail, som brugt til “E-mailadresse til juridiske meddelelser” ovenfor
domain: Unik identifikation af den onlinetjeneste, man leverer.
@@ -338,6 +339,7 @@ da:
admin_email: E-mailadresse til juridiske meddelelser
arbitration_address: Fysisk adresse til voldgiftsmeddelelser
arbitration_website: Websted til indsendelse af voldgiftsmeddelelser
+ choice_of_law: Lovvalg
dmca_address: Fysisk adresse til DMCA-/ophavsretsmeddelelser
dmca_email: E-mailadresse til DMCA-/ophavsretsmeddelelser
domain: Domæne
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 9f3f84ffc..862e69e28 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -137,6 +137,7 @@ de:
admin_email: Rechtliche Hinweise umfassen Gegendarstellungen, Gerichtsbeschlüsse, Anfragen zum Herunternehmen von Inhalten und Anfragen von Strafverfolgungsbehörden.
arbitration_address: Kann wie die Anschrift hierüber sein oder „N/A“, falls eine E-Mail verwendet wird
arbitration_website: Kann ein Webformular sein oder „N/A“, falls eine E-Mail verwendet wird
+ choice_of_law: Stadt, Region, Gebiet oder Staat, dessen innerstaatliches materielles Recht für alle Ansprüche maßgebend ist.
dmca_address: US-Betreiber sollten die im „DMCA Designated Agent Directory“ eingetragene Adresse verwenden. Eine Postfachadresse ist auf direkte Anfrage verfügbar. Verwenden Sie die „DMCA Designated Agent Post Box Waiver“-Anfrage, um per E-Mail die Urheberrechtsbehörde darüber zu unterrichten, dass Sie Inhalte per Heimarbeit moderieren, eventuelle Rache oder Vergeltung für Ihre Handlungen befürchten und deshalb eine Postfachadresse benötigen, um Ihre Privatadresse nicht preiszugeben.
dmca_email: Kann dieselbe E-Mail wie bei „E-Mail-Adresse für rechtliche Hinweise“ sein
domain: Einzigartige Identifizierung des angebotenen Online-Services.
@@ -338,6 +339,7 @@ de:
admin_email: E-Mail-Adresse für rechtliche Hinweise
arbitration_address: Anschrift für Schiedsverfahren
arbitration_website: Website zum Einreichen von Schiedsverfahren
+ choice_of_law: Wahl der Rechtsordnung
dmca_address: Anschrift für Urheberrechtsverletzungen
dmca_email: E-Mail-Adresse für Urheberrechtsverletzungen
domain: Domain
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index edf0a29a3..d59235222 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -137,6 +137,7 @@ en:
admin_email: Legal notices include counternotices, court orders, takedown requests, and law enforcement requests.
arbitration_address: Can be the same as Physical address above, or “N/A” if using email
arbitration_website: Can be a web form, or “N/A” if using email
+ choice_of_law: City, region, territory or state the internal substantive laws of which shall govern any and all claims.
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
dmca_email: Can be the same email used for “Email address for legal notices” above
domain: Unique identification of the online service you are providing.
@@ -338,6 +339,7 @@ en:
admin_email: Email address for legal notices
arbitration_address: Physical address for arbitration notices
arbitration_website: Website for submitting arbitration notices
+ choice_of_law: Choice of Law
dmca_address: Physical address for DMCA/copyright notices
dmca_email: Email address for DMCA/copyright notices
domain: Domain
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index b0b8e4e4d..84c9b1e1a 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -137,6 +137,7 @@ eo:
admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro.
arbitration_address: Povas esti la sama kiel Fizika adreso supre, aŭ "N/A" se oni uzas retpoŝton
arbitration_website: Povas esti retformo, aŭ "N/A" se oni uzas retpoŝton
+ choice_of_law: Urbo, regiono, teritorio aŭ ŝtato, kies internaj substantivaj leĝoj regos iujn kaj ĉiujn asertojn.
dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido.
dmca_email: Povas esti la sama retpoŝtadreso uzita por "Retpoŝtadreso por legalaj sciigoj" supre
domain: Unika identigilo de la retaj servicoj, ke vi provizas.
@@ -338,6 +339,7 @@ eo:
admin_email: Retpoŝtadreso por laŭleĝaj avizoj
arbitration_address: Fizika adreso por arbitraciaj avizoj
arbitration_website: Retejo por sendi arbitraciajn avizojn
+ choice_of_law: Elekto de leĝo
dmca_address: Fizika adreso por DMCA/kopirajto-avizoj
dmca_email: Retpoŝtadreso por DMCA/kopirajto-avizoj
domain: Domajno
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index 8c582b1f2..c1216e5e5 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -137,6 +137,7 @@ es-AR:
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
arbitration_address: Puede ser la misma que la dirección física anterior, o «N.D.» si utiliza correo electrónico
arbitration_website: Puede ser un formulario web, o «N.D.» si utiliza correo electrónico
+ choice_of_law: Ciudad, región, territorio o declaración de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
dmca_address: Para operadores estadounidenses, usen la dirección registrada en el Directorio de Agente Designado del DMCA. Una lista de casillas de correo está disponible bajo petición directa, usen la solicitud de exención del apartado postal del agente designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que ustedes son moderadores de contenido basado en el hogar que temen venganza o represalia por sus acciones y que necesitan usar una casilla de correo para eliminar su dirección postal de la vista pública.
dmca_email: Puede ser el mismo correo electrónico utilizado para «Dirección de correo electrónico para avisos legales» de arriba
domain: Identificación única del servicio en línea que estás proporcionando.
@@ -338,6 +339,7 @@ es-AR:
admin_email: Dirección de correo electrónico para avisos legales
arbitration_address: Dirección física para avisos de arbitraje
arbitration_website: Sitio web para enviar avisos de arbitraje
+ choice_of_law: Elección de ley
dmca_address: Dirección física para avisos de DMCA/derechos de autor
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
domain: Dominio
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 598ed2582..2d784aa4d 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -137,6 +137,7 @@ es-MX:
admin_email: Las notificaciones legales incluyen contraavisos, órdenes judiciales, solicitudes de retirada y solicitudes de aplicación de la ley.
arbitration_address: Puede ser la misma que la dirección física anterior, o “N/A” si se utiliza el correo electrónico
arbitration_website: Puede ser un formulario web, o “N/A” si se utiliza el correo electrónico
+ choice_of_law: Ciudad, región, territorio o estado de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
dmca_address: Para los operadores de EE. UU., utilice la dirección registrada en el Directorio de Agentes Designados de la DMCA. Un listado de apartados de correos está disponible bajo petición directa, utilice la Solicitud de Renuncia de Apartado de Correos de Agente Designado de la DMCA para enviar un correo electrónico a la Oficina de Derechos de Autor y describa que usted es un moderador de contenidos desde su casa que teme venganza o represalias por sus acciones y necesita utilizar un apartado de correos para eliminar su dirección particular de la vista del público.
dmca_email: Puede ser la misma dirección de correo electrónico usada en “Dirección de correo electrónico para notificaciones legales”
domain: Identificación única del servicio en línea que presta.
@@ -338,6 +339,7 @@ es-MX:
admin_email: Dirección de correo electrónico para notificaciones legales
arbitration_address: Dirección física para notificaciones de arbitraje
arbitration_website: Sitio web para presentar notificaciones de arbitraje
+ choice_of_law: Elección de la ley
dmca_address: Dirección física para avisos de DMCA/derechos de autor
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
domain: Dominio
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index 9d840abad..fd5257e53 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -137,6 +137,7 @@ es:
admin_email: Los avisos legales incluyen devoluciones, órdenes judiciales, solicitudes de retiro y solicitudes de cumplimiento de la ley.
arbitration_address: Puede ser la misma que la dirección física anterior, o "N/A" si utiliza correo electrónico
arbitration_website: Puede ser un formulario web, o “N/A” si utiliza correo electrónico
+ choice_of_law: Ciudad, región, territorio o declaración de las leyes de sustancia interna de las que se regirán todas y cada una de las reclamaciones.
dmca_address: Para operadores estadounidenses, utilice la dirección registrada en el DMCA Designated Agent Directory. Un listado P.O. Box está disponible bajo petición directa, use la DMCA Designated Agent Post Office Box Waiver Request para enviar un correo electrónico a la Oficina de Derechos de Autor y describir que usted es un moderador de contenido basado en el hogar que teme venganza o represalia por sus acciones y que necesita usar un P.O. Box para eliminar su dirección postal de la vista pública.
dmca_email: Puede ser el mismo correo electrónico utilizado para "Dirección de correo electrónico para avisos legales" de arriba
domain: Identificación única del servicio en línea que estás proporcionando.
@@ -338,6 +339,7 @@ es:
admin_email: Dirección de correo electrónico para avisos legales
arbitration_address: Dirección física para avisos de arbitraje
arbitration_website: Sitio web para enviar avisos de arbitraje
+ choice_of_law: Elección de la ley
dmca_address: Dirección física para avisos de DMCA/derechos de autor
dmca_email: Dirección de correo electrónico para avisos de DMCA/derechos de autor
domain: Dominio
diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml
index aaa1cbdee..20bb0a3dc 100644
--- a/config/locales/simple_form.fo.yml
+++ b/config/locales/simple_form.fo.yml
@@ -137,6 +137,7 @@ fo:
admin_email: Løgfrøðisligar fráboðanir fata um rættarligar mótfráboðanir, úrskurðir, áheitanir um at taka niður og løgfrøðisligar áheitanir.
arbitration_address: Kann vera tann sami sum fysiski bústaðurin omanfyri ella "N/A", um teldupostur verður brúktur
arbitration_website: Kann vera ein vevformularur ella "N/A", um teldupostur verður brúktur
+ choice_of_law: Býur, øki, landspartur ella statur, hvørs innanhýsis lógir skulu stýra øllum krøvum.
dmca_address: Fyristøðufólk og -feløg í USA brúka bústaðin, ið er skrásettur í DMCA Designated Agent Directory. Ein postsmoguskráseting er tøk, um biðið verður um hana beinleiðis. Brúka DMCA Designated Agent Post Office Box Waiver Request fyri at senda teldubræv til Copyright Office og greið frá, at tú er ein kjakleiðari, sum virkar heimanifrá, og at tú er bangin fyri hevnd ella afturløning fyri tí, tú ger, og at tú hevur tørv á at brúka eina postsmogu fyri at fjala heimabústaðin fyri almenninginum.
dmca_email: Kann vera sami teldupoststaður, sum er brúktur til "Teldupoststaður fyri løgfrøðisligar fráboðanir" omanfyri
domain: Makaleys eyðmerking av nettænastuni, sum tú veitir.
@@ -338,6 +339,7 @@ fo:
admin_email: Teldupoststaður fyri løgfrøðisligar fráboðanir
arbitration_address: Fysisk adressa fyri gerðarrættarfráboðanir
arbitration_website: Heimasíða har gerðarrættarfráboðanir kunnu innlatast
+ choice_of_law: Val av lóg
dmca_address: Fysiskur bústaður fyri DMCA/copyright fráboðanir
dmca_email: Teldubústaður fyri DMCA/copyright fráboðanir
domain: Navnaøki
diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml
index 93a1090cf..a0a746233 100644
--- a/config/locales/simple_form.ga.yml
+++ b/config/locales/simple_form.ga.yml
@@ -137,6 +137,7 @@ ga:
admin_email: Áirítear le fógraí dlí frithfhógraí, orduithe cúirte, iarratais éirí anuas, agus iarratais forghníomhaithe dlí.
arbitration_address: D’fhéadfadh sé a bheith mar an gcéanna leis an seoladh fisiceach thuas, nó “N/B” má tá ríomhphost in úsáid agat
arbitration_website: D’fhéadfadh gur foirm ghréasáin í, nó “N/A” má tá ríomhphost in úsáid agat
+ choice_of_law: Cathair, réigiún, críoch nó stát a rialóidh a dhlíthe inmheánacha substaintiúla aon éileamh agus gach éileamh.
dmca_address: Maidir le hoibreoirí SAM, bain úsáid as an seoladh atá cláraithe in Eolaire Gníomhairí Ainmnithe DMCA. A P.O. Tá liostú boscaí ar fáil ach é a iarraidh go díreach, bain úsáid as Iarratas Tarscaoilte Bosca Gníomhaire Ainmnithe DMCA chun ríomhphost a chur chuig an Oifig Cóipchirt agus déan cur síos gur modhnóir ábhar baile thú a bhfuil eagla ort díoltas nó aisíocaíocht a fháil mar gheall ar do ghníomhartha agus a dteastaíonn uait úsáid a bhaint as P.O. Bosca chun do sheoladh baile a bhaint den radharc poiblí.
dmca_email: Is féidir gurb é an ríomhphost céanna é a úsáidtear le haghaidh “Seoladh ríomhphoist le haghaidh fógraí dlí” thuas
domain: Aitheantas uathúil na seirbhíse ar líne atá á cur ar fáil agat.
@@ -338,6 +339,7 @@ ga:
admin_email: Seoladh ríomhphoist le haghaidh fógraí dlí
arbitration_address: Seoladh fisiciúil le haghaidh fógraí eadrána
arbitration_website: An láithreán gréasáin chun fógraí eadrána a chur isteach
+ choice_of_law: Rogha an Dlí
dmca_address: Seoladh fisiciúil le haghaidh fógraí DMCA/cóipchirt
dmca_email: Seoladh ríomhphoist le haghaidh fógraí DMCA/cóipchirt
domain: Fearann
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 412e0eb03..f6dd172e8 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -137,6 +137,7 @@ gl:
admin_email: Os avisos legais inclúen ordes xudiciais, solicitudes de retirada de contido e requerimentos do cumprimento da lei.
arbitration_address: Pode ser o mesmo enderezo Físico de máis arriba, ou "N/A" se usas o correo electrónico
arbitration_website: Pode ser un formulario web ou "N/A" se usas o correo electrónico
+ choice_of_law: Cidade, rexión, territorio ou estado cuxas leis rexirán sobre as reclamacións e disputas.
dmca_address: Para operadores de USA, utiliza o mesmo enderezo rexistrado no DMCA Designated Agent Directory. Está dispoñible a opción de usar P.O. Box facendo a solicitude baixo a DMCA Designated Agent Post Office Box Waiver Request pedíndoa á Copyright Office e indicando que es un moderador de contidos na túa casa e temes ameazas ou violencia polas medidas que tomas e precisas usar un P.O. Box para que non sexa público o enderezo da túa casa.
dmca_email: Pode ser o mesmo enderezo de correo usado para "Enderezo para avisos legais"
domain: Identificador único do servizo en liña que proporcionas.
@@ -338,6 +339,7 @@ gl:
admin_email: Enderezo de correo para avisos legais
arbitration_address: Enderezo físico para avisos de arbitraxe
arbitration_website: Páxina web para enviar avisos de arbitraxe
+ choice_of_law: Xurisdición
dmca_address: Enderezo físico para avisos sobre DMCA/copyright
dmca_email: Enderezo de correo electrónico para avisos sobre DMCA/copyright
domain: Dominio
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 6bf767adb..234a2d752 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -137,6 +137,7 @@ he:
admin_email: מזכרים חוקיים כוללים הוראות בימ"ש, בקשות הסרה, תשובות להתראות ובקשות ציות לאכיפה.
arbitration_address: יכול להיות כתובת פיזית זהה לעיל, או “N/A” אם משתמשים בדואל
arbitration_website: יכול להיות טופס בדפדפן או “N/A” אם משתמשים בדואל
+ choice_of_law: עיר, מחוז, טריטוריה או מדינה שחוקיה חלים על כל התביעות והתלונות.
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
dmca_email: ניתן להשתמש באותה כתובת הדואל שעבור "כתובת דואל להודעות משפטיות" לעיל
domain: זיהוי ייחודי של השירות המקוון שאתה מספק.
@@ -338,6 +339,7 @@ he:
admin_email: כתובת דוא"ל להודעות משפטיות
arbitration_address: כתובת פיזית להודעות גישור
arbitration_website: אתר רשת להגשת הודעות גישור
+ choice_of_law: בחירת אזור שיפוט
dmca_address: כתובת פיזית לשליחת התראות זכויות יוצרים/DMCA
dmca_email: כתובת דואל לשליחת התראות זכויות יוצרים/DMCA
domain: מתחם (דומיין)
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 442e27f35..52b6b806f 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -137,6 +137,7 @@ hu:
admin_email: A jogi közlemények közé tartoznak az ellenkeresetek, a bírósági végzések, az eltávolítási kérelmek és a bűnüldöző szervek kérelmei is.
arbitration_address: Lehet a fent használt valós cím, vagy e-mail használata esetén „N/A”
arbitration_website: Lehet webes űrlap, vagy e-mail használata esetén „N/A”
+ choice_of_law: Város, régió, terület vagy állam, amely jogszabályai irányadóak az összes követelés esetén.
dmca_address: Amerikai üzemeltető esetén használja a DMCA Designated Agent Directory jegyzékében regisztrált címet. Közvetlen kérésre postafiók-jegyzék is rendelkezésre áll, használja a DMCA Designated Agent Directory postafiókról való lemondás iránti kérelmét a Copyright Office-nak küldött e-mailben, és írja le, hogy Ön egy otthoni tartalommoderátor, aki bosszútól vagy megtorlástól tart a tevékenységi miatt, és ezért egy postafiókra van szüksége, hogy ne legyen nyilvános az otthoni címe.
dmca_email: Megegyezhet a fenti „E-mail-cím a jogi nyilatkozatok benyújtásához” mezővel
domain: A nyújtott online szolgáltatás egyedi azonosítója.
@@ -338,6 +339,7 @@ hu:
admin_email: E-mail-cím a jogi nyilatkozatok benyújtásához
arbitration_address: Fizikai cím a békéltető testületi nyilatkozatok benyújtásához
arbitration_website: Weboldal a békéltető testületi nyilatkozatok benyújtásához
+ choice_of_law: Joghatóság
dmca_address: Fizikai cím a szerzői jogi nyilatkozatokhoz
dmca_email: E-mail-cím a szerzői jogi nyilatkozatokhoz
domain: Domain
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index ad755e5bb..26e0334d2 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -137,6 +137,7 @@ is:
admin_email: Löglegar tilkynningar ná yfir andsvör, dómsúrskurði, lokunarbeiðnir og beiðnir frá lögregluembættum.
arbitration_address: Má vera það sama og raunverulegt heimilisfang eða “N/A” ef tölvupóstur er notaður
arbitration_website: Má vera innfyllingarform á vefsíðu eða “N/A” ef tölvupóstur er notaður
+ choice_of_law: Sveitarfélög, héruð eða ríki þar sem ríkjandi lög og reglugerðir skulu stýra meðhöndlun á öllum kröfum.
dmca_address: Fyrir rekstraraðila í BNA ætti að nota heimilisfang sem skráð er í DMCA Designated Agent Directory. Hægt er að verða sér úti um A P.O. pósthólfsskráningu með beinni beiðni; notaðu DMCA Designated Agent Post Office Box Waiver Request til að senda tölvupóst á Copyright Office og lýstu því yfir að þú sért heimavinnandi efnismiðlari (home-based content moderator) sem átt á hættu refsingar eða hefndir vegna þess sem þú miðlar og þurfir því á slíku pósthólfi að halda svo þitt eigið heimilisfang sé ekki gert opinbert.
dmca_email: Má vera sama tölvupóstfang og það sem notað er í “Tölvupóstfang vegna löglegra tilkynninga” hér að ofan
domain: Einstakt auðkenni á netþjónustunni sem þú býður.
@@ -338,6 +339,7 @@ is:
admin_email: Tölvupóstfang vegna löglegra tilkynninga
arbitration_address: Raunverulegt heimilisfang fyrir tilkynningar um úrskurði
arbitration_website: Vefsvæði til að senda inn tilkynningar um úrskurði
+ choice_of_law: Val á lagaumgjörð
dmca_address: Raunverulegt heimilisfang fyrir kröfur vegna DMCA/höfundarréttar
dmca_email: Tölvupóstfang tilkynninga vegna DMCA/höfundaréttar
domain: Lén
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 96f788101..125baa2fa 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -137,6 +137,7 @@ it:
admin_email: Gli avvisi legali includono controavvisi, ordinanze del tribunale, richieste di rimozione e richieste delle forze dell'ordine.
arbitration_address: Può essere lo stesso dell'indirizzo fisico sopra o "N/A" se si utilizza l'email
arbitration_website: Può essere un modulo web o "N/A" se si utilizza l'email
+ choice_of_law: Città, regione, territorio o Stato le cui leggi sostanziali interne regoleranno tutti i reclami.
dmca_address: Per gli operatori statunitensi, utilizzare l'indirizzo registrato nella DMCA Designated Agent Directory. L'elenco delle caselle postali è disponibile su richiesta diretta, utilizzando il DMCA Designated Agent Post Office Box Waiver Request per inviare un'email al Copyright Office e descrivendo di essere un moderatore di contenuti che lavora da casa e che teme vendette o punizioni per le proprie azioni e che hai bisogno di usare una casella postale per rimuovere il tuo indirizzo di casa dalla vista pubblica.
dmca_email: Può essere lo stesso indirizzo email utilizzato per "Indirizzo email per avvisi legali" sopra
domain: Identificazione univoca del servizio online che stai fornendo.
@@ -338,6 +339,7 @@ it:
admin_email: Indirizzo email per avvisi legali
arbitration_address: Indirizzo fisico per avvisi di arbitrato
arbitration_website: Sito web per l'invio di avvisi di arbitrato
+ choice_of_law: Scelta della legge
dmca_address: Indirizzo fisico per gli avvisi DMCA/copyright
dmca_email: Indirizzo email per gli avvisi DMCA/copyright
domain: Dominio
diff --git a/config/locales/simple_form.lt.yml b/config/locales/simple_form.lt.yml
index 454179d0b..9b6967815 100644
--- a/config/locales/simple_form.lt.yml
+++ b/config/locales/simple_form.lt.yml
@@ -110,6 +110,7 @@ lt:
admin_email: Teisiniai pranešimai įtraukia priešpriešinius pranešimus, teismo įsakymus, pašalinimo prašymus ir teisėsaugos institucijų prašymus.
arbitration_address: Gali būti toks pat kaip aukščiau nurodytas fizinis adresas arba „N/A“ (netaikoma), jei naudojamas el. paštas.
arbitration_website: Gali būti interneto forma arba „N/A“ (netaikoma), jei naudojamas el. paštas.
+ choice_of_law: Miestas, regionas, teritorija ar valstija, kurių vidaus materialinė teisė reglamentuoja visus reikalavimus.
dmca_address: JAV operatoriams naudokite DMCA paskirtojo agento kataloge užregistruotą adresą. Pašto dėžutės sąrašą galima sudaryti pateikus tiesioginį prašymą, naudokite DMCA paskirtojo agento pašto dėžutės atsisakymo prašymą, kad parašytumėte el. laišką Autorinių teisių tarnybai ir aprašytumėte, kad esate namuose įsikūręs turinio moderatorius, kuris baiminasi keršto ar bausmės už savo veiksmus ir kuriam reikia naudoti pašto dėžutę, kad jo namų adresas nebūtų viešai matomas.
dmca_email: Gali būti tas pats aukščiau nurodytas el. pašto adresas, naudojamas „El. pašto adresas, skirtas teisiniams pranešimams“.
domain: Unikalus jūsų teikiamos internetinės paslaugos identifikavimas.
@@ -234,6 +235,7 @@ lt:
admin_email: El. pašto adresas, skirtas teisiniams pranešimams
arbitration_address: Fizinis adresas pranešimams apie arbitražą
arbitration_website: Svetainė pranešimams apie arbitražą
+ choice_of_law: Teisės pasirinkimas
dmca_address: Fizinis adresas, skirtas DMCA / autorinių teisių pranešimams
dmca_email: El. pašto adresas, skirtas DMCA / autorinių teisių pranešimams
domain: Domenas
diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml
index 85cc38fa9..05ea081c2 100644
--- a/config/locales/simple_form.lv.yml
+++ b/config/locales/simple_form.lv.yml
@@ -3,6 +3,7 @@ lv:
simple_form:
hints:
account:
+ attribution_domains: Viens katrā līnijā. Aizsargā no nepatiesa attiecinājuma.
discoverable: Tavas publiskās ziņas un profils var tikt piedāvāti vai ieteikti dažādās Mastodon vietās, un tavs profils var tikt ieteikts citiem lietotājiem.
display_name: Tavs pilnais vārds vai tavs joku vārds.
fields: Tava mājas lapa, vietniekvārdi, vecums, viss, ko vēlies.
@@ -59,6 +60,7 @@ lv:
setting_display_media_default: Paslēpt multividi, kas atzīmēta kā sensitīva
setting_display_media_hide_all: Vienmēr slēpt multividi
setting_display_media_show_all: Vienmēr rādīt multividi
+ setting_system_scrollbars_ui: Attiecas tikai uz darbvirsmas pārlūkiem, kuru pamatā ir Safari vai Chrome
setting_use_blurhash: Pāreju pamatā ir paslēpto uzskatāmo līdzekļu krāsas, bet saturs tiek padarīts neskaidrs
setting_use_pending_items: Paslēpt laika skalas atjauninājumus aiz klikšķa, nevis ar automātisku plūsmas ritināšanu
username: Tu vari lietot burtus, ciparus un zemsvītras
@@ -128,6 +130,9 @@ lv:
show_application: Tu vienmēr varēsi redzēt, kura lietotne publicēja tavu ziņu.
tag:
name: Tu vari mainīt tikai burtu lielumu, piemēram, lai tie būtu vieglāk lasāmi
+ terms_of_service:
+ changelog: Var veidot ar Markdown pierakstu.
+ text: Var veidot ar Markdown pierakstu.
user:
chosen_languages: Ja ieķeksēts, publiskos laika grafikos tiks parādītas tikai ziņas noteiktajās valodās
role: Loma nosaka, kādas lietotājam ir atļaujas.
diff --git a/config/locales/simple_form.ms.yml b/config/locales/simple_form.ms.yml
index 96c6002aa..553100af9 100644
--- a/config/locales/simple_form.ms.yml
+++ b/config/locales/simple_form.ms.yml
@@ -77,6 +77,7 @@ ms:
bootstrap_timeline_accounts: Akaun ini akan disematkan pada bahagian atas cadangan ikutan pengguna baharu.
closed_registrations_message: Dipaparkan semasa pendaftaran ditutup
custom_css: Anda boleh menggunakan gaya tersuai pada versi web Mastodon.
+ favicon: WEBP, PNG, GIF, atau JPG. Arca tersuai diutamakan dari arca kegemaran Mastodon lalai.
mascot: Mengatasi ilustrasi dalam antara muka web lanjutan.
peers_api_enabled: Senarai nama domain yang pernah ditemui oleh server ini dalam fediverse. Tiada data disertakan di sini tentang sama ada anda bersekutu dengan server tertentu, cuma server anda mengetahuinya. Ini digunakan oleh perkhidmatan yang mengumpul statistik mengenai persekutuan dalam pengertian umum.
profile_directory: Direktori profil menyenaraikan semua pengguna yang telah mengikut serta untuk ditemui.
@@ -236,6 +237,7 @@ ms:
bootstrap_timeline_accounts: Sentiasa mengesyorkan akaun ini kepada pengguna baharu
closed_registrations_message: Mesej tersuai apabila pendaftaran tidak tersedia
custom_css: CSS tersuai
+ favicon: Arca kegemaran
mascot: Maskot tersuai (warisan)
media_cache_retention_period: Tempoh pengekalan cache media
peers_api_enabled: Terbitkan senarai pelayan yang ditemui dalam API
@@ -276,7 +278,7 @@ ms:
notification_emails:
appeal: Seseorang merayu keputusan moderator
digest: Hantar e-mel ringkasan
- favourite: Seorang menggemarkan hantaran anda
+ favourite: Seseorang menyukai hantaran anda
follow: Seorang mengikuti anda
follow_request: Seorang meminta untuk mengikuti anda
mention: Seorang menyebut anda
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 7079b25c6..17bf41de4 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -137,6 +137,7 @@ nl:
admin_email: Juridische mededelingen zijn o. a. counter-notices, gerechterlijke bevelen, takedown-requests en handhavingsverzoeken.
arbitration_address: Kan hetzelfde zijn als bovenstaand vestigingsadres of "N/A" bij gebruik van e-mail
arbitration_website: Kan een webformulier zijn, of "N/A" als e-mail wordt gebruikt
+ choice_of_law: Stad, regio, grondgebied of staat waar de interne grondwetten van toepassing zijn op alle claims.
dmca_address: 'Gebruik voor beheerders in de VS: het adres dat is geregistreerd in de DMCA Designated Agent Directory. Op verzoek is er een postbuslijst beschikbaar. Gebruik het DMCA Designated Agent Post Office Box Waiver Request om het Copyright Office te e-mailen en te beschrijven dat je een vanaf huis opererende inhoudsmoderator bent, die wraak of vergelding vreest voor je moderator-acties en daarom een postbus moet gebruiken om jouw huisadres uit het publieke domein te houden.'
dmca_email: Kan hetzelfde e-mailadres zijn dat gebruikt wordt voor "E-mailadres voor juridische berichten" hierboven
domain: Een unieke identificatie van de online dienst die je levert.
@@ -338,6 +339,7 @@ nl:
admin_email: E-mailadres voor juridische meldingen
arbitration_address: Vestigingsadres voor arbitrage-mededelingen
arbitration_website: Website voor het indienen van arbitrage-mededelingen
+ choice_of_law: Keuze van recht
dmca_address: Vestigingsadres voor DMCA/auteursrecht-mededelingen
dmca_email: E-mailadres voor DMCA/auteursrecht-mededelingen
domain: Domein
diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml
index 74edba7cd..b981e54c4 100644
--- a/config/locales/simple_form.pt-PT.yml
+++ b/config/locales/simple_form.pt-PT.yml
@@ -137,6 +137,7 @@ pt-PT:
admin_email: Os avisos legais incluem contra-avisos, ordens judiciais, pedidos de remoção e pedidos de aplicação da lei.
arbitration_address: Pode ser o mesmo que o endereço físico acima ou “N/A” se utilizar e-mail
arbitration_website: Pode ser um formulário web ou “N/A” se for utilizado o e-mail
+ choice_of_law: A legislação interna do estado, território, região ou cidade que deve regular qualquer conflito.
dmca_address: Para operadores dos EUA, utilize o endereço registado no Diretório de Agentes Designados DMCA. A listagem de uma caixa postal está disponível mediante pedido direto. Utilize o DMCA Designated Agent Post Office Box Waiver Request para enviar uma mensagem de correio eletrónico ao Copyright Office e descreva que é um moderador de conteúdos baseado em casa que receia vingança ou represálias pelas suas ações e que necessita de utilizar uma caixa postal para retirar o seu endereço de casa da vista do público.
dmca_email: Pode ser o mesmo e-mail utilizado para “Endereço de e-mail para avisos legais” acima
domain: Identificação única do serviço online que está a prestar.
@@ -338,6 +339,7 @@ pt-PT:
admin_email: Endereço de e-mail para avisos legais
arbitration_address: Endereço físico para avisos de arbitragem
arbitration_website: Website para enviar avisos de arbitragem
+ choice_of_law: Escolha da legislação
dmca_address: Endereço físico para avisos DMCA / direitos autorais
dmca_email: Endereço de e-mail para avisos DMCA/direitos autorais
domain: Domínio
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index e8a83f06d..7b85e9591 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -137,6 +137,7 @@ ru:
admin_email: Юридические уведомления включают в себя встречные уведомления, постановления суда, запросы на удаление и запросы правоохранительных органов.
arbitration_address: Может совпадать с почтовым адресом, указанным выше, либо «N/A» в случае электронной почты
arbitration_website: Веб-форма или «N/A» в случае электронной почты
+ choice_of_law: Город, регион, территория или государственное материальное право, которое регулирует любые претензии и все их требования.
dmca_address: Находящиеся в США операторы должны использовать адрес, зарегистрированный в DMCA Designated Agent Directory. Использовать абонентский ящик возможно при обращении в соответствующей просьбой, для чего нужно с помощью DMCA Designated Agent Post Office Box Waiver Request написать сообщение в Copyright Office и объяснить, что вы занимаетесь модерацией контента из дома и опасаетесь мести за свои действия, поэтому должны использовать абонентский ящик, чтобы убрать ваш домашний адрес из общего доступа.
dmca_email: Может совпадать с адресом электронной почты для юридических уведомлений, указанным выше
domain: Имя, позволяющее уникально идентифицировать ваш онлайн-ресурс.
@@ -338,6 +339,7 @@ ru:
admin_email: Адрес электронной почты для юридических уведомлений
arbitration_address: Почтовый адрес для уведомлений об арбитраже
arbitration_website: Вебсайт для подачи уведомления об арбитраже
+ choice_of_law: Выбор закана.
dmca_address: Почтовый адрес для обращений правообладателей
dmca_email: Адрес электронной почты для обращений правообладателей
domain: Доменное имя
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index fb5e510e7..86c102590 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -137,6 +137,7 @@ sq:
admin_email: Njoftimet ligjore përfshijnë kundërnjoftime, vendime gjyqi, kërkesa për për nxjerrje sajti jashtë shërbimit dhe kërkesa nga organe ligjore.
arbitration_address: Mund të jetë e njëjtë me adresën Fizike më sipër, ose “N/A”, nëse përdoret email
arbitration_website: Mund të jetë një formular web, ose “N/A”, nëse përdoret email
+ choice_of_law: Qytet, rajon, territor ose shtet, ligjet e brendshme të të cilit do të administrojnë çfarëdo dhe tërë pretendimet.
dmca_email: Mund të jetë i njëjti email i përdorur për “Adresë email për njoftime ligjore” më sipëer
domain: Identifikues unik për shërbimin internetor që po ofroni.
jurisdiction: Vendosni vendin ku jeton cilido që paguan faturat. Nëse është një shoqëri apo tjetër njësi, vendosni vendin ku është regjistruar, si dhe qytetin, rajonin, territorin apo shtetin përkatës.
@@ -337,6 +338,7 @@ sq:
admin_email: Adresë email për njoftime ligjore
arbitration_address: Adresë fizike për njoftime arbitrazhi
arbitration_website: Sajtin për parashtrim njoftime arbitrazhi
+ choice_of_law: Zgjedhje Ligji
dmca_address: Adresë fizike për njoftime DMCA/të drejtash kopjimi
dmca_email: Adresë email për njoftime DMCA/të drejtash kopjimi
domain: Përkatësi
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index a3be7ae5e..245b6d315 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -137,6 +137,7 @@ tr:
admin_email: Yasal bildirimler arasında karşı bildirimler, mahkeme kararları, yayından kaldırma talepleri ve kolluk kuvvetleri talepleri yer alır.
arbitration_address: Yukarıdaki fiziksel adresle aynı olabilir, veya e-posta kullanıyorsanız "N/A"
arbitration_website: Web formu olabilir, veya e-posta kullanıyorsanız "N/A"
+ choice_of_law: Her türlü iddiayı yönetecek olan iç maddi yasalara ilişkin şehir, bölge, eyalet veya ülke.
dmca_address: ABD operatörleri için DMCA Atanmış Temsilci Dizininde kayıtlı adresi kullanın. Doğrudan taleple Posta Kutusu kullanımı mümkündür, Telif Hakkı Ofisine e-posta göndermek için DMCA Atanmış Temsilci Posta Kutusu Feragat Talebini kullanın ve eylemleriniz nedeniyle intikam veya cezalandırılmaktan çekinen ve herkese açık ev adresini kullanmamak için Posta Kutusu kullanması gereken ev tabanlı bir içerik moderatörü olduğunuzu açıklayın.
dmca_email: Yukarıdaki "Yasal bildirimler için e-posta adresi" için kullanılan e-posta ile aynı olabilir
domain: Sağladığınız çevrimiçi hizmetin benzersiz tanımlaması.
@@ -338,6 +339,7 @@ tr:
admin_email: Yasal bildirimler için e-posta adresi
arbitration_address: Tahkim bildirimleri için fiziksel adres
arbitration_website: Tahkim bildirimlerini göndermek için website
+ choice_of_law: Yasa Tercihi
dmca_address: DMCA/telif hakkı bildirimleri için fiziksel adres
dmca_email: DMCA/telif hakkı bildirimleri için e-posta adresi
domain: Alan adı
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 83881a8df..963b7aa45 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -137,6 +137,7 @@ uk:
admin_email: Юридичні повідомлення містять зустрічні повідомлення, ухвали суду, запити на видалення та запити правоохоронних органів.
arbitration_address: Може бути таким самим, як і фізична адреса вище, або "N/A", якщо використано електронну пошту
arbitration_website: Може бути вебформою або "N/A", якщо використано електронну пошту
+ choice_of_law: Місто, регіон, територія або держава внутрішні змістовні закони яких повинні керувати будь-якими та всіма твердженнями.
dmca_address: Для американських операторів використовуйте адресу, зареєстровану в довіднику призначених агентів DMCA. П.О. Перелік скриньок доступний за прямим запитом. Скористайтеся запитом на відмову від поштової скриньки призначеного агента Закону про захист авторських прав у цифрову епоху, щоб надіслати електронний лист до Бюро авторських прав, і опишіть, що ви домашній модератор вмісту, який боїться помсти чи відплати за свої дії та потребує використання P.O. Box, щоб видалити вашу домашню адресу з публічного перегляду.
dmca_email: Це може бути та сама адреса електронної пошти, яку використано в розділі «Електронна адреса для юридичних повідомлень» вище
domain: Унікальна ідентифікація онлайн-сервісу, який ви надаєте.
@@ -337,6 +338,7 @@ uk:
admin_email: Адреса електронної пошти для юридичних повідомлень
arbitration_address: Фізична адреса для арбітражних повідомлень
arbitration_website: Сайт для надсилання арбітражних повідомлень
+ choice_of_law: Вибір права
dmca_address: Фізична адреса для сповіщень про DMCA/авторські права
dmca_email: Фізична адреса для сповіщень про DMCA/авторські права
domain: Домен
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index e0cafd160..e96cd23a8 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -137,6 +137,7 @@ vi:
admin_email: Thông báo pháp lý bao gồm thông báo phản đối, lệnh của tòa án, yêu cầu gỡ bỏ và yêu cầu của cơ quan thực thi pháp luật.
arbitration_address: Có thể giống với Địa chỉ liên hệ ở trên hoặc “N/A” nếu sử dụng email
arbitration_website: Có thể dùng biểu mẫu online, hoặc “N/A” nếu dùng email
+ choice_of_law: Thành phố, khu vực, lãnh thổ hoặc tiểu bang có luật riêng sẽ chi phối mọi khiếu nại.
dmca_address: Đối với các quản trị viên tại Hoa Kỳ, hãy sử dụng địa chỉ đã đăng ký trong Danh bạ đại lý được chỉ định của DMCA. Danh sách hộp thư bưu điện có sẵn khi yêu cầu trực tiếp, hãy sử dụng Yêu cầu miễn trừ hộp thư bưu điện của đại lý được chỉ định của DMCA để gửi email đến Văn phòng bản quyền và mô tả rằng bạn là người kiểm duyệt nội dung tại nhà, người sợ bị trả thù hoặc trừng phạt vì hành động của mình và cần sử dụng hộp thư bưu điện để xóa địa chỉ nhà của bạn khỏi chế độ xem công khai.
dmca_email: Có thể là cùng một email được sử dụng cho “Địa chỉ email để nhận thông báo pháp lý” ở trên
domain: Mã nhận dạng duy nhất của dịch vụ trực tuyến mà bạn đang cung cấp.
@@ -338,6 +339,7 @@ vi:
admin_email: Địa chỉ email để nhận thông báo pháp lý
arbitration_address: Địa chỉ thực tế để nhận thông báo trọng tài
arbitration_website: Trang web để nộp thông báo trọng tài
+ choice_of_law: Lựa chọn Luật pháp
dmca_address: Địa chỉ liên lạc để nhận thông báo DMCA/bản quyền
dmca_email: Địa chỉ email để nhận thông báo DMCA/bản quyền
domain: Tên miền
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 1c4e8bec3..db43caf85 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -137,6 +137,7 @@ zh-CN:
admin_email: 法务通知包括反通知、法院命令、内容下架要求与执法机关的要求。
arbitration_address: 可以与上面的实际地址相同,若使用邮箱,则填写“N/A”
arbitration_website: 可以为网页表单,若使用邮箱,则填写“N/A”
+ choice_of_law: 适用内部实质法律以管辖任何及所有索赔的城市、地区、领土或州。
dmca_address: 如果你是位于美国的运营者,请使用在 DMCA 指定代表名录中注册的地址。如果你需要使用邮政信箱,可以直接申请。请使用 DMCA 指定代表邮政信箱豁免申请表,通过电子邮件联系版权办公室,并声明你是居家内容审核员,因担心审核操作会招致报复或打击报复,需要使用邮政信箱以避免公开家庭住址。
dmca_email: 可使用与上方“法务通知接收邮箱地址”相同的邮箱地址。
domain: 你所提供的在线服务的唯一标识。
@@ -338,6 +339,7 @@ zh-CN:
admin_email: 接收法务通知的邮箱地址
arbitration_address: 仲裁通知的实际送达地址
arbitration_website: 仲裁通知的在线提交入口
+ choice_of_law: 法律适用选择
dmca_address: 接收DMCA/版权通知的实际地址
dmca_email: 接收DMCA/版权通知的邮箱地址
domain: 域名
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 6b3327767..dcdc3ed82 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -137,6 +137,7 @@ zh-TW:
admin_email: 法律通知包含反駁通知、法院命令、刪除請求和執法單位請求。
arbitration_address: 能與上述相同之實體地址,或「N/A」如使用 email
arbitration_website: 能為網路表單,或「N/A」如使用 email
+ choice_of_law: 城市、區域、領土或州的內部實體法律應規範任何及所有權利。
dmca_address: 位於美國的運營團隊,請使用於 DMCA 指定代理目錄中註冊之地址。可直接請求 PO Box 清單,使用 DMCA 指定代理郵局信箱豁免請求向版權局發送電子郵件,並描述您是一名在家工作之內容管理員,擔心您的行為將遭報復,需要使用 PO Box 保護您的私人住址。
dmca_email: 能使用上述用於「法律通知用途電子郵件」之相同電子郵件
domain: 您所提供線上服務之唯一識別。
@@ -338,6 +339,7 @@ zh-TW:
admin_email: 法律通知用途電子郵件
arbitration_address: 仲裁通知之實體地址
arbitration_website: 提交仲裁通知之網站
+ choice_of_law: 法律選擇
dmca_address: DMCA 或版權通知之實體地址
dmca_email: DMCA 或版權通知之電子郵件地址
domain: 網域
diff --git a/config/templates/terms-of-service.md b/config/templates/terms-of-service.md
index 4b11a9897..0a96b1a60 100644
--- a/config/templates/terms-of-service.md
+++ b/config/templates/terms-of-service.md
@@ -249,7 +249,7 @@ individual basis.
## Choice of Law
Any and all claims related to or arising out of your use of, or access to the
-Instance shall be governed by internal substantive laws of New York in all
+Instance shall be governed by internal substantive laws of %{choice_of_law} in all
respects, without regard for the jurisdiction or forum in which you are
domiciled, reside, or located at the time of such access or use.
diff --git a/docker-compose.yml b/docker-compose.yml
index 93e5bd4ec..c0ac6707f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -59,7 +59,7 @@ services:
web:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/mastodon/mastodon:v4.3.3
+ image: ghcr.io/mastodon/mastodon:v4.3.4
restart: always
env_file: .env.production
command: bundle exec puma -C config/puma.rb
@@ -83,7 +83,7 @@ services:
# build:
# dockerfile: ./streaming/Dockerfile
# context: .
- image: ghcr.io/mastodon/mastodon-streaming:v4.3.3
+ image: ghcr.io/mastodon/mastodon-streaming:v4.3.4
restart: always
env_file: .env.production
command: node ./streaming/index.js
@@ -102,7 +102,7 @@ services:
sidekiq:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/mastodon/mastodon:v4.3.3
+ image: ghcr.io/mastodon/mastodon:v4.3.4
restart: always
env_file: .env.production
command: bundle exec sidekiq
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index ad8fb0a34..1e7e5a0f5 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -17,7 +17,7 @@ module Mastodon
end
def default_prerelease
- 'alpha.2'
+ 'alpha.3'
end
def prerelease
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index 36c11a826..ac97dc186 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -131,18 +131,16 @@ class Sanitize
)
MASTODON_OEMBED = freeze_config(
- elements: %w(audio embed iframe source video),
+ elements: %w(audio iframe source video),
attributes: {
'audio' => %w(controls),
- 'embed' => %w(height src type width),
'iframe' => %w(allowfullscreen frameborder height scrolling src width),
'source' => %w(src type),
'video' => %w(controls height loop width),
},
protocols: {
- 'embed' => { 'src' => HTTP_PROTOCOLS },
'iframe' => { 'src' => HTTP_PROTOCOLS },
'source' => { 'src' => HTTP_PROTOCOLS },
},
diff --git a/spec/controllers/admin/terms_of_service/generates_controller_spec.rb b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
index c1fc7faef..b528bfb57 100644
--- a/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
+++ b/spec/controllers/admin/terms_of_service/generates_controller_spec.rb
@@ -33,6 +33,7 @@ RSpec.describe Admin::TermsOfService::GeneratesController do
dmca_email: 'dmca@host.example',
domain: 'host.example',
jurisdiction: 'Europe',
+ choice_of_law: 'New York',
},
}
end
diff --git a/spec/requests/api/v1/instances/domain_blocks_spec.rb b/spec/requests/api/v1/instances/domain_blocks_spec.rb
index b214fda73..475ae478c 100644
--- a/spec/requests/api/v1/instances/domain_blocks_spec.rb
+++ b/spec/requests/api/v1/instances/domain_blocks_spec.rb
@@ -4,9 +4,10 @@ require 'rails_helper'
RSpec.describe 'Domain Blocks' do
describe 'GET /api/v1/instance/domain_blocks' do
- before do
- Fabricate(:domain_block)
- end
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id).token }
+
+ before { Fabricate(:domain_block) }
context 'with domain blocks set to all' do
before { Setting.show_domain_blocks = 'all' }
@@ -30,11 +31,95 @@ RSpec.describe 'Domain Blocks' do
context 'with domain blocks set to users' do
before { Setting.show_domain_blocks = 'users' }
- it 'returns http not found' do
- get api_v1_instance_domain_blocks_path
+ context 'without authentication token' do
+ it 'returns http not found' do
+ get api_v1_instance_domain_blocks_path
- expect(response)
- .to have_http_status(404)
+ expect(response)
+ .to have_http_status(404)
+ end
+ end
+
+ context 'with authentication token' do
+ context 'with unapproved user' do
+ before { user.update(approved: false) }
+
+ it 'returns http not found' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(404)
+ end
+ end
+
+ context 'with unconfirmed user' do
+ before { user.update(confirmed_at: nil) }
+
+ it 'returns http not found' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(404)
+ end
+ end
+
+ context 'with disabled user' do
+ before { user.update(disabled: true) }
+
+ it 'returns http not found' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(404)
+ end
+ end
+
+ context 'with suspended user' do
+ before { user.account.update(suspended_at: Time.zone.now) }
+
+ it 'returns http not found' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(403)
+ end
+ end
+
+ context 'with moved user' do
+ before { user.account.update(moved_to_account_id: Fabricate(:account).id) }
+
+ it 'returns http success' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(200)
+
+ expect(response.content_type)
+ .to start_with('application/json')
+
+ expect(response.parsed_body)
+ .to be_present
+ .and(be_an(Array))
+ .and(have_attributes(size: 1))
+ end
+ end
+
+ context 'with normal user' do
+ it 'returns http success' do
+ get api_v1_instance_domain_blocks_path, headers: { 'Authorization' => "Bearer #{token}" }
+
+ expect(response)
+ .to have_http_status(200)
+
+ expect(response.content_type)
+ .to start_with('application/json')
+
+ expect(response.parsed_body)
+ .to be_present
+ .and(be_an(Array))
+ .and(have_attributes(size: 1))
+ end
+ end
end
end
diff --git a/spec/requests/api/v2/notifications_spec.rb b/spec/requests/api/v2/notifications_spec.rb
index b2f6d71b5..a7608e141 100644
--- a/spec/requests/api/v2/notifications_spec.rb
+++ b/spec/requests/api/v2/notifications_spec.rb
@@ -365,6 +365,18 @@ RSpec.describe 'Notifications' do
.to start_with('application/json')
end
+ context 'with an ungrouped notification' do
+ let(:notification) { Fabricate(:notification, account: user.account, type: :favourite) }
+
+ it 'returns http success' do
+ get "/api/v2/notifications/ungrouped-#{notification.id}", headers: headers
+
+ expect(response).to have_http_status(200)
+ expect(response.content_type)
+ .to start_with('application/json')
+ end
+ end
+
context 'when notification belongs to someone else' do
let(:notification) { Fabricate(:notification, group_key: 'foobar') }
@@ -396,6 +408,19 @@ RSpec.describe 'Notifications' do
expect { notification.reload }.to raise_error(ActiveRecord::RecordNotFound)
end
+ context 'with an ungrouped notification' do
+ let(:notification) { Fabricate(:notification, account: user.account, type: :favourite) }
+
+ it 'destroys the notification' do
+ post "/api/v2/notifications/ungrouped-#{notification.id}/dismiss", headers: headers
+
+ expect(response).to have_http_status(200)
+ expect(response.content_type)
+ .to start_with('application/json')
+ expect { notification.reload }.to raise_error(ActiveRecord::RecordNotFound)
+ end
+ end
+
context 'when notification belongs to someone else' do
let(:notification) { Fabricate(:notification, group_key: 'foobar') }
diff --git a/spec/requests/auth/setup_spec.rb b/spec/requests/auth/setup_spec.rb
index 72413e174..fa3c19680 100644
--- a/spec/requests/auth/setup_spec.rb
+++ b/spec/requests/auth/setup_spec.rb
@@ -24,15 +24,4 @@ RSpec.describe 'Auth Setup' do
end
end
end
-
- describe 'PUT /auth/setup' do
- before { sign_in Fabricate(:user, confirmed_at: nil) }
-
- it 'gracefully handles invalid nested params' do
- put '/auth/setup?user=invalid'
-
- expect(response)
- .to have_http_status(400)
- end
- end
end
diff --git a/yarn.lock b/yarn.lock
index 65ddac8e4..0d78276bb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15526,8 +15526,8 @@ __metadata:
linkType: hard
"sass@npm:^1.62.1":
- version: 1.85.0
- resolution: "sass@npm:1.85.0"
+ version: 1.85.1
+ resolution: "sass@npm:1.85.1"
dependencies:
"@parcel/watcher": "npm:^2.4.1"
chokidar: "npm:^4.0.0"
@@ -15538,7 +15538,7 @@ __metadata:
optional: true
bin:
sass: sass.js
- checksum: 10c0/a1af0c0596ae1904f66337d0c70a684db6e12210f97be4326cc3dcf18b0f956d7bc45ab2bcc7a8422d433d3eb3c9cb2cc8e60b2dafbdd01fb1ae5a23f5424690
+ checksum: 10c0/f843aa1df1dca2f0e9cb2fb247e4939fd514ae4c182cdd1900a0622c0d71b40dfb1c4225f78b78e165a318287ca137ec597695db3e496408bd16a921a2bc2b3f
languageName: node
linkType: hard