Merge branch 'next-minor'

This commit is contained in:
Benjamin Neff 2022-02-12 00:03:02 +01:00
commit 82291ed7e7
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
254 changed files with 5243 additions and 1975 deletions

View file

@ -44,7 +44,7 @@ jobs:
- 5432:5432
steps:
- name: Install system dependencies
run: sudo apt-get install -y build-essential curl git gsfonts imagemagick libcurl4-openssl-dev libidn11-dev libmagickwand-dev libssl-dev libxml2-dev libxslt1-dev
run: sudo apt update && sudo apt install -y build-essential curl git gsfonts imagemagick libcurl4-openssl-dev libidn11-dev libmagickwand-dev libssl-dev libxml2-dev libxslt1-dev
- name: Start MySQL
run: sudo systemctl start mysql.service
if: matrix.db == 'mysql'

View file

@ -179,8 +179,6 @@ Layout/DotPosition:
Style/HashEachMethods:
Enabled: true
# TODO: Enable with Ruby 2.5
Style/HashTransformKeys:
Enabled: false
Style/HashTransformValues:
# It makes more sense to allow to structure and group them how it makes sense in the code
Style/AccessorGrouping:
Enabled: false

View file

@ -1,3 +1,34 @@
# 0.7.16.0
## Security
* Update rails to fix [CVE-2022-23633](https://github.com/advisories/GHSA-wh98-p28r-vrc9) [#8336](https://github.com/diaspora/diaspora/pull/8336)
## Refactor
* Cache local posts/comments count for statistics [#8241](https://github.com/diaspora/diaspora/pull/8241)
* Fix html-syntax in some handlebars templates [#8251](https://github.com/diaspora/diaspora/pull/8251)
* Remove `chat_enabled` flag from archive export [#8265](https://github.com/diaspora/diaspora/pull/8265)
* Change thumbnails in image slideshow to squares [#8275](https://github.com/diaspora/diaspora/pull/8275)
* Replace uglifier with terser for JS compression [#8268](https://github.com/diaspora/diaspora/pull/8268)
## Bug fixes
* Ensure the log folder exists [#8287](https://github.com/diaspora/diaspora/pull/8287)
* Limit name length in header [#8313](https://github.com/diaspora/diaspora/pull/8313)
* Fix fallback avatar in hovercards [#8316](https://github.com/diaspora/diaspora/pull/8316)
* Use old person private key for export if relayable author migrated away [#8310](https://github.com/diaspora/diaspora/pull/8310)
## Features
* Add tags to tumblr posts [#8244](https://github.com/diaspora/diaspora/pull/8244)
* Add blocks to the archive export [#8263](https://github.com/diaspora/diaspora/pull/8263)
* Allow points and dashes in the username [#8266](https://github.com/diaspora/diaspora/pull/8266)
* Add support for footnotes in markdown [#8277](https://github.com/diaspora/diaspora/pull/8277)
* Send `AccountMigration` if receiving message to a migrated account [#8288](https://github.com/diaspora/diaspora/pull/8288)
* Add podmin mail address to the footer [#8242](https://github.com/diaspora/diaspora/pull/8242)
* Add username to password-reset mail [#8037](https://github.com/diaspora/diaspora/pull/8037)
* Resend account migration and deletion for closed recipients [#8309](https://github.com/diaspora/diaspora/pull/8309)
* Add sharing status to hovercards [#8317](https://github.com/diaspora/diaspora/pull/8317)
* Migrate photo URLs and cleanup old uploaded photos [#8314](https://github.com/diaspora/diaspora/pull/8314)
# 0.7.15.0
## Refactor

107
Gemfile
View file

@ -2,7 +2,7 @@
source "https://rubygems.org"
gem "rails", "5.2.5"
gem "rails", "5.2.6.2"
# Legacy Rails features, remove me!
# responders (class level)
@ -15,8 +15,8 @@ gem "unicorn-worker-killer", "0.4.5"
# Federation
gem "diaspora_federation-json_schema", "0.2.6"
gem "diaspora_federation-rails", "0.2.6"
gem "diaspora_federation-json_schema", "0.2.7"
gem "diaspora_federation-rails", "0.2.7"
# API and JSON
@ -26,10 +26,10 @@ gem "json-schema", "2.8.1"
# Authentication
gem "devise", "4.7.3"
gem "devise-two-factor", "4.0.0"
gem "devise", "4.8.0"
gem "devise_lastseenable", "0.0.6"
gem "rqrcode", "1.1.2"
gem "devise-two-factor", "4.0.1"
gem "rqrcode", "2.1.0"
# Captcha
@ -37,8 +37,8 @@ gem "simple_captcha2", "0.5.0", require: "simple_captcha"
# Background processing
gem "redis", "4.2.5"
gem "sidekiq", "6.2.1"
gem "redis", "4.5.1"
gem "sidekiq", "6.2.2"
# Scheduled processing
@ -46,12 +46,12 @@ gem "sidekiq-cron", "1.2.0"
# Compression
gem "uglifier", "4.2.0"
gem "terser", "1.1.7"
# Configuration
gem "configurate", "0.5.0"
gem "toml-rb", "2.0.1"
gem "toml-rb", "2.1.0"
# Cross-origin resource sharing
@ -59,12 +59,12 @@ gem "rack-cors", "1.1.1", require: "rack/cors"
# CSS
gem "autoprefixer-rails", "10.2.4.0"
gem "autoprefixer-rails", "10.3.3.0"
gem "bootstrap-sass", "3.4.1"
gem "bootstrap-switch-rails", "3.3.3" # 3.3.4 and 3.3.5 is broken, see https://github.com/Bttstrp/bootstrap-switch/issues/691
gem "compass-rails", "3.1.0"
gem "sass-rails", "5.0.7"
gem "sprockets-rails", "3.2.1"
gem "sprockets-rails", "3.2.2"
# Database
@ -75,14 +75,13 @@ group :postgresql, optional: true do
gem "pg", "1.2.3"
end
gem "activerecord-import", "1.0.4"
gem "activerecord-import", "1.1.0"
# File uploading
gem "carrierwave", "1.3.2"
gem "fog-aws", "3.5.2"
gem "mini_magick", "4.10.1"
gem "carrierwave", "2.2.2"
gem "fog-aws", "3.12.0"
gem "mini_magick", "4.11.0"
# GUID generation
gem "uuid", "2.3.9"
@ -93,21 +92,22 @@ gem "entypo-rails", "3.0.0"
# JavaScript
gem "handlebars_assets", "0.23.8"
gem "jquery-rails", "4.3.5"
gem "js-routes", "1.4.9"
gem "handlebars_assets", "0.23.9"
gem "jquery-rails", "4.4.0"
gem "js-routes", "2.1.2"
gem "js_image_paths", "0.1.1"
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", "3.5.1" # Should be kept in sync with jquery-rails
gem "rails-assets-jquery.ui", "1.11.4"
gem "rails-assets-highlightjs", "9.12.0"
gem "rails-assets-markdown-it", "8.4.2"
gem "rails-assets-markdown-it-hashtag", "0.4.0"
gem "rails-assets-markdown-it-diaspora-mention", "1.2.0"
gem "rails-assets-markdown-it-sanitizer", "0.4.3"
gem "rails-assets-markdown-it-footnote", "3.0.3"
gem "rails-assets-markdown-it-hashtag", "0.4.0"
gem "rails-assets-markdown-it--markdown-it-for-inline", "0.1.1"
gem "rails-assets-markdown-it-sanitizer", "0.4.3"
gem "rails-assets-markdown-it-sub", "1.0.0"
gem "rails-assets-markdown-it-sup", "1.0.0"
@ -139,14 +139,14 @@ gem "rails-i18n", "5.1.3"
gem "markerb", "1.1.0"
# Map
gem "leaflet-rails", "1.6.0"
gem "leaflet-rails", "1.7.0"
# Parsing
gem "nokogiri", "1.11.3"
gem "open_graph_reader", "0.7.1" # also update User-Agent in features/support/webmock.rb and open_graph_cache_spec.rb
gem "nokogiri", "1.12.5"
gem "open_graph_reader", "0.7.2" # also update User-Agent in features/support/webmock.rb and open_graph_cache_spec.rb
gem "redcarpet", "3.5.1"
gem "ruby-oembed", "0.12.0"
gem "ruby-oembed", "0.15.0"
gem "twitter-text", "1.14.7"
# RTL support
@ -155,18 +155,19 @@ gem "string-direction", "1.2.2"
# Security Headers
gem "secure_headers", "6.3.2"
gem "secure_headers", "6.3.3"
# Services
gem "omniauth", "1.9.1"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
gem "omniauth-wordpress", "0.2.2"
gem "twitter", "7.0.0"
gem "omniauth", "2.0.4"
gem "omniauth-rails_csrf_protection", "1.0.0"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
gem "omniauth-wordpress", "0.2.2"
gem "twitter", "7.0.0"
# OpenID Connect
gem "openid_connect", "1.1.8"
gem "openid_connect", "1.3.0"
# Serializers
@ -178,23 +179,23 @@ gem "rails-assets-diaspora_jsxc", "0.1.5.develop.7", source: "https://gems.diasp
# Tags
gem "acts-as-taggable-on", "6.5.0"
gem "acts-as-taggable-on", "8.1.0"
# URIs and HTTP
gem "addressable", "2.7.0", require: "addressable/uri"
gem "faraday", "0.15.4"
gem "faraday_middleware", "0.13.1"
gem "faraday-cookie_jar", "0.0.6"
gem "addressable", "2.8.0", require: "addressable/uri"
gem "faraday", "0.17.4"
gem "faraday-cookie_jar", "0.0.7"
gem "faraday_middleware", "0.14.0"
gem "typhoeus", "1.4.0"
# Views
gem "gon", "6.3.2"
gem "hamlit", "2.14.6"
gem "gon", "6.4.0"
gem "hamlit", "2.15.1"
gem "mobile-fu", "1.4.0"
gem "rails-timeago", "2.18.0"
gem "will_paginate", "3.3.0"
gem "rails-timeago", "2.19.1"
gem "will_paginate", "3.3.1"
# Logging
@ -202,7 +203,7 @@ gem "logging-rails", "0.6.0", require: "logging/rails"
# Reading and writing zip files
gem "rubyzip", "2.3.0", require: "zip"
gem "rubyzip", "2.3.2", require: "zip"
# Prevent occasions where minitest is not bundled in
# packaged versions of ruby. See following issues/prs:
@ -237,12 +238,12 @@ group :production do # we don"t install these on travis to speed up test runs
# Third party asset hosting
gem "asset_sync", "2.11.0", require: false
gem "asset_sync", "2.15.0", require: false
end
group :development do
# Linters
gem "haml_lint", "0.37.0", require: false
gem "haml_lint", "0.37.1", require: false
gem "pronto", "0.11.0", require: false
gem "pronto-eslint", "0.11.0", require: false
gem "pronto-haml", "0.11.0", require: false
@ -275,7 +276,7 @@ group :test do
gem "apparition", "0.6.0"
gem "capybara", "3.35.3"
gem "database_cleaner-active_record", "1.8.0"
gem "database_cleaner-active_record", "2.0.1"
gem "cucumber-api-steps", "0.14", require: false
@ -284,25 +285,25 @@ group :test do
gem "factory_girl_rails", "4.9.0"
gem "shoulda-matchers", "4.5.1"
gem "timecop", "0.9.4"
gem "webmock", "3.12.2", require: false
gem "webmock", "3.14.0", require: false
gem "diaspora_federation-test", "0.2.6"
gem "diaspora_federation-test", "0.2.7"
end
group :development, :test do
# RSpec (unit tests, some integration tests)
gem "rspec-rails", "5.0.1"
gem "rspec-rails", "5.0.2"
# Cucumber (integration tests)
gem "cucumber-rails", "2.3.0", require: false
gem "cucumber-rails", "2.4.0", require: false
# Jasmine (client side application tests (JS))
gem "chrome_remote", "0.3.0"
gem "jasmine", "3.7.0"
gem "jasmine", "3.10.0"
gem "jasmine-jquery-rails", "2.0.3"
gem "rails-assets-jasmine-ajax", "4.0.0", source: "https://gems.diasporafoundation.org"
gem "sinon-rails", "1.15.0"
# For `assigns` in controller specs
gem "rails-controller-testing", "1.0.4"
gem "rails-controller-testing", "1.0.5"
end

View file

@ -2,25 +2,25 @@ GEM
remote: https://rubygems.org/
remote: https://gems.diasporafoundation.org/
specs:
actioncable (5.2.5)
actionpack (= 5.2.5)
actioncable (5.2.6.2)
actionpack (= 5.2.6.2)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailer (5.2.5)
actionpack (= 5.2.5)
actionview (= 5.2.5)
activejob (= 5.2.5)
actionmailer (5.2.6.2)
actionpack (= 5.2.6.2)
actionview (= 5.2.6.2)
activejob (= 5.2.6.2)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (5.2.5)
actionview (= 5.2.5)
activesupport (= 5.2.5)
actionpack (5.2.6.2)
actionview (= 5.2.6.2)
activesupport (= 5.2.6.2)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.2.5)
activesupport (= 5.2.5)
actionview (5.2.6.2)
activesupport (= 5.2.6.2)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@ -28,40 +28,40 @@ GEM
active_model_serializers (0.9.7)
activemodel (>= 3.2)
concurrent-ruby (~> 1.0)
activejob (5.2.5)
activesupport (= 5.2.5)
activejob (5.2.6.2)
activesupport (= 5.2.6.2)
globalid (>= 0.3.6)
activemodel (5.2.5)
activesupport (= 5.2.5)
activerecord (5.2.5)
activemodel (= 5.2.5)
activesupport (= 5.2.5)
activemodel (5.2.6.2)
activesupport (= 5.2.6.2)
activerecord (5.2.6.2)
activemodel (= 5.2.6.2)
activesupport (= 5.2.6.2)
arel (>= 9.0)
activerecord-import (1.0.4)
activerecord-import (1.1.0)
activerecord (>= 3.2)
activestorage (5.2.5)
actionpack (= 5.2.5)
activerecord (= 5.2.5)
activestorage (5.2.6.2)
actionpack (= 5.2.6.2)
activerecord (= 5.2.6.2)
marcel (~> 1.0.0)
activesupport (5.2.5)
activesupport (5.2.6.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
acts-as-taggable-on (6.5.0)
activerecord (>= 5.0, < 6.1)
acts-as-taggable-on (8.1.0)
activerecord (>= 5.0, < 6.2)
acts_as_api (1.0.1)
activemodel (>= 3.0.0)
activesupport (>= 3.0.0)
rack (>= 1.1.0)
addressable (2.7.0)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
aes_key_wrap (1.1.0)
apparition (0.6.0)
capybara (~> 3.13, < 4)
websocket-driver (>= 0.6.5)
arel (9.0.0)
asset_sync (2.11.0)
asset_sync (2.15.0)
activemodel (>= 4.1.0)
fog-core
mime-types (>= 2.99)
@ -70,10 +70,10 @@ GEM
attr_encrypted (3.1.0)
encryptor (~> 3.0.0)
attr_required (1.0.1)
autoprefixer-rails (10.2.4.0)
execjs
autoprefixer-rails (10.3.3.0)
execjs (~> 2)
bcrypt (3.1.16)
bindata (2.4.8)
bindata (2.4.10)
bootstrap-sass (3.4.1)
autoprefixer-rails (>= 5.2.1)
sassc (>= 2.0.0)
@ -89,10 +89,13 @@ GEM
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2)
carrierwave (1.3.2)
activemodel (>= 4.0.0)
activesupport (>= 4.0.0)
mime-types (>= 1.16)
carrierwave (2.2.2)
activemodel (>= 5.0.0)
activesupport (>= 5.0.0)
addressable (~> 2.6)
image_processing (~> 1.1)
marcel (~> 1.0.0)
mini_mime (>= 0.1.3)
ssrf_filter (~> 1.0)
celluloid (0.17.4)
celluloid-essentials
@ -136,63 +139,65 @@ GEM
compass (~> 1.0.0)
sass-rails (< 5.1)
sprockets (< 4.0)
concurrent-ruby (1.1.8)
concurrent-ruby (1.1.9)
configurate (0.5.0)
connection_pool (2.2.3)
connection_pool (2.2.5)
crack (0.4.5)
rexml
crass (1.0.6)
cucumber (5.3.0)
cucumber (7.1.0)
builder (~> 3.2, >= 3.2.4)
cucumber-core (~> 8.0, >= 8.0.1)
cucumber-create-meta (~> 2.0, >= 2.0.2)
cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
cucumber-gherkin (~> 15.0, >= 15.0.2)
cucumber-html-formatter (~> 9.0, >= 9.0.0)
cucumber-messages (~> 13.1, >= 13.1.0)
cucumber-wire (~> 4.0, >= 4.0.1)
cucumber-core (~> 10.1, >= 10.1.0)
cucumber-create-meta (~> 6.0, >= 6.0.1)
cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
cucumber-gherkin (~> 22.0, >= 22.0.0)
cucumber-html-formatter (~> 17.0, >= 17.0.0)
cucumber-messages (~> 17.1, >= 17.1.1)
cucumber-wire (~> 6.2, >= 6.2.0)
diff-lcs (~> 1.4, >= 1.4.4)
mime-types (~> 3.3, >= 3.3.1)
multi_test (~> 0.1, >= 0.1.2)
sys-uname (~> 1.2, >= 1.2.1)
sys-uname (~> 1.2, >= 1.2.2)
cucumber-api-steps (0.14.0)
cucumber (>= 2.0.2)
jsonpath (>= 0.1.2)
cucumber-core (8.0.1)
cucumber-gherkin (~> 15.0, >= 15.0.2)
cucumber-messages (~> 13.0, >= 13.0.1)
cucumber-tag-expressions (~> 2.0, >= 2.0.4)
cucumber-create-meta (2.0.4)
cucumber-messages (~> 13.1, >= 13.1.0)
sys-uname (~> 1.2, >= 1.2.1)
cucumber-cucumber-expressions (10.3.0)
cucumber-gherkin (15.0.2)
cucumber-messages (~> 13.0, >= 13.0.1)
cucumber-html-formatter (9.0.0)
cucumber-messages (~> 13.0, >= 13.0.1)
cucumber-messages (13.2.1)
protobuf-cucumber (~> 3.10, >= 3.10.8)
cucumber-rails (2.3.0)
cucumber-core (10.1.0)
cucumber-gherkin (~> 22.0, >= 22.0.0)
cucumber-messages (~> 17.1, >= 17.1.1)
cucumber-tag-expressions (~> 4.0, >= 4.0.2)
cucumber-create-meta (6.0.2)
cucumber-messages (~> 17.1, >= 17.1.1)
sys-uname (~> 1.2, >= 1.2.2)
cucumber-cucumber-expressions (14.0.0)
cucumber-gherkin (22.0.0)
cucumber-messages (~> 17.1, >= 17.1.1)
cucumber-html-formatter (17.0.0)
cucumber-messages (~> 17.1, >= 17.1.0)
cucumber-messages (17.1.1)
cucumber-rails (2.4.0)
capybara (>= 2.18, < 4)
cucumber (>= 3.0.2, < 6)
mime-types (~> 3.2)
nokogiri (~> 1.8)
cucumber (>= 3.2, < 8)
mime-types (~> 3.3)
nokogiri (~> 1.10)
railties (>= 5.0, < 7)
cucumber-tag-expressions (2.0.4)
cucumber-wire (4.0.1)
cucumber-core (~> 8.0, >= 8.0.1)
cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
cucumber-messages (~> 13.0, >= 13.0.1)
database_cleaner (1.8.5)
database_cleaner-active_record (1.8.0)
activerecord
database_cleaner (~> 1.8.0)
devise (4.7.3)
rexml (~> 3.0)
webrick (~> 1.7)
cucumber-tag-expressions (4.1.0)
cucumber-wire (6.2.0)
cucumber-core (~> 10.1, >= 10.1.0)
cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
cucumber-messages (~> 17.1, >= 17.1.1)
database_cleaner-active_record (2.0.1)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
devise (4.8.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (4.0.0)
devise-two-factor (4.0.1)
activesupport (< 6.2)
attr_encrypted (>= 1.3, < 4, != 2)
devise (~> 4.0)
@ -202,22 +207,22 @@ GEM
devise
rails (>= 3.0.4)
diaspora-prosody-config (0.0.7)
diaspora_federation (0.2.6)
faraday (>= 0.9.0, < 0.16.0)
faraday_middleware (>= 0.10.0, < 0.14.0)
diaspora_federation (0.2.7)
faraday (>= 0.9.0, < 1.0)
faraday_middleware (>= 0.10.0, < 1.0)
nokogiri (~> 1.6, >= 1.6.8)
typhoeus (~> 1.0)
valid (~> 1.0)
diaspora_federation-json_schema (0.2.6)
diaspora_federation-rails (0.2.6)
diaspora_federation-json_schema (0.2.7)
diaspora_federation-rails (0.2.7)
actionpack (>= 4.2, < 6)
diaspora_federation (= 0.2.6)
diaspora_federation-test (0.2.6)
diaspora_federation (= 0.2.6)
diaspora_federation (= 0.2.7)
diaspora_federation-test (0.2.7)
diaspora_federation (= 0.2.7)
fabrication (~> 2.16)
uuid (~> 2.3, >= 2.3.8)
diff-lcs (1.4.4)
docile (1.3.5)
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
encryptor (3.0.0)
@ -229,12 +234,12 @@ GEM
execjs
multi_json (>= 1.3)
rake
et-orbi (1.2.4)
et-orbi (1.2.6)
tzinfo
ethon (0.12.0)
ffi (>= 1.3.0)
excon (0.79.0)
execjs (2.7.0)
ethon (0.15.0)
ffi (>= 1.15.0)
excon (0.88.0)
execjs (2.8.1)
eye (0.10.0)
celluloid (~> 0.17.3)
celluloid-io (~> 0.17.0)
@ -247,14 +252,14 @@ GEM
factory_girl_rails (4.9.0)
factory_girl (~> 4.9.0)
railties (>= 3.0.0)
faraday (0.15.4)
faraday (0.17.4)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday_middleware (0.13.1)
faraday_middleware (0.14.0)
faraday (>= 0.7.4, < 1.0)
ffi (1.15.0)
ffi (1.15.4)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
@ -262,12 +267,12 @@ GEM
activerecord (>= 2)
activesupport (>= 2)
hashdiff
fog-aws (3.5.2)
fog-aws (3.12.0)
fog-core (~> 2.1)
fog-json (~> 1.1)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-core (2.2.3)
fog-core (2.2.4)
builder
excon (~> 0.71)
formatador (~> 0.2)
@ -275,11 +280,11 @@ GEM
fog-json (1.2.0)
fog-core
multi_json (~> 1.10)
fog-xml (0.1.3)
fog-xml (0.1.4)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
formatador (0.2.5)
fugit (1.4.4)
formatador (0.3.0)
fugit (1.5.2)
et-orbi (~> 1.1, >= 1.1.8)
raabro (~> 1.4)
fuubar (2.5.1)
@ -290,27 +295,27 @@ GEM
gitlab (4.17.0)
httparty (~> 0.18)
terminal-table (~> 1.5, >= 1.5.1)
globalid (0.4.2)
activesupport (>= 4.2.0)
gon (6.3.2)
globalid (1.0.0)
activesupport (>= 5.0)
gon (6.4.0)
actionpack (>= 3.0.20)
i18n (>= 0.7)
multi_json
request_store (>= 1.0)
haml (5.2.1)
haml (5.2.2)
temple (>= 0.8.0)
tilt
haml_lint (0.37.0)
haml_lint (0.37.1)
haml (>= 4.0, < 5.3)
parallel (~> 1.10)
rainbow
rubocop (>= 0.50.0)
sysexits (~> 1.1)
hamlit (2.14.6)
hamlit (2.15.1)
temple (>= 0.8.2)
thor
tilt
handlebars_assets (0.23.8)
handlebars_assets (0.23.9)
execjs (~> 2.0)
sprockets (>= 2.0.0)
tilt (>= 1.2)
@ -321,18 +326,18 @@ GEM
http-cookie (~> 1.0)
http-form_data (~> 2.2)
http-parser (~> 1.2.0)
http-cookie (1.0.3)
http-cookie (1.0.4)
domain_name (~> 0.5)
http-form_data (2.3.0)
http-parser (1.2.3)
ffi-compiler (>= 1.0, < 2.0)
http_accept_language (2.1.1)
http_parser.rb (0.6.0)
httparty (0.18.1)
httparty (0.20.0)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
httpclient (2.8.3)
i18n (1.8.10)
i18n (1.9.1)
concurrent-ruby (~> 1.0)
i18n-inflector (2.6.7)
i18n (>= 0.4.1)
@ -340,21 +345,24 @@ GEM
actionpack (>= 3.0.0)
i18n-inflector (~> 2.6)
railties (>= 3.0.0)
image_processing (1.12.1)
mini_magick (>= 4.9.5, < 5)
ruby-vips (>= 2.0.17, < 3)
ipaddress (0.8.3)
jasmine (3.7.0)
jasmine-core (~> 3.7.0)
jasmine (3.10.0)
jasmine-core (~> 3.10.0)
phantomjs
rack (>= 1.2.1)
rack (>= 2.1.4)
rake
jasmine-core (3.7.1)
webrick
jasmine-core (3.10.1)
jasmine-jquery-rails (2.0.3)
jquery-rails (4.3.5)
jquery-rails (4.4.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
js-routes (1.4.9)
js-routes (2.1.2)
railties (>= 4)
sprockets-rails
js_image_paths (0.1.1)
rails (>= 4.0, < 6.0)
sprockets (>= 3.0.0)
@ -370,10 +378,10 @@ GEM
rspec
jsonpath (1.1.0)
multi_json
jwt (2.2.2)
kgio (2.11.3)
kostya-sigar (2.0.8)
leaflet-rails (1.6.0)
jwt (2.3.0)
kgio (2.11.4)
kostya-sigar (2.0.10)
leaflet-rails (1.7.0)
rails (>= 4.2.0)
listen (3.5.1)
rb-fsevent (~> 0.10, >= 0.10.3)
@ -384,27 +392,26 @@ GEM
multi_json (~> 1.14)
logging-rails (0.6.0)
logging (>= 1.8)
loofah (2.9.1)
loofah (2.14.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
macaddr (1.7.2)
systemu (~> 2.6.5)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (1.0.1)
marcel (1.0.2)
markdown-it-html5-embed (1.0.0)
markerb (1.1.0)
memoizable (0.4.2)
thread_safe (~> 0.3, >= 0.3.1)
method_source (1.0.0)
middleware (0.1.0)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2021.0225)
mini_magick (4.10.1)
mini_mime (1.1.0)
mini_portile2 (2.5.0)
minitest (5.14.4)
mime-types-data (3.2021.0901)
mini_magick (4.11.0)
mini_mime (1.1.2)
mini_portile2 (2.6.1)
minitest (5.15.0)
mobile-fu (1.4.0)
rack-mobile-detect
rails
@ -414,29 +421,33 @@ GEM
multipart-post (2.1.1)
mysql2 (0.5.3)
naught (1.1.0)
nio4r (2.5.7)
nokogiri (1.11.3)
mini_portile2 (~> 2.5.0)
nio4r (2.5.8)
nokogiri (1.12.5)
mini_portile2 (~> 2.6.1)
racc (~> 1.4)
oauth (0.5.6)
oauth (0.5.7)
oauth2 (1.4.7)
faraday (>= 0.8, < 2.0)
jwt (>= 1.0, < 3.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
octokit (4.20.0)
octokit (4.21.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
omniauth (1.9.1)
omniauth (2.0.4)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
rack-protection
omniauth-oauth (1.2.0)
oauth
omniauth (>= 1.0, < 3)
omniauth-oauth2 (1.7.1)
omniauth-oauth2 (1.7.2)
oauth2 (~> 1.4)
omniauth (>= 1.9, < 3)
omniauth-rails_csrf_protection (1.0.0)
actionpack (>= 4.2)
omniauth (~> 2.0)
omniauth-tumblr (1.2)
multi_json
omniauth-oauth (~> 1.0)
@ -445,10 +456,10 @@ GEM
rack
omniauth-wordpress (0.2.2)
omniauth-oauth2 (>= 1.1.0)
open_graph_reader (0.7.1)
open_graph_reader (0.7.2)
faraday (>= 0.9.0)
nokogiri (~> 1.6)
openid_connect (1.1.8)
openid_connect (1.3.0)
activemodel
attr_required (>= 1.0.0)
json-jwt (>= 1.5.0)
@ -459,8 +470,8 @@ GEM
validate_url
webfinger (>= 1.0.1)
orm_adapter (0.5.0)
parallel (1.20.1)
parser (3.0.1.0)
parallel (1.21.0)
parser (3.0.2.0)
ast (~> 2.4.1)
pg (1.2.3)
phantomjs (2.1.1.0)
@ -485,20 +496,15 @@ GEM
pronto-scss (0.11.0)
pronto (~> 0.11.0)
scss_lint (~> 0.43, >= 0.43.0)
protobuf-cucumber (3.10.8)
activesupport (>= 3.2)
middleware
thor
thread_safe
pry (0.13.1)
pry (0.14.1)
coderay (~> 1.1)
method_source (~> 1.0)
pry-byebug (3.9.0)
pry-byebug (3.8.0)
byebug (~> 11.0)
pry (~> 0.13.0)
pry (~> 0.10)
public_suffix (4.0.6)
raabro (1.4.0)
racc (1.5.2)
racc (1.6.0)
rack (2.2.3)
rack-cors (1.1.1)
rack (>= 2.0.0)
@ -507,30 +513,32 @@ GEM
activesupport
rack-mobile-detect (0.4.0)
rack
rack-oauth2 (1.16.0)
rack-oauth2 (1.19.0)
activesupport
attr_required
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
rack-piwik (0.3.0)
rack-protection (2.1.0)
rack
rack-rewrite (1.5.1)
rack-ssl (1.4.1)
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (5.2.5)
actioncable (= 5.2.5)
actionmailer (= 5.2.5)
actionpack (= 5.2.5)
actionview (= 5.2.5)
activejob (= 5.2.5)
activemodel (= 5.2.5)
activerecord (= 5.2.5)
activestorage (= 5.2.5)
activesupport (= 5.2.5)
rails (5.2.6.2)
actioncable (= 5.2.6.2)
actionmailer (= 5.2.6.2)
actionpack (= 5.2.6.2)
actionview (= 5.2.6.2)
activejob (= 5.2.6.2)
activemodel (= 5.2.6.2)
activerecord (= 5.2.6.2)
activestorage (= 5.2.6.2)
activesupport (= 5.2.6.2)
bundler (>= 1.3.0)
railties (= 5.2.5)
railties (= 5.2.6.2)
sprockets-rails (>= 2.0.0)
rails-assets-autosize (4.0.2)
rails-assets-backbone (1.3.3)
@ -556,7 +564,7 @@ GEM
rails-assets-jasmine (3.4.0)
rails-assets-jasmine-ajax (4.0.0)
rails-assets-jasmine (~> 3)
rails-assets-jquery (3.4.1)
rails-assets-jquery (3.5.1)
rails-assets-jquery-colorbox (1.6.4)
rails-assets-jquery (>= 1.3.2)
rails-assets-jquery-fullscreen-plugin (0.5.0)
@ -572,41 +580,42 @@ GEM
rails-assets-markdown-it--markdown-it-for-inline (0.1.1)
rails-assets-markdown-it (8.4.2)
rails-assets-markdown-it-diaspora-mention (1.2.0)
rails-assets-markdown-it-footnote (3.0.3)
rails-assets-markdown-it-hashtag (0.4.0)
rails-assets-markdown-it-sanitizer (0.4.3)
rails-assets-markdown-it-sub (1.0.0)
rails-assets-markdown-it-sup (1.0.0)
rails-assets-underscore (1.9.1)
rails-assets-utatti-perfect-scrollbar (1.4.0)
rails-controller-testing (1.0.4)
actionpack (>= 5.0.1.x)
actionview (>= 5.0.1.x)
activesupport (>= 5.0.1.x)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
activesupport (>= 5.0.1.rc1)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.3.0)
rails-html-sanitizer (1.4.2)
loofah (~> 2.3)
rails-i18n (5.1.3)
i18n (>= 0.7, < 2)
railties (>= 5.0, < 6)
rails-timeago (2.18.0)
rails-timeago (2.19.1)
actionpack (>= 3.1)
activesupport (>= 3.1)
railties (5.2.5)
actionpack (= 5.2.5)
activesupport (= 5.2.5)
railties (5.2.6.2)
actionpack (= 5.2.6.2)
activesupport (= 5.2.6.2)
method_source
rake (>= 0.8.7)
thor (>= 0.19.0, < 2.0)
rainbow (3.0.0)
raindrops (0.19.1)
raindrops (0.19.2)
rake (12.3.3)
rb-fsevent (0.10.4)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
redcarpet (3.5.1)
redis (4.2.5)
redis (4.5.1)
regexp_parser (2.1.1)
request_store (1.5.0)
rack (>= 1.4)
@ -615,10 +624,10 @@ GEM
railties (>= 5.0)
rexml (3.2.5)
rotp (6.2.0)
rqrcode (1.1.2)
rqrcode (2.1.0)
chunky_png (~> 1.0)
rqrcode_core (~> 0.1)
rqrcode_core (0.2.0)
rqrcode_core (~> 1.0)
rqrcode_core (1.2.0)
rspec (3.10.0)
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
@ -632,7 +641,7 @@ GEM
rspec-mocks (3.10.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.10.0)
rspec-rails (5.0.1)
rspec-rails (5.0.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
railties (>= 5.2)
@ -640,7 +649,7 @@ GEM
rspec-expectations (~> 3.10)
rspec-mocks (~> 3.10)
rspec-support (~> 3.10)
rspec-support (3.10.2)
rspec-support (3.10.3)
rubocop (0.93.1)
parallel (~> 1.10)
parser (>= 2.7.1.5)
@ -650,15 +659,17 @@ GEM
rubocop-ast (>= 0.6.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 2.0)
rubocop-ast (1.4.1)
parser (>= 2.7.1.5)
rubocop-ast (1.7.0)
parser (>= 3.0.1.1)
rubocop-rails (2.9.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 0.90.0, < 2.0)
ruby-oembed (0.12.0)
ruby-oembed (0.15.0)
ruby-progressbar (1.11.0)
rubyzip (2.3.0)
ruby-vips (2.1.3)
ffi (~> 1.12)
rubyzip (2.3.2)
rugged (1.0.1)
sass (3.4.25)
sass-rails (5.0.7)
@ -675,10 +686,10 @@ GEM
scss_lint (0.55.0)
rake (>= 0.9, < 13)
sass (~> 3.4.20)
secure_headers (6.3.2)
secure_headers (6.3.3)
shoulda-matchers (4.5.1)
activesupport (>= 4.2.0)
sidekiq (6.2.1)
sidekiq (6.2.2)
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
@ -693,20 +704,20 @@ GEM
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-html (0.12.3)
simplecov_json_formatter (0.1.2)
simplecov_json_formatter (0.1.3)
sinon-rails (1.15.0)
railties (>= 3.1)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.1)
sprockets-rails (3.2.2)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
ssrf_filter (1.0.7)
state_machines (0.5.0)
string-direction (1.2.2)
swd (1.2.0)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
httpclient (>= 2.4)
@ -717,12 +728,14 @@ GEM
temple (0.8.2)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thor (1.1.0)
terser (1.1.7)
execjs (>= 0.3.0, < 3)
thor (1.2.1)
thread_safe (0.3.6)
tilt (2.0.10)
timecop (0.9.4)
timers (4.3.3)
toml-rb (2.0.1)
toml-rb (2.1.0)
citrus (~> 3.0, > 3.0)
turbo_dev_assets (0.0.2)
twitter (7.0.0)
@ -742,12 +755,10 @@ GEM
ethon (>= 0.9.0)
tzinfo (1.2.9)
thread_safe (~> 0.1)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
unf_ext (0.0.8)
unicode-display_width (1.8.0)
unicorn (6.0.0)
kgio (~> 2.6)
raindrops (~> 0.7)
@ -769,17 +780,18 @@ GEM
yard (~> 0.9.20)
warden (1.2.9)
rack (>= 2.0.9)
webfinger (1.1.0)
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.12.2)
addressable (>= 2.3.6)
webmock (3.14.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
websocket-driver (0.7.3)
webrick (1.7.0)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
will_paginate (3.3.0)
will_paginate (3.3.1)
xpath (3.2.0)
nokogiri (~> 1.8)
yard (0.9.26)
@ -789,69 +801,70 @@ PLATFORMS
DEPENDENCIES
active_model_serializers (= 0.9.7)
activerecord-import (= 1.0.4)
acts-as-taggable-on (= 6.5.0)
activerecord-import (= 1.1.0)
acts-as-taggable-on (= 8.1.0)
acts_as_api (= 1.0.1)
addressable (= 2.7.0)
addressable (= 2.8.0)
apparition (= 0.6.0)
asset_sync (= 2.11.0)
autoprefixer-rails (= 10.2.4.0)
asset_sync (= 2.15.0)
autoprefixer-rails (= 10.3.3.0)
bootstrap-sass (= 3.4.1)
bootstrap-switch-rails (= 3.3.3)
capybara (= 3.35.3)
carrierwave (= 1.3.2)
carrierwave (= 2.2.2)
chrome_remote (= 0.3.0)
compass-rails (= 3.1.0)
configurate (= 0.5.0)
cucumber-api-steps (= 0.14)
cucumber-rails (= 2.3.0)
database_cleaner-active_record (= 1.8.0)
devise (= 4.7.3)
devise-two-factor (= 4.0.0)
cucumber-rails (= 2.4.0)
database_cleaner-active_record (= 2.0.1)
devise (= 4.8.0)
devise-two-factor (= 4.0.1)
devise_lastseenable (= 0.0.6)
diaspora-prosody-config (= 0.0.7)
diaspora_federation-json_schema (= 0.2.6)
diaspora_federation-rails (= 0.2.6)
diaspora_federation-test (= 0.2.6)
diaspora_federation-json_schema (= 0.2.7)
diaspora_federation-rails (= 0.2.7)
diaspora_federation-test (= 0.2.7)
entypo-rails (= 3.0.0)
eye (= 0.10.0)
factory_girl_rails (= 4.9.0)
faraday (= 0.15.4)
faraday-cookie_jar (= 0.0.6)
faraday_middleware (= 0.13.1)
faraday (= 0.17.4)
faraday-cookie_jar (= 0.0.7)
faraday_middleware (= 0.14.0)
fixture_builder (= 0.5.2)
fog-aws (= 3.5.2)
fog-aws (= 3.12.0)
fuubar (= 2.5.1)
gon (= 6.3.2)
haml_lint (= 0.37.0)
hamlit (= 2.14.6)
handlebars_assets (= 0.23.8)
gon (= 6.4.0)
haml_lint (= 0.37.1)
hamlit (= 2.15.1)
handlebars_assets (= 0.23.9)
http_accept_language (= 2.1.1)
i18n-inflector-rails (= 1.0.7)
jasmine (= 3.7.0)
jasmine (= 3.10.0)
jasmine-jquery-rails (= 2.0.3)
jquery-rails (= 4.3.5)
js-routes (= 1.4.9)
jquery-rails (= 4.4.0)
js-routes (= 2.1.2)
js_image_paths (= 0.1.1)
json (= 2.3.0)
json-schema (= 2.8.1)
json-schema-rspec (= 0.0.4)
leaflet-rails (= 1.6.0)
leaflet-rails (= 1.7.0)
listen (= 3.5.1)
logging-rails (= 0.6.0)
markdown-it-html5-embed (= 1.0.0)
markerb (= 1.1.0)
mini_magick (= 4.10.1)
mini_magick (= 4.11.0)
minitest
mobile-fu (= 1.4.0)
mysql2 (= 0.5.3)
nokogiri (= 1.11.3)
omniauth (= 1.9.1)
nokogiri (= 1.12.5)
omniauth (= 2.0.4)
omniauth-rails_csrf_protection (= 1.0.0)
omniauth-tumblr (= 1.2)
omniauth-twitter (= 1.4.0)
omniauth-wordpress (= 0.2.2)
open_graph_reader (= 0.7.1)
openid_connect (= 1.1.8)
open_graph_reader (= 0.7.2)
openid_connect (= 1.3.0)
pg (= 1.2.3)
pronto (= 0.11.0)
pronto-eslint (= 0.11.0)
@ -865,7 +878,7 @@ DEPENDENCIES
rack-piwik (= 0.3.0)
rack-rewrite (= 1.5.1)
rack-ssl (= 1.4.1)
rails (= 5.2.5)
rails (= 5.2.6.2)
rails-assets-autosize (= 4.0.2)!
rails-assets-backbone (= 1.3.3)!
rails-assets-blueimp-gallery (= 2.33.0)!
@ -875,7 +888,7 @@ DEPENDENCIES
rails-assets-fine-uploader (= 5.13.0)!
rails-assets-highlightjs (= 9.12.0)!
rails-assets-jasmine-ajax (= 4.0.0)!
rails-assets-jquery (= 3.4.1)!
rails-assets-jquery (= 3.5.1)!
rails-assets-jquery-placeholder (= 2.3.1)!
rails-assets-jquery-textchange (= 0.2.3)!
rails-assets-jquery.are-you-sure (= 1.9.0)!
@ -883,47 +896,48 @@ DEPENDENCIES
rails-assets-markdown-it (= 8.4.2)!
rails-assets-markdown-it--markdown-it-for-inline (= 0.1.1)!
rails-assets-markdown-it-diaspora-mention (= 1.2.0)!
rails-assets-markdown-it-footnote (= 3.0.3)!
rails-assets-markdown-it-hashtag (= 0.4.0)!
rails-assets-markdown-it-sanitizer (= 0.4.3)!
rails-assets-markdown-it-sub (= 1.0.0)!
rails-assets-markdown-it-sup (= 1.0.0)!
rails-assets-utatti-perfect-scrollbar (= 1.4.0)!
rails-controller-testing (= 1.0.4)
rails-controller-testing (= 1.0.5)
rails-i18n (= 5.1.3)
rails-timeago (= 2.18.0)
rails-timeago (= 2.19.1)
redcarpet (= 3.5.1)
redis (= 4.2.5)
redis (= 4.5.1)
responders (= 3.0.1)
rqrcode (= 1.1.2)
rqrcode (= 2.1.0)
rspec-json_expectations (~> 2.1)
rspec-rails (= 5.0.1)
rspec-rails (= 5.0.2)
rubocop (= 0.93.1)
rubocop-rails (= 2.9.1)
ruby-oembed (= 0.12.0)
rubyzip (= 2.3.0)
ruby-oembed (= 0.15.0)
rubyzip (= 2.3.2)
sass-rails (= 5.0.7)
secure_headers (= 6.3.2)
secure_headers (= 6.3.3)
shoulda-matchers (= 4.5.1)
sidekiq (= 6.2.1)
sidekiq (= 6.2.2)
sidekiq-cron (= 1.2.0)
simple_captcha2 (= 0.5.0)
simplecov (= 0.21.2)
sinon-rails (= 1.15.0)
sprockets-rails (= 3.2.1)
sprockets-rails (= 3.2.2)
string-direction (= 1.2.2)
terser (= 1.1.7)
timecop (= 0.9.4)
toml-rb (= 2.0.1)
toml-rb (= 2.1.0)
turbo_dev_assets (= 0.0.2)
twitter (= 7.0.0)
twitter-text (= 1.14.7)
typhoeus (= 1.4.0)
uglifier (= 4.2.0)
unicorn (= 6.0.0)
unicorn-worker-killer (= 0.4.5)
uuid (= 2.3.9)
versionist (= 2.0.1)
webmock (= 3.12.2)
will_paginate (= 3.3.0)
webmock (= 3.14.0)
will_paginate (= 3.3.1)
BUNDLED WITH
1.17.3

View file

@ -10,7 +10,7 @@
## Installation
You don't have to install diaspora\* to use the network. There are many servers connected to diaspora\*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](https://diaspora.podupti.me) to sign up.
You don't have to install diaspora\* to use the network. There are many servers connected to diaspora\*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](https://diaspora.fediverse.observer) to sign up.
Want to own your data and install diaspora\*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!

View file

@ -44,7 +44,7 @@ Handlebars.registerHelper('linkToPerson', function(context, block) {
// relationship indicator for profile page
Handlebars.registerHelper("sharingMessage", function(person) {
var i18nScope = "people.helper.is_not_sharing";
var icon = "circle";
var icon = "entypo-record";
if( person.is_sharing ) {
i18nScope = "people.helper.is_sharing";
icon = "entypo-check";

View file

@ -16,6 +16,9 @@
typographer: true
});
var footnote = window.markdownitFootnote;
md.use(footnote);
var inlinePlugin = window.markdownitForInline;
md.use(inlinePlugin, "utf8_symbols", "text", function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/<->/g, "↔")

View file

@ -19,10 +19,15 @@ app.views.Hovercard = app.views.Base.extend({
this.showMe = false;
this.parent = null; // current 'hovercardable' element that caused HC to appear
this.active = true;
},
presenter: function() {
return _.extend({}, this.defaultPresenter(), {
person: this.person
});
},
postRenderTemplate: function() {
this.$el.appendTo($("body"));
@ -102,14 +107,14 @@ app.views.Hovercard = app.views.Base.extend({
if( !person || person.length === 0 ) {
throw new Error("received data is not a person object");
}
var personModel = new app.models.Person(person);
person.is_sharing = personModel.isSharing();
self.person = person;
if (app.currentUser.authenticated()) {
self.aspectMembershipDropdown = new app.views.AspectMembership({person: new app.models.Person(person)});
self.aspectMembershipDropdown = new app.views.AspectMembership({person: personModel});
}
self.render();
self._populateHovercardWith(person);
if( !self.showMe ) {
// mouse has left element
return;
@ -118,23 +123,6 @@ app.views.Hovercard = app.views.Base.extend({
});
},
_populateHovercardWith: function(person) {
this.avatarLink.attr("href", this.href());
this.personLink.attr("href", this.href());
this.personLink.text(person.name);
this.personID.text(person.diaspora_id);
if (person.profile) {
this.avatar.attr("src", person.profile.avatar);
// set hashtags
this.hashtags.empty();
this.hashtags.html($(_.map(person.profile.tags, function(tag) {
return $("<a/>", {href: Routes.tag(tag)}).text("#" + tag)[0];
})));
}
},
_positionHovercard: function() {
var p_pos = this.parent.offset();
var p_height = this.parent.height();

View file

@ -19,7 +19,7 @@ app.views.Location = Backbone.View.extend({
var locator = new OSM.Locator();
locator.getAddress(function(address, latlng){
$(element).empty();
$("<input/>",
$("<input></input>",
{ id: "location_address",
value: address,
type: "text",

View file

@ -351,7 +351,7 @@ app.views.Publisher = Backbone.View.extend({
};
var previewPost = new app.views.PreviewPost({model: new app.models.Post(previewMessage)}).render().el;
return $("<div/>").append(previewPost).html();
return $("<div></div>").append(previewPost).html();
},
keyDown : function(evt) {

View file

@ -23,6 +23,7 @@
//= require markdown-it
//= require markdown-it-diaspora-mention
//= require markdown-it-for-inline
//= require markdown-it-footnote
//= require markdown-it-hashtag
//= require markdown-it-sanitizer
//= require markdown-it-sub

View file

@ -185,8 +185,8 @@
addNewComments: function(bottomBar, data) {
if ($(".comment-container", bottomBar).length === 0) {
$(".show-comments", bottomBar).after($("<div/>", {"class": "comment-container"}));
$(".comment-container", bottomBar).append($("<ul/>", {"class": "comments"}));
$(".show-comments", bottomBar).after($("<div></div>", {"class": "comment-container"}));
$(".comment-container", bottomBar).append($("<ul></ul>", {"class": "comments"}));
}
$(".comment-container .comments", bottomBar).append(data);
},
@ -212,8 +212,10 @@
var postGuid = bottomBar.parents(".stream-element").data("guid");
toggleReactionsLink.remove();
toggleReactionsLink = $("<a/>", {"class": "show-comments", "href": Routes.postComments(postGuid) + ".mobile"})
.html(text + "<i class='entypo-chevron-up'/>");
toggleReactionsLink = $("<a></a>", {
"class": "show-comments",
"href": Routes.postComments(postGuid) + ".mobile"
}).html(text + "<i class='entypo-chevron-up'/>");
parent.prepend(toggleReactionsLink);
bottomBar.removeClass("inactive").addClass("active");
}

View file

@ -33,7 +33,7 @@ $(document).ready(function(){
if(hiddenField.length > 0) { hiddenField.remove(); }
else {
$("#new_status_message").append(
$("<input/>", {
$("<input></input>", {
name: "services[]",
type: "hidden",
value: provider

View file

@ -55,8 +55,8 @@ body {
.tag:hover { background-color: desaturate(darken($link-color, 35%), 20%); }
#profile_container .profile_header {
#author_info #sharing_message.entypo-check { color: lighten($green, 10%); }
#sharing_message.entypo-check {
color: lighten($green, 10%);
}
#invitationsModal #email_invitation { border-top: 1px dashed $gray-light; }

View file

@ -55,7 +55,6 @@ $margin: 15px;
li {
border: 0;
border-radius: $thumbnail-size / 2;
height: $thumbnail-size;
margin: $margin 6px;
vertical-align: middle;

View file

@ -119,6 +119,19 @@
}
}
.dropdown-toggle {
align-items: center;
display: flex;
.user-name {
margin-right: 3px;
max-width: 250px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.user-menu-dropdown {
padding: 0;
}

View file

@ -33,6 +33,12 @@
text-overflow: ellipsis;
}
.status-container {
align-items: center;
display: flex;
margin-bottom: 5px;
}
#hovercard_dropdown_container {
overflow: visible !important; /* otherwise the aspect dropdown is cropped */
}
@ -53,10 +59,7 @@
.handle {
color: $text-grey;
line-height: 18px;
padding-top: 0px;
margin-top: 0px;
margin-bottom: 5px;
margin-right: 2px;
}
.btn-group.aspect-membership-dropdown { margin: 0 !important; }

View file

@ -5,6 +5,7 @@
}
.invitations-button { padding-left: 0; }
}
#people-stream {
.media, .media-body {
overflow: visible;
@ -28,6 +29,7 @@
.info { font-size: $font-size-small; }
}
}
#blocked_people {
.blocked-person {
border-bottom: 1px solid $border-grey;
@ -45,3 +47,13 @@
.btn-danger { margin-top: 9px; }
}
}
#sharing_message {
&.entypo-check {
color: darken($brand-success, 20%);
}
&.entypo-record {
color: $text-grey;
}
}

View file

@ -28,11 +28,6 @@
#sharing_message {
cursor: default;
font-size: 20px;
&.circle {
color: $text-grey;
&:before { content: '\26aa'; }
}
&.entypo-check { color: darken($brand-success,20%); }
}
.description {
margin-bottom: 20px;

View file

@ -10,7 +10,7 @@
{{ t "aspect_dropdown.toggle" count=aspectMembershipsLength }}
{{/if}}
</span>
<span class="caret" />
<span class="caret"></span>
</button>
<ul class="dropdown-menu aspect-membership pull-right" unselectable="on">
@ -29,8 +29,8 @@
>
<a>
<span class="status_indicator">
<i class="glyphicon glyphicon-ok" />
<i class="glyphicon glyphicon-refresh" />
<i class="glyphicon glyphicon-ok"></i>
<i class="glyphicon glyphicon-refresh"></i>
</span>
<span class="text">
{{name}}
@ -39,7 +39,7 @@
</li>
{{/each}}
{{#if dropdownMayCreateNewAspect}}
<li class="divider" />
<li class="divider"></li>
<li class="newItem add_aspect">
<a data-target="#newAspectModal" data-toggle="modal" href="#">
{{ t "aspects.create.add_a_new_aspect" }}
@ -48,5 +48,5 @@
{{/if}}
</ul>
{{#if dropdownMayCreateNewAspect}}
<div class="newAspectContainer"/>
<div class="newAspectContainer"></div>
{{/if}}

View file

@ -29,7 +29,7 @@
class="new-comment" id="new-comment-on-{{id}}" method="post">
<textarea class="comment-box form-control mention-textarea"
id="comment_text_on_{{id}}" name="text" rows="1" required placeholder="{{t "stream.comment"}}" />
id="comment_text_on_{{id}}" name="text" rows="1" required placeholder="{{t "stream.comment"}}"></textarea>
<div class="typeahead-mention-box-wrap">
<input class="typeahead-mention-box hidden" type="text">
</div>

View file

@ -11,7 +11,7 @@
{{#if canRemove}}
<a href="#" class="delete comment_delete" title="{{t "delete"}}">
<i class="entypo-trash"></i>
<a/>
</a>
{{else}}
<a href="#" data-type="Comment" class="comment_report" title="{{t "report.name"}}">
<i class="entypo-warning"></i>
@ -26,7 +26,7 @@
{{/linkToAuthor}}
-
<a href="/posts/{{parent.id}}#{{guid}}" class="permalink_comment">
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"/>
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"></time>
</a>
<a href="/posts/{{parent.guid}}#{{guid}}" class="permalink gray" title="{{t "stream.permalink"}}">
<i class="entypo-link"></i>

View file

@ -69,7 +69,7 @@
<ul class="nav navbar-nav navbar-right">
<li class="dropdown user-menu" id="user-menu">
<a href="{{urlTo "person" current_user.guid}}" class="dropdown-toggle hidden-xs hidden-sm" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="user-avatar pull-left">
<span class="user-avatar">
{{{personImage current_user "small"}}}
</span>
<span class="user-name">{{current_user.name}}</span>

View file

@ -1,15 +1,22 @@
{{#with person}}
<div id="hovercard">
<a class='person_avatar'>
<img class="avatar">
<a class="person_avatar" href="{{urlTo 'person' guid}}">
<img class="avatar" src="{{profile.avatar}}" />
</a>
<h4>
<a class="person"></a>
<a class="person" href="{{urlTo 'person' guid}}">{{name}}</a>
</h4>
<div class="handle"></div>
<div class="status-container">
<div class="handle">{{diaspora_id}}</div>
{{{sharingMessage this}}}
</div>
<div id="hovercard_dropdown_container"></div>
<div class="card-footer">
<div class="footer-container">
<div class="hashtags"></div>
<div class="hashtags">
{{fmtTags profile.tags}}
</div>
</div>
</div>
</div>
{{/with}}

View file

@ -27,10 +27,10 @@
<div class="footer-container">
{{#if status_message}}
<a href="{{urlTo "post" status_message.id}}">
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}" />
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"></time>
</a>
{{else}}
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}" />
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"></time>
{{/if}}
</div>
</div>

View file

@ -9,7 +9,7 @@
</td>
<td class="pod-title" title="{{host}}">{{host}}</td>
<td class="added">
<small><time datetime="{{created_at}}" title="{{localTime created_at}}" /></small>
<small><time datetime="{{created_at}}" title="{{localTime created_at}}"></time></small>
</td>
<td>
{{#if has_no_errors}}
@ -18,10 +18,10 @@
{{status_text}}
{{/if}}
{{#unless is_unchecked}}
<br><small>{{t 'admin.pods.last_check'}} <time datetime="{{checked_at}}" title="{{localTime checked_at}}" /></small>
<br><small>{{t 'admin.pods.last_check'}} <time datetime="{{checked_at}}" title="{{localTime checked_at}}"></time></small>
{{/unless}}
{{#if offline}}
| <small>{{t 'admin.pods.offline_since'}} <time datetime="{{offline_since}}" title="{{localTime offline_since}}" /></small>
| <small>{{t 'admin.pods.offline_since'}} <time datetime="{{offline_since}}" title="{{localTime offline_since}}"></time></small>
{{/if}}
{{#if is_unchecked}}<br><small class="text-muted">{{t 'admin.pods.no_info'}}</small>{{/if}}
<pre class="details" style="display: none;">

View file

@ -15,7 +15,7 @@
<span class="details gray">
-
<a href="/posts/{{id}}">
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}" />
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"></time>
</a>
</span>
</div>

View file

@ -40,11 +40,11 @@
<span class="post-time">
{{#if root}}
<a href="/posts/{{root.guid}}">
<time datetime="{{root.created_at}}" title="{{localTime root.created_at}}" />
<time datetime="{{root.created_at}}" title="{{localTime root.created_at}}"></time>
</a>
{{else}}
<a href="/posts/{{guid}}">
<time datetime="{{created_at}}" title="{{localTime created_at}}" />
<time datetime="{{created_at}}" title="{{localTime created_at}}"></time>
</a>
{{/if}}
</span>
@ -59,12 +59,12 @@
{{/if}}
</div>
{{#unless root}}
<div id="single-post-moderation" />
<div id="single-post-moderation"></div>
{{/unless}}
</div>
</div>
{{#unless root}}
<div id="single-post-actions" class="col-md-4" />
<div id="single-post-actions" class="col-md-4"></div>
{{/unless}}
</div>
{{#if location.lat}}
@ -92,13 +92,13 @@
<div class="post-context">
<span class="post-time">
<a href="/posts/{{guid}}">
<time datetime="{{created_at}}" title="{{localTime created_at}}" />
<time datetime="{{created_at}}" title="{{localTime created_at}}"></time>
</a>
</span>
<span id="single-post-moderation" />
<span id="single-post-moderation"></span>
</div>
</div>
<div id="single-post-actions" class="col-md-4" />
<div id="single-post-actions" class="col-md-4"></div>
</div>
{{/if}}
</div>

View file

@ -22,7 +22,7 @@
<span class="details gray post-timestamp">
-
<a href="/posts/{{id}}">
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}" />
<time class="timeago" data-original-title="{{{localTime created_at}}}" datetime="{{created_at}}"></time>
</a>
<a href="/posts/{{guid}}" class="permalink" title="{{t "stream.permalink"}}">

View file

@ -113,15 +113,6 @@ class PeopleController < ApplicationController
end
end
def retrieve_remote
if params[:diaspora_handle]
Workers::FetchWebfinger.perform_async(params[:diaspora_handle])
head :ok
else
head :unprocessable_entity
end
end
private
def find_person

View file

@ -1,17 +1,6 @@
# frozen_string_literal: true
module InterimStreamHackinessHelper
def commenting_disabled?(post)
return true unless user_signed_in?
if defined?(@commenting_disabled)
@commenting_disabled
elsif defined?(@stream)
!@stream.can_comment?(post)
else
false
end
end
##### These methods need to go away once we pass publisher object into the partial ######
def publisher_formatted_text
if params[:prefill].present?

View file

@ -90,6 +90,10 @@ class AccountMigration < ApplicationRecord
old_user && new_user
end
def includes_photo_migration?
remote_photo_path.present?
end
# We need to resend contacts of users of our pod for the remote new person so that the remote pod received this
# contact information from the authoritative source.
def dispatch_contacts
@ -122,13 +126,14 @@ class AccountMigration < ApplicationRecord
end
def update_all_references
update_remote_photo_path if remotely_initiated? && includes_photo_migration?
update_person_references
update_user_references if user_changed_id_locally?
end
def person_references
references = Person.reflections.reject {|key, _|
%w[profile owner notifications pod].include?(key)
%w[profile owner notifications pod account_deletion account_migration].include?(key)
}
references.map {|key, value|
@ -200,6 +205,20 @@ class AccountMigration < ApplicationRecord
.destroy_all
end
def update_remote_photo_path
Photo.where(author: old_person)
.update_all(remote_photo_path: remote_photo_path) # rubocop:disable Rails/SkipsModelValidations
return unless user_left_our_pod?
Photo.where(author: old_person).find_in_batches do |batch|
batch.each do |photo|
photo.processed_image = nil
photo.unprocessed_image = nil
logger.warn "Error cleaning up photo #{photo.id}" unless photo.save
end
end
end
def update_person_references
logger.debug "Updating references from person id=#{old_person.id} to person id=#{new_person.id}"
eliminate_person_duplicates

View file

@ -4,7 +4,7 @@ class Block < ApplicationRecord
belongs_to :person
belongs_to :user
delegate :name, to: :person, prefix: true
delegate :name, :diaspora_handle, to: :person, prefix: true
validates :person_id, uniqueness: {scope: :user_id}

View file

@ -57,6 +57,9 @@ class Person < ApplicationRecord
has_many :mentions, :dependent => :destroy
has_one :account_deletion, dependent: :destroy
has_one :account_migration, foreign_key: :old_person_id, dependent: :nullify, inverse_of: :old_person
validate :owner_xor_pod
validate :other_person_with_same_guid, on: :create
validates :profile, :presence => true

View file

@ -1,69 +1,78 @@
# frozen_string_literal: true
class Services::Tumblr < Service
MAX_CHARACTERS = 1000
module Services
class Tumblr < Service
MAX_CHARACTERS = 1000
def provider
"tumblr"
end
def consumer_key
AppConfig.services.tumblr.key
end
def consumer_secret
AppConfig.services.tumblr.secret
end
def post(post, url='')
body = build_tumblr_post(post, url)
user_info = JSON.parse(client.get("/v2/user/info").body)
blogs = user_info["response"]["user"]["blogs"]
primaryblog = blogs.find {|blog| blog["primary"] } || blogs[0]
tumblr_ids = {}
blogurl = URI.parse(primaryblog["url"])
resp = client.post("/v2/blog/#{blogurl.host}/post", body)
if resp.code == "201"
tumblr_ids[blogurl.host.to_s] = JSON.parse(resp.body)["response"]["id"]
def provider
"tumblr"
end
post.tumblr_ids = tumblr_ids.to_json
post.save
end
def post(post, url="") # rubocop:disable Metrics/AbcSize
return true if post.nil? # return if post is deleted while waiting in queue
def build_tumblr_post(post, url)
{ :type => 'text', :format => "markdown", :body => tumblr_template(post, url) }
end
body = build_tumblr_post(post, url)
user_info = JSON.parse(client.get("/v2/user/info").body)
blogs = user_info["response"]["user"]["blogs"]
primaryblog = blogs.find {|blog| blog["primary"] } || blogs[0]
def tumblr_template(post, url)
photo_html = post.photos.map {|photo|
"![photo](#{photo.url(:scaled_full)})\n\n"
}.join
tumblr_ids = {}
"#{photo_html}#{post.message.html(mentioned_people: [])}\n\n[original post](#{url})"
end
blogurl = URI.parse(primaryblog["url"])
tumblr_ids[blogurl.host.to_s] = request_to_external_blog(blogurl, body)
def post_opts(post)
{tumblr_ids: post.tumblr_ids} if post.tumblr_ids.present?
end
def delete_from_service(opts)
logger.debug "event=delete_from_service type=tumblr sender_id=#{user_id} tumblr_ids=#{opts[:tumblr_ids]}"
tumblr_posts = JSON.parse(opts[:tumblr_ids])
tumblr_posts.each do |blog_name, post_id|
delete_from_tumblr(blog_name, post_id)
post.tumblr_ids = tumblr_ids.to_json
post.save
end
end
def delete_from_tumblr(blog_name, service_post_id)
client.post("/v2/blog/#{blog_name}/post/delete", "id" => service_post_id)
end
def post_opts(post)
{tumblr_ids: post.tumblr_ids} if post.tumblr_ids.present?
end
private
def client
@consumer ||= OAuth::Consumer.new(consumer_key, consumer_secret, :site => 'http://api.tumblr.com')
@client ||= OAuth::AccessToken.new(@consumer, self.access_token, self.access_secret)
def delete_from_service(opts)
logger.debug "event=delete_from_service type=tumblr sender_id=#{user_id} tumblr_ids=#{opts[:tumblr_ids]}"
tumblr_posts = JSON.parse(opts[:tumblr_ids])
tumblr_posts.each do |blog_name, post_id|
delete_from_tumblr(blog_name, post_id)
end
end
def build_tumblr_post(post, url)
{type: "text", format: "markdown", body: tumblr_template(post, url), tags: tags(post), native_inline_images: true}
end
private
def client
@consumer ||= OAuth::Consumer.new(consumer_key, consumer_secret, site: "https://api.tumblr.com")
@client ||= OAuth::AccessToken.new(@consumer, access_token, access_secret)
end
def tumblr_template(post, url)
photo_html = post.photos.map {|photo| "![photo](#{photo.url(:scaled_full)})\n\n" }.join
"#{photo_html}#{post.message.html(mentioned_people: [])}\n\n[original post](#{url})"
end
def tags(post)
post.tags.pluck(:name).join(",").to_s
end
def delete_from_tumblr(blog_name, service_post_id)
client.post("/v2/blog/#{blog_name}/post/delete", "id" => service_post_id)
end
def request_to_external_blog(blogurl, body)
resp = client.post("/v2/blog/#{blogurl.host}/post", body)
JSON.parse(resp.body)["response"]["id"] if resp.code == "201"
end
def consumer_key
AppConfig.services.tumblr.key
end
def consumer_secret
AppConfig.services.tumblr.secret
end
end
end

View file

@ -36,10 +36,8 @@ class User < ApplicationRecord
before_validation :set_current_language, :on => :create
before_validation :set_default_color_theme, on: :create
validates :username, :presence => true, :uniqueness => true
validates_format_of :username, :with => /\A[A-Za-z0-9_]+\z/
validates_length_of :username, :maximum => 32
validates_exclusion_of :username, :in => AppConfig.settings.username_blacklist
validates :username, presence: true, uniqueness: true, format: {with: /\A[A-Za-z0-9_.\-]+\z/},
length: {maximum: 32}, exclusion: {in: AppConfig.settings.username_blacklist}
validates_inclusion_of :language, :in => AVAILABLE_LANGUAGE_CODES
validates :color_theme, inclusion: {in: AVAILABLE_COLOR_THEMES}, allow_blank: true
validates_format_of :unconfirmed_email, :with => Devise.email_regexp, :allow_blank => true
@ -444,8 +442,13 @@ class User < ApplicationRecord
aq = self.aspects.create(:name => I18n.t('aspects.seed.acquaintances'))
if AppConfig.settings.autofollow_on_join?
default_account = Person.find_or_fetch_by_identifier(AppConfig.settings.autofollow_on_join_user)
self.share_with(default_account, aq) if default_account
begin
default_account = Person.find_or_fetch_by_identifier(AppConfig.settings.autofollow_on_join_user)
share_with(default_account, aq)
rescue DiasporaFederation::Discovery::DiscoveryError
logger.warn "Error auto-sharing with #{AppConfig.settings.autofollow_on_join_user}
fix autofollow_on_join_user in configuration."
end
end
aq
end

View file

@ -105,15 +105,19 @@ class NodeInfoPresenter
end
def local_posts
@local_posts ||= Post.where(type: "StatusMessage")
.joins(:author)
.where("owner_id IS NOT null")
.count
Rails.cache.fetch("NodeInfoPresenter/local_posts", expires_in: 1.hour) do
@local_posts ||= Post.where(type: "StatusMessage")
.joins(:author)
.where.not(people: {owner_id: nil})
.count
end
end
def local_comments
@local_comments ||= Comment.joins(:author)
.where("owner_id IS NOT null")
.count
Rails.cache.fetch("NodeInfoPresenter/local_comments", expires_in: 1.hour) do
@local_comments ||= Comment.joins(:author)
.where.not(people: {owner_id: nil})
.count
end
end
end

View file

@ -24,7 +24,7 @@ class PersonPresenter < BasePresenter
end
def hovercard
base_hash_with_contact.merge(profile: ProfilePresenter.new(profile).for_hovercard)
full_hash.merge(profile: ProfilePresenter.new(profile).for_hovercard)
end
def metas_attributes

View file

@ -2,6 +2,6 @@
module Export
class AspectSerializer < ActiveModel::Serializer
attributes :name, :chat_enabled
attributes :name
end
end

View file

@ -10,7 +10,8 @@ module Export
:show_community_spotlight_in_stream,
:auto_follow_back,
:auto_follow_back_aspect,
:strip_exif
:strip_exif,
:blocks
has_one :profile, serializer: FederationEntitySerializer
has_many :contact_groups, each_serializer: Export::AspectSerializer
has_many :contacts, each_serializer: Export::ContactSerializer
@ -45,6 +46,10 @@ module Export
}
end
def blocks
object.blocks.map(&:person_diaspora_handle)
end
%i[comments likes poll_participations].each {|collection|
delegate collection, to: :person
}

View file

@ -5,11 +5,26 @@
# are used as for federation messages generation.
class FederationEntitySerializer < ActiveModel::Serializer
include SerializerPostProcessing
include Diaspora::Logging
private
def modify_serializable_object(hash)
hash.merge(entity.to_json)
rescue DiasporaFederation::Entities::Relayable::AuthorPrivateKeyNotFound => e
# The author of this relayable probably migrated from this pod to a different pod,
# and we neither have the signature nor the new private key to generate a valid signature.
# But we can use the private key of the old user to generate the signature it had when this entity was created
old_person = AccountMigration.joins(:old_person)
.where("new_person_id = ? AND people.owner_id IS NOT NULL", object.author_id)
.first.old_person
if old_person
logger.info "Using private key of #{old_person.diaspora_handle} to export: #{e.message}"
object.author = old_person
hash.merge(entity.to_json)
else
logger.warn "Skip entity for export because #{e.class}: #{e.message}"
end
end
def entity

View file

@ -9,7 +9,7 @@ class ExportedUser < SecureUploader
"uploads/users"
end
def extension_whitelist
def extension_allowlist
%w[gz]
end

View file

@ -11,7 +11,7 @@ class ProcessedImage < CarrierWave::Uploader::Base
"uploads/images"
end
def extension_whitelist
def extension_allowlist
%w[jpg jpeg png gif]
end

View file

@ -17,7 +17,7 @@ class UnprocessedImage < CarrierWave::Uploader::Base
"uploads/images"
end
def extension_whitelist
def extension_allowlist
%w[jpg jpeg png gif]
end

View file

@ -1,7 +1,7 @@
<%= t('devise.mailer.welcome', :email => @resource.email) %>
<%= t('devise.mailer.welcome', username: @resource.username) %>
<%= t('.you_can_confirm') %>
[<%= t('.confirm') %>][1]
[1]: <%= confirmation_url(@resource, :confirmation_token => @token) %>
[1]: <%= confirmation_url(@resource, confirmation_token: @token) %>

View file

@ -1,10 +1,12 @@
<%= t('devise.mailer.hello', :email => @resource.email) %>
<%= t('devise.mailer.hello', username: @resource.username) %>
<%= t('.someone_requested') %>
[<%= t('.change') %>][1]
[1]: <%= edit_password_url(@resource, :reset_password_token => @token) %>
[1]: <%= edit_password_url(@resource, reset_password_token: @token) %>
<%= t('.then_connect', username: @resource.username) %>
<%= t('.wont_change') %>

View file

@ -1,4 +1,4 @@
<%= t('devise.mailer.hello', :email => @resource.email) %>
<%= t('devise.mailer.hello', username: @resource.username) %>
<%= t('.account_locked') %>
@ -6,4 +6,4 @@
[<%= t('.unlock') %>][1]
[1]: <%= unlock_url(@resource, :unlock_token => @token) %>
[1]: <%= unlock_url(@resource, unlock_token: @token) %>

View file

@ -4,5 +4,5 @@
.stream
= render partial: "shared/stream_element",
locals: {post: post, commenting_disabled: commenting_disabled?(post), expanded_info: true}
locals: {post: post, expanded_info: true}

View file

@ -32,7 +32,7 @@
placeholder: t("registrations.new.username"),
title: t("registrations.new.enter_username"),
required: true,
pattern: "[A-Za-z0-9_]+",
pattern: "[A-Za-z0-9_.\-]+",
aria: {labelledby: "usernameLabel"}
- if mobile

View file

@ -5,7 +5,7 @@
wiki: link_to(t("registrations.closed.another_pod"), "https://diasporafoundation.org/getting_started/sign_up"))
!= t("registrations.closed.find_pods",
poduptime: link_to("Poduptime", "https://diaspora.podupti.me/"))
fediverse_observer: link_to("Fediverse Observer", "https://diaspora.fediverse.observer/"))
!= t("registrations.closed.other_questions",
wiki: link_to("Wiki", "https://wiki.diasporafoundation.org/Choosing_a_pod"))

View file

@ -17,7 +17,7 @@
- else
= t("services.index.not_logged_in")
= link_to(t("services.index.connect"), "/auth/#{provider}")
= link_to(t("services.index.connect"), "/auth/#{provider}", method: :post)
- else
.well

View file

@ -7,3 +7,5 @@
%li= link_to t("layouts.application.switch_to_touch_optimized_mode"), toggle_mobile_path
- if AppConfig.settings.terms.enable?
%li= link_to t("_terms"), terms_path
- unless AppConfig.admins.podmin_email.nil?
%li= mail_to AppConfig.admins.podmin_email, t("_podmin_mail")

View file

@ -124,7 +124,7 @@
- if service_unconnected?(service)
= link_to(content_tag(:div, nil,
class: "social-media-logos-#{service.to_s.downcase}-24x24",
title: service.to_s.titleize), "/auth/#{service}")
title: service.to_s.titleize), "/auth/#{service}", method: :post)
.section.collapsed
.title

View file

@ -12,7 +12,9 @@ module Workers
person = Person.find_or_fetch_by_identifier(account)
# also, schedule to fetch a few public posts from that person
Diaspora::Fetcher::Public.queue_for(person) unless person.nil?
Diaspora::Fetcher::Public.queue_for(person)
rescue DiasporaFederation::Discovery::DiscoveryError
# Ignored
end
end
end

View file

@ -26,6 +26,7 @@ module Workers
DiasporaFederation::Salmon::InvalidEncoding,
Diaspora::Federation::AuthorIgnored,
Diaspora::Federation::InvalidAuthor,
Diaspora::Federation::RecipientClosed,
# TODO: deprecated
DiasporaFederation::Salmon::MissingMagicEnvelope,
DiasporaFederation::Salmon::MissingAuthor,

View file

@ -4,7 +4,7 @@
defaults:
version:
number: "0.7.15.0" # Do not touch unless doing a release, do not backport the version number that's in master
number: "0.7.16.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/"

View file

@ -27,7 +27,7 @@ Rails.application.configure do
config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
config.assets.js_compressor = :terser
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.

View file

@ -8,9 +8,9 @@
ENV['SSL_CERT_FILE'] = AppConfig.environment.certificate_authorities.get
CarrierWave.configure do |config|
if !Rails.env.test? && AppConfig.environment.s3.enable?
config.fog_provider = "fog/aws"
require "carrierwave/storage/fog"
config.storage = :fog
config.cache_storage = :file
config.cache_dir = Rails.root.join('tmp', 'uploads').to_s
config.fog_credentials = {
provider: 'AWS',

View file

@ -103,7 +103,9 @@ DiasporaFederation.configure do |config|
end
on :receive_entity do |entity, sender, recipient_id|
Person.by_account_identifier(sender).pod.try(:schedule_check_if_needed)
sender_person = Person.by_account_identifier(sender)
sender_person.pod&.schedule_check_if_needed
Diaspora::Federation::Receive.handle_closed_recipient(sender_person, User.find(recipient_id)) if recipient_id
case entity
when DiasporaFederation::Entities::AccountDeletion

View file

@ -3,4 +3,6 @@
JsRoutes.setup do |config|
config.camel_case = true
config.compact = true
config.module_type = nil
config.namespace = "Routes"
end

View file

@ -7,19 +7,22 @@
ar:
devise:
confirmations:
confirmed: "أُكّد حسابك بنجاح. لقد ولجت."
confirmed: "أُكّد بريدك الالكتروني بنجاح."
new:
resend_confirmation: "أعد إرسال إرشادات التّأكيد"
send_instructions: "سيصلك بريد إلكترونيّ قريبًا فيه إرشادات تأكيد الحساب."
send_paranoid_instructions: "ستصلك رسالة لتأكيد في بريدك الإلكتوني إن كان بريدك متواجدا في قاعدة البيانات"
failure:
already_authenticated: "ولجت بالفعل"
inactive: "لم يُفعّل حسابك بعد."
invalid: "اسم المستخدم أو كلمة مروره غير صالحة."
invalid: "%{authentication_keys} أو كلمة مروره غير صالحة."
invalid_token: "رمز الاستيثاق غير صالح."
last_attempt: "آخر محاولة قبل إقفال حسابك."
locked: "حسابك مقفول."
not_found_in_database: "البريد الإلكترونيّ أو كلمة المرور غير صالحة."
not_found_in_database: "%{authentication_keys} أو كلمة المرور غير صالحة."
timeout: "انتهت جلستك، فضلًا لِج مجدّدًا للمتابعة."
unauthenticated: "عليك الولوج أو التسجيل للمتابعة."
unconfirmed: "عليك تأكيد حسابك للمتابعة."
unconfirmed: "عليك تأكيد بريدك الالكتروني للمتابعة."
invitations:
invitation_token_invalid: "نأسف! رمز الدّعوة غير صالح."
send_instructions: "أُرسلت الدّعوة."
@ -29,11 +32,13 @@ ar:
confirm: "أكّد حسابي"
subject: "إرشادات التّأكيد"
you_can_confirm: "يمكنك تأكيد حسابك عبر الوصلة الآتية:"
hello: "أهلًا %{email}!"
hello: "أهلًا %{username}!"
inviter:
accept_at: ", %{url}, يمكنك قبولها عبر الرابط التالي"
has_invited_you: "%{name} يدعوك للإنضمام إلى دياسبرا"
have_invited_you: "دعاك %{names} للانضمام إلى دياسبرا*"
password_change:
subject: "غُيِّرت كلمة المرور"
reset_password_instructions:
change: "غيّر كلمة المرور"
ignore: "إن لم تكن أنت فتجاهل هذا البريد رجاءً."
@ -45,7 +50,10 @@ ar:
click_to_unlock: "انقر الوصلة أدناه لفكّ الحساب:"
subject: "إرشادات فكّ القفل"
unlock: "فكّ حسابي"
welcome: "مرحبًا %{email}!"
welcome: "مرحبًا %{username}!"
omniauth_callbacks:
failure: "لا يمكنك الاستيثاق من %{kind} بسبب \"%{reason}\"."
success: "استثقت من حساب %{kind} بنجاح"
passwords:
edit:
change_password: "غيّر كلمة المرور"
@ -56,13 +64,21 @@ ar:
forgot_password: "أنسيت كلمة المرور؟"
reset_password: "صفّر كلمة المرور"
send_password_instructions: "أرسل لي إرشادات تصفير كلمة المرور"
no_token: "لا يمكن الوصول لهذه الصفحة إلا باستخدام رابط استعادة لكمة السر. إذا كنت تريد استعادة كلمة السر، تأكد من استخدامك للرابط كاملا."
send_instructions: "سيصلك بريد إلكترونيّ قريبًا فيه إرشادات تصفير كلمة المرور."
send_paranoid_instructions: "اذا كان بريدك الالكتروني موجودا في قاعدة البيانات ستصلك رسالة في بضع دقائق تحوي رابط استعادة كلمة السر."
updated: "تغيّرت كلمة المرور بنجاح. لقد ولجت."
updated_not_active: "غُيرت كلمة المرور بنجاح."
registrations:
destroyed: "الوداع! حُذف حسابك بنجاح. نأمل أن نراك قريبًا."
signed_up: "لقد سجّلت بنجاح. إن طلبت تأكيدًا فقد أُرسل إلى بريدك."
updated: "لقد حدّثت حسابك بنجاح."
signed_up_but_inactive: "سُجلت بنجاح. لكن لا يمكنك الولوج حتى ينشط حسابك."
signed_up_but_locked: "سُجلت بنجاح. لكن لا يمكنك الولوج لأن حسابك مقفل."
signed_up_but_unconfirmed: "استخدم الرابط الذي أُرسل لبريدك الإلكتروني من أجل تفعيل حسابك."
update_needs_confirmation: "حُدث حسابك بنجاح. استخدم الرابط الذي أرسل اليك من أجل تأكيد بريدك الإلكتروني الجديد."
updated: "حُدّثت حسابك بنجاح."
sessions:
already_signed_out: "خرجت بنجاح."
new:
login: "لِج"
modern_browsers: "تدعم المتصفحات الحديثة فقط."
@ -84,9 +100,19 @@ ar:
new:
resend_unlock: "أعد إرسال إرشادات فكّ القفل"
send_instructions: "سيصلك بريد إلكترونيّ قريبًا فيه إرشادات لفكّ قفل الحساب."
unlocked: "فُكّ قفل الحساب بنجاح. لقد ولجت."
send_paranoid_instructions: "اذا كان حسابك موجودا، سيصلك بريد في بضع دقائق يحتوي ارشادات فك قفل حسابك."
unlocked: "فُكّ قفل الحساب بنجاح. لج للمتابعة."
errors:
messages:
already_confirmed: "تم التأكيد مسبقا"
confirmation_period_expired: "يجب أن يُأكد ضمن %{period}. أطلب واحد جديد"
expired: "انتهت صلاحيته. اطلب واحد جديد"
not_found: "غير موجود"
not_locked: "لم يكن مغلقا"
not_locked: "ليس مُقفلا"
not_saved:
few: "%{count} أخطاء منعوا حفظ %{resource}:"
many: "%{count} خطأ منعوا حفظ %{resource}:"
one: "خطأ منع حفظ %{resource}:"
other: "%{count} خطأ منع حفظ %{resource}:"
two: "خطآن منعا حفظ %{resource}:"
zero: "بدون أخطاء:"

View file

@ -14,7 +14,7 @@ art-nvi:
unauthenticated: "Ngal kin 'ivastengyem ayoeti fu fpxäkim ayoe fte salew Diasporaru."
unconfirmed: "Ngal kin stiveftxaw ngeyä Diasporati fte fpxäkim."
mailer:
hello: "Kaltxì %{email}!"
hello: "Kaltxì %{username}!"
inviter:
has_invited_you: "%{name}"
have_invited_you: "%{names} polawm ngati txo säpung Diasporaru"
@ -22,7 +22,7 @@ art-nvi:
change: "Latem oeyä ftemlì'u"
someone_requested: "Tsengeäo lu fte nga tsun livatem ngeyä ftemlì'u talun tuteo pìmawm ayoe txo tìng fì'uti ngaur."
subject: "aysänume fte zeyko oeyä ftemlì'uti"
welcome: "Zola'u nìprrte, ma %{email}!"
welcome: "Zola'u nìprrte, ma %{username}!"
passwords:
edit:
change_password: "Leykatem oeyä ftemlì'ut"

View file

@ -28,7 +28,7 @@ bg:
confirm: "Потвърждаване на акаунта"
subject: "Инструкции за потвърждаване"
you_can_confirm: "Можете да потвърдите акаунта си чрез долната връзка:"
hello: "Здравейте %{email}!"
hello: "Здравейте %{username}!"
inviter:
accept_at: "от %{url}, можете да приемете чрез връзката по-долу в писмото."
has_invited_you: "%{name}"
@ -44,7 +44,7 @@ bg:
click_to_unlock: "За отключване на акаунта кликнете върху долната връзка:"
subject: "Инструкции за отключване"
unlock: "Отключване на акаунта"
welcome: "Добре дошли %{email}!"
welcome: "Добре дошли %{username}!"
passwords:
edit:
change_password: "Промяна на паролата"

View file

@ -29,7 +29,7 @@ br:
confirm: "Kadarnaat ma c'hont"
subject: "Titouroù kadarnaat"
you_can_confirm: "Gallout a rit kadarnaat ho kont gant al liamm dindan:"
hello: "Demat deoc'h, %{email}!"
hello: "Demat deoc'h, %{username}!"
inviter:
accept_at: "e %{url}, gallout a rit e zegemer dre al liamm a-is."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ br:
click_to_unlock: "Klikit war al liamm dindan evit dibrennañ ho kont:"
subject: "Titouroù dibrennañ"
unlock: "Dibrennañ ma c'hont"
welcome: "Donemat deoc'h, %{email}!"
welcome: "Donemat deoc'h, %{username}!"
passwords:
edit:
change_password: "Cheñch ma ger-tremen"

View file

@ -29,7 +29,7 @@ bs:
confirm: "Potvrdi moj račun"
subject: "Uputstva za potvrdu"
you_can_confirm: "Možete potvrditi svoj račun sa vezom ispod:"
hello: "Zdravo %{email}!"
hello: "Zdravo %{username}!"
inviter:
accept_at: "na %{url}, možete prihvatiti vezom ispod."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ bs:
click_to_unlock: "Kliknite na vezu ispod da bi otključali vaš račun."
subject: "Otključaj Uputstva"
unlock: "Otključaj moj račun"
welcome: "Dobrodošli %{email}!"
welcome: "Dobrodošli %{username}!"
passwords:
edit:
change_password: "Promjeni moju šifru"

View file

@ -28,7 +28,7 @@ ca:
confirm: "Confirma el meu compte"
subject: "Instruccions per a la confirmació"
you_can_confirm: "Podeu confirmar el vostre compte mitjançant l'enllaç següent:"
hello: "Hola, %{email}!"
hello: "Hola, %{username}!"
inviter:
accept_at: "a %{url}, podeu acceptar-ho mitjançant l'enllaç següent."
has_invited_you: "%{name}"
@ -44,7 +44,7 @@ ca:
click_to_unlock: "Feu clic a l'enllaç següent per desblocar el vostre compte:"
subject: "Instruccions per al desblocatge"
unlock: "Desbloca el meu compte"
welcome: "Benvingut/da, %{email}!"
welcome: "Benvingut/da, %{username}!"
passwords:
edit:
change_password: "Canvia la contrasenya"

View file

@ -32,7 +32,7 @@ cs:
confirm: "Potvrdit můj účet"
subject: "Informace o potvrzení"
you_can_confirm: "Váš účet můžete potvrdit kliknutím na tento odkaz:"
hello: "Zdravím %{email}!"
hello: "Zdravím %{username}!"
inviter:
accept_at: "na %{url}, přijmout pozvání můžete pomocí odkazu níže."
has_invited_you: "%{name}"
@ -50,7 +50,7 @@ cs:
click_to_unlock: "Kliknutím na uvedený odkaz odemknete svůj účet:"
subject: "Instrukce k odemknutí účtu."
unlock: "Odemknout můj účet"
welcome: "Vítej %{email}!"
welcome: "Vítej %{username}!"
omniauth_callbacks:
failure: "Nelze vás autentikovat z %{kind}, protože \"%{reason}\""
success: "Úspěšně jsme vás ověřili z účtu %{kind}."

View file

@ -25,13 +25,13 @@ cy:
mailer:
confirmation_instructions:
subject: "Cyfarwyddiadau Cadarnhad"
hello: "Helo %{email}!"
hello: "Helo %{username}!"
reset_password_instructions:
change: "Newid y cyfrinair"
unlock_instructions:
subject: "Cyfarwyddiadau i ddatgloi"
unlock: "Datgloi fy nghyfrif"
welcome: "Croeso %{email}!"
welcome: "Croeso %{username}!"
passwords:
edit:
change_password: "Newid fy nghyfrinair"

View file

@ -32,7 +32,7 @@ da:
confirm: "Bekræft min konto"
subject: "Bekræftelsesinstruktioner"
you_can_confirm: "Du kan bekræfte din konto via nedenstående link:"
hello: "Hej %{email}!"
hello: "Hej %{username}!"
inviter:
accept_at: "på %{url}, du kan acceptere ved at følge linket nedenunder."
has_invited_you: "%{name}"
@ -44,13 +44,14 @@ da:
ignore: "Hvis du ikke har anmodet om dette, bedes du ignorere denne e-mail."
someone_requested: "Nogen har anmodet om et link til at ændre din adgangskode. Hvis det var dig, kan du gøre dette via linket nedenfor."
subject: "Instruktioner til nulstilling af adgangskode"
then_connect: "Når du har lavet en ny adgangskode, vil du være i stand til at logge ind på Diaspora* igen ved hjælp af dit brugernavn \"%{username}\" og din nye adgangskode"
wont_change: "Din adgangskode vil ikke blive ændret før du klikker på linket ovenfor og opretter en ny."
unlock_instructions:
account_locked: "Din konto er blevet låst på grund af en stor mængde mislykkede log ind forsøg."
click_to_unlock: "Klik på linket nedenfor for at aktivere din konto:"
subject: "Aktiver instruktioner"
unlock: "Aktiver min konto"
welcome: "Velkommen %{email}!"
welcome: "Velkommen %{username}!"
omniauth_callbacks:
failure: "Kunne ikke godkende dig fra %{kind} fordi \"%{reason}\"."
success: "Godkendelse modtaget fra %{kind} kontoen."

View file

@ -32,7 +32,7 @@ de:
confirm: "Mein Konto bestätigen"
subject: "Bestätigung deines diaspora*-Kontos"
you_can_confirm: "Du kannst dein Konto über den nachfolgenden Link bestätigen:"
hello: "Hallo %{email}!"
hello: "Hallo %{username}!"
inviter:
accept_at: "unter %{url}, kannst du sie über den untenstehenden Link akzeptieren."
has_invited_you: ""
@ -44,13 +44,14 @@ de:
ignore: "Wenn du dies nicht angefordert hast, ignoriere bitte diese E-Mail."
someone_requested: "Jemand hat einen Link angefordert, um dein Kennwort zu ändern. Falls du das warst, kannst du das durch den unten aufgeführten Link tun."
subject: "Setze dein Kenwort zurück"
then_connect: "Nachdem du ein neues Passwort eingegeben hast, kannst du dich wieder mit deinem Benutzernamen \"%{username}\" und deinem neuen Passwort in diaspora* einloggen"
wont_change: "Dein Kennwort bleibt unverändert, bis du es über den Link änderst und ein neues erstellst."
unlock_instructions:
account_locked: "Dein Konto wurde aufgrund von zu vielen fehlgeschlagenen Anmeldeversuchen gesperrt."
click_to_unlock: "Folge dem unten aufgeführten Link, um dein Konto zu entsperren:"
subject: "Anweisungen zum Entsperren"
unlock: "Mein Konto entsperren"
welcome: "Willkommen %{email}!"
welcome: "Willkommen %{username}!"
omniauth_callbacks:
failure: "Konnte dich nicht mittels %{kind} authentifizieren, denn „%{reason}“."
success: "Erfolgreich authentifiziert mittels %{kind}-Konto."

View file

@ -32,7 +32,7 @@ de_formal:
confirm: "Mein Konto bestätigen"
subject: "Bestätigung Ihres diaspora*-Kontos"
you_can_confirm: "Sie können Ihr Konto über den nachfolgenden Link bestätigen:"
hello: "Hallo %{email}!"
hello: "Hallo %{username}!"
inviter:
accept_at: "unter %{url}, können Sie sie über den untenstehenden Link akzeptieren."
has_invited_you: "%{name}"
@ -44,13 +44,14 @@ de_formal:
ignore: "Wenn Sie dies nicht angefordert haben, ignorieren Sie bitte diese E-Mail."
someone_requested: "Jemand hat einen Link angefordert, um Ihr Passwort zu ändern. Wenn Sie das waren, können Sie das durch den unten aufgeführten Link tun."
subject: "Setzen Sie Ihr Passwort zurück"
then_connect: "Nachdem Sie ein neues Passwort eingegeben haben, können Sie sich wieder mit Ihrem Benutzernamen \"%{username}\" und Ihrem neuen Passwort in diaspora* einloggen"
wont_change: "Ihr Passwort bleibt unverändert, bis Sie es über den Link ändern und ein neues erstellen."
unlock_instructions:
account_locked: "Ihr Konto wurde aufgrund von zu vielen fehlgeschlagenen Anmeldeversuchen gesperrt."
click_to_unlock: "Folgen Sie dem unten aufgeführten Link, um Ihr Konto zu entsperren:"
subject: "Anweisungen zum Entsperren"
unlock: "Mein Konto entsperren"
welcome: "Willkommen %{email}!"
welcome: "Willkommen %{username}!"
omniauth_callbacks:
failure: "Konnte Sie nicht mittels %{kind} authentifizieren, denn „%{reason}”."
success: "Erfolgreich authentifiziert mittels %{kind}-Konto."

View file

@ -4,7 +4,7 @@
de-moo:
de_moo:
devise:
confirmations:
confirmed: "Deine E-Mail-Adresse wurde erfolgreich bestätigt."
@ -32,7 +32,7 @@ de-moo:
confirm: "Mein Konto bestätigen"
subject: "Bestätigung deines diaspora*-Kontos"
you_can_confirm: "Du kannst dein Konto über den nachfolgenden Link bestätigen:"
hello: "Hallo %{email}!"
hello: "Hallo %{username}!"
inviter:
accept_at: "unter %{url}, kannst du sie über den untenstehenden Link akzeptieren."
has_invited_you: "%{name}"
@ -44,13 +44,14 @@ de-moo:
ignore: "Wenn du dies nicht angefordert hast, ignoriere bitte diese E-Mail."
someone_requested: "Jemand hat einen Link angefordert, um dein Kennwort zu ändern. Falls du das warst, kannst du das durch den unten aufgeführten Link tun."
subject: "Setze dein Passwort zurück"
then_connect: "Nachdem du ein neues Passwort eingegeben hast, kannst du dich wieder mit deinem Benutzernamen \"%{username}\" und deinem neuen Passwort in diaspora* einloggen"
wont_change: "Dein Kennwort bleibt unverändert, bis du es über den Link änderst und ein neues erstellst."
unlock_instructions:
account_locked: "Dein Konto wurde aufgrund von zu vielen fehlgeschlagenen Anmeldeversuchen gesperrt."
click_to_unlock: "Folge dem unten aufgeführten Link, um dein Konto zu entsperren:"
subject: "Anweisungen zum Entsperren"
unlock: "Mein Konto entsperren"
welcome: "Willkommen %{email}!"
welcome: "Willkommen %{username}!"
omniauth_callbacks:
failure: "Konnte dich nicht mittels %{kind} authentifizieren, denn „%{reason}“."
success: "Erfolgreich authentifiziert mittels %{kind}-Konto."

View file

@ -29,7 +29,7 @@ el:
confirm: "Επιβεβαίωση του λογαριασμού μου"
subject: "Οδηγίες επιβεβαίωσης"
you_can_confirm: "Μπορείτε να επιβεβαιώσετε τον λογαριασμό σας μέσω του παρακάτω συνδέσμου:"
hello: "Γειά σου %{email}!"
hello: "Γειά σου %{username}!"
inviter:
accept_at: "στο %{url}, μπορείτε να το αποδεχτείτε μέσω του παρακάτω συνδέσμου."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ el:
click_to_unlock: "Κάντε κλικ στον παρακάτω σύνδεσμο για να ξεκλειδώσετε το λογαριασμό σας:"
subject: "Οδηγίες Ξεκλειδώματος"
unlock: "Ξεκλείδωμα του λογαριασμού μου"
welcome: "Καλώς ήρθατε %{email}!"
welcome: "Καλώς ήρθατε %{username}!"
passwords:
edit:
change_password: "Αλλαγή του κωδικού μου"

View file

@ -30,6 +30,7 @@ en:
someone_requested: Someone has requested a link to change your password. If
it was you, you can do this through the link below.
change: Change my password
then_connect: After setting a new password, you will be able to sign into diaspora* again using your username "%{username}" and your new password
wont_change: Your password won't change until you access the link above and
create a new one.
ignore: If you didn't request this, please ignore this email.
@ -41,8 +42,8 @@ en:
unlock: Unlock my account
password_change:
subject: Password Changed
welcome: Welcome %{email}!
hello: Hello %{email}!
welcome: Welcome %{username}!
hello: Hello %{username}!
inviter:
has_invited_you: "%{name}"
have_invited_you: "%{names} have invited you to join diaspora*"

View file

@ -27,7 +27,7 @@ en_1337:
confirm: "C0NF1RM3 MY 4CC!"
subject: "C0NF1RM471ON 1N57RUC71ONS"
you_can_confirm: "4CC C0MF1RM471ON -> L1NK B3L0W"
hello: "H3Y %{email}!"
hello: "H3Y %{username}!"
inviter:
accept_at: "@ %{url}, U C4N 4CC3P7 17 -> L1NK!"
have_invited_you: "%{names} H4V3 1NV173D Y0U 2 J01N!"
@ -42,7 +42,7 @@ en_1337:
click_to_unlock: "T0 J01N -> CL1CK 7H3 L1NK B3L0W!"
subject: "UNL0CK 1N57RUC71ON5"
unlock: "P0WN MY 4CC!"
welcome: "W3LC0M3 %{email}!"
welcome: "W3LC0M3 %{username}!"
passwords:
edit:
change_password: "CH4NG3 MY *****"

View file

@ -28,7 +28,7 @@ en_shaw:
confirm: "𐑒𐑩𐑯𐑓𐑻𐑥 𐑥𐑲 𐑩𐑒𐑬𐑯𐑑"
subject: "𐑒𐑪𐑯𐑓𐑼𐑥𐑱𐑖𐑩𐑯 𐑦𐑯𐑕𐑑𐑮𐑳𐑒𐑖𐑩𐑯𐑟"
you_can_confirm: "𐑿 𐑒𐑨𐑯 𐑒𐑩𐑯𐑓𐑻𐑥 𐑿𐑼 𐑩𐑒𐑬𐑯𐑑 𐑔𐑮𐑵 𐑞 𐑤𐑦𐑙𐑒 𐑚𐑦𐑤𐑴:"
hello: "𐑣𐑧𐑤𐑴 %{email}!"
hello: "𐑣𐑧𐑤𐑴 %{username}!"
reset_password_instructions:
change: "𐑗𐑱𐑯𐑡 𐑥𐑲 𐑐𐑨𐑕𐑢𐑼𐑛"
ignore: "𐑦𐑓 𐑿 𐑛𐑦𐑛𐑯𐑑 𐑮𐑦𐑒𐑢𐑧𐑕𐑑 𐑞𐑦𐑕, 𐑐𐑤𐑰𐑟 𐑦𐑜𐑯𐑹 𐑞𐑦𐑕 𐑦-𐑥𐑱𐑤."
@ -40,7 +40,7 @@ en_shaw:
click_to_unlock: "𐑒𐑤𐑦𐑒 𐑞 𐑤𐑦𐑙𐑒 𐑚𐑦𐑤𐑴 𐑑 𐑩𐑯𐑤𐑪𐑒 𐑿𐑼 𐑩𐑒𐑬𐑯𐑑:"
subject: "𐑩𐑯𐑤𐑪𐑒 𐑦𐑯𐑕𐑑𐑮𐑳𐑒𐑖𐑩𐑯𐑟"
unlock: "𐑩𐑯𐑤𐑪𐑒 𐑥𐑲 𐑩𐑒𐑬𐑯𐑑"
welcome: "𐑢𐑧𐑤𐑒𐑩𐑥 %{email}!"
welcome: "𐑢𐑧𐑤𐑒𐑩𐑥 %{username}!"
passwords:
edit:
change_password: "𐑗𐑱𐑯𐑡 𐑥𐑲 𐑐𐑨𐑕𐑢𐑼𐑛"

View file

@ -30,7 +30,7 @@ en_valspeak:
confirm: "Confirm mah account!!"
subject: "Stuff liek, tellin u how 2 confirm ur account n stuff..."
you_can_confirm: "U can confirm ur account through teh link below:"
hello: "Ohai %{email}!!"
hello: "Ohai %{username}!!"
inviter:
accept_at: "so like, @ %{url} u can accept it through the link below. Kay? <3"
has_invited_you: "%{name}"
@ -48,7 +48,7 @@ en_valspeak:
click_to_unlock: "Click teh link below 2 unlock ur account, kay?:"
subject: "Unlock ur stuff info"
unlock: "Unlock mah account!!!"
welcome: "OHAI! %{email}!"
welcome: "OHAI! %{username}!"
passwords:
edit:
change_password: "Change mah passwerddd"

View file

@ -16,6 +16,7 @@ eo:
invalid: "Nevalida uzantnomo aŭ pasvorto."
invalid_token: "Malvalida identiga ĵetono."
locked: "Via konto estas ŝlosita."
not_found_in_database: "Nevalida %{authentication_keys} aŭ pasvorto."
timeout: "Via seanco senvalidiĝis. Bonvolu ree ensaluti por daŭrigi."
unauthenticated: "Vi devas ensaluti aŭ enskribiĝi antaŭ ol daŭrigi."
unconfirmed: "Vi devas konfirmi vian konton antaŭ ol daŭrigi."
@ -28,11 +29,13 @@ eo:
confirm: "Konfirmi mian konton"
subject: "Instrukcioj por konfirmi"
you_can_confirm: "Vi povas konfirmi vian konton per la suba ligilo:"
hello: "Saluton, %{email}!"
hello: "Saluton, %{username}!"
inviter:
accept_at: "ĉe %{url}, vi povas akcepti ĝin per la suba ligilo."
has_invited_you: "%{name}"
have_invited_you: "%{names} invitis vin aniĝi je DIASPORA*"
password_change:
subject: "Pasvorta ŝanĝita"
reset_password_instructions:
change: "Ŝanĝi mian pasvorton"
ignore: "Se vi ne petis ĉi tion, bonvolu ignori ĉi tiun retpoŝton."
@ -44,11 +47,13 @@ eo:
click_to_unlock: "Alklaku la suban ligilon por malŝlosi vian konton:"
subject: "Instrukcioj por malŝlosi"
unlock: "Malŝlosi mian konton."
welcome: "Bonvenon %{email}!"
welcome: "Bonvenon %{username}!"
passwords:
edit:
change_password: "Ŝanĝi mian pasvorton"
new_password: "Nova pasvorto"
new:
email: "Retpoŝtadreso"
forgot_password: "Ĉu vi forgesis vian pasvorton?"
send_password_instructions: "Sendi al mi instrukciojn por restartigi pasvorton"
send_instructions: "Post kelkaj minutoj vi ricevos retpoŝton kun instrukcioj pri kiel restartigi vian pasvorton."

View file

@ -32,7 +32,7 @@ es-AR:
confirm: "Confirmar mi cuenta"
subject: "Instrucciones para la confirmación"
you_can_confirm: "Podés confirmar tu cuenta a través del siguiente enlace:"
hello: "¡Hola %{email}!"
hello: "¡Hola %{username}!"
inviter:
accept_at: "en %{url}, podes aceptarlo desde el link de abajo "
has_invited_you: "%{name} te ha invitado a unirte a Diaspora"
@ -50,7 +50,7 @@ es-AR:
click_to_unlock: "Hacé click en el siguiente enlace para desbloquear tu cuenta:"
subject: "Instrucciones para desbloquear la cuenta"
unlock: "Desbloquear mi cuenta"
welcome: "¡Bienvenid@ %{email}!"
welcome: "¡Bienvenid@ %{username}!"
omniauth_callbacks:
failure: "Podrías no ser autenticado desde %{kind} porque \"%{reason}\"."
success: "Autenticado correctamente desde la cuenta %{kind}."

View file

@ -31,7 +31,7 @@ es-CL:
confirm: "Confirmar mi cuenta"
subject: "Instrucciones de confirmación"
you_can_confirm: "Puedes confirmar tu cuenta a través del siguiente enlace:"
hello: "Hola %{email}!"
hello: "Hola %{username}!"
inviter:
accept_at: "en %{url}, puedes aceptar en el enlace inferior."
has_invited_you: "%{name}"
@ -49,7 +49,7 @@ es-CL:
click_to_unlock: "Haz click en el enlace de abajo para desbloquear tu cuenta:"
subject: "Instrucciones para desbloquear tu cuenta"
unlock: "Desbloquear mi cuenta"
welcome: "Bienvenid@ %{email}!"
welcome: "Bienvenid@ %{username}!"
omniauth_callbacks:
failure: "No se pudo autenticar desde %{kind} porque \"%{reason}\"."
success: "Autenticado correctamente desde %{kind} cuenta."

View file

@ -29,7 +29,7 @@ es-MX:
confirm: "Confirmar mi cuenta"
subject: "Instrucciones de confirmación"
you_can_confirm: "Puedes confirmar tu cuenta a través del siguiente enlace:"
hello: "¡Hola %{email}!"
hello: "¡Hola %{username}!"
inviter:
accept_at: "en %{url} puedes aceptarlo a través del siguiente enlace."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ es-MX:
click_to_unlock: "Haz clic en el siguiente enlace para desbloquear tu cuenta:"
subject: "Instrucciones de desbloqueo"
unlock: "Desbloquear mi cuenta"
welcome: "¡Bienvenido/a %{email}!"
welcome: "¡Bienvenido/a %{username}!"
passwords:
edit:
change_password: "Cambiar mi contraseña"

View file

@ -28,7 +28,7 @@ es-VE:
confirm: "Confirmar mi cuenta"
subject: "Instrucciones para la confirmación"
you_can_confirm: "Puedes confirmar tu cuenta a través del siguiente enlace:"
hello: "¡Hola %{email}!"
hello: "¡Hola %{username}!"
invitation_instructions:
accept: "Aceptar invitación"
arrived: "La red social que has estado esperando ha llegado. Renovada, más segura, y más divertida, %{strong_diaspora} está lista para ayudarte a compartir y explorar la web en una forma totalmente nueva."
@ -73,7 +73,7 @@ es-VE:
click_to_unlock: "Haz clic en el siguiente enlace para desbloquear tu cuenta:"
subject: "Instrucciones para desbloquear tu cuenta"
unlock: "Desbloquear mi cuenta"
welcome: "¡Bienvenid@ %{email}!"
welcome: "¡Bienvenid@ %{username}!"
passwords:
edit:
change_password: "Cambiar mi contraseña"

View file

@ -32,7 +32,7 @@ es:
confirm: "Confirmar mi cuenta"
subject: "Instrucciones de confirmación"
you_can_confirm: "Puedes confirmar tu cuenta a través del siguiente enlace:"
hello: "¡Hola %{email}!"
hello: "¡Hola %{username}!"
inviter:
accept_at: "en %{url}, puedes aceptar en el enlace inferior."
has_invited_you: "%{name} te ha invitado a unirte a Diaspora"
@ -44,13 +44,14 @@ es:
ignore: "Si no has solicitado esto, por favor ignora este mensaje."
someone_requested: "Alguien ha solicitado un enlace para cambiar tu contraseña. Si fuiste tú, puedes hacerlo a través del siguiente enlace."
subject: "Instrucciones para cambiar tu contraseña"
then_connect: "Tras establecer tu nueva contraseña podrás entrar de nuevo en diaspora* con tu nombre de usuario \"%{username}\" y tu nueva contraseña."
wont_change: "Tu contraseña no cambiará hasta que accedas al enlace anterior y crees una nueva."
unlock_instructions:
account_locked: "Tu cuenta ha sido bloqueada debido a demasiados intentos de ingreso fallidos."
click_to_unlock: "Sigue el siguiente enlace para desbloquear tu cuenta:"
subject: "Instrucciones para desbloquear la cuenta"
unlock: "Desbloquear mi cuenta"
welcome: "¡Bienvenid@ %{email}!"
welcome: "¡Bienvenid@ %{username}!"
omniauth_callbacks:
failure: "No pudimos identificarte desde %{kind} por \"%{reason}\"."
success: "Identificado correctamente desde la cuenta %{kind}."

View file

@ -18,7 +18,7 @@ et:
locked: "Sinu konto on suletud."
timeout: "Sinu seanss aegus, jätkamiseks logi palun uuesti sisse."
unauthenticated: "Enne jätkamist pead konto looma või sisse logima."
unconfirmed: "Enne jätkamist pead oma konto kinnitama."
unconfirmed: "Enne jätkamist pead oma eposti kinnitama."
invitations:
invitation_token_invalid: "Vabandame! See kutse võti ei kehti."
send_instructions: "Sinu kutse on saadetud."
@ -28,7 +28,7 @@ et:
confirm: "Kinnita mu konto"
subject: "Kinnitamise juhised"
you_can_confirm: "Sa saad oma konto kinnitada järgneva lingi abil:"
hello: "Tere %{email}!"
hello: "Tere %{username}!"
inviter:
accept_at: "aadressil %{url}, sa saad kutse aksepteerida.kasutades alljärgnevat linki."
has_invited_you: "%{name}"
@ -36,7 +36,7 @@ et:
reset_password_instructions:
change: "Muuda mu parooli"
subject: "Parooli taastamise juhised"
welcome: "%{email}, tere tulemast!"
welcome: "%{username}, tere tulemast!"
passwords:
edit:
change_password: "Muuda parooli"
@ -65,7 +65,7 @@ et:
receive_confirmation: "Juhised konto kinnitamiseks ei saabunud?"
receive_unlock: "Juhised konto taasavamiseks ei saabunud?"
sign_in: "Logi sisse"
sign_up: "Liitu"
sign_up: "Loo konto"
sign_up_closed: "Avatud liitumised on hetkel peatatud."
unlocks:
new:
@ -74,6 +74,6 @@ et:
unlocked: "Sinu konto on edukalt taasavatud. Oled nüüd sisse logitud."
errors:
messages:
already_confirmed: "on juba kinnitatud"
already_confirmed: "on juba kinnitatud, palun proovi sisse logida"
not_found: "ei leitud"
not_locked: "ei ole lukustatud"

View file

@ -28,7 +28,7 @@ eu:
confirm: "Kontua baieztatu"
subject: "Baieztapen argibideak"
you_can_confirm: "Zure kontua baieztatu dezakezu esteka hau jarraituz:"
hello: "Kaixo %{email}!"
hello: "Kaixo %{username}!"
inviter:
accept_at: "%{url}(e)n, onartu dezakezu beheko esteka jarraituz."
has_invited_you: "%{name}"
@ -44,7 +44,7 @@ eu:
click_to_unlock: "Sakatu honako estekan zure kontua askatzeko:"
subject: "Askatu argibideak"
unlock: "Askatu nire kontua"
welcome: "Ongietorri, %{email}!"
welcome: "Ongietorri, %{username}!"
passwords:
edit:
change_password: "Nire pasahitza aldatu"

View file

@ -32,7 +32,7 @@ fi:
confirm: "Vahvista käyttäjätilini"
subject: "Vahvistamisohjeet"
you_can_confirm: "Voit vahvistaa käyttäjätilisi alla olevan linkin kautta:"
hello: "Hei, %{email}!"
hello: "Hei, %{username}!"
inviter:
accept_at: "osoitteessa %{url}, hyväksyminen alla olevasta linkistä."
has_invited_you: "%{names}"
@ -50,7 +50,7 @@ fi:
click_to_unlock: "Poista käyttäjätilisi lukitus alla olevasta linkistä:"
subject: "Lukituksen poisto-ohjeet"
unlock: "Poista käyttäjätilini lukitus"
welcome: "Tervetuloa %{email}!"
welcome: "Tervetuloa %{username}!"
passwords:
edit:
change_password: "Vaihda salasanani"

View file

@ -7,7 +7,7 @@
fil:
devise:
mailer:
hello: "Kumusta %{email}!"
hello: "Kumusta %{username}!"
sessions:
new:
remember_me: "Tandaan Ako"

View file

@ -32,7 +32,7 @@ fr:
confirm: "Confirmer mon compte"
subject: "Instructions de confirmation"
you_can_confirm: "Vous pouvez confirmer votre compte en cliquant sur le lien ci-dessous :"
hello: "Bonjour %{email} !"
hello: "Bonjour %{username} !"
inviter:
accept_at: "à %{url}, vous pouvez l'accepter à travers le lien ci-dessous."
has_invited_you: "%{name}"
@ -50,7 +50,7 @@ fr:
click_to_unlock: "Cliquez sur le lien ci-dessous pour débloquer votre compte :"
subject: "Instructions de déverrouillage"
unlock: "Débloquer mon compte"
welcome: "Bienvenue %{email} !"
welcome: "Bienvenue %{username} !"
omniauth_callbacks:
failure: "Impossible de vous authentifier depuis %{kind} car \"%{reason}\"."
success: "Authentification réussie depuis le compte %{kind}."

View file

@ -12,13 +12,13 @@ fy:
mailer:
confirmation_instructions:
confirm: "Myn akkount befêstigje"
hello: "Guoi %{email}!"
hello: "Guoi %{username}!"
inviter:
has_invited_you: "%{name}"
have_invited_you: "%{names} ha dy útnoadige om jin oan te slute by Diaspora"
reset_password_instructions:
change: "Feroarje myn wachtwurd"
welcome: "Wolkom %{email}!"
welcome: "Wolkom %{username}!"
passwords:
edit:
change_password: "Feroarje myn wachtwurd"

View file

@ -7,8 +7,8 @@
ga:
devise:
mailer:
hello: "Haileo %{email}!"
welcome: "Fáilte %{email}!"
hello: "Haileo %{username}!"
welcome: "Fáilte %{username}!"
sessions:
new:
login: "Logáil isteach"

View file

@ -32,7 +32,7 @@ gl:
confirm: "Confirmar a conta"
subject: "Instrucións de confirmación"
you_can_confirm: "Pode confirmar a súa conta mediante a seguinte ligazón:"
hello: "Ola, %{email}!"
hello: "Ola, %{username}!"
inviter:
accept_at: "en %{url}, pode aceptar seguindo a seguinte ligazón."
has_invited_you: "%{name}"
@ -44,13 +44,14 @@ gl:
ignore: "Se non foi vostede quen solicitou o cambio, pode ignorar esta mensaxe."
someone_requested: "Alguén solicitou cambiar o teu contrasinal. Se foches ti, preme na seguinte ligazón:"
subject: "Instrucións para cambiar o contrasinal"
then_connect: "Após establecer o novo contrasinal terás que volver a conectarte a diaspora* utilizando o identificador \"%{username}\" e o novo contrasinal."
wont_change: "Para cambiar de contrasinal, prema a seguinte ligazón e escolla un novo."
unlock_instructions:
account_locked: "A conta bloqueouse por mor do gran número de intentos errados de identificarse con ela."
click_to_unlock: "Siga a seguinte ligazón para desbloqueala:"
subject: "Instrucións para desbloquear a conta"
unlock: "Desbloquear a conta"
welcome: "Benvido, %{email}!"
welcome: "Benvido, %{username}!"
omniauth_callbacks:
failure: "Non se puido autenticar desde %{kind} debido a \"%{reason}\"."
success: "Autenticada correctamente desde a conta %{kind}"

View file

@ -29,7 +29,7 @@ he:
confirm: "אימות החשבון שלי"
subject: "הנחיות לאימות"
you_can_confirm: "באפשרותך לאמת את החשבון שלך באמצעות הקישור שלהלן:"
hello: "שלום %{email}!"
hello: "שלום %{username}!"
inviter:
accept_at: "בכתובת %{url}, באפשרותך לקבל זאת באמצעות הקישור שלהלן."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ he:
click_to_unlock: "יש ללחוץ על הקישור שלהלן כדי לשחרר את חשבונך:"
subject: "הנחיות לביטול הנעילה"
unlock: "שחרור החשבון שלי"
welcome: "ברוך בואך %{email}!"
welcome: "ברוך בואך %{username}!"
passwords:
edit:
change_password: "שינוי הסיסמה שלי"

View file

@ -7,17 +7,17 @@
hi:
devise:
failure:
inactive: "आपका खाता अभी तक सक्रिय नहीं हुआ है."
invalid: "अमान्य उपयोगकर्ता नाम या पासवर्ड."
inactive: "आपका खाता अभी तक सक्रिय नहीं हुआ है"
invalid: "अमान्य %{authentication_keys} या पासवर्ड।"
locked: "आप का खाता अवरोधित है"
timeout: "आपका सत्र समाप्त हो चूका है, सत्र जारी रखने के लिए कृपया फिर से साइन इन करें."
timeout: "आपका सत्र समाप्त हो चूका है, सत्र जारी रखने के लिए कृपया फिर से साइन इन करें"
passwords:
edit:
change_password: "पासवर्ड बदलें"
new:
forgot_password: "पासवर्ड भूल गए?"
send_instructions: "कुछ ही मिनटों में आप अपना पासवर्ड रीसेट करने के बारे में निर्देशों के साथ एक ईमेल प्राप्त करेंगे."
updated: "आपका पासवर्ड सफलतापूर्वक बदल गया था. अब आप साइन इन कर चुके हैं."
send_instructions: "कुछ ही मिनटों में आप अपना पासवर्ड रीसेट करने के बारे में निर्देशों के साथ एक ईमेल प्राप्त करेंगे"
updated: "आपका पासवर्ड सफलतापूर्वक बदल गया था. अब आप साइन इन कर चुके हैं"
sessions:
new:
login: "लॉगिन"

View file

@ -29,7 +29,7 @@ hu:
confirm: "Fiókom megerősítése"
subject: "Megerősítési utasítások"
you_can_confirm: "Megerősítheted a fiókod ezen a linken keresztül:"
hello: "Szia %{email}!"
hello: "Szia %{username}!"
inviter:
accept_at: "Meghívás elfogadása: %{url}"
has_invited_you: "%{name} meghívott a Diaspora* közösségi oldalra."
@ -45,7 +45,7 @@ hu:
click_to_unlock: "Kattints az alábbi linkre, hogy feloldd a fiókod:"
subject: "Feloldási utasítások"
unlock: "Fiókom feloldása"
welcome: "Üdv %{email}!"
welcome: "Üdv %{username}!"
passwords:
edit:
change_password: "Megváltoztatom a jelszavamat"

View file

@ -32,7 +32,7 @@ hye-classical:
confirm: "Հաստատել իմ հաշիւը"
subject: "Հաստատման ցուցումներ"
you_can_confirm: "Կարող ես հաշիւդ հաստատել հետեւեալ յղմամբ՝"
hello: "Ողջո՜յն, %{email}"
hello: "Ողջո՜յն, %{username}"
inviter:
accept_at: "%{url} հասցէով, որը կարող ես հաստատել ստորև բերուած յղման միջոցով։"
have_invited_you: "%{names} հրաւիրել է քեզ՝ միանալու դիասպորա*֊ին"
@ -49,7 +49,7 @@ hye-classical:
click_to_unlock: "Սեղմիր ներքեւի յղումը, որպէսզի ապաարգելափակես հաշիւդ։"
subject: "Ապաարգելափակման ցուցումներ"
unlock: "Ապաարգելափակել հաշիւս"
welcome: "Բարի գալո՜ւստ, %{email}"
welcome: "Բարի գալո՜ւստ, %{username}"
omniauth_callbacks:
failure: "Չյաջողուեց նոյնականացնել քեզ %{kind}֊ից զի՝ %{reason}"
success: "Յաջողութեամբ նոյնականացումն անցար %{kind} հաշուով։"

View file

@ -32,7 +32,7 @@ hye:
confirm: "Հաստատել իմ հաշիվը"
subject: "Հաստատման ցուցումներ"
you_can_confirm: "Կարող ես հաշիվդ հաստատել հետևյալ հղմամբ՝"
hello: "Ողջու՜յն, %{email}"
hello: "Ողջու՜յն, %{username}"
inviter:
accept_at: "%{url} հասցեով, որը կարող ես հաստատել ստորև բերված հղման միջոցով։"
has_invited_you: "%{name}"
@ -50,7 +50,7 @@ hye:
click_to_unlock: "Սեղմիր ներքևի հղումը, որպեսզի ապաարգելափակես հաշիվդ։"
subject: "Ապաարգելափակման ցուցումներ"
unlock: "Ապաարգելափակել հաշիվս"
welcome: "Բարի գալու՜ստ, %{email}"
welcome: "Բարի գալու՜ստ, %{username}"
passwords:
edit:
change_password: "Փոխել իմ գաղտնաբառը"

View file

@ -32,7 +32,7 @@ ia:
confirm: "Confirmar mi conto"
subject: "Instructiones pro confirmar"
you_can_confirm: "Tu pote confirmar tu conto per le ligamine sequente:"
hello: "Salute, %{email}!"
hello: "Salute, %{username}!"
inviter:
accept_at: "a %{url}, tu pote acceptar lo per le ligamine sequente."
has_invited_you: "%{name}"
@ -44,13 +44,14 @@ ia:
ignore: "Si tu non ha demandate isto, per favor ignora iste message."
someone_requested: "Qualcuno ha demandate un ligamine pro cambiar tu contrasigno. Si tu faceva iste demanda, tu pote facer isto per le ligamine sequente."
subject: "Instructiones pro reinitialisar contrasigno"
then_connect: "Post haber definite un nove contrasigno, tu potera aperir session in diaspora* de novo usante tu nomine de usator “%{username}” e tu nove contrasigno."
wont_change: "Le contrasigno non cambiara si tu non clicca sur le ligamine precedente e specifica un nove."
unlock_instructions:
account_locked: "Tu conto ha essite blocate a causa de un numero excessive de tentativas fallite de accesso."
click_to_unlock: "Clicca sur le ligamine sequente pro disblocar tu conto:"
subject: "Instructiones pro disblocar"
unlock: "Disblocar mi conto"
welcome: "Benvenite, %{email}!"
welcome: "Benvenite, %{username}!"
omniauth_callbacks:
failure: "Impossibile authenticar te a partir de %{kind} perque \"%{reason}\"."
success: "Authentication a partir del conto %{kind} succedite."

View file

@ -28,7 +28,7 @@ id:
confirm: "Konfirmasi akun saya"
subject: "Instruksi pengesahan / konfirmasi"
you_can_confirm: "Anda dapat mengkonfirmasi akun anda melalui link (tautan) di bawah ini:"
hello: "Halo %{email}!"
hello: "Halo %{username}!"
inviter:
accept_at: "di %{url}, anda dapat menerimanya melalui link (tautan) di bawah ini."
has_invited_you: "%{name}"
@ -44,7 +44,7 @@ id:
click_to_unlock: "Klik link (tautan) di bawah untuk mengaktifkan akun anda:"
subject: "Instruksi untuk membuka kunci"
unlock: "Aktifkan akun saya"
welcome: "Selamat datang %{email}!"
welcome: "Selamat datang %{username}!"
passwords:
edit:
change_password: "Ubah kata sandi saya"

View file

@ -29,7 +29,7 @@ is:
confirm: "Staðfesta aðganginn minn"
subject: "Leiðbeiningar um staðfestingu"
you_can_confirm: "Þú getur staðfest aðganginn þinn með því að elta hlekkinn hér fyrir neðan:"
hello: "Halló %{email}!"
hello: "Halló %{username}!"
inviter:
accept_at: "á %{url}. Þú getur þegið boðið með því að fylgja hlekknum hér fyrir neðan."
has_invited_you: "%{name}"
@ -45,7 +45,7 @@ is:
click_to_unlock: "Eltu hlekkinn hér fyrir neðan til að taka aðgang þinn úr lás."
subject: "Leiðbeiningar fyrir aflæsingu"
unlock: "Taka aðgang minn úr lás"
welcome: "Velkomin/n %{email}!"
welcome: "Velkomin/n %{username}!"
passwords:
edit:
change_password: "Breyta lykilorði"

Some files were not shown because too many files have changed in this diff Show more