Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master

This commit is contained in:
Jenkins 2018-03-23 10:17:18 +00:00
commit 03b2f701e7
8 changed files with 68 additions and 31 deletions

View File

@ -28,6 +28,8 @@ const componentMap = {
'LIST': ListTimeline, 'LIST': ListTimeline,
}; };
const shouldHideFAB = path => path.match(/^\/statuses\//);
@component => injectIntl(component, { withRef: true }) @component => injectIntl(component, { withRef: true })
export default class ColumnsArea extends ImmutablePureComponent { export default class ColumnsArea extends ImmutablePureComponent {
@ -153,7 +155,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
this.pendingIndex = null; this.pendingIndex = null;
if (singleColumn) { if (singleColumn) {
const floatingActionButton = this.context.router.history.location.pathname === '/statuses/new' ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button'><i className='fa fa-pencil' /></Link>; const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button'><i className='fa fa-pencil' /></Link>;
return columnIndex !== -1 ? [ return columnIndex !== -1 ? [
<ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}> <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}>

View File

@ -1,9 +1,9 @@
{ {
"account.block": "Blocar @{name}", "account.block": "Blocar @{name}",
"account.block_domain": "Tot amagar del domeni {domain}", "account.block_domain": "Tot amagar del domeni {domain}",
"account.blocked": "Blocked", "account.blocked": "Blocat",
"account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incomplètas.", "account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incomplètas.",
"account.domain_blocked": "Domain hidden", "account.domain_blocked": "Domeni amagat",
"account.edit_profile": "Modificar lo perfil", "account.edit_profile": "Modificar lo perfil",
"account.follow": "Sègre", "account.follow": "Sègre",
"account.followers": "Seguidors", "account.followers": "Seguidors",
@ -15,9 +15,9 @@
"account.moved_to": "{name} a mudat los catons a:", "account.moved_to": "{name} a mudat los catons a:",
"account.mute": "Rescondre @{name}", "account.mute": "Rescondre @{name}",
"account.mute_notifications": "Rescondre las notificacions de @{name}", "account.mute_notifications": "Rescondre las notificacions de @{name}",
"account.muted": "Muted", "account.muted": "Mes en silenci",
"account.posts": "Estatuts", "account.posts": "Tuts",
"account.posts_with_replies": "Toots with replies", "account.posts_with_replies": "Tuts amb responsas",
"account.report": "Senhalar @{name}", "account.report": "Senhalar @{name}",
"account.requested": "Invitacion mandada. Clicatz per anullar", "account.requested": "Invitacion mandada. Clicatz per anullar",
"account.share": "Partejar lo perfil a @{name}", "account.share": "Partejar lo perfil a @{name}",
@ -60,10 +60,10 @@
"compose_form.placeholder": "A de qué pensatz?", "compose_form.placeholder": "A de qué pensatz?",
"compose_form.publish": "Tut", "compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive", "compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.sensitive.unmarked": "Lo mèdia es pas marcat coma sensible",
"compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.marked": "Lo tèxte es rescondut jos lavertiment",
"compose_form.spoiler.unmarked": "Text is not hidden", "compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut",
"compose_form.spoiler_placeholder": "Escrivètz lavertiment aquí", "compose_form.spoiler_placeholder": "Escrivètz lavertiment aquí",
"confirmation_modal.cancel": "Anullar", "confirmation_modal.cancel": "Anullar",
"confirmations.block.confirm": "Blocar", "confirmations.block.confirm": "Blocar",
@ -213,22 +213,22 @@
"relative_time.minutes": "fa {number} min", "relative_time.minutes": "fa {number} min",
"relative_time.seconds": "fa {number}s", "relative_time.seconds": "fa {number}s",
"reply_indicator.cancel": "Anullar", "reply_indicator.cancel": "Anullar",
"report.forward": "Forward to {target}", "report.forward": "Far sègre a {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", "report.forward_hint": "Lo compte ven dun autre servidor. Volètz mandar una còpia anonima del rapòrt enlai tanben?",
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", "report.hint": "Lo moderator de linstància aurà lo rapòrt. Podètz fornir una explicacion de vòstre senhalament aquí dejós:",
"report.placeholder": "Comentaris addicionals", "report.placeholder": "Comentaris addicionals",
"report.submit": "Mandar", "report.submit": "Mandar",
"report.target": "Senhalar {target}", "report.target": "Senhalar {target}",
"search.placeholder": "Recercar", "search.placeholder": "Recercar",
"search_popout.search_format": "Format recèrca avançada", "search_popout.search_format": "Format recèrca avançada",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.full_text": "Un tèxte simple que tòrna los estatuts quavètz escriches, mes en favorits, partejats, o ont sètz mencionat, e tanben los noms dutilizaires, escais-noms e etiquetas que correspondonas.",
"search_popout.tips.hashtag": "etiqueta", "search_popout.tips.hashtag": "etiqueta",
"search_popout.tips.status": "estatut", "search_popout.tips.status": "estatut",
"search_popout.tips.text": "Lo tèxt brut tòrna escais, noms dutilizaire e etiquetas correspondents", "search_popout.tips.text": "Lo tèxt brut tòrna escais, noms dutilizaire e etiquetas correspondents",
"search_popout.tips.user": "utilizaire", "search_popout.tips.user": "utilizaire",
"search_results.accounts": "People", "search_results.accounts": "Monde",
"search_results.hashtags": "Hashtags", "search_results.hashtags": "Etiquetas",
"search_results.statuses": "Toots", "search_results.statuses": "Tuts",
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
"standalone.public_title": "Una ulhada dedins…", "standalone.public_title": "Una ulhada dedins…",
"status.block": "Blocar @{name}", "status.block": "Blocar @{name}",
@ -244,7 +244,7 @@
"status.mute_conversation": "Rescondre la conversacion", "status.mute_conversation": "Rescondre la conversacion",
"status.open": "Desplegar aqueste estatut", "status.open": "Desplegar aqueste estatut",
"status.pin": "Penjar al perfil", "status.pin": "Penjar al perfil",
"status.pinned": "Pinned toot", "status.pinned": "Tut penjat",
"status.reblog": "Partejar", "status.reblog": "Partejar",
"status.reblogged_by": "{name} a partejat", "status.reblogged_by": "{name} a partejat",
"status.reply": "Respondre", "status.reply": "Respondre",
@ -254,9 +254,9 @@
"status.sensitive_warning": "Contengut sensible", "status.sensitive_warning": "Contengut sensible",
"status.share": "Partejar", "status.share": "Partejar",
"status.show_less": "Tornar plegar", "status.show_less": "Tornar plegar",
"status.show_less_all": "Show less for all", "status.show_less_all": "Los tornar plegar totes",
"status.show_more": "Desplegar", "status.show_more": "Desplegar",
"status.show_more_all": "Show more for all", "status.show_more_all": "Los desplegar totes",
"status.unmute_conversation": "Tornar mostrar la conversacion", "status.unmute_conversation": "Tornar mostrar la conversacion",
"status.unpin": "Tirar del perfil", "status.unpin": "Tirar del perfil",
"tabs_bar.federated_timeline": "Flux public global", "tabs_bar.federated_timeline": "Flux public global",
@ -267,7 +267,7 @@
"upload_area.title": "Lisatz e depausatz per mandar", "upload_area.title": "Lisatz e depausatz per mandar",
"upload_button.label": "Ajustar un mèdia", "upload_button.label": "Ajustar un mèdia",
"upload_form.description": "Descripcion pels mal vesents", "upload_form.description": "Descripcion pels mal vesents",
"upload_form.focus": "Crop", "upload_form.focus": "Retalhar",
"upload_form.undo": "Anullar", "upload_form.undo": "Anullar",
"upload_progress.label": "Mandadís…", "upload_progress.label": "Mandadís…",
"video.close": "Tampar la vidèo", "video.close": "Tampar la vidèo",

View File

@ -48,7 +48,7 @@
class Account < ApplicationRecord class Account < ApplicationRecord
USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.]+[a-z0-9_]+)?/i USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.]+[a-z0-9_]+)?/i
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE}?)(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i
include AccountAvatar include AccountAvatar
include AccountFinderConcern include AccountFinderConcern
@ -71,7 +71,7 @@ class Account < ApplicationRecord
validates :username, uniqueness: { scope: :domain, case_sensitive: true }, if: -> { !local? && will_save_change_to_username? } validates :username, uniqueness: { scope: :domain, case_sensitive: true }, if: -> { !local? && will_save_change_to_username? }
# Local user validations # Local user validations
validates :username, format: { with: /\A#{USERNAME_RE}\z/i }, length: { maximum: 30 }, if: -> { local? && will_save_change_to_username? } validates :username, format: { with: /\A[a-z0-9_]+\z/i }, length: { maximum: 30 }, if: -> { local? && will_save_change_to_username? }
validates_with UniqueUsernameValidator, if: -> { local? && will_save_change_to_username? } validates_with UniqueUsernameValidator, if: -> { local? && will_save_change_to_username? }
validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? } validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? }
validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? } validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? }

