Commit 3443d2c6 authored by dmorley's avatar dmorley

Merge remote-tracking branch 'upstream/master'

parents d026b59c c2a991fe
require: rubocop-rails
AllCops:
TargetRubyVersion: 2.3
Exclude:
......@@ -5,9 +7,6 @@ AllCops:
- "db/schema.rb"
- "config/locales/cldr/plurals.rb"
Rails:
Enabled: true
# Disable for rails 4
Rails/HttpPositionalArguments:
Enabled: false
......
......@@ -15,6 +15,16 @@ cache:
- app/assets/images
- tmp/cache/assets
addons:
apt:
packages:
- libidn11-dev
- ghostscript
services:
- postgresql
- mysql
branches:
only:
- 'master'
......
# 0.7.13.0
## Security
* Fixes [USN-4274-1](https://usn.ubuntu.com/4274-1/), a potential Denial-of-Service vulnerability in Nokogiri. [#8108](https://github.com/diaspora/diaspora/pull/8108)
## Refactor
* Set better example values for unicorn stdout/stderr log settings [#8058](https://github.com/diaspora/diaspora/pull/8058)
* Replace dependency on rails-assets.org with custom gems cache at gems.diasporafoundation.org [#8087](https://github.com/diaspora/diaspora/pull/8087)
## Bug fixes
* Fix error while trying to fetch some sites with invalid OpenGraph data [#8049](https://github.com/diaspora/diaspora/pull/8049)
* Don't show sign up link on mobile when registrations are disabled [#8060](https://github.com/diaspora/diaspora/pull/8060)
## Features
* Add cronjob to cleanup pending photos which were never posted [#8041](https://github.com/diaspora/diaspora/pull/8041)
# 0.7.12.0
## Refactor
......
......@@ -4,7 +4,7 @@ source "https://rubygems.org"
gem 'sitemap_generator', '~> 5.1'
gem "rails", "5.1.6.2"
gem "rails", "5.2.4.1"
# Legacy Rails features, remove me!
# responders (class level)
......@@ -12,7 +12,7 @@ gem "responders", "2.4.1"
# Appserver
gem "unicorn", "5.5.0", require: false
gem "unicorn", "5.5.1", require: false
gem "unicorn-worker-killer", "0.4.4"
# Federation
......@@ -28,7 +28,7 @@ gem "json-schema", "2.8.1"
# Authentication
gem "devise", "4.6.1"
gem "devise", "4.7.1"
gem "devise-two-factor", "3.0.3"
gem "devise_lastseenable", "0.0.6"
gem "rqrcode", "0.10.1"
......@@ -40,7 +40,7 @@ gem "simple_captcha2", "0.4.3", require: "simple_captcha"
# Background processing
gem "redis", "3.3.5" # Pinned to 3.3.x because of https://github.com/antirez/redis/issues/4272
gem "sidekiq", "5.2.5"
gem "sidekiq", "5.2.7"
# Scheduled processing
......@@ -56,7 +56,7 @@ gem "configurate", "0.3.1"
# Cross-origin resource sharing
gem "rack-cors", "1.0.2", require: "rack/cors"
gem "rack-cors", "1.1.1", require: "rack/cors"
# CSS
......@@ -77,13 +77,13 @@ group :postgresql, optional: true do
end
gem "activerecord-import", "1.0.1"
gem "activerecord-import", "1.0.2"
# File uploading
gem "carrierwave", "1.3.1"
gem "fog-aws", "3.4.0"
gem "mini_magick", "4.9.3"
gem "fog-aws", "3.5.1"
gem "mini_magick", "4.10.1"
# GUID generation
gem "uuid", "2.3.9"
......@@ -94,13 +94,13 @@ gem "entypo-rails", "3.0.0"
# JavaScript
gem "handlebars_assets", "0.23.3"
gem "jquery-rails", "4.3.3"
gem "js-routes", "1.4.4"
gem "handlebars_assets", "0.23.4"
gem "jquery-rails", "4.3.5"
gem "js-routes", "1.4.7"
gem "js_image_paths", "0.1.1"
source "https://rails-assets.org" do
gem "rails-assets-jquery", "3.3.1" # Should be kept in sync with jquery-rails
source "https://gems.diasporafoundation.org" do
gem "rails-assets-jquery", "3.4.1" # Should be kept in sync with jquery-rails
gem "rails-assets-jquery.ui", "1.11.4"
gem "rails-assets-highlightjs", "9.12.0"
......@@ -140,12 +140,12 @@ gem "rails-i18n", "5.1.3"
gem "markerb", "1.1.0"
# Map
gem "leaflet-rails", "1.3.1"
gem "leaflet-rails", "1.5.1"
# Parsing
gem "nokogiri", "1.10.1"
gem "open_graph_reader", "0.6.2" # also update User-Agent in features/support/webmock.rb
gem "nokogiri", "1.10.8"
gem "open_graph_reader", "0.7.0" # also update User-Agent in features/support/webmock.rb
gem "redcarpet", "3.4.0"
gem "ruby-oembed", "0.12.0"
gem "twitter-text", "1.14.7"
......@@ -156,7 +156,7 @@ gem "string-direction", "1.2.1"
# Security Headers
gem "secure_headers", "6.1.0"
gem "secure_headers", "6.3.0"
# Services
......@@ -167,7 +167,7 @@ gem "omniauth-wordpress", "0.2.2"
gem "twitter", "6.2.0"
# OpenID Connect
gem "openid_connect", "1.1.6"
gem "openid_connect", "1.1.8"
# Serializers
......@@ -175,7 +175,7 @@ gem "active_model_serializers", "0.9.7"
# XMPP chat dependencies
gem "diaspora-prosody-config", "0.0.7"
gem "rails-assets-diaspora_jsxc", "0.1.5.develop.7", source: "https://rails-assets.org"
gem "rails-assets-diaspora_jsxc", "0.1.5.develop.7", source: "https://gems.diasporafoundation.org"
# Tags
......@@ -183,16 +183,16 @@ gem "acts-as-taggable-on", "6.0.0"
# URIs and HTTP
gem "addressable", "2.5.2", require: "addressable/uri"
gem "addressable", "2.6.0", require: "addressable/uri"
gem "faraday", "0.15.4"
gem "faraday_middleware", "0.12.2"
gem "faraday_middleware", "0.13.1"
gem "faraday-cookie_jar", "0.0.6"
gem "typhoeus", "1.3.1"
# Views
gem "gon", "6.2.1"
gem "hamlit", "2.9.2"
gem "hamlit", "2.9.3"
gem "mobile-fu", "1.4.0"
gem "rails-timeago", "2.17.1"
gem "will_paginate", "3.1.7"
......@@ -203,7 +203,7 @@ gem "logging-rails", "0.6.0", require: "logging/rails"
# Reading and writing zip files
gem "rubyzip", "1.2.2", require: "zip"
gem "rubyzip", "1.3.0", require: "zip"
# Prevent occasions where minitest is not bundled in
# packaged versions of ruby. See following issues/prs:
......@@ -212,7 +212,7 @@ gem "rubyzip", "1.2.2", require: "zip"
# https://github.com/discourse/discourse/pull/238
gem "minitest"
gem "versionist", "1.7.0"
gem "versionist", "2.0.0"
# Windows and OSX have an execjs compatible runtime built-in, Linux users should
# install Node.js or use "therubyracer".
......@@ -251,12 +251,13 @@ group :development do
# Linters
gem "haml_lint", "0.28.0", require: false
gem "pronto", "0.9.5", require: false
gem "pronto-eslint", "0.9.1", require: false
gem "pronto-haml", "0.9.0", require: false
gem "pronto-rubocop", "0.9.1", require: false
gem "pronto-scss", "0.9.1", require: false
gem "rubocop", "0.66.0", require: false
gem "pronto", "0.10.0", require: false
gem "pronto-eslint", "0.10.0", require: false
gem "pronto-haml", "0.10.0", require: false
gem "pronto-rubocop", "0.10.0", require: false
gem "pronto-scss", "0.10.0", require: false
gem "rubocop", "0.72.0", require: false
gem "rubocop-rails", "2.1.0", require: false
# Preloading environment
......@@ -278,7 +279,7 @@ group :test do
# RSpec (unit tests, some integration tests)
gem "fixture_builder", "0.5.2.rc3"
gem "fuubar", "2.3.2"
gem "fuubar", "2.4.1"
gem "json-schema-rspec", "0.0.4"
gem "rspec-json_expectations", "~> 2.1"
......@@ -295,12 +296,12 @@ group :test do
gem "factory_girl_rails", "4.8.0"
gem "shoulda-matchers", "4.0.1"
gem "timecop", "0.9.1"
gem "webmock", "3.5.1", require: false
gem "webmock", "3.6.0", require: false
gem "diaspora_federation-test", "0.2.6"
# Coverage
gem "coveralls", "0.8.22", require: false
gem "coveralls", "0.8.23", require: false
end
group :development, :test do
......@@ -308,12 +309,12 @@ group :development, :test do
gem "rspec-rails", "3.8.2"
# Cucumber (integration tests)
gem "cucumber-rails", "1.6.0", require: false
gem "cucumber-rails", "1.7.0", require: false
# Jasmine (client side application tests (JS))
gem "jasmine", "3.3.0"
gem "jasmine", "3.4.0"
gem "jasmine-jquery-rails", "2.0.3"
gem "rails-assets-jasmine-ajax", "3.4.0", source: "https://rails-assets.org"
gem "rails-assets-jasmine-ajax", "4.0.0", source: "https://gems.diasporafoundation.org"
gem "sinon-rails", "1.15.0"
# For `assigns` in controller specs
......
This diff is collapsed.
......@@ -51,7 +51,11 @@ class AdminsController < Admin::AdminController
end
def stats
@popular_tags = ActsAsTaggableOn::Tagging.joins(:tag).limit(50).order('count(taggings.id) DESC').group(:tag).count
@popular_tags = ActsAsTaggableOn::Tagging.joins(:tag)
.limit(50)
.order(Arel.sql("count(taggings.id) DESC"))
.group(:tag)
.count
case params[:range]
when "week"
......@@ -72,7 +76,10 @@ class AdminsController < Admin::AdminController
create_hash(model, :range => range)
end
@posts_per_day = Post.where("created_at >= ?", Date.today - 21.days).group("DATE(created_at)").order("DATE(created_at) ASC").count
@posts_per_day = Post.where("created_at >= ?", Time.zone.today - 21.days)
.group(Arel.sql("DATE(created_at)"))
.order(Arel.sql("DATE(created_at) ASC"))
.count
@most_posts_within = @posts_per_day.values.max.to_f
@user_count = User.count
......
......@@ -104,8 +104,9 @@ module Api
end
def handle_start_point_response(endpoint)
_status, header, response = endpoint.call(request.env)
if response.redirect?
status, header, _response = endpoint.call(request.env)
if status.in?([301, 302, 303, 307, 308])
redirect_to header["Location"]
else
save_params_and_render_consent_form(endpoint)
......
......@@ -29,21 +29,19 @@ class AspectsController < ApplicationController
end
def destroy
@aspect = current_user.aspects.where(id: params[:id]).first
begin
if current_user.auto_follow_back && @aspect.id == current_user.auto_follow_back_aspect.id
if current_user.auto_follow_back && aspect.id == current_user.auto_follow_back_aspect.id
current_user.update(auto_follow_back: false, auto_follow_back_aspect: nil)
flash[:notice] = I18n.t "aspects.destroy.success_auto_follow_back", name: @aspect.name
flash[:notice] = I18n.t "aspects.destroy.success_auto_follow_back", name: aspect.name
else
flash[:notice] = I18n.t "aspects.destroy.success", name: @aspect.name
flash[:notice] = I18n.t "aspects.destroy.success", name: aspect.name
end
@aspect.destroy
aspect.destroy
rescue ActiveRecord::StatementInvalid => e
flash[:error] = I18n.t "aspects.destroy.failure", name: @aspect.name
flash[:error] = I18n.t "aspects.destroy.failure", name: aspect.name
end
if request.referer.include?('contacts')
if request.referer.include?("contacts")
redirect_to contacts_path
else
redirect_to aspects_path
......@@ -51,41 +49,41 @@ class AspectsController < ApplicationController
end
def show
if @aspect = current_user.aspects.where(:id => params[:id]).first
redirect_to aspects_path('a_ids[]' => @aspect.id)
if aspect
redirect_to aspects_path("a_ids[]" => aspect.id)
else
redirect_to aspects_path
end
end
def update
@aspect = current_user.aspects.where(:id => params[:id]).first
if @aspect.update_attributes!(aspect_params)
flash[:notice] = I18n.t 'aspects.update.success', :name => @aspect.name
if aspect.update!(aspect_params)
flash[:notice] = I18n.t "aspects.update.success", name: aspect.name
else
flash[:error] = I18n.t 'aspects.update.failure', :name => @aspect.name
flash[:error] = I18n.t "aspects.update.failure", name: aspect.name
end
render :json => { :id => @aspect.id, :name => @aspect.name }
render json: {id: aspect.id, name: aspect.name}
end
def update_order
params[:ordered_aspect_ids].each_with_index do |id, i|
current_user.aspects.find(id).update_attributes(order_id: i)
current_user.aspects.find(id).update(order_id: i)
end
head :no_content
end
def toggle_chat_privilege
@aspect = current_user.aspects.where(:id => params[:aspect_id]).first
@aspect.chat_enabled = !@aspect.chat_enabled
@aspect.save
aspect.chat_enabled = !aspect.chat_enabled
aspect.save
head :no_content
end
private
def aspect
@aspect ||= current_user.aspects.where(id: (params[:id] || params[:aspect_id])).first
end
def connect_person_to_aspect(aspecting_person_id)
@person = Person.find(aspecting_person_id)
if @contact = current_user.contact_for(@person)
......
......@@ -66,7 +66,7 @@ class ContactsController < ApplicationController
when "receiving"
current_user.contacts.receiving
when "by_aspect"
order.unshift "contact_id IS NOT NULL DESC"
order.unshift Arel.sql("contact_id IS NOT NULL DESC")
contacts_by_aspect(@aspect.id)
else
raise ArgumentError, "unknown type #{type}"
......
......@@ -147,12 +147,7 @@ class PhotosController < ApplicationController
current_user.dispatch_post(@photo, to: photo_params[:aspect_ids])
end
if photo_params[:set_profile_photo]
profile_params = {:image_url => @photo.url(:thumb_large),
:image_url_medium => @photo.url(:thumb_medium),
:image_url_small => @photo.url(:thumb_small)}
current_user.update_profile(profile_params)
end
current_user.update_profile(photo: @photo) if photo_params[:set_profile_photo]
respond_to do |format|
format.json{ render(:layout => false , :json => {"success" => true, "data" => @photo}.to_json )}
......
......@@ -11,7 +11,7 @@ module SessionsHelper
end
def display_registration_link?
AppConfig.settings.enable_registrations? && devise_mapping.registerable? && controller_name != "registrations"
AppConfig.settings.enable_registrations? && controller_name != "registrations"
end
def display_password_reset_link?
......
......@@ -162,7 +162,7 @@ class Person < ApplicationRecord
contacts.id IS NOT NULL AS is_contact
SQL
)
.order(<<-SQL
.order(Arel.sql(<<-SQL
is_author DESC,
is_commenter DESC,
is_liker DESC,
......@@ -170,7 +170,7 @@ class Person < ApplicationRecord
profiles.full_name,
people.diaspora_handle
SQL
)
))
}
def self.community_spotlight
......@@ -185,6 +185,8 @@ class Person < ApplicationRecord
# end
# will not work! The nil profile will be overriden with an empty one.
def initialize(params={})
params = {} if params.nil?
profile_set = params.has_key?(:profile) || params.has_key?("profile")
params[:profile_attributes] = params.delete(:profile) if params.has_key?(:profile) && params[:profile].is_a?(Hash)
super
......@@ -207,7 +209,7 @@ class Person < ApplicationRecord
self.guid
end
private_class_method def self.search_query_string(query)
def self.search_query_string(query)
query = query.downcase
like_operator = AppConfig.postgres? ? "ILIKE" : "LIKE"
......@@ -239,7 +241,7 @@ class Person < ApplicationRecord
query = query.where(contacts: {sharing: true, receiving: true}) if mutual
query.where(closed_account: false)
.order(["contacts.user_id IS NULL", "profiles.last_name ASC", "profiles.first_name ASC"])
.order([Arel.sql("contacts.user_id IS NULL"), "profiles.last_name ASC", "profiles.first_name ASC"])
end
def name(opts = {})
......
......@@ -22,7 +22,7 @@ class LikeService
def find_for_post(post_id)
likes = post_service.find!(post_id).likes
user ? likes.order("author_id = #{user.person.id} DESC") : likes
user ? likes.order(Arel.sql("author_id = #{user.person.id} DESC")) : likes
end
private
......
......@@ -13,7 +13,7 @@ class ReshareService
def find_for_post(post_id)
reshares = post_service.find!(post_id).reshares
user ? reshares.order("author_id = #{user.person.id} DESC") : reshares
user ? reshares.order(Arel.sql("author_id = #{user.person.id} DESC")) : reshares
end
private
......
......@@ -2,7 +2,7 @@
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
%script{nonce: content_security_policy_nonce(:script)}
%script{nonce: content_security_policy_script_nonce}
:plain
$(document).ready(function () {
var data = $.parseJSON( "#{escape_javascript(@contacts_json).html_safe}" ),
......
......@@ -21,7 +21,7 @@
= stylesheet_link_tag :poltergeist_disable_transition, media: "all"
= jquery_include_tag
= include_gon(camel_case: true, nonce: content_security_policy_nonce(:script))
= include_gon(camel_case: true, nonce: content_security_policy_script_nonce)
= yield(:javascript)
= csrf_meta_tag
......
%ul.nav.navbar-nav.navbar-right
- unless current_page?(controller: "/registrations", action: :new)
- if display_registration_link? && !current_page?(controller: "/registrations", action: :new)
%li= link_to t("devise.shared.links.sign_up"), new_user_registration_path, class: "login"
- unless current_page?(controller: "/sessions", action: :new)
%li= link_to t("devise.shared.links.sign_in"), new_user_session_path, class: "login"
# frozen_string_literal: true
module Workers
class CleanupPendingPhotos < Base
sidekiq_options queue: :low
def perform
Photo.where(pending: true).where("created_at < ?", 1.day.ago).destroy_all
end
end
end
......@@ -4,7 +4,7 @@
defaults:
version:
number: "0.7.12.0" # Do not touch unless doing a release, do not backport the version number that's in master
number: "0.7.13.0" # Do not touch unless doing a release, do not backport the version number that's in master
heroku: false
environment:
url: "http://localhost:3000/"
......
......@@ -186,8 +186,8 @@ configuration: ## Section
#rails_environment: 'development'
## Write unicorn stderr and stdout log.
#stderr_log: '/usr/local/app/diaspora/log/unicorn-stderr.log'
#stdout_log: '/usr/local/app/diaspora/log/unicorn-stdout.log'
#stderr_log: 'log/unicorn-stderr.log'
#stdout_log: 'log/unicorn-stdout.log'
## Number of Unicorn worker processes (default=2).
## Increase this if you have many users.
......
# frozen_string_literal: true
Rails.application.config.secret_token = AppConfig.secret_token
Rails.application.config.secret_key_base = AppConfig.secret_token
......@@ -29,6 +29,11 @@ def default_job_config
"class": "Workers::CleanupOldExports"
},
cleanup_pending_photos: {
"cron": "#{random_minute.call} #{random_hour.call} * * *",
"class": "Workers::CleanupPendingPhotos"
},
queue_users_for_removal: {
"cron": "#{random_minute.call} #{random_hour.call} * * *",
"class": "Workers::QueueUsersForRemoval"
......
......@@ -596,7 +596,7 @@ de:
diaspora_site_link: "föderierten diaspora*-Netzwerks"
headline: "Willkommen auf %{pod_name}"
own_your_data: "Deine Daten, dein Eigentum"
own_your_data_info: "Viele Netzwerke nutzen deine Daten, um Geld zu verdienen, indem Sie deine Interaktionen auswerten und diese Informationen verwenden, um dir Werbung zu zeigen. diaspora* nutzt deine Daten zu keinem anderen Zweck, als es dir zu ermöglichen, dich mit anderen zu verbinden und mit ihnen zu teilen."
own_your_data_info: "Viele Netzwerke nutzen deine Daten, um Geld zu verdienen, indem sie deine Interaktionen auswerten und diese Informationen verwenden, um dir Werbung zu zeigen. diaspora* nutzt deine Daten zu keinem anderen Zweck, als es dir zu ermöglichen, dich mit anderen zu verbinden und mit ihnen zu teilen."
part_of_diaspora: "Teil des %{diaspora_site_link}"
podmin:
byline: "Du bist drauf und dran, das Internet zu ändern. Lass uns gleich alles einrichten, okay?"
......
......@@ -669,6 +669,7 @@ eo:
auto_follow_aspect: "Aspekto por aŭtomate sekvataj uzantoj"
auto_follow_back: "Aŭtomate konigu reen, se iu konigas al vi."
change: "Ŝanĝi"
change_color_theme: "Ŝanĝi koloran etoson"
change_email: "Redakti retpoŝtadreson"
change_language: "Ŝanĝi lingvon"
change_password: "Ŝanĝi pasvorton"
......@@ -717,6 +718,7 @@ eo:
public:
does_not_exist: "Uzanto %{username} ne ekzistas!"
update:
color_theme_changed: "La kolora etoso estas sukcese ŝanĝita"
email_notifications_changed: "Retpoŝtaj sciigoj ŝanĝitaj"
follow_settings_changed: "Agordoj pri sekvado ŝanĝitaj"
follow_settings_not_changed: "Ŝanĝo de sekvo-agordoj malsukcesis."
......
......@@ -424,6 +424,7 @@ es-AR:
mentions:
how_to_mention_a: "Escribe el signo \"@\" y comience a escribir el nombre. Un menú desplegable con opciones aparecerá para seleccionarlo más fácilmente. Sólo es posible mencionar a las personas que tienes agregadas a uno o varios aspectos."
how_to_mention_q: "¿Cómo puedo mencionar a alguien cuando hago una publicación?"
mention_in_comment_a: "¡Si! Desde la versión 0.7.0.0 puedes mencionar a alguien en un comentario de la misma forma que lo harías en una publicación, escribiendo \"@\" seguido de su nombre. Por favor tenga en cuenta que cuando usted comenta en una publicación que no es pública solo puede mencionar usuarios los cuales ya hayan interactuado con la publicación."
mention_in_comment_q: "¿Puedo mencionar a alguien en un comentario?"
see_mentions_a: "Sí, haz clic en \"@Menciones\" en la columna izquierda de tu página de inicio."
see_mentions_q: "¿Existe alguna manera de ver las publicaciones en las cuales he sido mencionado?"
......@@ -462,6 +463,7 @@ es-AR:
ignore_user_a3: "La lista de personas que has ignorado puedes verla en los ajustes de tu cuenta, en la sección Privacidad. Para dejar de ignorar a alguien, debes quitar a esa persona de la lista en esa página."
ignore_user_q: "¿Cómo puedo impedir que las publicaciones de una persona aparezcan en mi Entrada?"
insert_images_a: "Haz clic en el icono pequeño con forma de cámara para insertar imágenes en una publicación. Presiona el icono de imágenes nuevamente para añadir otra foto, o selecciona varias al mismo tiempo. También puedes arrastrar y soltar una o varias imágenes desde tu computadora a ese icono. Si quieres insertar una imagen desde la web en tu publicación, haz clic en el botón de imagen en la parte superior del cuadro de publicación, lo que creará el código Markdown para vos."
insert_images_comments_a: "Podés utilizar Markdown para ingresar una imagen desde la web a un comentario, igual que en las publicaciones. Sin embargo, no podés subir imagenes desde tu computadora directamente a los comentarios. Cargalos a un servicio de hosting para imagenes y entonces ingresarlos usando el botón de imagen encima del editor."
insert_images_comments_q: "¿Puedo insertar imágenes en los comentarios?"
insert_images_q: "¿Cómo puedo insertar imágenes en las publicaciones?"
post_location_a: "Pulsa el icono de localización al lado de la cámara en el publicador (el cuadro de publicación). Ello insertará tu localización desde OpenStreetMap. Puedes editar tu localización y escoger publicar sólo el nombre de la ciudad en la que estás en lugar de tu dirección exacta."
......@@ -965,6 +967,9 @@ es-AR:
updated: "Perfil actualizado"
public: "Público"
registrations:
closed:
another_pod: "otro pod"
closed_pod: "En este momento este pod se encuentra cerrado a nuevas registros. De igual forma, todavía puedes unirte a la red de diaspora* registrandote en %{wiki}. Ya que todos los pods están interconectados, tendrás acceso al mismo contenido."
create:
success: "¡Te has unido a diaspora*!"
invalid_invite: "¡El enlace de la invitación ya no es válido!"
......@@ -1199,7 +1204,7 @@ es-AR:
new_password: "Contraseña nueva"
private_message: "...recibís un mensaje privado?"
protocol_handler:
register: "Regístrate"
register: "Regístrate web+diaspora:// controlador en este navegador"
receive_email_notifications: "¿Recibir notificaciones por correo electrónico cuando..."
request_export: "Solicitar los datos de mi perfil"
request_export_photos: "Solicitar la descarga de mis fotos"
......
......@@ -992,6 +992,11 @@ ia:
updated: "Profilo actualisate"
public: "Public"
registrations:
closed:
another_pod: "un altere pod"
closed_pod: "Iste pod es actualmente claudite pro le creation de contos, ma tu pote totevia adherer al rete de diaspora* per inscriber te a %{wiki}. Post que tote le pods es interconnectite, tu potera acceder al mesme contento."
find_pods: "Un lista de pods ubi tu pote inscriber te se trova a %{poduptime}."
other_questions: "Si tu ha altere questiones sur le election de un pod, consulta nostre %{wiki}."
create:
success: "Tu ha adherite a diaspora*!"
invalid_invite: "Le ligamine de invitation que tu ha fornite non plus es valide."
......@@ -1049,9 +1054,9 @@ ia:
connect: "Connecter"
disconnect: "Disconnecter"
edit_services: "Modificar servicios"
logged_in_as: "In session como %{nickname}."
logged_in_as: "Connectite como %{nickname}."
no_services_available: "Il non ha servicios disponibile in iste pod."
not_logged_in: "Nulle session aperte in iste momento."
not_logged_in: "Non connectite."
really_disconnect: "Disconnecter %{service}?"
services_explanation: "Le connexion a altere servicios da le possibilitate de publicar tu messages anque in illos quando tu los scribe in diaspora*."
share_to: "Divider sur %{provider}"
......@@ -1178,6 +1183,41 @@ ia:
one: "1 persona con etiquetta %{tag}"
other: "%{count} personas con etiquetta %{tag}"
zero: "Nemo con etiquetta %{tag}"
two_factor_auth:
activated:
change_button: "Disactivar"
change_label: "Disactiva le authentication bifactorial per entrar tu contrasigno"
status: "Authentication bifactorial activate"
confirm:
activate_button: "Confirmar e activar"
input_explanation: "Post scannar o entrar le secreto, entra le codice a sex digitos que tu vide e confirma le activation."
input_title: "Confirmar con codice TOTP"
manual_explanation: "Si tu non succede a scannar automaticamente le codice QR, tu pote manualmente entrar le secreto in tu application."
manual_explanation_cont: "Nos usa \"time-based one-time passwords\" (TOTP, contrasignos temporal a uso unic) con codices a sex digitos. Si tu application te demanda un intervallo de tempore e un algorithmo, responde 30 secundas e sha1, respectivemente.<br />Le spatios es solmente pro lectura facile; per favor, entra le