mirror of
https://github.com/diaspora/diaspora.git
synced 2026-01-10 07:38:10 -05:00
Merge branch 'next-minor'
This commit is contained in:
63
.github/workflows/ci.yml
vendored
Normal file
63
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
name: CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
- next-minor
|
||||
- main
|
||||
- master
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
ruby:
|
||||
- 2.6
|
||||
- 2.5
|
||||
db:
|
||||
- mysql
|
||||
- postgresql
|
||||
kind:
|
||||
- cucumber
|
||||
- other
|
||||
env:
|
||||
DB: ${{ matrix.db }}
|
||||
RAILS_ENV: test
|
||||
BUNDLE_WITH: ${{ matrix.db }}
|
||||
BUNDLE_WITHOUT: development
|
||||
BUNDLE_FROZEN: true
|
||||
BUNDLE_DISABLE_SHARED_GEMS: true
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
- 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
|
||||
- name: Start MySQL
|
||||
run: sudo systemctl start mysql.service
|
||||
if: matrix.db == 'mysql'
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
bundler-cache: true
|
||||
- name: Prepare
|
||||
run: script/ci/prepare.sh
|
||||
- name: Run tests
|
||||
run: bin/rake --trace ci:${{ matrix.kind }}
|
||||
- name: Run Jasmine
|
||||
run: bin/rake jasmine:ci
|
||||
timeout-minutes: 2
|
||||
if: matrix.kind == 'other'
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,6 +9,7 @@ app/views/terms/terms.*
|
||||
app/assets/images/custom/
|
||||
|
||||
# Configuration files
|
||||
config/diaspora.toml
|
||||
config/diaspora.yml
|
||||
config/initializers/secret_token.rb
|
||||
.bundle
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
require: rubocop-rails
|
||||
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.3
|
||||
TargetRubyVersion: 2.6
|
||||
NewCops: enable
|
||||
Exclude:
|
||||
- "bin/**/*"
|
||||
- "db/schema.rb"
|
||||
|
||||
50
.travis.yml
50
.travis.yml
@@ -1,50 +0,0 @@
|
||||
language: ruby
|
||||
|
||||
rvm:
|
||||
- 2.6.6
|
||||
- 2.5.8
|
||||
|
||||
env:
|
||||
- DB=postgresql BUILD_TYPE=cucumber
|
||||
- DB=mysql BUILD_TYPE=cucumber
|
||||
- DB=postgresql BUILD_TYPE=other
|
||||
- DB=mysql BUILD_TYPE=other
|
||||
|
||||
sudo: false
|
||||
cache:
|
||||
bundler: true
|
||||
directories:
|
||||
- app/assets/images
|
||||
- tmp/cache/assets
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libidn11-dev
|
||||
- ghostscript
|
||||
|
||||
services:
|
||||
- postgresql
|
||||
- mysql
|
||||
|
||||
branches:
|
||||
only:
|
||||
- 'master'
|
||||
- 'next-minor'
|
||||
- 'develop'
|
||||
|
||||
before_install:
|
||||
- script/ci/prepare.sh
|
||||
- mkdir travis-phantomjs
|
||||
- wget http://cifiles.diasporafoundation.org/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
|
||||
- tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs
|
||||
- export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
|
||||
|
||||
script: "bin/rake --trace ci:travis:${BUILD_TYPE}"
|
||||
|
||||
notifications:
|
||||
irc:
|
||||
channels:
|
||||
- secure: YvYkeTAw+5oOl/RaXVwu7JkKGNWPoFosNQRmLvJkBFbWzZ1s5LZD1u3+Qj819bT3lGzJu9pxmJg765IRYrGWmBi4mcAV3dpO6qowVdFTcorf0JsnLw3Kvkga9rrDunsRNr21KTAQqHOO5mKUzw9DtMzd52BiWuZwIj3xcl72gQI=
|
||||
template:
|
||||
- "%{repository_slug}#%{commit} (%{branch} - %{commit_subject}): %{message} %{build_url}"
|
||||
19
Changelog.md
19
Changelog.md
@@ -1,3 +1,22 @@
|
||||
# 0.7.15.0
|
||||
|
||||
## Refactor
|
||||
* Replaced some `http://` links in the UI with their `https://` counterparts [#8207](https://github.com/diaspora/diaspora/pull/8207)
|
||||
* Testing: Replaced phantomjs with headless Chrome/Chromium [#8234](https://github.com/diaspora/diaspora/pull/8234)
|
||||
|
||||
## Bug fixes
|
||||
* Update comment counter when weleting a comment in the Single Post View [#7938](https://github.com/diaspora/diaspora/pull/7938)
|
||||
* Link diaspora only poduptime list [#8174](https://github.com/diaspora/diaspora/pull/8174)
|
||||
* Delete a user's invitation code during account deletion [#8202](https://github.com/diaspora/diaspora/pull/8202)
|
||||
* Bump mimemagic [#8231](https://github.com/diaspora/diaspora/pull/8231)
|
||||
* Removed support for defunct Uni Heidelberg OSM tile server, Mapbox is now required if you want to show maps [#8215](https://github.com/diaspora/diaspora/pull/8215)
|
||||
* Render only two fractional digits in the posts per user/day admin statistics [#8227](https://github.com/diaspora/diaspora/pull/8227)
|
||||
* Make aspect dropdowns scrollable [#8213](https://github.com/diaspora/diaspora/pull/8213)
|
||||
* Fix `Photo#ownserhip_of_status_message` validation [#8214](https://github.com/diaspora/diaspora/pull/8214)
|
||||
|
||||
## Features
|
||||
* Support and recommend TOML as configuration format [#8132](https://github.com/diaspora/diaspora/pull/8132)
|
||||
|
||||
# 0.7.14.0
|
||||
|
||||
## Refactor
|
||||
|
||||
98
Gemfile
98
Gemfile
@@ -2,16 +2,16 @@
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "rails", "5.2.4.3"
|
||||
gem "rails", "5.2.5"
|
||||
|
||||
# Legacy Rails features, remove me!
|
||||
# responders (class level)
|
||||
gem "responders", "2.4.1"
|
||||
gem "responders", "3.0.1"
|
||||
|
||||
# Appserver
|
||||
|
||||
gem "unicorn", "5.5.3", require: false
|
||||
gem "unicorn-worker-killer", "0.4.4"
|
||||
gem "unicorn", "6.0.0", require: false
|
||||
gem "unicorn-worker-killer", "0.4.5"
|
||||
|
||||
# Federation
|
||||
|
||||
@@ -26,8 +26,8 @@ gem "json-schema", "2.8.1"
|
||||
|
||||
# Authentication
|
||||
|
||||
gem "devise", "4.7.1"
|
||||
gem "devise-two-factor", "3.0.3"
|
||||
gem "devise", "4.7.3"
|
||||
gem "devise-two-factor", "4.0.0"
|
||||
gem "devise_lastseenable", "0.0.6"
|
||||
gem "rqrcode", "1.1.2"
|
||||
|
||||
@@ -37,12 +37,12 @@ gem "simple_captcha2", "0.5.0", require: "simple_captcha"
|
||||
|
||||
# Background processing
|
||||
|
||||
gem "redis", "3.3.5" # Pinned to 3.3.x because of https://github.com/antirez/redis/issues/4272
|
||||
gem "sidekiq", "5.2.8"
|
||||
gem "redis", "4.2.5"
|
||||
gem "sidekiq", "6.2.1"
|
||||
|
||||
# Scheduled processing
|
||||
|
||||
gem "sidekiq-cron", "1.1.0"
|
||||
gem "sidekiq-cron", "1.2.0"
|
||||
|
||||
# Compression
|
||||
|
||||
@@ -50,7 +50,8 @@ gem "uglifier", "4.2.0"
|
||||
|
||||
# Configuration
|
||||
|
||||
gem "configurate", "0.3.1"
|
||||
gem "configurate", "0.5.0"
|
||||
gem "toml-rb", "2.0.1"
|
||||
|
||||
# Cross-origin resource sharing
|
||||
|
||||
@@ -58,9 +59,9 @@ gem "rack-cors", "1.1.1", require: "rack/cors"
|
||||
|
||||
# CSS
|
||||
|
||||
gem "autoprefixer-rails", "8.6.5"
|
||||
gem "autoprefixer-rails", "10.2.4.0"
|
||||
gem "bootstrap-sass", "3.4.1"
|
||||
gem "bootstrap-switch-rails", "3.3.3" # 3.3.4 is broken, see https://github.com/Bttstrp/bootstrap-switch/issues/691
|
||||
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"
|
||||
@@ -79,7 +80,7 @@ gem "activerecord-import", "1.0.4"
|
||||
|
||||
# File uploading
|
||||
|
||||
gem "carrierwave", "1.3.1"
|
||||
gem "carrierwave", "1.3.2"
|
||||
gem "fog-aws", "3.5.2"
|
||||
gem "mini_magick", "4.10.1"
|
||||
|
||||
@@ -142,9 +143,9 @@ gem "leaflet-rails", "1.6.0"
|
||||
|
||||
# Parsing
|
||||
|
||||
gem "nokogiri", "1.10.9"
|
||||
gem "open_graph_reader", "0.7.0" # also update User-Agent in features/support/webmock.rb
|
||||
gem "redcarpet", "3.5.0"
|
||||
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 "redcarpet", "3.5.1"
|
||||
gem "ruby-oembed", "0.12.0"
|
||||
gem "twitter-text", "1.14.7"
|
||||
|
||||
@@ -154,7 +155,7 @@ gem "string-direction", "1.2.2"
|
||||
|
||||
# Security Headers
|
||||
|
||||
gem "secure_headers", "6.3.0"
|
||||
gem "secure_headers", "6.3.2"
|
||||
|
||||
# Services
|
||||
|
||||
@@ -185,12 +186,12 @@ 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 "typhoeus", "1.3.1"
|
||||
gem "typhoeus", "1.4.0"
|
||||
|
||||
# Views
|
||||
|
||||
gem "gon", "6.3.2"
|
||||
gem "hamlit", "2.11.0"
|
||||
gem "hamlit", "2.14.6"
|
||||
gem "mobile-fu", "1.4.0"
|
||||
gem "rails-timeago", "2.18.0"
|
||||
gem "will_paginate", "3.3.0"
|
||||
@@ -201,7 +202,7 @@ gem "logging-rails", "0.6.0", require: "logging/rails"
|
||||
|
||||
# Reading and writing zip files
|
||||
|
||||
gem "rubyzip", "1.3.0", require: "zip"
|
||||
gem "rubyzip", "2.3.0", require: "zip"
|
||||
|
||||
# Prevent occasions where minitest is not bundled in
|
||||
# packaged versions of ruby. See following issues/prs:
|
||||
@@ -240,77 +241,64 @@ group :production do # we don"t install these on travis to speed up test runs
|
||||
end
|
||||
|
||||
group :development do
|
||||
# Automatic test runs
|
||||
gem "guard", "2.16.1", require: false
|
||||
gem "guard-rspec", "4.7.3", require: false
|
||||
gem "guard-rubocop", "1.3.0", require: false
|
||||
gem "rb-fsevent", "0.10.3", require: false
|
||||
gem "rb-inotify", "0.10.1", require: false
|
||||
|
||||
# Linters
|
||||
gem "haml_lint", "0.35.0", require: false
|
||||
gem "pronto", "0.10.0", require: false
|
||||
gem "pronto-eslint", "0.10.0", require: false
|
||||
gem "pronto-haml", "0.10.0", require: false
|
||||
gem "pronto-rubocop", "0.10.0", require: false
|
||||
gem "pronto-scss", "0.10.0", require: false
|
||||
gem "rubocop", "0.80.1", require: false
|
||||
gem "rubocop-rails", "2.4.1", require: false
|
||||
|
||||
# Preloading environment
|
||||
|
||||
gem "spring", "2.1.0"
|
||||
gem "spring-commands-rspec", "1.0.4"
|
||||
gem "spring-commands-cucumber", "1.0.1"
|
||||
gem "haml_lint", "0.37.0", 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
|
||||
gem "pronto-rubocop", "0.11.1", require: false
|
||||
gem "pronto-scss", "0.11.0", require: false
|
||||
gem "rubocop", "0.93.1", require: false
|
||||
gem "rubocop-rails", "2.9.1", require: false
|
||||
|
||||
# Debugging
|
||||
gem "pry"
|
||||
gem "pry-byebug"
|
||||
|
||||
# test coverage
|
||||
gem "simplecov", "0.16.1", require: false
|
||||
gem "simplecov", "0.21.2", require: false
|
||||
|
||||
gem "turbo_dev_assets", "0.0.2"
|
||||
|
||||
gem "listen", "3.5.1"
|
||||
end
|
||||
|
||||
group :test do
|
||||
# RSpec (unit tests, some integration tests)
|
||||
|
||||
gem "fixture_builder", "0.5.2"
|
||||
gem "fuubar", "2.5.0"
|
||||
gem "fuubar", "2.5.1"
|
||||
gem "json-schema-rspec", "0.0.4"
|
||||
gem "rspec-json_expectations", "~> 2.1"
|
||||
|
||||
# Cucumber (integration tests)
|
||||
|
||||
gem "capybara", "3.15.0"
|
||||
gem "database_cleaner", "1.8.3"
|
||||
gem "poltergeist", "1.18.1"
|
||||
gem "apparition", "0.6.0"
|
||||
gem "capybara", "3.35.3"
|
||||
gem "database_cleaner-active_record", "1.8.0"
|
||||
|
||||
gem "cucumber-api-steps", "0.14", require: false
|
||||
|
||||
# General helpers
|
||||
|
||||
gem "factory_girl_rails", "4.9.0"
|
||||
gem "shoulda-matchers", "4.0.1"
|
||||
gem "timecop", "0.9.1"
|
||||
gem "webmock", "3.8.3", require: false
|
||||
gem "shoulda-matchers", "4.5.1"
|
||||
gem "timecop", "0.9.4"
|
||||
gem "webmock", "3.12.2", require: false
|
||||
|
||||
gem "diaspora_federation-test", "0.2.6"
|
||||
|
||||
# Coverage
|
||||
gem "coveralls", "0.8.23", require: false
|
||||
end
|
||||
|
||||
group :development, :test do
|
||||
# RSpec (unit tests, some integration tests)
|
||||
gem "rspec-rails", "3.9.1"
|
||||
gem "rspec-rails", "5.0.1"
|
||||
|
||||
# Cucumber (integration tests)
|
||||
gem "cucumber-rails", "2.0.0", require: false
|
||||
gem "cucumber-rails", "2.3.0", require: false
|
||||
|
||||
# Jasmine (client side application tests (JS))
|
||||
gem "jasmine", "3.5.1"
|
||||
gem "chrome_remote", "0.3.0"
|
||||
gem "jasmine", "3.7.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"
|
||||
|
||||
637
Gemfile.lock
637
Gemfile.lock
File diff suppressed because it is too large
Load Diff
29
Guardfile
29
Guardfile
@@ -1,29 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
guard :rspec, cmd: "bin/spring rspec", all_on_start: false, all_after_pass: false do
|
||||
watch(/^spec\/.+_spec\.rb$/)
|
||||
watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
|
||||
watch(/spec\/spec_helper.rb/) { "spec" }
|
||||
|
||||
# Rails example
|
||||
watch(/^spec\/.+_spec\.rb$/)
|
||||
watch(/^app\/(.+)\.rb$/) {|m| "spec/#{m[1]}_spec.rb" }
|
||||
watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
|
||||
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) {|m|
|
||||
["spec/routing/#{m[1]}_routing_spec.rb",
|
||||
"spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb",
|
||||
"spec/acceptance/#{m[1]}_spec.rb"]
|
||||
}
|
||||
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
||||
watch("spec/spec_helper.rb") { "spec" }
|
||||
watch("config/routes.rb") { "spec/routing" }
|
||||
watch("app/controllers/application_controller.rb") { "spec/controllers" }
|
||||
|
||||
# Capybara request specs
|
||||
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) {|m| "spec/requests/#{m[1]}_spec.rb" }
|
||||
end
|
||||
|
||||
guard :rubocop, all_on_start: false, keep_failed: false do
|
||||
watch(/(?:app|config|db|lib|features|spec)\/.+\.rb$/)
|
||||
watch(/(config.ru|Gemfile|Guardfile|Rakefile)$/)
|
||||
end
|
||||
@@ -1,13 +1,6 @@
|
||||
# diaspora\*
|
||||
### A privacy-aware, distributed, open source social network
|
||||
|
||||
**master:** [](http://travis-ci.org/diaspora/diaspora)
|
||||
**next-minor:** [](http://travis-ci.org/diaspora/diaspora)
|
||||
[](https://coveralls.io/github/diaspora/diaspora?branch=next-minor)|
|
||||
**develop:** [](http://travis-ci.org/diaspora/diaspora)
|
||||
[](https://coveralls.io/github/diaspora/diaspora?branch=develop) |
|
||||
[](https://codeclimate.com/github/diaspora/diaspora)
|
||||
|
||||
[Project site](https://diasporafoundation.org) |
|
||||
[Wiki](https://wiki.diasporafoundation.org) |
|
||||
[Bugtracker](https://github.com/diaspora/diaspora/issues) |
|
||||
@@ -17,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](http://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.podupti.me) 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!
|
||||
|
||||
|
||||
@@ -1,25 +1,23 @@
|
||||
(function() {
|
||||
app.helpers.locations = {
|
||||
getTiles: function() {
|
||||
// If the mapbox option is enabled in the diaspora.yml, the mapbox tiles with the podmin's credentials are used.
|
||||
// If the mapbox option is enabled in the diaspora.toml, the mapbox tiles with the podmin's credentials are used.
|
||||
if (gon.appConfig.map.mapbox.enabled) {
|
||||
return L.tileLayer("https://api.mapbox.com/styles/v1/{style}/tiles/256/{z}/{x}/{y}?access_token={accessToken}", {
|
||||
accessToken: gon.appConfig.map.mapbox.access_token,
|
||||
style: gon.appConfig.map.mapbox.style,
|
||||
attribution: "Map data © <a href='http://openstreetmap.org'>OpenStreetMap</a> contributors, " +
|
||||
"<a href='http://creativecommons.org/licenses/by-sa/2.0/''>CC-BY-SA</a>, " +
|
||||
"Imagery © <a href='https://www.mapbox.com'>Mapbox</a>",
|
||||
maxZoom: 18
|
||||
});
|
||||
return L.tileLayer(
|
||||
"https://api.mapbox.com/styles/v1/{style}/tiles/256/{z}/{x}/{y}?access_token={accessToken}",
|
||||
{
|
||||
accessToken: gon.appConfig.map.mapbox.access_token,
|
||||
style: gon.appConfig.map.mapbox.style,
|
||||
attribution:
|
||||
"Map data © <a href='https://openstreetmap.org'>OpenStreetMap</a> contributors, " +
|
||||
"<a href='http://opendatacommons.org/licenses/dbcl/1.0/'>Open Database License, ODbL 1.0</a>, " +
|
||||
"Imagery © <a href='https://www.mapbox.com'>Mapbox</a>",
|
||||
maxZoom: 18,
|
||||
tileSize: 512,
|
||||
zoomOffset: -1
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// maptiles from the Heidelberg University are used by default.
|
||||
return L.tileLayer("http://korona.geog.uni-heidelberg.de/tiles/roads/x={x}&y={y}&z={z}", {
|
||||
attribution: "Map data © <a href='http://openstreetmap.org'>OpenStreetMap</a> contributors, " +
|
||||
"rendering <a href='http://giscience.uni-hd.de/'>" +
|
||||
"GIScience Research Group @ Heidelberg University</a>",
|
||||
maxZoom: 18
|
||||
});
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -85,6 +85,10 @@ app.models.Post.Interactions = Backbone.Model.extend({
|
||||
});
|
||||
},
|
||||
|
||||
removedComment: function() {
|
||||
this.set({"comments_count": this.get("comments_count") - 1});
|
||||
},
|
||||
|
||||
reshare : function(){
|
||||
var interactions = this;
|
||||
|
||||
|
||||
@@ -16,10 +16,8 @@ app.views.AspectMembership = app.views.Base.extend({
|
||||
},
|
||||
|
||||
events: {
|
||||
"click ul.aspect_membership.dropdown-menu > li.aspect_selector"
|
||||
: "_clickHandler",
|
||||
"keypress ul.aspect_membership.dropdown-menu > li.aspect_selector"
|
||||
: "_clickHandler"
|
||||
"click ul.aspect-membership.dropdown-menu > li.aspect_selector": "_clickHandler",
|
||||
"keypress ul.aspect-membership.dropdown-menu > li.aspect_selector": "_clickHandler"
|
||||
},
|
||||
|
||||
initialize: function(opts) {
|
||||
|
||||
@@ -135,7 +135,10 @@ app.views.CommentStream = app.views.Base.extend({
|
||||
},
|
||||
|
||||
removeComment: function(comment) {
|
||||
this.$("#" + comment.get("guid")).closest(".comment.media").remove();
|
||||
var result = this.$("#" + comment.get("guid")).closest(".comment.media").remove();
|
||||
if (result.hasClass("deleting")) {
|
||||
this.model.interactions.removedComment();
|
||||
}
|
||||
},
|
||||
|
||||
expandComments: function(evt){
|
||||
|
||||
@@ -13,9 +13,10 @@ app.views.Help = app.views.StaticContentView.extend({
|
||||
"click .faq-link-chat": "chat"
|
||||
},
|
||||
|
||||
/* eslint-disable camelcase */
|
||||
initialize : function() {
|
||||
this.GETTING_HELP_SUBS = {
|
||||
getting_started_a: {tutorial_series: this.linkHtml("http://diasporafoundation.org/getting_started/sign_up", Diaspora.I18n.t("getting_started_tutorial"))},
|
||||
getting_started_a: {tutorial_series: this.linkHtml("https://diasporafoundation.org/getting_started/sign_up", Diaspora.I18n.t("getting_started_tutorial"))},
|
||||
get_support_a_website: {link: this.linkHtml("https://diasporafoundation.org/", Diaspora.I18n.t("foundation_website"))},
|
||||
get_support_a_tutorials: {tutorials: this.linkHtml("https://diasporafoundation.org/tutorials", Diaspora.I18n.t("tutorials"))},
|
||||
get_support_a_wiki: {link: this.linkHtml("https://wiki.diasporafoundation.org/Special:Search", Diaspora.I18n.t("wiki"))},
|
||||
@@ -28,10 +29,11 @@ app.views.Help = app.views.StaticContentView.extend({
|
||||
this.POSTS_AND_POSTING_SUBS = {
|
||||
post_report_a: {community_guidelines: this.linkHtml("https://diasporafoundation.org/community_guidelines", Diaspora.I18n.t("community_guidelines"))},
|
||||
format_text_a: {
|
||||
markdown: this.linkHtml("http://diasporafoundation.org/formatting", Diaspora.I18n.t( 'markdown' )),
|
||||
here: this.linkHtml("http://daringfireball.net/projects/markdown/syntax", Diaspora.I18n.t( 'here' ))
|
||||
markdown: this.linkHtml("https://diasporafoundation.org/formatting", Diaspora.I18n.t("markdown")),
|
||||
here: this.linkHtml("https://daringfireball.net/projects/markdown/syntax", Diaspora.I18n.t("here"))
|
||||
}
|
||||
};
|
||||
/* eslint-enable camelcase */
|
||||
|
||||
this.TAGS_SUBS = {
|
||||
filter_tags_a: {
|
||||
|
||||
@@ -36,8 +36,9 @@ app.views.SinglePostContent = app.views.Base.extend({
|
||||
|
||||
var map = L.map(mapContainer[0]).setView([location.lat, location.lng], 14);
|
||||
var tiles = app.helpers.locations.getTiles();
|
||||
|
||||
tiles.addTo(map);
|
||||
if (tiles) {
|
||||
tiles.addTo(map);
|
||||
}
|
||||
|
||||
// put marker on map
|
||||
L.marker(location).addTo(map);
|
||||
|
||||
@@ -21,3 +21,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.aspect-membership {
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@@ -145,14 +145,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
#email-form{
|
||||
padding: 0;
|
||||
.form-group{
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#birth-date{
|
||||
text-align: center;
|
||||
select{
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<span class="caret" />
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu aspect_membership pull-right" unselectable="on">
|
||||
<ul class="dropdown-menu aspect-membership pull-right" unselectable="on">
|
||||
{{#each aspects}}
|
||||
<li
|
||||
{{#if membership}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<li class="hoverable">
|
||||
<a class="selectable toggle_selector" href="#">
|
||||
<a class="selectable toggle_selector aspect-membership" href="#">
|
||||
{{ t "aspect_navigation.select_all" }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -5,7 +5,7 @@ module MetaDataHelper
|
||||
include ActionView::Helpers::TagHelper
|
||||
|
||||
def og_prefix
|
||||
'og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#'
|
||||
"og: https://ogp.me/ns# article: https://ogp.me/ns/article# profile: https://ogp.me/ns/profile#"
|
||||
end
|
||||
|
||||
def site_url
|
||||
|
||||
@@ -68,11 +68,9 @@ class Photo < ApplicationRecord
|
||||
|
||||
def ownership_of_status_message
|
||||
message = StatusMessage.find_by_guid(self.status_message_guid)
|
||||
if self.status_message_guid && message
|
||||
self.diaspora_handle == message.diaspora_handle
|
||||
else
|
||||
true
|
||||
end
|
||||
return unless status_message_guid && message && diaspora_handle != message.diaspora_handle
|
||||
|
||||
errors.add(:base, "Photo must have the same owner as status message")
|
||||
end
|
||||
|
||||
def self.diaspora_initialize(params={})
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
require "attr_encrypted"
|
||||
|
||||
class User < ApplicationRecord
|
||||
include AuthenticationToken
|
||||
include Connecting
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
.row
|
||||
%p.col-md-12.alert.alert-info.text-center{role: "alert"}
|
||||
!= t("admins.stats.current_segment",
|
||||
post_yest: content_tag(:strong, posts[:yesterday] / user_count),
|
||||
post_day: content_tag(:strong, posts[:day_before] / user_count))
|
||||
post_yest: content_tag(:strong, "%0.2f" % (posts[:yesterday] / user_count)),
|
||||
post_day: content_tag(:strong, "%0.2f" % (posts[:day_before] / user_count)))
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
- else
|
||||
= t("shared.aspect_dropdown.toggle", count: selected_aspects.size)
|
||||
%span.caret
|
||||
%ul.dropdown-menu.pull-right{unSelectable: "on"}
|
||||
%ul.dropdown-menu.aspect-membership.pull-right{unSelectable: "on"}
|
||||
|
||||
%li.public.radio{"data-aspect_id" => "public", :class => ("selected" if public_selected?(selected_aspects))}
|
||||
%a
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
= t(".configure_your_pod")
|
||||
!= t(".configuration_info",
|
||||
database_path: content_tag(:code, "config/database.yml"),
|
||||
diaspora_path: content_tag(:code, "config/diaspora.yml"))
|
||||
diaspora_path: content_tag(:code, "config/diaspora.toml"))
|
||||
|
||||
.col-md-4
|
||||
.landing-info-card
|
||||
|
||||
@@ -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://podupti.me/"))
|
||||
poduptime: link_to("Poduptime", "https://diaspora.podupti.me/"))
|
||||
|
||||
!= t("registrations.closed.other_questions",
|
||||
wiki: link_to("Wiki", "https://wiki.diasporafoundation.org/Choosing_a_pod"))
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
tag_path(name: t("shared.publisher.new_user_prefill.newhere"))))
|
||||
%br
|
||||
= link_to(t("aspects.index.new_here.learn_more"),
|
||||
"http://wiki.diasporafoundation.org/Welcoming_Committee")
|
||||
"https://wiki.diasporafoundation.org/Welcoming_Committee")
|
||||
|
||||
.section.collapsed
|
||||
.title
|
||||
@@ -99,7 +99,7 @@
|
||||
faq: link_to(t("_help"), help_path),
|
||||
tutorial: link_to(t("aspects.index.help.tutorial_link_text"),
|
||||
"https://diasporafoundation.org/tutorials", target: "_blank"),
|
||||
wiki: link_to("Wiki", "http://wiki.diasporafoundation.org",
|
||||
wiki: link_to("Wiki", "https://wiki.diasporafoundation.org",
|
||||
target: "_blank"),
|
||||
target: "_blank")
|
||||
|
||||
|
||||
@@ -142,7 +142,9 @@
|
||||
Source code and materials
|
||||
|
||||
%p
|
||||
This Service runs on a diaspora* social network server. This source code is licensed under an <a href="http://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a> license which means you are allowed to and even encouraged to take the source code, modify it and use it.
|
||||
This Service runs on a diaspora* social network server. This source code is licensed under an
|
||||
<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a> license which means you are allowed
|
||||
to and even encouraged to take the source code, modify it and use it.
|
||||
|
||||
%p
|
||||
For full details about the diaspora* server <a href="https://github.com/diaspora/diaspora">see here</a>.
|
||||
|
||||
@@ -20,10 +20,11 @@
|
||||
|
||||
|
||||
= form_for "user", url: edit_user_path,
|
||||
html: {method: :put, class: "form-horizontal col-md-12", id: "email-form"} do |f|
|
||||
html: {method: :put, class: "form-horizontal", id: "email-form"} do |f|
|
||||
= f.error_messages
|
||||
.form-group
|
||||
= f.text_field :email, value: @user.unconfirmed_email || @user.email, class: "col-md-7 form-control"
|
||||
.col-sm-12
|
||||
= f.text_field :email, value: @user.unconfirmed_email || @user.email, class: "form-control"
|
||||
.clearfix= f.submit t(".change_email"), class: "btn btn-primary pull-right"
|
||||
- if @user.unconfirmed_email.present?
|
||||
%div= t(".email_awaiting_confirmation", email: @user.email, unconfirmed_email: @user.unconfirmed_email)
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
#!/usr/bin/env ruby
|
||||
begin
|
||||
load File.expand_path('../spring', __FILE__)
|
||||
rescue LoadError => e
|
||||
raise unless e.message.include?('spring')
|
||||
end
|
||||
require 'bundler/setup'
|
||||
load Gem.bin_path('cucumber', 'cucumber')
|
||||
|
||||
16
bin/guard
16
bin/guard
@@ -1,16 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'guard' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
require 'pathname'
|
||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
||||
Pathname.new(__FILE__).realpath)
|
||||
|
||||
require 'rubygems'
|
||||
require 'bundler/setup'
|
||||
|
||||
load Gem.bin_path('guard', 'guard')
|
||||
@@ -1,9 +1,4 @@
|
||||
#!/usr/bin/env ruby
|
||||
begin
|
||||
load File.expand_path('../spring', __FILE__)
|
||||
rescue LoadError => e
|
||||
raise unless e.message.include?('spring')
|
||||
end
|
||||
APP_PATH = File.expand_path('../config/application', __dir__)
|
||||
require_relative '../config/boot'
|
||||
require 'rails/commands'
|
||||
|
||||
5
bin/rake
5
bin/rake
@@ -1,9 +1,4 @@
|
||||
#!/usr/bin/env ruby
|
||||
begin
|
||||
load File.expand_path('../spring', __FILE__)
|
||||
rescue LoadError => e
|
||||
raise unless e.message.include?('spring')
|
||||
end
|
||||
require_relative '../config/boot'
|
||||
require 'rake'
|
||||
Rake.application.run
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
#!/usr/bin/env ruby
|
||||
begin
|
||||
load File.expand_path('../spring', __FILE__)
|
||||
rescue LoadError => e
|
||||
raise unless e.message.include?('spring')
|
||||
end
|
||||
require 'bundler/setup'
|
||||
load Gem.bin_path('rspec-core', 'rspec')
|
||||
|
||||
16
bin/spring
16
bin/spring
@@ -1,16 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
# This file loads spring without using Bundler, in order to be fast.
|
||||
# It gets overwritten when you run the `spring binstub` command.
|
||||
|
||||
unless defined?(Spring)
|
||||
require 'rubygems'
|
||||
require 'bundler'
|
||||
|
||||
lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read)
|
||||
if spring = lockfile.specs.detect { |spec| spec.name == "spring" }
|
||||
Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
|
||||
gem 'spring', spring.version
|
||||
require 'spring/binstub'
|
||||
end
|
||||
end
|
||||
@@ -5,22 +5,31 @@ require "yaml"
|
||||
module BundlerHelper
|
||||
def self.rails_env
|
||||
@rails_env ||= ENV["RAILS_ENV"] ||
|
||||
parse_value_from_file("diaspora.yml", "configuration", "server", "rails_environment") ||
|
||||
parse_value_from_file("defaults.yml", "defaults", "server", "rails_environment")
|
||||
parse_value_from_toml_file("diaspora.toml", "rails_environment") ||
|
||||
parse_value_from_yaml_file("diaspora.yml", "configuration", "server", "rails_environment") ||
|
||||
parse_value_from_yaml_file("defaults.yml", "defaults", "server", "rails_environment")
|
||||
end
|
||||
|
||||
def self.database
|
||||
@adapter ||= parse_value_from_file("database.yml", rails_env, "adapter")
|
||||
@adapter ||= parse_value_from_yaml_file("database.yml", rails_env, "adapter")
|
||||
|
||||
raise "No database adapter found, please fix your config/database.yml!" unless @adapter
|
||||
abort "No database adapter found, please fix your config/database.yml!" unless @adapter
|
||||
|
||||
@adapter.sub("mysql2", "mysql")
|
||||
end
|
||||
|
||||
private_class_method def self.parse_value_from_file(file, *keys)
|
||||
private_class_method def self.parse_value_from_yaml_file(file, *keys)
|
||||
path = File.join(__dir__, file)
|
||||
return YAML.load_file(path).dig(*keys) if File.file?(path)
|
||||
YAML.load_file(path).dig(*keys) if File.file?(path)
|
||||
end
|
||||
|
||||
puts "Configuration file #{path} not found, ensure it's present" # rubocop:disable Rails/Output
|
||||
private_class_method def self.parse_value_from_toml_file(file, key)
|
||||
path = File.join(__dir__, file)
|
||||
|
||||
if File.file?(path)
|
||||
File.read(path)[/^\s*#{Regexp.escape(key)}\s*=\s*["']([^"']+)["']\s*$/, 1]
|
||||
elsif !File.file? File.join(__dir__, "diaspora.yml")
|
||||
warn "WARNING: Configuration file #{path} not found, ensure it's present" # rubocop:disable Rails/Output
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,7 +9,7 @@ screenshot_opts = "--require features --format pretty"
|
||||
%>
|
||||
|
||||
# 'normal' test runs
|
||||
default: <%= std_opts %> -r features --tags 'not @nophantomjs'
|
||||
default: <%= std_opts %> -r features
|
||||
wip: -r features --tags @wip:3 --wip features
|
||||
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags 'not @wip and not @screenshots'
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ postgresql: &postgresql
|
||||
host: "localhost"
|
||||
port: 5432
|
||||
username: "postgres"
|
||||
password: ""
|
||||
password: "postgres"
|
||||
encoding: unicode
|
||||
|
||||
mysql: &mysql
|
||||
@@ -11,7 +11,7 @@ mysql: &mysql
|
||||
host: "localhost"
|
||||
port: 3306
|
||||
username: "root"
|
||||
password: ""
|
||||
password: "root"
|
||||
# socket: /tmp/mysql.sock
|
||||
encoding: utf8mb4
|
||||
collation: utf8mb4_bin
|
||||
@@ -31,6 +31,7 @@ common: &common
|
||||
#### CONFIGURE ABOVE #############################
|
||||
##################################################
|
||||
|
||||
|
||||
# Normally you don't need to touch anything here
|
||||
|
||||
combined: &combined
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
defaults:
|
||||
version:
|
||||
number: "0.7.14.0" # Do not touch unless doing a release, do not backport the version number that's in master
|
||||
number: "0.7.15.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/"
|
||||
|
||||
698
config/diaspora.toml.example
Normal file
698
config/diaspora.toml.example
Normal file
@@ -0,0 +1,698 @@
|
||||
## Some notes about this file:
|
||||
## - All comments start with a double #
|
||||
## - All settings are commented out with a single #
|
||||
## To change the default settings, you need both to uncomment the lines
|
||||
## AND, in most cases, to change the value that is given.
|
||||
## - Take care to keep proper quoting. All " must have a matching " at
|
||||
## the end of the same line. The same goes for '
|
||||
## - The values true, false and numbers should have no quote marks.
|
||||
## Everything else should.
|
||||
##
|
||||
## You can set and/or override all these settings through environment variables
|
||||
## with the following conversion rules:
|
||||
## - Strip the top level namespace (configuration, production, etc.)
|
||||
## - Build the path to the setting, for example environment.s3.enable
|
||||
## - Replace the dots with underscores: environment_s3_enable
|
||||
## - Convert to upper case: ENVIRONMENT_S3_ENABLE
|
||||
## - Specify lists/arrays as comma-separated values
|
||||
##
|
||||
## - For example, on Heroku:
|
||||
## heroku config:set SERVICES_TWITTER_KEY=yourkey SERVICES_TWITTER_SECRET=yoursecret
|
||||
|
||||
## You need to change or at least review the settings in this section
|
||||
## in order for your pod to work.
|
||||
[configuration.environment]
|
||||
|
||||
## Set the hostname of the machine you're running Diaspora on, as seen
|
||||
## from the internet. This should be the URL you want to use to
|
||||
## access the pod. So if you plan to use a reverse proxy, it should be
|
||||
## the URL the proxy listens on. DO NOT CHANGE THIS AFTER INITIAL SETUP!
|
||||
## However changing http to https is okay and has no consequences.
|
||||
## If you do change the URL, you will have to start again as the URL
|
||||
## will be hardcoded into the database.
|
||||
#url = "https://example.org/"
|
||||
|
||||
## Set the bundle of certificate authorities (CA) certificates.
|
||||
## This is specific to your operating system.
|
||||
## Examples (uncomment the relevant one or add your own):
|
||||
## For Debian, Ubuntu, Archlinux, Gentoo (package ca-certificates):
|
||||
#certificate_authorities = "/etc/ssl/certs/ca-certificates.crt"
|
||||
## For CentOS, Fedora:
|
||||
#certificate_authorities = "/etc/pki/tls/certs/ca-bundle.crt"
|
||||
|
||||
## URL for a remote Redis (default="localhost").
|
||||
## Don't forget to restrict IP access if you uncomment these!
|
||||
#redis = "redis://example_host"
|
||||
#redis = "redis://username:password@host:6379/0"
|
||||
#redis = "unix:///tmp/redis.sock"
|
||||
|
||||
## Require SSL (default=true).
|
||||
## When set, your pod will force the use of HTTPS in production mode.
|
||||
## Since OAuth2 requires SSL, Diaspora's future API might not work if
|
||||
## you're not using SSL. Also there is no guarantee that posting to
|
||||
## services will be possible if SSL is disabled.
|
||||
## Do not change this default unless you are sure!
|
||||
#require_ssl = true
|
||||
|
||||
## Single-process mode (default=false).
|
||||
## If set to true, Diaspora will work with just the appserver (Unicorn by
|
||||
## default) running. However, this makes it quite slow as intensive jobs
|
||||
## must be run all the time inside the request cycle. We strongly
|
||||
## recommended you leave this disabled for production setups.
|
||||
## Set to true to enable.
|
||||
#single_process_mode = false
|
||||
|
||||
## Set redirect URL for an external image host (Amazon S3 or other).
|
||||
## If hosting images for your pod on an external server (even your own),
|
||||
## add its URL here. All requests made to images under /uploads/images
|
||||
## will be redirected to https://images.example.org/uploads/images/
|
||||
#image_redirect_url = "https://images.example.org"
|
||||
|
||||
## Pubsub server (default="https://pubsubhubbub.appspot.com/"").
|
||||
## Diaspora is only tested against the default pubsub server.
|
||||
## You probably don't want to uncomment or change this.
|
||||
#pubsub_server = "https://pubsubhubbub.appspot.com/"
|
||||
|
||||
## Sidekiq - background processing
|
||||
[configuration.environment.sidekiq]
|
||||
|
||||
## Number of parallel threads Sidekiq uses (default=5).
|
||||
## If you touch this, please set the pool setting in your database.yml
|
||||
## to a value that's at minimum close to this! You can safely increase
|
||||
## it to 25 and more on a medium-sized pod. This applies per started
|
||||
## Sidekiq worker, so if you set it to 25 and start two workers, you'll
|
||||
## process up to 50 jobs in parallel.
|
||||
#concurrency = 5
|
||||
|
||||
## Number of times a job is retried (default=10).
|
||||
## There's an exponential effect to this: if you set this too high you
|
||||
## might get too many jobs building up in the queue.
|
||||
## Set it to 0 to disable it completely.
|
||||
#retry = 10
|
||||
|
||||
## Lines of backtrace that are stored on failure (default=15).
|
||||
## Set n to the required value. Set this to false to reduce Redis memory
|
||||
## usage (and log size) if you're not interested in this data.
|
||||
#backtrace = 15
|
||||
|
||||
## Number of jobs to keep in the dead queue (default=5000).
|
||||
## Jobs get into the dead queue after they failed and exhausted all retries.
|
||||
## Increasing this setting will increase the memory usage of Redis.
|
||||
## Once gone from the dead queue, a failed job is permanently lost and
|
||||
## cannot be retried manually.
|
||||
#dead_jobs_limit = 1000
|
||||
|
||||
## Number of seconds a job remains in the dead queue (default=3628800 (six weeks)).
|
||||
## Jobs get into the dead queue after they failed and exhausted all retries.
|
||||
## Increasing this setting will increase the memory usage of Redis.
|
||||
## Once gone from the dead queue, a failed job is permanently lost and
|
||||
## cannot be retried manually.
|
||||
#dead_jobs_timeout = 15552000 # 6 months
|
||||
|
||||
## Log file for Sidekiq (default="log/sidekiq.log")
|
||||
#log = "log/sidekiq.log"
|
||||
|
||||
## Use Amazon S3 instead of your local filesystem
|
||||
## to handle uploaded pictures (disabled by default).
|
||||
[configuration.environment.s3]
|
||||
|
||||
#enable = true
|
||||
#key = "change_me"
|
||||
#secret = "change_me"
|
||||
#bucket = "my_photos"
|
||||
#region = "us-east-1"
|
||||
|
||||
## Use max-age header on Amazon S3 resources (default=true).
|
||||
## When true, this allows locally cached images to be served for up to
|
||||
## one year. This can improve load speed and save requests to the image
|
||||
## host. Set to false to revert to browser defaults (usually less than
|
||||
## one year).
|
||||
#cache = true
|
||||
|
||||
[configuration.environment.assets]
|
||||
|
||||
## Serve static assets via the appserver (default=false).
|
||||
## This is highly discouraged for production use. Let your reverse
|
||||
## proxy/webserver do it by serving the files under public/ directly.
|
||||
#serve = false
|
||||
|
||||
## Upload your assets to S3 (default=false).
|
||||
#upload = false
|
||||
|
||||
## Specify an asset host. Ensure it does not have a trailing slash (/).
|
||||
#host = "http://cdn.example.org/diaspora"
|
||||
|
||||
## Logger configuration
|
||||
[configuration.environment.logging]
|
||||
|
||||
## Roll the application log on a daily basis (default=true).
|
||||
#logrotate.enable = true
|
||||
|
||||
## The number of days to keep (default=7)
|
||||
#logrotate.days = 7
|
||||
|
||||
## Enables the debug-logging for SQL (default=false)
|
||||
## This logs every SQL-statement!
|
||||
#debug.sql = true
|
||||
|
||||
## Enables the federation-debug-log (default=false)
|
||||
## This logs all XMLs that are used for the federation
|
||||
#debug.federation = true
|
||||
|
||||
## Settings affecting how ./script/server behaves.
|
||||
[configuration.server]
|
||||
|
||||
## Where the appserver should listen to (default="unix:tmp/diaspora.sock")
|
||||
#listen = "unix:tmp/diaspora.sock"
|
||||
#listen = "unix:/run/diaspora/diaspora.sock"
|
||||
#listen = "127.0.0.1:3000"
|
||||
|
||||
## Set the path for the PID file of the unicorn master process (default=tmp/pids/web.pid)
|
||||
#pid = "tmp/pids/web.pid"
|
||||
|
||||
## Rails environment (default="development").
|
||||
## The environment in which the server should be started by default.
|
||||
## Change this to "production" if you wish to run a production environment.
|
||||
#rails_environment = "production"
|
||||
|
||||
## Write unicorn stderr and stdout log.
|
||||
#stderr_log = "log/unicorn-stderr.log"
|
||||
#stdout_log = "log/unicorn-stdout.log"
|
||||
|
||||
## Number of Unicorn worker processes (default=2).
|
||||
## Increase this if you have many users.
|
||||
#unicorn_worker = 2
|
||||
|
||||
## Number of seconds before a request is aborted (default=90).
|
||||
## Increase if you get empty responses, or if large image uploads fail.
|
||||
## Decrease if you're under heavy load and don't care if some
|
||||
## requests fail.
|
||||
#unicorn_timeout = 90
|
||||
|
||||
## Embed a Sidekiq worker inside the unicorn process (default=false).
|
||||
## Useful for minimal Heroku setups.
|
||||
#embed_sidekiq_worker = false
|
||||
|
||||
## Number of Sidekiq worker processes (default=1).
|
||||
## In most cases it is better to
|
||||
## increase environment.sidekiq.concurrency instead!
|
||||
#sidekiq_workers = 1
|
||||
|
||||
## Diaspora has an internal XMPP web-client. If you want to enable the chat
|
||||
## functionality or want to use a custom XMPP server, then you should edit
|
||||
## the following configuration.
|
||||
## DEPRECATED: The chat suppport will be removed with Diaspora 0.8.0.0!
|
||||
[configuration.chat]
|
||||
|
||||
## Enable the chat service and all its components.
|
||||
##
|
||||
## Please make sure that you followed the Installation-Instructions first:
|
||||
## https://wiki.diasporafoundation.org/Integration/Chat#Installation.2FUpdate
|
||||
#enabled = true
|
||||
|
||||
## Custom XMPP server configuration goes here.
|
||||
[configuration.chat.server]
|
||||
|
||||
## Use the configuration bridge to prosody (default=true).
|
||||
## In case you want to run your own server or want to configure
|
||||
## prosody on your own, you should disable it.
|
||||
#enabled = false
|
||||
|
||||
## Set the directory in which to look for virtual hosts TLS certificates.
|
||||
#certs = "config/certs"
|
||||
|
||||
## XEP-0124 BOSH requests
|
||||
## The easiest way of avoiding certificate and mixed-content issues
|
||||
## is to use a proxy, e.g.:
|
||||
##
|
||||
## Apache: https://wiki.diasporafoundation.org/Integration/Chat#Apache2
|
||||
## Nginx: https://wiki.diasporafoundation.org/Integration/Chat#Nginx
|
||||
##
|
||||
## If you configured your proxy correctly,
|
||||
## you should set the proxy option to 'true'
|
||||
[configuration.chat.server.bosh]
|
||||
|
||||
## If you'd like to use a proxy, you should set the proxy
|
||||
## option to true, otherwise jsxc always tries to
|
||||
## connect directly to the port specified below.
|
||||
#proxy = true
|
||||
|
||||
## Configure the protocol used to access the BOSH endpoint
|
||||
#proto = "http"
|
||||
|
||||
## Configure the address that prosody should listen on.
|
||||
#address = "0.0.0.0"
|
||||
|
||||
## Configure the BOSH port.
|
||||
#port = 5280
|
||||
|
||||
## Configure the bind endpoint.
|
||||
#bind = "/http-bind"
|
||||
|
||||
## Specify chat server log behaviour here.
|
||||
[configuration.chat.server.log]
|
||||
|
||||
## Log file location.
|
||||
#info = "log/prosody.log"
|
||||
|
||||
## Error log file location.
|
||||
#error = "log/prosody.err"
|
||||
|
||||
## The debug level logs all XML sent and received by the server.
|
||||
#debug = false
|
||||
|
||||
## Displays the location of a post in a map.
|
||||
## If you enable this setting you use the map tiles of https://www.mapbox.com
|
||||
## which is reliable. There you have to create an account to get
|
||||
## an access token which is limited. If you want to get an unlimited account
|
||||
## you can write an email to team@diasporafoundation.org.
|
||||
## Please enable mapbox and fill out your access_token.
|
||||
[configuration.map.mapbox]
|
||||
|
||||
#enabled = false
|
||||
#access_token = "youraccesstoken"
|
||||
#style = "mapbox/streets-v11"
|
||||
|
||||
## Settings potentially affecting the privacy of your users.
|
||||
[configuration.privacy]
|
||||
|
||||
## Include jQuery from jquery.com's CDN (default=false).
|
||||
## Enabling this can reduce traffic and speed up load time since most
|
||||
## clients already have this one cached. When set to false (the default),
|
||||
## the jQuery library will be loaded from your pod's own resources.
|
||||
#jquery_cdn = false
|
||||
|
||||
## Google Analytics (disabled by default).
|
||||
## Provide a key to enable tracking by Google Analytics.
|
||||
#google_analytics_key = "yourkey"
|
||||
|
||||
## Piwik Tracking (disabled by default).
|
||||
## Provide a site ID and the host piwik is running on to enable
|
||||
## tracking through Piwik.
|
||||
#piwik.enable = true
|
||||
#piwik.host = "stats.example.org"
|
||||
#piwik.site_id = 1
|
||||
|
||||
## Statistics
|
||||
## Your pod will report its name, software version and whether
|
||||
## or not registrations are open via /statistics and NodeInfo.
|
||||
## Uncomment the options below to enable more statistics.
|
||||
[configuration.privacy.statistics]
|
||||
|
||||
## Local user total and 6 month active counts.
|
||||
#user_counts = true
|
||||
|
||||
## Local post total count.
|
||||
#post_counts = true
|
||||
#comment_counts = true
|
||||
|
||||
## Use Camo to proxy embedded remote images.
|
||||
## Do not enable this setting unless you have a working Camo setup. Using
|
||||
## camo to proxy embedded images will improve the privacy and security of
|
||||
## your pod's frontend, but it will increase the traffic on your server.
|
||||
## Check out https://wiki.diasporafoundation.org/Installation/Camo for
|
||||
## more details and installation instructions.
|
||||
[configuration.privacy.camo]
|
||||
|
||||
## Proxy images embedded via markdown (default=false).
|
||||
## Embedded images are quite often from non-SSL sites and may cause a
|
||||
## partial content warning, so this is recommended.
|
||||
#proxy_markdown_images = true
|
||||
|
||||
## Proxy Open Graph thumbnails (default=false).
|
||||
## Open Graph thumbnails may or may not be encrypted and loaded from
|
||||
## servers outside the network. Recommended.
|
||||
#proxy_opengraph_thumbnails = true
|
||||
|
||||
## Proxy remote pod's images (default=false).
|
||||
## Profile pictures and photos from other pods usually are encrypted,
|
||||
## so enabling this is only useful if you want to avoid HTTP requests to
|
||||
## third-party servers. This will create a lot of traffic on your camo
|
||||
## instance. You have been warned.
|
||||
#proxy_remote_pod_images = true
|
||||
|
||||
## Root of your Camo installation
|
||||
#root = "https://example.com/camo/"
|
||||
|
||||
## Shared key of your Camo installation
|
||||
#key = "example123example456example!"
|
||||
|
||||
## General settings
|
||||
[configuration.settings]
|
||||
|
||||
## Pod name (default="diaspora*")
|
||||
## The pod name displayed in various locations, including the header.
|
||||
#pod_name = "diaspora*"
|
||||
|
||||
## Allow registrations (default=true)
|
||||
## Set this to false to prevent people from signing up to your pod
|
||||
## without an invitation. Note that this needs to be set to true
|
||||
## (or commented out) to enable the first registration (you).
|
||||
#enable_registrations = true
|
||||
|
||||
## Auto-follow on sign-up (default=true)
|
||||
## Users will automatically follow a specified account on creation.
|
||||
## Set this to false if you don't want your users to automatically
|
||||
## follow an account upon creation.
|
||||
#autofollow_on_join = true
|
||||
|
||||
## Auto-follow account (default="hq@pod.diaspora.software")
|
||||
## The diaspora* HQ account keeps users up to date with news about Diaspora.
|
||||
## If you set another auto-follow account (for example your podmin account),
|
||||
## please consider resharing diaspora* HQ's posts for your pod's users!
|
||||
#autofollow_on_join_user = "hq@pod.diaspora.software"
|
||||
|
||||
## Liberapay.com is a free platform which allow donations like patreon
|
||||
## Set your username to include your Liberapay button
|
||||
#liberapay_username = "change_me"
|
||||
|
||||
## Bitcoin donations
|
||||
## You can provide a bitcoin address here to allow your users to provide
|
||||
## donations towards the running of their pod.
|
||||
#bitcoin_address = "change_me"
|
||||
|
||||
## Source code URL
|
||||
## URL to the source code your pod is currently running.
|
||||
## If not set your pod will provide a downloadable archive.
|
||||
#source_url = "https://example.org/username/diaspora"
|
||||
|
||||
## Changelog URL
|
||||
## URL to the changelog of the diaspora-version your pod is currently running.
|
||||
## If not set an auto-generated url to github is used.
|
||||
#changelog_url = "https://github.com/diaspora/diaspora/blob/master/Changelog.md"
|
||||
|
||||
## Default color theme
|
||||
## You can change which color theme is displayed when a user is not signed in
|
||||
## or has not selected any color theme from the available ones. You simply have
|
||||
## to enter the name of the theme's folder in "app/assets/stylesheets/color_themes/".
|
||||
## ("original" for the theme in "app/assets/stylesheets/color_themes/original/", for
|
||||
## example).
|
||||
#default_color_theme = "original"
|
||||
|
||||
## CURL debug (default=false)
|
||||
## Turn on extra verbose output when sending stuff. Note: you
|
||||
## don't need to touch this unless explicitly told to.
|
||||
#typhoeus_verbose = false
|
||||
|
||||
## Maximum number of parallel HTTP requests made to other pods (default=20)
|
||||
## Be careful, raising this setting will heavily increase the memory usage
|
||||
## of your Sidekiq workers.
|
||||
#typhoeus_concurrency = 20
|
||||
|
||||
## Maximum number of parallel user data export jobs (default=1)
|
||||
## Be careful, exports of big/old profiles can use a lot of memory, running
|
||||
## many of them in parallel can be a problem for small servers.
|
||||
#export_concurrency = 1
|
||||
|
||||
## Welcome Message settings
|
||||
[configuration.settings.welcome_message]
|
||||
|
||||
## Welcome Message on registration (default=false)
|
||||
## Send a message to new users after registration
|
||||
## to tell them about your pod and how things
|
||||
## are handled on it.
|
||||
#enabled = false
|
||||
|
||||
## Welcome Message subject (default="Welcome Message")
|
||||
## The subject of the conversation that is started
|
||||
## by your welcome message.
|
||||
#subject = "Welcome Message"
|
||||
|
||||
## Welcome Message text (default="Hello %{username}, welcome to diaspora*.")
|
||||
## The content of your welcome message.
|
||||
## The placeholder "%{username}" will be replaced by the username
|
||||
## of the new user.
|
||||
#text = "Hello %{username}, welcome to diaspora*."
|
||||
|
||||
## Invitation settings
|
||||
[configuration.settings.invitations]
|
||||
|
||||
## Enable invitations (default=true)
|
||||
## Set this to false if you don't want users to be able to send invites.
|
||||
#open = true
|
||||
|
||||
## Number of invitations per invite link (default=25)
|
||||
## Every user will see such a link if you have enabled
|
||||
## invitations on your pod.
|
||||
#count = 25
|
||||
|
||||
## Paypal donations (disabled by default)
|
||||
## You can set details for a Paypal button here to allow donations
|
||||
## towards running the pod.
|
||||
## First, enable the function, then set the currency in which you
|
||||
## wish to receive donations, and **either** a hosted button id
|
||||
## **or** an encrypted key for an unhosted button.
|
||||
[configuration.settings.paypal_donations]
|
||||
#enable = false
|
||||
|
||||
## Currency used (USD, EUR...)
|
||||
#currency = "USD"
|
||||
|
||||
## Hosted Paypal button ID
|
||||
#paypal_hosted_button_id = "change_me"
|
||||
|
||||
## OR encrypted key of unhosted button
|
||||
#paypal_unhosted_button_encrypted = "-----BEGIN PKCS7-----"
|
||||
|
||||
## Community spotlight (disabled by default)
|
||||
## The community spotlight shows new users public posts from people you
|
||||
## think are interesting in Diaspora's community. To add an account
|
||||
## to the community spotlight add the "spotlight" role to it.
|
||||
[configuration.settings.community_spotlight]
|
||||
#enable = true
|
||||
|
||||
## E-mail address to which users can make suggestions about who
|
||||
## should be in the community spotlight (optional).
|
||||
#suggest_email = "admin@example.org"
|
||||
|
||||
## Captcha settings
|
||||
[configuration.settings.captcha]
|
||||
|
||||
## Enable captcha (default=true)
|
||||
## Set this to false if you don't want to use captcha for signup process.
|
||||
#enable = true
|
||||
|
||||
## Captcha image size (default="120x20")
|
||||
#image_size = "120x20"
|
||||
|
||||
## Length of captcha text (default=5)(max=12)
|
||||
#captcha_length = 5
|
||||
|
||||
## Captcha image style (default="simply_green")
|
||||
## Available options for captcha image styles are: "simply_blue",
|
||||
## "simply_red" "simply_green", "charcoal_grey", "embossed_silver",
|
||||
## "all_black", "distorted_black", "almost_invisible", "random".
|
||||
#image_style = "simply_green"
|
||||
|
||||
## Captcha image distortion (default="low")
|
||||
## Sets the level of image distortion used in the captcha.
|
||||
## Available options are: "low", "medium", "high", "random".
|
||||
#distortion = "low"
|
||||
|
||||
## Terms of Service
|
||||
## Show a default or customized terms of service for users.
|
||||
## You can create a custom Terms of Service by placing a template
|
||||
## as app/views/terms/terms.haml or app/views/terms/terms.erb
|
||||
## The default terms of service that can be extended is
|
||||
## at app/views/terms/default.haml
|
||||
## NOTE! The default terms have not been checked over by a lawyer and
|
||||
## thus are unlikely to provide full legal protection for all situations
|
||||
## for a podmin using them. They are also not specific to all countries
|
||||
## and jurisdictions. If you are unsure, please check with a lawyer.
|
||||
## We provide these for podmins as some basic rules that podmins
|
||||
## can communicate to users easily via the diaspora* server software.
|
||||
## Uncomment to enable this feature.
|
||||
[configuration.settings.terms]
|
||||
|
||||
## First enable it by uncommenting below.
|
||||
#enable = true
|
||||
|
||||
## Important! If you enable the terms, you should always
|
||||
## set a location under which laws any disputes are governed
|
||||
## under. For example, country or state/country, depending
|
||||
## on the country in question.
|
||||
## If this is not set, the whole paragraph about governing
|
||||
## laws *is not shown* in the terms page.
|
||||
#jurisdiction = ""
|
||||
|
||||
## Age limit for signups.
|
||||
## Set a number to activate this setting. This age limit is shown
|
||||
## in the default ToS document.
|
||||
#minimum_age = false
|
||||
|
||||
## Maintenance
|
||||
## Various pod maintenance related settings are controlled from here.
|
||||
[configuration.settings.maintenance]
|
||||
|
||||
## Removing old inactive users can be done automatically by background
|
||||
## processing. The amount of inactivity is set by `after_days`. A warning
|
||||
## email will be sent to the user and after an additional `warn_days`, the
|
||||
## account will be automatically closed.
|
||||
## This maintenance is not enabled by default.
|
||||
#remove_old_users.enable = true
|
||||
#remove_old_users.after_days = 730
|
||||
#remove_old_users.warn_days = 30
|
||||
#remove_old_users.limit_removals_to_per_day = 100 ## Limit queuing for removal per day.
|
||||
|
||||
|
||||
|
||||
## Default meta tags
|
||||
## You can change here the default meta tags content included on the pages of your pod.
|
||||
## Title will be used for the opengraph og:site_name property while description will be used
|
||||
## for description and og:description.
|
||||
[configuration.settings.default_metas]
|
||||
#title = "diaspora* social network"
|
||||
#description = "diaspora* is the online social world where you are in control."
|
||||
|
||||
## CSP (Content Security Policy) header
|
||||
## CSP allows limiting origins from where resources are allowed to be loaded. This
|
||||
## improves security, since it helps to detect and mitigate cross-site scripting
|
||||
## and data injection attacks. The default policy of diaspora* allows all third
|
||||
## party domains from services that are included in diaspora*, like OEmbed
|
||||
## scripts, so you can safely activate it by setting `report_only` to false. If
|
||||
## you customized diaspora* (edited templates or added own JS), additional work
|
||||
## may be required. You can test the policy with the `report_uri`. Our default CSP
|
||||
## does not work with Google analytics or Piwik, because they inject JS code that
|
||||
## is blocked by CSP.
|
||||
[configuration.settings.csp]
|
||||
|
||||
## Report-Only header (default=false)
|
||||
## By default diaspora* adds a "Content-Security-Policy" header. If you set
|
||||
## this to true, the "Content-Security-Policy-Report-Only" header is added instead.
|
||||
#report_only = true
|
||||
|
||||
## CSP report URI
|
||||
## You can set an URI here, where the user agent reports violations as JSON document via a POST request.
|
||||
#report_uri = "/csp_violation_reports"
|
||||
|
||||
## Posting from Diaspora to external services (all are disabled by default).
|
||||
[configuration.services]
|
||||
|
||||
## OAuth credentials for Twitter
|
||||
#twitter.enable = true
|
||||
#twitter.key = "change_me"
|
||||
#twitter.secret = "change_me"
|
||||
|
||||
## OAuth credentials for Tumblr
|
||||
#tumblr.enable = true
|
||||
#tumblr.key = "change_me"
|
||||
#tumblr.secret = "change_me"
|
||||
|
||||
## OAuth credentials for Wordpress
|
||||
#wordpress.enable = true
|
||||
#wordpress.client_id = "change_me"
|
||||
#wordpress.secret = "change_me"
|
||||
|
||||
## Allow your pod to send emails for notifications, password recovery
|
||||
## and other purposes (disabled by default).
|
||||
[configuration.mail]
|
||||
|
||||
## First you need to enable it.
|
||||
#enable = true
|
||||
|
||||
## Sender address used in mail sent by Diaspora.
|
||||
#sender_address = "no-reply@example.org"
|
||||
|
||||
## This selects which mailer should be used. Use "smtp" for a smtp
|
||||
## connection or "sendmail" to use the sendmail binary.
|
||||
#method = "smtp"
|
||||
|
||||
## Ignored if method isn't "smtp".
|
||||
[configuration.mail.smtp]
|
||||
|
||||
## Host and port of the smtp server handling outgoing mail.
|
||||
## This should match the common name of the certificate sent by
|
||||
## the SMTP server, if it sends one. (default port=587)
|
||||
#host = "smtp.example.org"
|
||||
#port = 587
|
||||
|
||||
## Authentication required to send mail (default="plain").
|
||||
## Use one of "plain", "login" or "cram_md5". Use "none"
|
||||
## if server does not support authentication.
|
||||
#authentication = "plain"
|
||||
|
||||
## Credentials to log in to the SMTP server.
|
||||
## May be necessary if authentication is not "none".
|
||||
#username = "change_me"
|
||||
#password = "change_me"
|
||||
|
||||
## Automatically enable TLS (default=true).
|
||||
## Leave this commented out if authentication is set to "none".
|
||||
#starttls_auto = true
|
||||
|
||||
## The domain for the HELO command, if needed.
|
||||
#domain = "smtp.example.org"
|
||||
|
||||
## OpenSSL verify mode used when connecting to a SMTP server with TLS (default="peer").
|
||||
## Set this to "none" if and only if you have a self-signed certificate.
|
||||
## Possible values: "none", "peer".
|
||||
#openssl_verify_mode = "none"
|
||||
|
||||
## Ignored if method isn't "sendmail".
|
||||
[configuration.mail.sendmail]
|
||||
|
||||
## The path to the sendmail binary (default="/usr/sbin/sendmail")
|
||||
#location = "/usr/sbin/sendmail"
|
||||
|
||||
## Use exim and sendmail (default=false)
|
||||
#exim_fix = false
|
||||
|
||||
## Administrator settings
|
||||
[configuration.admins]
|
||||
|
||||
## Set the admin account.
|
||||
## This doesn't make the user an admin but is used when a generic
|
||||
## admin contact is needed, much like the postmaster role in mail
|
||||
## systems. Set only the username, NOT the full ID.
|
||||
#account = "podmin"
|
||||
|
||||
## E-mail address via which the administrator can be contacted.
|
||||
#podmin_email = "podmin@example.org"
|
||||
|
||||
## Settings related to relays
|
||||
## Relays are applications that exist to push public posts around to
|
||||
## pods which want to subscribe to them but would not otherwise
|
||||
## receive them due to not having direct contact with the remote pods.
|
||||
##
|
||||
## See more regarding relays: https://wiki.diasporafoundation.org/Relay_servers_for_public_posts
|
||||
[configuration.relay]
|
||||
## Enable this setting to send out public posts from this pod to a relay
|
||||
#outbound.send = true
|
||||
|
||||
## Change default remote relay url used for sending out here
|
||||
#outbound.url = "https://relay.iliketoast.net/receive/public"
|
||||
|
||||
## Enable this to receive public posts from relays
|
||||
#inbound.subscribe = true
|
||||
|
||||
## Scope is either "all" or "tags" (default="tags").
|
||||
## - "all", means this pod wants to receive all public posts from a relay
|
||||
## - "tags", means this pod wants only posts tagged with certain tags
|
||||
#inbound.scope = "tags"
|
||||
|
||||
## If scope is "tags", should we include tags that users on this pod follow?
|
||||
## These are added in addition to "pod_tags", if set.
|
||||
#inbound.include_user_tags = false
|
||||
|
||||
## If scope is "tags", a comma separated list of tags here can be set.
|
||||
## For example "linux,diaspora", to receive posts related to these tags
|
||||
#inbound.pod_tags = "linux,diaspora"
|
||||
|
||||
## Advanced - ignore unless you know better
|
||||
|
||||
## You can override settings defined above if you need
|
||||
## them to be different in different environments. "configuration"
|
||||
## in the namespaces above refers to all environments, replace it with a
|
||||
## specific environment here.
|
||||
|
||||
[production]
|
||||
#environment.redis = "redis://production.example.org:6379"
|
||||
|
||||
[production.mail.sendmail]
|
||||
#location = "/usr/local/bin/sendmail"
|
||||
|
||||
[development]
|
||||
#environment.redis = "redis://dev.example.org:6379"
|
||||
|
||||
[development.mail.sendmail]
|
||||
#location = "/opt/bin/sendmail"
|
||||
@@ -1,713 +0,0 @@
|
||||
## Some notes about this file:
|
||||
## - All comments start with a double #
|
||||
## - All settings are commented out with a single #
|
||||
## To change the default settings, you need both to uncomment the lines
|
||||
## AND, in most cases, to change the value that is given.
|
||||
## - Take care to keep proper indentation, that is by simply deleting
|
||||
## the original #, with no additional space before the setting's name.
|
||||
## - Take care to keep proper quoting. All ' must have a matching ' at
|
||||
## the end of the same line. The same goes for "
|
||||
## - Lines containing "## Section" are section headings. Do not edit them!
|
||||
## - Lists need the space after the -
|
||||
## - The values true, false and numbers should have no quote marks.
|
||||
## Single words don't need quote marks, but it doesn't do any harm to have them.
|
||||
##
|
||||
## You can set and/or override all these settings through environment variables
|
||||
## with the following conversion rules:
|
||||
## - Strip the top level namespace (configuration, production, etc.)
|
||||
## - Build the path to the setting, for example environment.s3.enable
|
||||
## - Replace the dots with underscores: environment_s3_enable
|
||||
## - Convert to upper case: ENVIRONMENT_S3_ENABLE
|
||||
## - Specify lists/arrays as comma-separated values
|
||||
##
|
||||
## - For example, on Heroku:
|
||||
## heroku config:set SERVICES_TWITTER_KEY=yourkey SERVICES_TWITTER_SECRET=yoursecret
|
||||
|
||||
configuration: ## Section
|
||||
|
||||
## You need to change or at least review the settings in this section
|
||||
## in order for your pod to work.
|
||||
environment: ## Section
|
||||
|
||||
## Set the hostname of the machine you're running Diaspora on, as seen
|
||||
## from the internet. This should be the URL you want to use to
|
||||
## access the pod. So if you plan to use a reverse proxy, it should be
|
||||
## the URL the proxy listens on. DO NOT CHANGE THIS AFTER INITIAL SETUP!
|
||||
## However changing http to https is okay and has no consequences.
|
||||
## If you do change the URL, you will have to start again as the URL
|
||||
## will be hardcoded into the database.
|
||||
#url: "https://example.org/"
|
||||
|
||||
## Set the bundle of certificate authorities (CA) certificates.
|
||||
## This is specific to your operating system.
|
||||
## Examples (uncomment the relevant one or add your own):
|
||||
## For Debian, Ubuntu, Archlinux, Gentoo (package ca-certificates):
|
||||
#certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
|
||||
## For CentOS, Fedora:
|
||||
#certificate_authorities: '/etc/pki/tls/certs/ca-bundle.crt'
|
||||
|
||||
## URL for a remote Redis (default=localhost).
|
||||
## Don't forget to restrict IP access if you uncomment these!
|
||||
#redis: 'redis://example_host'
|
||||
#redis: 'redis://username:password@host:6379/0'
|
||||
#redis: 'unix:///tmp/redis.sock'
|
||||
|
||||
## Require SSL (default=true).
|
||||
## When set, your pod will force the use of HTTPS in production mode.
|
||||
## Since OAuth2 requires SSL, Diaspora's future API might not work if
|
||||
## you're not using SSL. Also there is no guarantee that posting to
|
||||
## services will be possible if SSL is disabled.
|
||||
## Do not change this default unless you are sure!
|
||||
#require_ssl: true
|
||||
|
||||
## Single-process mode (default=false).
|
||||
## If set to true, Diaspora will work with just the appserver (Unicorn by
|
||||
## default) running. However, this makes it quite slow as intensive jobs
|
||||
## must be run all the time inside the request cycle. We strongly
|
||||
## recommended you leave this disabled for production setups.
|
||||
## Set to true to enable.
|
||||
#single_process_mode: false
|
||||
|
||||
## Sidekiq - background processing
|
||||
sidekiq: ## Section
|
||||
|
||||
## Number of parallel threads Sidekiq uses (default=5).
|
||||
## If you touch this, please set the pool setting in your database.yml
|
||||
## to a value that's at minimum close to this! You can safely increase
|
||||
## it to 25 and more on a medium-sized pod. This applies per started
|
||||
## Sidekiq worker, so if you set it to 25 and start two workers, you'll
|
||||
## process up to 50 jobs in parallel.
|
||||
#concurrency: 5
|
||||
|
||||
## Number of times a job is retried (default=10).
|
||||
## There's an exponential effect to this: if you set this too high you
|
||||
## might get too many jobs building up in the queue.
|
||||
## Set it to 0 to disable it completely.
|
||||
#retry: 10
|
||||
|
||||
## Lines of backtrace that are stored on failure (default=15).
|
||||
## Set n to the required value. Set this to false to reduce Redis memory
|
||||
## usage (and log size) if you're not interested in this data.
|
||||
#backtrace: 15
|
||||
|
||||
## Number of jobs to keep in the dead queue (default=5000).
|
||||
## Jobs get into the dead queue after they failed and exhausted all retries.
|
||||
## Increasing this setting will increase the memory usage of Redis.
|
||||
## Once gone from the dead queue, a failed job is permanently lost and
|
||||
## cannot be retried manually.
|
||||
# dead_jobs_limit: 1000
|
||||
|
||||
## Number of seconds a job remains in the dead queue (default=3628800 (six weeks)).
|
||||
## Jobs get into the dead queue after they failed and exhausted all retries.
|
||||
## Increasing this setting will increase the memory usage of Redis.
|
||||
## Once gone from the dead queue, a failed job is permanently lost and
|
||||
## cannot be retried manually.
|
||||
# dead_jobs_timeout: 15552000 # 6 months
|
||||
|
||||
## Log file for Sidekiq (default="log/sidekiq.log")
|
||||
#log: "log/sidekiq.log"
|
||||
|
||||
## Use Amazon S3 instead of your local filesystem
|
||||
## to handle uploaded pictures (disabled by default).
|
||||
s3: ## Section
|
||||
|
||||
#enable: true
|
||||
#key: 'change_me'
|
||||
#secret: 'change_me'
|
||||
#bucket: 'my_photos'
|
||||
#region: 'us-east-1'
|
||||
|
||||
## Use max-age header on Amazon S3 resources (default=true).
|
||||
## When true, this allows locally cached images to be served for up to
|
||||
## one year. This can improve load speed and save requests to the image
|
||||
## host. Set to false to revert to browser defaults (usually less than
|
||||
## one year).
|
||||
#cache : true
|
||||
|
||||
## Set redirect URL for an external image host (Amazon S3 or other).
|
||||
## If hosting images for your pod on an external server (even your own),
|
||||
## add its URL here. All requests made to images under /uploads/images
|
||||
## will be redirected to https://yourhost.tld/uploads/images/
|
||||
#image_redirect_url: 'https://images.example.org'
|
||||
|
||||
assets: ## Section
|
||||
|
||||
## Serve static assets via the appserver (default=false).
|
||||
## This is highly discouraged for production use. Let your reverse
|
||||
## proxy/webserver do it by serving the files under public/ directly.
|
||||
#serve: false
|
||||
|
||||
## Upload your assets to S3 (default=false).
|
||||
#upload: false
|
||||
|
||||
## Specify an asset host. Ensure it does not have a trailing slash (/).
|
||||
#host: http://cdn.example.org/diaspora
|
||||
|
||||
## Pubsub server (default='https://pubsubhubbub.appspot.com/').
|
||||
## Diaspora is only tested against the default pubsub server.
|
||||
## You probably don't want to uncomment or change this.
|
||||
#pubsub_server: 'https://pubsubhubbub.appspot.com/'
|
||||
|
||||
## Logger configuration
|
||||
logging: ## Section
|
||||
|
||||
logrotate: ## Section
|
||||
|
||||
## Roll the application log on a daily basis (default=true).
|
||||
#enable: true
|
||||
|
||||
## The number of days to keep (default=7)
|
||||
#days: 7
|
||||
|
||||
## Debug logging
|
||||
debug: ## Section
|
||||
|
||||
## Enables the debug-logging for SQL (default=false)
|
||||
## This logs every SQL-statement!
|
||||
#sql: true
|
||||
|
||||
## Enables the federation-debug-log (default=false)
|
||||
## This logs all XMLs that are used for the federation
|
||||
#federation: true
|
||||
|
||||
## Settings affecting how ./script/server behaves.
|
||||
server: ## Section
|
||||
## Where the appserver should listen to (default=unix:tmp/diaspora.sock)
|
||||
#listen: 'unix:tmp/diaspora.sock'
|
||||
#listen: 'unix:/run/diaspora/diaspora.sock'
|
||||
#listen: '127.0.0.1:3000'
|
||||
|
||||
## Set the path for the PID file of the unicorn master process (default=tmp/pids/web.pid)
|
||||
#pid: 'tmp/pids/web.pid'
|
||||
|
||||
## Rails environment (default='development').
|
||||
## The environment in which the server should be started by default.
|
||||
## Change this to 'production' if you wish to run a production environment.
|
||||
#rails_environment: 'development'
|
||||
|
||||
## Write unicorn stderr and stdout log.
|
||||
#stderr_log: 'log/unicorn-stderr.log'
|
||||
#stdout_log: 'log/unicorn-stdout.log'
|
||||
|
||||
## Number of Unicorn worker processes (default=2).
|
||||
## Increase this if you have many users.
|
||||
#unicorn_worker: 2
|
||||
|
||||
## Number of seconds before a request is aborted (default=90).
|
||||
## Increase if you get empty responses, or if large image uploads fail.
|
||||
## Decrease if you're under heavy load and don't care if some
|
||||
## requests fail.
|
||||
#unicorn_timeout: 90
|
||||
|
||||
## Embed a Sidekiq worker inside the unicorn process (default=false).
|
||||
## Useful for minimal Heroku setups.
|
||||
#embed_sidekiq_worker: false
|
||||
|
||||
## Number of Sidekiq worker processes (default=1).
|
||||
## In most cases it is better to
|
||||
## increase environment.sidekiq.concurrency instead!
|
||||
#sidekiq_workers: 1
|
||||
|
||||
## Diaspora has an internal XMPP web-client. If you want to enable the chat
|
||||
## functionality or want to use a custom XMPP server, then you should edit
|
||||
## the following configuration.
|
||||
chat: ## Section
|
||||
|
||||
## Enable the chat service and all its components.
|
||||
##
|
||||
## Please make sure that you followed the Installation-Instructions first:
|
||||
## https://wiki.diasporafoundation.org/Integration/Chat#Installation.2FUpdate
|
||||
#enabled: true
|
||||
|
||||
## Custom XMPP server configuration goes here.
|
||||
server: ## Section
|
||||
|
||||
## Use the configuration bridge to prosody (default=true).
|
||||
## In case you want to run your own server or want to configure
|
||||
## prosody on your own, you should disable it.
|
||||
#enabled: false
|
||||
|
||||
## Set the directory in which to look for virtual hosts TLS certificates.
|
||||
#certs: 'config/certs'
|
||||
|
||||
## XEP-0124 BOSH requests
|
||||
## The easiest way of avoiding certificate and mixed-content issues
|
||||
## is to use a proxy, e.g.:
|
||||
##
|
||||
## Apache: https://wiki.diasporafoundation.org/Integration/Chat#Apache2
|
||||
## Nginx: https://wiki.diasporafoundation.org/Integration/Chat#Nginx
|
||||
##
|
||||
## If you configured your proxy correctly,
|
||||
## you should set the proxy option to 'true'
|
||||
bosh: ## Section
|
||||
|
||||
## If you'd like to use a proxy, you should set the proxy
|
||||
## option to true, otherwise jsxc always tries to
|
||||
## connect directly to the port specified below.
|
||||
#proxy: true
|
||||
|
||||
## Configure the protocol used to access the BOSH endpoint
|
||||
#proto: http
|
||||
|
||||
## Configure the address that prosody should listen on.
|
||||
#address: '0.0.0.0'
|
||||
|
||||
## Configure the BOSH port.
|
||||
#port: 5280
|
||||
|
||||
## Configure the bind endpoint.
|
||||
#bind: '/http-bind'
|
||||
|
||||
## Specify log behaviour here.
|
||||
log: ## Section
|
||||
|
||||
## Log file location.
|
||||
#info: 'log/prosody.log'
|
||||
|
||||
## Error log file location.
|
||||
#error: 'log/prosody.err'
|
||||
|
||||
## The debug level logs all XML sent and received by the server.
|
||||
#debug: false
|
||||
|
||||
## Displays the location of a post in a map. Per default we are using the map
|
||||
## tiles of the Heidelberg University (http://giscience.uni-hd.de).
|
||||
## You also have the possibility to use the map tiles of https://www.mapbox.com
|
||||
## which is probably more reliable. There you have to create an account to get
|
||||
## an access token which is limited. If you want to get an unlimited account
|
||||
## you can write an email to team@diasporafoundation.org.
|
||||
## Please enable mapbox and fill out your access_token.
|
||||
map: ##Section
|
||||
|
||||
mapbox:
|
||||
#enabled: false
|
||||
#access_token: "youraccesstoken"
|
||||
#style: "mapbox/streets-v9"
|
||||
|
||||
## Settings potentially affecting the privacy of your users.
|
||||
privacy: ## Section
|
||||
|
||||
## Include jQuery from jquery.com's CDN (default=false).
|
||||
## Enabling this can reduce traffic and speed up load time since most
|
||||
## clients already have this one cached. When set to false (the default),
|
||||
## the jQuery library will be loaded from your pod's own resources.
|
||||
#jquery_cdn: false
|
||||
|
||||
## Google Analytics (disabled by default).
|
||||
## Provide a key to enable tracking by Google Analytics.
|
||||
#google_analytics_key:
|
||||
|
||||
## Piwik Tracking (disabled by default).
|
||||
## Provide a site ID and the host piwik is running on to enable
|
||||
## tracking through Piwik.
|
||||
piwik: ## Section
|
||||
|
||||
#enable: true
|
||||
#host: 'stats.example.org'
|
||||
#site_id: 1
|
||||
|
||||
## Statistics
|
||||
## Your pod will report its name, software version and whether
|
||||
## or not registrations are open via /statistics and NodeInfo.
|
||||
## Uncomment the options below to enable more statistics.
|
||||
statistics: ## Section
|
||||
|
||||
## Local user total and 6 month active counts.
|
||||
#user_counts: true
|
||||
|
||||
## Local post total count.
|
||||
#post_counts: true
|
||||
#comment_counts: true
|
||||
|
||||
## Use Camo to proxy embedded remote images.
|
||||
## Do not enable this setting unless you have a working Camo setup. Using
|
||||
## camo to proxy embedded images will improve the privacy and security of
|
||||
## your pod's frontend, but it will increase the traffic on your server.
|
||||
## Check out https://wiki.diasporafoundation.org/Installation/Camo for
|
||||
## more details and installation instructions.
|
||||
camo: ## Section
|
||||
|
||||
## Proxy images embedded via markdown (default=false).
|
||||
## Embedded images are quite often from non-SSL sites and may cause a
|
||||
## partial content warning, so this is recommended.
|
||||
#proxy_markdown_images: true
|
||||
|
||||
## Proxy Open Graph thumbnails (default=false).
|
||||
## Open Graph thumbnails may or may not be encrypted and loaded from
|
||||
## servers outside the network. Recommended.
|
||||
#proxy_opengraph_thumbnails: true
|
||||
|
||||
## Proxy remote pod's images (default=false).
|
||||
## Profile pictures and photos from other pods usually are encrypted,
|
||||
## so enabling this is only useful if you want to avoid HTTP requests to
|
||||
## third-party servers. This will create a lot of traffic on your camo
|
||||
## instance. You have been warned.
|
||||
#proxy_remote_pod_images: true
|
||||
|
||||
## Root of your Camo installation
|
||||
#root: "https://example.com/camo/"
|
||||
|
||||
## Shared key of your Camo installation
|
||||
#key: "example123example456example!"
|
||||
|
||||
## General settings
|
||||
settings: ## Section
|
||||
|
||||
## Pod name (default="diaspora*")
|
||||
## The pod name displayed in various locations, including the header.
|
||||
#pod_name: "diaspora*"
|
||||
|
||||
## Allow registrations (default=true)
|
||||
## Set this to false to prevent people from signing up to your pod
|
||||
## without an invitation. Note that this needs to be set to true
|
||||
## (or commented out) to enable the first registration (you).
|
||||
#enable_registrations: true
|
||||
|
||||
## Auto-follow on sign-up (default=true)
|
||||
## Users will automatically follow a specified account on creation.
|
||||
## Set this to false if you don't want your users to automatically
|
||||
## follow an account upon creation.
|
||||
#autofollow_on_join: true
|
||||
|
||||
## Auto-follow account (default='hq@pod.diaspora.software')
|
||||
## The diaspora* HQ account keeps users up to date with news about Diaspora.
|
||||
## If you set another auto-follow account (for example your podmin account),
|
||||
## please consider resharing diaspora* HQ's posts for your pod's users!
|
||||
#autofollow_on_join_user: 'hq@pod.diaspora.software'
|
||||
|
||||
## Welcome Message settings
|
||||
welcome_message: ##Section
|
||||
|
||||
## Welcome Message on registration (default=false)
|
||||
## Send a message to new users after registration
|
||||
## to tell them about your pod and how things
|
||||
## are handled on it.
|
||||
#enabled: false
|
||||
|
||||
## Welcome Message subject (default='Welcome Message')
|
||||
## The subject of the conversation that is started
|
||||
## by your welcome message.
|
||||
#subject: "Welcome Message"
|
||||
|
||||
## Welcome Message text (default='Hello %{username}, welcome to diaspora.')
|
||||
## The content of your welcome message.
|
||||
## The placeholder "%{username}" will be replaced by the username
|
||||
## of the new user.
|
||||
#text: "Hello %{username}, welcome to diaspora."
|
||||
|
||||
## Invitation settings
|
||||
invitations: ## Section
|
||||
|
||||
## Enable invitations (default=true)
|
||||
## Set this to false if you don't want users to be able to send invites.
|
||||
#open: true
|
||||
|
||||
## Number of invitations per invite link (default=25)
|
||||
## Every user will see such a link if you have enabled
|
||||
## invitations on your pod.
|
||||
#count: 25
|
||||
|
||||
## Paypal donations (disabled by default)
|
||||
## You can set details for a Paypal button here to allow donations
|
||||
## towards running the pod.
|
||||
## First, enable the function, then set the currency in which you
|
||||
## wish to receive donations, and **either** a hosted button id
|
||||
## **or** an encrypted key for an unhosted button.
|
||||
paypal_donations: ## Section
|
||||
#enable: false
|
||||
|
||||
## Currency used (USD, EUR...)
|
||||
#currency: USD
|
||||
|
||||
## hosted Paypal button id
|
||||
#paypal_hosted_button_id: "change_me"
|
||||
## OR encrypted key of unhosted button
|
||||
#paypal_unhosted_button_encrypted: "-----BEGIN PKCS7-----"
|
||||
|
||||
## Liberapay.com is a free platform which allow donations like patreon
|
||||
## Set your username to include your liberapay button
|
||||
# liberapay_username: "change_me"
|
||||
|
||||
## Bitcoin donations
|
||||
## You can provide a bitcoin address here to allow your users to provide
|
||||
## donations towards the running of their pod.
|
||||
#bitcoin_address: "change_me"
|
||||
|
||||
## Community spotlight (disabled by default)
|
||||
## The community spotlight shows new users public posts from people you
|
||||
## think are interesting in Diaspora's community. To add an account
|
||||
## to the community spotlight add the 'spotlight' role to it.
|
||||
community_spotlight: ## Section
|
||||
|
||||
#enable: true
|
||||
|
||||
## E-mail address to which users can make suggestions about who
|
||||
## should be in the community spotlight (optional).
|
||||
#suggest_email: 'admin@example.org'
|
||||
|
||||
## CURL debug (default=false)
|
||||
## Turn on extra verbose output when sending stuff. Note: you
|
||||
## don't need to touch this unless explicitly told to.
|
||||
#typhoeus_verbose: false
|
||||
|
||||
## Maximum number of parallel HTTP requests made to other pods (default=20)
|
||||
## Be careful, raising this setting will heavily increase the memory usage
|
||||
## of your Sidekiq workers.
|
||||
#typhoeus_concurrency: 20
|
||||
|
||||
## Maximum number of parallel user data export jobs (default=1)
|
||||
## Be careful, exports of big/old profiles can use a lot of memory, running
|
||||
## many of them in parallel can be a problem for small servers.
|
||||
#export_concurrency: 1
|
||||
|
||||
## Captcha settings
|
||||
captcha: ## Section
|
||||
|
||||
## Enable captcha (default=true)
|
||||
## Set this to false if you don't want to use captcha for signup process.
|
||||
#enable: true
|
||||
|
||||
## Captcha image size (default='120x20')
|
||||
#image_size: '120x20'
|
||||
|
||||
## Length of captcha text (default=5)(max=12)
|
||||
#captcha_length: 5
|
||||
|
||||
## Captcha image style (default='simply_green')
|
||||
## Available options for captcha image styles are: 'simply_blue',
|
||||
## 'simply_red' 'simply_green', 'charcoal_grey', 'embossed_silver',
|
||||
## 'all_black', 'distorted_black', 'almost_invisible', 'random'.
|
||||
#image_style: 'simply_green'
|
||||
|
||||
## Captcha image distortion (default='low')
|
||||
## Sets the level of image distortion used in the captcha.
|
||||
## Available options are: 'low', 'medium', 'high', 'random'.
|
||||
#distortion: 'low'
|
||||
|
||||
## Terms of Service
|
||||
## Show a default or customized terms of service for users.
|
||||
## You can create a custom Terms of Service by placing a template
|
||||
## as app/views/terms/terms.haml or app/views/terms/terms.erb
|
||||
## The default terms of service that can be extended is
|
||||
## at app/views/terms/default.haml
|
||||
## NOTE! The default terms have not been checked over by a lawyer and
|
||||
## thus are unlikely to provide full legal protection for all situations
|
||||
## for a podmin using them. They are also not specific to all countries
|
||||
## and jurisdictions. If you are unsure, please check with a lawyer.
|
||||
## We provide these for podmins as some basic rules that podmins
|
||||
## can communicate to users easily via the diaspora* server software.
|
||||
## Uncomment to enable this feature.
|
||||
terms: ## Section
|
||||
|
||||
## First enable it by uncommenting below.
|
||||
#enable: true
|
||||
|
||||
## Important! If you enable the terms, you should always
|
||||
## set a location under which laws any disputes are governed
|
||||
## under. For example, country or state/country, depending
|
||||
## on the country in question.
|
||||
## If this is not set, the whole paragraph about governing
|
||||
## laws *is not shown* in the terms page.
|
||||
#jurisdiction: ""
|
||||
|
||||
## Age limit for signups.
|
||||
## Set a number to activate this setting. This age limit is shown
|
||||
## in the default ToS document.
|
||||
#minimum_age: false
|
||||
|
||||
## Maintenance
|
||||
## Various pod maintenance related settings are controlled from here.
|
||||
maintenance: ## Section
|
||||
|
||||
## Removing old inactive users can be done automatically by background
|
||||
## processing. The amount of inactivity is set by `after_days`. A warning
|
||||
## email will be sent to the user and after an additional `warn_days`, the
|
||||
## account will be automatically closed.
|
||||
## This maintenance is not enabled by default.
|
||||
remove_old_users: ## Section
|
||||
|
||||
#enable: true
|
||||
#after_days: 730
|
||||
#warn_days: 30
|
||||
|
||||
## Limit queuing for removal per day.
|
||||
#limit_removals_to_per_day: 100
|
||||
|
||||
## Source code URL
|
||||
## URL to the source code your pod is currently running.
|
||||
## If not set your pod will provide a downloadable archive.
|
||||
#source_url: 'https://example.org/username/diaspora'
|
||||
|
||||
## Changelog URL
|
||||
## URL to the changelog of the diaspora-version your pod is currently running.
|
||||
## If not set an auto-generated url to github is used.
|
||||
#changelog_url: "https://github.com/diaspora/diaspora/blob/master/Changelog.md"
|
||||
|
||||
## Default color theme
|
||||
## You can change which color theme is displayed when a user is not signed in
|
||||
## or has not selected any color theme from the available ones. You simply have
|
||||
## to enter the name of the theme's folder in "app/assets/stylesheets/color_themes/".
|
||||
## ("original" for the theme in "app/assets/stylesheets/color_themes/original/", for
|
||||
## example).
|
||||
#default_color_theme: "original"
|
||||
|
||||
## Default meta tags
|
||||
## You can change here the default meta tags content included on the pages of your pod.
|
||||
## Title will be used for the opengraph og:site_name property while description will be used
|
||||
## for description and og:description.
|
||||
default_metas:
|
||||
#title: 'diaspora* social network'
|
||||
#description: 'diaspora* is the online social world where you are in control.'
|
||||
|
||||
## CSP (Content Security Policy) header
|
||||
## CSP allows limiting origins from where resources are allowed to be loaded. This
|
||||
## improves security, since it helps to detect and mitigate cross-site scripting
|
||||
## and data injection attacks. The default policy of diaspora* allows all third
|
||||
## party domains from services that are included in diaspora*, like OEmbed
|
||||
## scripts, so you can safely activate it by setting `report_only` to false. If
|
||||
## you customized diaspora* (edited templates or added own JS), additional work
|
||||
## may be required. You can test the policy with the `report_uri`. Our default CSP
|
||||
## does not work with Google analytics or Piwik, because they inject JS code that
|
||||
## is blocked by CSP.
|
||||
csp:
|
||||
|
||||
## Report-Only header (default=true)
|
||||
## By default diaspora* adds only a "Content-Security-Policy-Report-Only" header. If you set
|
||||
## this to false, the "Content-Security-Policy" header is added instead.
|
||||
#report_only: false
|
||||
|
||||
## CSP report URI (default=)
|
||||
## You can set an URI here, where the user agent reports violations as JSON document via a POST request.
|
||||
#report_uri: "/csp_violation_reports"
|
||||
|
||||
## Posting from Diaspora to external services (all are disabled by default).
|
||||
services: ## Section
|
||||
|
||||
## OAuth credentials for Twitter
|
||||
twitter: ## Section
|
||||
|
||||
#enable: true
|
||||
#key: 'abcdef'
|
||||
#secret: 'change_me'
|
||||
|
||||
## OAuth credentials for Tumblr
|
||||
tumblr: ## Section
|
||||
|
||||
#enable: true
|
||||
#key: 'abcdef'
|
||||
#secret: 'change_me'
|
||||
|
||||
## OAuth credentials for Wordpress
|
||||
wordpress: ## Section
|
||||
|
||||
#enable: true
|
||||
#client_id: 'abcdef'
|
||||
#secret: 'change_me'
|
||||
|
||||
## Allow your pod to send emails for notifications, password recovery
|
||||
## and other purposes (disabled by default).
|
||||
mail: ## Section
|
||||
|
||||
## First you need to enable it.
|
||||
#enable: true
|
||||
|
||||
## Sender address used in mail sent by Diaspora.
|
||||
#sender_address: 'no-reply@example.org'
|
||||
|
||||
## This selects which mailer should be used. Use 'smtp' for a smtp
|
||||
## connection or 'sendmail' to use the sendmail binary.
|
||||
#method: 'smtp'
|
||||
|
||||
## Ignore if method isn't 'smtp'.
|
||||
smtp: ## Section
|
||||
|
||||
## Host and port of the smtp server handling outgoing mail.
|
||||
## This should match the common name of the certificate sent by
|
||||
## the SMTP server, if it sends one. (default port=587)
|
||||
#host: 'smtp.example.org'
|
||||
#port: 587
|
||||
|
||||
## Authentication required to send mail (default='plain').
|
||||
## Use one of 'plain', 'login' or 'cram_md5'. Use 'none'
|
||||
## if server does not support authentication.
|
||||
#authentication: 'plain'
|
||||
|
||||
## Credentials to log in to the SMTP server.
|
||||
## May be necessary if authentication is not 'none'.
|
||||
#username: 'change_me'
|
||||
#password: 'change_me'
|
||||
|
||||
## Automatically enable TLS (default=true).
|
||||
## Leave this commented out if authentication is set to 'none'.
|
||||
#starttls_auto: true
|
||||
|
||||
## The domain for the HELO command, if needed.
|
||||
#domain: 'smtp.example.org'
|
||||
|
||||
## OpenSSL verify mode used when connecting to a SMTP server with TLS.
|
||||
## Set this to 'none' if you have a self-signed certificate. Possible
|
||||
## values: 'none', 'peer'.
|
||||
#openssl_verify_mode: 'none'
|
||||
|
||||
## Ignore if method isn't 'sendmail'
|
||||
sendmail: ## Section
|
||||
|
||||
## The path to the sendmail binary (default='/usr/sbin/sendmail')
|
||||
#location: '/usr/sbin/sendmail'
|
||||
|
||||
## Use exim and sendmail (default=false)
|
||||
#exim_fix: false
|
||||
|
||||
## Administrator settings
|
||||
admins: ## Section
|
||||
|
||||
## Set the admin account.
|
||||
## This doesn't make the user an admin but is used when a generic
|
||||
## admin contact is needed, much like the postmaster role in mail
|
||||
## systems. Set only the username, NOT the full ID.
|
||||
#account: "podmaster"
|
||||
|
||||
## E-mail address to contact the administrator.
|
||||
#podmin_email: 'podmin@example.org'
|
||||
|
||||
## Settings related to relays
|
||||
relay: ## Section
|
||||
|
||||
## Relays are applications that exist to push public posts around to
|
||||
## pods which want to subscribe to them but would not otherwise
|
||||
## receive them due to not having direct contact with the remote pods.
|
||||
##
|
||||
## See more regarding relays: https://wiki.diasporafoundation.org/Relay_servers_for_public_posts
|
||||
|
||||
outbound: ## Section
|
||||
## Enable this setting to send out public posts from this pod to a relay
|
||||
#send: false
|
||||
## Change default remote relay url used for sending out here
|
||||
#url: 'https://relay.iliketoast.net/receive/public'
|
||||
|
||||
inbound: ## Section
|
||||
## Enable this to receive public posts from relays
|
||||
#subscribe: false
|
||||
|
||||
## Scope is either 'all' or 'tags' (default).
|
||||
## - 'all', means this pod wants to receive all public posts from a relay
|
||||
## - 'tags', means this pod wants only posts tagged with certain tags
|
||||
#scope: tags
|
||||
|
||||
## If scope is 'tags', should we include tags that users on this pod follow?
|
||||
## These are added in addition to 'pod_tags', if set.
|
||||
#include_user_tags: false
|
||||
|
||||
## If scope is 'tags', a comma separated list of tags here can be set.
|
||||
## For example "linux,diaspora", to receive posts related to these tags
|
||||
#pod_tags:
|
||||
|
||||
## Here you can override settings defined above if you need
|
||||
## to have them different in different environments.
|
||||
production: ## Section
|
||||
environment: ## Section
|
||||
#redis: 'redis://production.example.org:6379'
|
||||
|
||||
development: ## Section
|
||||
environment: ## Section
|
||||
#redis: 'redis://production.example.org:6379'
|
||||
@@ -31,7 +31,7 @@ Devise.setup do |config|
|
||||
Rails.logger.warn("No smtp sender address set, mail may fail.")
|
||||
warn "WARNING: No smtp sender address set, mail may fail."
|
||||
end
|
||||
config.mailer_sender = "please-change-me@config-diaspora-yml.com"
|
||||
config.mailer_sender = "please-change-me@config-diaspora-toml.com"
|
||||
end
|
||||
|
||||
# Configure the class responsible to send e-mails.
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'sidekiq_middlewares'
|
||||
require 'sidekiq/middleware/i18n'
|
||||
require "sidekiq_middlewares"
|
||||
require "sidekiq/middleware/i18n"
|
||||
|
||||
# Single process-mode
|
||||
if AppConfig.environment.single_process_mode? && Rails.env != "test"
|
||||
if Rails.env == 'production'
|
||||
puts "WARNING: You are running Diaspora in production without Sidekiq"
|
||||
puts " workers turned on. Please set single_process_mode to false in"
|
||||
puts " config/diaspora.yml."
|
||||
if AppConfig.environment.single_process_mode? && !Rails.env.test?
|
||||
if Rails.env.production?
|
||||
warn "WARNING: You are running Diaspora in production without Sidekiq"
|
||||
warn " workers turned on. Please set single_process_mode to false in"
|
||||
warn " config/diaspora.toml."
|
||||
end
|
||||
require 'sidekiq/testing/inline'
|
||||
require "sidekiq/testing/inline"
|
||||
end
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
@@ -20,35 +20,15 @@ Sidekiq.configure_server do |config|
|
||||
chain.add SidekiqMiddlewares::CleanAndShortBacktraces
|
||||
end
|
||||
|
||||
# Set connection pool on Heroku
|
||||
database_url = ENV['DATABASE_URL']
|
||||
if(database_url)
|
||||
ENV['DATABASE_URL'] = "#{database_url}?pool=#{AppConfig.environment.sidekiq.concurrency.get}"
|
||||
# Set connection pool to match concurrency
|
||||
database_url = ENV["DATABASE_URL"]
|
||||
if database_url
|
||||
ENV["DATABASE_URL"] = "#{database_url}?pool=#{AppConfig.environment.sidekiq.concurrency.get}"
|
||||
ActiveRecord::Base.establish_connection
|
||||
end
|
||||
|
||||
# Make sure each Sidekiq process has its own sequence of UUIDs
|
||||
UUID.generator.next_sequence
|
||||
|
||||
# wrap the logger to add the sidekiq job context to the log
|
||||
class SidekiqLogger < SimpleDelegator
|
||||
SPACE = " "
|
||||
|
||||
# only info is used with context
|
||||
def info(data=nil)
|
||||
return false if Logger::Severity::INFO < level
|
||||
data = yield if data.nil? && block_given?
|
||||
__getobj__.info("#{context}#{data}")
|
||||
end
|
||||
|
||||
# from sidekiq/logging.rb
|
||||
def context
|
||||
c = Thread.current[:sidekiq_context]
|
||||
"#{c.join(SPACE)}: " if c && c.any?
|
||||
end
|
||||
end
|
||||
|
||||
Sidekiq::Logging.logger = SidekiqLogger.new(Logging.logger[Sidekiq])
|
||||
end
|
||||
|
||||
Sidekiq.configure_client do |config|
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
require "pathname"
|
||||
require "bundler/setup"
|
||||
require "configurate"
|
||||
require "configurate/provider/toml"
|
||||
|
||||
rails_env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
|
||||
|
||||
@@ -20,18 +21,35 @@ AppConfig ||= Configurate::Settings.create do
|
||||
add_provider Configurate::Provider::Dynamic
|
||||
add_provider Configurate::Provider::Env
|
||||
|
||||
unless heroku? || rails_env == "test" || File.exist?(File.join(config_dir, "diaspora.yml"))
|
||||
warn "FATAL: Configuration not found. Copy over diaspora.yml.example"
|
||||
warn " to diaspora.yml and edit it to your needs."
|
||||
unless heroku? ||
|
||||
rails_env == "test" ||
|
||||
File.exist?(File.join(config_dir, "diaspora.toml")) ||
|
||||
File.exist?(File.join(config_dir, "diaspora.yml"))
|
||||
warn "FATAL: Configuration not found. Copy over diaspora.toml.example"
|
||||
warn " to diaspora.toml and edit it to your needs."
|
||||
exit!
|
||||
end
|
||||
|
||||
add_provider Configurate::Provider::YAML,
|
||||
File.join(config_dir, "diaspora.yml"),
|
||||
namespace: rails_env, required: false
|
||||
add_provider Configurate::Provider::YAML,
|
||||
File.join(config_dir, "diaspora.yml"),
|
||||
namespace: "configuration", required: false
|
||||
if File.exist?(File.join(config_dir, "diaspora.toml"))
|
||||
if File.exist?(File.join(config_dir, "diaspora.yml"))
|
||||
warn "WARNING: diaspora.toml found, ignoring diaspora.yml. Move or delete diaspora.yml to remove this warning."
|
||||
end
|
||||
|
||||
add_provider Configurate::Provider::TOML,
|
||||
File.join(config_dir, "diaspora.toml"),
|
||||
namespace: rails_env, required: false
|
||||
add_provider Configurate::Provider::TOML,
|
||||
File.join(config_dir, "diaspora.toml"),
|
||||
namespace: "configuration", required: false
|
||||
else
|
||||
add_provider Configurate::Provider::YAML,
|
||||
File.join(config_dir, "diaspora.yml"),
|
||||
namespace: rails_env, required: false
|
||||
add_provider Configurate::Provider::YAML,
|
||||
File.join(config_dir, "diaspora.yml"),
|
||||
namespace: "configuration", required: false
|
||||
end
|
||||
|
||||
add_provider Configurate::Provider::YAML,
|
||||
File.join(config_dir, "defaults.yml"),
|
||||
namespace: rails_env
|
||||
|
||||
@@ -1,124 +1,87 @@
|
||||
# Copyright © 2011, Diaspora Inc. This file is
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
# Jordi Mallach <jordi@softcatala.org>, 2011.
|
||||
# Abans d'actualitzar aquesta traducció, si us plau poseu-vos en contacte
|
||||
# amb Jordi Mallach o Softcatalà <info@softcatala.org>.
|
||||
|
||||
|
||||
|
||||
ca:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "no s'ha trobat"
|
||||
already_confirmed: "ja estava confirmat"
|
||||
not_locked: "no estava blocat"
|
||||
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: "S'ha confirmat el vostre compte amb èxit. Ara esteu autenticat."
|
||||
new:
|
||||
resend_confirmation: "Torna a enviar les instruccions per a la confirmació"
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a confirmar la vostra contrasenya."
|
||||
failure:
|
||||
unauthenticated: "Heu d'entrar o registrar-vos abans de continuar."
|
||||
unconfirmed: "Heu de confirmar el vostre compte abans de continuar."
|
||||
locked: "El vostre compte és blocat."
|
||||
inactive: "El vostre compte encara no era actiu."
|
||||
invalid: "El nom d'usuari o contrasenya no són vàlids."
|
||||
invalid_token: "El testimoni d'autenticació és invàlid."
|
||||
locked: "El vostre compte és blocat."
|
||||
timeout: "La vostra sessió ha caducat, torneu a entrar per a continuar."
|
||||
inactive: "El vostre compte encara no era actiu."
|
||||
sessions:
|
||||
new:
|
||||
login: "Entra"
|
||||
username: "Nom d'usuari"
|
||||
password: "Contrasenya"
|
||||
sign_in: "Entra"
|
||||
remember_me: "Recorda'm"
|
||||
alpha_software: "Esteu a punt d'emprar programari en estat alfa."
|
||||
bugs_and_feedback: "Tingueu en compte que aneu a experimentar errors. Us encoratgem a emprar el botó de comentaris del costat dret del vostre navegador per a informar de qualsevol problema. Treballarem tan ràpid com siga possible per a resoldre tots aquells problemes de què informeu."
|
||||
bugs_and_feedback_mobile: "Tingueu en compte que aneu a experimentar errors. Us encoratgem a informar de qualsevol problema. Treballarem tan ràpid com siga possible per a resoldre tots aquells problemes de què informeu."
|
||||
modern_browsers: "només suporta navegadors moderns."
|
||||
signed_in: "Heu entrat correctament."
|
||||
signed_out: "Heu sortit correctament."
|
||||
unauthenticated: "Heu d'entrar o registrar-vos abans de continuar."
|
||||
unconfirmed: "Heu de confirmar el vostre compte abans de continuar."
|
||||
invitations:
|
||||
invitation_token_invalid: "Disculpeu! Aquest testimoni de invitació no és vàlid."
|
||||
send_instructions: "S'ha enviat la vostra invitació."
|
||||
updated: "S'ha establert la vostra contrasenya amb èxit. Ara esteu autenticat."
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
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}!"
|
||||
inviter:
|
||||
accept_at: "a %{url}, podeu acceptar-ho mitjançant l'enllaç següent."
|
||||
has_invited_you: "%{name}"
|
||||
have_invited_you: "%{names} us han convidat a unir-vos a Diàspora"
|
||||
reset_password_instructions:
|
||||
change: "Canvia la meua contrasenya"
|
||||
ignore: "Si no heu demanat això, ignoreu aquest correu electrònic."
|
||||
someone_requested: "Algú ha demanat un enllaç per a canviar la vostra contrasenya, i podeu fer-ho mitjançant l'enllaç següent."
|
||||
subject: "Instruccions per al restabliment de la contrasenya"
|
||||
wont_change: "La vostra contrasenya no es canviarà fins que no accediu l'enllaç anterior i en creeu una de nova."
|
||||
unlock_instructions:
|
||||
account_locked: "S'ha blocat el vostre compte degut a un nombre excessiu d'entrades fallides."
|
||||
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}!"
|
||||
passwords:
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a reestablir la vostra contrasenya."
|
||||
updated: "S'ha canviat la vostra contrasenya amb èxit. Ara esteu autenticat."
|
||||
edit:
|
||||
change_password: "Canvia la contrasenya"
|
||||
new:
|
||||
forgot_password: "Heu oblidat la vostra contrasenya?"
|
||||
no_account: "No existeix cap compte amb aquest correu electrònic. Si espereu una invitació, aquestes s'enviaran el més aviat possible."
|
||||
send_password_instructions: "Envia'm instruccions per a reestablir la contrasenya"
|
||||
confirmations:
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a confirmar la vostra contrasenya."
|
||||
confirmed: "S'ha confirmat el vostre compte amb èxit. Ara esteu autenticat."
|
||||
new:
|
||||
resend_confirmation: "Torna a enviar les instruccions per a la confirmació"
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a reestablir la vostra contrasenya."
|
||||
updated: "S'ha canviat la vostra contrasenya amb èxit. Ara esteu autenticat."
|
||||
registrations:
|
||||
destroyed: "Adéu! S'ha canceŀlat el vostre compte amb èxit. Esperem tornar a veure-vos molt aviat."
|
||||
signed_up: "Us heu registrat amb èxit. Si està habilitat, s'haurà enviat un correu electrònic de confirmació a la vostra adreça."
|
||||
updated: "Heu actualitzat el compte amb èxit."
|
||||
destroyed: "Adéu! S'ha canceŀlat el vostre compte amb èxit. Esperem tornar a veure-vos molt aviat."
|
||||
unlocks:
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a desblocar el vostre compte."
|
||||
unlocked: "El vostre compte s'ha desblocat amb èxit. Ara esteu autenticat."
|
||||
sessions:
|
||||
new:
|
||||
resend_unlock: "Torna a enviar les instruccions per al deblocatge"
|
||||
invitations:
|
||||
send_instructions: "S'ha enviat la vostra invitació."
|
||||
invitation_token_invalid: "Disculpeu! Aquest testimoni de invitació no és vàlid."
|
||||
updated: "S'ha establert la vostra contrasenya amb èxit. Ara esteu autenticat."
|
||||
mailer:
|
||||
welcome: "Benvingut/da, %{email}!"
|
||||
hello: "Hola, %{email}!"
|
||||
confirmation_instructions:
|
||||
subject: "Instruccions per a la confirmació"
|
||||
you_can_confirm: "Podeu confirmar el vostre compte mitjançant l'enllaç següent:"
|
||||
confirm: "Confirma el meu compte"
|
||||
reset_password_instructions:
|
||||
subject: "Instruccions per al restabliment de la contrasenya"
|
||||
someone_requested: "Algú ha demanat un enllaç per a canviar la vostra contrasenya, i podeu fer-ho mitjançant l'enllaç següent."
|
||||
change: "Canvia la meua contrasenya"
|
||||
wont_change: "La vostra contrasenya no es canviarà fins que no accediu l'enllaç anterior i en creeu una de nova."
|
||||
ignore: "Si no heu demanat això, ignoreu aquest correu electrònic."
|
||||
unlock_instructions:
|
||||
subject: "Instruccions per al desblocatge"
|
||||
account_locked: "S'ha blocat el vostre compte degut a un nombre excessiu d'entrades fallides."
|
||||
click_to_unlock: "Feu clic a l'enllaç següent per desblocar el vostre compte:"
|
||||
unlock: "Desbloca el meu compte"
|
||||
invitation_instructions:
|
||||
displaying_correctly: "No veieu aquest correu correctament? %{link}"
|
||||
view_in: "Vegeu-ho al vostre navegador."
|
||||
finally: "Finalment, és aquí"
|
||||
arrived: "La xarxa social que estaveu esperant ha arribat. Redissenyada, més segura i més divertida, %{strong_diaspora} és a punt per ajudar-vos a compartir i explorar el web d'una manera totalment nova."
|
||||
sign_up_now: "Registreu-vos ara →"
|
||||
friends_saying: "Què diuen els vostres amics…"
|
||||
more_people: "Més gent encara està contenta de veure-vos!"
|
||||
get_connected: "Connecteu-vos"
|
||||
get_connected_paragraph: "Un moviment internacional amb una visió compartida per un web millor, la principal característica de %{strong_diaspora} és la seva comunitat. Trobeu gent nova, connecteu amb els amics i passeu-ho bé amb nosaltres."
|
||||
be_yourself: "Sigues tu mateix"
|
||||
be_yourself_paragraph: "Internet ha creat formes noves i singulars perquè ens expressem. ${strong_diaspora} us permet ser vosaltres mateixos i compartir com preferiu, amb o sense el vostre nom real."
|
||||
cubbies: "Cubbi.es"
|
||||
have_fun: "Passeu-ho bé"
|
||||
have_fun_paragraph: "%{strong_diaspora} vol dir descobrir continguts i gent increïble a la xarxa. %{link}, la primera aplicació de %{strong_diaspora} és només el principi. Rebeu i compartiu el web amb tot el seu potencial."
|
||||
made_by_people: "%{strong_diaspora} es composa de gent que estima Internet tant com vosaltres. %{jointeam} o %{helpfund}!"
|
||||
join_team: "Uniu-vos a l'equip"
|
||||
or: "o"
|
||||
help_fund: "ajudeu amb el finançament del Diàspora*"
|
||||
unsubscribe: "Per desubscrivir-vos, feu click %{link}."
|
||||
here: "aquí"
|
||||
love: "Adéu,"
|
||||
team_diaspora: "L'equip del Diàspora"
|
||||
email_us: "Per preguntes generals o suport amb el vostre compte del diàspora, escriviu-nos a %{email}."
|
||||
email_address: "questions@joindiaspora.com"
|
||||
subject: "Us han convidat a unir-vos a Diàspora!"
|
||||
accept: "Accepta la invitació"
|
||||
ignore: "Si no voleu acceptar la invitació, ignoreu aquest correu electrònic."
|
||||
no_account_till: "No es crearà el vostre compte fins que no accediu l'enllaç anterior i us registreu."
|
||||
inviter:
|
||||
has_invited_you: "%{name}"
|
||||
have_invited_you: "%{names} us han convidat a unir-vos a Diàspora"
|
||||
accept_at: "a %{url}, podeu acceptar-ho mitjançant l'enllaç següent."
|
||||
login: "Entra"
|
||||
modern_browsers: "només suporta navegadors moderns."
|
||||
password: "Contrasenya"
|
||||
remember_me: "Recorda'm"
|
||||
sign_in: "Entra"
|
||||
username: "Nom d'usuari"
|
||||
signed_in: "Heu entrat correctament."
|
||||
signed_out: "Heu sortit correctament."
|
||||
shared:
|
||||
mail_signup_form:
|
||||
sign_up_for_an_invite: "Registreu-vos per a rebre una invitació!"
|
||||
links:
|
||||
sign_in: "Entreu"
|
||||
sign_up: "Registreu-vos"
|
||||
sign_up_closed: "El registre lliure està tancat ara mateix."
|
||||
forgot_your_password: "Heu oblidat la vostra contrasenya?"
|
||||
receive_confirmation: "No heu rebut les instruccions per a la confirmació?"
|
||||
receive_unlock: "No heu rebut les instruccions per al desblocatge?"
|
||||
sign_in: "Entreu"
|
||||
sign_up: "Registreu-vos"
|
||||
sign_up_closed: "El registre lliure està tancat ara mateix."
|
||||
unlocks:
|
||||
new:
|
||||
resend_unlock: "Torna a enviar les instruccions per al deblocatge"
|
||||
send_instructions: "En uns minuts rebreu un correu electrònic amb instruccions per a desblocar el vostre compte."
|
||||
unlocked: "El vostre compte s'ha desblocat amb èxit. Ara esteu autenticat."
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: "ja estava confirmat"
|
||||
not_found: "no s'ha trobat"
|
||||
not_locked: "no estava blocat"
|
||||
@@ -1,92 +1,114 @@
|
||||
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
gl:
|
||||
errors:
|
||||
messages:
|
||||
not_found: "non se atopou"
|
||||
already_confirmed: "xa foi confirmado"
|
||||
not_locked: "non foi bloqueado"
|
||||
|
||||
|
||||
gl:
|
||||
devise:
|
||||
failure:
|
||||
unauthenticated: 'Ten que acceder ou rexistrarse para continuar.'
|
||||
unconfirmed: 'Ten que confirmar a súa conta para continuar.'
|
||||
locked: 'A súa conta está bloqueada.'
|
||||
not_found_in_database: 'O enderezo ou contrasinal son incorrectos.'
|
||||
invalid: 'O correo electrónico ou contrasinal son incorrectos.'
|
||||
invalid_token: 'O código de autenticación é incorrecto.'
|
||||
timeout: 'A súa sesión rematou, volva identificarse para continuar.'
|
||||
inactive: 'Aínda non se activou a súa conta.'
|
||||
sessions:
|
||||
new:
|
||||
login: 'Acceder'
|
||||
username: 'Nome de usuario'
|
||||
password: 'Contrasinal'
|
||||
sign_in: 'Acceder'
|
||||
remember_me: "Lembrar os datos."
|
||||
modern_browsers: 'só é compatíbel con navegadores web modernos.'
|
||||
signed_in: 'Accedeu correctamente.'
|
||||
signed_out: 'Saíu correctamente.'
|
||||
passwords:
|
||||
send_instructions: 'Nuns minutos recibirá un correo electrónico con instrucións para cambiar o contrasinal.'
|
||||
updated: 'O seu contrasinal cambiouse correctamente, e xa está identificado co novo.'
|
||||
edit:
|
||||
change_password: "Cambiar o contrasinal"
|
||||
new_password: "Novo contrasinal"
|
||||
confirm_password: "Confirmar o contrasinal"
|
||||
new:
|
||||
forgot_password: "Esqueceu o contrasinal?"
|
||||
no_account: 'O enderezo non se corresponde con ningunha conta.'
|
||||
reset_password: "Restablecer o contrasinal"
|
||||
email: "Enderezo de correo"
|
||||
send_password_instructions: "Recibir instrucións para cambiar de contrasinal"
|
||||
confirmations:
|
||||
send_instructions: 'Nuns minutos recibirá un correo electrónico con instrucións para confirmar a súa conta.'
|
||||
confirmed: 'Confirmouse a súa conta, e xa está identificado con ela.'
|
||||
confirmed: "Confirmouse a túa conta, e xa estás identificado con ela."
|
||||
new:
|
||||
resend_confirmation: "Volver enviar as instrucións de confirmación"
|
||||
registrations:
|
||||
signed_up: 'Rexistrouse correctamente. Se así o solicitou, enviaráselle un correo electrónico de confirmación.'
|
||||
updated: 'A súa conta actualizouse correctamente.'
|
||||
destroyed: 'A súa conta eliminouse correctamente. Ata outra!'
|
||||
unlocks:
|
||||
send_instructions: 'Nuns minutos recibirá un correo electrónico con instrucións para desbloquear a súa conta.'
|
||||
unlocked: 'Desbloqueouse a súa conta, e xa está identificado con ela.'
|
||||
new:
|
||||
resend_unlock: "Volver enviar as instrucións de desbloqueo"
|
||||
send_instructions: "Nuns minutos recibirás un correo electrónico con instrucións para confirmar a túa conta."
|
||||
send_paranoid_instructions: "Se o enderezo de email existe na nosa base de datos, nuns minutos recibirás un correo con instruccións de cómo confirmar o enderezo de correo."
|
||||
failure:
|
||||
already_authenticated: "Xa estás conectada."
|
||||
inactive: "Aínda non se activou a túa conta."
|
||||
invalid: "Contrasinal ou %{authentication_keys} non válidos."
|
||||
invalid_token: "O código de autenticación é incorrecto."
|
||||
last_attempt: "Quédache un só intento antes de que se bloquee o acceso."
|
||||
locked: "A súa conta está bloqueada."
|
||||
not_found_in_database: "%{authentication_keys} ou contrasinal non válidos"
|
||||
timeout: "A sesión rematou, introduce as credenciais para continuar."
|
||||
unauthenticated: "Ten que acceder ou rexistrarse para continuar."
|
||||
unconfirmed: "Tes que confirmar a túa conta para continuar."
|
||||
invitations:
|
||||
send_instructions: 'Envióuselle unha invitación.'
|
||||
invitation_token_invalid: 'O código da invitación non é correcto.'
|
||||
updated: 'Estableceuse o seu contrasinal, e xa está identificado con el.'
|
||||
invitation_token_invalid: "O código da invitación non é correcto."
|
||||
send_instructions: "Envióuselle unha invitación."
|
||||
updated: "Estableceuse o seu contrasinal, e xa está identificado con el."
|
||||
mailer:
|
||||
welcome: "Benvido, %{email}!"
|
||||
hello: "Ola, %{email}!"
|
||||
confirmation_instructions:
|
||||
subject: 'Instrucións de confirmación'
|
||||
you_can_confirm: "Pode confirmar a súa conta mediante a seguinte ligazón:"
|
||||
confirm: "Confirmar a conta"
|
||||
reset_password_instructions:
|
||||
subject: 'Instrucións para cambiar o contrasinal'
|
||||
someone_requested: "Alguén solicitou unha ligazón para cambiar de contrasinal. Se foi vostede, siga a seguinte ligazón:"
|
||||
change: "Cambiar de contrasinal"
|
||||
wont_change: "Para cambiar de contrasinal, prema a seguinte ligazón e escolla un novo."
|
||||
ignore: "Se non foi vostede quen solicitou o cambio, pode ignorar esta mensaxe."
|
||||
unlock_instructions:
|
||||
subject: 'Instrucións para desbloquear a conta'
|
||||
account_locked: "A sú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:"
|
||||
unlock: "Desbloquear 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}!"
|
||||
inviter:
|
||||
has_invited_you: "%{name}"
|
||||
have_invited_you: "%{names} invitárono a unirse a diaspora*"
|
||||
accept_at: "en %{url}, pode aceptar seguindo a seguinte ligazón."
|
||||
has_invited_you: "%{name}"
|
||||
have_invited_you: "%{names} convidoute a unirte a diaspora*"
|
||||
password_change:
|
||||
subject: "Contrasinal cambiado"
|
||||
reset_password_instructions:
|
||||
change: "Cambiar de contrasinal"
|
||||
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"
|
||||
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}!"
|
||||
omniauth_callbacks:
|
||||
failure: "Non se puido autenticar desde %{kind} debido a \"%{reason}\"."
|
||||
success: "Autenticada correctamente desde a conta %{kind}"
|
||||
passwords:
|
||||
edit:
|
||||
change_password: "Cambiar o contrasinal"
|
||||
confirm_password: "Confirmar contrasinal"
|
||||
new_password: "Novo contrasinal"
|
||||
new:
|
||||
email: "Enderezo de correo-e"
|
||||
forgot_password: "Esqueceu o contrasinal?"
|
||||
reset_password: "Restablecer contrasinal"
|
||||
send_password_instructions: "Recibir instrucións para cambiar de contrasinal"
|
||||
no_token: "Non podes acceder a esta páxina sen proceder desde un correo de restablecemento de contrasinal. Se procedes de un correo de restablecemento de contrasinal, por favor asegúrate de que utilizas o URL completo que che proporcionaron."
|
||||
send_instructions: "Nuns minutos recibirás un correo electrónico con instrucións para cambiar o contrasinal."
|
||||
send_paranoid_instructions: "Se o enderezo de correo existe na nosa base de datos, recibirás en poucos minutos unha ligazón de restablecemento de contrasinal nun correo electrónico."
|
||||
updated: "O teu contrasinal cambiouse correctamente, e xa estás identificado co novo."
|
||||
updated_not_active: "Cambiaches correctamente o contrasinal."
|
||||
registrations:
|
||||
destroyed: "Ata outra! A conta eliminouse correctamente. Agardamos verte de novo por aquí."
|
||||
signed_up: "Rexistrouse correctamente. Se así o solicitou, enviaráselle un correo electrónico de confirmación."
|
||||
signed_up_but_inactive: "Rexistro correcto. Porén, non puidemos conectarte porque a conta aínda non foi activada."
|
||||
signed_up_but_locked: "Rexistro correcto. Porén, non puidemos conectarte porque a conta está bloqueada."
|
||||
signed_up_but_unconfirmed: "Enviamosche unha mensaxe de correo-e cunha ligazón de confirmación. Por favor sigue a ligazón para activar a conta."
|
||||
update_needs_confirmation: "Actualizaches correctamente a conta, mais precisamos validar o novo enderezo de correo. Por favor comproba o correo e sigue a ligazón enviada para confirmar o novo enderezo de correo."
|
||||
updated: "A túa conta actualizouse correctamente."
|
||||
sessions:
|
||||
already_signed_out: "Desconexión correcta."
|
||||
new:
|
||||
login: "Iniciar sesión"
|
||||
modern_browsers: "só é compatíbel con navegadores web modernos."
|
||||
password: "Contrasinal"
|
||||
remember_me: "Lembrar os datos."
|
||||
sign_in: "Acceder"
|
||||
username: "Nome de usuario"
|
||||
signed_in: "Accedeu correctamente."
|
||||
signed_out: "Saíu correctamente."
|
||||
shared:
|
||||
links:
|
||||
sign_in: 'Acceder'
|
||||
sign_up: 'Rexistrarse'
|
||||
sign_up_closed: 'Nestes momentos non poden rexistrarse contas.'
|
||||
forgot_your_password: 'Esqueceu o contrasinal?'
|
||||
receive_confirmation: 'Non recibiu as instrucións de confirmación?'
|
||||
receive_unlock: 'Non recibiu as instrucións de desbloqueo?'
|
||||
forgot_your_password: "Esqueceu o contrasinal?"
|
||||
receive_confirmation: "Non recibiu as instrucións de confirmación?"
|
||||
receive_unlock: "Non recibiu as instrucións de desbloqueo?"
|
||||
sign_in: "Acceder"
|
||||
sign_up: "Crear conta"
|
||||
sign_up_closed: "Nestes momentos non poden rexistrarse contas."
|
||||
unlocks:
|
||||
new:
|
||||
resend_unlock: "Volver enviar as instrucións de desbloqueo"
|
||||
send_instructions: "Nuns minutos recibirás un correo electrónico con instrucións para desbloquear a túa conta."
|
||||
send_paranoid_instructions: "Se a conta existe, nuns minutos recibirás un correo-e con instruccións para desbloqueala."
|
||||
unlocked: "Desbloqueouse a conta, por favor conéctate para continuar."
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: "xa foi confirmado, intenta conectarte"
|
||||
confirmation_period_expired: "necesita ser confirmado en %{period}, por favor solicita un novo"
|
||||
expired: "caducou, por favor solicita un novo"
|
||||
not_found: "non se atopou"
|
||||
not_locked: "non foi bloqueado"
|
||||
not_saved:
|
||||
one: "%{count} fallo non permite que se garde %{resource}:"
|
||||
other: "%{count} fallos non permiten que se garde %{resource}:"
|
||||
@@ -1,109 +1,114 @@
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
|
||||
sq:
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: Adresa juaj email u ripohua me sukses.
|
||||
send_instructions: Brenda pak minutash do t’ju vijë një email me udhëzime se si të ripohoni adresën tuaj email.
|
||||
send_paranoid_instructions: Nëse adresa juaj email ekziston në bazën tonë të të dhënave, brenda pak minutash do të merrni një email me udhëzime se si të ripohoni adresën tuaj email.
|
||||
confirmed: "Adresa juaj email i ripohua me sukses."
|
||||
new:
|
||||
resend_confirmation: Ridërgo udhëzime ripohimi
|
||||
resend_confirmation: "Ridërgo udhëzime ripohimi"
|
||||
send_instructions: "Brenda pak minutash do t’ju vijë një email me udhëzime se si të ripohoni adresën tuaj email."
|
||||
send_paranoid_instructions: "Nëse adresa juaj email gjendet në bazën tonë të të dhënave, brenda pak minutash do të merrni një email me udhëzime se si të ripohoni adresën tuaj email."
|
||||
failure:
|
||||
already_authenticated: Jeni i futur tashmë.
|
||||
inactive: Llogaria juaj ende s’është aktive.
|
||||
already_authenticated: "Jeni i futur tashmë."
|
||||
inactive: "Llogaria juaj s’është aktivizuar ende.\""
|
||||
invalid: "%{authentication_keys} ose fjalëkalim i pavlefshëm."
|
||||
locked: Llogaria juaj është e kyçur.
|
||||
last_attempt: Keni edhe një provë, përpara se llogaria juaj të kyçet.
|
||||
invalid_token: "Token mirëfilltësimi i pavlefshëm."
|
||||
last_attempt: "Keni edhe një përpjekje, përpara se llogaria juaj të kyçet."
|
||||
locked: "Llogaria juaj është e kyçur."
|
||||
not_found_in_database: "%{authentication_keys} ose fjalëkalim i pavlefshëm."
|
||||
timeout: Sesioni juaj skadoi. Ju lutemi, ribëni hyrjen, që të vazhdoni.
|
||||
unauthenticated: Duhet të bëni hyrjen ose të regjistroheni, përpara se të vazhdohet.
|
||||
unconfirmed: Duhet të ripohoni adresën tuaj email, përpara se të vazhdohet.
|
||||
invalid_token: Token i pavlefshëm mirëfilltësimi.
|
||||
timeout: "Sesionit tuaj i mbaroi koha, ju lutemi, hyni sërish që të vazhdoni."
|
||||
unauthenticated: "Përpara se të vazhdohet më tej, lypset të bëni hyrjen ose të regjistroheni."
|
||||
unconfirmed: "Duhet të ripohoni llogarinë tuaj, përpara se të vazhdohet."
|
||||
invitations:
|
||||
invitation_token_invalid: "Ndjesën tonë! Ky mekanizëm ose këto të dhëna ftese s’janë të vlefshme."
|
||||
send_instructions: "Ftesa juaj u dërgua."
|
||||
updated: "Fjalëkalimi juaj u caktua me sukses. Tani jeni i futur."
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
subject: Udhëzime ripohimi
|
||||
confirm: "Ripohim i llogarisë time"
|
||||
subject: "Udhëzime ripohimi"
|
||||
you_can_confirm: "Llogarinë tuaj mund të ripohoni përmes lidhjes më poshtë:"
|
||||
confirm: Ripohoje llogarinë time
|
||||
reset_password_instructions:
|
||||
subject: Udhëzime ricaktimi fjalëkalimi
|
||||
someone_requested: Dikush kërkoi një lidhje për ndryshimin e fjalëkalimit tuaj. Nëse qetë ju, këtë mund ta bëni përmes lidhjes më poshtë.
|
||||
change: Ndryshoje fjalëkalimin tim
|
||||
wont_change: Fjalëkalimi juaj s’do të ndryshohet pa u përdorur lidhja më sipër për të krijuar një të ri.
|
||||
ignore: Nëse këtë s’e kërkuat ju, ju lutemi, shpërfilleni këtë email.
|
||||
unlock_instructions:
|
||||
subject: Udhëzime shkyçjeje
|
||||
account_locked: Llogaria juaj është kyçur për shkak të një sasie të tepruar përpjekjesh të pasuksesshme për të hyrë në të.
|
||||
click_to_unlock: "Që të shkyçet llogaria juaj, klikoni lidhjen më poshtë:"
|
||||
unlock: Shkyçe llogarinë time
|
||||
password_change:
|
||||
subject: Fjalëkalimi Ndryshoi
|
||||
welcome: Mirë se vini te %{email}!
|
||||
hello: Tungjatjeta %{email}!
|
||||
hello: "Tungjatjeta %{email}!"
|
||||
inviter:
|
||||
accept_at: "te %{url}, mund ta pranoni përmes lidhjes më poshtë."
|
||||
has_invited_you: "%{name}"
|
||||
have_invited_you: "%{names} ju ka ftuar të merrni pjesë në diaspora*"
|
||||
accept_at: te %{url}, mund ta pranoni përmes lidhjes më poshtë.
|
||||
password_change:
|
||||
subject: "Fjalëkalimi u Ndryshua"
|
||||
reset_password_instructions:
|
||||
change: "Ndryshoje fjalëkalimin tim"
|
||||
ignore: "Nëse këtë s’e kërkuat ju, ju lutemi, shpërfilleni këtë email."
|
||||
someone_requested: "Dikush kërkoi një lidhje për ndryshimin e fjalëkalimit tuaj. Nëse qetë ju, këtë mund ta bëni përmes lidhjes më poshtë."
|
||||
subject: "Udhëzime ricaktimi fjalëkalimi"
|
||||
wont_change: "Fjalëkalimi juaj s’do të ndryshojë pa përdorur lidhjen më sipër dhe pa krijuar një të ri."
|
||||
unlock_instructions:
|
||||
account_locked: "Llogaria juaj është kyçur për shkak të një sasie të tepruar përpjekjesh të pasuksesshme për të hyrë në të."
|
||||
click_to_unlock: "Që të shkyçni llogarinë tuaj, klikoni lidhjen më poshtë:"
|
||||
subject: "Udhëzime shkyçjeje"
|
||||
unlock: "Shkyçe llogarinë time"
|
||||
welcome: "Mirë se vini %{email}!"
|
||||
omniauth_callbacks:
|
||||
failure: S’u bë dot mirëfilltësimi juaj nga %{kind}, ngaqë %{reason}.
|
||||
success: U bë me sukses mirëfilltësimi juaj nga llogaria %{kind}.
|
||||
failure: "S’u bë dot mirëfilltësimi juaj me %{kind}, ngaqë \"%{reason}\"."
|
||||
success: "Mirëfilltësimi u bë me sukses me llogarinë %{kind}."
|
||||
passwords:
|
||||
no_token: S’mund të hyni në këtë faqe pa ardhur nga një email ricaktimi fjalëkalimi. Nëse vini prej një email-i ricaktimi fjalëkalimi, ju lutemi, sigurohuni që përdorët ULR-në e plotë të dhënë atje.
|
||||
send_instructions: Brenda pak minutash do t’ju vijë një email me udhëzime se si të ricaktoni fjalëkalimin tuaj.
|
||||
send_paranoid_instructions: Nëse adresa juaj email ekziston në bazën tonë të të dhënave, brenda pak minutash do të merrni një email rikthimi fjalëkalimesh.
|
||||
updated: Fjalëkalimi juaj u ndryshua me sukses. Tani jeni i futur.
|
||||
updated_not_active: Fjalëkalimi juaj u ndryshua me sukses.
|
||||
edit:
|
||||
change_password: Ndryshoje fjalëkalimin tim
|
||||
new_password: Fjalëkalim i ri
|
||||
confirm_password: Ripohoni fjalëkalimin
|
||||
change_password: "Ndryshoje fjalëkalimin tim"
|
||||
confirm_password: "Ripohoni fjalëkalimin"
|
||||
new_password: "Fjalëkalim i ri"
|
||||
new:
|
||||
forgot_password: Harruat fjalëkalimin?
|
||||
no_account: S’ka llogari me këtë email
|
||||
reset_password: Ricaktoni fjalëkalimin
|
||||
email: Adresë email
|
||||
send_password_instructions: Dërgomëni udhëzime ricaktimi fjalëkalimi
|
||||
email: "Adresë email"
|
||||
forgot_password: "Harruat fjalëkalimin tuaj?"
|
||||
reset_password: "Ricaktoni fjalëkalimin"
|
||||
send_password_instructions: "Dërgomëni udhëzime ricaktimi fjalëkalimi"
|
||||
no_token: "S’mund të hyni në këtë faqe pa ardhur nga një email ricaktimi fjalëkalimi. Nëse vini prej një email-i ricaktimi fjalëkalimi, ju lutemi, sigurohuni se përdorët URL-në e plotë të dhënë në të."
|
||||
send_instructions: "Brenda pak minutash do t’ju vijë një email me udhëzime se si të ricaktoni fjalëkalimin tuaj."
|
||||
send_paranoid_instructions: "Nëse adresa juaj email gjendet në bazën tonë të të dhënave, brenda pak minutash, në adresën tuaj email, do të merrni një lidhje rimarrjeje fjalëkalimi."
|
||||
updated: "Fjalëkalimi juaj u ndryshua me sukses. Tani jeni i futur."
|
||||
updated_not_active: "Fjalëkalimi juaj u ndryshua me sukses."
|
||||
registrations:
|
||||
destroyed: Shëndet! Llogaria juaj u fshi me sukses. Shpresojmë t’ju shohim prapë së shpejti.
|
||||
signed_up: U regjistruat me sukses. Në qoftë e aktivizuar mundësia përkatëse, ju është dërguar një mesazh ripohimi te email-i juaj.
|
||||
signed_up_but_inactive: Jeni regjistruar me sukses. Megjithatë, s’e bëmë dot hyrjen tuaj, ngaqë llogaria juaj s’është ende aktive.
|
||||
signed_up_but_locked: Jeni regjistruar me sukses. Megjithatë, s’e bëmë dot hyrjen tuaj, ngaqë llogaria juaj është e kyçur.
|
||||
signed_up_but_unconfirmed: Te adresa juaj email është dërguar një mesazh me një lidhje ripohimi. Ju lutemi, që të aktivizoni llogarinë tuaj, ndiqni lidhjen.
|
||||
update_needs_confirmation: E përditësuat me sukses llogarinë tuaj, por na duhet të verifikojmë adresën tuaj të re email. Ju lutemi, që të ripohoni adresën tuaj të re email kontrolloni email-in tuaj.
|
||||
updated: Llogaria juaj u përditësua me sukses.
|
||||
destroyed: "Shëndet! Llogaria juaj u fshi me sukses. Shpresojmë t’ju shohim prapë së shpejti."
|
||||
signed_up: "U regjistruat me sukses. Po qe se mundësia përkatëse është e aktivizuar, ju është dërguar një mesazh ripohimi te email-i juaj."
|
||||
signed_up_but_inactive: "Jeni regjistruar me sukses. Megjithatë, s’bëmë dot futjen tuaj, ngaqë llogaria juaj s’është aktivizuar ende."
|
||||
signed_up_but_locked: "Jeni regjistruar me sukses. Megjithatë, s’bëmë dot futjen tuaj, ngaqë llogaria juaj është e kyçur."
|
||||
signed_up_but_unconfirmed: "Te adresa juaj email është dërguar një lidhje ripohimi. Që të aktivizoni llogarinë tuaj, ju lutemi, ndiqni lidhjen."
|
||||
update_needs_confirmation: "E përditësuat me sukses llogarinë tuaj, por na duhet të verifikojmë adresën tuaj të re email. Që të ripohoni adresën tuaj të re email, ju lutemi, shihni email-in tuaj dhe ndiqni lidhjen e ripohimit."
|
||||
updated: "Llogaria juaj u përditësua me sukses."
|
||||
sessions:
|
||||
signed_in: Hytë me sukses.
|
||||
signed_out: Dolët me sukses.
|
||||
already_signed_out: Dolët me sukses.
|
||||
already_signed_out: "Dolët me sukses."
|
||||
new:
|
||||
login: Hyni
|
||||
username: Emër përdoruesi
|
||||
password: Fjalëkalim
|
||||
sign_in: Hyni
|
||||
remember_me: Mbamë mend
|
||||
modern_browsers: mbulohen vetëm shfletues modernë.
|
||||
unlocks:
|
||||
send_instructions: Brenda pak minutash do t’ju vijë një email me udhëzime se si të shkyçni llogarinë tuaj.
|
||||
send_paranoid_instructions: Nëse llogaria juaj ekziston, brenda pak minutash do t’ju vijë një email me udhëzime se si ta shkyçni.
|
||||
unlocked: Llogaria juaj u shkyç me sukses. Ju lutemi, që të vazhdohet, bëni hyrjen.
|
||||
new:
|
||||
resend_unlock: Ridërgo udhëzime shkyçjeje
|
||||
invitations:
|
||||
send_instructions: Ftesa juaj u dërgua.
|
||||
invitation_token_invalid: Ndjesën tonë! Ky mekanizëm ftese s’është i vlefshëm.
|
||||
updated: Fjalëkalimi juaj u caktua me sukses. Tani jeni i futur.
|
||||
login: "Hyni"
|
||||
modern_browsers: "mbulon vetëm shfletuesit modernë."
|
||||
password: "Fjalëkalim"
|
||||
remember_me: "Mbamë mend"
|
||||
sign_in: "Hyni"
|
||||
username: "Emër përdoruesi"
|
||||
signed_in: "Hytë me sukses."
|
||||
signed_out: "Dolët me sukses."
|
||||
shared:
|
||||
links:
|
||||
sign_in: Hyni
|
||||
sign_up: Krijoni llogari
|
||||
sign_up_closed: Regjistrimet e lira janë të mbyllura hëpërhë.
|
||||
forgot_your_password: Harruat fjalëkalimin tuaj?
|
||||
receive_confirmation: S’i morët udhëzimet për ripohimin?
|
||||
receive_unlock: S’i morët udhëzimet për shkyçjen?
|
||||
forgot_your_password: "Harruat fjalëkalimin tuaj?"
|
||||
receive_confirmation: "S’i morët udhëzimet për ripohimin?"
|
||||
receive_unlock: "S’i morët udhëzimet për shkyçjen?"
|
||||
sign_in: "Hyni"
|
||||
sign_up: "Krijoni llogari"
|
||||
sign_up_closed: "Hëpërhë regjistrimet e hapura janë mbyllur."
|
||||
unlocks:
|
||||
new:
|
||||
resend_unlock: "Ridërgoji udhëzimet për shkyçje"
|
||||
send_instructions: "Brenda pak minutash do t’ju vijë një email me udhëzime se si të shkyçni llogarinë tuaj."
|
||||
send_paranoid_instructions: "Nëse llogaria juaj ekziston, brenda pak minutash do të merrni një email me udhëzime se si të shkyçet ajo."
|
||||
unlocked: "Llogaria juaj u shkyç me sukses. Që të vazhdohet, ju lutemi, bëni hyrjen."
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: është ripohuar tashmë, ju lutemi, provoni të bëni hyrjen
|
||||
confirmation_period_expired: lypset të ripohohet brenda %{period}, ju lutemi, kërkoni një të ri
|
||||
expired: ka skaduar, ju lutemi, kërkoni një të ri
|
||||
not_found: s’u gjet
|
||||
not_locked: s’qe kyçur
|
||||
already_confirmed: "qe e ripohuar tashmë, ju lutemi, provoni të bëni hyrjen"
|
||||
confirmation_period_expired: "duhet ripohuar brenda %{period}, ju lutemi, kërkoni një të re"
|
||||
expired: "ka skaduar, ju lutemi, kërkoni një të re"
|
||||
not_found: "s’u gjet"
|
||||
not_locked: "s’qe kyçur"
|
||||
not_saved:
|
||||
one: "1 gabim ia pengoi ruajtjen këtij %{resource}:"
|
||||
other: "%{count} gabime ia penguan ruajtjen këtij %{resource}:"
|
||||
one: "Ruajtja e këtij %{resource} u pengua nga një gabim:"
|
||||
other: "Ruajtja e këtij %{resource} u pengua nga %{count} gabime:"
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,148 +1,120 @@
|
||||
# Copyright © 2011, 2012, 2013 Diaspora Inc. This file is
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
#
|
||||
# Jordi Mallach <jordi@softcatala.org>, 2011, 2012, 2013.
|
||||
# Abans d'actualitzar aquesta traducció, si us plau poseu-vos en contacte
|
||||
# amb Jordi Mallach o Softcatalà <info@softcatala.org>.
|
||||
|
||||
|
||||
|
||||
ca:
|
||||
javascripts:
|
||||
confirm_dialog: "N'esteu segur?"
|
||||
delete: "Suprimeix"
|
||||
ignore: "Omet"
|
||||
ignore_user: "Voleu ignorar aquest usuari?"
|
||||
timeago:
|
||||
prefixAgo: "fa"
|
||||
prefixFromNow: "fa"
|
||||
suffixAgo: ""
|
||||
suffixFromNow: ""
|
||||
seconds: "menys d'un minut"
|
||||
minute: "aproximadament un minut"
|
||||
minutes: "%d minuts"
|
||||
hour: "aproximadament una hora"
|
||||
hours: "aproximadament %d hours"
|
||||
day: "un dia"
|
||||
days: "%d dies"
|
||||
month: "aproximadament un mes"
|
||||
months: "%d mesos"
|
||||
year: "aproximadament un any"
|
||||
years: "%d anys"
|
||||
my_activity: "La meva activitat"
|
||||
my_stream: "Flux"
|
||||
videos:
|
||||
watch: "Visualitza aquest video a <%= provider %>"
|
||||
unknown: "El tipus de vídeo és desconegut"
|
||||
search_for: "Cerca per <%= name %>"
|
||||
publisher:
|
||||
at_least_one_aspect: "Heu de publicar en almenys un aspecte."
|
||||
limited: "Limitat - la vostra publicació només serà visible per a la gent amb qui esteu compartint"
|
||||
public: "Públic - la vostra publicació serà visible per a tothom i serà trobada pels cercadors"
|
||||
infinite_scroll:
|
||||
no_more: "No hi ha més publicacions."
|
||||
aspect_dropdown:
|
||||
add_to_aspect: "Afegeix el contacte"
|
||||
select_aspects: "Selecciona els aspectes"
|
||||
all_aspects: "Tots els aspectes"
|
||||
stopped_sharing_with: "Heu deixat de compartir amb <%= name %>."
|
||||
started_sharing_with: "Heu començat a compartir amb <%= name %>!"
|
||||
error: "No s'ha pogut començar a compartir amb <%= name %>. L'esteu ignorant?"
|
||||
select_aspects: "Selecciona els aspectes"
|
||||
started_sharing_with: "Heu començat a compartir amb <%= name %>!"
|
||||
stopped_sharing_with: "Heu deixat de compartir amb <%= name %>."
|
||||
toggle:
|
||||
zero: "Selecciona els aspectes"
|
||||
one: "En <%= count %> aspecte"
|
||||
other: "En <%= count %> aspectes"
|
||||
show_more: "mostra'n més"
|
||||
failed_to_like: "No s'ha pogut comunicar que us agrada!"
|
||||
failed_to_post_message: "No s'ha pogut publicar el missatge!"
|
||||
comments:
|
||||
show: "mostra tots els comentaris"
|
||||
hide: "amaga els comentaris"
|
||||
reshares:
|
||||
duplicate: "És bona, oi? Ja heu tornat a compartir aquesta publicació!"
|
||||
successful: "S'ha tornat a compartir la publicació amb èxit!"
|
||||
post: "Voleu tornar a compartir la publicació de <%= name %>?"
|
||||
zero: "Selecciona els aspectes"
|
||||
aspect_navigation:
|
||||
select_all: "Selecciona'ls tots"
|
||||
deselect_all: "Desselecciona'ls tots"
|
||||
no_aspects: "No heu seleccionat cap aspecte"
|
||||
select_all: "Selecciona'ls tots"
|
||||
comments:
|
||||
hide: "amaga els comentaris"
|
||||
show: "mostra tots els comentaris"
|
||||
confirm_dialog: "N'esteu segur?"
|
||||
delete: "Suprimeix"
|
||||
failed_to_post_message: "No s'ha pogut publicar el missatge!"
|
||||
getting_started:
|
||||
alright_ill_wait: "D'acord, m'esperaré."
|
||||
hey: "Ei, <%= name %>!"
|
||||
no_tags: "Ei, no heu seguit cap etiqueta! Voleu continuar igualment?"
|
||||
alright_ill_wait: "D'acord, m'esperaré."
|
||||
preparing_your_stream: "S'està preparant el vostre flux personalitzat…"
|
||||
photo_uploader:
|
||||
looking_good: "Vaja, teniu un aspecte fantàstic!"
|
||||
completed: "<%= file %> completat"
|
||||
tags:
|
||||
wasnt_that_interesting: "D'acord, es possible que #<%= tagName %> no fos tan interessant…"
|
||||
header:
|
||||
admin: "Administració"
|
||||
close: "tanca"
|
||||
contacts: "Contactes"
|
||||
home: "Inici"
|
||||
log_out: "Surt"
|
||||
mark_all_as_read: "Marca'ls tots com llegits"
|
||||
notifications: "Notificacions"
|
||||
profile: "Perfil"
|
||||
recent_notifications: "Notificacions recents"
|
||||
search: "Cerca"
|
||||
settings: "Paràmetres"
|
||||
switch_to_touch_optimized_mode: "Canvia al mode tàctil optimitzat"
|
||||
view_all: "Visualitza'ls tots"
|
||||
ignore: "Omet"
|
||||
ignore_user: "Voleu ignorar aquest usuari?"
|
||||
my_activity: "La meva activitat"
|
||||
my_stream: "Flux"
|
||||
people:
|
||||
not_found: "i no s'ha trobat ningú…"
|
||||
|
||||
photo_uploader:
|
||||
completed: "<%= file %> completat"
|
||||
looking_good: "Vaja, teniu un aspecte fantàstic!"
|
||||
reshares:
|
||||
post: "Voleu tornar a compartir la publicació de <%= name %>?"
|
||||
successful: "S'ha tornat a compartir la publicació amb èxit!"
|
||||
show_more: "mostra'n més"
|
||||
stream:
|
||||
hide: "Amaga"
|
||||
public: "Públic"
|
||||
limited: "Limitat"
|
||||
like: "M'agrada"
|
||||
unlike: "Ja no m'agrada"
|
||||
reshare: "Torna a compartir"
|
||||
comment: "Comenta"
|
||||
original_post_deleted: "Publicació original suprimida per l'autor."
|
||||
show_nsfw_post: "Mostra la publicació"
|
||||
show_nsfw_posts: "Mostra-les totes"
|
||||
hide_nsfw_posts: "Amaga les publicacions #nsfw"
|
||||
follow: "Segueix"
|
||||
unfollow: "Deixa de seguir"
|
||||
|
||||
likes:
|
||||
zero: "a cap persona li agrada"
|
||||
one: "li agrada a <%= count %> persona"
|
||||
other: "li agrada a <%= count %> persones"
|
||||
|
||||
reshares:
|
||||
zero: "Torna a compartir"
|
||||
one: "<%= count %> vegada tornat a compartir"
|
||||
other: "<%= count %> vegades tornat a compatir"
|
||||
|
||||
more_comments:
|
||||
zero: "Mostra <%= count %> comentaris més"
|
||||
one: "Mostra <%= count %> comentari més"
|
||||
other: "Mostra <%= count %> comentaris més"
|
||||
|
||||
followed_tag:
|
||||
title: "#Etiquetes que seguiu"
|
||||
contacts_title: "Gent que empra aquestes etiquetes"
|
||||
add_a_tag: "Afegeix una etiqueta"
|
||||
follow: "Segueix"
|
||||
|
||||
title: "#Etiquetes que seguiu"
|
||||
hide: "Amaga"
|
||||
hide_nsfw_posts: "Amaga les publicacions #nsfw"
|
||||
like: "M'agrada"
|
||||
likes:
|
||||
one: "li agrada a <%= count %> persona"
|
||||
other: "li agrada a <%= count %> persones"
|
||||
zero: "a cap persona li agrada"
|
||||
limited: "Limitat"
|
||||
more_comments:
|
||||
one: "Mostra <%= count %> comentari més"
|
||||
other: "Mostra <%= count %> comentaris més"
|
||||
zero: "Mostra <%= count %> comentaris més"
|
||||
original_post_deleted: "Publicació original suprimida per l'autor."
|
||||
public: "Públic"
|
||||
reshare: "Torna a compartir"
|
||||
reshares:
|
||||
one: "<%= count %> vegada tornat a compartir"
|
||||
other: "<%= count %> vegades tornat a compatir"
|
||||
zero: "Torna a compartir"
|
||||
show_nsfw_post: "Mostra la publicació"
|
||||
show_nsfw_posts: "Mostra-les totes"
|
||||
tags:
|
||||
follow: "Segueix #<%= tag %>"
|
||||
following: "S'està seguint #<%= tag %>"
|
||||
stop_following: "Deixa de seguir #<%= tag %>"
|
||||
|
||||
header:
|
||||
home: "Inici"
|
||||
profile: "Perfil"
|
||||
contacts: "Contactes"
|
||||
settings: "Paràmetres"
|
||||
admin: "Administració"
|
||||
log_out: "Surt"
|
||||
|
||||
notifications: "Notificacions"
|
||||
messages: "Missatges"
|
||||
|
||||
search: "Cerca"
|
||||
|
||||
recent_notifications: "Notificacions recents"
|
||||
mark_all_as_read: "Marca'ls tots com llegits"
|
||||
view_all: "Visualitza'ls tots"
|
||||
close: "tanca"
|
||||
|
||||
viewer:
|
||||
stop_following_post: "Deixa de seguir la publicació"
|
||||
follow_post: "Segueix la publicació"
|
||||
like: "M'agrada"
|
||||
unfollow: "Deixa de seguir"
|
||||
unlike: "Ja no m'agrada"
|
||||
reshare: "Torna a compartir"
|
||||
reshared: "Tornat a compartir"
|
||||
comment: "Comenta"
|
||||
home: "INICI"
|
||||
tags:
|
||||
wasnt_that_interesting: "D'acord, es possible que #<%= tagName %> no fos tan interessant…"
|
||||
timeago:
|
||||
day: "un dia"
|
||||
days:
|
||||
other: "%d dies"
|
||||
hour: "aproximadament una hora"
|
||||
hours:
|
||||
other: "aproximadament %d hours"
|
||||
minute: "aproximadament un minut"
|
||||
minutes:
|
||||
other: "%d minuts"
|
||||
month: "aproximadament un mes"
|
||||
months:
|
||||
other: "%d mesos"
|
||||
prefixAgo: "fa"
|
||||
prefixFromNow: "fa"
|
||||
seconds: "menys d'un minut"
|
||||
suffixAgo: ""
|
||||
suffixFromNow: ""
|
||||
year: "aproximadament un any"
|
||||
years:
|
||||
other: "%d anys"
|
||||
viewer:
|
||||
reshared: "Tornat a compartir"
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
@@ -6,222 +6,328 @@
|
||||
|
||||
gl:
|
||||
javascripts:
|
||||
confirm_dialog: "Está seguro?"
|
||||
confirm_unload: "Confirme que quere abandonar esta páxina. Non se gardarán os datos que introduciu."
|
||||
report:
|
||||
prompt: "Explique o motivo:"
|
||||
prompt_default: "Contido ofensivo"
|
||||
name: "Denunciar"
|
||||
status:
|
||||
created: "Interpúxose a denuncia."
|
||||
exists: "A denuncia xa fora interposta."
|
||||
report_prompt: "Explique o motivo:"
|
||||
report_prompt_default: "Contido ofensivo"
|
||||
delete: "Eliminar"
|
||||
ignore: "Ignorar"
|
||||
report: "Denunciar"
|
||||
ignore_user: "Ignorar este usuario?"
|
||||
ignore_failed: "Non é posíbel ignorar a este usuario"
|
||||
unblock_failed: "Non foi posíbel retirarlle o bloqueo a este usuario"
|
||||
admin:
|
||||
pods:
|
||||
actions: "Accións"
|
||||
added: "Engadido"
|
||||
check: "realizar test de conexión"
|
||||
errors:
|
||||
one: "O test de conexión devolveu un fallo de unha instancia."
|
||||
other: "O test de conexión devolveu fallo en <%= count %> instancias."
|
||||
follow_link: "abrir ligazón en navegador"
|
||||
last_check: "última comprobación:"
|
||||
more_info: "mostrar máis información"
|
||||
ms:
|
||||
one: "<%= count %>ms"
|
||||
other: "<%= count %>ms"
|
||||
no_info: "Non hai máis información dispoñible por agora"
|
||||
not_available: "non dispoñible"
|
||||
offline_since: "fora de liña desde:"
|
||||
pod: "Instancia"
|
||||
recheck:
|
||||
failure: "Non se fixo a comprobación."
|
||||
success: "A instancia foi comprobada de novo."
|
||||
response_time: "Tempo de resposta:"
|
||||
server_software: "Software do servidor:"
|
||||
ssl: "SSL"
|
||||
ssl_disabled: "SSL desactivado"
|
||||
ssl_enabled: "SSL activado"
|
||||
states:
|
||||
dns_failed: "Fallo de resolución de nome (DNS)"
|
||||
http_failed: "Fallo de conexión HTTP"
|
||||
net_failed: "Fallo ao intentar conectar"
|
||||
no_errors: "OK"
|
||||
ssl_failed: "Fallo na conexión segura (SSL)"
|
||||
unchecked: "Non marcado"
|
||||
unknown_error: "Un fallo non específico aconteceu durante a comprobación"
|
||||
version_failed: "Non se obtivo a versión do software"
|
||||
status: "Estado"
|
||||
unchecked:
|
||||
one: "Queda unha instancia sen comprobar."
|
||||
other: "Quedan <%= count %> instancias que aínda non se comprobaron."
|
||||
unknown: "descoñecido"
|
||||
version_failed:
|
||||
one: "Hai unha instancia que non proporciona versión (instancia antiga, sen NodeInfo)."
|
||||
other: "Hai <%= count %> instancias que non proporcionan versión (instancias antigas, sen NodeInfo)."
|
||||
admins:
|
||||
dashboard:
|
||||
compare_versions: "A última versión de diaspora* é a <%= latestVersion %>, a túa instancia funciona coa <%= podVersion %>."
|
||||
error: "Non se puido determinar a última versión de diaspora*."
|
||||
outdated: "A túa instancia precisa ser actualizada!"
|
||||
up_to_date: "A instancia está actualizada!"
|
||||
and: "e"
|
||||
comma: ","
|
||||
edit: "Editar"
|
||||
no_results: "Non se atoparon resultados"
|
||||
timeago:
|
||||
prefixAgo: "Hai"
|
||||
prefixFromNow: "Dentro de"
|
||||
suffixAgo: ""
|
||||
suffixFromNow: ""
|
||||
seconds: "menos dun minuto."
|
||||
minute: "un minuto."
|
||||
minutes: "%d minutos."
|
||||
hours: "%d horas."
|
||||
hour: "unha hora."
|
||||
day: "un día."
|
||||
days: "%d días."
|
||||
month: "un mes."
|
||||
months: "%d meses."
|
||||
year: "un ano."
|
||||
years: "%d anos."
|
||||
wordSeparator: " "
|
||||
|
||||
contacts:
|
||||
add_contact: "Engadir un contacto"
|
||||
aspect_list_is_visible: "Os contactos deste aspecto poden verse os uns aos outros."
|
||||
aspect_list_is_not_visible: "Os contactos deste aspecto non poden verse os uns aos outros."
|
||||
remove_contact: "Retirar o contacto"
|
||||
error_add: "Non foi posíbel engadir a <%= name %> ao aspecto :("
|
||||
error_remove: "Non foi posíbel retirar a <%= name %> do aspecto :("
|
||||
|
||||
my_activity: "Actividade"
|
||||
my_stream: "Onda"
|
||||
my_aspects: "Aspectos"
|
||||
|
||||
videos:
|
||||
watch: "Ver o vídeo en <%= provider %>"
|
||||
unknown: "Tipo de vídeo descoñecido"
|
||||
search_for: "Buscar «<%= name %>»"
|
||||
publisher:
|
||||
at_least_one_aspect: "Ten que publicalo polo menos nun aspecto."
|
||||
limited: "Limitado. Só poderá velo a xente coa que comparte."
|
||||
public: "Público. Poderá velo calquera, e aparecerá nos motores de busca."
|
||||
near_from: "Publicado desde <%= location %>"
|
||||
option: "Resposta"
|
||||
add_option: "Engadir unha resposta"
|
||||
question: "Cuestión"
|
||||
bookmarklet:
|
||||
post_something: "Publicar en diaspora*"
|
||||
post_submit: "Enviando a publicación…"
|
||||
post_success: "Publicouse! Pechando a xanela emerxente…"
|
||||
infinite_scroll:
|
||||
no_more: "Non hai máis publicacións."
|
||||
aspect_dropdown:
|
||||
add_to_aspect: "Engadir como contacto"
|
||||
select_aspects: "Seleccionar aspectos"
|
||||
all_aspects: "Todos os aspectos"
|
||||
stopped_sharing_with: "Deixou de compartir con <%= name %>."
|
||||
error: "Non se puido comezar a compartir con <%= name %>. Estás ignorando a esa persoa?"
|
||||
error_remove: "Non se eliminou a <%= name %> do aspecto :("
|
||||
mobile_row_checked: "<%= name %> (eliminar)"
|
||||
mobile_row_unchecked: "<%= name %> (engadir)"
|
||||
select_aspects: "Seleccionar aspectos"
|
||||
started_sharing_with: "Comezou a compartir con <%= name %>!"
|
||||
error: "Non foi posíbel empezar a compartir con <%= name %>. Está ignorando a esa persoa?"
|
||||
error_remove: "Non foi posíbel eliminar a <%= name %> do aspecto."
|
||||
stopped_sharing_with: "Deixou de compartir con <%= name %>."
|
||||
toggle:
|
||||
zero: "Engadir a un aspecto"
|
||||
one: "Nun aspecto"
|
||||
two: "En dous aspectos"
|
||||
few: "En <%= count %> aspectos"
|
||||
many: "En <%= count %> aspectos"
|
||||
one: "Nun aspecto"
|
||||
other: "En <%= count %> aspectos"
|
||||
show_more: "Mostrar máis"
|
||||
failed_to_like: "Non foi posíbel indicar que lle gusta a publicación!"
|
||||
failed_to_post_message: "Non foi posíbel publicar a mensaxe!"
|
||||
failed_to_remove: "Non foi posíbel eliminar a publicación!"
|
||||
comments:
|
||||
show: "Mostrar os comentarios"
|
||||
hide: "Ocultar os comentarios"
|
||||
no_comments: "Aínda non hai comentarios."
|
||||
reshares:
|
||||
duplicate: "Moi interesante ten que ser iso para que o repitas outra vez!"
|
||||
successful: "A publicación repetiuse correctamente."
|
||||
post: "Quere repetir a publicación de <%= name %>?"
|
||||
two: "En dous aspectos"
|
||||
zero: "Engadir a un aspecto"
|
||||
updating: "actualizando..."
|
||||
aspect_navigation:
|
||||
select_all: "Escollelos todos"
|
||||
add_an_aspect: "+ Engadir aspecto"
|
||||
deselect_all: "Non escoller ningún"
|
||||
no_aspects: "Non se escolleu ningún"
|
||||
add_an_aspect: "Engadir un aspecto"
|
||||
getting_started:
|
||||
hey: "Ola, <%= name %>!"
|
||||
no_tags: "Eh, non está a seguir ningunha etiqueta! Quere continuar aínda así?"
|
||||
alright_ill_wait: "Como queira, esperarei."
|
||||
preparing_your_stream: "Preparando a súa onda personalizada…"
|
||||
photo_uploader:
|
||||
looking_good: "Ghuapo ghuapo non é, pero ten unha pelaxe…"
|
||||
completed: "<%= file %> enviada."
|
||||
tags:
|
||||
wasnt_that_interesting: "Vale, supoño que #<%= tagName %> non era tan interesante…"
|
||||
people:
|
||||
not_found: "Non se atopou a ninguén."
|
||||
mention: "Mención"
|
||||
message: "Mensaxe"
|
||||
edit_my_profile: "Editar o perfil persoal"
|
||||
stop_ignoring: "Deixar de ignorar"
|
||||
helper:
|
||||
is_sharing: "<%= name %> está a compartir con vostede"
|
||||
is_not_sharing: "<%= name %> non está a compartir con vostede"
|
||||
profile:
|
||||
edit: "Editar"
|
||||
add_some: "Engadir algunhas"
|
||||
you_have_no_tags: "Non ten etiquetas!"
|
||||
ignoring: "Está a ignorar todas as publicacións de <%= name %>."
|
||||
bio: "Biografía"
|
||||
location: "Lugar"
|
||||
gender: "Sexo"
|
||||
born: "Data de nacemento"
|
||||
photos: "Fotos"
|
||||
contacts: "Contactos"
|
||||
posts: "Publicacións"
|
||||
|
||||
select_all: "Escollelos todos"
|
||||
aspects:
|
||||
create:
|
||||
add_a_new_aspect: "Engadir novo aspecto"
|
||||
failure: "Fallo ao crear o aspecto."
|
||||
success: "Creouse o novo aspecto <%= name %>"
|
||||
name: "Nome"
|
||||
bookmarklet:
|
||||
post_something: "Publicar en diaspora*"
|
||||
post_submit: "Enviando publicación..."
|
||||
post_success: "Publicada! Pechando a ventá..."
|
||||
cancel: "Cancelar"
|
||||
comma: ","
|
||||
comments:
|
||||
hide: "Agochar os comentarios"
|
||||
no_comments: "Aínda non hai comentarios."
|
||||
show: "Mostrar os comentarios"
|
||||
confirm_dialog: "Está seguro?"
|
||||
confirm_unload: "Por favor confirma que queres saír da páxina. Os datos introducidos non serán gardados."
|
||||
contacts:
|
||||
add_contact: "Engadir contacto"
|
||||
aspect_chat_is_enabled: "Os contactos neste aspecto poden conversar contigo."
|
||||
aspect_chat_is_not_enabled: "Os contactos neste aspecto non poden conversar contigo."
|
||||
error_add: "Non se puido engadir a <%= name %> ao aspecto :("
|
||||
error_remove: "Non se puido eliminar a <%= name %> do aspecto :("
|
||||
remove_contact: "Eliminar contacto"
|
||||
search_no_results: "Non se atoparon contactos"
|
||||
conversation:
|
||||
participants: "Participantes"
|
||||
|
||||
create:
|
||||
no_recipient: "Vaia, primeiro debes engadir un correspondente!"
|
||||
new:
|
||||
no_contacts: "Debes engadir algúns contactos antes de poder iniciar a conversa."
|
||||
create: "Crear"
|
||||
delete: "Eliminar"
|
||||
edit: "Editar"
|
||||
errors:
|
||||
connection: "Non se puido conectar ao servidor."
|
||||
failed_to_post_message: "Non se puido publicar a mensaxe!"
|
||||
failed_to_remove: "Fallo ao eliminar a entrada!"
|
||||
getting_started:
|
||||
alright_ill_wait: "Como queiras, agardarei."
|
||||
hey: "Ola, <%= name %>!"
|
||||
no_tags: "Eh, non estás a seguir ningunha etiqueta! Aínda así, queres continuar?"
|
||||
preparing_your_stream: "Preparando a túa cronoloxía personalizada…"
|
||||
header:
|
||||
admin: "Administración"
|
||||
close: "Pechar"
|
||||
contacts: "Contactos"
|
||||
conversations: "Conversas"
|
||||
help: "Axuda"
|
||||
home: "Inicio"
|
||||
log_out: "Saír"
|
||||
mark_all_as_read: "Marcalas todas como lidas"
|
||||
moderator: "Moderadora"
|
||||
notifications: "Notificacións"
|
||||
profile: "Perfil"
|
||||
recent_notifications: "Últimas notificacións"
|
||||
search: "Atopar xente ou #etiquetas"
|
||||
settings: "Configuración"
|
||||
switch_to_touch_optimized_mode: "Cambiar a modo táctil optimizado"
|
||||
toggle_navigation: "Activar nagevación"
|
||||
view_all: "Velas todas"
|
||||
hide_post: "Agochar esta publicación?"
|
||||
hide_post_failed: "Non se puido agochar a publicación"
|
||||
ignore: "Ignorar"
|
||||
ignore_failed: "Non se puido ignorar a usuaria"
|
||||
ignore_user: "Ignorar esta usuaria?"
|
||||
my_activity: "Actividade"
|
||||
my_aspects: "Aspectos"
|
||||
my_stream: "Cronoloxía"
|
||||
no_results: "Sen resultados"
|
||||
notifications:
|
||||
mark_read: "Marcar como lido"
|
||||
mark_unread: "Marcar como non lido"
|
||||
|
||||
mark_read: "Marcar lido"
|
||||
mark_unread: "Marcar non lido"
|
||||
new_notifications:
|
||||
one: "Tes <%= count %> notificación non lida"
|
||||
other: "Tes <%= count %> notificacións non lidas"
|
||||
people:
|
||||
edit_my_profile: "Editar o meu perfil"
|
||||
helper:
|
||||
is_not_sharing: "<%= name %> non comparte contigo"
|
||||
is_sharing: "<%= name %> está a compartir contigo"
|
||||
mention: "Mencionar"
|
||||
message: "Mensaxe"
|
||||
not_found: "e non se atopou a ninguén..."
|
||||
stop_ignoring: "Deixar de ignorar"
|
||||
photo_uploader:
|
||||
completed: "<%= file %> completado"
|
||||
empty: "{file} está baleiro, por favor escolle novamente sen el."
|
||||
error: "Algo fallou ao subir o ficheiro <%= file %>"
|
||||
invalid_ext: "{file} ten unha extensión non válida. Só se permiten {extensions}"
|
||||
looking_good: "Ghuapo ghuapo non é, pero ten unha pelaxe…"
|
||||
size_error: "{file} é demasiado grande, o tamaño máximo é {sizeLimit}."
|
||||
upload_photos: "Subir fotografías"
|
||||
poll:
|
||||
answer_count:
|
||||
one: "1 voto"
|
||||
other: "<%=count%> votos"
|
||||
zero: "0 votos"
|
||||
close_result: "Agochar resultado"
|
||||
count:
|
||||
one: "1 voto ata o momento"
|
||||
other: "<%=count%> votos ata o momento"
|
||||
go_to_original_post: "Podes participar nesta enquisa en <%= original_post_link %>"
|
||||
original_post: "publicación orixinal"
|
||||
result: "Resultado"
|
||||
show_result: "Mostrar resultado"
|
||||
vote: "Votar"
|
||||
your_vote: "O teu voto"
|
||||
profile:
|
||||
add_some: "Engade algunha"
|
||||
bio: "Bio"
|
||||
born: "Aniversario"
|
||||
edit: "Editar"
|
||||
gender: "Xénero"
|
||||
location: "Localización"
|
||||
photos: "Fotos"
|
||||
posts: "Publicacións"
|
||||
you_have_no_tags: "Non tes etiquetas!"
|
||||
publisher:
|
||||
add_option: "Engadir unha resposta"
|
||||
markdown_editor:
|
||||
preview: "Vista previa"
|
||||
texts:
|
||||
code: "aquí o código"
|
||||
heading: "texto de cabeceira"
|
||||
insert_image_description_text: "escribe aquí a descrición da imaxe"
|
||||
insert_image_help_text: "Escribe aquí a ligazón a imaxe"
|
||||
insert_image_title: "Escribe aquí o título da imaxe"
|
||||
insert_link_description_text: "introduce aquí a descrición da ligazón"
|
||||
insert_link_help_text: "Escribe aquí a ligazón"
|
||||
italic: "texto en cursiva"
|
||||
list: "texto da lista aquí"
|
||||
quote: "texto da cita aquí"
|
||||
strong: "texto resaltado"
|
||||
tooltips:
|
||||
bold: "Resaltar"
|
||||
cancel: "Cancelar mensaxe"
|
||||
code: "Incrustar código"
|
||||
heading: "Cabeceira"
|
||||
insert_image: "Incrustar imaxe"
|
||||
insert_link: "Incrustar ligazón"
|
||||
insert_ordered_list: "Incrustar lista ordenada"
|
||||
insert_unordered_list: "Incrustar lista non ordenada"
|
||||
italic: "Cursiva"
|
||||
preview: "Vista previa da mensaxe"
|
||||
quote: "Incrustar cita"
|
||||
write: "Editar mensaxe"
|
||||
write: "Escribir"
|
||||
mention_success: "Mencionaches a: <%= names %>"
|
||||
near_from: "Publicada desde: <%= location %>"
|
||||
option: "Resposta"
|
||||
question: "Pregunta"
|
||||
remove_post: "Eliminar esta publicación?"
|
||||
report:
|
||||
name: "Denunciar"
|
||||
prompt: "Engade unha razón por favor:"
|
||||
prompt_default: "ex. contido ofensivo"
|
||||
status:
|
||||
created: "Creouse correctamente o informe"
|
||||
exists: "Xa existe o informe"
|
||||
reshares:
|
||||
post: "Compartir a publicación de <%= name %>?"
|
||||
successful: "Esta publicación comparteuse!"
|
||||
show_all: "Mostrar todo"
|
||||
show_more: "Mostrar máis"
|
||||
stream:
|
||||
hide: "Ocultar"
|
||||
public: "Público"
|
||||
limited: "Limitado"
|
||||
like: "Gústame"
|
||||
unlike: "Xa non me gusta"
|
||||
reshare: "Repetir"
|
||||
comment: "Comentar"
|
||||
original_post_deleted: "O autor eliminou a publicación orixinal."
|
||||
show_post: "Mostrar a publicación"
|
||||
hide_nsfw_posts: "Ocultar contido etiquetado con #nsfw"
|
||||
comments:
|
||||
one: "un comentario"
|
||||
other: "<%= count %> comentarios"
|
||||
zero: "ningún comentario"
|
||||
disable_post_notifications: "Desactivar notificacións para esta publicación"
|
||||
enable_post_notifications: "Activar notificacións para esta publicación"
|
||||
follow: "Seguir"
|
||||
unfollow: "Deixar de seguir"
|
||||
via: "mediante <%= provider %>"
|
||||
|
||||
followed_tag:
|
||||
add_a_tag: "Engadir etiqueta"
|
||||
follow: "Seguir"
|
||||
title: "Etiquetas #seguidas"
|
||||
hide: "Agochar"
|
||||
hide_nsfw_posts: "Agochar publicacións #nsfw"
|
||||
like: "Gústame"
|
||||
likes:
|
||||
zero: "Non lle gusta a ninguén."
|
||||
one: "Gústalle a unha persoa."
|
||||
two: "Gústalle a dúas persoas"
|
||||
few: "Gústalle a <%= count %> persoas."
|
||||
many: "Gústalle a <%= count %> persoas."
|
||||
one: "Gústalle a unha persoa."
|
||||
other: "Gústalle a <%= count %> persoas."
|
||||
|
||||
two: "Gústalle a dúas persoas"
|
||||
zero: "Non lle gusta a ninguén."
|
||||
limited: "Limitado"
|
||||
more_comments:
|
||||
few: "Amosar <%= count %> comentarios máis"
|
||||
many: "Amosar <%= count %> comentarios máis"
|
||||
one: "Amosar o comentario que falta"
|
||||
other: "Amosar <%= count %> comentarios máis"
|
||||
two: "Amosar os dous comentarios que faltan"
|
||||
zero: "Non hai máis comentarios"
|
||||
no_posts_yet: "Aínda non hai publicacións para mostrar aquí."
|
||||
original_post_deleted: "O autor eliminou a publicación orixinal."
|
||||
permalink: "Ligazón permanente"
|
||||
public: "Público"
|
||||
reshare: "Repetir"
|
||||
reshares:
|
||||
zero: "Ningunha repetición."
|
||||
one: "Unha repetición."
|
||||
two: "Dúas repeticións."
|
||||
few: "<%= count %> repeticións."
|
||||
many: "<%= count %> repeticións."
|
||||
one: "Unha repetición."
|
||||
other: "<%= count %> repeticións."
|
||||
|
||||
more_comments:
|
||||
zero: "Non hai máis comentarios"
|
||||
one: "Mostrar o comentario que falta"
|
||||
two: "Mostrar os dous comentarios que faltan"
|
||||
few: "Mostrar <%= count %> comentarios máis"
|
||||
many: "Mostrar <%= count %> comentarios máis"
|
||||
other: "Mostrar <%= count %> comentarios máis"
|
||||
|
||||
header:
|
||||
home: "Inicio"
|
||||
profile: "Perfil"
|
||||
contacts: "Contactos"
|
||||
settings: "Configuración"
|
||||
help: "Axuda"
|
||||
admin: "Administración"
|
||||
log_out: "Saír"
|
||||
|
||||
notifications: "Notificacións"
|
||||
conversations: "Conversas"
|
||||
|
||||
search: "Atopar xente ou #etiquetas"
|
||||
|
||||
recent_notifications: "Últimas notificacións"
|
||||
mark_all_as_read: "Marcalas todas como lidas"
|
||||
view_all: "Velas todas"
|
||||
close: "Pechar"
|
||||
|
||||
viewer:
|
||||
stop_following_post: "Deixar de seguir"
|
||||
follow_post: "Seguir a publicación"
|
||||
like: "Gústame"
|
||||
two: "Dúas repeticións."
|
||||
zero: "Ningunha repetición."
|
||||
show_nsfw_post: "Amosar a publicación"
|
||||
show_nsfw_posts: "Amosar todo"
|
||||
tags:
|
||||
follow: "Seguir #<%= tag %>"
|
||||
follow_error: "Non se puido seguir #<%= tag %> :("
|
||||
following: "Seguindo #<%= tag %>"
|
||||
stop_following: "Deixar de seguir #<%= tag %>"
|
||||
stop_following_confirm: "Deixar de seguir #<%= tag %>"
|
||||
stop_following_error: "Non puido deixar de seguir #<%= tag %> :("
|
||||
unfollow: "Deixar de seguir"
|
||||
unlike: "Xa non me gusta"
|
||||
reshare: "Repetir"
|
||||
reshared: "Repetida"
|
||||
comment: "Comentar"
|
||||
home: "Inicio"
|
||||
|
||||
poll:
|
||||
vote: "Votar"
|
||||
result: "Resultado"
|
||||
count:
|
||||
zero: "Aínda non votou ninguén."
|
||||
one: "Votou unha persoa."
|
||||
other: "Votaron <%=count%> persoas."
|
||||
show_result: "Mostrar o resultado"
|
||||
close_result: "Agochar o resultado"
|
||||
|
||||
|
||||
via: "vía <%= provider %>"
|
||||
tags:
|
||||
wasnt_that_interesting: "Vale, supoño que #<%= tagName %> non era tan interesante…"
|
||||
timeago:
|
||||
day: "un día."
|
||||
days:
|
||||
one: "1 día"
|
||||
other: "%d días"
|
||||
hour: "unha hora."
|
||||
hours:
|
||||
one: "fai 1 hora"
|
||||
other: "fai %d horas"
|
||||
inPast: "en calquera momento"
|
||||
minute: "un minuto."
|
||||
minutes:
|
||||
one: "1 minuto"
|
||||
other: "%d minutos"
|
||||
month: "un mes."
|
||||
months:
|
||||
one: "1 mes"
|
||||
other: "%d meses"
|
||||
prefixAgo: ""
|
||||
prefixFromNow: ""
|
||||
seconds: "menos dun minuto."
|
||||
suffixAgo: "atrás"
|
||||
suffixFromNow: "desde agora"
|
||||
year: "un ano."
|
||||
years:
|
||||
one: "1 ano"
|
||||
other: "%d anos"
|
||||
unblock_failed: "Fallo ao desbloquear esta usuaria"
|
||||
viewer:
|
||||
reshared: "Compartido de novo"
|
||||
@@ -1,343 +1,326 @@
|
||||
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
||||
# Copyright (c) 2010-2013, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
|
||||
sq:
|
||||
javascripts:
|
||||
cancel: "Anuloje"
|
||||
confirm_dialog: "Jeni i sigurt?"
|
||||
confirm_unload: "Ju lutemi, ripohoni se doni ta braktisni këtë faqe. Të dhënat që keni dhënë s’do të ruhen."
|
||||
create: "Krijoje"
|
||||
delete: "Fshije"
|
||||
ignore: "Shpërfille"
|
||||
report:
|
||||
prompt: "Ju lutemi, jepni një arsye:"
|
||||
prompt_default: "p.sh. lëndë fyese"
|
||||
name: "Njoftim"
|
||||
status:
|
||||
created: "Njoftimi u krijua me sukses"
|
||||
exists: "Njoftimi ekziston"
|
||||
ignore_user: "Të shpërfillet ky përdorues?"
|
||||
ignore_failed: "S’arrihet të shpërfillet ky përdorues"
|
||||
hide_post: "Të fshihet ky postim?"
|
||||
hide_post_failed: "S’arrihet të fshihet ky postim"
|
||||
remove_post: "Të hiqet ky postim?"
|
||||
unblock_failed: "Zhbllokimi i këtij përdoruesi dështoi"
|
||||
and: "dhe"
|
||||
comma: ","
|
||||
edit: "Përpunojeni"
|
||||
no_results: "S’u gjetën përfundime"
|
||||
show_all: "Shfaqi krejt"
|
||||
|
||||
admins:
|
||||
dashboard:
|
||||
up_to_date: "Nyja juaj është e përditësuar!"
|
||||
outdated: "Nyja juaj është e vjetruar."
|
||||
compare_versions: "Versioni më i ri i diaspora* është <%= latestVersion %>, nyja juaj xhiron ende <%= podVersion %>."
|
||||
error: "S’u arrit të përcaktohej versioni më i ri i diaspora*."
|
||||
admin:
|
||||
pods:
|
||||
pod: "Nyjë"
|
||||
ssl: "SSL"
|
||||
ssl_enabled: "SSL e aktivizuar"
|
||||
ssl_disabled: "SSL e çaktivizuar"
|
||||
added: "U shtua"
|
||||
status: "Gjendje"
|
||||
states:
|
||||
unchecked: "E pakontrolluar"
|
||||
no_errors: "OK"
|
||||
dns_failed: "Ftillimi i emrit (DNS) dështoi"
|
||||
net_failed: "Përpjekja për lidhje dështoi"
|
||||
ssl_failed: "Lidhja e sigurt (SSL) dështoi"
|
||||
http_failed: "Lidhja HTTP dështoi"
|
||||
version_failed: "S’u arrit të merrej version software-i"
|
||||
unknown_error: "Gjatë kontrollit ndodhi një gabim i papërcaktuar"
|
||||
actions: "Veprime"
|
||||
offline_since: "i palidhur që prej:"
|
||||
last_check: "kontrolli i fundit:"
|
||||
more_info: "shfaq më tepër të dhëna"
|
||||
added: "U shtua"
|
||||
check: "kryej një provë të lidhjes"
|
||||
recheck:
|
||||
success: "Nyja u kontrolluar sërish."
|
||||
failure: "Kontrolli s’u krye."
|
||||
follow_link: "hape lidhjen në shfletues"
|
||||
no_info: "S’ka të dhëna të tjera në këtë pikë"
|
||||
server_software: "Software shërbyesi:"
|
||||
response_time: "Kohë përgjigjeje:"
|
||||
ms:
|
||||
one: "<%= count %>ms"
|
||||
other: "<%= count %>ms"
|
||||
unknown: "e panjohur"
|
||||
not_available: "jo gati"
|
||||
unchecked:
|
||||
one: "Ka ende një nyjë që s’është kontrolluar fare."
|
||||
other: "Ka ende <%= count %> nyja që s’janë kontrolluar fare."
|
||||
version_failed:
|
||||
one: "Ka një nyjë që s’ka version (nyjë e vjetër, pa NodeInfo)."
|
||||
other: "Ka <%= count %> nyja që s’kanë version (nyja të vjetëra, pa NodeInfo)."
|
||||
errors:
|
||||
one: "Prova e lidhjes u përgjigj me një gabim për një nyjë."
|
||||
other: "Prova e lidhjes u përgjigj me një gabim për <%= count %> nyje."
|
||||
|
||||
follow_link: "hape lidhjen në shfletues"
|
||||
last_check: "kontrolli i fundit:"
|
||||
more_info: "shfaq më tepër të dhëna"
|
||||
ms:
|
||||
one: "<%= count %>ms"
|
||||
other: "<%= count %>ms"
|
||||
no_info: "Në këtë pikë, s’ka të dhëna të tjera"
|
||||
not_available: "jo gati"
|
||||
offline_since: "jashtë linje që prej:"
|
||||
pod: "Nyjë"
|
||||
recheck:
|
||||
failure: "Kontrolli nuk u krye."
|
||||
success: "Nyja sapo u kontrolluar sërish."
|
||||
response_time: "Kohë përgjigjeje:"
|
||||
server_software: "Software shërbyesi:"
|
||||
ssl: "SSL"
|
||||
ssl_disabled: "Me SSL të çaktivizuar"
|
||||
ssl_enabled: "Me SSL të aktivizuar"
|
||||
states:
|
||||
dns_failed: "Ftillimi i emrit (DNS) dështoi"
|
||||
http_failed: "Lidhja HTTP dështoi"
|
||||
net_failed: "Përpjekja për lidhje dështoi"
|
||||
no_errors: "OK"
|
||||
ssl_failed: "Lidhja e sigurt (SSL) dështoi"
|
||||
unchecked: "E pakontrolluar"
|
||||
unknown_error: "Gjatë kontrollit ndodhi një gabim i papërcaktuar"
|
||||
version_failed: "S’u arrit të merrej version software-i"
|
||||
status: "Gjendje"
|
||||
unchecked:
|
||||
one: "Ka ende një nyjë që s’është kontrolluar fare."
|
||||
other: "Ka ende <%= count %> nyja që s’janë kontrolluar fare."
|
||||
unknown: "e panjohur"
|
||||
version_failed:
|
||||
one: "Ka një nyjë që s’ka version (nyjë e vjetër, pa NodeInfo)."
|
||||
other: "Ka <%= count %> nyja që s’kanë version (nyja të vjetra, pa NodeInfo)."
|
||||
admins:
|
||||
dashboard:
|
||||
compare_versions: "Versioni më i ri i diaspora*-s është <%= latestVersion %>, nyja juaj xhiron ende <%= podVersion %>."
|
||||
error: "S’u arrit të përcaktohej versioni më i ri i diaspora*-s."
|
||||
outdated: "Nyja juaj është e vjetruar!"
|
||||
up_to_date: "Nyja juaj është e përditësuar!"
|
||||
and: "dhe"
|
||||
aspect_dropdown:
|
||||
add_to_aspect: "Shtoni kontakt"
|
||||
all_aspects: "Krejt aspektet"
|
||||
error: "Nuk u fillua dot ndarja e gjërave me <%= name %>. Mos po e shpërfillni?"
|
||||
error_remove: "S’u hoq dot <%= name %> prej aspekti :("
|
||||
mobile_row_checked: "<%= name %> (hiqe)"
|
||||
mobile_row_unchecked: "<%= name %> (shtoje)"
|
||||
select_aspects: "Përzgjidhni aspekte"
|
||||
started_sharing_with: "Filluat të ndani gjëra me <%= name %>!"
|
||||
stopped_sharing_with: "Reshtët së ndari gjëra me <%= name %>."
|
||||
toggle:
|
||||
one: "Në <%= count %> aspekt"
|
||||
other: "Në <%= count %> aspekte"
|
||||
zero: "Përzgjidhni aspekte"
|
||||
updating: "po përditësohet…"
|
||||
aspect_navigation:
|
||||
add_an_aspect: "+ Shtoni një aspekt"
|
||||
deselect_all: "Çpërzgjidhi krejt"
|
||||
no_aspects: "Nuk janë përzgjedhur aspekte"
|
||||
select_all: "Përzgjidhi krejt"
|
||||
aspects:
|
||||
name: "Emër"
|
||||
create:
|
||||
add_a_new_aspect: "Shtoni aspekt të ri"
|
||||
success: "Aspekti juaj i ri <%= name %> u krijua"
|
||||
add_a_new_aspect: "Shtoni një aspekt të ri"
|
||||
failure: "Krijimi i aspektit dështoi."
|
||||
|
||||
success: "Aspekti juaj i ri <%= name %> u krijua"
|
||||
name: "Emër"
|
||||
bookmarklet:
|
||||
post_something: "Postoni diçka te diaspora*"
|
||||
post_submit: "Po parashtrohet postimit…"
|
||||
post_success: "U postua! Po mbyllet dritarja flluskë…"
|
||||
cancel: "Anuloje"
|
||||
comma: ","
|
||||
comments:
|
||||
hide: "fshihi komentet"
|
||||
no_comments: "Ende s’ka komente."
|
||||
show: "shfaqi krejt komentet"
|
||||
confirm_dialog: "Jeni i sigurt?"
|
||||
confirm_unload: "Ju lutemi, ripohoni se doni ta braktisni këtë faqe. Të dhënat që keni dhënë s’do të ruhen."
|
||||
contacts:
|
||||
add_contact: "Shtoni kontakt"
|
||||
aspect_chat_is_enabled: "Kontaktet në këtë aspekt janë në gjendje të bisedojnë me ju."
|
||||
aspect_chat_is_not_enabled: "Kontaktet në këtë aspekt s’janë në gjendje të bisedojnë me ju."
|
||||
error_add: "S’u shtua dot <%= name %> te aspekti :("
|
||||
error_remove: "S’u hoq dot <%= name %> prej aspekti :("
|
||||
remove_contact: "Hiqe kontaktin"
|
||||
search_no_results: "S’u gjetën kontakte"
|
||||
conversation:
|
||||
create:
|
||||
no_recipient: "Hej, së pari ju duhet një marrës!"
|
||||
new:
|
||||
no_contacts: "Përpara se të filloni një bisedë, lypset të shtoni ca kontakte."
|
||||
create: "Krijoje"
|
||||
delete: "Fshije"
|
||||
edit: "Përpunoni"
|
||||
errors:
|
||||
connection: "S’arrihet të lidhet te shërbyesi."
|
||||
|
||||
connection: "S’arrihet të lidhet me shërbyesin."
|
||||
failed_to_post_message: "Postimi i mesazhit dështoi!"
|
||||
failed_to_remove: "Heqja e zërit dështoi!"
|
||||
getting_started:
|
||||
alright_ill_wait: "Në rregull, do të pres."
|
||||
hey: "Hej, <%= name %>!"
|
||||
no_tags: "Hej, nuk jeni duke ndjekur ndonjë etiketë! Të vazhdohet, sido qoftë?"
|
||||
preparing_your_stream: "Po përgatitet rrëkeja juaj e personalizuar..."
|
||||
header:
|
||||
admin: "Përgjegjës"
|
||||
close: "Mbylle"
|
||||
contacts: "Kontakte"
|
||||
conversations: "Biseda"
|
||||
help: "Ndihmë"
|
||||
home: "Kreu"
|
||||
log_out: "Dilni"
|
||||
mark_all_as_read: "Shënoji krejt si të lexuara"
|
||||
moderator: "Moderator"
|
||||
notifications: "Njoftime"
|
||||
profile: "Profil"
|
||||
recent_notifications: "Njoftime së fundi"
|
||||
search: "Find people or #tags"
|
||||
settings: "Rregullime"
|
||||
switch_to_touch_optimized_mode: "Kalo nën mënyrën e optimizuar për ekrane touch"
|
||||
toggle_navigation: "Shfaq/fshih lëvizjen"
|
||||
view_all: "Shihni krejt"
|
||||
hide_post: "Të kalohet i fshehur ky postim?"
|
||||
hide_post_failed: "S’arrihet të kalohet i fshehur ky postim"
|
||||
ignore: "Shpërfille"
|
||||
ignore_failed: "S’arrihet të shpërfillet ky përdorues"
|
||||
ignore_user: "Të shpërfillet ky përdorues?"
|
||||
my_activity: "Veprimtaria ime"
|
||||
my_aspects: "Aspektet e mi"
|
||||
my_stream: "Rrjedhë"
|
||||
no_results: "S’u gjetën përfundime"
|
||||
notifications:
|
||||
mark_read: "Vëri shenjë si të lexuar"
|
||||
mark_unread: "Vëri shenjë si të palexuar"
|
||||
new_notifications:
|
||||
one: "Keni <%= count %> njoftim të palexuar"
|
||||
other: "Keni <%= count %> njoftime të palexuar"
|
||||
people:
|
||||
edit_my_profile: "Përpuno profilin tim"
|
||||
helper:
|
||||
is_not_sharing: "<%= name %> s’ndan gjëra me ju"
|
||||
is_sharing: "<%= name %> ndan gjëra me ju"
|
||||
mention: "Përmendje"
|
||||
message: "Mesazh"
|
||||
not_found: "… dhe s’u gjet gjë"
|
||||
stop_ignoring: "Resht së shpërfilluri"
|
||||
photo_uploader:
|
||||
completed: "<%= file %> u plotësua"
|
||||
empty: "{file} është e zbrazët, ju lutemi, ripërzgjidhni kartela pa e përfshirë atë."
|
||||
error: "Ndodhi një problem teksa ngarkohej kartela <%= file %>"
|
||||
invalid_ext: "{file} ka një zgjatim të pavlefshëm. Lejohen vetëm {extensions}."
|
||||
looking_good: "O Zot, sa bukur që dukeni!"
|
||||
size_error: "{file} është shumë e madhe, madhësia maksimum për kartelat është {sizeLimit}."
|
||||
upload_photos: "Ngarkoni foto"
|
||||
poll:
|
||||
answer_count:
|
||||
one: "1 votë"
|
||||
other: "<%=count%> vota"
|
||||
zero: "0 vota"
|
||||
close_result: "Fshihe përfundimin"
|
||||
count:
|
||||
one: "1 votë deri tani"
|
||||
other: "<%=count%> vota deri tani"
|
||||
go_to_original_post: "Mund të merrni pjesë te ky votim përmes lidhjes te <%= original_post_link %>."
|
||||
original_post: "postimi origjinal"
|
||||
result: "Përfundim"
|
||||
show_result: "Shfaqe përfundimin"
|
||||
vote: "Votoni"
|
||||
your_vote: "Vota juaj"
|
||||
profile:
|
||||
add_some: "Shtoni ca"
|
||||
bio: "Jetëshkrim"
|
||||
born: "Datëlindje"
|
||||
edit: "Përpunojeni"
|
||||
gender: "Gjini"
|
||||
location: "Vendndodhje"
|
||||
photos: "Foto"
|
||||
posts: "Postime"
|
||||
you_have_no_tags: "S’keni etiketa!"
|
||||
publisher:
|
||||
add_option: "Shtoni një përgjigje"
|
||||
markdown_editor:
|
||||
preview: "Paraparje"
|
||||
texts:
|
||||
code: "këtu kod"
|
||||
heading: "tekst kryesh"
|
||||
insert_image_description_text: "këtu jepni përshkrim figure"
|
||||
insert_image_help_text: "Këtu futni lidhjen e figurës"
|
||||
insert_image_title: "këtu jepni titullin e figurës"
|
||||
insert_link_description_text: "këtu jepni përshkrimin e lidhjes"
|
||||
insert_link_help_text: "këtu jepni lidhjen"
|
||||
italic: "tekst me të pjerrëta"
|
||||
list: "këtu tekstin e listës"
|
||||
quote: "këtu tekstin e citimit"
|
||||
strong: "tekst me të trasha"
|
||||
tooltips:
|
||||
bold: "Të trasha"
|
||||
cancel: "Anuloje mesazhin"
|
||||
code: "Futni kod"
|
||||
heading: "Krye"
|
||||
insert_image: "Futni figurë"
|
||||
insert_link: "Futni lidhje"
|
||||
insert_ordered_list: "Futni listë të renditur"
|
||||
insert_unordered_list: "Futni listë të parenditur"
|
||||
italic: "Të pjerrëta"
|
||||
preview: "Parashiheni mesazhin"
|
||||
quote: "Futni citim"
|
||||
write: "Përpunoni mesazhin"
|
||||
write: "Shkruani"
|
||||
mention_success: "Përmendur me sukses: <%= names %>"
|
||||
near_from: "Postuar që nga: <%= location %>"
|
||||
option: "Përgjigje"
|
||||
question: "Pyetje"
|
||||
remove_post: "Të hiqet ky postim?"
|
||||
report:
|
||||
name: "Raportojeni"
|
||||
prompt: "Ju lutemi, jepni një arsye:"
|
||||
prompt_default: "p.sh., lëndë fyese"
|
||||
status:
|
||||
created: "Njoftimi u krijua me sukses"
|
||||
exists: "Njoftimi ekziston tashmë"
|
||||
reshares:
|
||||
post: "Të rindahet postimi i <%= name %>?"
|
||||
successful: "Postimi u rinda me sukses!"
|
||||
show_all: "Shfaqi krejt"
|
||||
show_more: "shfaq më tepër"
|
||||
stream:
|
||||
comment: "Komentojeni"
|
||||
comments:
|
||||
one: "<%= count %> koment"
|
||||
other: "<%= count %> komente"
|
||||
disable_post_notifications: "Çaktivizo njoftimet për këtë postim"
|
||||
enable_post_notifications: "Aktivizo njoftimet për këtë postim"
|
||||
follow: "Ndiqe"
|
||||
followed_tag:
|
||||
add_a_tag: "Shtoni një etiketë"
|
||||
follow: "Ndiqe"
|
||||
title: "Etiketa të #ndjekura"
|
||||
hide: "Fshihe"
|
||||
hide_nsfw_posts: "Fshihi postimet #nsfw"
|
||||
like: "Pëlqejeni"
|
||||
likes:
|
||||
few: "<%= count %> Likes"
|
||||
many: "<%= count %> Likes"
|
||||
one: "<%= count %> Like"
|
||||
other: "<%= count %> Likes"
|
||||
two: "<%= count %> Likes"
|
||||
zero: "<%= count %> Likes"
|
||||
limited: "E kufizuar"
|
||||
more_comments:
|
||||
few: "Show <%= count %> more comments"
|
||||
many: "Show <%= count %> more comments"
|
||||
one: "Show <%= count %> more comment"
|
||||
other: "Show <%= count %> more comments"
|
||||
two: "Show <%= count %> more comments"
|
||||
zero: "Show <%= count %> more comments"
|
||||
no_posts_yet: "Këtu s’ka ende postime për t’u shfaqur."
|
||||
original_post_deleted: "Postimi origjinal është fshirë nga autori."
|
||||
permalink: "Permalidhje"
|
||||
public: "Publike"
|
||||
reshare: "Rindajeni"
|
||||
reshares:
|
||||
few: "<%= count %> Reshares"
|
||||
many: "<%= count %> Reshares"
|
||||
one: "<%= count %> Reshare"
|
||||
other: "<%= count %> Reshares"
|
||||
two: "<%= count %> Reshares"
|
||||
zero: "<%= count %> Reshares"
|
||||
show_nsfw_post: "Shfaqe postimin"
|
||||
show_nsfw_posts: "Shfaqi krejt"
|
||||
tags:
|
||||
follow: "Ndiqeni #<%= tag %>"
|
||||
follow_error: "S’u ndoq dot #<%= tag %> :("
|
||||
following: "Po ndiqet #<%= tag %>"
|
||||
stop_following: "Resht së ndjekuri #<%= tag %>"
|
||||
stop_following_confirm: "Të reshtet së ndjekuri #<%= tag %>?"
|
||||
stop_following_error: "S’u resht dot së ndjekuri #<%= tag %> :("
|
||||
unfollow: "Mos e ndiq më"
|
||||
unlike: "Hiqja pëlqimin"
|
||||
via: "përmes <%= provider %>"
|
||||
tags:
|
||||
wasnt_that_interesting: "OK, Them se #<%= tagName %> nuk qe kushedi se çë interesant..."
|
||||
timeago:
|
||||
prefixAgo: ""
|
||||
prefixFromNow: ""
|
||||
suffixAgo: "më parë"
|
||||
suffixFromNow: "nga tani"
|
||||
day: "një ditë"
|
||||
days:
|
||||
other: "%d ditë"
|
||||
hour: "rreth një orë"
|
||||
hours:
|
||||
one: "rreth 1 orë"
|
||||
other: "rreth %d orë"
|
||||
inPast: "në çdo çast nga tani"
|
||||
seconds: "më pak se një minutë"
|
||||
minute: "rreth një minutë"
|
||||
minutes:
|
||||
one: "1 minutë"
|
||||
other: "%d minuta"
|
||||
hour: "rreth një orë"
|
||||
hours:
|
||||
one: "rreth 1 orë"
|
||||
other: "rreth %d orë"
|
||||
day: "një ditë"
|
||||
days:
|
||||
one: "1 ditë"
|
||||
other: "%d ditë"
|
||||
month: "rreth një muaj"
|
||||
months:
|
||||
one: "1 muaj"
|
||||
other: "%d muaj"
|
||||
prefixAgo: ""
|
||||
prefixFromNow: ""
|
||||
seconds: "më pak se një minutë"
|
||||
suffixAgo: "më parë"
|
||||
suffixFromNow: "nga tani"
|
||||
year: "rreth një vit"
|
||||
years:
|
||||
one: "1 vit"
|
||||
other: "%d vjet"
|
||||
wordSeparator: " "
|
||||
|
||||
contacts:
|
||||
add_contact: "Shtoni kontakt"
|
||||
aspect_chat_is_enabled: "Kontaktet në këtë aspekt janë në gjendje të fjalosen me ju."
|
||||
aspect_chat_is_not_enabled: "Kontaktet në këtë aspekt s’janë në gjendje të fjalosen me ju"
|
||||
remove_contact: "Hiqe kontaktin"
|
||||
error_add: "S’u shtua dot <%= name %> te aspekti :("
|
||||
error_remove: "S’u hoq dot <%= name %> prej aspekti :("
|
||||
search_no_results: "S’u gjetën kontakte"
|
||||
|
||||
my_activity: "Veprimtaria ime"
|
||||
my_stream: "Rrjedhë"
|
||||
my_aspects: "Aspektet e mia"
|
||||
|
||||
publisher:
|
||||
near_from: "Postuar që nga: <%= location %>"
|
||||
option: "Përgjigjiuni"
|
||||
add_option: "Shtoni një përgjigje"
|
||||
question: "Pyetje"
|
||||
markdown_editor:
|
||||
preview: "Paraparje"
|
||||
write: "Shkruani"
|
||||
tooltips:
|
||||
bold: "Të trasha"
|
||||
italic: "Të pjerrëta"
|
||||
heading: "Titull"
|
||||
insert_link: "Futni lidhje"
|
||||
insert_image: "Futni figurë"
|
||||
insert_ordered_list: "Futni listë të renditur"
|
||||
insert_unordered_list: "Futni listë të parenditur"
|
||||
preview: "Paraparje mesazhi"
|
||||
write: "Përpunoni mesazhin"
|
||||
cancel: "Anulojeni mesazhin"
|
||||
quote: "Futni citim"
|
||||
code: "Futni kod"
|
||||
texts:
|
||||
strong: "tekst me të trasha"
|
||||
italic: "tekst me të pjerrëta"
|
||||
heading: "tekst titulli"
|
||||
insert_link_description_text: "jepni këtu përshkrimin e lidhjes"
|
||||
insert_link_help_text: "Futeni lidhjen këtu"
|
||||
insert_image_description_text: "jepni këtu përshkrimin e figurës"
|
||||
insert_image_help_text: "Futeni lidhjen e figurës këtu"
|
||||
insert_image_title: "jepni këtu titullin e figurës"
|
||||
list: "tekst liste këtu"
|
||||
quote: "tekst citimi këtu"
|
||||
code: "kod këtu"
|
||||
mention_success: "U përmend me sukses: <%= names %>"
|
||||
|
||||
bookmarklet:
|
||||
post_something: "Postoni diçka te diaspora*"
|
||||
post_submit: "Po parashtrohet postimi…"
|
||||
post_success: "U postua! Po mbyllet dritarja flluskë…"
|
||||
aspect_dropdown:
|
||||
add_to_aspect: "Shtoni kontakt"
|
||||
select_aspects: "Përzgjidhni aspekte"
|
||||
all_aspects: "Krejt aspektet"
|
||||
updating: "po përditësohet…"
|
||||
mobile_row_checked: "<%= name %> (hiqe)"
|
||||
mobile_row_unchecked: "<%= name %> (shtoje)"
|
||||
stopped_sharing_with: "Reshtët së ndari gjëra me <%= name %>."
|
||||
started_sharing_with: "Filluat të ndani gjëra me <%= name %>!"
|
||||
error: "S’u fillua dot ndarja e gjërave me <%= name %>. Mos po i shpërfillni?"
|
||||
error_remove: "S’u hoq dot <%= name %> prej aspekti :("
|
||||
toggle:
|
||||
one: "Në <%= count %> aspekt"
|
||||
other: "Në <%= count %> aspekte"
|
||||
show_more: "shfaq më tepër"
|
||||
failed_to_post_message: "Postimi i mesazhit dështoi!"
|
||||
failed_to_remove: "Heqja e zërit dështoi!"
|
||||
comments:
|
||||
show: "Shfaqi krejt komentet"
|
||||
hide: "Fshihi komentet"
|
||||
no_comments: "Ende s’ka komente."
|
||||
reshares:
|
||||
successful: "Postimi u rinda me sukses me të tjerët!"
|
||||
post: "Të rindahet me të tjerët postimi i <%= name %>?"
|
||||
aspect_navigation:
|
||||
select_all: "Përzgjidhi krejt"
|
||||
deselect_all: "Shpërzgjidhi krejt"
|
||||
no_aspects: "S’janë përzgjedhur aspekte"
|
||||
add_an_aspect: "+ Shtoni një aspekt"
|
||||
getting_started:
|
||||
hey: "Hej, <%= name %>!"
|
||||
no_tags: "Hej, s’jeni duke ndjekur ndonjë etiketë! Të vazhdohet, sido qoftë?"
|
||||
alright_ill_wait: "Në rregull, do të pres."
|
||||
preparing_your_stream: "Po përgatitet rrjedha juaj e personalizuar…"
|
||||
photo_uploader:
|
||||
upload_photos: "Ngarkoni foto"
|
||||
looking_good: "O Zot, sa bukur që dukeni!"
|
||||
completed: "<%= file %> u plotësua"
|
||||
error: "Ndodhi një problem teksa ngarkohej kartela <%= file %>"
|
||||
invalid_ext: "{file} ka një zgjatim të pavlefshëm. Lejohen vetëm {extensions}."
|
||||
size_error: "{file} është shumë e madhe, madhësia maksimum për kartelat është {sizeLimit}."
|
||||
empty: "{file} është e zbrazët, ju lutemi, ripërzgjidhni kartela pa e përfshirë atë."
|
||||
tags:
|
||||
wasnt_that_interesting: "OK, them se #<%= tagName %> s’qe kushedi se çë interesante…"
|
||||
people:
|
||||
not_found: "… dhe s’u gjet gjë"
|
||||
mention: "Përmendje"
|
||||
message: "Mesazh"
|
||||
edit_my_profile: "Përpuno profilin tim"
|
||||
stop_ignoring: "Resht së shpërfilluri"
|
||||
helper:
|
||||
is_sharing: "<%= name %> ndan gjëra me ju"
|
||||
is_not_sharing: "<%= name %> ndan gjëra me ju"
|
||||
profile:
|
||||
edit: "Përpunojeni"
|
||||
add_some: "Shtoni ca"
|
||||
you_have_no_tags: "S’keni etiketa!"
|
||||
bio: "Jetëshkrim"
|
||||
location: "Vendndodhje"
|
||||
gender: "Gjini"
|
||||
born: "Datëlindje"
|
||||
photos: "Foto"
|
||||
posts: "Postime"
|
||||
|
||||
conversation:
|
||||
create:
|
||||
no_recipient: "Hej, së pari lypset të shtoni një marrës!"
|
||||
new:
|
||||
no_contacts: "Lypset të shtoni ca kontakte përpara se të filloni një bisedë."
|
||||
|
||||
notifications:
|
||||
mark_read: "Shënoje si të lexuar"
|
||||
mark_unread: "Shënoje si të palexuar"
|
||||
new_notifications:
|
||||
one: "Keni <%= count %> njoftim të palexuar"
|
||||
other: "Keni <%= count %> njoftime të palexuar"
|
||||
|
||||
stream:
|
||||
hide: "Fshihe"
|
||||
public: "Publike"
|
||||
limited: "E kufizuar"
|
||||
like: "Pëlqejeni"
|
||||
unlike: "Shpëlqejeni"
|
||||
reshare: "Rindajeni"
|
||||
comment: "Komentojeni"
|
||||
original_post_deleted: "Postimi origjinal është fshirë nga autori."
|
||||
show_nsfw_post: "Shfaqe postimin"
|
||||
show_nsfw_posts: "Shfaqi krejt"
|
||||
hide_nsfw_posts: "Fshihi postimet #nsfw"
|
||||
follow: "Ndiqe"
|
||||
unfollow: "Mos e ndiq më"
|
||||
enable_post_notifications: "Aktivizo njoftimet për këtë postim"
|
||||
disable_post_notifications: "Çaktivizo njoftimet për këtë postim"
|
||||
permalink: "Permalidhje"
|
||||
via: "përmes <%= provider %>"
|
||||
no_posts_yet: "Këtu s’ka ende postime për t’i shfaqur."
|
||||
|
||||
likes:
|
||||
zero: "<%= count %> Pëlqime"
|
||||
one: "<%= count %> Pëlqim"
|
||||
other: "<%= count %> Pëlqime"
|
||||
|
||||
reshares:
|
||||
zero: "<%= count %> Rindarje"
|
||||
one: "<%= count %> Rindarje"
|
||||
other: "<%= count %> Rindarje"
|
||||
|
||||
comments:
|
||||
zero: "<%= count %> komente"
|
||||
one: "<%= count %> koment"
|
||||
other: "<%= count %> komente"
|
||||
|
||||
more_comments:
|
||||
zero: "Shfaq <%= count %> komente të tjera"
|
||||
one: "Shfaq edhe <%= count %> koment tjetër"
|
||||
other: "Shfaq edhe <%= count %> komente të tjera"
|
||||
|
||||
followed_tag:
|
||||
title: "#Etiketa të ndjekura"
|
||||
add_a_tag: "Shtoni një etiketë"
|
||||
follow: "Ndiqe"
|
||||
|
||||
tags:
|
||||
follow: "Ndiqe #<%= tag %>"
|
||||
following: "Po ndiqet #<%= tag %>"
|
||||
stop_following: "Resht së ndjekuri #<%= tag %>"
|
||||
stop_following_confirm: "Të reshtet së ndjekuri #<%= tag %>?"
|
||||
follow_error: "S’u ndoq dot #<%= tag %> :("
|
||||
stop_following_error: "S’u resht dot së ndjekuri #<%= tag %> :("
|
||||
|
||||
header:
|
||||
home: "Kreu"
|
||||
profile: "Profil"
|
||||
contacts: "Kontakte"
|
||||
settings: "Rregullime"
|
||||
help: "Ndihmë"
|
||||
admin: "Admin"
|
||||
moderator: "Moderator"
|
||||
log_out: "Dilni"
|
||||
toggle_navigation: "Shfaqni/fshihni lëvizjen"
|
||||
toggle_mobile: "Shfaqeni/fshiheni për celular"
|
||||
|
||||
notifications: "Njoftime"
|
||||
conversations: "Biseda"
|
||||
|
||||
search: "Kërko"
|
||||
|
||||
recent_notifications: "Njoftime së fundi"
|
||||
mark_all_as_read: "Shënoji krejt si të lexuara"
|
||||
view_all: "Shihini krejt"
|
||||
close: "Mbylle"
|
||||
|
||||
other: "%d vjetë"
|
||||
unblock_failed: "Zhbllokimi i këtij përdoruesi dështoi"
|
||||
viewer:
|
||||
reshared: "I rindarë"
|
||||
|
||||
poll:
|
||||
vote: "Votoni"
|
||||
go_to_original_post: "Mund të merrni pjesë te ky votim përmes lidhjes te <%= original_post_link %>."
|
||||
original_post: "postimi origjinal"
|
||||
result: "Përfundimi"
|
||||
count:
|
||||
one: "1 votë deri tani"
|
||||
other: "<%=count%> vota deri tani"
|
||||
answer_count:
|
||||
zero: "0 vota"
|
||||
one: "1 votë"
|
||||
other: "<%=count%> vota"
|
||||
show_result: "Shfaqe përfundimin"
|
||||
close_result: "Fshihe përfundimin"
|
||||
your_vote: "Vota juaj"
|
||||
reshared: "I rindarë"
|
||||
@@ -86,7 +86,7 @@ Logging::Rails.configure do |config|
|
||||
# Default log-level (development=debug, production=info)
|
||||
Logging.logger.root.level = config.log_level
|
||||
|
||||
# log-levels from the diaspora.yml for SQL and federation debug-logging
|
||||
# log-levels from the diaspora.toml for SQL and federation debug-logging
|
||||
Logging.logger[ActionView::Base].level = Rails.env.development? ? :debug : :warn
|
||||
Logging.logger[ActiveRecord::Base].level = AppConfig.environment.logging.debug.sql? ? :debug : :info
|
||||
Logging.logger[DiasporaFederation::Salmon::MagicEnvelope].level =
|
||||
|
||||
@@ -209,7 +209,7 @@ Rails.application.routes.draw do
|
||||
get 'help/:topic' => 'help#faq'
|
||||
|
||||
#Protocol Url
|
||||
get 'protocol' => redirect("http://wiki.diasporafoundation.org/Federation_Protocol_Overview")
|
||||
get "protocol" => redirect("https://wiki.diasporafoundation.org/Federation_Protocol_Overview")
|
||||
|
||||
# NodeInfo
|
||||
get ".well-known/nodeinfo", to: "node_info#jrd"
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
%w[
|
||||
.ruby-version
|
||||
.rbenv-vars
|
||||
tmp/restart.txt
|
||||
tmp/caching-dev.txt
|
||||
].each {|path| Spring.watch(path) }
|
||||
@@ -19,13 +19,9 @@ before_fork do |_server, _worker|
|
||||
ActiveRecord::Base.connection.disconnect! # preloading app in master, so reconnect to DB
|
||||
|
||||
# disconnect redis if in use
|
||||
unless AppConfig.environment.single_process_mode?
|
||||
Sidekiq.redis {|redis| redis.client.disconnect }
|
||||
end
|
||||
Sidekiq.redis(&:close) unless AppConfig.environment.single_process_mode?
|
||||
|
||||
if AppConfig.server.embed_sidekiq_worker?
|
||||
@sidekiq_pid ||= spawn("bin/bundle exec sidekiq")
|
||||
end
|
||||
@sidekiq_pid ||= spawn("bin/bundle exec sidekiq") if AppConfig.server.embed_sidekiq_worker?
|
||||
end
|
||||
|
||||
after_fork do |server, worker|
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
FROM ruby:2.4.4-slim-stretch
|
||||
FROM ruby:2.6-slim-buster
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get update && \
|
||||
apt-get install -y -qq \
|
||||
apt-get install -y -qq --no-install-recommends \
|
||||
build-essential \
|
||||
cmake \
|
||||
curl \
|
||||
ghostscript \
|
||||
git \
|
||||
gsfonts \
|
||||
imagemagick \
|
||||
libcurl4-openssl-dev \
|
||||
libidn11-dev \
|
||||
@@ -16,7 +16,7 @@ RUN DEBIAN_FRONTEND=noninteractive \
|
||||
libpq-dev \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
libxslt1-dev \
|
||||
nodejs \
|
||||
gosu \
|
||||
&& \
|
||||
@@ -27,7 +27,8 @@ ARG DIA_UID
|
||||
ARG DIA_GID
|
||||
|
||||
ENV HOME="/home/diaspora" \
|
||||
GEM_HOME="/diaspora/vendor/bundle"
|
||||
GEM_HOME="/diaspora/vendor/bundle" \
|
||||
OPENSSL_CONF="/etc/ssl/"
|
||||
|
||||
RUN addgroup --gid $DIA_GID diaspora && \
|
||||
adduser \
|
||||
@@ -42,13 +43,6 @@ RUN addgroup --gid $DIA_GID diaspora && \
|
||||
chown -R diaspora:diaspora $HOME /diaspora
|
||||
|
||||
|
||||
RUN curl -L \
|
||||
https://cifiles.diasporafoundation.org/phantomjs-2.1.1-linux-x86_64.tar.bz2 \
|
||||
| tar -xj -C /usr/local/bin \
|
||||
--transform='s#.*/##' \
|
||||
phantomjs-2.1.1-linux-x86_64/bin/phantomjs
|
||||
|
||||
|
||||
ENV BUNDLE_PATH="$GEM_HOME" \
|
||||
BUNDLE_BIN="$GEM_HOME/bin" \
|
||||
BUNDLE_APP_CONFIG="/diaspora/.bundle"
|
||||
|
||||
@@ -19,10 +19,12 @@ Feature: Change settings
|
||||
|
||||
Scenario: Change my email preferences
|
||||
When I uncheck "user_email_preferences_mentioned"
|
||||
And I scroll a bit
|
||||
And I press "change_email_preferences"
|
||||
Then I should see "Email notifications changed"
|
||||
And the "user_email_preferences_mentioned" checkbox should not be checked
|
||||
When I uncheck "user_email_preferences_mentioned_in_comment"
|
||||
And I scroll a bit
|
||||
And I press "change_email_preferences"
|
||||
Then I should see "Email notifications changed"
|
||||
And the "user_email_preferences_mentioned_in_comment" checkbox should not be checked
|
||||
|
||||
@@ -19,7 +19,6 @@ Feature: commenting
|
||||
When I focus the comment field
|
||||
And I fill in the following:
|
||||
| text | is that a poodle? |
|
||||
And I reject the alert after I follow "My activity"
|
||||
And I press "Comment"
|
||||
Then I should see "is that a poodle?" within ".comment"
|
||||
And I should see "less than a minute ago" within ".comment time"
|
||||
|
||||
@@ -34,7 +34,6 @@ Feature: editing your profile
|
||||
And the "#profile_public_details" bootstrap-switch should be off
|
||||
|
||||
When I fill in "profile_bio" with "This is a new awesome bio"
|
||||
And I reject the alert after I follow "My activity"
|
||||
Then I should be on my edit profile page
|
||||
|
||||
When I fill in "profile[tag_string]" with "#kamino"
|
||||
|
||||
@@ -33,7 +33,7 @@ Feature: posting
|
||||
Then I should see "#boss from the #boss tag page" within "body"
|
||||
|
||||
Scenario: can stop following a tag from the tag page
|
||||
When I press "Following #boss"
|
||||
When I press "Stop following #boss"
|
||||
And I go to the followed tags stream page
|
||||
Then I should not see "#boss" within "#tags_list"
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ Feature: new user registration
|
||||
Scenario: new user goes through the setup wizard
|
||||
When I fill in the following:
|
||||
| profile_first_name | O |
|
||||
And I confirm the alert after I follow "awesome_button"
|
||||
Then I should be on the stream page
|
||||
And the publisher should be expanded
|
||||
And I close the publisher
|
||||
Then I wait until ajax requests finished
|
||||
When I go to the stream page
|
||||
Then the publisher should be expanded
|
||||
When I close the publisher
|
||||
Then I should not see "awesome_button"
|
||||
And I should not see any posts in my stream
|
||||
|
||||
|
||||
@@ -12,12 +12,11 @@ Feature: Invitations
|
||||
And I press "Create account"
|
||||
Then I should be on the getting started page
|
||||
And I should see "Well, hello there!"
|
||||
And I fill in the following:
|
||||
When I fill in the following:
|
||||
| profile_first_name | O |
|
||||
|
||||
And I confirm the alert after I follow "awesome_button"
|
||||
Then I should be on the stream page
|
||||
And I close the publisher
|
||||
Then I wait until ajax requests finished
|
||||
When I go to the stream page
|
||||
Then I close the publisher
|
||||
|
||||
Scenario: accept invitation from user
|
||||
Given I have been invited by "alice@alice.alice"
|
||||
@@ -27,11 +26,10 @@ Feature: Invitations
|
||||
Then I should be on the getting started page
|
||||
And I should see "Well, hello there!"
|
||||
And I should be able to friend "alice@alice.alice"
|
||||
And I fill in the following:
|
||||
When I fill in the following:
|
||||
| profile_first_name | O |
|
||||
|
||||
And I confirm the alert after I follow "awesome_button"
|
||||
Then I should be on the stream page
|
||||
Then I wait until ajax requests finished
|
||||
When I go to the stream page
|
||||
And I close the publisher
|
||||
And I log out
|
||||
And I sign in as "alice@alice.alice"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# We can create a separate cucumber profile that will run these tests with Selenium
|
||||
@nophantomjs
|
||||
@javascript
|
||||
Feature: oembed
|
||||
In order to make videos easy accessible
|
||||
|
||||
@@ -42,7 +42,7 @@ Feature: Mentions
|
||||
Then I should see "Bob Jones" within ".tt-suggestion"
|
||||
When I click on the first user in the mentions dropdown list
|
||||
When I press the "A" key in the publisher
|
||||
And I append "@Bob" to the publisher
|
||||
And I type "@Bob" into the publisher
|
||||
Then I should not see the mentions dropdown list
|
||||
When I press "Share"
|
||||
Then I should see "Bob Jones" within ".stream-element"
|
||||
@@ -80,8 +80,8 @@ Feature: Mentions
|
||||
And I enter "@Bob" in the comment field
|
||||
Then I should see "Bob Jones" within ".tt-suggestion"
|
||||
When I click on the first user in the mentions dropdown list
|
||||
And I press the "A" key in the publisher
|
||||
And I append "@Bob" to the publisher
|
||||
And I enter " A " in the comment field
|
||||
And I enter "@Bob" in the comment field
|
||||
Then I should not see the mentions dropdown list
|
||||
When I press "Comment"
|
||||
Then I should see "Bob Jones" within ".comments .comment:last-child"
|
||||
|
||||
@@ -54,7 +54,7 @@ Feature: preview posts in the stream
|
||||
Given I expand the publisher
|
||||
And I mention Alice in the publisher
|
||||
And I preview the post
|
||||
And I confirm the alert after I follow "Alice Smith"
|
||||
And I follow "Alice Smith"
|
||||
Then I should see "Alice Smith"
|
||||
|
||||
Scenario: preview a post on tag page
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
And I sign in as "alice@alice.alice"
|
||||
|
||||
And I open the show page of the "Here is a post to test with" post
|
||||
And I confirm the alert after I click to report the post
|
||||
And I confirm the prompt after I click to report the post
|
||||
|
||||
And I should see a flash message containing "The report has successfully been created"
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ Feature: editing the profile in the mobile view
|
||||
Then I should see "#kamino" within "ul#as-selections-tags"
|
||||
And I should see "#starwars" within "ul#as-selections-tags"
|
||||
|
||||
When I confirm the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload"
|
||||
When I accept the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload"
|
||||
And I attach the file "spec/fixtures/button.png" to hidden "qqfile" within "#file-upload"
|
||||
Then I should see "button.png completed"
|
||||
And I should see a "img" within "#profile_photo_upload"
|
||||
|
||||
@@ -17,7 +17,7 @@ Feature: editing the getting started in the mobile view
|
||||
And I should not see "awesome_button"
|
||||
|
||||
Scenario: new user adds a profile photo and tags
|
||||
When I confirm the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload"
|
||||
When I accept the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload"
|
||||
And I attach the file "spec/fixtures/button.png" to hidden "qqfile" within "#file-upload"
|
||||
Then I should see a "img" within "#profile_photo_upload"
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ Feature: posting from the mobile main page
|
||||
|
||||
Scenario: back out of posting a photo-only post
|
||||
Given I visit the mobile publisher page
|
||||
When I confirm the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload-publisher"
|
||||
When I accept the alert after I attach the file "spec/fixtures/bad_urls.txt" to "qqfile" within "#file-upload-publisher"
|
||||
Then I should not see an uploaded image within the photo drop zone
|
||||
When I attach the file "spec/fixtures/button.png" to hidden "qqfile" within "#file-upload-publisher"
|
||||
And I should see "button.png completed"
|
||||
|
||||
@@ -119,6 +119,7 @@ When /^(.*) in the aspect creation modal$/ do |action|
|
||||
end
|
||||
|
||||
When /^I drag "([^"]*)" (up|down)$/ do |aspect_name, direction|
|
||||
expect(page).to have_js_defined("$('body').sortable")
|
||||
page.execute_script("$('#aspect_nav .list-group').sortable('option', 'tolerance', 'pointer');")
|
||||
aspect_id = @me.aspects.where(name: aspect_name).first.id
|
||||
aspect = find(:xpath, "//div[@id='aspect_nav']/ul/a[@data-aspect-id='#{aspect_id}']")
|
||||
|
||||
@@ -85,11 +85,23 @@ And /^I click on the first selector "([^"]*)"$/ do |selector|
|
||||
end
|
||||
|
||||
And /^I confirm the alert after (.*)$/ do |action|
|
||||
accept_confirm do
|
||||
step action
|
||||
end
|
||||
end
|
||||
|
||||
And /^I accept the alert after (.*)$/ do |action|
|
||||
accept_alert do
|
||||
step action
|
||||
end
|
||||
end
|
||||
|
||||
And /^I confirm the prompt after (.*)$/ do |action|
|
||||
accept_prompt do
|
||||
step action
|
||||
end
|
||||
end
|
||||
|
||||
And /^I reject the alert after (.*)$/ do |action|
|
||||
dismiss_confirm do
|
||||
step action
|
||||
@@ -155,6 +167,10 @@ Then /^I should see (\d+) contacts$/ do |n_posts|
|
||||
has_css?("#people-stream .stream-element", count: n_posts.to_i).should be true
|
||||
end
|
||||
|
||||
When /^I scroll a bit$/ do
|
||||
page.execute_script("window.scrollBy(0,200)")
|
||||
end
|
||||
|
||||
And /^I scroll down$/ do
|
||||
page.execute_script("window.scrollBy(0,3000000)")
|
||||
end
|
||||
|
||||
@@ -54,7 +54,6 @@ Then /^I should not see any tokens in the redirect url$/ do
|
||||
end
|
||||
|
||||
When /^I parse the bearer tokens and use it to access user info$/ do
|
||||
current_url = page.driver.network_traffic.last.url # We get a redirect to example.org that we can't follow
|
||||
access_token = current_url[/(?<=access_token=)[^&]+/]
|
||||
expect(access_token).to be_present
|
||||
get api_openid_connect_user_info_path, access_token: access_token
|
||||
|
||||
@@ -2,18 +2,12 @@
|
||||
|
||||
When /^I allow geolocation$/ do
|
||||
page.execute_script <<-JS
|
||||
window.navigator = {
|
||||
geolocation: {
|
||||
getCurrentPosition: function(success) {
|
||||
success({coords: {latitude: 42.42424242, longitude: 3.14159}});
|
||||
OSM.Locator = function() {
|
||||
return {
|
||||
getAddress: function(callback) {
|
||||
callback("locator address", {latitude: 42.42424242, longitude: 3.14159});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.getJSON = function(url, myCallback) {
|
||||
if (url === "https://nominatim.openstreetmap.org/reverse?format=json&lat=42.42424242&lon=3.14159&addressdetails=3") {
|
||||
return myCallback({display_name: "locator address"});
|
||||
}
|
||||
};
|
||||
}
|
||||
JS
|
||||
end
|
||||
|
||||
@@ -32,7 +32,7 @@ end
|
||||
Given /^"([^"]*)" has a public post with text "([^"]*)" and a picture/ do |email, text|
|
||||
user = User.find_by(email: email)
|
||||
post = user.post(:status_message, text: text, public: true, to: user.aspect_ids)
|
||||
FactoryGirl.create(:photo, status_message: post)
|
||||
FactoryGirl.create(:photo, status_message: post, author: user.person)
|
||||
end
|
||||
|
||||
Given /^there are (\d+) public posts from "([^"]*)"$/ do |n_posts, email|
|
||||
|
||||
@@ -47,6 +47,10 @@ When /^I append "([^"]*)" to the publisher$/ do |text|
|
||||
append_to_publisher(text)
|
||||
end
|
||||
|
||||
When /^I type "([^"]*)" into the publisher$/ do |text|
|
||||
type_into_publisher(text)
|
||||
end
|
||||
|
||||
When /^I attach "([^"]*)" to the publisher$/ do |path|
|
||||
upload_file_with_publisher(path)
|
||||
end
|
||||
|
||||
@@ -26,6 +26,7 @@ Then /^the post "([^"]*)" should have a like from "([^"]*)"$/ do |post_text, use
|
||||
within_post(post_text) do
|
||||
find(".expand-likes").click
|
||||
find(".likes .avatar")["data-original-title"].should have_content(username)
|
||||
find(".likes .entypo-heart").hover # unfocus avatar to get rid of tooltip
|
||||
end
|
||||
end
|
||||
|
||||
@@ -68,14 +69,14 @@ When /^I prepare hiding the first post$/ do
|
||||
end
|
||||
|
||||
When /^I click to delete the first post$/ do
|
||||
accept_alert do
|
||||
accept_confirm do
|
||||
step "I prepare the deletion of the first post"
|
||||
end
|
||||
expect(find(".stream")).to have_no_css(".stream-element.loaded.deleting")
|
||||
end
|
||||
|
||||
When /^I click to hide the first post$/ do
|
||||
accept_alert do
|
||||
accept_confirm do
|
||||
step "I prepare hiding the first post"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
When(/^I unfollow the "(.*?)" tag$/) do |tag|
|
||||
accept_alert do
|
||||
accept_confirm do
|
||||
within("#tags_list") do
|
||||
li = find("li", text: tag)
|
||||
li.hover
|
||||
|
||||
@@ -92,8 +92,7 @@ end
|
||||
|
||||
When /^(?:|I )attach the file "([^"]*)" to (?:hidden )?"([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector|
|
||||
with_scope(selector) do
|
||||
page.execute_script("$(\"input[name='#{field}']\").css('opacity', '1');")
|
||||
attach_file(field, Rails.root.join(path).to_s)
|
||||
attach_file(field, Rails.root.join(path).to_s, make_visible: true)
|
||||
end
|
||||
# wait for the image to be ready
|
||||
page.assert_selector(".loading", count: 0)
|
||||
|
||||
@@ -7,15 +7,13 @@ ENV["RAILS_ENV"] ||= "test"
|
||||
# Have all rests run with english browser locale
|
||||
ENV["LANG"] = "C"
|
||||
|
||||
require 'coveralls'
|
||||
Coveralls.wear!('rails')
|
||||
|
||||
require "database_cleaner/active_record"
|
||||
require "cucumber/rails"
|
||||
|
||||
require "capybara/rails"
|
||||
require "capybara/cucumber"
|
||||
require "capybara/session"
|
||||
require "capybara/poltergeist"
|
||||
require "capybara/apparition"
|
||||
|
||||
require "cucumber/api_steps"
|
||||
|
||||
@@ -26,11 +24,11 @@ Rails.application.routes.default_url_options[:port] = AppConfig.pod_uri.port
|
||||
|
||||
Capybara.server = :webrick
|
||||
|
||||
Capybara.register_driver :poltergeist do |app|
|
||||
Capybara::Poltergeist::Driver.new(app, timeout: 30)
|
||||
Capybara.register_driver :apparition do |app|
|
||||
# Pass headless: false here if you need to see the browser
|
||||
Capybara::Apparition::Driver.new(app, headless: true)
|
||||
end
|
||||
|
||||
Capybara.javascript_driver = :poltergeist
|
||||
Capybara.javascript_driver = :apparition
|
||||
|
||||
# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
|
||||
# order to ease the transition to Capybara we set the default here. If you'd
|
||||
@@ -55,6 +53,7 @@ Capybara.default_max_wait_time = 30
|
||||
# of your scenarios, as this makes it hard to discover errors in your application.
|
||||
ActionController::Base.allow_rescue = false
|
||||
|
||||
DatabaseCleaner.strategy = :truncation
|
||||
Cucumber::Rails::Database.autorun_database_cleaner = true
|
||||
Cucumber::Rails::World.use_transactional_tests = false
|
||||
|
||||
|
||||
@@ -39,6 +39,19 @@ RSpec::Matchers.define :have_value do |expected|
|
||||
end
|
||||
end
|
||||
|
||||
RSpec::Matchers.define :have_js_defined do |expected|
|
||||
match do |actual|
|
||||
await_condition { actual.evaluate_script("#{expected} !== undefined") == true }
|
||||
end
|
||||
|
||||
failure_message_for_should do |actual|
|
||||
"expected #{actual.inspect} to have a value for #{expected.inspect} in Javascript but it did not"
|
||||
end
|
||||
failure_message_for_should_not do |actual|
|
||||
"expected #{actual.inspect} to not have a value for #{expected.inspect} in Javascript but it had"
|
||||
end
|
||||
end
|
||||
|
||||
def await_condition &condition
|
||||
start_time = Time.zone.now
|
||||
until condition.call
|
||||
|
||||
@@ -70,10 +70,12 @@ module NavigationHelpers
|
||||
end
|
||||
|
||||
def confirm_on_page(page_name)
|
||||
if page_name == "my profile page"
|
||||
expect(page).to have_path_in([person_path(@me.person), user_profile_path(@me.username)])
|
||||
else
|
||||
expect(page).to have_path(path_to(page_name))
|
||||
page.driver.send(:retry_if_wrong_world) do
|
||||
if page_name == "my profile page"
|
||||
expect(page).to have_path_in([person_path(@me.person), user_profile_path(@me.username)])
|
||||
else
|
||||
expect(page).to have_path(path_to(page_name))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -6,10 +6,24 @@ module PublishingCukeHelpers
|
||||
end
|
||||
|
||||
def append_to_publisher(txt)
|
||||
status_message_text = find("#status_message_text").value
|
||||
fill_in id: "status_message_text", with: "#{status_message_text} #{txt}"
|
||||
update_publisher_with(txt) do |input|
|
||||
fill_in id: "status_message_text", with: "#{input.value} #{txt}"
|
||||
end
|
||||
end
|
||||
|
||||
def type_into_publisher(txt)
|
||||
update_publisher_with(txt) {|input| input.send_keys txt }
|
||||
end
|
||||
|
||||
def update_publisher_with(txt)
|
||||
input = find("#status_message_text")
|
||||
|
||||
yield input
|
||||
|
||||
# trigger JavaScript event listeners
|
||||
find("#status_message_text").native.send_key(:end)
|
||||
input.native.send_key(:end)
|
||||
|
||||
expect(input).to have_value(txt) # Wait for all key presses being processed
|
||||
end
|
||||
|
||||
def upload_file_with_publisher(path)
|
||||
|
||||
@@ -7,7 +7,7 @@ Before do
|
||||
stub_request(:head, /.+/).with(
|
||||
headers: {
|
||||
"Accept" => "text/html",
|
||||
"User-Agent" => "OpenGraphReader/0.7.0 (+https://github.com/jhass/open_graph_reader)"
|
||||
"User-Agent" => "OpenGraphReader/0.7.1 (+https://github.com/jhass/open_graph_reader)"
|
||||
}
|
||||
).to_return(status: 200, body: "", headers: {"Content-Type" => "text/plain"})
|
||||
end
|
||||
|
||||
@@ -39,6 +39,7 @@ class AccountDeleter
|
||||
remove_share_visibilities_on_contacts_posts
|
||||
disconnect_contacts
|
||||
delete_standard_user_associations
|
||||
delete_user_invitation_code
|
||||
tombstone_user
|
||||
end
|
||||
|
||||
@@ -56,6 +57,10 @@ class AccountDeleter
|
||||
end
|
||||
end
|
||||
|
||||
def delete_user_invitation_code
|
||||
InvitationCode.find_by(user_id: user.id).try(:destroy)
|
||||
end
|
||||
|
||||
def normal_ar_person_associates_to_delete
|
||||
%i[posts photos mentions participations roles blocks conversation_visibilities]
|
||||
end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
||||
# files.
|
||||
|
||||
@@ -20,7 +20,7 @@ begin
|
||||
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
||||
t.fork = true # You may get faster startup if you set this to false
|
||||
t.profile = 'default'
|
||||
t.cucumber_opts = %w[--retry 3]
|
||||
t.cucumber_opts = %w[--retry 3 --no-strict-flaky --fail-fast --publish-quiet]
|
||||
end
|
||||
|
||||
Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
namespace :ci do
|
||||
namespace :travis do
|
||||
task prepare_db: %w[db:create db:migrate]
|
||||
task prepare: %w[prepare_db assets:generate_error_pages]
|
||||
task prepare_db: %w[db:create db:migrate]
|
||||
task prepare: %w[prepare_db assets:generate_error_pages]
|
||||
|
||||
desc "Run everyhting except cucumber"
|
||||
task other: %w[prepare tests:generate_fixtures spec jasmine:ci]
|
||||
desc "Run everyhting except cucumber"
|
||||
task other: %w[prepare tests:generate_fixtures spec]
|
||||
|
||||
desc "Run cucumber"
|
||||
task cucumber: %w[prepare rake:cucumber]
|
||||
end
|
||||
desc "Run cucumber"
|
||||
task cucumber: %w[prepare rake:cucumber]
|
||||
end
|
||||
|
||||
if defined?(RSpec)
|
||||
|
||||
@@ -6,6 +6,3 @@ cp config/database.yml.example config/database.yml
|
||||
if [ "${DB}" = "mysql" ]; then
|
||||
sed -i 's/*common/*mysql/' config/database.yml
|
||||
fi
|
||||
|
||||
gem install bundler
|
||||
script/configure_bundler
|
||||
|
||||
@@ -19,6 +19,7 @@ config("with #{database}")
|
||||
|
||||
if rails_env == "production"
|
||||
config("without test:development")
|
||||
config("ignore_messages true")
|
||||
elsif rails_env == "test"
|
||||
config("without development")
|
||||
end
|
||||
|
||||
@@ -257,7 +257,7 @@ dia_config() {
|
||||
if [ ! -z $dia_config_delete ]; then
|
||||
rm "$DIASPORA_CONFIG_DIA" "$DIASPORA_CONFIG_DB"
|
||||
fi
|
||||
# Create new diaspora.yml if none exists
|
||||
# Create new diaspora.toml if none exists
|
||||
if [ ! -f "$DIASPORA_CONFIG_DIA" ]; then
|
||||
cp "$DIASPORA_CONFIG_DIA".example "$DIASPORA_CONFIG_DIA"
|
||||
fi
|
||||
@@ -477,7 +477,7 @@ export SCRIPT_ROOT=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
|
||||
export DIASPORA_ROOT=$(dirname "$SCRIPT_ROOT")
|
||||
export DIASPORA_ROOT_UID=1001
|
||||
export DIASPORA_ROOT_GID=1001
|
||||
export DIASPORA_CONFIG_DIA=$DIASPORA_ROOT/config/diaspora.yml
|
||||
export DIASPORA_CONFIG_DIA=$DIASPORA_ROOT/config/diaspora.toml
|
||||
export DIASPORA_CONFIG_DB=$DIASPORA_ROOT/config/database.yml
|
||||
export DIASPORA_DOCKER_DB=$(dia_get_db)
|
||||
|
||||
|
||||
@@ -55,10 +55,15 @@ then
|
||||
fatal "config/database.yml is missing! Copy over config/database.yml.example to config/database.yml and edit it properly!"
|
||||
fi
|
||||
|
||||
# Check if diaspora.yml exists
|
||||
if [ ! -e "config/diaspora.yml" ]
|
||||
# Check if diaspora.toml exists
|
||||
if [ -e "config/diaspora.toml" ]
|
||||
then
|
||||
fatal "config/diaspora.yml is missing! Copy over config/diaspora.yml.example to config/diaspora.yml and edit it properly!"
|
||||
CONFIG_FILE="config/diaspora.toml"
|
||||
elif [ -e "config/diaspora.yml" ]
|
||||
then
|
||||
CONFIG_FILE="config/diaspora.yml"
|
||||
else
|
||||
fatal "config/diaspora.toml is missing! Copy over config/diaspora.toml.example to config/diaspora.toml and edit it properly!"
|
||||
fi
|
||||
|
||||
command -v git > /dev/null 2>&1
|
||||
@@ -100,7 +105,7 @@ fi
|
||||
if [ -z "$RAILS_ENV" ]
|
||||
then
|
||||
RAILS_ENV=$(bin/bundle exec ruby ./script/get_config.rb server.rails_environment | grep -vE "is not writable|as your home directory temporarily" )
|
||||
on_failure "Couldn't parse config/diaspora.yml!"
|
||||
on_failure "Couldn't parse $CONFIG_FILE!"
|
||||
export RAILS_ENV
|
||||
fi
|
||||
|
||||
@@ -116,7 +121,7 @@ vars=$(bin/bundle exec ruby ./script/get_config.rb \
|
||||
redis_url=environment.redis \
|
||||
| grep -vE "is not writable|as your home directory temporarily"
|
||||
)
|
||||
on_failure "Couldn't parse config/diaspora.yml!"
|
||||
on_failure "Couldn't parse $CONFIG_FILE!"
|
||||
eval "$vars"
|
||||
|
||||
args="$@"
|
||||
@@ -170,10 +175,10 @@ then
|
||||
if [ -n "$redis_url" ]
|
||||
then
|
||||
redis_param="url: '$redis_url'"
|
||||
fi
|
||||
fi
|
||||
if [ "$(bin/bundle exec ruby -e "require 'redis'; puts Redis.new($redis_param).ping" 2> /dev/null | grep -vE "is not writable|as your home directory temporarily" )" != "PONG" ]
|
||||
then
|
||||
fatal "Can't connect to redis. Please check if it's running and if environment.redis is configured correctly in config/diaspora.yml."
|
||||
fatal "Can't connect to redis. Please check if it's running and if environment.redis is configured correctly in $CONFIG_FILE."
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ describe NotificationsController, :type => :controller do
|
||||
it "should not provide a contacts menu for standard notifications" do
|
||||
FactoryGirl.create(:notification, :recipient => alice, :target => @post)
|
||||
get :index, params: {per_page: 5}
|
||||
expect(Nokogiri(response.body).css('.aspect_membership')).to be_empty
|
||||
expect(Nokogiri(response.body).css(".aspect-membership")).to be_empty
|
||||
end
|
||||
|
||||
it "should provide a contacts menu for start sharing notifications" do
|
||||
|
||||
@@ -1,28 +1,15 @@
|
||||
describe("app.helpers.locations", function() {
|
||||
describe("getTiles", function() {
|
||||
context("with mapbox disabled", function() {
|
||||
beforeEach(function() {
|
||||
gon.appConfig = {map: {mapbox: {enabled: false}}};
|
||||
});
|
||||
|
||||
it("returns tiles from the Heidelberg University", function() {
|
||||
var tiles = app.helpers.locations.getTiles();
|
||||
expect(tiles._url).toMatch("http://korona.geog.uni-heidelberg.de/");
|
||||
expect(tiles._url).not.toMatch("https://api.tiles.mapbox.com/");
|
||||
});
|
||||
});
|
||||
|
||||
context("with mapbox enabled", function() {
|
||||
beforeEach(function() {
|
||||
/* eslint-disable camelcase */
|
||||
gon.appConfig = {map: {mapbox: {enabled: true, style: "mapbox/streets-v9", access_token: "yourAccessToken"}}};
|
||||
gon.appConfig = {map: {mapbox: {enabled: true, style: "mapbox/streets-v11", access_token: "yourAccessToken"}}};
|
||||
/* eslint-enable camelcase */
|
||||
});
|
||||
|
||||
it("returns tiles from mapbox", function() {
|
||||
var tiles = app.helpers.locations.getTiles();
|
||||
expect(tiles._url).toMatch("https://api.mapbox.com/");
|
||||
expect(tiles._url).not.toMatch("http://korona.geog.uni-heidelberg.de/");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -10,6 +10,6 @@ describe("app.pages.GettingStarted", function() {
|
||||
|
||||
it("renders aspect membership dropdown", function() {
|
||||
this.view.render();
|
||||
expect($("ul.dropdown-menu.aspect_membership").length).toEqual(1);
|
||||
expect($("ul.dropdown-menu.aspect-membership").length).toEqual(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -37,42 +37,39 @@ describe("app.views.Content", function(){
|
||||
});
|
||||
});
|
||||
|
||||
// These tests don't work in PhantomJS because it doesn't support HTML5 <video>.
|
||||
if (/PhantomJS/.exec(navigator.userAgent) === null) {
|
||||
describe("onVideoThumbClick", function() {
|
||||
beforeEach(function() {
|
||||
this.post = new app.models.StatusMessage({text: "[title](https://www.w3schools.com/html/mov_bbb.mp4)"});
|
||||
this.view = new app.views.StatusMessage({model: this.post});
|
||||
describe("onVideoThumbClick", function() {
|
||||
beforeEach(function() {
|
||||
this.post = new app.models.StatusMessage({text: "[title](https://www.w3schools.com/html/mov_bbb.mp4)"});
|
||||
this.view = new app.views.StatusMessage({model: this.post});
|
||||
|
||||
this.view.render();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
this.view.$("video").stop();
|
||||
});
|
||||
|
||||
it("hides video overlay", function() {
|
||||
expect(this.view.$(".video-overlay").length).toBe(1);
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
expect(this.view.$(".video-overlay")).toHaveClass("hidden");
|
||||
});
|
||||
|
||||
it("expands posts on click", function() {
|
||||
this.view.$(".collapsible").height(500);
|
||||
this.view.collapseOversized();
|
||||
|
||||
expect(this.view.$(".collapsed").length).toBe(1);
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
expect(this.view.$(".opened").length).toBe(1);
|
||||
});
|
||||
|
||||
it("plays video", function(done) {
|
||||
this.view.$("video").on("playing", function() {
|
||||
done();
|
||||
});
|
||||
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
});
|
||||
this.view.render();
|
||||
});
|
||||
}
|
||||
|
||||
afterEach(function() {
|
||||
this.view.$("video").stop();
|
||||
});
|
||||
|
||||
xit("hides video overlay", function() {
|
||||
expect(this.view.$(".video-overlay").length).toBe(1);
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
expect(this.view.$(".video-overlay")).toHaveClass("hidden");
|
||||
});
|
||||
|
||||
xit("expands posts on click", function() {
|
||||
this.view.$(".collapsible").height(500);
|
||||
this.view.collapseOversized();
|
||||
|
||||
expect(this.view.$(".collapsed").length).toBe(1);
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
expect(this.view.$(".opened").length).toBe(1);
|
||||
});
|
||||
|
||||
xit("plays video", function(done) {
|
||||
this.view.$("video").on("playing", function() {
|
||||
done();
|
||||
});
|
||||
|
||||
this.view.$(".media-embed .thumb").click();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
8
spec/javascripts/support/jasmine_helper.rb
Normal file
8
spec/javascripts/support/jasmine_helper.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
Jasmine.configure do |config|
|
||||
config.prevent_phantom_js_auto_install = true
|
||||
config.runner_browser = :chromeheadless
|
||||
config.chrome_startup_timeout = 20
|
||||
config.chrome_cli_options["autoplay-policy"] = "no-user-gesture-required"
|
||||
end
|
||||
@@ -1,23 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
$:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
|
||||
|
||||
ENV["JASMINE_BROWSER"] = "firefox"
|
||||
|
||||
require 'rubygems'
|
||||
require 'json'
|
||||
require 'jasmine'
|
||||
require 'rspec'
|
||||
|
||||
jasmine_config = Jasmine::Config.new
|
||||
spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
|
||||
|
||||
should_stop = false
|
||||
|
||||
RSpec.configuration.after(:suite) do
|
||||
spec_builder.stop if should_stop
|
||||
end
|
||||
|
||||
spec_builder.start
|
||||
should_stop = true
|
||||
spec_builder.declare_suites
|
||||
@@ -76,6 +76,7 @@ describe AccountDeleter do
|
||||
describe "#close_user" do
|
||||
user_removal_methods = %i[
|
||||
delete_standard_user_associations
|
||||
delete_user_invitation_code
|
||||
remove_share_visibilities_on_contacts_posts
|
||||
disconnect_contacts tombstone_user
|
||||
]
|
||||
@@ -92,7 +93,7 @@ describe AccountDeleter do
|
||||
end
|
||||
|
||||
describe "#delete_standard_user_associations" do
|
||||
it 'removes all standard user associaltions' do
|
||||
it "removes all standard user associations" do
|
||||
@account_deletion.normal_ar_user_associates_to_delete.each do |asso|
|
||||
association_double = double
|
||||
expect(association_double).to receive(:ids).and_return([42])
|
||||
@@ -107,11 +108,23 @@ describe AccountDeleter do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#delete_user_invitation_code" do
|
||||
it "deletes user invitation code" do
|
||||
expect(bob.invitation_code).not_to be_nil
|
||||
expect(bob.invitation_code).to eq(InvitationCode.find_by(user_id: bob.id))
|
||||
invitation_code_double = double
|
||||
expect(InvitationCode).to receive(:find_by).with(user_id: bob.id).and_return(invitation_code_double)
|
||||
expect(invitation_code_double).to receive(:destroy)
|
||||
|
||||
@account_deletion.delete_user_invitation_code
|
||||
end
|
||||
end
|
||||
|
||||
describe "#delete_standard_person_associations" do
|
||||
before do
|
||||
@account_deletion.person = bob.person
|
||||
end
|
||||
it 'removes all standard person associaltions' do
|
||||
it "removes all standard person associations" do
|
||||
@account_deletion.normal_ar_person_associates_to_delete.each do |asso|
|
||||
association_double = double
|
||||
expect(association_double).to receive(:ids).and_return([42])
|
||||
|
||||
@@ -216,7 +216,7 @@ describe Notifier, type: :mailer do
|
||||
end
|
||||
|
||||
it "can handle status_messages without text" do
|
||||
photo = FactoryGirl.create(:photo, public: true)
|
||||
photo = FactoryGirl.create(:photo, public: true, author: alice.person)
|
||||
status = FactoryGirl.create(:status_message, author: alice.person, text: nil, photos: [photo], public: true)
|
||||
like = status.likes.create!(author: bob.person)
|
||||
mail = Notifier.send_notification("liked", alice.id, like.author.id, like.id)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user