View File

@ -57,7 +57,7 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
end end
def virtual_tags def virtual_tags
object.mentions.order(:id) + object.tags + object.emojis object.mentions.to_a.sort_by(&:id) + object.tags + object.emojis
end end
def atom_uri def atom_uri

View File

@ -87,7 +87,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
end end
def ordered_mentions def ordered_mentions
object.mentions.order(:id) object.mentions.to_a.sort_by(&:id)
end end
class ApplicationSerializer < ActiveModel::Serializer class ApplicationSerializer < ActiveModel::Serializer

View File

@ -193,7 +193,7 @@ oc:
create: Crear blocatge create: Crear blocatge
hint: Lo blocatge empacharà pas la creacion de compte dins la basa de donadas, mai aplicarà la moderacion sus aquestes comptes. hint: Lo blocatge empacharà pas la creacion de compte dins la basa de donadas, mai aplicarà la moderacion sus aquestes comptes.
severity: severity:
desc_html: "<strong>Silenci</strong> farà venir invisibles los estatuts del compte al mond que son pas de seguidors. <strong>Suspendre</strong> levarà tot lo contengut del compte, los mèdias e las donadas de perfil." desc_html: "<strong>Silenci</strong> farà venir invisibles los estatuts del compte al monde que son pas de seguidors. <strong>Suspendre</strong> levarà tot lo contengut del compte, los mèdias e las donadas de perfil. Utilizatz <strong>Cap</strong> se volètz regetar totes los mèdias."
noop: Cap noop: Cap
silence: Silenci silence: Silenci
suspend: Suspendre suspend: Suspendre
@ -273,6 +273,9 @@ oc:
contact_information: contact_information:
email: Picatz una adreça de corrièl email: Picatz una adreça de corrièl
username: Picatz un nom dutilizaire username: Picatz un nom dutilizaire
hero:
desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. Ses pas configurat limatge de linstància serà mostrat
title: Imatge de leròi
peers_api_enabled: peers_api_enabled:
desc_html: Noms de domeni quaquesta instància a trobats pel fediverse desc_html: Noms de domeni quaquesta instància a trobats pel fediverse
title: Publica la lista de las instàncias conegudas title: Publica la lista de las instàncias conegudas
@ -289,6 +292,9 @@ oc:
open: open:
desc_html: Autorizar lo mond a se marcar desc_html: Autorizar lo mond a se marcar
title: Inscripcions title: Inscripcions
show_known_fediverse_at_about_page:
desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins lapercebut. Autrament mostrarà pas que los tuts locals.
title: Mostrar los fediverse coneguts dins lapercebut del flux
show_staff_badge: show_staff_badge:
desc_html: Mostrar lo badge Personal sus la pagina de perfil desc_html: Mostrar lo badge Personal sus la pagina de perfil
title: Mostrar lo badge personal title: Mostrar lo badge personal
@ -353,6 +359,8 @@ oc:
your_token: Vòstre geton daccès your_token: Vòstre geton daccès
auth: auth:
agreement_html: En vos marcar acceptatz <a href="%{rules_path}">las règlas de linstància</a> e <a href="%{terms_path}">politica de confidencialitat</a>. agreement_html: En vos marcar acceptatz <a href="%{rules_path}">las règlas de linstància</a> e <a href="%{terms_path}">politica de confidencialitat</a>.
change_password: Senhal
confirm_email: Confirmar lo corrièl
delete_account: Suprimir lo compte delete_account: Suprimir lo compte
delete_account_html: Se volètz suprimir vòstre compte, podètz <a href="%{path}">o far aquí</a>. Vos demandarem que confirmetz. delete_account_html: Se volètz suprimir vòstre compte, podètz <a href="%{path}">o far aquí</a>. Vos demandarem que confirmetz.
didnt_get_confirmation: Avètz pas recebut las instruccions de confirmacion? didnt_get_confirmation: Avètz pas recebut las instruccions de confirmacion?
@ -362,10 +370,13 @@ oc:
logout: Se desconnectar logout: Se desconnectar
migrate_account: Mudar endacòm mai migrate_account: Mudar endacòm mai
migrate_account_html: Se volètz mandar los visitors daqueste compte a un autre, podètz<a href="%{path}"> o configurar aquí</a>. migrate_account_html: Se volètz mandar los visitors daqueste compte a un autre, podètz<a href="%{path}"> o configurar aquí</a>.
or: o
or_log_in_with: O autentificatz-vos amb
providers: providers:
cas: CAS cas: CAS
saml: SAML saml: SAML
register: Se marcar register: Se marcar
register_elsewhere: Se marcar endacòm mai
resend_confirmation: Tornar mandar las instruccions de confirmacion resend_confirmation: Tornar mandar las instruccions de confirmacion
reset_password: Reïnicializar lo senhal reset_password: Reïnicializar lo senhal
security: Seguretat security: Seguretat
@ -493,6 +504,13 @@ oc:
title: Aquesta pagina es incorrècta title: Aquesta pagina es incorrècta
noscript_html: Per utilizar laplicacion web de Mastodon, mercés dactivar JavaScript. O podètz utilizar <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">una aplicacion</a> per vòstra plataforma coma alernativa. noscript_html: Per utilizar laplicacion web de Mastodon, mercés dactivar JavaScript. O podètz utilizar <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">una aplicacion</a> per vòstra plataforma coma alernativa.
exports: exports:
archive_takeout:
date: Data
download: Telecargar vòstre archiu
hint_html: Podètz demandar un archiu de vòstres <strong>tuts e mèdias enviats</strong>. Las donadas exportadas seràn al format ActivityPub, ligible pels logicials compatibles.
in_progress: Complilacion de vòstre archiu...
request: Demandar vòstre archiu
size: Talha
blocks: Personas que blocatz blocks: Personas que blocatz
csv: CSV csv: CSV
follows: Personas que seguètz follows: Personas que seguètz
@ -565,7 +583,7 @@ oc:
notification_mailer: notification_mailer:
digest: digest:
action: Veire totas las notificacions action: Veire totas las notificacions
body: 'Trobatz aquí un resumit dels messatges quavètz mancats dempuèi vòstra darrièra visita lo %{since}:' body: Trobatz aquí un resumit dels messatges quavètz mancats dempuèi vòstra darrièra visita lo %{since}
mention: "%{name} vos a mencionat dins:" mention: "%{name} vos a mencionat dins:"
new_followers_summary: new_followers_summary:
one: Avètz un nòu seguidor dempuèi vòstra darrièra visita! Ouà! one: Avètz un nòu seguidor dempuèi vòstra darrièra visita! Ouà!
@ -608,7 +626,9 @@ oc:
trillion: T trillion: T
unit: '' unit: ''
pagination: pagination:
newer: Mai recent
next: Seguent next: Seguent
older: Mai ancian
prev: Precedent prev: Precedent
truncate: "&hellip;" truncate: "&hellip;"
preferences: preferences:
@ -692,6 +712,14 @@ oc:
two_factor_authentication: Autentificacion en dos temps two_factor_authentication: Autentificacion en dos temps
your_apps: Vòstras aplicacions your_apps: Vòstras aplicacions
statuses: statuses:
attached:
description: 'Ajustat: %{attached}'
image:
one: "%{count} imatge"
other: "%{count} imatges"
video:
one: "%{count} vidèo"
other: "%{count} vidèos"
open_in_web: Dobrir sul web open_in_web: Dobrir sul web
over_character_limit: limit de %{max} caractèrs passat over_character_limit: limit de %{max} caractèrs passat
pin_errors: pin_errors:
@ -799,10 +827,14 @@ oc:
manual_instructions: 'Se podètz pas numerizar lo còdi QR e que vos cal picar lo còdi a la man, vaquí lo còdi en clar:' manual_instructions: 'Se podètz pas numerizar lo còdi QR e que vos cal picar lo còdi a la man, vaquí lo còdi en clar:'
recovery_codes: Salvar los còdis de recuperacion recovery_codes: Salvar los còdis de recuperacion
recovery_codes_regenerated: Los còdis de recuperacion son ben estats tornats generar recovery_codes_regenerated: Los còdis de recuperacion son ben estats tornats generar
recovery_instructions_html: Se vos arriba de perdre vòstre mobil, podètz utilizar un dels còdis de recuperacion cai-jos per poder tornar accedir a vòstre compte. Gardatz los còdis en seguretat, per exemple, imprimissètz los e gardatz los amb vòstres documents importants. recovery_instructions_html: Se vos arriba de perdre vòstre mobil, podètz utilizar un dels còdis de recuperacion cai-jos per poder tornar accedir a vòstre compte. <strong>Gardatz los còdis en seguretat</strong>, per exemple, imprimissètz los e gardatz los amb vòstres documents importants.
setup: Paramètres setup: Paramètres
wrong_code: Lo còdi picat es invalid! Lora es la bona sul servidor e lo mobil? wrong_code: Lo còdi picat es invalid! Lora es la bona sul servidor e lo mobil?
user_mailer: user_mailer:
backup_ready:
explanation: Avètz demandat una salvagarda complèta de vòstre compte Mastodon. Es prèsta per telecargament!
subject: Vòstre archiu es prèst per telecargament
title: Archiu per emportar
welcome: welcome:
edit_profile_action: Configuracion del perfil edit_profile_action: Configuracion del perfil
edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar lescais-nom e mai. Se volètz repassar las demandas dabonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte. edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar lescais-nom e mai. Se volètz repassar las demandas dabonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte.
@ -824,4 +856,5 @@ oc:
users: users:
invalid_email: Ladreça de corrièl es invalida invalid_email: Ladreça de corrièl es invalida
invalid_otp_token: Còdi dautentificacion en dos temps invalid invalid_otp_token: Còdi dautentificacion en dos temps invalid
seamless_external_login: Sètz connectat via un servici extèrn, los paramètres de senhal e de corrièl son doncas pas disponibles.
signed_in_as: 'Session a:' signed_in_as: 'Session a:'

View File

@ -45,6 +45,7 @@ oc:
setting_default_privacy: Confidencialitat de las publicacions setting_default_privacy: Confidencialitat de las publicacions
setting_default_sensitive: Totjorn marcar los mèdias coma sensibles setting_default_sensitive: Totjorn marcar los mèdias coma sensibles
setting_delete_modal: Afichar una fenèstra de confirmacion abans de suprimir un estatut setting_delete_modal: Afichar una fenèstra de confirmacion abans de suprimir un estatut
setting_display_sensitive_media: Totjorn mostrar los mèdias coma sensibles
setting_noindex: Èsser pas indexat pels motors de recèrca setting_noindex: Èsser pas indexat pels motors de recèrca
setting_reduce_motion: Reduire la velocitat de las animacions setting_reduce_motion: Reduire la velocitat de las animacions
setting_system_font_ui: Utilizar la polissa del sisèma setting_system_font_ui: Utilizar la polissa del sisèma
@ -53,6 +54,7 @@ oc:
severity: Severitat severity: Severitat
type: Tip dimpòrt type: Tip dimpòrt
username: Nom dutilizaire username: Nom dutilizaire
username_or_email: Nom dutilizaire o corrièl
interactions: interactions:
must_be_follower: Blocar las notificacions del mond que vos sègon pas must_be_follower: Blocar las notificacions del mond que vos sègon pas
must_be_following: Blocar las notificacions del mond que seguètz pas must_be_following: Blocar las notificacions del mond que seguètz pas

View File

@ -21,7 +21,7 @@ module Mastodon
end end
def flags def flags
'rc4' ''
end end
def to_a def to_a